[Информационная безопасность] Безопасность в диком поле IoT. Первый опыт атаки по побочным каналам

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
08-Дек-2020 19:32

Из энтерпрайзаК моменту начала этой истории много лет работал в разработке энтерпрайз систем, был неплохим специалистом, внимательно относился к вопросам надежности и безопасности. В частности, замечательную книгу Ховарда и Леблана знал, ценил и регулярно перечитывал. Дивный новый мир IoTПри переходе в embedded разработку сразу же выяснилось, что безопасность здесь обеспечивается совсем по-другому и физическая поверхность атаки не ограничивается сетевым разъемом. Тогда наш творческий коллектив занимался разработкой приложения для микропроцессорной карты по заказу одного из европейских производителей микроэлектроники. Сам производитель все ухи прожужжал о том, как они заботятся о безопасности и какие в их контроллерах реализованы беспрецедентные меры по повышению безопасности. Мне подумалось, что уж с таким-то арсеналом защитных средств пройти сертификацию не составит труда. Реальность оказалась куда как более интересной – банда «этических хакеров» через пару дней вышла на связь: «Вот первых 6 бит вашего секретного ключа, ваш контроллер сломался, несите следующий». Выяснилось, что для сертификации предоставляется само устройство, вся документация, исходный код и данные для параметризации (включая ключи). Первым впечатлением было, что джентльменам, конечно, верят на слово, но в данном случае джентльмены брешут! Коллеги остудили мою горячую голову и убедили, что, скорее всего, не брешут, такое направление техники как атака по побочным каналам известна уже много лет и вообще это серьезный бизнес серьезных людей. Я тоже хочу на темную сторонуЗачем нам все это? Субъективный и очевидный ответ – ну это же круто. Если подумать, то приходит на ум и более объективный – у нас ведь тоже разрабатывают и интегральные схемы, и аппаратуру, их надо уметь защищать. В открытой печати можно найти довольно много информации о способах атаки на реализации, например, AES и, следовательно, устоявшихся методах защиты таких реализаций. В нашей же стране приняты свои стандарты, как защищать их реализации – пока не понятно. Конечно, в основе, наверное, всех блочных шифров лежат одинаковые ячейки Фейстеля, но дьявол, как всегда, в деталях. Суть методаАтака по побочным каналам – это общее название целого класса методов, которые используют наблюдение за какой-либо физической величиной, с целью выяснения процессов, происходящих в самом устройстве. Этой величиной может быть потребление питания, шум, электромагнитное излучение, в общем случае – что угодно. Есть еще активные атаки, когда атакующий не ограничивается пассивным наблюдением, а активно взаимодействует с устройством с целью вызвать нарушение штатного режима его работы, но об этом как-нибудь в другой раз. Еще много лет назад была хорошо проработана задача идентификации объекта управления:
Суть заключается в том, чтобы, варьируя u(t) и наблюдая z(t), определить функцию f или хотя бы x(t). В общем, в теории все понятно и очевидно, как всегда. Первый опытС чего бы начать? Несмотря на богатую теоретическую базу и большой выбор статей по тематике, ответ на этот вопрос больше всего напоминает известную картинку про рисование совы по двум овалам. Раз уж заговорили о симметричных шифрах, то исследовать будем операцию «исключающего или», она же xor.Чтобы было что взламывать, на контроллере ATMega32u4 реализовали блочный шифр ГОСТ 28147-89 (Магма) с ключом 256 бит. Контроллер очень распространен и не имеет никаких дополнительных средств защиты от запланированной нами атаки. Надо же тренироваться на чем-то простом, лично я и тогда не был уверен в успехе.В качестве измерительной установки получилось что-то такое:
Принято исходить из предположения, что программный код известен атакующему. Предположение сильное, но не в нашем положении начинающих хакеров от него отказываться. Главная операция, подлежащая изучению – побайтовое «сложение» байтов ключа a с байтами открытого текста b, т.е. операция вида a xor b. Имея код и осциллограф нетрудно определить момент выполнения именно этой операции. Оказалось, что снимаемый сигнал сильно зашумлен и простой корреляции явно недостаточно для выявления шаблонов.Мы пошли другим путем и стали исследовать трассы по N = 250 отсчетов, разбивая их на классы с H0 по H8 по величине Хэммингового расстояния между a и b. Оказалось, что в N-мерном пространстве можно подобрать такую проекцию, что классы H0 (например 0x00 xor 0x00) и H8 (например 0x00 xor 0xFF) оказались линейно разделимыми.
При добавлении в рассмотрение остальных классов с H1 по H7, картинка получилась не такой очевидной и пришлось воспользоваться классификатором. Были рассмотрены дерево решений, K-ближайших соседей, метод опорных векторов, случайный лес, многослойный перцептрон. Точнее всех себя показал метод опорных векторов с гауссовым ядром.  Нужно отметить, что модель должна хорошо классифицировать именно случаи H0 и H8, что означает, соответственно, либо полное совпадение байта текста с байтом ключа, либо полное совпадение инвертированного байта текста с байтом ключа. Экспериментально (а потом и теоретически, но об этом в другой раз) было показано, что вместо полного перебора 2256 достаточно примерно 214 измерений для создания классификатора. Потребовалось:
  • для генерации шаблонов примерно 4 часа
  • тренировка классификатора и оптимизация гиперпараметров примерно 10-20 часов,
  • грубый перебор значений для угадывания всего ключа 32 часа.
Итого – примерно 3 дня. Даже такая примитивная атака оказалась весьма действенной. ВыводыТаким образом, даже недоверчивый я уверовал в великую силу науки и то, что даже на коленке можно взламывать незащищенные реализации. Для преодоления средств защиты, конечно, потребовались новые знания и оборудование, но начало было положено. Впереди открылся путь полный новых открытий и приключений, ведь если не уметь атаковать, то не получится и защитить. Все, чему мы учимся на этом пути, так или иначе используется при проектировании наших микросхем.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_sidechannelattack, #_informatsionnaja_bezopasnost (
Информационная безопасность
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 06:34
Часовой пояс: UTC + 5