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



    В нескольких эпизодах сериала «Мистер Робот» главный герой Эллиот взламывает и доксит своих жертв, записывая собранную информацию на аудио 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 Гц.

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

    GlobalSign
    137,78
    Компания
    Поделиться публикацией

    Комментарии 7

      0
      Есть что-то похожее для передачи с помощью веб-камеры? Камера направляется на монитор, а монитор транслирует закодированный поток, передавая, допустим, до 1.85 МБ/с (960x540@30, 1 bit/px). И таким образом передать файлы с одного компа на другой.

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

      Хотя и при наличии односторонней передачи надо быть аккуратным — как видно из статьи, подключил колонки, и уже можно слить данные с помощью звука =) По крайней мере если на соседнем устройстве есть микрофон, но он у всех есть (например, в мобильном телефоне).
        –1
        Лет 25 назад такое умели часы Timex Datalink
          0
          Подключить к Интернету нельзя, т. к. вирус может слить данные в Интернет. Вставить флешку нельзя, т. к. вирус может слить данные на флешку.

          CD, DVD, Blu-ray?
            0
            Видал не так давно нечто подобное, передача данных посредством сменяющихся QR кодов
              0
              однонаправленный шлюз
              достаточно популярное устройство в решениях информационной безопасности
              0
              программа выпускается только под Windows, а хакер по определению не мог работать в этой операционной системе

              А можно на том же основании заявить, что хакер по определению не будет использовать js для подобных целей?
                0
                Судя по всему, Эллиот использовал программу DeepSound для сокрытия информации в звуковых дорожках. Это немного странно, потому что программа выпускается только под Windows, а хакер по определению не мог работать в этой операционной системе.
                1) Wine.
                2) Написать самому аналог за вечер.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое