Аппаратура для съёма электромагнитного сигнала
Любой компьютер во время работы создаёт электромагнитное поле, у которого слегка меняются спектральные компоненты в зависимости от операций, которые выполняет устройство. Эти законы физики являются базой для проведения атаки по электромагнитному излучению — представителя класса атак по сторонним каналам. Информации о физических процессах в устройстве может быть достаточно, чтобы восстановить значение битов в памяти.
Сканирование электромагнитного излучения ПК для считывания паролей осуществлялось и раньше, здесь нет ничего нового. Но раньше для этого применялась масса дорогого и громоздкого оборудования. Теперь угроза вышла на новый уровень. В принципе, такую атаку можно проводить даже незаметно для жертвы, просто сидя рядом с ПК с маленьким «жучком» в кармане (на фото вверху).
Исследователи из компании Fox-IT продемонстрировали атаку TEMPEST с расстояния 1 метр, используя минимальный набор оборудования стоимостью всего 200 евро. Для сбора необходимого количества информации нужно записывать электромагнитное излучение в течение 5 минут (расстояние 1 метр) или 50 секунд (расстояние 30 см).
Более подробно условия эксперимента авторы описали в научной работе (pdf). Алгоритм атаки изображён на схеме внизу. Он включает в себя четыре фазы:
- Аналоговые измерения.
- Запись радиосигнала.
- Предварительная обработка.
- Анализ.
Для аналоговых измерений нужна антенна с сопутствующей электроникой, которая будет измерять характеристики электромагнитного поля, фильтровать нужные частоты и усиливать сигнал. Как выяснилось, на удивление эффективно ловит сигнал маленькая и простая петлевая антенна, которую очень легко сделать из кусочка ненужного кабеля и скотча.
Петлевая антенна
Дальше сигнал фильтруется и усиливается. Исследователи фильтровали участок шириной 10 МГц около тактовой частоты (142 МГц) и усиливали его с помощью дешёвого усилителя производства Mini Circuits. Стоимость всего «железа» — менее 200 евро.
Усилитель с фильтром
Перед записью радиосигнала выполняется преобразование в цифровую форму. Записывать сигнал можно на разное оборудование: от дорогой профессиональной аппаратуры до бюджетного программного радио в виде флешки за 20 евро. Эксперименты показали, что даже такой дешёвой флешки достаточно, чтобы записать сигнал для успешной атаки. Другими словами, проводить подобную атаку могут не только спецслужбы или корпорации с большими бюджетами на разведку, но и абсолютно любые люди. Много денег тут не нужно.
Во время предварительной обработки программа ищет участки сигнала, где начинается шифрование в памяти компьютера с использованием ключа AES-256. Сигнал делится на соответствующие блоки. Происходит также преобразование данных для последующего анализа.
На иллюстрации внизу показан сигнал, который записал радиоприёмник SR-7100 в полосе частот шириной 10 МГц. Этот сигнал соответствует одному блоку шифрования AES-256, работающему на SoC SmartFusion2. В эксперименте применялась OpenSSL реализация AES на ядре ARM Cortex-M3. Как можно убедиться, заметны явные, чистые паттерны на каждой стадии обработки. Виден сигнал ввода-вывода данных с процессора, фаза вычислений для расписания ключей и 14 раундов шифрования.
Конечно, по такому маленькому фрагменту шифр не восстановить. Нужно накопить очень много таких вычислительных блоков с раундами шифрования на разных входных данных. Для накопления информации и требуется сидеть рядом с компьютером несколько минут, спрятав антенну в кармане.
Записанный сигнал электромагнитного излучения соответствует энергопотреблению устройства. В свою очередь, оно коррелирует с данными, которые в конкретный момент времени обрабатывает процессор.
В конце концов, анализ выполняется с помощью программы Riscure Inspector. Задача заключается в поиске корреляций между догадками байтов ключа и записанным сигналом. Это самая сложная часть, потому что нужно разработать эффективную модель утечки информации из памяти компьютера в электромагнитное поле, чтобы анализ действительно мог предсказывать байты ключа шифрования. В данном случае анализ выполняется методом перебора всех 256 возможных значений каждого байта ключа. Исследователи пишут: для того, чтобы угадать корректное значение каждого байта достаточно всего нескольких секунд (256 вариантов на байт, для 32 байт это 8192 попытки). Для сравнения, прямой брутфорс на AES-256 потребовал бы перебора 2256 вариантов и продолжался бы до скончания Вселенной.
Итак, специалистам Fox-IT удалось сложить воедино все части головоломки. Насколько они могут судить, это первая публичная демонстрация скрытой атаки по электромагнитному излучению на расстоянии. Это повод задуматься тем, кто стремится надёжно защитить компьютер от утечек информации. Для такой защиты нужно его надёжно экранировать. Может быть, заворачивать в фольгу.
Комментарии (36)
menstenebris
24.06.2017 21:56-6Как вы уже надоели со своей фольгой. Для СВЧ в районе 1 ГГц даже заземленная клетка Фарадея дает примерно -3дБ к уровню сигнала практически без изменения формы, не заземленная почти ничего не меняет. Проверял лично.
Kiano
24.06.2017 22:08+4Это еще смотря какая "клетка", а что касается затухания сигнала — вот не верю. Wifi роутер в кастрюле работает не на 3дб хуже, проверьте собственноручно
KonstantinSpb
24.06.2017 23:12+5Товарищ майор призывает не пользоваться фольгой и клеткой Фарадея, т.к. это затрудняет их работу.
agugnin
26.06.2017 12:38ИМХО все же эффективнее тут будет использовать небольшую глушилку, работающую на нужных частотах. Этого будет вполне достаточно, чтобы сделать невозможным выделение полезного сигнала из общего шума.
Shlyahten
25.06.2017 07:21Пробовал на лабораторной — оцинкованная «клетка» прекрасно гасит излучение, но сплошной лист, конечно, хуже.
ptica_filin
25.06.2017 11:19А заземляли на что? На стационарную шину заземления?
Если этаж выше подвального, для СВЧ такое заземление ни о чём.
arheops
24.06.2017 22:22+1Правда, еще надо 1) чтоб было ровно одно рабочее ядро 2) система не прерывалася другими задачами 3) точно знать частоту(которую современные процессоры постоянно меняют).
khanid
25.06.2017 15:42Которую современные процессоры постоянно меняют
А вот это, кстати, не сильно важно.
1) Шифрование операция затратная. Соответственно, уровень производительности будет повышаться.
2) Зачастую при настройке систем им выставляют по дефолту максимальную производительность.arheops
25.06.2017 16:01Современный процессор(те же интелы) меняет частоту на дефолтных настройках постоянно. Откройте task manager на ноутбуке и посмотрите за частотой.
zapimir
25.06.2017 16:13+1Шифрование операция затратная
1. Затратная? На современных процессорах (с инструкциями AES-NI) скорость шифрования AES намного больше скорости чтения с диска, даже SSD. Там 4-7 гигабайт в секунду скорость шифрования, так что это нужно некисло так пригрузить проц.
2. Это в современных процессорах не значит, что он будет молотить на максималке постоянно, тем более еще есть такая вещь как Turbo Boost. Ну и кроме того многозадочность, как вы будете выделять именно шифрующее ядро, когда загружены 4 ядра, к примеру архив жмется и шифруется?
sic
24.06.2017 22:26+7Ну все-таки пугать не надо. В лабораторных условиях может и смогли получить ключ, но только
1) с известной системы
2) с SoC, работающей на сотне мегагерц
3) и это ARM
4) почти наверняка без побочной нагрузки на чип,
5) и, вероятно, без сильных фоновых электромагнитных шумов
А каждый из этих пунктов сокращает необходимый набор информации (= время прослушки) на несколько порядков.
То есть, это как шпилькой открыть замок офисной тумбочки — вроде бы и занятный результат, но на замки от домашних дверей не экстраполируется.superhackkiller1997
25.06.2017 07:23+2>> В лабораторных условиях может и смогли получить ключ, но только
Не смогли. «бла-бла мы видим как график скачет — значит мы 100% его восстановим, но пока нам не повезло, но атака 100% возможна». Действительно. Получили.
Просто создают видимость работы. Это такой же булшит, как атака по времени, по «энергопотреблению», шуму и прочему. Рецепт прост. Берём и железяку и измеряем всё что угодно. Утверждаем, что из этого можно получить ключи. Как это сделать мы не знаем, но можно. На худой конец можно и фекануть. Никаких нет проблем создать модель, которая угадает в шуме искомый ключ. А далее раз угадала — значит работает. А если не работает в других случаях — но то просто «слабая модель», да и вообще никто проверять это не будет.
mat300
25.06.2017 17:43Скажу вам по секрету. Это скорее не на комп атака, а на криптованный SSD. Вот там и AES, и ARM, и SoC на сотне мегагерц.
sic
25.06.2017 18:06+1А этим вообще кто-то пользуется? Доверять непрозрачному вендорному шифрованию мягко говоря странно. Не говоря уже о том, что полетит контроллер и попрощаешься с своими данными.
rPman
24.06.2017 22:44вопрос номер один, если шифрованием будет заниматься полностью интерпретируемый код (в идеале, без jit), а в интерпретаторе встроить случайный мусор между инструкциями, это достаточно поможет?
вопрос номер два — если шифрованием будет заниматься действительно специализированная железка или универсальный модуль на основе FPGA (когда же уже оно будет в каждом процессоре то), достаточно ли это усложнит анализ?sumanai
25.06.2017 00:46+3Все современные процессоры имеют специальные блоки для ускорения шифрования AES, так что будущее уже наступило.
robo2k
25.06.2017 07:22Опять взламываем сферических коней в вакууме?
khanid
25.06.2017 15:58Хартблид для openssl тоже был сферическим, однако же.
Другой момент, что я увидел описание процедуры в статье (ни на ГТ, ни при беглом просмотре в pdf по ссылке), но не увидел результата, удалось ли таки снять ключ, или товарищи из фокса только на пути к этом. Это главный вопрос. Если им удалось — это нифига не сферически тогда, даже если они загоняли под шифр свои данные, заранее заготовленные.
Если же не удалось, тогда это ещё одно предположение, как можно действовать, но не PoC.zapimir
25.06.2017 16:02Не удалось, более того они пишут, что это самое сложное угадать ключ, тем более они похоже не используют нормальное сцепление блоков.
arheops
25.06.2017 16:03НЕ удалось. Модель они даже не пыталися строить. Просто показали «вот тут есть корреляция».
rPman
25.06.2017 10:20+1не понимаю скепсиса в коментариях
разнообразие условий не проблема, а просто небольшое ограничение по затратам на дополнительные исследования.
Сейчас исследуемый стенд — конкретная железка и ограниченный список приложений, следующим шагом буудет повторение тех же исследований (что однозначно проще, так как инструментарий наработан) для разных машин и приложений.
Надо не фи говорить, а ой.
zapimir
25.06.2017 15:31Записанный сигнал электромагнитного излучения соответствует энергопотреблению устройства. В свою очередь, оно коррелирует с данными, которые в конкретный момент времени обрабатывает процессор.
Какая-то туфта, ну допустим по энергопотреблению видно какая операция производится в данный момент, но как по этим данным вычислить ключ, что для умножения 97x97 нужно больше энергии, чем на 98x98?
Это во-первых, во-вторых, любой нормальный метод шифрования использует адекватный режим сцепления блоков, из-за этого каждые 16 байт данных шифруются разными ключами.
Ну и судя по статье ничего пока что у авторов не получилось в реале кроме, как определить какой этап кодировки в какое время, тем более это всё это для простенького микроконтроллера в идеальных условиях, без всяких многопоточностей, фоновых задач, изменения частоты работы процесса и т.п.
DezWark
25.06.2017 15:34-1А потом мысли начнут читать, а потом писать… хорошо психам — у них многопоточность :-D
p.s. шапочка не спасает ;-)
ClearAirTurbulence
25.06.2017 22:05+1В большинстве случаев проще снять изображение с клавиатуры\монитора тем же темпестом.
Не знаю, как сейчас с LCD дисплеями (по логике, с CRT удалённо снимать данные проще), но, в принципе, изучались даже способы восстанавливать информацию по изменениям яркости частично освещаемой монитором стены.
Тут много интересного, гораздо больше, чем времени на чтение этог интересного.
Alexsandr_SE
26.06.2017 00:25Я так понял, что сейчас стенд, это открытый корпус и антена рядом. В жизни это почти не применимо, а если добрались уже физически до ПК, то какой шанс, что нужно ломать AES? Какой шанс, что все соседи вырубят всю свою электронику, да бы не мешала?
Это как по мне очень теоретический взлом, требующий лабораторию.
GennPen
Компьютер итак хорошо экранирован металлическим корпусом. Это у ноутбуков корпус пластмассовый и как правило не имеет (или имеет, но слабую в виде слоя металлического напыления) экранировку.
CreFroD
А MacBook?
Alexeyslav
Металлический корпус не является экраном, к сожалению. Особенно незаземлённый.
И «шапочка из фольги» тоже не работает.
Единственное что поможет, это фильтрация питания прямо по месту потребления, уменьшающая контуры по которым течёт ВЧ-ток. Но на всём экономят безбожно.
Структурная схема вообще бредовая, взятая наобум может даже с какой-то реальной схемы из которой выкинуты непонятные блоки. Что за Mixer с одним входом? с АЦП выходит так же аналоговый сигнал? описание похоже на инструкцию «как нарисовать сову в два этапа».