Страница:
Это совсем другая ситуация. Злоумышленник принесет автомат в свою базовую лабораторию. Он может изучать машину как угодно. Он просветит ее рентгеном. Он может даже купить несколько таких же машин у производителей и разобрать их. В конце концов, у него намного больше возможностей атаковать систему, пользуясь своей базой, чем находясь в казино. И это верно не только для игровых автоматов, но и для банкоматов, банковских сейфов и тому подобных моделей безопасных систем.
(Это не означает, что игровой автомат, стоящий в казино, неуязвим. Деннис Никраш обеспечил себе хорошую жизнь – всего около 16 миллионов долларов, – взломав игровой автомат. Он практиковался на игровых автоматах дома и в конце концов понял, как вскрыть один из них в казино так, чтобы при этом не включилась сигнализация. Ему удалось заменить некоторые микросхемы. Системы блокировки (blockers) скрывали его от телекамер. В итоге он взял на «обработанной» им машине джекпот.)
Мораль этого раздела проста. Первое – сопротивление вторжению в значительной степени миф, но оно создает определенный барьер при входе в систему. Второе – средства сопротивления вторжению должны использоваться совместно с другими контрмерами. И третье – любая система, в которой устройства и секреты, заключенные внутри этих устройств, находятся под контролем разных людей, имеет фундаментальный изъян в системе безопасности. Можно конструировать подобные системы, но надо при этом осознавать, что они неотделимы от этого недостатка.
Исследователи обобщают эти методы, относя к ним нападения на системы с помощью измерения энергопотребления, уровня излучения и использования других побочных каналов. Такие атаки могут осуществляться против разнообразных симметричных алгоритмов шифрования с открытым ключом в устройствах аутентификации, снабженных системами сопротивления вторжению. Обобщающие исследования представили анализ нападения: в процессор, осуществляющий шифрование, преднамеренно вводятся ошибки, что дает возможность определить секретные ключи. Последствия такой атаки могут быть разрушительными.
Допустим, нападающий хочет узнать секретные ключи, находящиеся внутри модуля, защищенного от вторжения: смарт-карты, карты 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). Системы смарт-карт, которые обеспечивают идентификацию и возможность проверки, также безопасны. Смарт-карты полезны, но их использование сопряжено с известным риском. Безопасная система смарт-карт должна уметь распознавать вышеописанные атаки; она должна быть сконструирована таким образом, чтобы они не могли на нее повлиять. В лучших системах не имеет значения, например, что пользователь может взломать карту. Это очень «по дзенски»: работа не против возможного нападающего, а на основе модели сохранения безопасности.
Глава 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). Системы смарт-карт, которые обеспечивают идентификацию и возможность проверки, также безопасны. Смарт-карты полезны, но их использование сопряжено с известным риском. Безопасная система смарт-карт должна уметь распознавать вышеописанные атаки; она должна быть сконструирована таким образом, чтобы они не могли на нее повлиять. В лучших системах не имеет значения, например, что пользователь может взломать карту. Это очень «по дзенски»: работа не против возможного нападающего, а на основе модели сохранения безопасности.
Глава 15
Сертификаты и удостоверения
Понятия сертификата открытого ключа и инфраструктуры открытого ключа являются центральными для шифрования в современном Интернете. Прежде чем их рассматривать, однако, будет нелишне напомнить, что представляет собой цифровая подпись. Цифровая подпись является математической операцией над совокупностью битов, которую можно выполнить только с помощью определенного ключа. Ее подлинность может быть подтверждена с помощью другого, соответствующего первому, ключа. Допустим, ключ шифрования известен только Алисе. Следовательно, понятно, что только Алиса может выполнить операцию и таким образом «подписать» сочетание битов.
Проблема с описанной моделью заключается в следующем: предполагается, что ключ шифрования – это секрет, известный только Алисе. Путем проверки подписи мы можем действительно подтвердить только то, что сообщение подписано с помощью Алисиного ключа; мы не вправе ничего утверждать относительно того, подписала ли его сама Алиса. Мы не знаем, был ли ключ украден кем-либо еще. Мы не знаем ничего относительно намерений Алисы. Когда мы видим Алисину собственноручную подпись на бумаге, мы можем сделать некоторые утверждения относительно ее воли: она прочла и подписала документ, она поняла его содержание. Когда же документ подписан с помощью секретного ключа Алисы, мы даже не можем быть уверены, что она вообще видела его. «Цифровая подпись» – это название, которое настораживает, потому что это не есть подпись.
Это будет важно в дальнейшем изложении темы этой главы. А пока что поговорим о доверенных третьих лицах.
Помните различные протоколы доверенных третьих лиц из главы 7? Любая коммерция, исключая прямой бартер, тем или иным образом использует доверенных третьих лиц. Даже сделки с оплатой наличными: продавец верит, что правительство примет деньги, которые он получил от покупателя. Когда же сделки включают в себя более интересные финансовые инструменты – чеки, кредитные карты, дебетовые карты, командировочные удостоверения, – и продавец и покупатель полагаются на то, что банк или финансовая компания будут вести себя правильно. Предприниматель и клиент не обязательно доверяют друг другу, но доверенное третье лицо должно успешно посредничать между ними. Все заканчивается очень быстро, если компания кредитных карт начинает капризно отвергать карты некоторых владельцев.
Адвокаты играют роль доверенных третьих лиц в персональных делах, выполняя волю свих клиентов. Когда некто говорит своему похитителю: «Если вы убьете меня, то мой адвокат пошлет копии доказательств в ФБР, CNN и New York Times, он использует своего поверенного в качестве доверенного третьего лица. Адвокаты не думают шутить, профессия делает их превосходными доверенными лицами.
Судебная система в целом может рассматриваться как доверенное третье лицо, гарантирующее, что контракты законны и дела ведутся правильно. Рассмотрим такой протокол честного контракта: Алиса и Боб ведут переговоры и подписывают контракт. Если один из них почувствует, что другой не соблюдает контракт со своей стороны, он или она обратятся к доверенной третьей стороне – к судье. Судья выслушает доказательства с обеих сторон и затем свершит правосудие.
Это работает, если они оба верят, что судья честен. В тех случаях, когда юридическая система коррумпирована или ее представители некомпетентны, мы видим крайне малую степень доверия контрактам и совершенно другую систему правил ведения коммерции.
Современная жизнь полна примеров существования доверенной третьей стороны. Магазины, торгующие по накладным, неважно, реальные или в Сети, суть доверенные третьи лица. Также и аукционы. А каждый, кто покупает что-либо через службу доставки? Служба доставки – доверенное третье лицо. То же самое – почтовые переводы. Нотариально заверенный акт подтверждает подлинность личности людей, подписавших законные документы, и обеспечивает проверку доказательств в случае спора. ООН посылает «наблюдателей» в качестве доверенных лиц в те страны мира, где противоборствующие стороны не доверяют друг другу. В Сети появляется служба условного депонирования, действующая как доверенная третья сторона между продавцами и покупателями в случае сделок с привлечением крупных денежных сумм.
В США существует целая индустрия доверенных третьих лиц, проводящих сделки с недвижимостью. Эти компании действуют как доверенные третьи лица между всеми сторонами, вовлеченными в сделки с недвижимостью: между продавцом и покупателем, банком продавца и банком покупателя, агентом по недвижимости продавца и агентом по недвижимости покупателя. Все эти стороны полагаются на агентство по недвижимости в том, что сделка будет завершена успешно.
Доверенные третьи лица играют особо важную роль в электронном мире. В мире, в котором отсутствует контакт лицом к лицу, а порой и голосовой контакт, в котором вы вынуждены полагаться на криптографию и устрашающе ненадежную компьютерную безопасность, это единственное реальное подтверждение, которое вы можете получить.
Проблема с описанной моделью заключается в следующем: предполагается, что ключ шифрования – это секрет, известный только Алисе. Путем проверки подписи мы можем действительно подтвердить только то, что сообщение подписано с помощью Алисиного ключа; мы не вправе ничего утверждать относительно того, подписала ли его сама Алиса. Мы не знаем, был ли ключ украден кем-либо еще. Мы не знаем ничего относительно намерений Алисы. Когда мы видим Алисину собственноручную подпись на бумаге, мы можем сделать некоторые утверждения относительно ее воли: она прочла и подписала документ, она поняла его содержание. Когда же документ подписан с помощью секретного ключа Алисы, мы даже не можем быть уверены, что она вообще видела его. «Цифровая подпись» – это название, которое настораживает, потому что это не есть подпись.
Это будет важно в дальнейшем изложении темы этой главы. А пока что поговорим о доверенных третьих лицах.
Доверенные третьи лица
Специалисты по криптографии определяют доверенное третье лицо как персону, которой доверяют все участники протокола, помогающую придать протоколу завершенность и безопасность. Мой друг из NSA однажды заметил (определение, отличающееся замечательной ясностью): «Каждый, кто вас знает, может нарушить вашу секретность и не быть пойманным». Вполне достаточно, эти два определения в главном совпадают.Помните различные протоколы доверенных третьих лиц из главы 7? Любая коммерция, исключая прямой бартер, тем или иным образом использует доверенных третьих лиц. Даже сделки с оплатой наличными: продавец верит, что правительство примет деньги, которые он получил от покупателя. Когда же сделки включают в себя более интересные финансовые инструменты – чеки, кредитные карты, дебетовые карты, командировочные удостоверения, – и продавец и покупатель полагаются на то, что банк или финансовая компания будут вести себя правильно. Предприниматель и клиент не обязательно доверяют друг другу, но доверенное третье лицо должно успешно посредничать между ними. Все заканчивается очень быстро, если компания кредитных карт начинает капризно отвергать карты некоторых владельцев.
Адвокаты играют роль доверенных третьих лиц в персональных делах, выполняя волю свих клиентов. Когда некто говорит своему похитителю: «Если вы убьете меня, то мой адвокат пошлет копии доказательств в ФБР, CNN и New York Times, он использует своего поверенного в качестве доверенного третьего лица. Адвокаты не думают шутить, профессия делает их превосходными доверенными лицами.
Судебная система в целом может рассматриваться как доверенное третье лицо, гарантирующее, что контракты законны и дела ведутся правильно. Рассмотрим такой протокол честного контракта: Алиса и Боб ведут переговоры и подписывают контракт. Если один из них почувствует, что другой не соблюдает контракт со своей стороны, он или она обратятся к доверенной третьей стороне – к судье. Судья выслушает доказательства с обеих сторон и затем свершит правосудие.
Это работает, если они оба верят, что судья честен. В тех случаях, когда юридическая система коррумпирована или ее представители некомпетентны, мы видим крайне малую степень доверия контрактам и совершенно другую систему правил ведения коммерции.
Современная жизнь полна примеров существования доверенной третьей стороны. Магазины, торгующие по накладным, неважно, реальные или в Сети, суть доверенные третьи лица. Также и аукционы. А каждый, кто покупает что-либо через службу доставки? Служба доставки – доверенное третье лицо. То же самое – почтовые переводы. Нотариально заверенный акт подтверждает подлинность личности людей, подписавших законные документы, и обеспечивает проверку доказательств в случае спора. ООН посылает «наблюдателей» в качестве доверенных лиц в те страны мира, где противоборствующие стороны не доверяют друг другу. В Сети появляется служба условного депонирования, действующая как доверенная третья сторона между продавцами и покупателями в случае сделок с привлечением крупных денежных сумм.
В США существует целая индустрия доверенных третьих лиц, проводящих сделки с недвижимостью. Эти компании действуют как доверенные третьи лица между всеми сторонами, вовлеченными в сделки с недвижимостью: между продавцом и покупателем, банком продавца и банком покупателя, агентом по недвижимости продавца и агентом по недвижимости покупателя. Все эти стороны полагаются на агентство по недвижимости в том, что сделка будет завершена успешно.
Доверенные третьи лица играют особо важную роль в электронном мире. В мире, в котором отсутствует контакт лицом к лицу, а порой и голосовой контакт, в котором вы вынуждены полагаться на криптографию и устрашающе ненадежную компьютерную безопасность, это единственное реальное подтверждение, которое вы можете получить.