Брюс Шнайер - Секреты и ложь. Безопасность данных в цифровом мире
Легко ли это? Безопасная территория находится внутри карты – там хранятся ее секреты, и посторонние не могут их узнать – это сразу отметает множество проблем. Без этого единственный способ заставить подобную систему работать – это использовать нудные процедуры обращения к базам данных.
Чеки работают так же, как в первом примере, о котором я говорил: представим себе, что некто хранит в своем бумажнике документ, в котором представлен баланс на его текущем счете. Он может выписать чеки на любую произвольную сумму: ничто не вынуждает его выписывать чек на сумму меньшую, чем находится на счете. Торговцы часто принимают такие чеки на веру; они не могут знать, действительно ли данная персона имеет на счете сумму, покрывающую этот чек. Но так как здесь нет безопасной территории, которая бы вынуждала людей быть честными, существует сложная межбанковская система проверки чеков. Продавец вносит чек на депозит, но не может получить деньги сразу. Банк продавца использует идентификационную информацию на чеке – номер счета, имя банка и т. д., чтобы выяснить, с какого счета должны быть переведены деньги. Затем он обращается в банк покупателя и требует произвести платеж. Банк покупателя проверяет его личный счет. Он снимает деньги со счета клиента и переводит их в банк продавца. Наконец, деньги поступают на его счет.
Конечно, реальная система проверки чеков работает не совсем так – она оптимизирована для большей скорости и эффективности, – но основная ее идея именно такова. Нельзя рассчитывать, что владельцы счетов не станут выписывать негодные чеки, так что банки вынуждают людей быть честными.
Сопротивление вторжениюСистемы защиты от вторжения должны были бы помочь решить множество проблем компьютерной безопасности. Подумайте, насколько легче обеспечить защиту от копирования на вашем компьютере, если на нем находится процессор, снабженный такой системой, понимающей только зашифрованные команды. Или насколько легче было бы сконструировать систему условного депонирования ключей (см. главу 16), если бы аппаратные средства систем защиты от вторжения сигнализировали полиции о необходимости прослушивания. С аппаратными средствами систем защиты можно было бы реализовать в Интернете «счетчик», который фиксировал бы доступ к данным, подобно тому как электрический счетчик фиксирует количество использованной энергии.
Вообще говоря, аппаратные средства систем защиты от вторжения идеальны для сложных отношений доверия, когда одна сторона хочет передать в руки другой некий механизм безопасности и при этом иметь уверенность в том, что другая сторона не сможет изменить этот механизм. Например, когда банк хочет контролировать баланс счетов на устройстве, находящемся в руках его клиентов. Или когда полиция хочет хранить копни ключей шифрования, с тем чтобы иметь возможность прослушивать частные разговоры, даже когда люди используют механизмы шифрования. Или для дешифратора кабельного телевидения.
Основная проблема заключается в том, что таких средств защиты от вторжения не существует. Вы не можете создать механизм, в который невозможно проникнуть. Возможно даже, что вы и сделаете устройство, в которое невозможно проникнуть на данном уровне технологии. Но вы не можете создать устройство абсолютно защищенное.
Я мог бы посвятить целую книгу деталям, но они меняются так часто, что это было бы бесполезно. Достаточно сказать, что есть несколько закрытых лабораторий в Соединенных Штатах, в которых могут разрушить любую технологию систем защиты от вторжения. Гораздо больше лабораторий в различных корпорациях могут работать над разрушением сопротивления вторжению, хотя бы они и были созданы для других целей. Лаборатории разведывательного управления, разрабатывающие микросхемы, например, имеют оборудование, которое может быть использовано в основном для изучения микросхем систем защиты от вторжения, имеющихся на рынке.
В соответствии с этими реалиями, многие компании определяют название своих технологий как сопротивление вторжению, которое есть нечто подобное «защите от почти любого вторжения». Я думаю, это разумно: письмо, запечатанное в конверте, может рассматриваться как один из примеров сопротивления вторжению, хотя ЦРУ и другие подобные учреждения имеют потрясающий опыт вскрытия почты.
Проблемы с системами защиты от вторжения выявляются, когда происходит сопротивление реальному вторжению. Представьте себе, что вы создаете систему торговли, основанную на смарт-картах, которая использует в целях безопасности микросхему, обеспечивающую сопротивление вторжению. И это анонимная система, так что сопротивление вторжению – это вся защита, которую вы можете противопоставить широко распространенным подделкам. Насколько сильное сопротивление вторжению вам необходимо? Как вы определите, что защита вполне достаточна? Что вы будете делать, когда появятся новые технологии?
Определяя, насколько серьезное сопротивление вторжению вам необходимо, надо выдвигать выполнимые требования. Вероятно, вы сможете оценить величину возможного ущерба: сколько денег сумеет подделать тот, кто взломает систему сопротивления. Если вы сконструировали хорошую систему, ожидаемо, что вы можете ограничить количество денег, которые могут быть украдены с одной смарт-карты, скажем, сотней долларов. Следующая задача более трудная: как вы узнаете, что обеспечили такие меры по сопротивлению вторжению, что взлом системы обойдется дороже 100 долларов?
На самом деле никто не знает, насколько эффективны различные меры по сопротивлению вторжению. Конечно, в лаборатории скажут вам, сколько времени они потратили, взламывая систему, или сколько стоит оборудование, которое они при этом использовали, но некто в лаборатории на другом конце города способен воспользоваться другой техникой и получить совершенно другую картину. И помните об атаках ради огласки: некий студент последнего курса может позаимствовать оборудование и взломать вашу систему сопротивления вторжению просто шутки ради. А может быть, представители криминальных кругов купят необходимое оборудование и наймут квалифицированных взломщиков. Все это не имеет прямого отношения к простой оценке времени и денег, необходимых для осуществления атаки «в лоб» против имеющегося алгоритма шифрования.
И даже если возможно выяснить, насколько эффективна сегодня техника, отвечающая за сопротивление вторжению, вы ничего не можете сказать о том, насколько эффективна она будет завтра, или на следующий год, или через пять лет. Новые достижения в этой сфере появляются все время. Прогресс в этой области происходит от разнообразия технологий; они могут взаимодействовать неожиданным образом. То, что было трудно взломать в этом году, возможно, будет очень просто взломать в следующем. Наивно полагать, что сопротивление вторжению обеспечивает сколько-нибудь долговременную безопасность.
Другая возможность – создать систему обнаружения вторжения. Это легче, чем реализовать сопротивление вторжению: мы не заботимся о том, что некто может проникнуть в систему, мы заботимся только о том, чтобы он не остался при этом непойманным. Представьте себе игровое устройство с ручным управлением, снабженное такой системой. Игрок может взять его домой и выиграть или проиграть деньги. Поскольку мы собираемся позволить игроку взять устройство к себе домой, и мы знаем, что потенциально ему по силам выиграть тысячи долларов, самое лучшее, что мы можем сделать, – организовать сопротивление вторжению. Но поскольку мы знаем, что надежную систему сопротивления вторжению создать невозможно, в действительности мы полагаемся на обнаружение вторжения. Когда он возвратит игровое устройство и захочет забрать свой выигрыш, мы проверим устройство со всех сторон. Мы будем выяснять, не нарушена ли изоляция, не вскрывалась ли оболочка, не обрезаны ли провода. Конечно, самый лучший атакующий сможет все это замаскировать, но он не сможет сделать вид, что так оно и было.
Неплохо, но все же недостаточно хорошо. Я верю, что не существует абсолютно надежной системы обнаружения вторжения, хотя они имеют разную степень надежности. Использовать такую систему в качестве единственной меры безопасности было бы ошибкой.
Ничто не препятствует применению этих концепций в физическом мире. Многие системы используют устройства против вторжения. Это не обязательно плохо: устройства, осуществляющие сопротивление вторжению, защищают системы от большинства людей и от большинства атак. Меня беспокоит, когда полностью полагаются на средства сопротивления вторжению, вместо того чтобы рассматривать их как один из аспектов более разносторонней системы безопасности.
В качестве примера системы, которая эффективно использует средства сопротивления вторжению как часть общего механизма управления, приведу систему контроля за ядерными вооружениями в США. Риск реален: какой-нибудь недобросовестный командир может осуществить запуск оружия без разрешения, или случится, что тактическое ядерное оружие будет украдено или (если оно находится на заокеанской базе) попадет в руки союзников во время кризиса. Необходимо быть уверенным, что запуск ядерного оружия произойдет только при наличии соответствующей директивы из Вашингтона. Для решения этой проблемы используется система, называемая PAL (permissive active link, разрешающая активная связь), детали которой до сих пор являются секретом. Мы знаем только, что PAL может действительно быть полезной, если она запрятана глубоко внутри большой и сложной системы вооружений. Более простые виды вооружений хранятся в специальных контейнерах – это защитные системы предписанного действия (prescribed action protective systems, PAPS), которые наилучшим образом обеспечивают сопротивление вторжению.