{"id":8499,"title":"vc.ru \u0438\u0449\u0435\u0442 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u044e\u0441\u0435\u0440\u0430 ","url":"\/redirect?component=advertising&id=8499&url=https:\/\/vc.ru\/team\/314459-vypuskayushchiy-prodyuser-kreativnogo-otdela&placeBit=1&hash=34698330acc58f51615fd71105e84a558eebd5a4f60d32de70f3a794ef4ca846","isPaidAndBannersEnabled":false}

Уязвимость в «Яндекс.Станции» вдохновила меня сделать сервис для музыкальной передачи данных

Всем привет! Недавно друзья подарили мне «Яндекс.Станцию». Для её активации нужно было поднести телефон и проиграть звук из приложения «Яндекс». В этой статье я расскажу, как разобрал этот сигнал, нашёл там пароль в открытом виде и развил идею передачи через звук.

Сергей Крупник

Реверс-инжиниринг

Процесс активации станции

Когда включаешь новую колонку, каким-то образом нужно передать на неё информацию для подключения к Wi-Fi-сети и авторизации в сервисах «Яндекса». В «Станции» это сделано через звук и выглядит так, как на видео ниже (7:34).

«Передача информации происходит, ну не по звуку, конечно», — говорит Валентин. Знал бы он, что в этот момент его пароль от Wi-Fi попал в видео практически в открытом виде! Но об этом позже.

Анализ сигнала

Я создал точку доступа Wi-Fi с паролем «012345678» и записал получившийся сигнал. Затем посмотрел на спектрограмму и понял, как устроен сигнал и где лежит пароль от WiFi.

Спектрограмма сигнала

Подробнее про реверс-инжиниринг я описал в статье на «Хабре», а пока хочу напомнить Wylsacom, Rozetked и другим блогерам о необходимости регулярной смены пароля. По крайней мере я знаю, какой у вас был на момент обзора «Яндекс.Станции» :)

Вдохновение

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

Действительно! Ведь протокол связи — всегда компромисс между дальностью, скоростью и надёжностью. А что, если все эти характеристики отойдут на второй план, а определяющим станет фактор впечатления для пользователя? Я решил сделать протокол, в котором для модуляции будут использоваться частоты нот.

За работу!

Мне понравилась простая, как молоток, идея разработчиков «Яндекса» — выбрать 16 частот: по одной для каждого hex-символа. А ещё у меня остались наработки от реверс-инжиниринга, поэтому я решил развить эту идею, а не придумывать всё с нуля.

Глубоко в технику вдаваться не будем: подробнее о разработке я написал в другой статье на «Хабре». А сейчас расскажу в двух словах.

Я избавился от щелчков в сигнале «Яндекс.Станции» и выбрал новые частоты для передачи: 16 нот, начиная с До первой октавы. Вот так:

​Шестнадцатеричные символы соответствуют нотам

Если использовать более высокие ноты, то становится менее комфортно ушам. А более низкие ноты хуже передаются из-за особенностей динамиков и микрофонов.

Получилась своего рода музыкально-частотная модуляция. Назовём её «круп-модуляция» :)

Запускаем!

Как же это звучит? Чтобы можно было попробовать прямо в браузере, я переписал передатчик с круп-модуляцией с Python на JavaScript и сделал простенький интерфейс.

Пользуясь случаем, хочу передать привет:

Кириллические символы и даже эмодзи тоже работают. Но посылки с ними получаются длиннее и менее мелодичными из-за особенностей кодировки.

Можете попробовать любые фразы тут. (Продублирую в конце статьи.)

А как же приёмник?

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

Я сделал прототип приёмника в качестве proof of concept. Вот как он работает:

Видите, передача данных идёт как по нотам! Конечно, ни о каком продакшне сейчас речи не идёт. Тут нет синхронизации, помехоустойчивого кодирования и контроля целостности.

