Hardware in Bus Encryption. (микросхемы в шифровании данных, передающихся по шине)

advertisement
МОСКОВСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ (ГУ)
Факультет радиотехники и кибернетики
Кафедра радиотехники
Эссе по курсу «Защита информации»
http://www.re.mipt.ru/infsec
Hardware in Bus Encryption.
(микросхемы в шифровании данных, передающихся по
шине)
413 группа
Кровушкина И.А.
Долгопрудный, 2008
Введение.
Расширение спектра применений и сервисов, обеспечиваемых портативными и
встроенными устройствами вызывает новые проблемы безопасности. Большинство
встроенных систем (платное ТВ, КПК, мобильные телефоны и т.д.) используют внешнюю
память. В результате, постоянно происходит обмен данными и инструкциями между памятью
(RAM) и процессором (CPU) в незашифрованном виде через шину. Эта память может
содержать конфиденциальные данные, такие как коммерческое программное обеспечение
или личные данные, которые и конечный пользователь, и провайдер контента хотели бы
защитить. В результате предача взаимодействие процессор-память является слабым звеном
системы и любимой дырой хакеров. В данном эссе будут описаны проблемы взаимодействия
через шину памяти и процессора и существующие методы, применяемые для защиты канала
взаимодействия шифрованием.
Проблема.
Конфиденциальность программного обеспечения.
Появления сервисов скачивания программного обеспечения по требованию выводит на
первый план проблему защиты содержимого. Данные между производителем программного
обеспечения и процессором могут передаваться по защищенному каналу с симметричным
или асиметричным алгоритмом шифрования. Но после передачи, они передаются
процессором внешней памяти в незашифрованном виде, из-за чего они могут быть
скопированны.
Для того, чтобы предотвратить это, возможно для взаимодействия процессор-память
использовать тот же алгоритм, с тем же сессионным ключом, что и во взаимодействии
процессор- производитель программного обеспечения. Однако, последний может выбирать
из различных симметричных алгоритмов, которые могут не подходить для взаимодействия
процессор-память. Следовательно, дешифрование часто происходит в программном
обеспечении.
Шифровальный можуль должен быть реализован в Системе на Чипе (System On Chip),
чтобы усложнить процесс взлома. Таким образом необходимо принимать во внимание такие
ограничения как потребляемая мощность, стоимость изготовления и т.д.
SOC криптосистемы.
Выбор SOC криптосистемы должен происходить в соответствии с особенностями
системы. Это часто компромисс между необходимым уровнем
криптостойкости и
приемлемыми потерями производительности.
Ассиметричные криптграфические алгоритмы часто базируются на модулярной
арифметике и оперируют с огромными целыми чисоами (512-2048 бит). Они требует большей
процессорной мощности, чем симметричные алгоритмы. Кроме того, шифротекст длиннее
чем чистый текст, следовательно, необходима большая память. Поэтому, они мало
используются в SOC.
Симметричные криптографические алгоритмы делятся на два семейства: потоковые
шифры и блочные шифры. В блочном шифре текст делят на блоки, затем каждый блок
шифруется. Потоковый шифр использует XOR текста и ключевого потока. Криптостойкость
такой криптосистемы основана в основном на генерации ключевого потока.
Для проблемы данного эссе потоковый шифр кажется более пригодным, так как
генерация ключевого потока может происходить параллельно с потоком внешних данных.
Недостаток блочных шифров в том, что расшифрование не может быть начато, пока не будет
принят весь поток. Однако, в SOC применяются оба семейства алгоритмов.
Блочные шифры могут быть использованы в различных режимах. Режим ECB не
должен применяться, так как в нем идентичные блоки открытого текста шифруются в
идентичные блоки зашифрованного текста, и необеспечивает криптостойкость. Режим CBC
обеспечивает лучшую защиту, так как каждый зашифрованный блок зависит еще и от
предыдущего блока. Но его использование оказывается ограниченным в системах памятьпроцессор из-за проблемы случайного доступа к памяти.
Если шифровальный модуль расположен между кэш-памятью и контроллером памяти,
то данные хранятся в кэш-памяти в чистом виде. Следовательно, каждый промах кэша
означает доступ к внешней памяти вместе с дополнительной задержкой из-за процесса
дешифрования. Однако, операция записи может иметь даже более худшее воздействие на
производительность. Операция записи данных меньших размера блока шифрования дает
дополнительную задержку, так как требует следующих шагов:
- прочесть блок из памяти
- расшифровать его
- модифицировать соответствующую последовательность в блок
- снова зашифровать его
- записать обратно в память
Одна из проблем дизайна криптосистем – убрать эти задержки.
Рис.1 (a) - принцип потокового шифрования;
(b) – принцип блочного шифрования;
(c) – пример расмещения шифровального модуля
Классфикация атак.
IBM предложила систематику противников и атак, для того чтобы классифицировать
уровни безопасности, достигаемые их продуктами. Противники группируются в три класса в
порядке возрастания , в зависимости от их предполагаемых возможностях и атакующей силе.
Класс I (умные посторонние – clevet outsiders): они часто очень умны, но обладают
недостаточными знаниями системы. У них есть доступ только к оборудованию средней
сложности. Они предпочитают использовать существующие слабые места системы, чем
пытаться создавать новые.
Класс II (хорошо осведомленные инсайдеры – knowledgeable insiders): они имеют
специализированное техническое образование. Понимают в разных степенях части системы,
но обладают доступ к большей ее части. Они часто обладают доступом к сложным приборам
и инструментам анализа.
Класс III (финансируемые организации – funded organizations): они могут собирать
группы специалистов с соответствующими знаниями, обладают возможностями глубинного
анализу системы и используют очень сложное и дорогое оборудование для анализа.
Атаки деляться на атаки программного обеспечения и атаки hardware. К атакам hardware
относятся физические атаки и атаки побочного канала. Физические атаки делян на
агрессивные и неагрессивные атаки. Агрессивные атаки используют устройства для
манипуляций и вмешательства внутри системы. Атаки проив интегральных схем требуют
дорогого оборудования, и их трудно повторить. Примеры агрессивных атак –
микрозондирование и реинжиниринг. Неагрессивные атаки не требуют вскрытия схем. Хотя
они требуют первоначальных исследований времени, они более дешевы. Примеры
неагрессивных атак – временная атака, атака анализа мощности, атака электромагнитного
анализа, атака вызова ошибки.
Физическая
атака
осуществояется
зондированием
и
подслушиванием
междукомпонентного взаимодействия. Сначала чип распаковывают,
удаляя резину,
покрывающую силикон, кислотой. Зачем разбирают на части и микрозондированием изучают
информацию на шинах и интерфейсах компонент распакованного шифра. Физическая атака
сложно осуществима. Поэтому производится однократно, а затем ее данные используются
для дизайна неагрессивной атаки. Например, анализ топологии схемы полезен, когда
осуществляется мониторинг электромагнитного излучения. Так же, знание содержимого
ROM, такого как криптографические операции и данные контроля, может обеспечить
атакующего информацией для создания подхожящей неагрессивной атаки.
Временной анализ. В 1996г Kocher показал, как можно определить ключи, анализируя
малые изменения времени необходимые для осуществления криптографических операций.
Атака состоит в предсказании секретных значений, а, затем используя статистические
методы, предсказания тестируются на соответствие поведения взламываемого устройства и
предсказанного поведения. Для борьбы с такой атакой можно сделать все вычисления,
занимающими постоянное время. Однако, мало программ на современных микропроцессорах
оперируют точно постоянное время. К счастью, существуют методы, предотвращающие
временные атаки в многих системах. Например, message blinding может быть использовано
вместе с RSA, чтобы помешать нарушителю установить соотношения между входными и
выходныи данными.
Мощностный анализ. Ток, протекающий в сфере, зависит от вычислений, которые она
выполняет. Потребление мощности растет, если слуается больше переходов из одного
состояния в другое, или если перехожы происходят на больших логических элементах.
Существует 2 категории мощностных атак: простая мощностная атака (SPA – symple power
analysis) и дифференциальная атака (DPA – differential power analysis).
SPA атака основана на наблюдении, что в некоторых системах, мощностный профиль
криптографических вычислений может быть напямую использован для интерпретации
ключа. Например, SPA может быть использовано для взлома RSA реализации через
разоблачение разницы между перемножением и возведением в квадрат, осуществляемых в
процесс модулярного возведения в степень.
DPA использует статистические методы определения секретных ключей через сложные
измерения мощности шума. Для типичной атаки враг постоянно измеряет потребление
мощности прибором каждые несколько тысяч криптовычислений. Эти мощностные следы
сохраняются в высокоскоростном аналого-цифровом конвертере, таком как в цифровом
осциллографе.
DPA позволяет врагу вытаскивать очень маленькте сигналы из очень шумных данных,
часто без знания дизайна взлавымаемой системы. Такие атаки особенно опасны для таких
девайсов как смарт-карты, которые должны защищать секретный ключ в процессе работы с
неприятельски оборудованием.
Индикация ошибок. Если hardware ошибется в вычислениях, безопасность будет
подвергнута опасности. Например, почти любая ошибка в вычислениях может подвергнуть
риску RSA реализацию, использующую кирайскую теорему об остатках. Вычисления
включают в себя вычисления о модулю p и q. Если, например, вычисления по модулю p
будут неправильны, но правильны по модулю q, то разница между правильным ответом и
вычисленным, будет иметь множитель q, позволяя врагу узнать q.
Чтобы справиться с этой атакой RSA может проверять свои ответы, осуществляя
операцию с открытым ключом, получая первоначальное сообщение. Однако, методы
нахождения ошибок для симметричных алгоритмов не столь просты, и существует
множество атак ошибок. В результате, многие криптоустройства включают ассортимент
сенсоров пробдем для определения условий, вызывающих вычислительные ошибки.
Электромагнитный анализ. Такие атаки были хорошо задокументированны в 80-х,
когда было доказано, что электромагнитное излучение от видеодисплея может быть
использовано для реконструирования его изображения. Основная предпосылка этих атак в
том, что они пытаются измерить электромагнитное излучение, исходящее от прибора.
Для хакеров стоимость атаки не должна превышать размер ожидаемого дохода. Таким
образом, в этом эссе принимаются во внимание только противники второго класса.
Рассматриваются только не очень агрессивные атаки, физический доступ к данным
ограничен зондированием шины. Основная цель – не дать атакующему понять содержание
данных, хранящихся во внешней памяти. Например, известная атака против системы с
зашифрованной шиной DS5002FP микроконтроллера, произведенная Маркусом Куном
(Marcus Kuhn) , состояла в следующем. Принцип безопасности этого микроконтроллера
основана на шифровании блоков 8-битных инструкций. Хакер взломал криптозащиту атакой
методом перебора (8 бит – 256 возможностей). После идентификации MOV инструкции, он
выгрузил данные из внешней памяти в чистом виде через параллельный порт.
Современное положение дел.
Рис.2 принцип патента Беста
Принцип шифрованной шины (шифрование содержимого внешней памяти) впервые был
представлен Робертом Бестом 25 лет назад. Бест предложил считать CPU безопасным,
следовательно, все данные и адресса должны находиться в расшифрованном виде в CPU, но в
зашифрованном запределами SOC. Соответственно, шифровальный модуль должен
осуществлен на чипе, а секретный ключ шифрования распологается в регистре на чипе. (рис
2). Выбранный блочный шифр основан на криптографических функциях моно и
полиалфавитной замены и перестановки байт.
Некоторые правила, изложенные Бестом, до сих пор соблюдаются: SOC – доверенная
зона, шифровальный модуль и секретный ключ остаются на микросхеме, более того все
предлагаемое шифровальное hardware располагается между кэшем и контроллером внешней
памяти.
Существует множество патентов, касающихся промышленных исследований. VLSI
технология предлагает архитектуру (рис. 3), где передача данных во внешнюю память и из
нее производится по-странично. Все внешние запросы CPU управляются безопасным DMA
модулем (DMA – Direct Memory Access), и взаимодействие между внутреннейи внешней
памятью использует шифрующее/ дешифрующее ядро. Система позволяет использовать
криптостойкие блочные шифры. Так как DMA контроллируется операционной системой, то
этот метод жизнеспособен, при условии доверия ОС
Рис 3. Принцип патента VLSI
Рис 4. Принцип патента General Instrument Corporation
Патент корпорации General Instrument предлагает шифровать содержимое памяти,
используя 3-DES и режим CBC, и предлагает возможность аутентифицировать данные,
приходящие от внешней памяти благодаря ключевому кэш-алгоритму. Тем не менее, как
показано ранее, CBC очень криптостойка, но вызывает непреемлемое падение
производительности CPU для случайного доступа к внешней памяти.
Рис 5. Принцип устройств Dallas Semiconductors
Известный промышленный девайс для различных рынков, таких как платное ТВ,
средитные карты, предлагает компания Dallas Semiconductor. Старая версия их продукта
DS5002FP была взломана атакой Маркуса Куна. Новый DS5240 использует шифрование,
основанное на DES и 3-DES блочный шифр , которое усиливает криптостойкость продукта.
8-битное шифрование уступает место 64-битному шифрованию.
В академических работах существуют три проекта, предлагающие устойчивую к
вмешательствам архитектуру, включающую модули шифрования данных шины.
Гилмонт (Guilmont) использовал модуль предсказание выборки (предсказание выборки
– процесс определения следующей инструкции для запроса памяти) и 3-DES блочный шифр.
Он предполагает сохранить стоимость дешифрования ниже 2,5% в терминах
производительности. Однако, эта работа рассматривает только статичное шифрование и,
следовательно, авторы не сравнивают операции памяти размера меньше блока. Как
рассмотрено выше, в этих операциях ожидается большие потери мощности
производительности.
Проект Xom (Stanford) использует AES блочный шифр, который показывает низкую
задержку, при требуемой пропускной способности шифрования/дешифрования данных.
Третья работа называется AEGIS. В этой работе шифрование шины рассматривается
отдельно, и данные о стоимости более подробны. Шифровальный модуль – AES в режиме
CBC. Но система шифровальных блоков соответствует кэш-блоку, таким образом позволяя
случайный доступ к внешней памяти (каждый кэш-блок может быть зашифрован в CBC
режиме отдельно). Однако инструкция выборки не может быть обеспечена для процессора,
пока весь кэшевый блок не дешифруется. Генерация инииализирующего вектора,
необходимая в CBC, на самом деле обезопасивает: он составляется адрессным блоком и
случайным вектором, чтобы помешать атаке дней рождений возможно заменить случайный
вектор счетчиком. Основной недостаток – снова тяжелый консенсус между безопасностью и
ограничениями встроенных систем: примерно 25% производительности составляет
шифровальная техника.
Многие исследователи изучают эту проблему; принципы обеспечивающие сильную
безопасность известны: hardware реализация алгоритма, одобренного NIST (National Institute
of Standard and Technology) – в прошлом DES, сейчас AES; однако цена такой реализации
остается значительной и неприемлемой.
Возможные решения.
Рис. 6 (a) EDU между кэшем и контроллером памяти;
(b) EDU между CPU и кэш-памятью.
Все на данные момент существующие решения предлагают размещать модуль
шифрования(EDU) между кэшем и контроллером памяти. Но можно использовать EDU в
передаче данных между CPU и кэшем. Тогда все данные, содержащиеся в кэше, будут
зашифрованы. Однако изменение времени доступа к кэшу прямо влияет на
производительность. Процесс шифрования/расшифрования должен быть прозрачным для
CPU. Вот почему здесь должен быть использован потоковый шифр. Тогда появляются
дополнительные проблемы: ключевой поток должен быть доступным на микросхеме, чтобы
предотвратить большие потери производительности, а также он должен быть достаточно
случайным для безопасности. Что касается пригодности ключевого потока и его репродукции
для процесса расшифрования, простое решение этих двух проблем – хранить его в памяти
чипа. Это подразумевает добавление памяти чипа эквивалентной по размеру кэш-памяти.
Шифрование кэша таким образом, кажется, увеличивает уровень безопасности (против
атакающих класса III, которые могут исследовать встроенную память), однако, если считать
возможным мониторинг памяти чипа, хакер может легко получить ключевой поток и легко
расшифровать данные кэша. Следовательно, должно быть найдено решение для защиты
ключевого потока, если уровень безопасности должен отражать атаки нарушителей третьего
класса. Что касается генерации ключевого потока, то возможны различные схемы, однако,
они должны соответствовать следующему ограничению: время создания ключевого потока,
соответствующего линии кэша, должно быть равным, в худшем случае, времени вызова
данных из внешне памяти, иначе это приведет к больши потерям производительности. На
самом деле, генерация ключевого потока соответствует промаху кэша после CPU запроса
данных. Более того, эта схема не обеспечивает преимуществ в производительности по
сравнению с потоковым шифром, расположенным между кэшом и контроллером памяти.
Проблема модуля шифрования состоит в основном в уменьшении производительности
CPU. Возможное решение улучшить производительность – добавить шаг сжатия данных к
шифрованию. (рис. 7) Сжатие должно производиться до шифрование, иначе сжатие будет
иметь низкие коэффициент из-за высокий стохастических качеств зашифрованных данных.
Модуль шифрования должен располагаться между процессором и кэшем, иначе вынужденная
задержка становится значительной. Сжатие улучшает производительность модуля
шифрования, уменьшая размер шифруемых и дешифруемых данных. Кроме того, сжатие
увеличивает вместимость памяти, а также производительность, меньше загружая шину.
Например, IBM предлагает инструмент шифрования – CodePack. Утверждают, что его
влияние на производительность +/- 10% (в зависимости от типа памяти), а повышение
плотности памяти 35%. Более того, сжатие повышает энтропию сообщения, чем улучшает
эффективность шифровального алгоритма.
Рис 7. Сжатие и шифрование
Заключение.
Проектирование систем с достаточым уровнем безопасности, обеспечивающих
конфиденциальность, возможно сегодня благодаря шифровальным модулям. Однако,
основной проблемой является уменьшение потерь производительности.
Одно из недавних использований Bus Encryption - PVP-UAB (Protected Video Path - Bus
Encryption) и PAP (Protected Audio Path) в Windows Vista. Для защиты от
несанкционированного подключения к видеокарте данные на шине будут шифроваться,
соответственно графический процессор видеокарты будет тратить дополнительные мощности
на ее расшифровку.
Для работы всей этой системы, судя по всему, понадобится поддержка со стороны
драйверов. И, конечно, поддержка со стороны производителей оборудования. Сообщается,
что ATI, NVIDIA и Intel уже поддержали эту инициативу Microsoft.
Список литературы.
1. R. Elbaz, L. Torres, G. Sassatelli, P. Guillemin, C. Anguille, M. Bardouillet, C. Buatois, J.
B. Rigaud - Hardware Engines for Bus Encryption —2005
2. Paul Kocher, Ruby Lee, Gary McGraw, Anand Raghunathan, Srivaths Ravi - Security as a
New Dimension in Embedded System Design – 2004
3. G. E. Suh,, D. Clarke, B. Gassend, M. van Dijk, S.Devadas, AEGIS: Architecture for
Tamper-Evident and Tamper-Resistant Processing – 2003
4. Bus encryption http://en.wikipedia.org/wiki/Bus_encryption
Download