РАЗБОР На проверке 

Static side-channel атака: заморозка генератора

Сергей Попов
Сергей Попов Red Team · 6,4 тыс. сообщений
Подписаться
232
Режим чтения
Кварцевый генератор во льду лежит на антистатическом коврике, на корпусе выгравирована надпись про статическую side-channel атаку. Рядом открытая микросхема с расправленными выводами, тёплый свет л...


В мае 2025-го AMD выпустила бюллетень AMD-SB-8018 и подтвердила то, что многие в hardware security считали маловероятным: серии FPGA Artix 7 и Kintex 7 уязвимы к атаке нового класса. Группа исследователей (K. Mitard, S. K. Monfared, F. K. Dana, R. Dumitru, Y. Yarom, S. Tajik) показала технику Chypnosis - быстрое снижение напряжения питания ниже порога логических переключений, но выше порога удержания данных в ячейках памяти. Тактовый генератор замирает, защитные сенсоры не успевают очистить секреты, а содержимое flip-flop'ов и SRAM остаётся на месте. Результат - извлечение криптографического ключа из защищённого модуля OpenTitan за одну трассу. Одну. Эта static side-channel атака через заморозку тактового генератора переворачивает устоявшуюся модель защиты кремния: спящий чип оказывается опаснее работающего.

Статические side-channel атаки: зачем нужна остановка тактового генератора​

Классические динамические side-channel атаки - DPA (Differential Power Analysis) и CPA (Correlation Power Analysis) - эксплуатируют переходные процессы в схеме во время вычислений. Каждый такт работы криптографического модуля создаёт измеримые флуктуации потребляемой мощности или электромагнитного излучения. Для успешной DPA нужны тысячи трасс - множество измерений одной операции с разными входными данными. Модель утечки (Hamming weight / Hamming distance) описывает корреляцию между обрабатываемым промежуточным значением и наблюдаемым побочным сигналом. Область хорошо изученная, контрмеры развитые - и именно поэтому атакующие ищут обходные пути.

