7.9 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	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.
 
Типовий робочий процес атаки
- Визначити канал витоку та точку монтажу (пін VCC, конденсатор декуплінгу, точка ближнього поля).
 - Вставити тригер (GPIO або на основі шаблону).
 - Зібрати >1 тис. трас з належним вибірковим/фільтраційним процесом.
 - Попередня обробка (вирівнювання, видалення середнього, LP/HP фільтр, вейвлет, PCA).
 - Статистичне або ML відновлення ключа (CPA, MIA, DL-SCA).
 - Перевірити та повторити для викидів.
 
Захист та зміцнення
- Постійний час реалізації та алгоритми, стійкі до пам'яті.
 - Маскування/перемішування – розділити секрети на випадкові частки; сертифікована стійкість першого порядку 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}}