hacktricks/src/todo/hardware-hacking/side_channel_analysis.md

7.9 KiB
Raw Blame History

Side Channel Analysis Attacks

{{#include ../../banners/hacktricks-training.md}}

Атаки на основі побічних каналів відновлюють секрети, спостерігаючи за фізичним або мікроархітектурним "витоком", який корелює з внутрішнім станом, але не є частиною логічного інтерфейсу пристрою. Приклади варіюються від вимірювання миттєвого струму, споживаного смарт-карткою, до зловживання ефектами управління енергією ЦП через мережу.


Основні канали витоку

Канал Типовий об'єкт Інструменти
Споживання енергії Смарт-картки, IoT МК, FPGA Осцилограф + шунтуючий резистор/HS зонд (наприклад, CW503)
Електромагнітне поле (EM) ЦП, RFID, прискорювачі AES H-провід + LNA, ChipWhisperer/RTL-SDR
Час виконання / кеші Настільні та хмарні ЦП Таймери високої точності (rdtsc/rdtscp), віддалений час прольоту
Акустичний / механічний Клавіатури, 3-D принтери, реле Мікрофон MEMS, лазерний віброметр
Оптичний та тепловий LED, лазерні принтери, DRAM Фотодіод / камера високої швидкості, ІЧ-камера
Витік, викликаний помилками ASIC/МК криптографії Глітч годинника/напруги, EMFI, лазерна ін'єкція

Аналіз потужності

Простий аналіз потужності (SPA)

Спостерігайте за однією траєкторією та безпосередньо асоціюйте піки/долини з операціями (наприклад, S-блоки DES).

# ChipWhisperer-husky example  capture one AES trace
from chipwhisperer.capture.api.programmers import STMLink
from chipwhisperer.capture import CWSession
cw = CWSession(project='aes')
trig = cw.scope.trig
cw.connect(cw.capture.scopes[0])
cw.capture.init()
trace = cw.capture.capture_trace()
print(trace.wave)  # numpy array of power samples

Differential/Correlation Power Analysis (DPA/CPA)

Отримайте N > 1 000 трас, гіпотезуйте байт ключа k, обчисліть модель HW/HD та корелюйте з витоком.

import numpy as np
corr = np.corrcoef(leakage_model(k), traces[:,sample])

CPA залишається передовою технологією, але варіанти машинного навчання (MLA, глибоке навчання SCA) тепер домінують у змаганнях, таких як ASCAD-v2 (2023).


Електромагнітний аналіз (EMA)

Проби EM ближнього поля (500 МГц3 ГГц) витікають ідентичну інформацію до аналізу потужності без вставлення шунтів. Дослідження 2024 року продемонструвало відновлення ключа на >10 см від STM32, використовуючи кореляцію спектра та недорогі RTL-SDR передавачі.


Атаки на час та мікроархітектуру

Сучасні ЦП витікають секрети через спільні ресурси:

  • Hertzbleed (2022) масштабування частоти DVFS корелює з вагою Хеммінга, що дозволяє віддалене витягування ключів EdDSA.
  • Downfall / Gather Data Sampling (Intel, 2023) транзитне виконання для читання даних AVX-gather через потоки SMT.
  • Zenbleed (AMD, 2023) & Inception (AMD, 2023) спекулятивне неправильне передбачення векторів витікає регістри між доменами.

Для широкого розгляду проблем класу Spectre дивіться {{#ref}} ../../cpu-microarchitecture/microarchitectural-attacks.md {{#endref}}


Акустичні та оптичні атаки

  • 2024 "iLeakKeys" показав 95 % точності відновлення натискань клавіш ноутбука з мікрофона смартфона через Zoom, використовуючи класифікатор CNN.
  • Швидкі фотодіоди захоплюють активність LED DDR4 і реконструюють раунди AES за <1 хвилину (BlackHat 2023).

Введення помилок та диференційний аналіз помилок (DFA)

Комбінування помилок з витоком з боку каналу скорочує пошук ключів (наприклад, 1-трасовий AES DFA). Останні інструменти за ціною хобі:

  • ChipSHOUTER & PicoEMP сплески електромагнітних імпульсів менше 1 нс.
  • GlitchKit-R5 (2025) платформа для спотворення годинника/напруги з відкритим кодом, що підтримує SoC RISC-V.

Типовий робочий процес атаки

  1. Визначити канал витоку та точку монтажу (пін VCC, конденсатор декуплінгу, точка ближнього поля).
  2. Вставити тригер (GPIO або на основі шаблону).
  3. Зібрати >1 тис. трас з належним вибірковим/фільтраційним процесом.
  4. Попередня обробка (вирівнювання, видалення середнього, LP/HP фільтр, вейвлет, PCA).
  5. Статистичне або ML відновлення ключа (CPA, MIA, DL-SCA).
  6. Перевірити та повторити для викидів.

Захист та зміцнення

  • Постійний час реалізації та алгоритми, стійкі до пам'яті.
  • Маскування/перемішування розділити секрети на випадкові частки; сертифікована стійкість першого порядку TVLA.
  • Приховування регулятори напруги на чіпі, випадковий годинник, двоєрельсові логіки, електромагнітні екрани.
  • Виявлення помилок надмірні обчислення, порогові підписи.
  • Операційні вимкнути DVFS/turbo в криптографічних ядрах, ізолювати SMT, заборонити спільне розміщення в багатокористувацьких хмарах.

Інструменти та фреймворки

  • ChipWhisperer-Husky (2024) осцилограф 500 MS/s + тригер Cortex-M; Python API як вище.
  • Riscure Inspector & FI комерційний, підтримує автоматизовану оцінку витоків (TVLA-2.0).
  • scaaml бібліотека SCA на основі TensorFlow (v1.2 2025).
  • pyecsca відкритий фреймворк ECC SCA ANSSI.

Посилання

{{#include ../../banners/hacktricks-training.md}}