РАЗБОР
На проверке
Static 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) - считывание состояния через термоиндуцированные токи
Для 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 wipe). Но сенсоры - цифровые схемы на том же питании. И вот тут начинается самое интересное.Если напряжение падает достаточно быстро, сенсоры входят в brownout раньше, чем успевают отработать процедуру очистки:
- Сенсор детектирует падение напряжения
- FSM сенсора начинает обработку сигнала тревоги
- Brownout замораживает FSM сенсора до того, как сигнал wipe дошёл до регистров
Атака иногда упоминается под неточным названием «Chypothermia» (chip + hypothermia), но оригинальное название - Chypnosis (chip + hypnosis). Не охлаждение, а погружение в сон.
Экспериментальная установка и характеризация
Предусловия и ограничения
Устройства под тестом и определение порога гибернации
Тестировались два типа FPGA на 28-нм техпроцессе: SRAM-based (типичны для AMD/Xilinx) и Flash-based (типичны для Microchip/Lattice). Оба типа оказались уязвимы - физика удержания данных в flip-flop'ах не зависит от типа конфигурационной памяти. Тип памяти для конфигурации - одно, а flip-flop'ы, которые держат рабочие данные - совсем другое.Для каждого чипа нужно определить brownout-зону. Методика (по описанию из Appendix A оригинальной публикации):
- Настроить тестовый дизайн с известным паттерном данных в регистрах FPGA
- Плавно снижать VCC с шагом ~10 мВ, на каждом шаге проверяя сохранность данных и активность клока
- Зафиксировать V<sub>STOP</sub> (клок останавливается) и V<sub>CRASH</sub> (данные теряются)
- Рабочая зона: 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
Обход защитных сенсоров
Программные 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
- 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
Chypnosis vs clock glitching vs data remanence
| Параметр | Clock Glitching (DFA) | Data Remanence | Chypnosis |
|---|---|---|---|
| Цель | Внесение ошибок в вычисления | Чтение остаточных данных после отключения | Заморозка состояния для статического считывания |
| Питание | Номинальное с кратковременными отклонениями | Полное отключение | Снижение ниже V<sub>STOP</sub>, выше V<sub>RET</sub> |
| Тактовый генератор | Работает (с glitch'ами) | Отключён | Останавливается косвенно |
| Время жизни данных | Не применимо | Деградация за секунды-минуты | Неограниченно при VCC > V<sub>RET</sub> |
| Класс атаки | Активная (fault injection) | Пассивная | Пассивная после активной подготовки |
| Маскирование | Частично эффективно | Частично эффективно | Неэффективно (single trace) |
| Тип side-channel | DFA - по ошибкам вычислений | Static data remanence | Static backscatter (LLSI/IA) |
Chypnosis берёт лучшее от обоих подходов: работает со статическими данными (не нужны повторные вычисления) и позволяет контролировать момент атаки. При этом данные не деградируют и доступны для single-trace извлечения - этого нет ни у glitching, ни у data remanence.
Контрмеры: что работает и что нет
Почему существующие защиты не справляются
Три класса защит, которые Chypnosis обходит:- Clock sensors (soft IP) - замерзают вместе с основным клоком
- Voltage sensors (hard IP) - детектируют аномалию, но FSM реакции не успевает отработать
- Data masking - неэффективна против single-trace атак
Асинхронный сброс: предложенная контрмера
Авторы 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;
Маппинг на 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 |
| Потенциальная компрометация firmware | Firmware 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 - не теоретическая угроза, а прямое руководство к действию.
AI-выжимка
сгенерировано ИИ
Тезисы статьи скоро
Статья читается полностью. Тезисы со ссылками на разделы появятся позже.
Содержание
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Перейти к курсу →
Поиск в обсуждении
Карта ветки
Продолжить чтение
Следующий разбор
Wi-Fi адаптер для пентеста: выбор чипсета в 2025
Ещё по теме
- Статья
- Статья
- Статья
Комментарии
0