Pull to refresh
145.69

Quiet.js: библиотека для приёма и передачи данных ультразвуком

Reading time3 min
Views5.6K


В нескольких эпизодах сериала «Мистер Робот» главный герой Эллиот взламывает и доксит своих жертв, записывая собранную информацию на аудио CD. Каждый диск он подписывает названием группы и альбома. Если злоумышленник получит доступ и поставит диск на воспроизведение — то услышит музыку, как и положено.

Судя по всему, Эллиот использовал программу DeepSound для сокрытия информации в звуковых дорожках. Это немного странно, потому что программа выпускается только под Windows, а хакер по определению не мог работать в этой операционной системе. Кроме DeepSound, существуют аналогичные инструменты для звуковой стеганографии. Например, QuickStego, AudioStegano, BitCrypt, MP3Stego, Steghide, AudioStego.

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


DeepSound поддерживает шифрование AES-256 для файлов, которые внедряются в аудиодорожки

В принципе, это не стеганография, потому что цифровые данные не прячутся в звуке, а преобразуются в звук. Чтобы спрятать их в звуковой дорожке или в музыкальном треке, нужно сделать дополнительные преобразования (учёные добились максимального битрейта 984 бит/с в музыке стиля хард-рок), здесь же только первый этап этой процедуры.

Первый этап — модуляция звукового сигнала из файлов. Для этого предназначена опенсорсная библиотека quiet, которая даёт на выходе бинарный файл для воспроизведения звуковой картой или файл .wav. На стороне приёмника она выполняет обратное преобразование, восстанавливая исходные файлы.

У библиотеки есть специальный режим ultrasonic- для передачи данных с очень низким битрейтом на частотах около 19 кГц, что находится на границе человеческого восприятия. Некоторые люди могут услышать какие-то странные звуки на сверхвысокой частоте, а другие ничего не услышат. Очевидно, чтобы транслировать звук такой звук «по воздуху», требуется очень качественное звуковое оборудование, то есть очень хорошие колонки и микрофон.

На основе библиотеки quiet разработана удобная javascript-обёртка Quiet.js. Она точно так же кодирует и декодирует произвольные файлы для передачи через звуковую карту, но при этом поддерживает интерфейс Web Audio. Таким образом, отправка данных возможна из браузеров Chrome, Firefox, Safari и Edge. Приём данных поддерживается в Chrome, Edge и, частично, в Firefox.

В Firefox не работает приём звука на сверхвысокой частоте, а в Safari вообще никакой приём звука не работает.

Примеры Quiet.js см. на демонстрационной странице. Можете запустить передатчик и приёмник на разных устройствах, например, на двух смартфонах. Разработчики рекомендуют установить громкость звука на передающем устройстве ниже 50%.

Шаблоны на демо-странице настроены на передачу текста…



… и картинок.



Передача картинок требует более серьёзного сжатия и декомпрессии, поэтому осуществляется только по аудиокабелю (например, аудиоразъём 3,5 мм на смартфоне), а приёмник можно запустить только на компьютере.

Вот как выглядит профиль для передачи текста:

{
"audible": {
"checksum_scheme": "crc32",
"inner_fec_scheme": "v27",
"outer_fec_scheme": "none",
"mod_scheme": "gmsk",
"frame_length": 25,
"modulation": {
"center_frequency": 4200,
"gain": 0.15
},
"interpolation": {
"samples_per_symbol": 10,
"symbol_delay": 4,
"excess_bandwidth": 0.35
},
"encoder_filters": {
"dc_filter_alpha": 0.01
},
"resampler": {
"delay": 13,
"bandwidth": 0.45,
"attenuation": 60,
"filter_bank_size": 64
}
}
}

Как видим, профиль записан в формате JSON, так что очень удобно изменять настройки на своём усмотрение. Например для передачи текста используется схема модуляции gmsk и основная частота 4200 Гц.

Кстати, на некоторых ЖК-мониторах можно генерировать звук даже при отключенных колонках.

Tags:
Hubs:
+7
Comments7

Articles

Information

Website
www.globalsign.com
Registered
Founded
1996
Employees
501–1,000 employees
Location
Япония