Но если сообщество проявит интерес и подкинет пару вариантов практического применения, я могу реализовать перечисленную функциональность и обернуть в нормальную библиотеку :)

Как думаете, какие варианты практического применения и коммерциализации могут быть у музыкальной передачи данных?

Подводя итог

Это был интересный проект на пару вечеров с достаточно эффектным результатом. Такую передачу данных можно использовать, например, как «звуковой QR-code» — расшарить аккаунт с телефона на сайт и прочее.

Как вариант — с её помощью можно создавать мелодии для брендов. Вот, например, как звучит vc.ru.

Все текущие наработки доступны на GitHub — вы можете сами попробовать развить проект.

Дублирую ссылку на демку, работающую в браузере.

Спасибо, что дочитали! Надеюсь, вам было интересно.

Успехов!

0
49 комментариев
Популярные
По порядку
Написать комментарий...

Так вот оказывается как R2-D2 общается!

46
Парадный каякер

Комментарий удален по просьбе пользователя ред.

14

Еще что получилось — В лесу родилась елочка (В начале — пробел): 

 ffUfD ffwUX (!wwfUD ffUfD

12

xthnjd utybq!

0

Сергей, ваши бы руки в интересные проекты.

12

Период комерциализации уже прошел. 

8
Парадный каякер

Комментарий удален по просьбе пользователя

1

Отдай мне.

0
Парадный каякер

Комментарий удален по просьбе пользователя

0

В Диззи буду играть. :)

1

Можно явно и не таясь координировать толпы людей с включенным приложением.

8

И мелодии приятными выходят, и идея очень интересная. Цистерну чая автору!

5

Спасибо! Рад, что понравилось)

0

А теперь вспоминаем компьютеры типа "Спектрум", "Радио-86РК", "Орион" и подобные. Когда все программы и данные хранились на аудиокассетах в виде звука. И чтение/запись таких "дисков" производилась с помощью обычных бытовых магнитофонов. Так что идея не нова.

4

Там несколько иначе идёт кодирование. Основная проблема в том, что могут получить и принять динамик с микрофоном так, чтобы у человека не потекла кровь из ушей. А так обычный qpsk на коленке делается за 5 минут. Да и на гитхабе полно примеров. 

0

Меняйте последние биты в файлах данных, как в стеганографии. На слух практически не отличить - проверял на WAV файлах

1

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

–1

Либо я не понял, либо одно из двух. Кодовую последовательность можно в любую мелодию спрятать. Хороший Wav 44 кГц  (Котельников -Найквиста) - 44 тыс выборок в секунду. Если жестко - меняйте 2 последних бита - в секунду можно передать 88 бит. Если 5 сек контейнер -то итого  440 бит

2

А было и прикольнее: вот тут про калькулятор Friden EC-132 с акустической памятью – набранные числа хранились в виде стоячих волн в закрученном в спираль проводе!

0

Вот это да. 🤔 Браво!

2

Ну и как, посмеялся с пароля Rozetked?)

2

Можно использовать, как двойную аутентификацию, вместо переписывания длинных рандомных символов. Быстро и просто)

1

Удивил, молоток!

1

Пост Агонь!

1

Еще в фильме "Неуловимые мстители" , Буба Касторский передавал сообщения в танце). 

1

Кстати, на хабре высказали идею, что можно найти последовательности символов, которые будут звучать, как популярные мелодии)

0
Парадный каякер

Комментарий удален по просьбе пользователя

1

У меня получилось что-то похожее на главную тему из Пиратов Карибского моря.
Строка такая: !"3DUD3"3DUDD3DUD3"3"!" !

1

Лет 7-10 назад на сайтах с виртуальными пианино в каментах регулярно писали буквы на клаве, которые надо нажать, чтобы проиграть самые разные мелодии, там их охулиарды. Вообщем, тут простое прямое преобразование будет из них, хотя тогда уже проще готовые миди преобразовывать)

