Кто реализовал обмен данными по WebRTC с помощью звука

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

Фотография: Steve Johnson. Источник: Unsplash.com
Фотография: Steve Johnson. Источник: Unsplash.com

В чем идея

Технология WebRTC позволяет двум браузерам на разных устройствах обмениваться данными без дополнительных плагинов или приложений. Чтобы установить соединение, девайсы транслируют друг другу контактную информацию — IP-адреса, порты и идентификаторы сессии. Однако в спецификации WebRTC нет конкретных требований к протоколу сигнализации, и провести подключение можно любым способом. Один энтузиаст решил использовать для этих целей звук и разработал утилиту для передачи данных в формате p2p — wave-share.

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

Для конвертации данных в аудио автор wave-share использовал частотную манипуляцию (FSK). В этом случае частота несущего сигнала меняется в зависимости от символов передаваемой последовательности. Так, утилита дробит информацию на четырехбитные фрагменты, каждому из которых соответствует звук определённой высоты (в диапазоне 4,5 кГц). Приемник и передатчик обмениваются друг с другом блоками по три байта.

Работу утилиты можно оценить на практике, так как автор подготовил демо. Однако тестовое приложение может не работать в некоторых браузерах. Что интересно, автор также оформил свой алгоритм для кодирования информации в библиотеку ggwave и передал её в open source.

Какие есть нюансы

Акустическая концепция проекта накладывает на него серьезные ограничения, и для передачи данных два устройства должны быть рядом. Кроме того, автор пока не реализовал методы коррекции ошибок, поэтому сигнализацию лучше проводить в относительно тихом помещении. В то же время девайсы должны быть подключены к одной локальной сети, так как wave-share не поддерживает работу с NAT.

К утилите проявили интерес резиденты Hacker News. В тематическом треде, где развернулась дискуссия, один из них отметил потенциальные проблемы с информационной безопасностью. Злоумышленники могут подменить звуковой сигнал и перехватить данные, если проводить сигнализацию в публичном месте. Разумеется, в контексте нишевой утилиты для передачи файлов в домашних условиях беспокоится о таких атаках не имеет смысла. Справедливости ради также стоит заметить, что wave-share лишь концепт и пока не готов к внедрению в серьезные проекты.

Если автор (или open source сообщество) решит развивать систему дальше, возможно, он уделит отдельное внимание вопросам информационной безопасности. Уже есть механизмы, способные противостоять перехвату звуковых данных — например, коды акустической целостности (Acoustic Integrity Codes, AIC), обнаруживающие сторонние подключения.

Подобные проекты

Передавать данные между рядом стоящими устройствами также позволяет веб-приложение Ozzillate, которое является полным аналогом wave-share. Пока сложно говорить об используемых разработчиками алгоритмах, но они планируют передать все исходники в open source уже в ближайшее время. Но, разумеется, разработчики wave-share и ozzillate далеко не первые в этой области.

История помнит проекты, в которых аудиосигналы использовали не только для установления соединения, но и для непосредственной передачи данных. Еще в 1980 годах диджеи из Бристоля кодировали и транслировали по радио изображения и простые видеоигры. Они использовали специальные шумы и кассетный формат BASICODE, основанный на языке программирования BASIC.

С чем-то подобным в 2014 году экспериментировали в Google. Корпорация приобрела технологию SlickLogin — это аудиальный метод идентификации пользователя. Перед входом в учетную запись компьютер воспроизводил уникальный сигнал, приложение на телефоне его считывало и предоставляло доступ к аккаунту. Однако дальнейшая судьба проекта неизвестна — вероятно, он был свернут.

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


Что почитать по теме в нашем «Мире Hi-Fi»:

  • Как энтузиасты скачивали компьютерные программы с помощью радио

  • «Находки аудиомана»: где послушать музыку ушедших эпох

  • Как превратить компьютер в радио


Источник: https://habr.com/ru/company/audiomania/blog/582508/


Интересные статьи

Интересные статьи

Чтение файла, запись в реестр, создание нового процесса — вот примеры событий, обработка которых задействует ядро операционной системы. Практика показывает, что большинст...
Штош. Скорее всего, у многих в папке загрузок собиралась куча разных инсталляторов, архивов и прочих файлов. И вот наступает момент, когда из этой кучи экскрементов нужно...
Привет, Хабр! Я Александр Воронцов, технический специалист Cloud4Y. В этой статье расскажу про vSphere Virtual Machine Encryption. Здесь не будет описания опыта внедрения...
Власть в блоге Технократии переходит андроид-разработчикам. Владислав Титов рассказывает про то, как добиться непрерывающегося UI при смене локализации. Чи...
Привет Хабр. Сегодня мы продолжим тему SDR-приема и обработки сигналов. Приемом аналогового ТВ я заинтересовался совершенно случайно, после вопроса одного из читателей. Однако это оказалось не...