Приветствую всех!
Если вы хоть раз слышали про техническую защиту информации, для вас не будет открытием то, какое внимание там уделяется экранированию, постановке помех и прочим методам защиты от электромагнитных и электрических каналов утечки. Но так уж вышло, что практически нигде доступно не раскрыта тема того, как же вообще возможно перехватывать какие-то данные, принимая испускаемое компьютером излучение. И даже на Хабре до сих пор не было толковой статьи про то, как это вообще работает.

Итак, в сегодняшней статье узнаем, как практически любой из нас может воспроизвести явление утечки информации по такому каналу прямо у себя дома. Проведём парочку опытов и посмотрим, как это вообще работает. Традиционно будет много интересного.
Думаю, из шпионских рассказов и фильмов многим знаком такой сюжет, когда при помощи какого-то устройства подсматривают, что же находится у противника на экране. Удивительно, но для того, чтобы попробовать так же, не нужно какое-то уникальное оборудование, доступное лишь спецслужбам, SCP и прочим людям в чёрном. Достаточно лишь компьютера и девайса, способного принять излучаемые другим компьютером или монитором побочные электромагнитные излучения и наводки (ПЭМИН).
Многие не раз сталкивались с этим термином в контексте защищённых помещений и рабочих станций.

Для оценки уровня такого излучения существуют специальные комплексы (их модели довольно легко ищутся), а для защиты от данного явления применяется экранирование, установка генераторов помех и другие подобные меры.
К моему немалому удивлению, тема всего этого здесь совершенно не раскрыта, ищутся только статьи от компаний-лицензиатов, очень неохотно рассказывающих о непосредственно технической стороне. Самое время восполнить это упущение и показать, как же попробовать принять это излучение и что с этим делать.
Тема с перехватом звука уже довольно избита (начиная от различных статей про самодельные «шпионские штучки» до нескольких постов на Хабре), так что сразу перейдём к приёму сигнала от компьютерной техники. Проведём парочку экспериментов — в одном перехватим изображение, а в другом — наоборот заставим монитор передавать паразитный сигнал.

Если взять радиоприёмник и прижать антенну к монитору, то можно заметить, что девайс фонит на целом ряде частот.

Убедиться, что источником этих помех является именно монитор, довольно легко: выключаем его, и приём прекращается. Сигнал этот достаточно слабый, чтобы теряться в шуме уже в нескольких метрах от экрана, но и достаточно сильный, чтобы его можно было принять даже на простое аналоговое радио, не говоря уже о куда более чувствительном SDR. Внутри любого компьютерного оборудования есть масса источников излучения. Какие-то из них не представляют особого интереса (например, шумы от импульсного блока питания, те самые, которые не позволяют слушать ДВ и СВ в помещении), а вот какие-то, если их принять и декодировать, могут дать немало полезной информации. К числу таковых относится, например, видеосигнал (даже сам видеокабель — уже довольно плохая, но всё же антенна) или передаваемые по кабелям внутри компьютера данные. Если монитор электронно-лучевой, то излучающих при работе цепей там ещё больше.
Именно все эти шумы и следует принять и как-то обработать, чтобы попробовать получить из них какой-то полезный сигнал.
Итак, посмотрим на то, какое железо будем использовать.

LG Flatron L1732S-SF. Аппарат многое повидал на своём веку, имеет потёртости на рамке и задиры на экране, но всё ещё исправен и используется мной для подключения к старым компьютерам.

А вот другой девайс, ViewSonic E641-2. Этот монитор фигурировал в посте про выход в интернет через модем, где использовался для антуража. Девайс тоже рабочий, проверенный временем и падениями со стола, хотя даже среди ЭЛТ-мониторов обладает не самыми интересными характеристиками.
Само собой, для мониторов нужен ещё и источник видеосигнала. В моём случае этомой основной ПК на самом деле уже второй ПК, так как с момента создания черновика этого поста прошло почти два года. Использовать тот же компьютер, на который будет ловиться ПЭМИН, не советую, могут быть проблемы с приёмом сигнала.

