Глава 14 Аппаратные средства безопасности
Глава 14
Аппаратные средства безопасности
Это древняя идея. Она начала воплощаться, когда первый человек нарисовал линию, обозначающую вход в его пещеру, объявив тем самым, что с одной стороны этой границы находится его территория, и затем охранял свою пещеру от всех, кто был с этим не согласен. К аппаратным средствам безопасности можно отнести массу различных вещей: компьютерные помещения за запертыми дверями и охраняемые заграждения, помехоустойчивые устройства для платного телевидения, безопасные опознавательные знаки для контроля доступа, смарт-карты для приложений электронной коммерции и мины, которые взрываются, если вы пытаетесь обезвредить их. Реализация идеи создания безопасной территории различна в каждом из этих случаев, но основная мысль такова: намного легче построить систему компьютерной безопасности, если некоторые части системы останутся недоступными для большинства людей. Для этого можно использовать изначально заложенные в устройства физические средства защиты.
И это правда. Легче сконструировать безопасную систему платы за парковку, если вы способны предположить, что мошенники не смогут использовать парковочные счетчики, чтобы набить себе карманы. Легче представить себе охрану библиотеки и предположить, что люди не смогут вынести из здания книги, спрятав их под пальто. И легче создать электронный бумажник, если у вас есть основания считать, что люди не смогут присвоить любое количество денег.
Рассмотрим совершенную безналичную денежную систему: каждый имеет при себе бумагу, на которой написано число, представляющее денежную сумму, которой он располагает. Когда кто-нибудь тратит деньги, он зачеркивает старое и пишет меньшее число. Когда он получает деньги, то поступает наоборот. Если каждый честен, система работает. Как только некто заметит, что он может написать на бумаге любое число, которое захочет, системе придет конец.
Однако это в точности та же самая система, которую до эпохи компьютеризации банки использовали для депозитных счетов. Когда кто-то кладет деньги на депозит, это отражается в банковской книге, хранящейся в специальном помещении банка, другая книга находится в распоряжении клиента[40]. В банковской книге записано число, соответствующее количеству денег, которые данное лицо хранит в банке. Если оно вносит или снимает деньги со счета, банк записывает новую сумму в обеих книгах. Эта система работает потому, что одна из книг находится в охраняемом помещении банка. Она и есть «настоящая» книга; книга, которая у вкладчика, – это только ее копия, выдаваемая для его спокойствия. Если вкладчик подделает запись в своей книге, это приведет к несоответствию с записью в книге, хранящейся в банке. Кассир в банке обнаружит эту неувязку, возможно, проверит другие записи, чтобы удостовериться, что действительно была предпринята попытка мошенничества, и поступит соответственно обстоятельствам. Клиент не может изменить записи в книге, хранящейся в банке, поскольку не вправе проникнуть на охраняемую территорию. (Кассир, конечно, имеет гораздо больше возможностей совершить мошенничество.)
Этот пример показывает, насколько важно создать безопасную территорию: система безопасности не будет работать без нее.
Мы можем построить систему анонимных карточек для оплаты таким же образом. Клиенты носят смарт-карты в своих бумажниках. Смарт-карта содержит в памяти информацию о количестве долларов на счете, точно так же, как банковская книга. Смарт-карты могут взаимодействовать друг с другом через некий терминал пункта продажи. Когда клиент что-нибудь покупает, его смарт-карта вычитает сумму потраченных денег из количества, которое хранилось в памяти, и записывает в память новую, меньшую сумму. Когда торговец продает что-нибудь, его смарт-карта прибавляет стоимость товара к числу, хранящемуся в памяти. Такая операция может осуществляться только одновременно с обеими картами (это легко контролировать с помощью секретных ключей смарт-карт), так что всегда сохраняется баланс. И чтобы воспрепятствовать кому бы то ни было проникнуть внутрь смарт-карты и изменить баланс, карты должны быть защищены от вторжения.
Легко ли это? Безопасная территория находится внутри карты – там хранятся ее секреты, и посторонние не могут их узнать – это сразу отметает множество проблем. Без этого единственный способ заставить подобную систему работать – это использовать нудные процедуры обращения к базам данных.
Чеки работают так же, как в первом примере, о котором я говорил: представим себе, что некто хранит в своем бумажнике документ, в котором представлен баланс на его текущем счете. Он может выписать чеки на любую произвольную сумму: ничто не вынуждает его выписывать чек на сумму меньшую, чем находится на счете. Торговцы часто принимают такие чеки на веру; они не могут знать, действительно ли данная персона имеет на счете сумму, покрывающую этот чек. Но так как здесь нет безопасной территории, которая бы вынуждала людей быть честными, существует сложная межбанковская система проверки чеков. Продавец вносит чек на депозит, но не может получить деньги сразу. Банк продавца использует идентификационную информацию на чеке – номер счета, имя банка и т. д., чтобы выяснить, с какого счета должны быть переведены деньги. Затем он обращается в банк покупателя и требует произвести платеж. Банк покупателя проверяет его личный счет. Он снимает деньги со счета клиента и переводит их в банк продавца. Наконец, деньги поступают на его счет.
Конечно, реальная система проверки чеков работает не совсем так – она оптимизирована для большей скорости и эффективности, – но основная ее идея именно такова. Нельзя рассчитывать, что владельцы счетов не станут выписывать негодные чеки, так что банки вынуждают людей быть честными.
Сопротивление вторжению
Системы защиты от вторжения должны были бы помочь решить множество проблем компьютерной безопасности. Подумайте, насколько легче обеспечить защиту от копирования на вашем компьютере, если на нем находится процессор, снабженный такой системой, понимающей только зашифрованные команды. Или насколько легче было бы сконструировать систему условного депонирования ключей (см. главу 16), если бы аппаратные средства систем защиты от вторжения сигнализировали полиции о необходимости прослушивания. С аппаратными средствами систем защиты можно было бы реализовать в Интернете «счетчик», который фиксировал бы доступ к данным, подобно тому как электрический счетчик фиксирует количество использованной энергии.
Вообще говоря, аппаратные средства систем защиты от вторжения идеальны для сложных отношений доверия, когда одна сторона хочет передать в руки другой некий механизм безопасности и при этом иметь уверенность в том, что другая сторона не сможет изменить этот механизм. Например, когда банк хочет контролировать баланс счетов на устройстве, находящемся в руках его клиентов. Или когда полиция хочет хранить копни ключей шифрования, с тем чтобы иметь возможность прослушивать частные разговоры, даже когда люди используют механизмы шифрования. Или для дешифратора кабельного телевидения.
Основная проблема заключается в том, что таких средств защиты от вторжения не существует. Вы не можете создать механизм, в который невозможно проникнуть. Возможно даже, что вы и сделаете устройство, в которое невозможно проникнуть на данном уровне технологии. Но вы не можете создать устройство абсолютно защищенное.
Я мог бы посвятить целую книгу деталям, но они меняются так часто, что это было бы бесполезно. Достаточно сказать, что есть несколько закрытых лабораторий в Соединенных Штатах, в которых могут разрушить любую технологию систем защиты от вторжения. Гораздо больше лабораторий в различных корпорациях могут работать над разрушением сопротивления вторжению, хотя бы они и были созданы для других целей. Лаборатории разведывательного управления, разрабатывающие микросхемы, например, имеют оборудование, которое может быть использовано в основном для изучения микросхем систем защиты от вторжения, имеющихся на рынке.
В соответствии с этими реалиями, многие компании определяют название своих технологий как сопротивление вторжению, которое есть нечто подобное «защите от почти любого вторжения». Я думаю, это разумно: письмо, запечатанное в конверте, может рассматриваться как один из примеров сопротивления вторжению, хотя ЦРУ и другие подобные учреждения имеют потрясающий опыт вскрытия почты.
Проблемы с системами защиты от вторжения выявляются, когда происходит сопротивление реальному вторжению. Представьте себе, что вы создаете систему торговли, основанную на смарт-картах, которая использует в целях безопасности микросхему, обеспечивающую сопротивление вторжению. И это анонимная система, так что сопротивление вторжению – это вся защита, которую вы можете противопоставить широко распространенным подделкам. Насколько сильное сопротивление вторжению вам необходимо? Как вы определите, что защита вполне достаточна? Что вы будете делать, когда появятся новые технологии?
Определяя, насколько серьезное сопротивление вторжению вам необходимо, надо выдвигать выполнимые требования. Вероятно, вы сможете оценить величину возможного ущерба: сколько денег сумеет подделать тот, кто взломает систему сопротивления. Если вы сконструировали хорошую систему, ожидаемо, что вы можете ограничить количество денег, которые могут быть украдены с одной смарт-карты, скажем, сотней долларов. Следующая задача более трудная: как вы узнаете, что обеспечили такие меры по сопротивлению вторжению, что взлом системы обойдется дороже 100 долларов?
На самом деле никто не знает, насколько эффективны различные меры по сопротивлению вторжению. Конечно, в лаборатории скажут вам, сколько времени они потратили, взламывая систему, или сколько стоит оборудование, которое они при этом использовали, но некто в лаборатории на другом конце города способен воспользоваться другой техникой и получить совершенно другую картину. И помните об атаках ради огласки: некий студент последнего курса может позаимствовать оборудование и взломать вашу систему сопротивления вторжению просто шутки ради. А может быть, представители криминальных кругов купят необходимое оборудование и наймут квалифицированных взломщиков. Все это не имеет прямого отношения к простой оценке времени и денег, необходимых для осуществления атаки «в лоб» против имеющегося алгоритма шифрования.
И даже если возможно выяснить, насколько эффективна сегодня техника, отвечающая за сопротивление вторжению, вы ничего не можете сказать о том, насколько эффективна она будет завтра, или на следующий год, или через пять лет. Новые достижения в этой сфере появляются все время. Прогресс в этой области происходит от разнообразия технологий; они могут взаимодействовать неожиданным образом. То, что было трудно взломать в этом году, возможно, будет очень просто взломать в следующем. Наивно полагать, что сопротивление вторжению обеспечивает сколько-нибудь долговременную безопасность.
Другая возможность – создать систему обнаружения вторжения. Это легче, чем реализовать сопротивление вторжению: мы не заботимся о том, что некто может проникнуть в систему, мы заботимся только о том, чтобы он не остался при этом непойманным. Представьте себе игровое устройство с ручным управлением, снабженное такой системой. Игрок может взять его домой и выиграть или проиграть деньги. Поскольку мы собираемся позволить игроку взять устройство к себе домой, и мы знаем, что потенциально ему по силам выиграть тысячи долларов, самое лучшее, что мы можем сделать, – организовать сопротивление вторжению. Но поскольку мы знаем, что надежную систему сопротивления вторжению создать невозможно, в действительности мы полагаемся на обнаружение вторжения. Когда он возвратит игровое устройство и захочет забрать свой выигрыш, мы проверим устройство со всех сторон. Мы будем выяснять, не нарушена ли изоляция, не вскрывалась ли оболочка, не обрезаны ли провода. Конечно, самый лучший атакующий сможет все это замаскировать, но он не сможет сделать вид, что так оно и было.
Неплохо, но все же недостаточно хорошо. Я верю, что не существует абсолютно надежной системы обнаружения вторжения, хотя они имеют разную степень надежности. Использовать такую систему в качестве единственной меры безопасности было бы ошибкой.
Ничто не препятствует применению этих концепций в физическом мире. Многие системы используют устройства против вторжения. Это не обязательно плохо: устройства, осуществляющие сопротивление вторжению, защищают системы от большинства людей и от большинства атак. Меня беспокоит, когда полностью полагаются на средства сопротивления вторжению, вместо того чтобы рассматривать их как один из аспектов более разносторонней системы безопасности.
В качестве примера системы, которая эффективно использует средства сопротивления вторжению как часть общего механизма управления, приведу систему контроля за ядерными вооружениями в США. Риск реален: какой-нибудь недобросовестный командир может осуществить запуск оружия без разрешения, или случится, что тактическое ядерное оружие будет украдено или (если оно находится на заокеанской базе) попадет в руки союзников во время кризиса. Необходимо быть уверенным, что запуск ядерного оружия произойдет только при наличии соответствующей директивы из Вашингтона. Для решения этой проблемы используется система, называемая PAL (permissive active link, разрешающая активная связь), детали которой до сих пор являются секретом. Мы знаем только, что PAL может действительно быть полезной, если она запрятана глубоко внутри большой и сложной системы вооружений. Более простые виды вооружений хранятся в специальных контейнерах – это защитные системы предписанного действия (prescribed action protective systems, PAPS), которые наилучшим образом обеспечивают сопротивление вторжению.
Система сопротивления вторжению, обеспечивающая безопасность ядерных устройств, включает в себя разнообразные «ловушки для дурака»: химические вещества, которые делают ядерный материал непригодным к использованию, небольшие взрывные устройства, способные разрушить критические компоненты оружия и самого атакующего, и т. д. Только шифровальный код, поступивший из Вашингтона, сумеет отключить эти защитные механизмы и привести в действие ядерное оружие.
Эти защитные механизмы экстремальны, но и ситуация подобающая. Бывают экстремальные ситуации в коммерческом мире – ключи корневых сертифицирующих органов (см. главу 15), ключи, используемые банками для осуществления безопасных межбанковских телеграфных переводов, – но меры безопасности, существующие в подобных заботливо сконструированных системах, не являются продуктом массового производства. В обычных случаях меры безопасности в коммерческом мире значительно более примитивны.
И есть фундаментальное различие в системе управления. Ядерные вооружения находятся под экстремальным физическим контролем; это делает меры по сопротивлению вторжению более эффективными.
Представьте себе игровой автомат. Автомат находится на безопасной территории. Если вы сумеете вскрыть автомат, вы можете забрать оттуда все деньги или, что еще серьезнее, изменить микросхемы, так что он выплатит джекпот. Но этот автомат стоит на полу в казино. Там освещение, камеры наблюдения, охрана, люди… если кто-то подойдет слишком близко с дрелью или отверткой, он будет арестован. Теперь представьте, что в казино вам говорят нечто вроде: «Это игровой автомат. Возьми его домой. Играй сколько тебе угодно. Принеси его назад через несколько месяцев. Все выигрыши мы выплатим».
Это совсем другая ситуация. Злоумышленник принесет автомат в свою базовую лабораторию. Он может изучать машину как угодно. Он просветит ее рентгеном. Он может даже купить несколько таких же машин у производителей и разобрать их. В конце концов, у него намного больше возможностей атаковать систему, пользуясь своей базой, чем находясь в казино. И это верно не только для игровых автоматов, но и для банкоматов, банковских сейфов и тому подобных моделей безопасных систем.
(Это не означает, что игровой автомат, стоящий в казино, неуязвим. Деннис Никраш обеспечил себе хорошую жизнь – всего около 16 миллионов долларов, – взломав игровой автомат. Он практиковался на игровых автоматах дома и в конце концов понял, как вскрыть один из них в казино так, чтобы при этом не включилась сигнализация. Ему удалось заменить некоторые микросхемы. Системы блокировки (blockers) скрывали его от телекамер. В итоге он взял на «обработанной» им машине джекпот.)
Мораль этого раздела проста. Первое – сопротивление вторжению в значительной степени миф, но оно создает определенный барьер при входе в систему. Второе – средства сопротивления вторжению должны использоваться совместно с другими контрмерами. И третье – любая система, в которой устройства и секреты, заключенные внутри этих устройств, находятся под контролем разных людей, имеет фундаментальный изъян в системе безопасности. Можно конструировать подобные системы, но надо при этом осознавать, что они неотделимы от этого недостатка.
Нападения через побочные каналы
В последние годы в литературе стали появляться описания новых видов крипто-аналитических атак: атаки, целью которых являются определенные детали выполнения. Тайминг-атака (timingattack, атака, основанная на сравнительных измере ниях времени) вызвала большой шум в прессе в 1995 году: закрытые ключи RSA могли быть восстановлены с помощью измерения относительных интервалов времени операций шифрования. Такие атаки были успешно проведены против смарт-карт и других опознавательных знаков доступа, а также против серверов электронной коммерции в Интернете.
Исследователи обобщают эти методы, относя к ним нападения на системы с помощью измерения энергопотребления, уровня излучения и использования других побочных каналов. Такие атаки могут осуществляться против разнообразных симметричных алгоритмов шифрования с открытым ключом в устройствах аутентификации, снабженных системами сопротивления вторжению. Обобщающие исследования представили анализ нападения: в процессор, осуществляющий шифрование, преднамеренно вводятся ошибки, что дает возможность определить секретные ключи. Последствия такой атаки могут быть разрушительными.
Допустим, нападающий хочет узнать секретные ключи, находящиеся внутри модуля, защищенного от вторжения: смарт-карты, карты PCMCIA или чего-нибудь подобного. Он не может осуществить криптографический анализ алгоритмов или протоколов (они слишком хороши) и не способен взломать систему сопротивления вторжению. Но атакующий умен; вместо того чтобы анализировать только входные и выходные данные, он обращает внимание также на скорость, с которой модуль проводит операции. Критическое рассмотрение атаки измерения времени показывает, что выполнение многих операций шифрования происходит с различной скоростью для различных ключей. Знание скорости, с которой происходит определенная операция, дает информацию о ключе. Знание множества различных скоростей для различных операций помогает получить полную информацию о ключе.
Представьте себе атаку, направленную против склада: вы хотите узнать, что находится внутри. У вас нет возможности заглянуть на склад, чтобы посмотреть, как там расположены вещи. Однако вы можете попросить служащего «получить» материал для вас. Время, которое ему потребуется для того, чтобы сделать ту или иную вещь, скажет вам многое об этом складе. Он каждый раз тратит много времени на то, чтобы принести картридж? Должно быть, картриджи находятся в самом дальнем углу. Расходует ли он больше времени на то, чтобы принести стопку бумаги, через каждые 10 запросов? Тогда, должно быть, бумага сложена в коробки по 10 пачек. Ему требуется больше времени на то, чтобы принести карандаши, чем на то, чтобы принести резинки? Это говорит о том, какие коробки лежат сверху.
Рассмотрим тайминг-атаку против устройства проверки пароля. Берем случайный пароль и варьируем только первый символ. Так как всего букв 26, можно использовать строчные и прописные, еще 10 цифр, несколько знаков пунктуации, итого около 70 паролей. Возможно, один из них устройство будет проверять дольше, чем остальные, прежде чем отклонить. Возможно, это пароль с правильным первым символом. Повторим то же самое с остальными символами. Если вы предпринимаете попытку атаковать пароль из 8 символов, вам нужно проверить всего 560 паролей и измерить соответствующие задержки.
Атакующий не обязательно должен ограничиться тайминг-анализом. Он может посмотреть, сколько энергии затрачено на различные операции. (В случае, когда модуль потребляет разное количество энергии при осуществлении одинаковых по сути операций, в зависимости от ключа.) Он может исследовать также, сколько тепла излучается и даже где в модуле находится источник излучения. Например, атаки измерения энергии (powerattacks) были применены, чтобы раскрыть секреты почти всех смарт-карт, имеющихся на рынке.
Все эти атаки допустимы, поскольку модуль находится в руках атакующего. Если модуль помещен в хранилище, закрытое на замок, злоумышленник не сможет проводить эти виды атак. (Хотя он, вероятно, окажется в состоянии осуществить нападение против другой копии такого же продукта, которая может обеспечить ему получение некоторой интересной информации.) Но в случае, когда проектировщики систем полагаются на аппаратные средства защиты от вторжения и дают возможность нападающему получить копию модуля, они тем самым убирают препятствия для проведения подобных систематических атак.
Иногда возможно осуществлять некоторые нападения удаленно, через сеть. Здесь не получится наблюдать за потерями тепла и энергопотреблением, но вы сможете измерять временные интервалы. Конечно, в сети всегда присутствует некий шум, что не особенно мешает получить результат математически. Или вы можете наблюдать излучение (военные называют это TEMPEST).
TEMPEST заслуживает более подробных объяснений, если по каким-то причинам различные военные ведомства тратят кучу денег на защиту против него. Система нападения извлекает информацию, содержащуюся в излучении электронной аппаратуры, используя чувствительный радиоприемник, специально настроенный на нужный канал, чтобы воспринимать нужную информацию. (Это излучение также называют излучением ван Эка.) Видеомониторы, возможно, наиболее уязвимы – с «правильным» оборудованием вы сможете читать содержимое экрана чужого компьютера, несмотря на блокировку, – но утечка информации в той или иной степени существует везде. Сотовые телефоны, факсимильные аппараты и коммутаторы – через них тоже утекает информация. Не имеет значения, что данные в этих устройствах могут быть зашифрованы; как зашифрованные, так и «открытые» данные излучают, и обладающий достаточными ресурсами атакующий способен отличить одно от другого. Кабели ведут себя как антенны; от них также распространяется излучение, несущее информацию. Линии электропередач – это трубопроводы, по которым течет информация. Это нетривиальная атака, которая может потребовать массу специального оборудования. Иногда это легко – прочитать информацию с экрана чьего-нибудь компьютера, – но в других случаях оказывается сложным и трудоемким.
Правительственное решение проблемы излучения – это экранирование. Военные покупают компьютерное оборудование, которое экранировано от TEMPEST. Когда они создают оборудование для шифрования, они тратят дополнительные деньги, чтобы быть уверенными, что открытый текст не утекает через линии передачи зашифрованных данных или из устройства для шифрования. Они покупают экранированные кабели и для передачи данных и для электропитания. Они даже строят TEMPEST-экранированные помещения или, в критических случаях, целые здания: все это называется SCIFs (Secure Compartmented Information Facilities, средства безопасности для предотвращения утечки информации).
Существуют и другие атаки с использованием побочных каналов. Иногда нагревание или охлаждение модуля может предоставить в ваше распоряжение интересную информацию; в других случаях результат даст изменение напряжения на входе. Один безопасный процессор, например, предоставлял доступ к секретным данным, если входное напряжение мгновенно понижалось. Другой имел генератор случайных чисел, который выдавал их все, если напряжение медленно понижалось. Другие модули уязвимы, когда вы задействуете тики генератора импульсов синхронизации.
Подумайте обо всем этом как о неагрессивных биологических экспериментах. Вы можете многое узнать об организме, если будете просто наблюдать за ним: что он ест, что он выделяет, когда он спит, сколько времени ему требуется для выполнения определенной задачи в различных случаях, в условиях тепла или холода, сырости или сухости. Нет необходимости его вскрывать: вы можете многое узнать о нем в процессе его нормального функционирования.
Вскрыть его всегда интересно, особенно если вы сумеете сделать это, не убивая его. Если мы взломаем систему сопротивления вторжения и не разрушим модуль, мы узнаем множество подробностей о его системе безопасности.
Анализ ошибок – еще одна мощная атака, поскольку шифрование чувствительно к малым изменениям. В главе 7 я говорил о том, как легко это применить к некорректной системе шифрования, нарушив ее безопасность в процессе функционирования. При анализе ошибок аналитик намеренно вводит ошибки в процесс осуществления шифрования – в особых точках, которые обеспечат максимальную утечку информации. Комбинируя это со взломом системы сопротивления вторжению – действуя на ключевые точки в том и другом направлении (не случайно, но специальным образом), – можно провести разрушительную атаку против безопасных модулей.
Систематические атаки недешевы. Маловероятно, что они будут выполнены преступниками-одиночками или сообществом террористов. Это атаки, которые могут осуществляться хорошо финансируемыми противниками: организованной преступностью, промышленными конкурентами, военными разведывательными организациями и академическими лабораториями. Но они работают, и работают хорошо. Системы, подобные смарт-картам, выполняли бы свои функции надежно, если бы заранее предполагалось, что систематические атаки возможны, и была уверенность, что даже в случае их успешного осуществления безопасность системы не будет нарушена.
Атаки с использованием побочных каналов не всегда можно распространить на любые системы. Нападение, основанное на анализе ошибок, невозможно провести, если процесс шифрования осуществляется таким образом, что атакующий не имеет возможности создать и использовать нужные ошибки. Но эта атака намного сильнее стандартных криптаналитических атак против алгоритмов. Например, известная атака против DES с использованием анализа ошибок требует от 50 до 200 блоков зашифрованного текста (без открытого текста) для того, чтобы восстановить ключ. Она работает только на определенных аутентификаторах DES, будучи выполненной определенным образом. Контраст с этим составляет лучшая атака без использования сторонних каналов, которая требует около 64 Тбайт открытого текста и зашифрованного текста для определения единственного ключа.
Некоторые исследователи заявляют, что это обман. Правильно, но в системах, существующих в реальном мире, атакующие всегда обманывают. Их работа – восстановить ключ, а не следовать неким произвольным правилам выполнения атаки. Дальновидные разработчики систем безопасности понимают это и приспосабливаются к обстановке. Мы верим, что наиболее действенные атаки используют информацию, получаемую через побочные каналы. Звук – тоже побочный канал; о прослушивании вращательного движения роторов электромеханических двигателей упоминал в своей книге «The Codebreakers» Дэвид Кан. Военные Соединенных Штатов долгое время разбирались с TEMPEST. И в своей книге «Охотник за шпионами» («Spycatcher») Питер Райт обсуждает утечку секретных данных через линию передач по побочному каналу (метод, известный среди военных как HIJACK), которая позволила взломать шифровальный механизм, использовавшийся французами.
Осуществить защиту трудно. Вы можете либо сократить количество информации, утекающей через побочные каналы, либо сделать эту информацию не соответствующей действительности. Оба метода имеют свои проблемы, хотя исследователи работают над ними. Более дорогие устройства оборудованы датчиками, позволяющими обнаружить подключение на входе, – регуляторами, определяющими падение напряжения, термометрами, фиксирующими попытки охладить устройство, часами, устойчивыми к внешним сбоям, – и не разрушить свои секреты. Другие устройства чувствуют, что их вскрыли, и реагируют подобающим образом. Но эти виды защитных мер преимущественно используются только в системах, которые покупают военные, и даже не применяются в таких безопасных устройствах, как смарт-карты.
Атаки с использованием побочных каналов очень эффективны, и это будет до тех пор, пока не существует хорошей теории, на которой могла бы строиться защита. В любом случае система, в которой устройство находится в руках одной персоны, а секреты, содержащиеся внутри, принадлежат другой, рискованна.
Атаки против смарт – карт
Смарт-карты могут рассматриваться как своего рода «заговоренные пули» компьютерной безопасности – многоцелевой инструмент, который находит применение для контроля доступа, в электронной коммерции, аутентификации, защите секретности и других приложениях. В основном разработчики используют их свойства безопасной территории: процессор и память, находящиеся внутри, неуязвимы (предположительно) для атак. Также они маленькие, переносимые, дешевые и гибкие. Это делает их привлекательными, но недостатки прямого ввода-вывода, применяемого в смарт-картах, придают им большую уязвимость.
Наиболее интересно в смарт-картах то, что существует большое число сторон, вовлеченных в любую систему на основе смарт-карт. Это означает, что смарт-карты чувствительны ко многим видам атак. Большинство этих атак невозможно в обычных компьютерных системах, так как они могли бы иметь место только в случае проникновения внутрь безопасной территории. Но по отношению к смарт-картам все перечисленные ниже атаки вправе вполне обоснованно считаться опасными.
Атаки со стороны терминала против владельца карты или против того, кому принадлежат данные. Когда владелец карты опускает свою карту в терминал, он полагается на то, что терминал правильно осуществит ввод-вывод данных. Безопасность большинства систем с использованием смарт-карт основывается на том факте, что терминал имеет доступ к карте в течение короткого промежутка времени. На самом деле безопасность имеет отношение не только к обмену данными между смарт-картой и терминалом: должна быть законченная система обработки, которая способна отслеживать карты, терминалы и сигнализировать об их подозрительном поведении.
Атаки со стороны владельца карты против терминала. Более тонкими являются атаки владельцев карт против терминала. К ним относятся подмена или изменение карт с использованием программного обеспечения в жульнических целях, для того чтобы нарушить работу протокола обмена между картами и терминалом. Хорошо сконструированный протокол снижает риск подобной атаки. Риск угрозы падает еще больше, если карты имеют физические характеристики, которые сложно подделать (например, голограмма Visa-карты) и которые могут быть непосредственно проверены владельцем терминала.
Атаки со стороны владельца карты против собственника данных. В большинстве коммерческих систем, использующих смарт-карты, данные, хранящиеся на карте, должны быть защищены от ее владельца. В некоторых случаях владелец карты даже не должен знать эти данные. Если карта содержит значение денежной суммы, и ее владелец сумеет изменить это значение, он сможет эффективно создавать деньги из ничего. Было много успешных атак против данных, содержащихся в смарт-картах.
Атаки со стороны владельца карты против того, кто их выпускает. Многие финансовые атаки были направлены против того, кто выпускает смарт-карты, но фактически против целостности и подлинности данных или программ, хранящихся на карте. Если изготовитель карт поместил биты, которые ответственны за разрешение на вход в систему, на карту, он не должен удивляться, если эти биты будут атакованы. Подобные системы основываются на сомнительном предположении, что безопасной территории внутри карты достаточно для решения задачи, перед ней поставленной.
Атаки со стороны владельцев карт против производителей программного обеспечения. Вообще говоря, даже в системах, рассчитанных на враждебного пользователя, предполагается, что он не будет загружать новое программное обеспечение на карту. В некоторых случаях это предположение может оказаться неверным.
Атаки со стороны владельца терминала против изготовителя карт. В некоторых системах владелец терминала и тот, кто выпускает карты, являются различными субъектами. Это разделение создает несколько новых возможностей для атаки. Терминал управляет всеми соединениями между картой и ее изготовителем, и всегда можно сфальсифицировать записи или помешать успешному завершению одного или нескольких шагов транзакции, для того чтобы совершить мошенничество или создать проблемы в обслуживании пользователей.
Атаки со стороны изготовителя карт против владельцев карт. В общем, большинство систем основано на изначальном предположении, что тот, кто выпускает карты, искренно и наилучшим образом заботится об интересах владельцев карт. Но это не всегда так. Эти атаки представляют собой типичные случаи нарушения секретности тем или иным образом. При создании системы смарт-карт, которая должна служить заменой наличных денег, надо позаботиться о том, чтобы сохранились существенные свойства наличных денег: анонимность и обезличенность.
Атаки против собственников данных, возникающие вследствие конструктивных недостатков программного обеспечения. Некоторые конструктивные особенности программного обеспечения могут создавать существенные и неприятные эффекты для собственников данных в системе. Если производители реализовали операционную систему, которая позволяет многим пользователям запускать программы на одной и той же карте, это приводит к появлению ряда новых проблем безопасности, таких как разрушительная деятельность операционной системы, преднамеренно ограниченный генератор случайных чисел или конфликт различных приложений, запущенных на одной смарт-карте.
Все это не означает, что смарт-карты нельзя рассматривать как защищенные устройства. Смарт-карты, которые обращаются в кредитной финансовой системе, например, очень отличаются от карт, которые используются в системе денежных вкладов (stored value system). Системы смарт-карт, которые обеспечивают идентификацию и возможность проверки, также безопасны. Смарт-карты полезны, но их использование сопряжено с известным риском. Безопасная система смарт-карт должна уметь распознавать вышеописанные атаки; она должна быть сконструирована таким образом, чтобы они не могли на нее повлиять. В лучших системах не имеет значения, например, что пользователь может взломать карту. Это очень «по дзенски»: работа не против возможного нападающего, а на основе модели сохранения безопасности.