Безопасность в диком поле IoT. Первый опыт атаки по побочным каналам |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2020-12-15 04:31 Из энтерпрайза К моменту начала этой истории много лет работал в разработке энтерпрайз систем, был неплохим специалистом, внимательно относился к вопросам надежности и безопасности. В частности, замечательную книгу Ховарда и Леблана знал, ценил и регулярно перечитывал. Дивный новый мир 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 измерений для создания классификатора. Потребовалось:
Итого – примерно 3 дня. Даже такая примитивная атака оказалась весьма действенной. Выводы Таким образом, даже недоверчивый я уверовал в великую силу науки и то, что даже на коленке можно взламывать незащищенные реализации. Для преодоления средств защиты, конечно, потребовались новые знания и оборудование, но начало было положено. Впереди открылся путь полный новых открытий и приключений, ведь если не уметь атаковать, то не получится и защитить. Все, чему мы учимся на этом пути, так или иначе используется при проектировании наших микросхем. Источник: habr.com Комментарии: |
|