А вот и SDR. Это всё тот же Ettus USRP B200mini-i. Понятное дело, для таких задач он избыточен, хватит и куда более простого, я же буду использовать именно его просто по причине того, что он у меня есть.
Итак, первым опытом будет использование монитора в качестве радиопередатчика.
Возможно, кто-то из вас уже видел такую демку: экран показывает чёрные и белые полосы, а приёмник, настроенный на определённую частоту, играет музыку. Примерно так:
Если выводить на монитор определённый видеосигнал, то можно добиться того, что на некоторой частоте можно будет принять звук в амплитудной модуляции. Математическое описание данного эффекта можно подробно изучить тут.
Для того, чтобы это сделать, нужен такой софт как Tempest for Eliza. Созданная ещё в начале нулевых, эта программа позволяет сделать именно то, что было описано ранее: подготовить такое видео, при показе которого монитор превратился бы в радиопередатчик. Я встречал упоминания и других подобных программ, которые заставляли «петь» видеокарту или системную шину, но, увы, найти их или их исходники у меня так и не вышло. Так что будем довольствоваться тем, что есть.
Само собой, этот софт работает под Linux, так что для его запуска нужна машина с ним же. Можно, конечно, скачать готовое видео и включить его, но тогда потеряется весь шарм, да и качество будет заметно хуже. Поэтому качаем архив с сайта по ссылке выше и собираем софт:
Если софт не собирается, открываем Makefile и убираем параметр Werror. Как выяснилось, на работу это не влияет никак.

Открываем xvidtune. Нас интересуют значения HDisplay, VDisplay, HTotal и Pixel Clock. Запоминаем их.
Теперь выполняем следующую команду:
Вместо квадратных скобок подставляем наши значения. Обратите внимание, что частоту надо указывать в герцах (значение из открывшегося окна умножить на миллион). Последнее число — частота радиоприёмника (также в герцах), на которой будет вестись приём. И, если всё было сделано правильно, на экране должно будет появиться примерно следующее:

Отлично. Можно пробовать на настоящем мониторе (скриншоты я делал на виртуальной машине, чтобы для начала разобраться с настройкой и запуском ПО).

Теперь подносим к экрану антенну радиоприёмника, настраиваемся на заданную частоту и начинаем плавно крутить ручку настройки туда-сюда.
И, если всё было сделано правильно, из динамика послышится музыка.
Несмотря на то, что софт предназначен для ЭЛТ-мониторов, похожий эффект наблюдается и на ЖК-дисплеях.
Помимо предыдущей программы, существует и более поздний аналог — Tempest Test for Windows. Он адаптирован под широкоформатные ЖК-мониторы и должен работать лучше на современных компьютерах. Его возможности не такие большие, как у Tempest for Eliza, но зато он может быть запущен на обычном ПК с Windows.

Также есть такой проект как System Bus Radio. Принцип его использования аналогичный, только музыку на этот раз передаёт системная шина. Есть пример для запуска на MacBook, но его у меня нет, а на моём компьютере поймать нужный сигнал так и не удалось.
Продолжим опыты.
Так получилось, что на момент написания поста самая заплюсованная статья на данном ресурсе — как раз про приватный монитор. Это дисплей, который без специальных поляризационных очков выглядит просто белым. Ну что же, самое время узнать, как же возможно подсмотреть картинку даже с такого монитора.
Что ЭЛТ, что ЖК-мониторы могут быть подвержены так называемому перехвату ван Эйка (названному так в честь открывшего данный метод). Принцип основан на том, что сигнал, испускаемый монитором компьютера в процессе работы, имеет некоторое сходство с сигналом аналогового телевидения. Нетрудно догадаться, что если его принять, то можно получить изображение.

