Перехват и анализ радиосигнала

Перехват и анализ радиосигнала

Если при слове «радио» вам вспоминается только старый времен СССР «Грюндиг» или «Океан», то это очень узкий взгляд на вещи. Мы живем во время беспроводных устройств, интернета вещей, 5G и прочих интересных штук. Огрогмная часть информации передается «по воздуху», поэтому любой гик должен разбираться в радиопротоколах. В этой статье я расскажу, как перехватить радиосигнал, где его искать и как анализировать.

Что передается по радио

Для начала нужно понять, что и где можно найти в радиоэфире. Список обширный: от изображений с метеоспутников до команд для атомных подводных лодок.

Преобрести широкополосный радиоприемник USB вы можете на eBay всего лишь за 30 зеленых денег с бесплатной почтовой доставкой. Ищите по словам RTL SDR V3. Он позволяет перехватывать и записывать практически любые радиосигналы в диапазоне от 24 до 1700 МГц, и этого более чем достаточно для большинства экспериментов.

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

Пройдемся по частотам.

  • Сверхнизкие частоты до 30 кГц: связь с подводными лодками. Радиоволны такой низкой частоты способны проникать даже в глубину океана, что, разумеется, используется военными. Система «Зевс» работает на частоте 82 Гц, аналогичная американская система Seafarer — на частоте 76 Гц. Длина волны такой передачи сопоставима с радиусом Земли, а КПД антенны составляет тысячные доли процента. В нее нужно подать чуть ли не мегаватт, чтобы на выходе получить один ватт. Чуть выше по частоте, примерно на 14 кГц можно найти сигналы навигационной системы «Альфа». Принять эти сигналы может каждый, если поставить антенну на крышу или отъехать подальше от города, где нет помех. На YouTube можно найти видео энтузиастов.
  • На частоте 77 кГц передаются сигналы точного времени из Германии. Система DCF77, наиболее популярная в Европе, позволяет синхронизироваться настольным и даже некоторым наручным часам. Если на часах есть логотип Atomic Clock или Radio Controller, они могут принимать такой сигнал.
  • Длинные волны — 400 кГц — заняты сигналами так называемых ПРМ — приводных радиомаяков (в английской литературе NDB — non directional beacon). В каждом самолете есть радиокомпас, который показывает направление на выбранный аэропорт.
  • На средних и коротких волнах (от 2 до 20 МГц) передаются метеопрогнозы для судов и метеофаксы, телеметрия разных устройств; работают военные модемы STANAG, загоризонтные радары и многое другое. Многое из этого можно принять на хороший коротковолновый приемник.
  • На так называемом диапазоне Си-Би (Citizen Band) 27 МГц работают таксисты и дальнобойщики.
  • На частотах от 30 до 40 МГц раньше работали домашние радиотелефоны, сейчас их уже практически не осталось. Большая трубка с длинной антенной из старых фильмов — это оно. Владельцы обычно и не подозревали, что любой желающий может слышать их разговор, никакого шифрования в этих телефонах не было.
  • На частотах от 88 до 108 МГц звучит всем известное FM-радио. Радиоинженеры называют его WFM (Wide FM, в отличие от узкополосной FM портативных радиостанций). Чуть ниже передавался так называемый советский УКВ, сейчас эти станции тоже практически везде закрыты.
  • На частотах от 118 до 137 МГц работают авиаторы. Переговоры летчиков с диспетчерами и между самолетами, например на воздушном параде, передаются в открытом и незашифрованном виде.
  • На частоте 137 МГц работают метеоспутники NOAA. Вы можете принять их сигнал и декодировать картинку вида Земли из космоса, только нужно знать время, когда спутник пролетает над вашей головой. Энтузиасты и тут преуспели и выложили это на YouTube.
  • На частотах в диапазоне 140–200 МГц и 400–500 МГц — разные службы и сервисы: ГИБДД, пожарные, скорая, лифтеры, гастарбайтеры. Диапазон 433 МГц выделен для портативных радиостанций, которые вы, возможно, видели в продаже. Рядом по частоте работают и портативные радиоустройства, к которым мы еще вернемся.
  • Раньше на частоте 165 МГц работали пейджеры — устройства для приема текстовых сообщений, и все их сообщения для абонентов передавались в открытом виде, доступном для декодирования. Сейчас в России пейджеров вроде бы не осталось, а в Европе и США они живы до сих пор, ими пользуются пожарные, медики и прочие службы.
  • На частоте 255 МГц работают американские спутники связи SATCOM. Интересны они тем, что спутники старые и аналоговые и общаться через них, в принципе, может любой желающий, никаких паролей и аутентификации. Чем до сих пор пользуются некоторые бразильские и мексиканские фермеры, которые приспособили такие спутники вместо халявного радиотелефона. Нужна лишь радиостанция на этот диапазон и направленная антенна. Сделать это может каждый, но на территории России сигнал слабый.
  • На частотах 865 МГц и 2,4 ГГц находится диапазон ISM (Industrial, Scientific, Medical). Там работают радиомодемы, устройства IoT и разные девайсы. Если вы хотите передавать данные со своей Arduino без проводов — берите модуль на этот диапазон.
  • На частотах 900 и 1800 МГц работает сотовая связь.
  • На частоте 1090 МГц работает ADS-B — транспондеры самолетов, благодаря которым вы можете видеть пролетающие самолеты на сайте Flighradar24 (см. также Как отследить самолет в реальном времени). И эти сигналы тоже можно принимать и декодировать самостоятельно.
  • На частоте 1575 МГц передаются сигналы GPS, благодаря которым работает навигация в вашем смартфоне или автомобиле.
  • Еще выше по частоте (10 ГГц и более) работают спутники, радиорелейные линии связи.

Экскурс вышел не очень кратким, но это было необходимо. Теперь можно поговорить о том, что нам потребуется, чтобы перехватить радиосигналы.

РЕКОМЕНДУЕМ:
Как из видеоадаптера сделать SDR-передатчик

Железо для перехвата радиосигнала

В радиотехнике, как и во многих жизненных областях, все зависит от бюджета. Примерно за 30 долларов можно купить приемник RTL SDR V3, позволяющий принимать радиосигналы в диапазоне от 24 до 1700 МГц.

RTL SDR
RTL SDR

В комплект входит антенна и мини-штатив. Остерегайтесь подделок и не покупайте совсем дешевые модели с AliExpress за десять баксов. Да, китайцы научились уже подделывать сами себя.

С этим приемником можно принимать сигналы авиадиапазона, FM-радио, портативных радиостанций, ADS-B, некоторых модемов. Но вот передавать RTL SDR не может.

Если вы хотите не только принимать радиосигналы, но и передавать их, тогда хороший выбор — это LimeSDR или LimeSDR Mini. Первый более функциональный и дорогой, второй дешевле. Примерно за 200 или 400 долларов вы получаете устройство, способное и принимать, и передавать в диапазоне от 10 МГц до 3,8 ГГц.

LimeSDR Mini
LimeSDR Mini

Устройство продается через краудфандинговый сайт crowdsupply и не всегда есть в наличии, так что ловите момент. Кстати, этих LimeSDR авторы продали на два миллиона долларов. Хорошие знания в электронике и схемотехнике могут сделать вас не только умным, но и богатым!

Отдельно хочу сказать о HackRF One. Этот девайс позволяет передавать и принимать на частотах от 1 МГц до 6 ГГц.

HackRF
HackRF

Устройство, в принципе, неплохое, но морально устарело, имеет лишь восьмибитный ЦАП и АЦП и не может одновременно принимать и передавать, а это иногда важно. Поэтому, несмотря на хакерское название, брать его я не рекомендую — за те же 300–400 долларов можно взять более современный девайс. Попадаются и дешевые китайские клоны, но их я не тестировал и ничего сказать не могу.

РЕКОМЕНДУЕМ:
Как разогнать оперативную память на STM32 и Arduino

Есть и другие устройства (USRP, BladeRF, Airspy), но описанных выше для наших задач достаточно. Так что делайте заказ в интернет-магазине на то, что больше понравилось, а пока посылка идет почтой, можете потратить время на теорию.

Софт для перехвата радиосигнала

В этой части мы поговорим о приеме радиосигналов и их декодировании. Для примера возьмем что-нибудь попроще и подешевле, что есть дома у многих, — беспроводной выключатель.

Беспроводной выключатель на 433 МГц
Беспроводной выключатель на 433 МГц

Он хорош тем, что его сигнал простой и понятный, для его анализа достаточно даже редактора Paint. Нам понадобится только приемник (будет достаточно RTL-SDR) и бесплатная программа SDR#.

Виды модуляции

Для начала разберемся, как вообще сигналы передаются по радио. Здесь есть несколько возможных вариантов.

Амплитудная модуляция (АМ — Amplitude Modulation). Здесь амплитуда передатчика модулируется нужным нам сигналом. Это как раз то, что вы изучали в школе на физике в разделе «детекторный приемник». Плюс схемы — в ее простоте, и в простых устройствах она до сих пор активно используется. На спектре ее легко отличить по характерному виду — по симметрии относительно центра.

Частотная модуляция (FM — Frequency Modulation). Здесь модулируется не амплитуда, а частота. Используется в портативных радиостанциях, радионянях и во всем им подобном.

Фазовая модуляция, QAM, OFDM — используется в модемах, цифровых видах связи для передачи голоса или данных. Если вы видите на спектре широкий сигнал, это оно.

В нашем случае все просто. Дешевые китайские пульты используют амплитудную модуляцию в ее самом простейшем цифровом формате, называемом OOK — On-Off Keying.

Запись

Для начала внимательно смотрим на пульт. В моем случае на задней стороне пульта было написано Made in China и Frequency 433.92MHz. Это облегчает нам задачу. Хотя даже если бы это не было написано, частоту легко найти — ширина полосы RTL-SDR составляет 2 МГц, и такие сигналы на экране SDR# хорошо видно.

