TCP/IP по аудиоканалу

    Разработчик Крис Кристофер (Chris Christopher) опубликовал довольно подробную инструкцию, как поднять канал связи между компьютерами, используя колонки. Можно отправлять пакеты TCP/IP и UDP «по воздуху», даже если на компьютерах отсутствует оборудование для связи.

    Автор использовал стандартные ноутбуки и общедоступное программное обеспечение, в том числе программу gnuradio. Он говорит, что проще всего скачать готовый LiveDVD-образ дистрибутива Gnuradio (версия Ubuntu с уже установленной программой gnuradio).

    Ещё нужно скачать с Github патч для gnuradio и установить его из-под рута. Патч модифицирует пакетные кодер и декодер gnuradio для поддержки пакетов переменного размера.



    Алгоритм кодирования/декодирования сигнала в целом изображён на этой схеме, и автор объясняет каждый шаг: создание виртуального сетевого интерфейса; трансляция пакетов с виртуального NIC в поток байтов для обработки пакетным кодером, который добавляет преамбулу пакета, заголовок и контрольную сумму.

    GFSK-модулятор осуществляет частотную модуляцию (FSK), накладывая биты на аналоговую несущую, как показано на первой иллюстрации.

    В модуляторе можно указать, сколько сэмплов передавать для каждого символа (9 по умолчанию): чем больше это значение, тем лучшее будет соотношение сигнала к шуму, то есть передача станет более устойчивой к помехам.

    На следующем этапе КИХ-фильтр (фильтр с конечной импульсной характеристикой) транслирует аудиосигнал сигнал на заданной частоте. Например, 19 кГц. На последнем этапе специальный блок конвертирует сигнал в приемлемый поток для аудиокарты.

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

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



    Работа тестового аудиоканала TCP/IP на частоте 23 кГц показана на видео внизу. Крис Кристофер предлагает также посмотреть PCAP-файл с записью всех пакетов, указанием задержек и скорости передачи, скриншот.

    Поделиться публикацией

    Похожие публикации

    Комментарии 99
      +5
      Здесь должна быть шутка про тот самый вирус.
        +16
        Нет. Здесь должна быть шутка про R2-D2.
          +12
          Просили? Получайте.
          image
          Пастафарианский R2-D2
        +7
        Забавно, а я когда-то настраивал PulseAudio через TCP/IP. Теперь это все дело можно закольцевать :)
          0
          Ну как тут не вспомнить Inception? :)
            0
            «Драйвера от модема на сидюке, а драйвера от сидюка в интернете.» (бородатый анекдот)
              +3
              image
              winrar.rar
                +3
                Если есть иконка, значит winrar уже установлен.
                  +1
                  Черт, и правда :)
                    +2
                    там скрытое расширение .exe
                      0
                      тогда это самораспаковывающийся архив, и стало быть никаких проблем.
                        +1
                        Да-да, самораспаковывающийся архив, конечно.
                      +2
                      это исторический момент записи на дискетку ещё ничего не подозревающему пользователю ))
                +12
                Следующим шагом должно быть соединение двух обычных ноутбуков, используя веб-камеры (моргать друг на друга мониторами).
                  +1
                  Можно, только со звуком быстрее. Скорость матрицы не позволит.
                  Хотя… если включить сюда цвет, и картинки в виде QR…
                    +38
                    Так и представляю себе ужастик: пошёл перед сном в душ, оставив два ноутбука работающими, приходишь, а они показывают друг другу разные QR-коды и издают странные звуки… тебя увидели и затихли.
                      +3
                      А ведь реально, отличная основа для сценария ужастика. Пусть даже трешового. Да даже для черушной комедии. Хм…
                        0
                        Главное, чтобы qr-коды были приличными :)
                          +9
                          ага, чтобы не содержали бы в себе компьютеры со снятым корпусом, разобранные на части и разбитые на куски
                            +1
                            И чтобы подключение только через хаб и никаких кроссовер соединений!
                            +6
                            image
                          –1
                          Картинки в виде QR потребуют прямой видимости камера-монитор.
                          А если играть с цветом/яркостью — то можно ловить и отражения от стен (с предварительной калибровкой-handshake'ом конечно).
                            +1
                            Картинки в виде QR потребуют прямой видимости камера-монитор.

                            — Дорогая, отойди пожалуйста, ты мне интернет заслонила :)
                              +4
                              — Дорогая, отойди пожалуйста, ты мне интернет заслонила :)
                              На самом деле такое уже происходит, в силу особенностей здания есть проход в котором если есть человек — в соседней комнате Wi-Fi не ловит (ну или качество падает в разы), когда человека нет — ОК… ))
                                0
                                Верю, сталкивался :)
                                  0
                                  Такое проходили ещё с телевизорами и радиоприёмниками )
                                  Вот так и представляю, ноутбук недовольно переспрашивает: «чё он там сказал?» и приходится ему внятно и членораздельно насвистывать )))
                                  0
                                  Зато гики смогут обходиться вообще без компьютеров.
                                +2
                                Реализовывал год назад одностороннюю передачу данных через QR-код на мониторе и веб-камеру ноутбука. До дуплекса, правда, дело не дошло.
                                  0
                                  И какова скорость передачи была? Интересуюсь на полном серьезе.
                                +8
                                Предлагаю срочно переоборудовать железнодорожное полотно транссибирской магистрали в нульмодемную рульсу и «перестукиваться» между городами… Правда я еще не придумал, как забороть synflood от поездов…
                                  +10
                                  Я как-то читал заметку хакера, который нашел уязвимость в прошивке фотоаппарата, но никак не мог придумать как выкачать прошивку для дальнейшего разбора, так как был ограничен буквально десятком байт на вредоносный код. В результате он придумал проморгать содержимое всей встроенной памяти на LED-индикатор на корпусе, и так заполучил прошивку из нее.
                                    +1
                                    С одной из моделей Айпода сдампили прошивку схожим образом. Там, правда, не светодиод, а пьезодинамик, который в норме щелкает, когда колесико крутят.
                                      +2
                                      Участники проекта chdk часто вытаскивают прошивки фотоаппаратов таким способом.
                                      chdk.wikia.com/wiki/CHDK
                                        0
                                        Похоже, скоро на все внешние элементы индикации будут ставить специальные цепи-замедлители, дабы пресечь на корню такой канал утечки.
                                          0
                                          Судя по скорости работы и времени отклика современной бытовой электроники, эти цепи и так уже везде.
                                            0
                                            Ну будет прошивка день-другой сливаться. Все равно же не вручную.
                                              0
                                              и каждые 10 минут будет отключатся по простою…
                                              Прошивку, мегабайта 2 слить со скоростью 10 бит/сек — примерно 23 суток.
                                          0
                                          Бывает, это используется и в обратную сторону: Timex Datalink (лет 20 назад) имели сенсор, и данные на них передавались с помощью мигания монитора. Появившаяся совсем недавно маска Remee программируется таким же образом.
                                            +2
                                            Я так передавал и принимал файлы на удалённый комп, к которому в целях безопасности осуществлялось подключение через хитрый аналог RDP, который вообще загружался как отдельная ОС. Т.е. только клава и мыша. Комбинации клавиш мыши — в одну сторону, светодиоды с платы клавиатуры — в другую. Скорость была никакая, естественно, но работало.
                                            Отдельная жесть в том, что программу для приёма данных я вводил как .COM-файл на удалённой системе в бинарных кодах.
                                            Сначала набрал «вводилку» через copy con filename.com (вводилка позволяла вводить с клавиатуры файлы, содержащие символы 0x00).
                                            Затем через неё набрал уже программу, которая могла принимать нажатия клавиш мыши.
                                            Уже через неё смог отгрузить остальной необходимы для приёма-передачи самописный софт.
                                              0
                                              Есть в таких штуках что-то очень приятное… да. Я в детстве писал программку, которая преобразовывала x86-код в только печатаемые символы (вначале был распаковщик, который тоже был написан с использованием только печатных символов) — как раз чтобы упростить copy con file.com.

                                              Кстати, этим приемом периодически пользуются в printable shellcode.
                                                0
                                                Ппц, и это был легитимный доступ к своей же системе?
                                                  0
                                                  Нет. Доступ был не совсем легитимный.
                                                  Но «официальные» процедуры переноса файлов там были до ужаса неудобны, т.к. для этого надо было каждый раз идти к админам.
                                                  Притом, никакой государственной или корпоративной тайны там не было.
                                            +11
                                            Интересна максимальная теоретическая скорость.
                                            Надёжность конечно пока не очень, сплошные перепосылки.
                                              +1
                                              Предполагаю, что будет стремиться к 33.6 снизу. Разумеется, если это будет происходить в идеальной тишине комнаты без эхо. И если софт будет грамотно использовать QPSK.
                                                0
                                                А если более сложные созвездия использовать?
                                                  0
                                                  Я не отрицаю возможность этого, но не берусь давать оценку. Так то, даже в меди на больших скоростях созвездия очень плотные.
                                              0
                                              Для всяких датчиков и встроенных устройств было бы интересно.
                                              Ждём реализацию на Android и ардуино (ну где то же это можно применить).
                                                +1
                                                Для датчиков есть более простые протоколы. Здесь же ненадежность в первую очередь из-за слишком большой минимальной порции данных которую необходимо передать — от чего получается высокая вероятность ошибки на пакет данных, в результате из-за ошибочного бита отбрасывается весь пакет.
                                                +1
                                                А зачем вообще колонки и микрофон? Можно просто звуковухи аудиокабелем соединить…
                                                  +5
                                                  Потому что по воздуху.
                                                  +46
                                                  переизобрел велосипед модем
                                                  image
                                                    +1
                                                    Ага. Следующее изобретение будет UUCP клиент на iOS
                                                      +1
                                                      А там и до VNET с SAGE доберутся.
                                                    0
                                                    хм, можно ультразвуковые динамики поставить и будет «блютус» как бы
                                                      +3
                                                      Вспомнилось — Terminator 3: Rise of the Machines (2003)

                                                      Увы не даёт мне картинку вставить, но есть линки.:
                                                      img23.imageshack.us/img23/8067/screenshot7q.png
                                                      www.criticalcommons.org/Members/ccManager/clips/t3cyborgmodemsoundcarphone.mp4
                                                      Cyborg phone modem database access
                                                      A cyborg from the future makes phone modem sounds to access online databases from her car
                                                        +1
                                                        А можете посоветовать какой-нибудь хороший мануал по GRC?
                                                        И какие-нибудь книжки, чтобы схемы в GRC рисовать осмысленно, а не копипастой из других источников.
                                                          0
                                                          И только русский человек будет испытывать — при каком уровне громкости Rammstein связь перестанет действовать ;)
                                                            +1
                                                            Хмм… а можно ли передавать по радио? Сделать радио-интернет.
                                                              +1
                                                              Радио-интернет-радио тогда уж сразу
                                                                +2
                                                                WiFi разве не этим занимается?
                                                                  +1
                                                                  Допустим на дальние расстояния.
                                                                    +5
                                                                    Gnuradio изначально для этого и предназначен.
                                                                0
                                                                Вот только интересно — какая у этой штуки скорость передачи данных?
                                                                Думается мне, что дата-центры соединить таким способом не получится…
                                                                  0
                                                                  18кГц, по 5-8 периодов на бит — просчитать несложно: около 2000 бод.
                                                                    0
                                                                    Спасибо! Я просто как-то не очень знаком с герцами…
                                                                      +1
                                                                      Судя по описанию, 18 и 19 кГц — это несущие. Соответственно, ширина канала — 1 кГц максимум.
                                                                    0
                                                                    Интересно, существует ли готовая программа под винду, позволяющая передать на аудиовыход и принять с линейного входа звуковухи какой-нибудь файл модулированным сигналом, пригодным для записи на кассету, например? Было бы прикольно залить какой-нибудь документ на кассету, как когда-то спектрум сохранял) Пусть и с маленькой скоростью и маленький объём. Я как-то искал, ничего адекватного не нашёл.
                                                                      +1
                                                                      Если нигде не нашли — попробуйте написать самостоятельно. Только не забудьте, когда получится, написать об этом на Хабре.
                                                                        +1
                                                                        1,5 Мб на 90 минутной кассете.
                                                                          0
                                                                          Проверял?
                                                                            +6
                                                                            10 лет почти каждый день загружал!
                                                                              –8
                                                                              На кассету??? И сколько кассет требуется на, например, Maario или Doom1?
                                                                                +4
                                                                                Может речь о чем-нибудь вроде спектрума? Домашние компьютеры до-IBM-PC-эпохи часто использовали аудио-кассеты для хранения, и влезало туда не то что бы много данных…
                                                                                  0
                                                                                  Кстати, может
                                                                              0
                                                                              Зачем проверять? Я много кассет записал на БК-0010 и ZX-Spectrum.
                                                                              0
                                                                              Интересно, что 90 минут звука это за сотню мегабайт даже в MP3.
                                                                              В сыром виде и того больше.
                                                                                0
                                                                                Мешает аудиотракт магнитофона, пишем ведь звук. Вот если заменить его (возможно вместе с головками) схемой, предназначенной для записи цифры, на кассету влезет гораздо больше.
                                                                                +1
                                                                                Вы размышляете не в том направлении. 90 минут звука в MP3 и 90 минут звука на кассете в аналоговом формате не одно и то же. На бытовых магнитофонах третьего класса качества можно было записать цифровые данные максимум со скорость 2400 бод (бит в секунду), но надежность была плохой, а обычным же значением скорости записи было 1200 бод.
                                                                            0
                                                                            Есть ли программы передачи таким образом информации, когда проводами подключены выходы микрофона к наушникам у обоих компьютеров?
                                                                              0
                                                                              AuDSL www.araneus.fi/audsl/ (если ее ограничения подойдут...)?
                                                                              «AuDSL is an experimental software modem for low-speed Internet connectivity over leased copper lines using PC sound cards as the line interface. The acronym AuDSL stands for Audio Digital Subscriber Line.
                                                                              A prototype installation of AuDSL has achieved a speed of 96 kilobits per second, full duplex, over several kilometers of two-wire copper leased line.

                                                                              Please note: the AuDSL software was written and released in 1999, when leased-line modems were relatively expensive and commercial DSL service and equipment were not yet widely available. It has not been actively maintained since then. It is not compatible with standard central office ADSL equipment, but requires a soundcard-equipped PC at both ends of the „last mile“ copper connection. For these and other reasons, it is not a viable alternative to an ADSL modem for most users. It is mainly of interest as a technological curiosity and as a source of code, algorithms, and inspiration for other open-source softmodem projects.»

                                                                              +1
                                                                              А что же про пропускную способность не сказал автор?
                                                                                0
                                                                                Наверно возможно практическое применение для подводных аппаратов, дальность будет сотни метров или более.
                                                                                0
                                                                                V.92 — Самый современный протокол. Скорость в прямом направлении 56000 бит/с, а в обратном — 48600 бит/с.
                                                                                А в представленном примере наверняка больше т.к. диапазон частот намного шире телефонных.
                                                                                  +1
                                                                                  Вы ошибаетесь. V90/92 можно использовать только на последней миле, без фильтров и соединений на линии, поскольку там полоса шире, чем телефонные 8 Кц. Даже соединившись двумя курьерами, вы не получите 56К между модемами. И это в среде, где эха гораздо меньше, чем в аудиоэфире, а все каналы данных электрически и частотно согласованы.

                                                                                  Выше я написал, что теоретический потолок — V34 с ее 33.6
                                                                                    +1
                                                                                    Ну чисто теоретически (отбросив фильтры) цифровой, телефонный канал дает 64к
                                                                                    4 кГц (точнее 3 800) сам аналоговый телефонный канал. По правилу Котельникова увеличиваем частоту дискретизации в 2 раза. Получаем 8 ну и 8-ми битный звук. Итого 8х8 = 64
                                                                                      0
                                                                                      Помехи в видео фоновых шумов, эхо и т.п.?
                                                                                        0
                                                                                        Согласен. Там вообще куча параметров влияющих на скорость, включая псофометрические шумы.
                                                                                        +1
                                                                                        Во-первых, цифровая передача возможна только благодаря тому, что сама АТС участвует в обмене. Во-вторых, у нас одна полоса на оба направленния передачи, так что деля пополам, получаем ту же цифру. Ну и в-третьих, это все диванная аналитика и тыкание пальцем в небо.
                                                                                          0
                                                                                          Немного не верно делить полосу пополам. Прием и передача разнесены. В цифровых АТС это 2 разных независящих друг от друга канала.
                                                                                          В случае аналога, разделение осуществляется с помощью дифсистем, впервые примененных в телеграфе. Что в свою очередь позволило повысить скорость передачи телеграмм в 2 раза (прием и передача одновременно).
                                                                                          Да и в представленной схеме передачи данных используя звуковой канал применены программные дифсистемы.
                                                                                            0
                                                                                            Эти два канала объединены на стороне абонента и обоих дискретизация 8 кГц x 8 бит. Поэтому полоса всё же получается общая, есть такое мнение.
                                                                                              0
                                                                                              Не верно. Я выше написал каким образом мы приходим к цифре 64к. Причем заметьте, это в одном направлении.
                                                                                              Тут расчеты можно произвести.
                                                                                    0
                                                                                    Мечта детства ) Я пытался это реализовать еще пытаясь работать со звуковой картой через порты под DOS…
                                                                                      0
                                                                                      Я просто оставлю это здесь: www.bgpu.ru/lit/technopark.html
                                                                                      2011 год, если что.
                                                                                        +1
                                                                                        Я смотрю, ребята изобрели DTMF (60-е года прошлого века).
                                                                                        –1
                                                                                        я просто оставлю это здесь
                                                                                        www.criticalcommons.org/Members/ccManager/clips/t3cyborgmodemsoundcarphone.mp4
                                                                                        2003 год, если что

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

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