1

а где приемник взять, есть принимающая программа?

0

На гитхабе в папке research есть прототип приемника. Для стабильной работы его нужно дорабатывать. https://github.com/krupnikas/octave

1

Сергей, благодарю!

0

Да кому такое надо, оно же в открытом космосе не будет работать...

0

Комментарий удален по просьбе пользователя

0

Круто.

0

Дай Бог тебе сил развивать проект!!

0

хорошее начало

0

Диалап модем - не то? Уходим в прошлое) 

0

было уже такое, даже по для android есть
передача данных ультразвуком через динамик.

и наложить полученный сигнал, можно на любое аудио.

0

чувак изобрёл модем, вот это новость))) только вместо проводов - воздух

0

Пост шикарен! Автору респект и +100500 баллов к карме.

0

Спасибо! Рад, что понравилось)

0

Скорее всего надо как-то в рекламу это внедрять...тогда и спрос будет

0

А нота повтор знака есть? А то сбои гарантированы.

0

Да, защиты от сбоев нет. Это концепт. В идеале, конечно, нужны и помехоустойчивое кодирование, и контроль целостности.

0

естественно, двухчастное кодирование не вчера придумали.

да нет, простая защита от одинаковых подряд идущих цифр.  добавляется одна нота - повтор и если подряд идут одинаковые цифры, то вместо каждой второй ставится эта нота повтор. Позволяет передавать данные асинхронно. Пока нота не сменилась, это все один знак.

0

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

0
Читать все 49 комментариев
Почему Whoosh отказался от франшиз и планирует ли делать собственные самокаты: интервью с главой сервиса Дмитрием Чуйко Статьи редакции

До продажи бизнеса есть ещё «как минимум» два года, а пока Whoosh подумывает о запуске в Европе и учится сам собирать электросамокаты.

Сооснователь и гендиректор Whoosh Дмитрий Чуйко
До чего шутки доводят: как с помощью смелого SMM Vizit подняли продажи

Коммуникация бренда Vizit в социальных сетях — одна из самых обсуждаемых за последние пару лет в России. Агентство Panda Digital рассказало, как получилось к этому прийти, о сложностях и результатах.

Как канадские любители снегоходов и квадроциклов открыли для себя Россию

«Важно найти свою нишу и быть готовым к тому, что ничего не получится».

Российско-швейцарская WayRay представила свой первый прототип электромобиля с AR-остеклением Статьи редакции

За четыре года стартап хочет подготовиться к серийному производству и получить разрешения на движение по дорогам общего пользования.

WayRay Holograktor WayRay
Все, что нужно знать об оценке REITs
«Она похожа на соль — улучшит любое блюдо, если не переборщить»: как инженер-пианист создал гитарную педаль Big Muff Статьи редакции

Майк Мэтьюс бросил работу в IBM, чтобы дарить гитарам звучание, как у Хендрикса и The Rolling Stones, и придумал «золотой стандарт» педалей с искажением: её в своих записях использовали Pink Floyd, The White Stripes и Depeche Mode.

Майк Мэтьюс Vintage Guitar
Сервис «Кухня на районе» отменил бесплатную доставку еды Статьи редакции

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

Мысли создателя FastAPI Себастьяна Рамиреса из интервью Evrone

Себастьян Рамирез — энтузиаст open source, создатель таких популярных инструментов, как FastAPI, Typer и SQLModel. В интервью он поделился мнением о собственных проектах, образовании для разработчиков и собственной популярности в Twitter. Полный текст доступен по ссылке.

Как поздравить коллег с новым годом: 5 идей от b2b-направления СберМаркета

Надоели сладости, корпоративный мерч и фигурные свечки? Рассказываем, чем еще можно порадовать коллег в преддверии 2022 года.

The Office
Модемы, роутеры и интернет-центры Yota можно приобрести на Avito, OZON и «СберМегамаркет»
null