Качество, безусловно, будет крайне низким, но в некоторых случаях достаточно даже такого. Позднее был разработан такой же способ для ЖК-мониторов.
В своё время даже был разработан такой девайс как EckBox — устройство для осуществления этого самого перехвата. Проект этот достаточно старый и требует использования аналогового радио и переходника для связи с компьютером, так что в данной статье использовать его не будем. Вместо этого воспользуемся более новым софтом — TempestSDR.
Ну что же, время пробовать.
Для того, чтобы принять изображение с другого монитора, понадобится машина с Linux и какой-нибудь SDR из числа поддерживаемых данной программой. По сути подойдёт любой из более-менее популярных. Я буду использовать Ettus USRP, просто потому что он у меня есть. Разумеется, для таких опытов это перебор, на самом деле хватит и куда более дешёвых экземпляров.
В качестве ОС я рекомендую использовать DragonOS, так как там уже установлены драйвера и софт для работы с SDR, так что вам не придётся разбираться и с этим. Виртуальная машина опять таки не подойдёт, так как скорость обмена данными по USB в таком случае будет слишком низкой.
На Github проекта уже есть ссылка на собранный TempestSDR, но, на всякий случай, если у вас оно не заработает, я покажу, как его скомпилировать.
Для начала необходимо удостовериться, что у нас установлен JDK, для чего посмотрим, что лежит по его пути:
Как видно, в моём случае он лежит в папке java-11-openjdk-amd64. Если JDK не установлен, нужно его накатить. Теперь можно приступить к скачиванию и сборке софта:
После непродолжительного ожидания программа должна будет собраться под нашу систему. Если же скомпилировать её у вас не получается, в конце статьи я оставлю ссылку на уже готовый TempestSDR.
Подключаем к компьютеру SDR и запускаем софт. Если он не стартует при попытке открыть файл, запускаем из терминала:
Если всё было сделано правильно, то откроется окно программы:

Далее жмякаем «File» и выбираем нужный драйвер SDR.

Далее в консоли посыпятся привычные логи инициализации. После её окончания кнопка «Start» в окне программы станет активной.

Жмякаем её. Если SDR подключился успешно, то в окне появится белый шум.
Время разобраться, как же вообще с этим работать. Первыми у нас идут настройки размера изображения и частоты кадров. Кнопками справа от текстовых полей можно включить или выключить их автоматический выбор. Далее идёт джойстик — им можно перемещать картинку в разных направлениях. Центральная его кнопка включает автотрекинг. Ещё ниже — самые главные регулировки — частота и усиление. Нужны они для грубой подстройки на нужный нам сигнал. Ниже две шкалы, по которым можно выбрать частоту кадров и разрешение по наилучшему уровню сигнала.

Теперь самое сложное — надо понять, на какой частоте вещает наш монитор. Для этого на экране надо отобразить какой-то контрастный и узнаваемый паттерн, в моём случае это был открытый блокнот на фоне тёмных обоев. Заранее стоит приготовиться к тому, что качество будет отвратительным, так что если на экране будет что-то однотонное, то оно рискует просто утонуть в помехах. Изображение сильно зависит от оборудования и от антенн: у кого-то с куда более простым SDR получались куда лучшие результаты.
Теперь выкручиваем частоту на ноль и начинаем её потихоньку прибавлять, попутно всматриваясь в помехи и надеясь не упустить заветную картинку. В тот момент, когда частота вот-вот будет поймана, изображение начнёт вырисовываться. Чтобы проверить, действительно ли это оно, а не шальная помеха, отводим антенны от монитора и убеждаемся, что сигнал исчез.

На шкале выбираем наилучший сигнал. После этого отдельные детали картинки должны будут стать различимыми. Видно панель задач с иконками и открытое окно блокнота.

Теперь пытаемся что-то показать на экране. В моём случае это вот такой текст.

И вот тот долгожданный результат. Качество никудышное, но это тот самый максимум, который можно достичь без специализированного оборудования типа направленных антенн и высокочувствительных приёмников.


Многие наверняка захотят попробовать RTL-SDR (в подавляющем большинстве случаев эту голубую затычку покупают как первый SDR, даже я сам был не исключением). На просторах даже есть руководство, как запустить TempestSDR вместе с этим китайским девайсом, кто-то даже рассказывал об успешном приёме, но я проверил — оно не работает. Всё дело в том, что дешёвый чип RTL2832U обладает кучей собственных шумов, отчего неспособен принять столь слабый сигнал как побочное излучение от монитора, которое само по себе находится на уровне шума. Увы, для таких опытов необходим SDR получше (например, HackRF, SDRPlay).

Вообще, RTL-SDR RTL-SDR'у рознь, так что не исключено, что более качественный образец покажет себя лучше. Но проверить это я не могу по причине того, что у меня его нет.
Теперь поговорим о том, как же защититься от такого перехвата. Очевидными видятся варианты в виде экранирования и заземления, позволяющие минимизировать уровень излучения, выходящего наружу. Помимо этих методов существует и активная защита в виде так называемых генераторов шума, призванных заглушить испускаемые компьютерной техникой ПЭМИН.

У меня даже имеется один такой экземпляр. Это ГШ-К-1800, типичный представитель таких устройств.
Штука выполнена в виде обычной компьютерной платы расширения. Этот форм-фактор сделан чисто для удобства установки, никаких данных она не получает, а питание подаётся через Molex.

Обратная сторона. Генератор закрыт экранирующей пластиной, защищающей начинку компа от посторонних шумов. Схемотехника этой платы мне неизвестна, но предположу, что она следующая. Микроконтроллер, установленный на плате, генерирует какую-то случайную последовательность, поступающую на вход расположенного под экраном генератора, управляемого напряжением. Его выход подключён к усилителю, подающему сигнал на катушку. Таким образом, при работе устройство испускает шум в широком спектре частот, перекрывающий все побочные излучения. Также имеются цепи контроля целостности катушки, если запустить устройство без неё, оно непрерывно пищит.

Разъёмы. Что делает кнопка «КОНТР» и разъём «ДИСТ КОНТР», мне неведомо.

Вот так выглядит устройство с катушкой, которую предполагалось разместить вокруг защищаемого устройства. Увы, до меня она не дошла…

Её моточные данные мне неизвестны, но на «Полигоне призраков», где я спросил про эту плату, мне всё же смогли подсказать ориентировочные. Девайс полностью оправдывает своё название — при подключении питания картинка на TempestSDR моментально пропадает.

А вот другой прибор. Эта штука работает несколько по другому принципу — подключается в разрыв видеокабеля и вносит в сигнал высокочастотную составляющую, которая не влияет на монитор, но затрудняет перехват информации.
Итак, как можно видеть, это явление может воспроизвести у себя абсолютно любой, если под рукой есть два компьютера, антенны и SDR.
На практике давно существуют стандарты защиты от таких уязвимостей, например, американский TEMPEST. Для обычного же пользователя это явление не представляет ни малейшей угрозы, так как сигнал очень слаб, а принять его вне прямой видимости монитора без специализированного оборудования нереально (да и вряд ли кто-то будет перехватывать картинку с монитора чьего-то домашнего ПК).

Также по запросу «van Eck phreaking» ищется ещё много опытов: от всё такого же перехвата изображений до считывания ключей шифрования.
Такие дела.

Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите кэшбэк на баланс.
Читайте также:
Если вы хоть раз слышали про техническую защиту информации, для вас не будет открытием то, какое внимание там уделяется экранированию, постановке помех и прочим методам защиты от электромагнитных и электрических каналов утечки. Но так уж вышло, что практически нигде доступно не раскрыта тема того, как же вообще возможно перехватывать какие-то данные, принимая испускаемое компьютером излучение. И даже на Хабре до сих пор не было толковой статьи про то, как это вообще работает.