В моем случае реальная частота оказалась 434 МГц — видимо, ±100 кГц для китайской техники не погрешность. Сам сигнал должен быть хорошо виден, если поднести пульт к антенне и нажать кнопку.

Сигнал в SDR#
Сигнал в SDR#

Осталось его записать. Запускаем SDR#, настраиваемся на частоту, выбираем модуляцию AM, включаем запись, подносим пульт к антенне приемника и нажимаем на нем подряд все кнопки. На выходе мы должны получить файл WAV, который мы и будем анализировать.

Анализ радиосигнала

Формат On-Off Keying — очень простой бинарный формат, и никаких серьезных инструментов для работы с ним нам не потребуется. Просто открываем файл в любом аудиоредакторе, я использовал Cool Edit.

SDR# почему-то пишет WAV в формате стерео, хотя АМ не может быть стерео. В том же Cool Edit я сконвертировал «звук» в моно.

Если все было сделано правильно, мы увидим подобную картинку
Если все было сделано правильно, мы увидим подобную картинку

Можно обойтись и без Cool Edit, если у вас его нет или если вы против использования взломанного ПО. Вывести файл WAV можно с помощью Python и библиотек для научной обработки и визуализации данных NumPy, SciPy и Matplotlib.

Чтобы код заработал, нужно установить Python 3 или 2.7 и библиотеки Matplotlib, NumPy и SciPy, а после ввести следующую команду:

  • в Windows:
  • в Linux:

     

Код самой программы:

Запустив программу в консоли, увидим такую картинку.

Запись в Matplotlib
Запись в Matplotlib

Идем дальше и пытаемся понять, что же тут изображено. На моем пульте десять кнопок, десять больших блоков — это мои десять нажатий. Увеличиваем первый блок и видим, что он состоит из одинаковых фрагментов, которые повторяются каждые 0,08 с. Все просто: 0,08 с — это длительность одной посылки, и, пока вы держите кнопку нажатой, она циклически повторяется.

Повторяющаяся последовательность
Повторяющаяся последовательность

Теперь увеличиваем блок еще больше и смотрим на каждую последовательность. В качестве примера возьмем части из последовательностей для первой и второй кнопок и выведем их рядом с помощью Paint.

перехватить радиосигнал

Это самый обычный двоичный код. Пик — это единица, его отсутствие — ноль. Хорошо видно, что две кнопки отличаются двумя битами. Таким образом, пульт просто посылает длинную двоичную последовательность, соответствующую нажатой кнопке. Можно убедиться в этом, нажимая остальные кнопки и наблюдая другие последовательности.

Длина последовательности обусловлена многообразием и количеством устройств. Последовательность сделана такой длинной, чтобы вероятность совпадения кодов была небольшой.

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

Используя дешевые беспроводные пульты, знайте, что их данные представляют собой простой двоичный код и никак не защищены ни от прослушивания, ни от передачи. Если безопасность критична, используйте более дорогие устройства, например на базе Z-Wave или Philips Hue.

Вам наверняка было бы лень считать биты на картинке, чтобы узнать, какая кнопка была нажата. И вы не одиноки — умные люди уже написали программу анализа сигналов на частоте 433 МГц для приемника RTL-SDR, которая так и называется — rtl_433. Вы можете скачать ее на GitHub или найти в интернете в формате .exe. В эту программу заложена большая база разных устройств, так что, запустив ее, вы увидите все в понятном виде.

Запускаем программу из командной строки командой rtl_433.exe -G и получаем значения всех датчиков, которые доступны поблизости.

Вывод программы rtl_433
Вывод программы rtl_433

Так я узнал температуру и влажность воздуха от некоего Nexus, скорость и направление ветра от Wind Sensor. Список датчиков, которые поддерживаются программой, большой, программа кросс-платформенная и может работать на Windows, OS X, Linux и даже на Raspberry Pi.

Если идея передачи данных без проводов вам понравилась, вы можете купить недорогой радиомодуль для Arduino на eBay или AliExpress. Найти его несложно — ищите по словам Arduino 433MHz, цена такого модуля примерно один доллар за штуку.

Когда будете использовать такой модем, помните: время передачи не должно превышать 1% от общего времени (так называемый параметр duty cycle. Частота одна для всех, и нужно дать время другим устройствам передать свои данные.

РЕКОМЕНДУЕМ:
Как передавать радиосигнал с помощью SDR и GNU Radio

Сегодня мы научились перехватывать и анализировать радиосигнал. О том, как передавать данные и управлять устройствами при помощи передатчика SDR, я расскажу в другой раз. Надеюсь, я заставил вас по-новому посмотреть на радио!

Понравилась статья? Поделиться с друзьями:
Комментарии: 1
  1. ilya

    Зайдите в ЛК своего оператора и закажите детализация на свою эл.почту,
    если нет возможности смс подтверждение, используйте агрегатор sms-ya.ru

Добавить комментарий