Статические side-channel атаки работают принципиально иначе. Вместо наблюдения за переходными процессами атакующий считывает состояние данных, уже сохранённых в регистрах (flip-flop'ах) и ячейках SRAM. К этому классу относятся:
  • Static Power Analysis - измерение статического тока утечки, зависящего от сохранённых битов
  • Laser Logic State Imaging (LLSI) - облучение чипа ближним ИК-лазером и анализ модулированного отражения от транзисторов в зависимости от логического состояния
  • Impedance Analysis (IA) - стимуляция чипа микроволновым излучением и анализ импеданса, зависящего от состояния ячеек
  • Thermal Laser Stimulation (TLS) - считывание состояния через термоиндуцированные токи
Критическое ограничение всех статических атак - время. Считывание состояния одного регистра на порядки превышает тактовый период. При рабочей частоте 100 МГц период составляет 10 нс, тогда как LLSI-сканирование одного пикселя занимает микросекунды. Если тактовый генератор продолжает работать, данные в регистрах меняются быстрее, чем атакующий успевает их прочитать. Отсюда первое обязательное условие: заморозка тактового генератора чипа.

Для backscatter-атак (LLSI, IA) есть второе условие: модуляция напряжения питания для создания детектируемого отражённого сигнала. Атакующий подаёт переменное напряжение на VCC и измеряет, как меняется отражение лазера или микроволн в зависимости от состояния транзистора. При работающем клоке собственная коммутация схемы маскирует модуляцию. Остановка генератора - enabler всего класса статических атак.

Backscatter-атаки дают более высокое отношение сигнал/шум (SNR), а в ряде случаев - извлечение секрета за единственную трассу. Это делает неэффективными рандомизирующие контрмеры (masking), которые работают только при многократных измерениях. Маскирование проектировали против DPA. Против single-trace оно бесполезно.

Brownout-гибернация: физика Chypnosis​

Пороги напряжения: логика vs удержание данных​

Каждая цифровая микросхема работает в определённом диапазоне напряжений. Ниже номинального порога (V<sub>NOM</sub>) логические элементы начинают сбоить. Но есть промежуточная зона - между порогом логических переключений (V<sub>STOP</sub>) и порогом удержания данных (V<sub>RET</sub>). Именно эту зону эксплуатирует Chypnosis.

При быстром снижении VCC ниже V<sub>STOP</sub>, но выше V<sub>RET</sub>, возникает brownout-состояние - «гибернация» чипа:
  • Тактовые буферы прекращают переключение - генератор фактически останавливается, хотя физически не отключён
  • Конечные автоматы (FSM) в сенсорах и контроллерах замирают в текущем состоянии
  • Flip-flop'ы и SRAM продолжают удерживать данные за счёт остаточного заряда и подпороговых токов
Не путать с data remanence (cold boot attack): при brownout чип остаётся запитанным. Данные не деградируют - они сохраняются неопределённо долго, пока напряжение выше V<sub>RET</sub>. Атакующий получает неограниченное временное окно для считывания. Хоть час, хоть сутки.

Скорость спада напряжения как оружие​

Защитные механизмы включают сенсоры напряжения и тактовой частоты. При обнаружении аномалии они запускают процедуру очистки секретных данных (data wipe). Но сенсоры - цифровые схемы на том же питании. И вот тут начинается самое интересное.

Если напряжение падает достаточно быстро, сенсоры входят в brownout раньше, чем успевают отработать процедуру очистки:
  1. Сенсор детектирует падение напряжения
  2. FSM сенсора начинает обработку сигнала тревоги
  3. Brownout замораживает FSM сенсора до того, как сигнал wipe дошёл до регистров
Красивая ирония: защитные сенсоры становятся частью уязвимости. Детектируют атаку, но не успевают на неё среагировать. Охранник заметил вора, открыл рот - и уснул. Исследование подробно характеризует зависимость между скоростью спада напряжения и частотой тактового генератора (раздел «Voltage Falling Time vs Clock Frequency» оригинальной публикации), что критично для подбора параметров атаки на конкретном чипе.

Атака иногда упоминается под неточным названием «Chypothermia» (chip + hypothermia), но оригинальное название - Chypnosis (chip + hypnosis). Не охлаждение, а погружение в сон.

Экспериментальная установка и характеризация​

Предусловия и ограничения​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Устройства под тестом и определение порога гибернации​

Тестировались два типа FPGA на 28-нм техпроцессе: SRAM-based (типичны для AMD/Xilinx) и Flash-based (типичны для Microchip/Lattice). Оба типа оказались уязвимы - физика удержания данных в flip-flop'ах не зависит от типа конфигурационной памяти. Тип памяти для конфигурации - одно, а flip-flop'ы, которые держат рабочие данные - совсем другое.

Для каждого чипа нужно определить brownout-зону. Методика (по описанию из Appendix A оригинальной публикации):
  1. Настроить тестовый дизайн с известным паттерном данных в регистрах FPGA
  2. Плавно снижать VCC с шагом ~10 мВ, на каждом шаге проверяя сохранность данных и активность клока
  3. Зафиксировать V<sub>STOP</sub> (клок останавливается) и V<sub>CRASH</sub> (данные теряются)
  4. Рабочая зона: V<sub>CRASH</sub> < VCC < V<sub>STOP</sub>
Python:
# Концепция: определение порогов brownout для FPGA
# Требует: SCPI-совместимый источник питания, JTAG-доступ
for vcc in np.arange(V_NOM, 0.0, -0.01):  # шаг 10 мВ
    psu.set_voltage(vcc)
    time.sleep(0.1)
    clk_active = check_clock_output(logic_analyzer)
    data_ok = verify_test_pattern(jtag)
    if not clk_active and data_ok:
        print(f"Brownout zone: VCC={vcc:.2f}V")
    if not data_ok:
        print(f"Data loss: VCC={vcc:.2f}V"); break
Пороги зависят от температуры кристалла: повышение смещает V<sub>STOP</sub> вверх. На практике для воспроизведения достаточно программируемого источника питания с SCPI-интерфейсом и логического анализатора для мониторинга клока. При увеличении тактовой частоты порог V<sub>STOP</sub> тоже смещается вверх - схема потребляет больше и раньше входит в brownout.

Обход защитных сенсоров​

Программные clock-сенсоры (Soft IP)​

В литературе описаны реализации clock freeze detection sensors в виде soft IP для FPGA (например, работы Farheen et al.). Принцип: независимый ring oscillator мониторит активность основного клока. При остановке - сигнал тревоги и wipe.

Chypnosis обходит такие сенсоры тривиально: soft IP работает на том же напряжении питания. При brownout ring oscillator прекращает генерацию - сенсор замерзает вместе с основным клоком и не генерирует сигнал очистки. Защита и защищаемое - на одном питании. Классическая ошибка.

Аппаратные сенсоры (Hard IP)​

XADC Xilinx. FPGA серии 7 от AMD содержат встроенный XADC - аппаратный АЦП, способный мониторить напряжение. В исследовании Chypnosis XADC сконфигурировали как сенсор с порогом тревоги. XADC детектировал падение напряжения, но выполнение реакции требует работы цифровой логики, которая к моменту обработки уже находилась в brownout. Бюллетень AMD-SB-8018 подтверждает: XADC-based voltage monitor «is too slow to detect and/or execute a tamper response to clear memory contents». AMD сама признаёт - не успевает.

AT-модуль Microchip. Для flash-based FPGA исследователи протестировали аппаратный Anti-Tamper модуль Microchip. Быстрый спад напряжения обходит его реакцию аналогичным образом.

Alert Handler OpenTitan​

OpenTitan - открытый root-of-trust дизайн с Alert Handler, централизованным модулем обработки угроз. Chypnosis успешно обходит Alert Handler при реализации на FPGA. Быстрый спад напряжения замораживает FSM обработчика до завершения реакции. Прямая демонстрация на реальном проекте root-of-trust - не на учебном стенде.

В терминологии MITRE ATT&CK этот этап соответствует технике Disable Crypto Hardware (T1600.002, Defense Impairment) - атакующий нейтрализует аппаратную защиту криптографического модуля.

Извлечение секретов в состоянии гибернации​

LLSI на «спящем» чипе​

LLSI считывает логическое состояние транзисторов через отражение ближнего ИК-лазера от задней поверхности кристалла. Отражательная способность p-n перехода зависит от приложенного напряжения, а значит - от сохранённого бита. Модуляция VCC создаёт детектируемое переменное отражение.

В рамках Chypnosis показано, что модуляция VCC возможна в brownout-состоянии: амплитуда достаточно мала, чтобы не вывести чип из гибернации и не «разбудить» сенсоры. На выходе - полная карта логических состояний регистров криптографического модуля. Весь ключ, бит за битом.

Импедансный анализ в brownout​

IA использует микроволновое излучение вместо лазера. Микроволновый зонд стимулирует чип, отражённый сигнал несёт информацию о состоянии ячеек. Преимущество перед LLSI: не нужен оптический доступ к задней поверхности кристалла - достаточно контактного зонда на металлизации. Chypnosis позволяет проводить IA в brownout: данные стабильны и не меняются со временем, синхронизация с тактовым сигналом не нужна. Данные просто лежат и ждут.

Извлечение ключа за одну трассу​

Ключевой результат: из криптографического модуля OpenTitan, защищённого side-channel countermeasures (masking), извлечён секретный ключ за одну трассу (single trace). Маскирование эффективно против DPA - рандомизация масок работает между тактами. Но в замороженном состоянии такт один, маска фиксирована, и данные читаются напрямую.

Я бы назвал это концептуальным нокаутом для masking-only стратегии. Вся рандомизация промежуточных значений построена на предположении, что атакующему нужно много измерений. Single trace - и предположение рассыпается.

С точки зрения MITRE ATT&CK этот этап соответствует Private Keys (T1552.004, Credential Access) - получение криптографических ключей из аппаратного хранилища.

Затронутые устройства: AMD-SB-8018​

Подтверждено:
  • AMD Artix 7-Series FPGA
  • AMD Kintex 7-Series FPGA
Под исследованием (AMD планирует обновления):
  • Alveo Card (UltraScale и UltraScale+ based)
  • Artix UltraScale+ FPGA
  • Kria SOM
  • Kintex UltraScale и UltraScale+ FPGA
  • Spartan-6 FPGA
  • Spartan UltraScale+ FPGA
  • Versal Adaptive SoCs
  • Virtex UltraScale и UltraScale+ FPGA
  • Zynq UltraScale+ RFSoC и MPSoC
Масштаб охватывает практически весь портфель AMD FPGA. Учитывая, что Chypnosis продемонстрирована и на Flash-based FPGA (Microchip), проблема не ограничена одним вендором. AMD прямо указывает: атака «в общем случае применима ко всем интегральным схемам, не имеющим эффективной реакции на событие пониженного напряжения». Читай: ко всем, кто не думал о brownout как о векторе атаки.

Chypnosis vs clock glitching vs data remanence​

ПараметрClock Glitching (DFA)Data RemanenceChypnosis
ЦельВнесение ошибок в вычисленияЧтение остаточных данных после отключенияЗаморозка состояния для статического считывания
ПитаниеНоминальное с кратковременными отклонениямиПолное отключениеСнижение ниже V<sub>STOP</sub>, выше V<sub>RET</sub>
Тактовый генераторРаботает (с glitch'ами)ОтключёнОстанавливается косвенно
Время жизни данныхНе применимоДеградация за секунды-минутыНеограниченно при VCC > V<sub>RET</sub>
Класс атакиАктивная (fault injection)ПассивнаяПассивная после активной подготовки
МаскированиеЧастично эффективноЧастично эффективноНеэффективно (single trace)
Тип side-channelDFA - по ошибкам вычисленийStatic data remanenceStatic backscatter (LLSI/IA)

Chypnosis берёт лучшее от обоих подходов: работает со статическими данными (не нужны повторные вычисления) и позволяет контролировать момент атаки. При этом данные не деградируют и доступны для single-trace извлечения - этого нет ни у glitching, ни у data remanence.

Контрмеры: что работает и что нет​

Почему существующие защиты не справляются​

Три класса защит, которые Chypnosis обходит:
  1. Clock sensors (soft IP) - замерзают вместе с основным клоком
  2. Voltage sensors (hard IP) - детектируют аномалию, но FSM реакции не успевает отработать
  3. Data masking - неэффективна против single-trace атак
Работа «On Borrowed Time» (NDSS 2025, R. Dumitru, T. Moos, A. Wabnitz, Y. Yarom) предлагает систему Borrowed Time для детекции остановки клока и очистки данных. Chypnosis - прямой ответ: brownout обходит Borrowed Time, что показано экспериментально. Borrowed Time защищает от остановки клока, но не от остановки клока через просадку питания.

Асинхронный сброс: предложенная контрмера​

Авторы Chypnosis предлагают и верифицируют контрмеру: модификация clock detection sensor с асинхронным механизмом сброса.
  • Ring oscillator на частично независимом домене питания
  • При детекции остановки клока - сигнал wipe по асинхронному пути (через аппаратный latch, не через FSM)
  • Асинхронный сброс не зависит от тактовой частоты и может отработать при замедлении логики
Код:
// Концепция: асинхронный wipe через ring oscillator
wire ring_osc;  // независимый ring oscillator
reg [3:0] wdog_cnt;
wire clk_frozen = (wdog_cnt == 4'hF);
always @(posedge ring_osc or negedge rstn)
  if (!rstn) wdog_cnt <= 0;
  else if (sys_clk_edge) wdog_cnt <= 0;
  else wdog_cnt <= wdog_cnt + 1;
// Async wipe: идёт напрямую на clear, минуя FSM
assign async_wipe = clk_frozen;
Бюллетень AMD-SB-8018 рекомендует: «implement a clock monitor in the programmable logic and an asynchronous reset mechanism». AMD отмечает, что исследователи экспериментально верифицировали эффективность контрмеры, но AMD самостоятельно её не подтвердила. То есть авторы атаки предложили и проверили фикс, а вендор пока только кивает.

Маппинг на MITRE ATT&CK​

Этап ChypnosisТехника ATT&CKТактика
Разведка аппаратной платформыHardware (T1592.001), Firmware (T1592.003)Reconnaissance
Определение brownout-зоны чипаSystem Information Discovery (T1082)Discovery
Нейтрализация сенсоров и защитDisable Crypto Hardware (T1600.002)Defense Impairment
Извлечение криптографических ключейPrivate Keys (T1552.004)Credential Access
Потенциальная компрометация firmwareFirmware Corruption (T1495)Impact

Бизнес-логика атаки: зачем это атакующему​

Chypnosis - не академическое упражнение. Три сценария, в которых это реально больно:

Извлечение IP из FPGA. Компании размещают проприетарные алгоритмы в FPGA - DSP, сетевые процессоры, военная электроника. Битстрим зашифрован, ключ хранится в регистрах. Chypnosis позволяет извлечь ключ шифрования битстрима и дешифровать проприетарный дизайн. Годы разработки - за одну трассу.

Компрометация root-of-trust. OpenTitan используется для верификации firmware и управления ключами. Извлечение ключа из OpenTitan компрометирует всю цепочку доверия: от secure boot до шифрования хранилища. Дерево падает с корня.

Атаки на supply chain. При физическом доступе к устройству на этапе производства или обслуживания атакующий извлекает ключи без видимых следов. В отличие от probing, brownout не оставляет физических повреждений. Устройство возвращается заказчику «как новое».

Экономика: программируемый источник питания (несколько тысяч долларов) и стандартное лабораторное оборудование. Для IA-варианта не нужен оптический доступ к кристаллу. Порог входа существенно ниже, чем для FIB (Focused Ion Beam) или microprobing.



Chypnosis ставит вопрос, который индустрия аппаратной безопасности откладывала: что происходит с данными на чипе, когда защитные механизмы сами оказываются жертвой атаки? Сенсоры напряжения и клока - цифровые схемы на том же питании, что и защищаемые данные. Brownout обнажает фундаментальный конфликт: для работы сенсора нужно напряжение, но именно контроль над напряжением - оружие атакующего. Мы годами проектировали countermeasures в предположении, что атакующий будет манипулировать клоком извне или вносить краткосрочные glitch'и в питание. Никто не закладывался на сценарий плавного погружения чипа в гибернацию, при котором сенсоры засыпают первыми.

Второй неудобный момент: маскирование - золотой стандарт защиты от DPA - бесполезно против single-trace статических атак. Рандомизация промежуточных значений работает только при многократных измерениях. Если ключ извлекается за одно сканирование, маски не помогут. Маскирование не устарело - оно необходимо против DPA. Но проектировщики, полагающиеся исключительно на masking + clock sensor, находятся в ложной безопасности.

Предложенная контрмера с асинхронным wipe - шаг в правильном направлении, но для ASIC, где дизайн не обновляется после производства, вопрос острее. В ближайшие год-два жду волну исследований brownout-устойчивых защит и включение brownout detection в требования к safety-critical дизайнам. Кто работает с защищёнными FPGA-дизайнами прямо сейчас - проверьте, реализована ли в вашем дизайне асинхронная реакция на brownout. Если нет, бюллетень AMD-SB-8018 - не теоретическая угроза, а прямое руководство к действию.
Полезно

Комментарии

0

Ещё по теме