Итак, в сегодняшней статье узнаем, как практически любой из нас может воспроизвести явление утечки информации по такому каналу прямо у себя дома. Проведём парочку опытов и посмотрим, как это вообще работает. Традиционно будет много интересного.
❯ Суть такова
Думаю, из шпионских рассказов и фильмов многим знаком такой сюжет, когда при помощи какого-то устройства подсматривают, что же находится у противника на экране. Удивительно, но для того, чтобы попробовать так же, не нужно какое-то уникальное оборудование, доступное лишь спецслужбам, SCP и прочим людям в чёрном. Достаточно лишь компьютера и девайса, способного принять излучаемые другим компьютером или монитором побочные электромагнитные излучения и наводки (ПЭМИН).
Многие не раз сталкивались с этим термином в контексте защищённых помещений и рабочих станций.

Для оценки уровня такого излучения существуют специальные комплексы (их модели довольно легко ищутся), а для защиты от данного явления применяется экранирование, установка генераторов помех и другие подобные меры.
К моему немалому удивлению, тема всего этого здесь совершенно не раскрыта, ищутся только статьи от компаний-лицензиатов, очень неохотно рассказывающих о непосредственно технической стороне. Самое время восполнить это упущение и показать, как же попробовать принять это излучение и что с этим делать.
❯ Что мы будем принимать?
Тема с перехватом звука уже довольно избита (начиная от различных статей про самодельные «шпионские штучки» до нескольких постов на Хабре), так что сразу перейдём к приёму сигнала от компьютерной техники. Проведём парочку экспериментов — в одном перехватим изображение, а в другом — наоборот заставим монитор передавать паразитный сигнал.

Если взять радиоприёмник и прижать антенну к монитору, то можно заметить, что девайс фонит на целом ряде частот.

Убедиться, что источником этих помех является именно монитор, довольно легко: выключаем его, и приём прекращается. Сигнал этот достаточно слабый, чтобы теряться в шуме уже в нескольких метрах от экрана, но и достаточно сильный, чтобы его можно было принять даже на простое аналоговое радио, не говоря уже о куда более чувствительном SDR. Внутри любого компьютерного оборудования есть масса источников излучения. Какие-то из них не представляют особого интереса (например, шумы от импульсного блока питания, те самые, которые не позволяют слушать ДВ и СВ в помещении), а вот какие-то, если их принять и декодировать, могут дать немало полезной информации. К числу таковых относится, например, видеосигнал (даже сам видеокабель — уже довольно плохая, но всё же антенна) или передаваемые по кабелям внутри компьютера данные. Если монитор электронно-лучевой, то излучающих при работе цепей там ещё больше.
Именно все эти шумы и следует принять и как-то обработать, чтобы попробовать получить из них какой-то полезный сигнал.
❯ Обзор оборудования
Итак, посмотрим на то, какое железо будем использовать.

LG Flatron L1732S-SF. Аппарат многое повидал на своём веку, имеет потёртости на рамке и задиры на экране, но всё ещё исправен и используется мной для подключения к старым компьютерам.

А вот другой девайс, ViewSonic E641-2. Этот монитор фигурировал в посте про выход в интернет через модем, где использовался для антуража. Девайс тоже рабочий, проверенный временем и падениями со стола, хотя даже среди ЭЛТ-мониторов обладает не самыми интересными характеристиками.
Само собой, для мониторов нужен ещё и источник видеосигнала. В моём случае это

