9

Как уязвимость в Яндекс.Станции вдохновила меня на проект: Музыкальная передача данных

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

Как уязвимость в Яндекс.Станции вдохновила меня на проект: Музыкальная передача данных Музыка, Идея, Данные, Прототип, Видео, Длиннопост, Яндекс Станция

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

"… передача информации происходит, ну не по звуку, конечно ..." — говорит Валентин. Знал бы он, что в этот момент его пароль от WiFi попал в видео практически в открытом виде! Но об этом позже.


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

Как уязвимость в Яндекс.Станции вдохновила меня на проект: Музыкальная передача данных Музыка, Идея, Данные, Прототип, Видео, Длиннопост, Яндекс Станция

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

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


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


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


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


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

Как уязвимость в Яндекс.Станции вдохновила меня на проект: Музыкальная передача данных Музыка, Идея, Данные, Прототип, Видео, Длиннопост, Яндекс Станция

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


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


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


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

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

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


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


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


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

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


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


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


Подводя итог


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


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


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


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


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


Успехов!

Найдены возможные дубликаты

Отредактировал dovred 10 дней назад
+1

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

раскрыть ветку 1
0
Я к оки-токи подпаялся и загружал спекрум по радиоканалу)))
0

а на VBА такое можно реализовать?

0

о боже. вы изобрели модем! это чудесно =)

кстати идея эта далеко не яндековская на многих китайских ip камерах настройка wi-fi так и происходит

0

чёрт побери

раскрыть ветку 1
0
Иллюстрация к комментарию
0
Миллениалы придумали "морзянку", бгг.
0

ты крут чувак!!!

раскрыть ветку 1
0

Спасибо!

0

Еще можно проигрывать данные кредитки. Ведь устанавливая приложение вы добровольно  отдаете все свои данные. Ведь вас не предупреждают, что яндекс  получает  ваш пароль и передает его в незашифрованном видею

Следующий шаг  нечаянное отдача себя в анальное рабство, что впрочем уже  происходит.

0

Вроде Привет и Пикабу одинаково звучат.

0
Например можно встроить в клаксон автомобиля.
В авто установлен планшет с микрофоном. Водитель произносит фразу и жмёт на клаксон. Звуки пиликают, стоящие рядом автомобили оборудованные планшетом приемником видят сообщение на своем экране.
раскрыть ветку 3
+1

"Ёб твою мать, пидорас, куда ты нахуй прёшь!"

Примерно так будет всё это звучать. ))

раскрыть ветку 2
+1
раскрыть ветку 1
0
Прикольно! Молодец!
раскрыть ветку 1
0

Спасибо!

-5

@moderator, рекламный пост

раскрыть ветку 8
+2

Ебанись об стену, где ты тут рекламу увидел?

раскрыть ветку 4
-1

@moderator, оскорбление

раскрыть ветку 3
0

галоперидол принять забыл?

раскрыть ветку 2
-1

Всё, всё, уже вижу - была не права. Концентрация фразы "Яндекс станция" смутила просто. Хули злые такие? Не принял 100 грамм с утра?

раскрыть ветку 1
ещё комментарии
Похожие посты
Похожие посты не найдены. Возможно, вас заинтересуют другие посты по тегам: