
Анализ через побочные каналы (SCA) стал ключевой темой в мире кибербезопасности, аппаратной безопасности и криптографического инжиниринга. В отличие от программных эксплойтов или методов грубой силы, атаки через побочные каналы используют реальные физические проявления цифровых процессов, такие как колебания энергопотребления, электромагнитные излучения или временные задержки исполнения. Эти тонкие признаки могут быть тщательно проанализированы для извлечения конфиденциальной информации, такой как криптографические ключи, даже с высокозащищенных устройств.
Эта статья посвящена анализу электромагнитных и энергетических атак через побочные каналы, объясняя векторы атак, примеры из реального мира, методы обнаружения и смягчения, а также предоставляя практические примеры кода для иллюстрации практических аспектов на разных уровнях навыков. Направленная как на начинающих, так и на продвинутых пользователей, это руководство поможет не только понять SCA, но и вооружиться стратегиями для защиты ваших устройств или оценки их безопасности.
Анализ через побочные каналы (SCA) относится к эксплуатации непреднамеренной утечки информации, возникающей, когда вычислительное устройство выполняет криптографические или конфиденциальные операции. Вместо того чтобы нацеливаться на уязвимости программного обеспечения или атаки на математические алгоритмы, SCA использует физические артефакты—“побочные каналы”—для разгадки секретов. Это могут быть изменения в потреблении энергии, излучаемые электромагнитные волны (EM), временные различия, акустические сигналы и даже световые или тепловые излучения.
Простая аналогия: преступник пытается взломать сейф не путем манипуляции с замком, а слушая тонкие щелчки (времена, механические движения) или измеряя вибрации (акустические или EM излучения), когда крутится диск комбинации. SCA использует тонкости, которые устройства проявляют во время выполнения безопасных процессов.
Энергетические атаки через побочные каналы фокусируются на наблюдении за потреблением энергии устройством во время выполнения криптографических операций. Поскольку большинство алгоритмов выполняют различные кодовые пути и процедуры обработки данных в зависимости от битов секретного ключа, энергопотребление варьируется в небольших, но измеримых размерах.
Пока энергетические методы исследования используют линии питания, Электромагнитные атаки через побочные каналы используют антенны и зонды для прослушивания EM волн, излучаемых интегральными схемами во время выполнения логических операций. EM-SCA иногда может быть более сфокусированным и менее инвазивным, поскольку злоумышленникам не нужно физически вмешиваться в линии питания.
Успех SCA зависит от измеримости и корреляции:
Примечание: Злоумышленникам не нужна код устройства или взлом его программной защиты; "утечка" обусловлена физикой и схемами.
Одним из знаменательных результатов DPA была атака на смарт-карты, выполняющие шифрование AES. Наблюдая за потреблением энергии, когда карта шифровала сотни известных значений открытого текста, исследователи извлекли секретный ключ AES без взлома самого алгоритма.
Исследователи показали, что, просто приблизившись к некоторым смарт-картам с специально настроенным зондом, они могли захватывать EM излучения во время выполнения криптографической операции и взломать ключи.
Временные атаки через побочные каналы, такие как Lucky 13 attack, работали путем обнаружения небольших различий во времени, которое TLS серверы затрачивали на обработку определенных неверных или неполных зашифрованных пакетов, обнаруживая информацию о ключах.
Многие IoT-чипы с «безопасными элементами» все еще могут быть уязвимыми, если их физическое оборудование не включает в себя реакцию на вмешательство или маскирование шума, делая даже потребительские осциллографы способными к извлечению ключей.
Примечание: Всегда проводите анализ через побочные каналы (даже на собственных устройствах) легально и этично. Последующие примеры предназначены для исследовательских целей, CTF и обучения только.
Чтобы провести базовое исследование SCA, вам необходимо:
+----------------------+
| Микроконтроллер/SOC |---[Шунт]--[Блок питания]
| (Целевое устройство) |
| |
| [Триггер GPIO]-------+
+----------------------+
|
[Зонд]
|
+-------------+
| Осциллограф |
+-------------+
|
[USB к ПК]
Предполагая, что вы захватили данные сигнала (файлы CSV или бинарные файлы измерений энергии или EM), вы можете использовать Python (с numpy, scipy, и matplotlib) для выполнения основного анализа.
Для некоторых USB-подключенных осциллографов вы можете перечислить устройства, используя библиотеку pyvisa.
import pyvisa
rm = pyvisa.ResourceManager()
print("Подключенные инструменты:")
for resource in rm.list_resources():
print(resource)
Предположим, у вас есть 1000 файлов CSV, содержащих энергетические следы. Давайте рассчитаем средний энергетический сигнал.
import numpy as np
import glob
import matplotlib.pyplot as plt
trace_files = glob.glob('traces/*.csv')
accum = None
count = 0
for fname in trace_files:
data = np.loadtxt(fname, delimiter=',')
if accum is None:
accum = data
else:
accum += data
count += 1
mean_trace = accum / count
plt.plot(mean_trace)
plt.xlabel("№ образца")
plt.ylabel("Энергия (условные единицы)")
plt.title("Средний энергетический сигнал во время операций шифрования")
plt.show()
Предположим, что вы пытаетесь восстановить 1 байт AES ключа, используя гипотетические промежуточные значения (например, выход S-блока) и модель утечки веса Хэмминга. С использованием следов и известных открытых текстов:
def hamming_weight(x):
return bin(x).count('1')
plaintexts = ... # Массив известных входных байтов
traces = ... # 2D numpy массив: размер (кол-во следов, длина следов)
guesses = range(256)
max_corr = np.zeros(256)
for key_guess in guesses:
# Предсказания нагрузки энергии на основе догадки ключа (S-блок и т.д.)
model_vals = np.array([hamming_weight(some_sbox[pt ^ key_guess]) for pt in plaintexts])
# Корреляция с каждым временным образцом
for t in range(traces.shape[1]):
corr = np.corrcoef(traces[:, t], model_vals)[0, 1]
if abs(corr) > max_corr[key_guess]:
max_corr[key_guess] = abs(corr)
print("Лучшее предположение ключа:", np.argmax(max_corr))
(Выше предоставлено для иллюстрации; в реальных атаках используются более сложные модели и предобработка.)
Если ваше устройство сбора данных отображается как последовательное или USB устройство:
lsusb
dmesg | grep tty
Для регистрации данных с последовательного подключенного осциллографа (предполагается устройство /dev/ttyUSB0):
sudo minicom -D /dev/ttyUSB0 -b 115200
Или для непрерывной регистрации:
cat /dev/ttyUSB0 > powertrace.log &
Учитывая невтороественную и алгоритмонезависимую природу SCA, традиционные обновления программного обеспечения недостаточны. Эффективные меры противодействия охватывают проектирование аппаратного обеспечения, программные алгоритмы и процедуры эксплуатации.
контролируемого или ложного шума мощности/EM может замаскировать настоящую утечку данных, делая статистический анализ ненадежным.
Электромагнитный и энергетический анализ через побочные каналы представляют собой одни из самых инновационных и сложных техник в арсенале атакующего. Они используют реальность того, что каждая физическая реализация имеет утечку, будь то через потребление энергии или электромагнитное излучение.
С распространением встроенных устройств, IoT, смарт-карт и аппаратной криптографии на открытом воздухе, понимание SCA больше не является нишей; оно становится обязательным — независимо от того, проектируете ли вы безопасное оборудование, пишете криптографический код или проводите аудиты безопасности.
Бдительность, актуальные практики, устройство-влиятельная инженерия и регулярное, тщательное тестирование являются вашими лучшими защитами против атак через побочные каналы. Поскольку эта область продолжает быстро развиваться, создание устройств, защищенных от SCA, является движущейся и важной целью.
MDPI Security and Safety, "Электромагнитный и энергетический анализ через побочные каналы: Обзор и лабораторная установка"
https://www.mdpi.com/2410-387X/4/4/30
Ericsson Blog, "Как остановить атаки через побочные каналы"
https://www.ericsson.com/en/blog/2023/4/side-channel-analysis
The Conversation, "Что такое атака через побочный канал? Исследователь кибербезопасности объясняет, как компьютеры могут утекать секреты без взлома"
https://theconversation.com/what-is-a-side-channel-attack-a-cybersecurity-researcher-explains-how-computers-can-leak-secrets-without-being-hacked-286121
Пол Кочер и др., "Дифференциальный энергетический анализ"
https://www.cryptography.com/public/pdf/DPA.pdf
Википедия, "Атака через побочный канал"
https://en.wikipedia.org/wiki/Side-channel_attack
IoT Security Foundation, "Практические соображения для противодействия атакам через побочные каналы"
https://www.iotsecurityfoundation.org/best-practice-guidelines/side-channel-attack-resistance/
(Если вы нашли эту статью полезной, пожалуйста, поделитесь ею с коллегами или оставьте комментарий с вашим опытом или вопросами о SCA!)
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.