Если бы MikaTech была недобросовестной компанией, в интернете за 28 лет истории можно было бы найти множество негативных отзывов о её услугах
Итак, ответ — ДА! Мы хорошие люди.Почему стоит выбрать Mikatech, пожалуйста, нажмите здесь, чтобы узнать
О компании MikaTech
Время пролетело незаметно: с того дня, когда мы в 1998 году выполнили наш первый проект по обратной разработке MCU 8051, до момента создания нашей миллионной лаборатории обратной разработки в 2012 году прошло 14 лет. Теперь мы начинаем новый бизнес — разработку встраиваемых систем визуализации, и надеемся прослужить ещё 10 лет.
Питер Ли
Соучредитель и генеральный директор
Аннотация
В последнее время значительный интерес вызывает уровень устойчивости к несанкционированному доступу, который могут обеспечить недорогие встраиваемые устройства безопасности, такие как контактные и бесконтактные смарт-карты. Эти устройства широко применяются в потребительских и финансовых системах, что делает их физическую и криптографическую безопасность критически важной темой исследований. Хорошо известно, что высококлассные лаборатории анализа полупроводников могут проводить обратную разработку аппаратного обеспечения и прошивок смарт-карт с использованием профессионального оборудования для тестирования микросхем. Однако создание и эксплуатация современной полупроводниковой лаборатории требует капитальных вложений, достигающих миллионов долларов США, что делает такие возможности недоступными для большинства отдельных злоумышленников и небольших групп. В данной статье мы описываем разнообразный набор практических атак на безопасность, которые могут успешно осуществляться противниками с ограниченными финансовыми ресурсами и базовой технической инфраструктурой. Три основные категории атак полагаются на специальное, но доступное по цене оборудование: дифференциальный анализ ошибок через глитчинг сигналов, постоянная перезапись памяти микросхемы и восстановление криптографических ключей с использованием эффекта остаточной памяти. Существует также класс эксплуатируемых атак, основанных на традиционных ошибках проектирования протоколов, и эти методы могут не требовать никакого специализированного оборудования или лабораторных приборов. Мы систематически описываем принцип работы, процедуру реализации и примеры практического применения каждого вектора атаки. Некоторые из предлагаемых атак обеспечивают значительное улучшение производительности по сравнению с ранее установленными передовыми методами в исследованиях встраиваемой безопасности. Другие случаи атак служат ценными предостережениями для разработчиков аппаратного обеспечения, инженеров по протоколам и оценщиков безопасности. В совокупности все сценарии атак и экспериментальные результаты, представленные в этой статье, убедительно демонстрируют, что создание устойчивого к взлому аппаратного обеспечения, реализация безопасной логики прошивки и эффективное развёртывание этих устройств в реальных системах является гораздо более сложной и трудной задачей, чем это обычно считается на практике.
1 Введение
Всё большее число крупномасштабных критически важных цифровых систем в значительной степени полагается на свойства устойчивости к несанкционированному доступу смарт-карт и специализированных защищённых процессоров безопасности. Эти системы охватывают множество промышленных областей, включая сети платного телевидения по подписке, глобальные системы мобильной связи GSM, предоплатные счётчики газа и электроэнергии, а также платформы электронных кошельков на бесконтактных смарт-картах для розничных платежей. Каждая из этих систем зависит от встраиваемого аппаратного обеспечения безопасности для изоляции криптографических ключей, предотвращения взлома прошивки и блокировки несанкционированного доступа к внутренним конфиденциальным данным. Эта широкая зависимость делает надёжность механизмов устойчивости к взлому фундаментальной проблемой для всей экосистемы встраиваемой безопасности.
Важно пояснить, что аппаратная устойчивость к взлому никогда не является абсолютным, безотказным свойством. Хорошо финансируемый противник с полным доступом к профессиональному оборудованию для тестирования и зондирования полупроводников может извлечь секретный ключевой материал из микросхемы смарт-карты путём прямого физического наблюдения структур на уровне транзисторов и точного электрического манипулирования компонентами на кристалле. Сообщество специалистов по безопасности в целом придерживается консенсуса: при неограниченном времени и достаточных финансовых вложениях любое защищённое от взлома встраиваемое устройство размером с микросхему может быть полностью вскрыто и подвергнуто обратной разработке с использованием разрушающего физического анализа. В предыдущей академической литературе также задокументирован небольшой набор недорогих технических методов для атак на конкретные коммерческие устройства, устойчивые к взлому, и встраиваемые процессоры безопасности [2].
Исходя из этого, эффективный уровень устойчивости к взлому, предлагаемый любым коммерческим продуктом безопасности, может быть количественно измерен двумя ключевыми показателями: общими временными затратами и финансовыми издержками, которые встроенные защитные механизмы устройства накладывают на потенциального злоумышленника. Точная оценка этих двух издержек является жизненно важной задачей для оценки рисков безопасности и сертификации продуктов. К сожалению, эта конкретная проблема оценки получила гораздо меньше внимания со стороны академических исследователей безопасности, отраслевых оценщиков и инженеров-разработчиков, чем того заслуживает её практическая важность. Относительно короткий список опубликованных ссылок в конце этой статьи служит прямым доказательством этого пробела в существующей литературе.
Для стандартизации классификации злоумышленников и руководства при проектировании систем безопасности, частично полагающихся на аппаратную устойчивость к взлому, мы принимаем классическую таксономию противников, первоначально предложенную исследовательской группой по встраиваемой безопасности IBM [1]. Эта система классификации делит потенциальных злоумышленников на три отдельные категории в зависимости от их знаний, оборудования и уровня финансирования.
Класс I (умные посторонние): Эти противники часто обладают высоким интеллектом и сильными способностями к самообучению в области встраиваемой электроники. Однако им не хватает всесторонних внутренних знаний о деталях проектирования целевой системы безопасности. Они имеют доступ только к коммерчески доступному оборудованию среднего уровня, которое доступно по цене для индивидуальных пользователей. Их стратегия атаки обычно сосредоточена на использовании уже существующих внутренних слабостей в логике разблокировки системы, а не на разработке и создании новых аппаратных средств для создания эксплуатируемых уязвимостей с нуля. Большинство хакеров-любителей и независимых исследователей безопасности попадают в эту категорию.
Класс II (осведомлённые инсайдеры): Эти лица имеют формальное профильное техническое образование и многолетний профессиональный опыт в области встраиваемого оборудования или криптографии. Они обладают глубоким частичным пониманием критических сегментов целевой системы и имеют потенциальный физический и логический доступ к большинству функциональных модулей устройства. Они могут использовать сложные специализированные инструменты и прецизионные измерительные приборы для аппаратного анализа, мониторинга шин данных и криптографической обратной разработки. Профессиональные промышленные хакеры и старшие инженеры по встраиваемым системам со злым умыслом являются типичными противниками класса II.
Класс III (финансируемые организации): Эти субъекты могут собирать межфункциональные команды специалистов с взаимодополняющими навыками, охватывающими аппаратный анализ, криптоанализ, обратную разработку прошивок и взлом протоколов. Их операции поддерживаются значительными и постоянными финансовыми ресурсами, которые обеспечивают долгосрочные исследования и разработку инструментов. Они способны проводить углубленный структурный анализ сложных систем безопасности, разрабатывать высокоспециализированные сложные методологии атак и развёртывать самое передовое оборудование для анализа полупроводников, доступное на рынке. Они часто привлекают осведомлённых инсайдеров класса II в качестве ключевых членов своих специализированных команд атак для ускорения эксплуатации уязвимостей.
В этой статье мы представляем, формализуем и расширяем серию недорогих методов атак, которые могут сделать массовые смарт-карты и коммерческие защищённые от взлома встраиваемые устройства уязвимыми для злоумышленников класса II, а во многих упрощённых сценариях — даже для ограниченных в бюджете злоумышленников класса I. Все предлагаемые методы избегают дорогостоящей полупроводниковой лабораторной инфраструктуры, требуемой традиционными физическими атаками, что делает их практически доступными для обычных противников.
2 Дифференциальный анализ ошибок
В знаковой публикации [5] Бихэм и Шамир представили классическую атаку дифференциального анализа ошибок, направленную на блочный шифр DES. Их оригинальная атака требовала 200 ошибочных шифротекстов, каждый из которых содержал преднамеренные одноразрядные ошибки данных, вызванные контролируемым воздействием внешней среды на криптографический процессор. Базовая модель ошибок, принятая в их исследовании, была впервые предложена Бонэ и его коллегами в [11], а практические эффекты этой модели ошибок были дополнительно подтверждены и расширены в последующих исследованиях [16, 10]. Эта теоретическая модель предполагает, что воздействие на встраиваемый криптографический процессор низкоинтенсивного ионизирующего излучения или эквивалентного электрического воздействия может индуцировать изолированные одноразрядные ошибки в рабочих данных, особенно в секретном ключевом материале, обрабатываемом во время последовательных раундов шифрования блочных шифров.
Последующие исследования [6] показали, что этот традиционный метод анализа ошибок, ориентированный на данные, может быть расширен для обратной разработки проприетарных алгоритмов блочного шифрования, внутренняя структура раундов и расположение S-блоков которых полностью неизвестны злоумышленнику. Во всех этих ранних исследованиях ключевое критическое наблюдение остаётся неизменным: случайные ошибки битов, возникающие в последних нескольких раундах шифрования, раскрывают критическую информацию о секретном ключе шифрования или базовой структуре алгоритма. Эта утечка информации составляет математическую основу всех атак дифференциального анализа ошибок.
Дальнейшие уточнённые результаты исследований были представлены в [7], где оптимизировалась позиция внедрения ошибок для атак на симметричные шифры. Исследование доказало, что если точное внедрение ошибок ограничено только последними одним или двумя раундами целевого алгоритма, общее количество требуемых ошибочных образцов шифротекста может быть резко сокращено. Более ранняя работа Бонэ [11] также расширила модель ошибок на асимметричные криптосистемы, доказав, что схемы шифрования и подписи с открытым ключом в равной степени уязвимы для внедрения ошибок. Наиболее примечательно, что составной модуль RSA может быть полностью факторизован с использованием небольшого набора преднамеренно ошибочных цифровых подписей, сгенерированных целевым устройством.
Несмотря на эти многообещающие теоретические результаты, все вышеупомянутые предложенные атаки имели общее критическое практическое ограничение: ни одно предшествующее исследование не продемонстрировало успешно практическую осуществимость их идеализированной модели случайной одноразрядной ошибки. Это ограничение серьёзно ограничивало их применение в реальных условиях на коммерческих процессорах безопасности. В большинстве массовых процессоров безопасности смарт-карт секретный ключевой материал постоянно хранится во внутрикристальной EEPROM вместе с несколькими килобайтами исполняемого кода операционной системы и криптографических библиотек. Такая плотная компоновка памяти означает, что случайно индуцированная одноразрядная ошибка с гораздо большей вероятностью вызовет полный сбой процессора, повредит исполняемую прошивку или приведёт к полному неинформативному мусорному выводу, чем к генерации конкретных ошибочных шифротекстов, требуемых для традиционного дифференциального анализа ошибок. Это делало ранние академические атаки с использованием ошибок в значительной степени теоретическими, а не практическими для реального взлома смарт-карт.
В этом разделе статьи мы представляем другую, физически реалистичную модель ошибок, которая обеспечивает значительно более мощные и надёжные криптографические атаки, чем традиционная модель ошибок данных, индуцированных излучением. В последующих разделах мы рассмотрим дополнительные типы ошибок, которые могут быть легко вызваны малобюджетными злоумышленниками класса I с использованием самодельных или недорогих коммерческих инструментов. Мы докажем, что эти альтернативные векторы ошибок также обеспечивают высокоосуществимые, развёртываемые в полевых условиях атаки на коммерческие устройства, защищённые от несанкционированного доступа. Большинство предлагаемых атак могут быть дополнительно адаптированы к сценариям, где используемый алгоритм шифрования изначально неизвестен или где злоумышленник обладает неполной технической документацией целевой встраиваемой системы. Все эти методы атак идеально соответствуют операционному определению действий, которые противник класса I с ограниченными ресурсами может выполнить без промышленного лабораторного оборудования.
2.1 Реалистичная дифференциальная атака
В нашем предыдущем исследовании, ориентированном на промышленность [2], мы задокументировали практическую атаку с использованием ошибок, которая уже была широко принята хакерами-любителями для взлома платных смарт-карт для телевидения. Основной принцип этой атаки заключается во внедрении контролируемого электрического глитча — узкого, высокоскоростного переходного сигнала — либо на входной контакт тактового сигнала, либо на шину питания целевой микросхемы микроконтроллера. Наиболее распространённая реализация включает модификацию стандартного опорного тактового сигнала 5 МГц, подаваемого на смарт-карту, с вставкой одного или нескольких коротких импульсов с частотой 20 МГц во время определённых этапов выполнения программы.
Из-за внутренних аппаратных вариаций внутри микросхемы этот тактовый глитч вызывает избирательное искажение сигнала. Различные внутренние логические пути имеют уникальные значения задержки вентилей, а внутрисхемные компоненты имеют различные параметры постоянной времени RC. В результате инжектируемый переходный процесс искажает только подмножество внутренних логических сигналов, а не нарушает работу всей микросхемы. Путём точной настройки временного смещения и длительности импульса вводимого глитча злоумышленник может заставить ЦПУ устройства выполнять ряд непредусмотренных, неверных машинных инструкций, отклоняющихся от исходной логики прошивки.
Точный набор неверно выполненных инструкций варьируется между отдельными микросхемами одной модели из-за технологических разбросов в производстве и незначительных дефектов кремния. Однако эти используемые параметры глитча могут быть надёжно идентифицированы с помощью систематического полного перебора с использованием простых аппаратных схем, которые могут быть полностью собраны в домашних условиях из компонентов стоимостью менее ста долларов США. Этот низкий порог входа делает атаку доступной для любого квалифицированного радиолюбителя в области электроники.
Мы не претендуем на оригинальное изобретение этой техники глитчинга. Она впервые появилась в сообществе взломщиков платного телевидения и активно использовалась в подпольных кругах по крайней мере за год до нашего формального академического документирования. В базовой реализации, подробно описанной в нашей предыдущей работе [2], атака нацелена на простой цикл прошивки, предназначенный для передачи фиксированного сегмента памяти в последовательный порт устройства.
Исходная логика цикла на уровне ассемблера имеет следующую структуру:
1 b = answer_address
2 a = answer_length
3 if (a == 0) goto 8
4 transmit(*b)
5 b = b + 1
6 a = a - 1
7 goto 3
8 ...
Цель хакера — найти конкретный момент глитча, который позволяет счётчику команд нормально увеличиваться, но изменяет либо инструкцию условного перехода в строке 3, либо операцию декремента счётчика цикла в строке 6 на непредусмотренный код операции. Путём многократного внедрения этого откалиброванного глитча во время выполнения цикла злоумышленник может обойти ограничения доступа к памяти и выгрузить всё содержимое защищённой внутренней памяти микросхемы на внешний последовательный интерфейс.
Когда эта атака глитчинга на уровне инструкций применяется к выполнению криптографического алгоритма, а не к базовому коду управления потоком, она демонстрирует ещё более высокую эффективность для извлечения ключей. Наиболее важный вывод из этого исследования ясен: атаки с использованием ошибок, основанные на искажении выполнения инструкций ЦПУ, значительно проще в реализации и дают более информативную утечку, чем традиционные атаки, которые искажают только биты рабочих данных. Это является ключевым преимуществом нашей реалистичной дифференциальной атаки по сравнению с предыдущими теоретическими работами.
2.2 Атака на RSA
Вариант атаки глитчинга инструкций Ленстры обеспечивает чрезвычайно эффективный метод взлома реализаций RSA на коммерческих смарт-картах. Большинство встраиваемых ускорителей RSA вычисляют подпись S для сообщения M по составному модулю n = pq с использованием китайской теоремы об остатках (CRT). Устройство сначала вычисляет промежуточные значения подписи по модулю двух простых множителей p и q по отдельности, а затем объединяет два результата для генерации окончательной действительной подписи для составного модуля.
Если точный электрический глитч вводится во время одного из двух этапов вычислений по простому модулю, злоумышленник может немедленно факторизовать модуль RSA n без сложных математических вычислений. Пусть e обозначает открытую экспоненту шифрования схемы RSA. Если сгенерированная подпись S = M^d (mod pq) математически корректна по модулю простого p, но содержит единичную индуцированную ошибку по модулю простого q, то простой множитель p может быть вычислен напрямую с использованием функции наибольшего общего делителя: p = gcd(n, S^e − M) (1).
Эта уязвимость делает реализации RSA на основе CRT идеальной целью для недорогих атак глитчинга. Смарт-карта тратит большую часть своего криптографического времени обработки на вычисление значений подписи по модулю p и q. Почти любой случайный глитч, искажающий вывод любого из этих этапов вычислений, создаст ошибочную подпись, необходимую для факторизации модуля. Злоумышленнику не нужно точно нацеливаться на конкретные инструкции в коде алгоритма, что значительно снижает сложность калибровки параметров глитча.
Наиболее критично то, что эта атака требует только одного ошибочного образца подписи для завершения факторизации модуля. Это обеспечивает полностью онлайн-эксплуатацию в реальном времени в живых транзакционных средах. Злонамеренный розничный POS-терминал, управляемый криминальными организациями, может внедрить требуемый глитч во время обычной транзакции клиента, факторизовать RSA-модуль банка за миллисекунды, вычислить математически правильную действительную подпись и передать легитимные данные транзакции в бэкенд банка без какого-либо обнаруживаемого отклонения.
В результате преступные группы могут скрытно извлекать секретные ключи RSA банка без обнаружения аномального поведения в журнале транзакций со стороны клиента или бэкенд-системы банка. Практическая угроза усиливается стратегией развёртывания нового стандарта электронного кошелька EMV. Банки-эмитенты поддерживают только 10 000 уникальных пар секретных ключей RSA для всей своей клиентской базы [14]. Как только один набор ключей скомпрометирован с помощью этой атаки глитчинга, преступники могут подделывать клонированные смарт-карты для значительной части пользовательской базы банка, что приводит к масштабным финансовым мошенничествам.
2.3 Атака на DES
Когда злоумышленник получает возможность избирательно вызывать ошибки в целевых отдельных инструкциях ЦПУ, появляется несколько простых и эффективных путей атак на блочный шифр DES. Наиболее интуитивный метод нацелен на этап смешивания ключей в последних двух раундах DES. Злоумышленник может отключить одну из операций XOR с 8-битными данными, которая объединяет раундовые подключи с входными данными S-блоков, путём искажения соответствующего кода операции с помощью глитчинга.
Повторяя этот целевой глитч для последовательного отключения каждой операции XOR байта ключа, злоумышленник получает серию различных ошибочных выходов шифротекста. Каждый ошибочный вывод обычно отличается от легитимного шифротекста в выходных значениях двух S-блоков, а в редких случаях — трёх S-блоков. Применение классических методов дифференциального криптоанализа к этим ошибочным образцам позволяет злоумышленнику извлечь примерно пять бит информации о секретном ключе для каждой отключённой операции байта ключа.
На практике сбор шести ошибочных шифротекстов, сгенерированных глитчингом последних раундов DES, даёт примерно 30 бит из 56-битного главного ключа. Оставшиеся неизвестные биты ключа могут быть восстановлены путём полного перебора с минимальными вычислительными затратами на современном потребительском оборудовании. Это снижает вычислительную сложность восстановления ключа DES до тривиальной задачи для малобюджетных злоумышленников.
Ещё более быстрый вариант этой атаки нацелен на логику управления циклом функции раунда DES. Злоумышленник искажает переменную итерации цикла или инструкцию условного перехода завершения раунда с помощью глитчинга, заставляя алгоритм завершаться после только одного или двух раундов шифрования вместо стандартных шестнадцати. При отключённой полной структуре раундов секретный ключ может быть непосредственно идентифицирован путём визуального анализа усечённого вывода шифрования. Практическая производительность этой упрощённой атаки несколько зависит от конкретной реализации прошивки структуры цикла DES.
В целом, полное восстановление ключа DES с помощью глитчинга инструкций требует только от одного до десяти ошибочных образцов шифротекста, что представляет собой огромное улучшение по сравнению с 200 образцами, требуемыми традиционным дифференциальным анализом ошибок на основе данных. Это поднимает критический практический вопрос: насколько осуществимо для малобюджетного злоумышленника точно нацеливаться на конкретные отдельные инструкции во встраиваемой прошивке?
Почти во всех коммерческих смарт-картах производитель предварительно загружает набор фиксированных криптографических и коммуникационных подпрограмм в неизменяемую внутрикристальную ROM-память. Хотя поставщики часто рекламируют этот ROM-код как легковесную встраиваемую операционную систему, функционально он работает как библиотека фиксированных функций и инструментарий разработки для прикладных программистов. Эти встроенные подпрограммы почти всегда включают стандартизированную реализацию алгоритма DES или проприетарную альтернативу, такую как схема шифрования Telepass.
Злоумышленник класса I может приобрести официальный инструментарий разработки смарт-карт производителя за единовременную стоимость всего в несколько тысяч долларов США. Этот набор включает полную техническую документацию библиотеки ROM, полные интерфейсы отладки прошивки и физические образцы карт для тестирования параметров. Имея эту информацию, злоумышленник может точно найти и нацелиться на отдельные инструкции DES для точного внедрения глитча с высокой надёжностью.
При столкновении с полностью неизвестной или недокументированной реализацией прошивки злоумышленник должен провести ограниченные экспериментальные испытания для отображения временных окон инструкций устройства. Этот шаг калибровки уже требуется для каждой новой модели карты для определения допустимых параметров напряжения и времени глитча. Однако общее пространство поиска для используемых конфигураций глитча относительно невелико.
После анализа небольшого числа распространённых реализаций прошивки DES злоумышленникам становится легко распознавать шаблоны выходных данных, генерируемых отключением отдельных инструкций в последних двух раундах. Фактически, многие инструкции, не связанные со смешиванием ключей, в функции раунда при отключении с помощью глитчинга утекают почти столько же ключевой информации, сколько и официальные инструкции XOR подключей. Это ещё больше упрощает атаки на неизвестные реализации для неопытных противников.
2.4 Обратная разработка неизвестного блочного шифра
Злоумышленники могут использовать глитчи тактового сигнала и питания для систематического уменьшения эффективного числа раундов в неизвестном проприетарном блочном шифре. Простые статистические корреляционные тесты могут отслеживать взаимосвязь между битами входного открытого текста и битами выходного шифротекста. Внезапная сильная статистическая зависимость указывает на то, что число раундов шифрования было успешно уменьшено с помощью искажения инструкций.
Эта атака уменьшения числа раундов остаётся практичной даже при полном отсутствии у злоумышленника предварительных знаний о деталях реализации алгоритма. Эта возможность открывает мощный вариант использования: злоумышленники могут проводить обратную разработку засекреченных, неопубликованных блочных шифров, таких как Skipjack, без использования дорогостоящего оборудования для удаления слоёв полупроводников и электронной микроскопии.
Бихэм и Шамир ранее исследовали этот сценарий обратной разработки, используя свою традиционную модель ошибок случайных одноразрядных данных [6, 7]. Их методология идентифицирует ошибочные шифротексты с малым расстоянием Хэмминга от легитимных выходов, что соответствует ошибкам, ограниченным последними раундами шифрования. Анализируя эти образцы, злоумышленники могут разделить шифротекст на левую и правую половины данных и отслеживать распространение битов через раундовые преобразования.
Для шифров на основе S-блоков, таких как DES, этот анализ быстро выявляет внутреннюю структуру Фейстеля. Сбор 500 ошибочных шифротекстов позволяет восстановить грубую структурную компоновку алгоритма, в то время как примерно 10 000 образцов позволяют полностью восстановить все записи таблиц S-блоков. Этот процесс требует значительного времени на сбор данных и вычислительную обработку.
Наша техника глитчинга с искажением инструкций превосходит этот традиционный метод для обратной разработки неизвестных шифров. Злоумышленники могут систематически нацеливаться на последнюю инструкцию, затем на предпоследнюю и так далее, шаг за шагом продвигаясь назад по функции раунда. Этот упорядоченный подход даёт структурированную утечку, упрощающую структурный анализ, при этом требуя примерно такого же количества образцов шифротекста, как и метод ошибок данных Бихэма и Шамира.
Для демонстрации практической применимости мы анализируем засекреченный блочный шифр Red Pike в качестве практического тематического исследования. Red Pike был разработан британским GCHQ для шифрования правительственных данных с грифом "Restricted". Министерство здравоохранения Великобритании планировало развернуть Red Pike для шифрования конфиденциальных медицинских записей пациентов в национальных системах здравоохранения.
Британская медицинская ассоциация выступила против этого развёртывания, утверждая, что медицинское шифрование должно использовать открытые, рецензируемые алгоритмы, которые выдержали публичные криптоаналитические атаки по крайней мере в течение двух лет. Предпочтительными кандидатами были 3DES, Blowfish, SAFER K-128 и WAKE, все из которых имели обширные истории проверки безопасности.
Чтобы продемонстрировать криптографическую надёжность Red Pike для BMA, правительство Великобритании заказало независимую проверку безопасности, проведённую четырьмя академическими криптографами [18]. Опубликованный документ обзора содержит ограниченные описательные намёки на внутреннюю структуру алгоритма без раскрытия полного исходного кода или спецификации.
В официальном обзоре говорится, что Red Pike использует те же основные примитивные операции, что и блочный шифр RC5 (стр. 4). Его раундовая функция ограничена тремя простыми арифметическими операциями: сложением целых чисел, побитовым исключающим ИЛИ и циклическим сдвигом влево. Алгоритм не содержит статических таблиц подстановки, имеет минимальное развёртывание ключей и может быть реализован всего в пяти строках кода высокого уровня (стр. 4).
Дополнительные опубликованные намёки показывают, что криптографическое влияние каждого бита ключа быстро распространяется по состоянию данных во время шифрования (стр. 10). Полная операция шифрования Red Pike требует примерно ста атомарных арифметических инструкций для завершения (стр. 19). Эти подсказки позволяют нам оценить сложность атаки глитчинга путём прямого сравнения с хорошо документированным алгоритмом RC5 [19].
Отключение финальной операции сложения ключа RC5 с помощью искажения глитча даёт характерный выходной шаблон. Правая половина данных преобразуется в (B XOR A) shl A, где A и B представляют соответственно левую и правую половины состояния Фейстеля. Эта уникальная выходная сигнатура немедленно показывает, что шифр использует сбалансированную структуру Фейстеля без финального слоя перестановки.
Отключение последующей инструкции циклического сдвига раскрывает 32-битную ширину сдвига, скрывая параметры сдвига, зависящие от данных. Искажение следующей операции XOR даёт прозрачные изменения вывода, подтверждающие функцию побитового смешивания. Отключение сложения ключа предпоследнего раунда полностью раскрывает математическую структуру знаменитого механизма сдвига, зависящего от данных, в RC5.
После наблюдения этих шаблонных выходов злоумышленник может точно вывести основную структуру раундовой функции алгоритма:
A = ((A XOR B) shl B) op key
B = ((B XOR A) shl A) op key
Полная обратная разработка сложного развёртывания ключей RC5 требует отдельного пошагового трассирования инструкций с помощью дополнительного глитчинга. Однако если злоумышленник правильно догадывается, что неизвестная операция "op" является сложением целых чисел, все биты раундовых подключей могут быть непосредственно восстановлены путём обратного прохода по усечённым раундам шифрования.
Этот анализ приводит к критическому выводу о безопасности: за исключением сложного развёртывания ключей, RC5 является одним из худших вариантов алгоритмов для встраиваемых приложений с секретным аппаратным обеспечением. Устройства, реализующие RC5, очень уязвимы для недорогих атак глитчинга инструкций со стороны злоумышленников класса I. Если Red Pike разделяет эту простую раундовую структуру с упрощённым развёртыванием ключей, он будет ещё более восприимчив к нашим предлагаемым недорогим атакам с использованием ошибок.
Важно отметить, что правительство Великобритании планирует в конечном итоге выпустить Red Pike в качестве открытого программного обеспечения, поэтому этот анализ не является прямой критикой фундаментального криптографического дизайна алгоритма. Он лишь подчёркивает уязвимости, специфичные для закрытых аппаратных реализаций простых лёгких блочных шифров.
Наши выводы дают чёткие рекомендации для разработчиков безопасного аппаратного обеспечения. Проприетарные секретные алгоритмы, реализованные в защищённых от взлома микросхемах, должны включать повышенную структурную сложность для повышения затрат на атаку. Большие пользовательские таблицы S-блоков, хранящиеся в выделенной EEPROM (физически отделённой от памяти программ), являются эффективной контрмерой, повышающей аппаратную сложность, необходимую для успешных атак глитчинга.
Дополнительные разумные защитные меры включают логику обнаружения ошибок выполнения инструкций, пороговое многократное шифрование с проверкой по голосованию и сложное развёртывание ключей, гарантирующее, что утечка частичных раундовых ключей не может быть использована для восстановления полного главного секретного ключа.
3 Атаки перезаписи микросхемы
Когда злоумышленник обладает полной документацией по прошивке и аппаратной компоновке целевого устройства, существует несколько недорогих методов извлечения секретных криптографических ключей путём воздействия на конкретные аппаратные компоненты. Эти методы включают манипулирование встроенными битами плавких перемычек, изменение состояний отдельных логических вентилей и перезапись критических данных, хранящихся в областях энергонезависимой памяти. Предыдущее исследование Бовенландера задокументировало классическую атаку на смарт-карты с использованием двух прецизионных микроигл для закорачивания постоянно перегоревшего предохранителя безопасности на кристалле [12].
Этот предохранитель намеренно пережигается во время заводского цикла окончательного тестирования для постоянного отключения интерфейсов отладки и обратного чтения памяти микросхемы. Путем электрического закорачивания предохранителя микроиглами злоумышленник повторно активирует заблокированные заводские тестовые функции. Эти восстановленные тестовые функции позволяют полностью считывать содержимое защищённой программной и данных памяти микросхемы без каких-либо криптографических ограничений.
Даже если закорачивание предохранителя блокируется дополнительными аппаратными замками, отдельные ячейки памяти все ещё могут быть подвергнуты воздействию и модифицированы с помощью недорогих физических методов. Все атаки в этой категории могут быть выполнены с помощью скромного бюджета, доступного для отдельных злоумышленников класса I, без необходимости в полупроводниковых производственных мощностях стоимостью в миллионы долларов.
3.1 Атаки перезаписи ROM
Неизменяемая масочная ROM-память, обычно используемая для хранения операционных систем и криптографических библиотек смарт-карт, не полностью устойчива к физической модификации. Отдельные отдельные биты в ячейках ROM могут быть избирательно переключены с помощью стандартного лазерного микроскопа для резки, устройства, широко доступного в университетских лабораториях.
Для хорошо документированных алгоритмов, таких как стандартная реализация DES, злоумышленники могут идентифицировать конкретные критические биты в ROM-коде. Переключение этих тщательно выбранных отдельных битов обеспечивает тривиальное извлечение секретного ключа с минимальными последующими вычислениями. Точные позиции битов несколько варьируются в зависимости от реализации разных производителей, но универсальные уязвимые шаблоны битов существуют в большинстве массовых ROM-кодов DES.
Распространённый пример эксплуатации — изменение инструкции условного перехода на инструкцию безусловного перехода. Это простое изменение бита обходит логику итерации раундов и заставляет DES завершать шифрование после только одного или двух раундов, делая ключ непосредственно видимым в памяти во время выполнения. Злоумышленники также могут постепенно отключать инструкции XOR, смешивающие ключи, путём переключения отдельных битов кода операции в ROM-программе.
Когда у злоумышленника неполная документация по целевой прошивке, атаки перезаписи ROM всё ещё предлагают мощные пути эксплуатации. Фиксированные таблицы S-блоков DES, хранящиеся в ROM, могут быть легко идентифицированы по их известным статистическим шаблонам распределения битов. Избирательная перезапись нескольких битов S-блоков преобразует нелинейную функцию подстановки DES в простую линейную трансформацию над полем GF(2).
После того как функция шифрования линеаризована с помощью модификации ROM, полный 56-битный главный ключ DES может быть математически извлечён с использованием только одной пары известных открытого текста и шифротекста. Это устраняет необходимость в множественных образцах ошибок или сложных алгоритмах криптоанализа.
3.2 Атаки модификации EEPROM
Многие современные смарт-карты хранят прикладную прошивку и криптографические алгоритмы в перезаписываемой EEPROM, а не в фиксированной масочной ROM. Эта гибкая схема хранения позволяет обновлять прошивку в полевых условиях, но вносит дополнительные физические поверхности для атак. Злоумышленники могут использовать две тонко заточенные микроиглы для принудительной установки или сброса любого отдельного бита в массиве EEPROM [17].
Этот метод манипуляции битами с помощью микроигл может воспроизвести все описанные ранее атаки перезаписи ROM на устройствах с перезаписываемой памятью. Уникальным преимуществом нацеливания на EEPROM является двунаправленное управление битами: злоумышленники могут как устанавливать биты 0 в 1, так и сбрасывать биты 1 в 0, создавая гораздо более гибкие стратегии эксплуатации, чем одностороннее переключение битов ROM.
Практическая эксплуатация использует правило нечётной чётности, применяемое всеми официальными реализациями DES. Каждый 8-битный байт ключа DES требует нечётной чётности в качестве механизма проверки целостности. Соответствующие устройства безопасности отклоняют любой загруженный ключ, содержащий байты с чётной чётностью, и возвращают явное сообщение об ошибке чётности на интерфейс хоста.
Банковские модули безопасности, такие как аппаратное обеспечение VISA PIN, строго применяют это правило чётности для предотвращения несанкционированного манипулирования ключами. Предположим, злоумышленник знает фиксированный адрес памяти целевого ключа DES, хранящегося в EEPROM, но не может напрямую прочитать защищённую область памяти с помощью стандартных программных команд. Этот сценарий чрезвычайно распространён, поскольку разработчики прошивок смарт-карт часто размещают секретные ключи по фиксированным адресам EEPROM для лёгкого доступа во время выполнения.
Злоумышленник может выполнить простую атаку угадывания битов с помощью микроигл. Сначала злоумышленник принудительно устанавливает первый бит целевого байта ключа в состояние логической 1 с помощью микроиглы. Затем злоумышленник инициирует операцию шифрования с использованием модифицированного ключа и наблюдает за ответом устройства.
Если операция шифрования завершается успешно без ошибок, исходное собственное значение бита уже было 1. Если устройство возвращает уведомление об ошибке чётности ключа, исходное собственное значение бита было 0. Злоумышленник повторяет эту процедуру последовательно для каждого бита во всех восьми байтах ключа для полного восстановления секретного главного ключа DES.
Эта атака работает даже в том случае, если злоумышленник не полностью понимает проприетарный протокол избыточности ключей устройства. Если модификация бита вызывает неожиданное состояние ошибки, не связанное с чётностью, злоумышленник просто возвращает бит в исходное состояние и переходит к следующей позиции. Этот самокорректирующийся процесс обеспечивает нулевое постоянное повреждение целевого устройства во время восстановления ключа.
Необходимое оборудование для этой атаки широкодоступно. Стенды для микроигл являются стандартным оборудованием в университетских электротехнических факультетах, в то время как лазерные микроскопы для резки обычно встречаются в лабораториях клеточной биологии для обработки образцов тканей. Студенты бакалавриата часто получают неконтролируемый доступ к этим устройствам в нерабочее время для академических проектов. Внешние злоумышленники класса I могут приобрести восстановленные версии этих инструментов на вторичном рынке по общей стоимости не более нескольких тысяч долларов США.
3.3 Атаки разрушения вентилей
На неофициальном заседании семинара Fast Software Encryption 1997 года Эли Бихэм и Ади Шамир представили инновационную физическую атаку, нацеленную на аппаратно реализованные блочные шифры. Их метод использует прецизионный лазерный резак для постоянного разрушения одного отдельного логического вентиля в аппаратной схеме криптографического процессора.
Их демонстрация была сосредоточена на аппаратно ускоренных реализациях DES, которые следуют общей итеративной структуре. Большинство аппаратных ядер DES содержат комбинационную логику для выполнения одного раунда шифрования в паре с выделенным регистром состояния. Этот регистр хранит выходные данные раунда k и подаёт их обратно в качестве входного состояния данных для раунда k+1 для завершения итеративного процесса.
Бихэм и Шамир доказали, что разрушение пути обратной связи младшего значащего бита (LSB) этого регистра состояния заставляет LSB всех выходных данных раундовой функции постоянно оставаться в состоянии логического 0. Эта одноразрядная аппаратная ошибка создаёт устойчивое смещение во всех последующих выходных данных шифрования.
Путем статистического сравнения младших шести бит левой и правой половин данных в нескольких ошибочных шифротекстах злоумышленник может восстановить несколько отдельных битов секретных раундовых подключей. Сбор примерно десяти шифротекстов с физически повреждённой микросхемы предоставляет достаточные данные для дифференциального криптоанализа для вывода большей части материала раундовых ключей.
После восстановления большей части раундовых ключей оставшиеся неизвестные биты 56-битного главного ключа могут быть найдены с помощью тривиального полного перебора на потребительском оборудовании. Эта атака стала первым доказанным методом взлома аппаратных реализаций DES, когда входной открытый текст остаётся полностью неизвестным злоумышленнику.
Эта способность, не зависящая от открытого текста, делает атаку особенно опасной для реальных приложений смарт-карт. Большинство платёжных смарт-карт используют внутренние данные состояния транзакций в качестве открытого текста для шифрования, что означает, что входные значения никогда не раскрываются внешним сторонам во время нормальной работы.
Мы предлагаем простую, недорогую аппаратную контрмеру для блокировки этой атаки разрушения вентилей. Микросхема, модифицированная выборочным повреждением вентилей, теряет математическое свойство, что шифрование и дешифрование являются обратными операциями. Разработчики могут добавить легковесную самопроверку во время выполнения, которая автоматически проверяет это обратное соотношение при загрузке устройства.
Самопроверка выполняет простую последовательность проверки: генерирует случайный блок открытого текста, шифрует его временным тестовым ключом, дешифрует полученный шифротекст и сравнивает дешифрованный вывод с исходным открытым текстом. Несовпадение указывает на постоянное аппаратное вмешательство, и устройство может навсегда заблокировать все секретные ключевые материалы для предотвращения дальнейшей эксплуатации. Один из наших промышленных клиентов уже внедрил этот механизм самопроверки в новый защищённый чип, находящийся в разработке.
4 Атаки на остаточную память
В основополагающей статье конференции USENIX [15] Гутман всесторонне задокументировал физические механизмы остаточной памяти — явления, при котором как статическая RAM (SRAM), так и динамическая RAM (DRAM) сохраняют ранее сохранённые значения данных в течение значительного времени после отключения питания. Этот эффект длительного хранения данных поднимает критические вопросы безопасности для инженеров, проектирующих защищённые системы хранения ключей.
Ответственный инженер по безопасности должен проанализировать, как характеристики остаточной памяти в реальных условиях влияют на защиту криптографических ключей, хранящихся во встраиваемом аппаратном обеспечении безопасности. Мы провели практическое тематическое исследование, нацеленное на устаревшие банковские модули безопасности, широко развёрнутые в глобальных банкоматных сетях, для количественной оценки этого риска в действующих финансовых системах.
Большинство международных банков принимают стандартизированную систему управления PIN-кодами, первоначально разработанную IBM и позже доработанную VISA для безопасности транзакций в банкоматах [4]. Эта система регулирует то, как персональные идентификационные номера клиентов (PIN) генерируются, хранятся и проверяются в специализированных аппаратных модулях безопасности (HSM).
Пользовательский PIN-код математически выводится из основного номера банковского счета с использованием стандартизированного криптографического процесса. Сначала номер счета шифруется с помощью выделенного 64-битного ключа DES PIN. Двоичный выход шифротекста затем децимализуется в строку цифр. К этому промежуточному результату добавляется фиксированное значение десятичного смещения без переноса для генерации окончательного пользовательского PIN-кода. Параметр смещения позволяет банкам разрешить клиентам настраивать свои собственные запоминающиеся PIN-значения без изменения базовой криптографической логики вывода.
Официальный стандартизированный пример расчёта из спецификации безопасности VISA [4] выглядит следующим образом:
Номер счета: 8807012345691715
Ключ PIN: FEFEFEFEFEFEFEFE
Результат DES: A2CE126C69AEC82D
Результат децимализации: 0224126269042823
Естественный PIN: 0224
Смещение: 6565
Пользовательский PIN: 6789
Банковский HSM выполняет все операции вывода, проверки и управления ключами PIN в физически защищённом от взлома доверенном аппаратном обеспечении. Эта аппаратная изоляция обеспечивает политику двойного контроля, которая предписывает, что ни один сотрудник банка не может получить полный доступ к открытому PIN-коду любого клиента в любой момент обработки транзакции [20].
Для обеспечения этой политики HSM ограничивает авторизацию команд на основе классов владения ключами. Например, устройство выполняет команду проверки PIN только в том случае, если предоставленное значение PIN зашифровано с помощью уникального ключа, назначенного исключительно для запрашивающего терминала банкомата или филиала банка. Этот контроль доступа предотвращает использование HSM в качестве криптографического оракула для проведения атак полного перебора по значениям PIN-кодов клиентов.
Все внутренние ключи в HSM классифицируются по отдельным функциональным группам. Каждый рабочий ключ шифруется с помощью 3DES с использованием одной из двенадцати пар главных ключей DES, хранящихся в области SRAM с низкими адресами в HSM. Ключи связи с банкоматами шифруются под главными парами 14 и 15, в то время как ключи межбанковских расчётов используют пары 6 и 7 для изоляции.
Зашифрованные значения долгосрочных ключей, таких как критический ключ вывода PIN, встроены непосредственно в двоичный код прикладной прошивки HSM. Эти зашифрованные блоки ключей полностью видны всем программистам банка, имеющим доступ к исходному коду прошивки, что означает, что единственным слоем, защищающим основные открытые ключи, является физическая устойчивость HSM к взлому.
Физическая защита от взлома реализована с помощью внутренних переключателей на крышке. Вскрытие металлического корпуса HSM активирует переключатели, которые немедленно отключают питание области хранения ключей SRAM для мгновенного стирания всех открытых главных ключей. Устройство требует замены батареи каждые несколько лет во время планового технического обслуживания, и доверенный персонал банка перезагружает составные части главных ключей после каждой операции обслуживания.
Мы получили и протестировали один устаревший блок HSM, произведённый в конце 1980-х годов, для нашего эксперимента по остаточной памяти. После полного отключения устройства на длительный период и последующего восстановления питания мы обнаружили, что значения главных ключей, хранящиеся в SRAM, остались почти полностью нетронутыми.
Только от 5% до 10% битов ключа подверглись случайному повреждению из-за распада остаточной памяти за период отключения питания. Нам запрещено раскрывать точные правильные значения главных ключей, частичные считанные остаточные значения, имя работающего банка и производителя устройства из-за соглашений о неразглашении, подписанных перед исследованием.
Эта умеренная частота ошибок битов из-за остаточной памяти уже вызывает тревогу сама по себе. Однако сочетание этого эффекта остаточной памяти с встроенной проверкой нечётной чётности DES создаёт чрезвычайно опасную уязвимость, которая резко снижает сложность атак восстановления ключей.
Если восстановленный двойной ключ DES содержит примерно пять повреждённых битов из-за остаточной SRAM, наивный аналитик безопасности может предположить, что сложность полного перебора равна комбинаторной стоимости исправления 10 ошибочных битов в 112-битном пространстве ключей. Это потребовало бы вычисления (112 choose 10) операций DES, что на первый взгляд выглядит вычислительно затратным.
Каждая кандидатная догадка ключа требует двух вычислительных шагов: во-первых, расшифровать общедоступный зашифрованный блок ключа PIN с использованием кандидатного двойного ключа DES. Во-вторых, для кандидатов с допустимой нечётной чётностью зашифровать тестовый номер счета, чтобы проверить, соответствует ли децимализованный выход целевому PIN-коду клиента. Общая теоретическая нагрузка приближается к 3 × (112 choose 10) операций DES, что эквивалентно примерно 2^50 вычислительной сложности.
Прямой аппаратно ускоренный полный перебор по раскрытому ключу PIN всё ещё был бы дешевле, чем выполнение этого сложного теоретического потока поиска. Однако избыточность чётности на уровне байтов DES снижает фактическую сложность атаки на несколько порядков за счёт целенаправленного отбрасывания недопустимых кандидатов ключей.
Если ни один байт ключа не содержит двух одновременных ошибок битов (наиболее распространённый сценарий), злоумышленнику требуется только семь догадок на каждый наблюдаемый байт с чётной чётностью для восстановления допустимой чётности. Для стандартного 10-байтового двойного ключа DES общая сложность снижается до 3 × 7^10 ≈ 2^30 операций, что тривиально для современных вычислительных устройств потребительского класса.
Даже в худшем случае, когда один байт ключа содержит две битовые ошибки, общая сложность поиска возрастает только до примерно 2^38 операций DES. Эта нагрузка полностью осуществима для целеустремлённого злоумышленника класса I с использованием недорогих GPU-установок для подбора паролей, доступных на потребительском рынке.
Проверка чётности DES имеет хорошо задокументированную историю создания уязвимостей безопасности, а не усиления защиты. В одном историческом инциденте код DES с принудительной чётностью был интегрирован в зашифрованное приложение Telnet. Сеансовые ключи, полученные из обмена ключами Диффи-Хеллмана, генерируются случайным образом, поэтому только 1 из 256 сгенерированных ключей удовлетворял требованиям нечётной чётности DES.
Все остальные попытки обмена ключами завершались ошибкой при загрузке, и поскольку прошивка не проверяла коды возврата функций, зашифрованный сеанс продолжался с использованием неинициализированного мусорного ключевого материала, создавая катастрофическую угрозу безопасности [8]. В другом банковском инциденте недопонимание привело к тому, что несколько учреждений использовали ASCII-пароли с принудительной нечётной чётностью в качестве своих операционных PIN-ключей.
ASCII-символы всегда имеют ноль в самом старшем бите, в то время как проверка чётности DES проверяет только младший бит каждого байта. Это несоответствие снижает эффективную энтропию ключей, полученных из паролей, ниже теоретического предела 2^48, дополнительно ослабляя защиту от словарных атак [13]. Эти исторические примеры доказывают, что избыточность чётности ключей последовательно создаёт непредвиденные поверхности для атак при плохой интеграции в реальные системы.
5 Ошибки протоколов
Ошибки проектирования криптографических протоколов являются гораздо более распространённым вектором атак, чем признают большинство специалистов по безопасности [3]. Многие уязвимости протоколов не требуют дорогостоящего лабораторного оборудования для эксплуатации, а некоторые могут быть использованы с помощью только базовых модификаций программного обеспечения или простого пассивного мониторинга сигналов.
Классический пример нацелен на коммерческие декодеры спутникового платного телевидения, которые используют двухчиповую аппаратную архитектуру. Специализированный криптографический сопроцессор обрабатывает вычислительно интенсивную расшифровку транслируемых видеопотоков, в то время как основной микроконтроллер управляет всей связью между сопроцессором и смарт-картой абонента, содержащей ключи.
Когда клиент прекращает оплату подписки, оператор вещания передаёт целевое управляющее сообщение по воздуху, предназначенное для постоянного отключения смарт-карты клиента и блокировки будущей расшифровки видео. Знаменитый взлом "Kentucky Fried Chip" использовал эту простую логику протокола путём замены основного микроконтроллера устройства модифицированным сторонним блоком.
Модифицированный микроконтроллер содержал пользовательскую прошивку, которая идентифицирует и отбрасывает сообщение об отключении подписки до того, как оно достигнет смарт-карты. Эта тривиальная аппаратная замена полностью обходит систему удалённого контроля доступа оператора с нулевыми повторяющимися затратами для злоумышленника [3].
Другая хорошо задокументированная атака на ошибки протоколов нацелена на защищённый встраиваемый микроконтроллер Dallas Semiconductor DS5002FP, как подробно описано в нашем предыдущем исследовании [2]. Это устройство использует зашифрованную память вне кристалла для защиты внешней прошивки и хранилища данных. Критическая ошибка протокола в логике аутентификации памяти позволяет злоумышленникам полностью обойти границу шифрования и прочитать всё содержимое внешней памяти в открытом виде без какого-либо физического манипулирования устройством.
Наиболее серьёзные атаки на протоколы не требуют какого-либо специализированного оборудования, полагаясь исключительно на ошибочную логику транзакций и бреши в контроле доступа. Мы обнаружили одну такую уязвимость, не требующую оборудования, возникшую в результате модификации пользовательского программного обеспечения, развёрнутого на парке аппаратных модулей безопасности крупного банка.
Банк инициировал модернизацию основной банковской системы, которая потребовала изменения числового формата всех номеров счетов клиентов в его транзакционной базе данных. Поскольку стандартный PIN-код клиента криптографически выводится непосредственно из номера счета, это изменение формата автоматически изменило бы естественное значение PIN по умолчанию для каждого пользователя.
Чтобы избежать недовольства клиентов и затрат на поддержку, связанных с массовым сбросом PIN-кодов, банк искал способ сохранить существующие PIN-коды клиентов после миграции номеров счетов. Команда безопасности планировала рассчитать настроенные значения десятичного смещения для каждого счета таким образом, чтобы конечный пользовательский PIN-код оставался идентичным до и после миграции базы данных.
Заводская прошивка HSM банка по умолчанию не включала команду транзакции для вычисления этих смещений миграции. Это преднамеренное упущение было функцией безопасности, предназначенной для предотвращения манипуляций с выводом PIN-кода путём произвольного переназначения номеров счетов.
Банк обратился к производителю оборудования с запросом на создание пользовательского патча прошивки, реализующего требуемую транзакцию вычисления смещения. Производитель предоставил модифицированный двоичный файл с чётким письменным предупреждением: пользовательская команда была чрезвычайно опасна для общего использования и должна выполняться только один раз во время пакетной миграции, а затем быть навсегда удалена из прошивки HSM.
Производитель явно не документировал конкретные риски безопасности, вносимые пользовательской командой, оставляя инженерную команду банка в неведении о полном масштабе уязвимости. Из-за незапланированных внутренних ротаций персонала и задержек в сроках проекта миграция номеров счетов была отложена на неопределённый срок.
В результате опасный пользовательский патч прошивки остался постоянно установленным на всех производственных блоках HSM банка без запланированной даты удаления. Это оставило критический бэкдор протокола открытым для любого инсайдера с базовыми привилегиями доступа к командам HSM.
Примерно через двенадцать месяцев после развёртывания патча программист низкого уровня из банка обнаружил критическую уязвимость в синтаксисе пользовательской транзакции. Недокументированная команда имела следующую функциональную структуру: для данного исходного номера счета X и существующего смещения Y вычислить новое смещение Z, сохраняющее исходное значение PIN для целевого номера счета.
Злонамеренный программист мог ввести номер счета любого клиента и его текущее открытое значение смещения (большинство по умолчанию равно нулю) в качестве параметров X и Y. Затем он вводил свой собственный номер счета в качестве целевого значения Z. HSM возвращал требуемое смещение для мгновенного копирования PIN-кода цели на его счёт.
Используя эту простую эксплуатацию протокола, инсайдер мог тривиально вычислить и извлечь открытый PIN-код любого клиентского счета в базе данных банка без какого-либо физического взлома оборудования, криптографического взлома или повышенных системных привилегий.
К счастью для банка и его клиентов, этичный программист ответственно сообщил об уязвимости протокола руководству по информационной безопасности банка вместо того, чтобы использовать её для финансовой выгоды или кражи данных. Этот инцидент служит мощным примером опасностей недокументированных модификаций прошивки в доверенном аппаратном обеспечении безопасности.
6 Выводы
В этой статье мы значительно продвинули современное состояние дифференциального анализа ошибок для встраиваемых устройств безопасности. Наша модель ошибок, ориентированная на инструкции, сокращает количество ошибочных шифротекстов, требуемых для полного восстановления ключа DES, с традиционных 200 образцов до всего лишь от одного до десяти, что резко снижает барьер для малобюджетных злоумышленников.
Мы показали, что реализации RSA на основе CRT могут быть полностью взломаны всего с одной ошибочной подписью, сгенерированной с помощью атак глитчинга в реальном времени, что обеспечивает невидимую факторизацию модуля на месте во время обычных розничных транзакций. Это создаёт непосредственные угрозы для глобальной безопасности платёжных карт EMV.
Наша техника также обеспечивает эффективную обратную разработку полностью неизвестных проприетарных блочных шифров. Для компактных программных алгоритмов, таких как RC5, наш метод искажения инструкций превосходит классический анализ ошибок на основе данных Бихэма и Шамира как по скорости, так и по простоте реализации.
В отличие от многих предыдущих академических исследований атак с использованием ошибок, полагающихся на идеализированные теоретические модели ошибок, все методы, представленные в этой работе, используют физически реалистичные, экспериментально подтверждённые механизмы ошибок. Каждая описанная атака была успешно реализована в лабораторных условиях и непосредственно применима к коммерчески развёрнутым защищённым от взлома устройствам в полевых условиях.
Фундаментальным концептуальным прорывом нашего исследования является перенос внедрения ошибок с искажения битов данных времени выполнения на искажение потока выполнения инструкций ЦПУ. Этот простой парадигматический сдвиг создаёт более надёжную утечку, более широкий охват атак и более низкие затраты на реализацию для всех встраиваемых атак с использованием ошибок.
Мы также подтвердили, что обычное недорогое лабораторное оборудование, доступное студентам университетов и отдельным любителям, может быть использовано для физических атак на поверхность микросхем. Микроиглы и лазерные резаки, доступные всего за несколько тысяч долларов, позволяют извлекать ключи из устройств, позиционируемых как криптографически безопасные и физически защищённые от взлома.
Наше исследование подтверждает, что механизмы избыточности криптографических ключей, такие как обязательное правило нечётной чётности для ключей DES, резко усиливают влияние физических уязвимостей памяти. Это подкрепляет ключевой урок из предыдущих исследований встраиваемой безопасности [9]: проектирование избыточности ключей требует гораздо более тщательного анализа безопасности, чем это исторически получало от разработчиков алгоритмов.
Ярким реальным примером является опасное взаимодействие между правилами чётности байтов DES и эффектами остаточной SRAM в устаревших банковских HSM. Эта комбинация позволяет малоквалифицированным злоумышленникам восстанавливать полные наборы главных ключей из выведенных из эксплуатации или выброшенных модулей безопасности с минимальными вычислительными усилиями.
Основываясь на этом выводе, мы рекомендуем строгую операционную политику: все выведенные из эксплуатации защищённые от взлома модули безопасности, содержащие постоянное хранилище ключей, должны проходить полное физическое уничтожение, включая измельчение микросхем SRAM, для предотвращения атак восстановления ключей после снятия с эксплуатации.
Наконец, наша работа классифицирует атаки на два взаимодополняющих класса: физические аппаратные эксплойты и чисто протокольные уязвимости. Многие критические нарушения безопасности обходят сложные механизмы физической устойчивости к взлому, используя тонкие ошибки логики в протоколах связи и транзакций.
В совокупности все экспериментальные результаты и тематические исследования в этой статье доказывают две основные истины для сообщества встраиваемой безопасности. Во-первых, создание действительно надёжных защищённых от взлома аппаратных устройств экспоненциально сложнее, чем предполагает массовое понимание отрасли. Во-вторых, программирование безопасной прошивки и правильное развёртывание этих устройств в сложных распределённых системах представляет собой в равной степени сложную инженерную задачу.
Почему стоит выбрать Mikatech, пожалуйста, нажмите здесь, чтобы узнать
У разных производителей микросхем разные номера деталей, но внутреннее ядро чипа может быть изготовлено по одной и той же технологии. Было бы довольно невозможно перечислить все номера деталей, к которым может быть применена наша технология, такие как MYSON, STK, FEELING, ANALOG, FUJITSU, NOVATEK, LG/HYNDAI.
Кроме того, с развитием технологий мы каждый день накапливаем всё больше опыта и разрабатываем новые методы обратной разработки для различных интегральных микросхем. Полный список номеров интегральных микросхем, входящих в нашу компетенцию, постоянно растёт. Пожалуйста, свяжитесь с нами, чтобы узнать подробности.
Mikatech Innovative Limited понимает важность конфиденциальности своих клиентов. В момент обращения в Mikatech ваша личная информация будет защищена в соответствии с нашими управленческими регламентами, разработанными за годы практики. Mikatech использует эту информацию для настройки своих услуг под вас и никогда не передаёт её третьим лицам по каким-либо причинам.
По каждому проекту мы удаляем все данные, материалы и коды через 60 дней после передачи файлов — это защищает нас и вашу конфиденциальность.
Да, это абсолютно законно.
Mikatech предоставляет услуги обратной разработки исключительно в образовательных целях. Использование вышеуказанных услуг может быть незаконным в некоторых странах или регионах — пожалуйста, проверьте местные законы.
Mikatech не несёт никакой ответственности в связи с использованием услуг, которые могут считаться незаконными.