Хабрахабр

Universal Radio Hacker — легкий способ исследовать цифровые радиопротоколы


Universal Radio Hacker (URH) — невероятно простой и понятный инструмент для анализа цифровых радиопротоколов. В отличие от монстров вроде GNU Radio, освоить его можно за пять минут, без мучений.
Главные особенности URH:

  • Работает на всех платформах — на macOS/Linux/Windows, из коробки! Не нужно часами компилять километры зависимостей.
  • Поддерживает популярные SDR — нативная поддержка RTL-SDR, HackRF, LimeSDR, AirSpy и других.
  • Все в одном — все нужные инструменты встроены в одну программу: анализатор спектра для поиска частот, запись сигнала, интерпретатор цифрового сигнала для автоматического преобразования записанного сигнала в цифровые данные.
  • Поддерживает передачу — для проведения replay-атаки достаточно выделить мышкой нужный отрезок сигнала и нажать Replay. Великолепно!

В статье мы будем анализировать сигнал пульта от шлагбаума, при помощи народного RTL-SDR (радио из дешевого USB ТВ-тюнера) и macOS.

Установка

URH написан на Python 3, со вставками C через Cython. Его можно использовать прямо из репозитория, без установки и компиляции.

Для UNIX-подобный ОС его можно установить через менеджер пакетов pip3:

pip3 install urh

Библиотеки для работы с SDR в macOS можно установить через brew:

brew install rtlsdr hackrf

Определяем частоту

Для начала нужно узнать, на какой частоте работает наш брелок. В большинстве случаев, такие устройства работают в нелицензируемом диапазоне 443Mhz. Проверим, так ли это, с помощью анализатора спектра.

Единственное его назначение — визуально найти нужный сигнал. File -> Spectrum Analyzer
Этот инструмент только показывает спектр в выбранном диапазоне, и не позволяет как-либо сохранять или обрабатывать сигнал. В параметрах указываем драйвер устройства (в моем случае это RTL-SDR), и частоту.

Your browser does not support HTML5 video.

На видео показан анализатор спектра, который позволяет установить, на какой частоте работает устройство.

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

Записываем сигнал

Теперь можно сохранить сигнал нажатия кнопок для последующего анализа. Важно понимать, что записывается не только выбранная частота, но и все соседние, которые может услышать наш SDR. Это регулируется настройкой Bandwidth. Поэтому файл с дампом увеличивается достаточно быстро, по нескольку мегабайт в секунду. Для нашей задачи можно существенно уменьшить Bandwidth и Sample Rate, это уменьшит объем лишних захватываемых данных, но мы оставим их по умолчанию, чтобы не напрягаться.

File -> Record Signal...

Your browser does not support HTML5 video.

Видео: захват сигнала с брелка

Для того, чтобы понять, используется ли какая-то защита от replay-атаки, нажимаем на кнопку несколько раз. Так как брелок находится близко к приемнику, его сигнал достаточно мощный, и его отчетливо видно на вейвформе. Это позволит нам сравнивать несколько разных сигналов.

Анализируем сигнал

После закрытия окна записи сигнала, сохраненный дамп загружается в интерпретатор, который автоматически определяет параметры сигнала: модуляцию, длину бита, и т.д., и преобразовывает аналоговый сигнал в цифровой. Это очень удобно, ничего подобного я не видел в других похожих программах. Обычно, для того же самого используются консольные утилиты, которым нужно вручную задавать параметры сигнала.

Для удобства, данные можно отобразить в HEX-формате.

Следовательно, никакой криптографии в нашем пульте не применяется. Даже беглого взгляда достаточно, чтобы увидеть, что они повторяются. Для этого достаточной мышкой выделить нужный кусок сигнала на спектрограмме и нажать кнопку replay. А это значит, что мы легко можем выполнить replay-атаку. Поэтому для проведения атаки нам нужно любое устройство из поддерживаемых URH, которое умеет передавать сигнал: это может быть hackrf, limesdr, bladerf или USRP. Но, к сожалению, RTL-SDR не умеет передавать, а только принимает.

Your browser does not support HTML5 video.

Графическое выделение позволяет удобно работать с сырым сигналом и обработанными данными.
Отдельно хочу отметить удобство работы с интерпретатором. При выделении сигнала на вейвформе, выделяются обработанные данные. Это удобно в тех случаях, когда есть сомнения в правильности автоматического парсера, и нужно изучить сигнал вручную.

Итог

URH — простой инструмент для работы с разнородными сигналами, который из коробки поддерживает все популярные SDR. Освоить его можно за пять минут, без мучительной компиляции GNU Radio.

К сожалению, поддержка XTRX пока не добавлена в Universal Radio Hacker, но вы можете принять в этом участие.
Если вам интересна тема SDR, в нашем Хакспейсе Neuron вы сможете пообщаться с разработчиками продвинутого SDR — XTRX, которые в этом году провели успешную компанию на crowdsupply.

Все новости о жизни Хакспейса в телеграм-канале: @neuron_news

Теги
Показать больше

Похожие статьи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть