У военных это называется «среда, насыщенная целями»[67].
В будущем системы с сетевой структурой будут сложными, а значит, менее стойкими. Индустрия технологий гонится за спросом на особенности, на возможности выбора, на скорость. Нет никаких стандартов по качеству или безопасности и нет никакой ответственности за опасное программное обеспечение. Следовательно, нет экономического стимула поддерживать высокое качество. Вместо этого есть экономическая подоплека для создания продукции самого низкого уровня, какой только выдержит рынок. И пока клиенты не потребуют «лучшее качество и безопасность», ситуация не изменится.
Я вижу две альтернативы. Первый вариант – это «притормозить», упростить и попытаться добавить безопасности. Клиенты не потребуют этого (такие проблемы слишком сложны для их понимания), поэтому это должна потребовать группа защиты прав потребителей. Я могу легко представить организацию для Интернета, подобную Управлению по контролю за продуктами и лекарствами (FDA), но в окружающей нас среде, где на утверждение рецепта нового лекарства требуется десятилетие, это решение экономически не выгодно.
Другой путь – признать, что цифровой мир будет «номером один» со сверхрасширяющимися особенностями и возможностями, со сверхбыстрым выпуском изделий, со сверхувеличивающейся сложностью и сверхскоротечно падающей безопасностью. Если мы признаем эту реальность, то сможем попытаться заняться делом вместо того, чтобы прятать голову в песок и отрицать проблему.
Я повторюсь: сложность – самый ярый враг безопасности. Безопасные системы должны быть «обрезаны до кости» и сделаны настолько простыми, насколько это возможно. И нет никакой замены этой простоте. К сожалению, простота противоречит основным тенденциям развития цифровых технологий.
Новые технологии
Уже появились новые технологии, которые могут полностью изменить средства безопасности и в лучшую, и в худшую сторону. Так как эта книга не по предсказанию будущего, упомяну только несколько наиболее интересных достижений.
Крупные достижения в криптографии. Криптография лишь в некоторой степени основана на математических доказательствах. Лучшее, что мы можем сказать – то, что мы не можем ее взломать, так же как и другие ловкие люди, пытавшиеся сделать это. Всегда есть шанс, что когда-нибудь мы изучим новые методы, которые позволят нам взломать то, что недоступно сегодня. Как говорят в Агентстве национальной безопасности: «Атаки всегда совершенствуются, они никогда не ухудшаются». Мы наблюдали это в прошлом, когда, казалось бы, надежные алгоритмы были разрушены с помощью новых методов, и мы, вероятно, увидим это и в будущем. Некоторые люди даже предполагают, что в АНБ уже многое знают из этой новой математики и спокойно, с выгодой для себя взламывают даже самые сильные алгоритмы шифрования. Я так не думаю: может быть, они и владеют некоторыми секретными техниками, но не многими.
Крупные достижения факторизации. Вызывает опасение, что все алгоритмы открытых ключей базируются в основном на двух математических задачах: проблеме разложения на множители больших чисел (факторизации) или проблеме дискретного логарифмирования. Разложение на множители становится осуществлять все легче, и это происходит намного быстрее, чем кто-либо думал. Не доказано математически, что эти проблемы невозможно решить, и, хотя математики так не думают, может быть, кто-нибудь придумает способ эффективного решения этих проблем еще в наши дни. Если это случится, то мы окажемся в мире, где криптография открытых ключей не будет работать, и тогда главы этой книги будут представлять только исторический интерес. Но все не так страшно; инфраструктура аутентификации, основанная на симметричном шифровании, может служить для той же цели. Но в любом случае я не думаю, что это произойдет[68].
Квантовые компьютеры. Когда-нибудь квантовая механика фундаментально изменит способ работы компьютера. В настоящее время можно смело утверждать, что квантовые компьютеры способны сложить два 1-битовых числа, но кто знает, что будет дальше?[69] Возможно, если иметь в виду новые квантовые методы расчета, большинство алгоритмов открытых ключей покажутся устаревшими (см. предыдущий пункт), но на самом деле они всего лишь заставят нас удвоить длины ключа для симметричных шифров, хэш-функций и MACs (кодов аутентификации сообщения).
Аппаратные средства сопротивления вторжению. Многие проблемы безопасности устраняются, если использовать для защиты информации аппаратные средства сопротивления вторжению. Бурное развитие технологий привело к значительному уменьшению стоимости средств защиты от несанкционированного вмешательства[70].
Искусственный интеллект. Работа многих защитных средств может быть сведена к выполнению простой задачи: пропускать полезное содержимое, задерживая при этом вредоносное. Так работают брандмауэры, системы обнаружения вторжения, антивирусное программное обеспечение, VPN, системы защиты от мошенничества с кредитными картами и множество других вещей. Они подразумевают два подхода: неосмысленный (если есть любой из десятков тысяч образцов поиска в файле, следует, что файл заражен вирусом) или интеллектуальный (если программа начинает делать подозрительные вещи, скорее всего, завелся вирус, и вы должны все исследовать). Последнее кажется внушающим ужас, вызывает пугающие ассоциации с искусственным интеллектом. Что-то подобное было испытано как антивирусный механизм и в конце концов оказалось менее эффективным, чем примитивная модель проверочного сканера. Подобные идеи моделируются в некоторых продуктах обнаружения вторжения, и все еще неясно, делают ли они что-нибудь лучше, чем методичный поиск сигнатур, которые свидетельствуют о внедрении[71]. Однако когда-нибудь это может стать большим делом: если в области искусственного интеллекта со временем произойдет существенный прогресс, мы получим революцию в компьютерной безопасности.
Средства автоматической проверки. Многие дефекты системы безопасности, такие как ошибки переполнения буфера, – результат небрежного программирования. Хорошие автоматические средства, которые могут просматривать коды компьютера с целью обнаружения изъянов защиты, должны пройти длинный путь, чтобы они сумели обеспечить хорошую безопасность. Хорошие компиляторы и хорошая программа синтаксического контроля также проходят долгий путь, и когда задачи безопасности выйдут в них на первый план, только тогда они действительно смогут помочь программистам избежать ошибок. Кроме того, нужно убедить программистов использовать эти новшества, однако это уже другой вопрос. (Имеется ряд хороших средств, но они почти никем не затребованы.) И это отдельная проблема.
Безопасные сетевые инфраструктуры. Интернет не безопасен, безопасность никогда не стояла в планах для этой системы. Люди, которые будут работать в Интернете II, должны в первую очередь подумать о безопасности. При создании этой новой сети следует допустить, что кто-то будет перехватывать и пытаться похищать сетевые соединения и что заголовок пакета данных, возможно, будет подделан[72]. Нужно учесть, что пользователи в большинстве случаев не могут доверять друг другу, и рассматривать с этой точки зрения все виды приложений. Существует множество проблем, которые нельзя разрешить с помощью самых лучших протоколов сети, но некоторые можно.
Анализ трафика. Технология анализа трафика все еще находится в периоде становления, и я думаю, что новые интересные достижения в этой области появятся в следующем десятилетии[73]. Методы защиты трафика должны еще долго совершенствоваться, чтобы они могли обеспечить должный уровень защиты любой сети.