# 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). ```python # 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 та корелюйте з витоком. ```python 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. --- ## Посилання * [ChipWhisperer Documentation](https://chipwhisperer.readthedocs.io/en/latest/) * [Hertzbleed Attack Paper](https://www.hertzbleed.com/) {{#include ../../banners/hacktricks-training.md}}