А вот и SDR. Это всё тот же Ettus USRP B200mini-i. Понятное дело, для таких задач он избыточен, хватит и куда более простого, я же буду использовать именно его просто по причине того, что он у меня есть.
❯ Играем музыку при помощи монитора
Итак, первым опытом будет использование монитора в качестве радиопередатчика.
Возможно, кто-то из вас уже видел такую демку: экран показывает чёрные и белые полосы, а приёмник, настроенный на определённую частоту, играет музыку. Примерно так:
Если выводить на монитор определённый видеосигнал, то можно добиться того, что на некоторой частоте можно будет принять звук в амплитудной модуляции. Математическое описание данного эффекта можно подробно изучить тут.
Для того, чтобы это сделать, нужен такой софт как Tempest for Eliza. Созданная ещё в начале нулевых, эта программа позволяет сделать именно то, что было описано ранее: подготовить такое видео, при показе которого монитор превратился бы в радиопередатчик. Я встречал упоминания и других подобных программ, которые заставляли «петь» видеокарту или системную шину, но, увы, найти их или их исходники у меня так и не вышло. Так что будем довольствоваться тем, что есть.
❯ Сборка и запуск Tempest For Eliza
Само собой, этот софт работает под Linux, так что для его запуска нужна машина с ним же. Можно, конечно, скачать готовое видео и включить его, но тогда потеряется весь шарм, да и качество будет заметно хуже. Поэтому качаем архив с сайта по ссылке выше и собираем софт:
sudo apt-get install libsdl-dev
./configure
make
Если софт не собирается, открываем Makefile и убираем параметр Werror. Как выяснилось, на работу это не влияет никак.

Открываем xvidtune. Нас интересуют значения HDisplay, VDisplay, HTotal и Pixel Clock. Запоминаем их.
Теперь выполняем следующую команду:
./tempest_for_eliza [Pixel Clock * 1000000] [HDisplay] [VDisplay] [HTotal] 10000000 songs/forelise
Вместо квадратных скобок подставляем наши значения. Обратите внимание, что частоту надо указывать в герцах (значение из открывшегося окна умножить на миллион). Последнее число — частота радиоприёмника (также в герцах), на которой будет вестись приём. И, если всё было сделано правильно, на экране должно будет появиться примерно следующее:

Отлично. Можно пробовать на настоящем мониторе (скриншоты я делал на виртуальной машине, чтобы для начала разобраться с настройкой и запуском ПО).

Теперь подносим к экрану антенну радиоприёмника, настраиваемся на заданную частоту и начинаем плавно крутить ручку настройки туда-сюда.
И, если всё было сделано правильно, из динамика послышится музыка.
Несмотря на то, что софт предназначен для ЭЛТ-мониторов, похожий эффект наблюдается и на ЖК-дисплеях.
❯ Tempest for Windows и прочий софт
Помимо предыдущей программы, существует и более поздний аналог — Tempest Test for Windows. Он адаптирован под широкоформатные ЖК-мониторы и должен работать лучше на современных компьютерах. Его возможности не такие большие, как у Tempest for Eliza, но зато он может быть запущен на обычном ПК с Windows.

Также есть такой проект как System Bus Radio. Принцип его использования аналогичный, только музыку на этот раз передаёт системная шина. Есть пример для запуска на MacBook, но его у меня нет, а на моём компьютере поймать нужный сигнал так и не удалось.
❯ Перехват изображения
Продолжим опыты.
Так получилось, что на момент написания поста самая заплюсованная статья на данном ресурсе — как раз про приватный монитор. Это дисплей, который без специальных поляризационных очков выглядит просто белым. Ну что же, самое время узнать, как же возможно подсмотреть картинку даже с такого монитора.
Что ЭЛТ, что ЖК-мониторы могут быть подвержены так называемому перехвату ван Эйка (названному так в честь открывшего данный метод). Принцип основан на том, что сигнал, испускаемый монитором компьютера в процессе работы, имеет некоторое сходство с сигналом аналогового телевидения. Нетрудно догадаться, что если его принять, то можно получить изображение.

Качество, безусловно, будет крайне низким, но в некоторых случаях достаточно даже такого. Позднее был разработан такой же способ для ЖК-мониторов.
В своё время даже был разработан такой девайс как EckBox — устройство для осуществления этого самого перехвата. Проект этот достаточно старый и требует использования аналогового радио и переходника для связи с компьютером, так что в данной статье использовать его не будем. Вместо этого воспользуемся более новым софтом — TempestSDR.
❯ Сборка TempestSDR
Ну что же, время пробовать.
Для того, чтобы принять изображение с другого монитора, понадобится машина с Linux и какой-нибудь SDR из числа поддерживаемых данной программой. По сути подойдёт любой из более-менее популярных. Я буду использовать Ettus USRP, просто потому что он у меня есть. Разумеется, для таких опытов это перебор, на самом деле хватит и куда более дешёвых экземпляров.
В качестве ОС я рекомендую использовать DragonOS, так как там уже установлены драйвера и софт для работы с SDR, так что вам не придётся разбираться и с этим. Виртуальная машина опять таки не подойдёт, так как скорость обмена данными по USB в таком случае будет слишком низкой.
На Github проекта уже есть ссылка на собранный TempestSDR, но, на всякий случай, если у вас оно не заработает, я покажу, как его скомпилировать.
Для начала необходимо удостовериться, что у нас установлен JDK, для чего посмотрим, что лежит по его пути:
mafrance351@mafrance351:~$ ls /usr/lib/jvm
default-java java-1.11.0-openjdk-amd64 java-11-openjdk-amd64 openjdk-11
Как видно, в моём случае он лежит в папке java-11-openjdk-amd64. Если JDK не установлен, нужно его накатить. Теперь можно приступить к скачиванию и сборке софта:
git clone https://github.com/martinmarinov/TempestSDR
cd TempestSDR/JavaGUI
make all JAVA_HOME=java-11-openjdk-amd64
После непродолжительного ожидания программа должна будет собраться под нашу систему. Если же скомпилировать её у вас не получается, в конце статьи я оставлю ссылку на уже готовый TempestSDR.
❯ Запуск
Подключаем к компьютеру SDR и запускаем софт. Если он не стартует при попытке открыть файл, запускаем из терминала:
java -jar JTempestSDR.jar
Если всё было сделано правильно, то откроется окно программы:

Далее жмякаем «File» и выбираем нужный драйвер SDR.

Далее в консоли посыпятся привычные логи инициализации. После её окончания кнопка «Start» в окне программы станет активной.

Жмякаем её. Если SDR подключился успешно, то в окне появится белый шум.
Время разобраться, как же вообще с этим работать. Первыми у нас идут настройки размера изображения и частоты кадров. Кнопками справа от текстовых полей можно включить или выключить их автоматический выбор. Далее идёт джойстик — им можно перемещать картинку в разных направлениях. Центральная его кнопка включает автотрекинг. Ещё ниже — самые главные регулировки — частота и усиление. Нужны они для грубой подстройки на нужный нам сигнал. Ниже две шкалы, по которым можно выбрать частоту кадров и разрешение по наилучшему уровню сигнала.

Теперь самое сложное — надо понять, на какой частоте вещает наш монитор. Для этого на экране надо отобразить какой-то контрастный и узнаваемый паттерн, в моём случае это был открытый блокнот на фоне тёмных обоев. Заранее стоит приготовиться к тому, что качество будет отвратительным, так что если на экране будет что-то однотонное, то оно рискует просто утонуть в помехах. Изображение сильно зависит от оборудования и от антенн: у кого-то с куда более простым SDR получались куда лучшие результаты.
Теперь выкручиваем частоту на ноль и начинаем её потихоньку прибавлять, попутно всматриваясь в помехи и надеясь не упустить заветную картинку. В тот момент, когда частота вот-вот будет поймана, изображение начнёт вырисовываться. Чтобы проверить, действительно ли это оно, а не шальная помеха, отводим антенны от монитора и убеждаемся, что сигнал исчез.

На шкале выбираем наилучший сигнал. После этого отдельные детали картинки должны будут стать различимыми. Видно панель задач с иконками и открытое окно блокнота.

Теперь пытаемся что-то показать на экране. В моём случае это вот такой текст.

И вот тот долгожданный результат. Качество никудышное, но это тот самый максимум, который можно достичь без специализированного оборудования типа направленных антенн и высокочувствительных приёмников.
❯ RTL-SDR


Многие наверняка захотят попробовать RTL-SDR (в подавляющем большинстве случаев эту голубую затычку покупают как первый SDR, даже я сам был не исключением). На просторах даже есть руководство, как запустить TempestSDR вместе с этим китайским девайсом, кто-то даже рассказывал об успешном приёме, но я проверил — оно не работает. Всё дело в том, что дешёвый чип RTL2832U обладает кучей собственных шумов, отчего неспособен принять столь слабый сигнал как побочное излучение от монитора, которое само по себе находится на уровне шума. Увы, для таких опытов необходим SDR получше (например, HackRF, SDRPlay).

Вообще, RTL-SDR RTL-SDR'у рознь, так что не исключено, что более качественный образец покажет себя лучше. Но проверить это я не могу по причине того, что у меня его нет.
❯ Обклеиваем стены фольгой
Теперь поговорим о том, как же защититься от такого перехвата. Очевидными видятся варианты в виде экранирования и заземления, позволяющие минимизировать уровень излучения, выходящего наружу. Помимо этих методов существует и активная защита в виде так называемых генераторов шума, призванных заглушить испускаемые компьютерной техникой ПЭМИН.

У меня даже имеется один такой экземпляр. Это ГШ-К-1800, типичный представитель таких устройств.
Штука выполнена в виде обычной компьютерной платы расширения. Этот форм-фактор сделан чисто для удобства установки, никаких данных она не получает, а питание подаётся через Molex.

Обратная сторона. Генератор закрыт экранирующей пластиной, защищающей начинку компа от посторонних шумов. Схемотехника этой платы мне неизвестна, но предположу, что она следующая. Микроконтроллер, установленный на плате, генерирует какую-то случайную последовательность, поступающую на вход расположенного под экраном генератора, управляемого напряжением. Его выход подключён к усилителю, подающему сигнал на катушку. Таким образом, при работе устройство испускает шум в широком спектре частот, перекрывающий все побочные излучения. Также имеются цепи контроля целостности катушки, если запустить устройство без неё, оно непрерывно пищит.

Разъёмы. Что делает кнопка «КОНТР» и разъём «ДИСТ КОНТР», мне неведомо.

Вот так выглядит устройство с катушкой, которую предполагалось разместить вокруг защищаемого устройства. Увы, до меня она не дошла…

Её моточные данные мне неизвестны, но на «Полигоне призраков», где я спросил про эту плату, мне всё же смогли подсказать ориентировочные. Девайс полностью оправдывает своё название — при подключении питания картинка на TempestSDR моментально пропадает.

А вот другой прибор. Эта штука работает несколько по другому принципу — подключается в разрыв видеокабеля и вносит в сигнал высокочастотную составляющую, которая не влияет на монитор, но затрудняет перехват информации.
❯ А что в итоге?
Итак, как можно видеть, это явление может воспроизвести у себя абсолютно любой, если под рукой есть два компьютера, антенны и SDR.
На практике давно существуют стандарты защиты от таких уязвимостей, например, американский TEMPEST. Для обычного же пользователя это явление не представляет ни малейшей угрозы, так как сигнал очень слаб, а принять его вне прямой видимости монитора без специализированного оборудования нереально (да и вряд ли кто-то будет перехватывать картинку с монитора чьего-то домашнего ПК).

Также по запросу «van Eck phreaking» ищется ещё много опытов: от всё такого же перехвата изображений до считывания ключей шифрования.
Такие дела.
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩

Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите кэшбэк на баланс.