{"id":9208,"title":"\u0412 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043d\u0430 vc.ru \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u0442\u0438\u043a\u0435\u0440\u044b","url":"\/redirect?component=advertising&id=9208&url=https:\/\/vc.ru\/promo\/326527-lyubite-rugat-servisy-vk-etot-tekst-dlya-vas&placeBit=1&hash=032d65c70fe5fc63c371cf935d9281ebe7529d9359ff65d7499233043c93d674","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 комментариев
Популярные
По порядку
Написать комментарий...
Nikolay Kenig

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

Ответить
46
Развернуть ветку
Мутный корабль

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

Ответить
14
Развернуть ветку
Сергей Крупник

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

 ffUfD ffwUX (!wwfUD ffUfD

Ответить
12
Развернуть ветку
Петя Иванов

xthnjd utybq!

Ответить
0
Развернуть ветку
Юрий Белоножкин

бНОПНЯ

Ответить
2
Развернуть ветку
Платон Щукин

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

Ответить
12
Развернуть ветку
dss

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

Ответить
8
Развернуть ветку
Мутный корабль

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

Ответить
1
Развернуть ветку
Вадим Зуев

Отдай мне.

Ответить
0
Развернуть ветку
Мутный корабль

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

Ответить
0
Развернуть ветку
Вадим Зуев

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

Ответить
1
Развернуть ветку
Make Luv

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

Ответить
8
Развернуть ветку
Кот Рейх

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

Ответить
5
Развернуть ветку
Сергей Крупник

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

Ответить
0
Развернуть ветку
Дмитрий Гладышев

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

Ответить
4
Развернуть ветку
Гала Перидоловна

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

Ответить
0
Развернуть ветку
Dmitry Ershov

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

Ответить
1
Развернуть ветку
Гала Перидоловна

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

Ответить
–1
Развернуть ветку
Dmitry Ershov

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

Ответить
2
Развернуть ветку
one you follow

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

Ответить
0
Развернуть ветку
Dima Azizbekov

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

Ответить
2
Развернуть ветку
Danil Garashchenko

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

Ответить
2
Развернуть ветку
Tim Maev

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

Ответить
1
Развернуть ветку
Макс Лысюк

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

Ответить
1
Развернуть ветку
Viacheslav B

Пост Агонь!

Ответить
1
Развернуть ветку
Sergey Kronfeld

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

Ответить
1
Развернуть ветку
Сергей Крупник

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

Ответить
0
Развернуть ветку
Мутный корабль

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

Ответить
1
Развернуть ветку
Сергей Крупник

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

Ответить
1
Развернуть ветку
Коля Павельев

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

Ответить
1
Развернуть ветку
Юрий Виль

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

Ответить
0
Развернуть ветку
Сергей Крупник

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

Ответить
1
Развернуть ветку
Юрий Виль

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

Ответить
0
Развернуть ветку
Роман Романов

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

Ответить
0
Развернуть ветку
Утренний лолипоп

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

Ответить
0
Развернуть ветку
Влад Куряев

Круто.

Ответить
0
Развернуть ветку
Александр Сёмочкин
Ответить
0
Развернуть ветку
Максим Мирошник

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

Ответить
0
Развернуть ветку
Nikolay Chudinov

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

Ответить
0
Развернуть ветку
Антон Добрынин

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

Ответить
0
Развернуть ветку
Stanislav Vershinin

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

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

Ответить
0
Развернуть ветку
Yury Y

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

Ответить
0
Развернуть ветку
$амураймаркетинга

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

Ответить
0
Развернуть ветку
Сергей Крупник

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

Ответить
0
Развернуть ветку
Юрий Виль

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

Ответить
0
Развернуть ветку
Алексей Любимов

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

Ответить
0
Развернуть ветку
Сергей Крупник

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

Ответить
0
Развернуть ветку
Алексей Любимов

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

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

Ответить
0
Развернуть ветку
Сергей Крупник

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

Ответить
0
Развернуть ветку
Читать все 49 комментариев
Регулятор Евразийской комиссии начал расследование из-за запрета продавать россиянам машины в Белоруссии Статьи редакции

В ноябре о запрете из-за договорённости с российскими коллегами сообщили дилерские центры Lada, Renault, Volkswagen и Kia.

«Купи сейчас, плати потом»: новая классика или мимолетная мода

Сервис рассрочек рассказывает о новом финтех-тренде.

ЦБ снова пересчитал всех физиков на рынке. Свежий обзор аналитики за III квартал 2021

Сегодня вышел свежий обзор ключевых показателей профессиональных участников рынка ценных бумаг за III квартал от Центрального банка России.

Схемы обмана при продаже готового бизнеса: как уберечь свои инвестиции от мошенников

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

Его отверг Y Combinator, но признали миллионы пользователей: как работает и зарабатывает криптокошелёк MetaMask Статьи редакции

Сервис приносит материнской фирме ConsenSys сотни миллионов выручки в год, рентабельность составляет почти 100%, а используют его более 20 млн человек. Кто создал кошелёк, с кем он конкурирует и за что его критикуют — в разборе The Generalist.

Презентация MetaMask
Новый дизайн «Секрета фирмы» учтёт пользовательские сценарии потребления и поиска контента

О трендах бизнеса и экономики можно прочесть коротко и ясно в удобных форматах

Как выпустить заменитель соли на Boomstarter.ru и попасть в список Forbes

Сёстры из Астрахани запустили на Boomstarter.ru продажи нового продукта — зеленой соли. После этого их продукцию начали продавать в сетевых магазинах, а само бизнес-начинение журнал Forbes включил в список лучших стартапов.

Энергетики в Иркутской области через суд добились повышения тарифов на электричество для майнеров Статьи редакции

Регион считается «столицей майнинга» в России из-за низких цен на электроэнергию.

Сайт Tor заблокировали в России после публикации обращения с призывом к пользователям поднять у себя серверы Статьи редакции

Команда сообщила о начале блокировки всей сети с 1 декабря.

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

С помощью сервиса «Рокет Ворк».

Мощные сервисы для быстрого машинного обучения: от GPU SuperCloud до суперкомпьютера

В последние три года мы видим рост спроса на технологии искусственного интеллекта (ИИ) и машинного обучения. Они проникли практически во все сферы нашей жизни, начиная от различных колл-центров и городских систем видеонаблюдения, заканчивая системами медицинского скрининга и диагностики заболеваний. Даже для оплаты проезда в столичной подземке…

null