«Яндекс.Станция» — умная колонка с голосовым помощником Алиса. Чтобы её активировать, нужно поднести телефон и проиграть звук из приложения «Яндекс». Под катом я расскажу, как устроен этот сигнал, про пароль от WiFi в открытом виде и попробую развить идею передачи данных через звук.

Преамбула


Я закончил радиотехнический факультет МФТИ, изучал и разрабатывал системы связи от протоколов физического уровня до сетей федерального масштаба. Поэтому, когда друзья подарили Яндекс.Станцию, мне сразу стало интересно, как организована передача данных для активации через аудиотокен.

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


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



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

А пока рассмотрим, что происходит. Телефон берет данные о WiFi сети (ssid из системы, пароль вводит пользователь) и данные для авторизации в Яндексе. Они каким-то образом кодируются, модулируются и излучаются динамиком телефона. Станция демодулирует сигнал с микрофонов, декодирует данные и использует их для подключения к сети и авторизации.

В этом процессе нас интересует, как кодируются и модулируются данные.

Визуальная демодуляция


Для получения образца сигнала не нужна сама Станция. Необходимо только, чтобы телефон был подключен к WiFi с интернетом. Я решил создавать точки доступа с разными ssid и паролями, чтобы посмотреть, как меняется сигнал. Для удобства стал записывать звук в файлы и работать с ними.

Для начала я создал точку доступа со случайным паролем «012345678» и подключил к ней телефон. Нажал «Проиграть звук» и записал получившийся сигнал. Давайте посмотрим на его спектр во времени (waterfall). Здесь по вертикальной оси отложена частота, по горизонтальной — время, а цвет определяется амплитудой.


Так, тут видно, что применяется частотная модуляция, а данные передаются символами по 40мс. Также можно выделить возрастающую подпоследовательность:



Стоп! Кажется, у нас был возрастающий пароль. «012345678». Как эти цифры выглядят в кодировках ascii или utf-8? "30 31 32 33 34 35 36 37 38". Ого! Даже менять пароль не пришлось! Вот он где лежит:



Я попробовал менять пароль и убедился, что правильно определил его положение в сигнале.

Получается, данные кодируются символами по 4 бита. По сути кодируется hex строка, где каждому значению 0 — F соответствует своя частота от 1 кГц до 4,6 кГц с шагом в 240 Гц. При этом в начале и в конце передачи есть излучение на частотах выше 5 кГц — метки начала и конца отделены от основной части на физическом уровне.

Декодирование


Чтобы каждый раз не переписывать на листочек символы, глядя на спектр, я набросал простой приёмник на питоне, который достаточно стабильно конвертирует аудиофайл в исходную hex-строку. Я стал менять ssid точки доступа и анализировать, на какие байты это влияет. В итоге выяснилось, что информация о ssid хранится в двух байтах перед паролем. При этом длина этого блока не зависит от длины ssid. Как так?

Вероятно, на Станцию передаётся только хеш от ssid. При этом, скорее всего, Станция после включения вычисляет хеши названий всех доступных сетей. После чего выбирает сеть, сравнивая полученные значения с принятыми. Скорее всего, это сделано для уменьшения длины посылки. (Но как тогда происходит подключение к скрытым сетям?)

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



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

Написал в Яндекс?


Да, 8 мая 2019. Получил автоматический ответ:



Прошло 4 месяца — так и не связались. По правилам Яндекса, теперь можно разглашать информацию, чем я, собственно, и занимаюсь.

Это вообще проблема?


Возможно, сотрудники Яндекса не считают это проблемой. Действительно, это сложно назвать уязвимостью, ведь активация Станции редко происходит больше 1 раза. При этом, часто она находится в «доверенном» помещении. Дома или в офисе вы можете произносить пароль от WiFi вслух, что практически то же самое. Специалисты по информационной безопасности, как вы считаете?

Кроме того, алгоритм активации уже зашит в произведенные Станции, поэтому избавиться от этой уязвимости в текущей версии вряд ли удастся.

Однако, я считаю, это не повод игнорировать сообщения в bugbounty. По крайней мере, не вежливо обещать ответить и не делать этого. Ладно, будем считать, что моё обращение где-то затерялось. Если что, номер тикета: 19050804473488035.

Лично я считаю, что уязвимость какая-никакая есть. Поэтому, несмотря на то, что я обладаю стабильным приёмником этого сигнала, дать его вам не могу.


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

Что в итоге?


Разработчики из Яндекса сделали крутую штуку. Они разукрасили процесс активации Станции, сделали его необычным. Единственная проблема, на мой взгляд — открытый пароль.

А ведь тот же процесс можно было сделать безопаснее с использованием Bluetooth. Это навело меня на мысли, что в данном случае не так важна безопасность или скорость. Важно шоу. Активация через звуки, напоминающие R2-D2 из «Звездных войн», впечатляет и выглядит необычно.

Такая позиция вдохновила меня развить идею разработчиков Яндекса и сделать протокол, ориентированный на впечатление. Что, если для модуляции hex символов использовать частоты нот? Почему бы не передать данные в До-мажоре? Получилось очень интересно, но об этом — уже в следующей статье.

Спасибо, что дочитали, успехов!

UPD: Ответ Яндекса
Из службы информационной безопасности ответили в комментариях, а также прислали письмо:

Комментарии (81)


  1. Aquahawk
    30.09.2019 10:56

    yandex ну почему даже от багбаунти у разработчика остаётся такое впечатление? Edited: Ой, это оказывается не тот Яндекс, ну да ладно, путь так и останется.


  1. N1X
    30.09.2019 11:41

    Данные для авторизации в Яндексе мне не удалось выделить. Однако, длина пакета достаточно маленькая, поэтому точно можно сказать, что в посылке нет какого-нибудь OAuth токена

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


  1. kAIST
    30.09.2019 11:59

    Ну а какой еще есть способ передать колонке пароль от WiFi, если не в открытом виде? Колонка же должна самостоятельно подключиться.


    1. Krupnikas Автор
      30.09.2019 12:05

      Я не специалист в области информационной безопасности, но предположу, что можно зашивать на колонку при производстве ключ шифрования. Тогда можно будет с телефона слать данные защищенным образом. Тут есть проблема, что при компроментации ключа одной станции (например, получив физический доступ к внетренней памяти), будут скомпроментированы и все остальные.

      Можно, конечно, раздавать каждой станции свой ключ, но тогда придется просить пользователя дополнительно вводить вручную или сканировать какой-нибудь QR-код с идентификатором колонки. Иначе телефон не будет знать, какой ключ использовать.


      1. shpaker
        30.09.2019 12:15

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


        1. aavezel
          30.09.2019 16:26

          Вопрос в том, сколько пользователю держать руку над колонкой пока она наболтается с телефоном.

          для этого давно придумали qr коды.

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

          пи-пу-куррр-кир-курр-кир пии-кр-пиии-кр-пииюю-ПТУПТУТУ-шшшшпшшшкшшшшшшшпшшшш…


          1. Alexus819
            01.10.2019 10:57

            пи-пу-куррр-кир-курр-кир пии-кр-пиии-кр-пииюю-ПТУПТУТУ-шшшшпшшшкшшшшшшшпшшш

            теперь все знают твой пароль )


        1. willyd
          30.09.2019 17:44

          Но имхо это настолько забавный процесс, что я бы и пострадал немного созерцая за голосовым общением двух девайсов ))
          Вы наверное диал-ап не застали?


          1. shpaker
            30.09.2019 17:59

            Именно потому что застал я это и пишу


          1. mokhin-denis
            01.10.2019 08:47

            И не только dial-up, но еще и запись на магнитофон игр ZX Spectrum


      1. Mitch
        30.09.2019 20:52
        +1

        Колонка может вначале прошипеть свой уникальный открытый ключь и услышать закодированый ответ.


        1. Murmurianez
          01.10.2019 03:28

          Тут возникает вопрос о качестве микрофона на смартфоне, а это независимый параметр от Яндекса


          1. Mitch
            01.10.2019 14:37

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


    1. AEP
      30.09.2019 12:40
      +2

      Если доступна двухсторонняя передача данных, то варианты есть. По алгоритму Diffie-Hellmann, например, можно сгенерировать секретный симметричный ключ для защиты канала, и уже им шифровать пароль.


      1. Inanity
        30.09.2019 14:33

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


        1. pin2t
          30.09.2019 14:51

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


          1. anonimNO
            02.10.2019 05:42

            Ну или просто выдрать звуковую дорожку с ютуба, инстаграмма и т.д., куда там еще юзеры выкладывать свои видео распаковки.


      1. pin2t
        30.09.2019 14:34

        Скорее всего для Diffie-Hellmann-а не хватает пропускной способности аудиоканала. Одно дело пароль 8 символов только на станцию, другое дело килобайты информации туда-обратно


        1. ReklatsMasters
          30.09.2019 15:04

          ну пусть минуту друг другу песенки напевают. это было бы забавно.


        1. AEP
          30.09.2019 15:07

          Давайте посмотрим википедию. Предположим, нам достаточно 128-битного ключа. Тогда обе стороны должны послать друг другу по 128 бит. Т.е. по 16 байт.


          1. pin2t
            30.09.2019 15:33

            А потом пролистаем дальше и прочитаем что более-менее стойкий ключ 1024 бит. Но все равно не килобайты, да, согласеен.


            1. CryptoPirate
              30.09.2019 16:00

              Давайте посмотрим википедию. Предположим, нам достаточно 128-битного ключа. Тогда обе стороны должны послать друг другу по 128 бит.

              А потом пролистаем дальше и прочитаем что более-менее стойкий ключ 1024 бит.

              Вы сейчас явно про разные види ключей и про разные алгоритмы говорите.
              128 — AES, симметричный шифр.
              1024 — RSA, с открытым ключом.

              В Diffie-Hellmann нужена пара ключей: открытый и секретный. В результате получим ключ (созданный двумя устройствами вместе) для симметричного шифрования типа AES чтобы потом с помощью него общаться.

              *1024 бита на RSA уже маловато по нынешним меркам.


            1. dd3o
              01.10.2019 10:29

              Существует, например, тот же ECDSA, стойкий ключ для которого всего 256бит


        1. Barnaby
          30.09.2019 15:11

          8 это минимум, у меня пароль 32 символа. Открытый ключ в HEX можно уместить в 20 байт, наверное.


          Или яндексу было пофиг или проблема в слишком разных микрофонах у смартфонов. Станция идет с bluetooth, тогда я вообще не понимаю зачем спариваться через звук.


          1. pin2t
            30.09.2019 15:39

            Есть ещё NFC, скорее всего во всех телефонах уже. Видимо все равно это более геморно использовать именно для пользователя.


            1. tea
              30.09.2019 16:22

              Кроме самой станции есть еще и другие устройства с Алисой, в которых может не быть bluetooth или NFC. Поэтому используется универсальный способ для всех устройств с микрофоном. Но хотя бы поксорить можно было…


    1. iig
      30.09.2019 16:32

      Для подключения по wifi достаточно информации из линуксового wpa_supplicant.conf. Так вот, там внутри SSID и хеш (SSID; passphrase). Пароля в открытом виде нет.


      1. creker
        01.10.2019 01:18

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


        1. iig
          01.10.2019 06:09

          "все так делают"


          Не все.


          "В документации на wpa_supplicant.conf тоже ни про какие хэши информации не видно."


          Видно. man wpa_passphrase


          1. creker
            01.10.2019 11:48

            Генерация PSK заранее конечно интересно, но, к сожалению, на практике я не видел, чтобы так кто-то делал. Даже тут это руками требуется делать явно из-за проблем с совместимостью с чем-то иным, кроме WPA-PSK.


  1. wwladimir
    30.09.2019 12:35

    Такой способ передачи ключа первым использовал не Яндекс.
    Он же используется в некоторых «китайских» IP-камерах (например камеры Digoo).


    1. NetBUG
      30.09.2019 14:16
      +2

      … и в оригинальном Amazon Dash Button.


  1. spc
    30.09.2019 13:19
    +2

    Такая позиция вдохновила меня развить идею разработчиков Яндекса и сделать протокол, ориентированный на впечатление. Что, если для модуляции hex символов использовать частоты нот? Почему бы не передать данные в До-мажоре?


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

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

    – Понимаете, любая мелодия передается как последовательность или комбинация цифр, – вдохновенно продолжал объяснять Ричард. – Цифры же отображают высоту звука, его длину, сочетания…

    – То есть мотив, – подсказал профессор. Морковь все еще оставалась нетронутой.

    Ричард усмехнулся:

    – Мотив – весьма точное слово. Надо запомнить.

    – Так будет проще выразить мысль. – Не попробовав морковь, профессор вернул ее на тарелку и спросил: – Значит, программа ваша имела успех?

    – Не в этой стране. Оказалось, что годовые отчеты британских компаний в основном звучат как «Похоронный марш» из генделевского «Саула». Зато японцам она весьма приглянулась. У них вышло множество веселых корпоративных гимнов, которые начинаются очень задорно, но, если уж начистоту, к концу становятся чересчур шумными и скрипучими. Что самое главное, программа отлично показала себя в Штатах и имела коммерческий успех. Впрочем, теперь меня больше всего интересует другое: что будет, если убрать из нее счета? Превратить в музыку цифры, представляющие взмахи крыльев ласточки? Что мы тогда услышим? Точно не жужжание кассовых аппаратов, как того хочется Гордону.


    Дуглас Адамс


  1. bear11
    30.09.2019 14:22
    +1

    Если бы Существо не щелкнуло тумблером, я бы никогда его не нашел. Оно
    могло подождать, пока не подойду на расстояние вытянутой руки. Стоило мне
    чуть ослабить внимание, оно могло бы обезоружить меня, выбить карабин из
    рук. Но оно не сделало этого. Просто включило магнитофон и спокойно
    встретило смерть…
    Он кинулся к пульту. Где тумблер? Он шарил руками по приборной панели.
    «Тюлилихум ааухум».
    — Что ты делаешь, Мартин? — кричал полковник Яролимек, такой близкий и
    такой бесконечно далекий.- Сейчас мы тебя вытащим, успокойся!
    Мартин метался от одной секции к другой. «Тюлилихум ааухум»…
    Есть!
    Он коснулся плавно вращавшихся дисков. Накипевшая ярость нашла выход.
    Он вырвал пленку, бросил на пол, топтал ногами. Потом рассмеялся. К чему все
    это? Придут люди и сотрут последние следы какого-то «тюлилихум ааухум».
    Он вдруг почувствовал, что должен укрыться.
    — Куда ты, Мартин? — звал полковник Яролимек.
    Он не мог ответить и сам не знал почему. Неуверенными шагами направился
    к двери склада, где Дана Мразкова приняла свой последний бой. Они не должны
    меня видеть. Но почему, почему?
    Пошатываясь, ввалился он в помещение, привалился к стене и медленно
    сполз на прохладный пол. Специфическая удушливая вонь ударила в ноздри.
    «Тюлилихум ааухум».
    — Почему я все время думаю об этой мерзости? — спросил он себя вслух.
    И тут что-то произошло.
    Мартин Данеш впервые в жизни увидел свет.
    Он закричал от ужаса и неведомой прежде радости. Вечная тьма озарилась.
    Красочные очертания выступили из темноты, закружились в сознании. Странные
    переплетения, пульсирующие разноцветные прожилки… Это не просто свет,
    подумал Мартин. Это глаз Существа.
    Я скоро превращусь в Существо, я успел заразиться. Но я еще
    сопротивляюсь, через слух это идет не так быстро. Медленнее, чем вам
    хотелось бы, не правда ли? Кто вас сюда послал? Кто-то тщательно выбритый,
    умытый и плотно позавтракавший?

    Онджей Нефф, Белая трость калибра 7.62


  1. tea
    30.09.2019 16:15

    А зачем гадать, когда можно взять со станции модуль, отвечающий за авторизацию, и отреверсить его?


  1. loony_dev
    30.09.2019 16:22
    +2

    Krupnikas Но ведь пароли от wifi не всегда состоят из 8 цифр или букв, тоесть поддерживается кастомная длинна ключа. Что если попробовать сломать буфер внутри. Разобраться в остальных данных, передаваемых через протокол, написать кастомный фазер…


    1. tea
      30.09.2019 16:25
      +3

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


    1. Dywar
      30.09.2019 23:06

      8 символьный пароль ломается за 4/8 часов на старой видеокарте (не каждый кончено, но многие).
      Вообще WiFi там много всего, а вот что он звуком передается, это прикольно. И услышать его гораздо сложнее чем ловить хэндшейки. Так что да, уязвимость не особо опасна, блогерам просто не очень приятно будет, если у них пароли везде одинаковые.

      А безопасно его передавать можно по разному, как предложили выше используя ДиффиХелмана, или комбинацию подстановки/замены (Цезарь и другие) (не безопасно, но звук уже не поможет, тут мобилку придется крутить, хотя бы один раз).


      1. TimsTims
        30.09.2019 23:54

        Добавлю, что звук с расстоянием очень сильно угасает, и чтобы его корректно перехватить надо стоять с микрофоном рядом с устройством в момент активации, что будет несколько подозрительно. Лично у меня первая колонка только 3 его раза смогла правильно распознать пароль и активироваться. У родителей со второго раза заработала.
        Ну, а если у вас вообще имеется свободный доступ в помещение с колонкой (наверное это будет дом вашего друга), то вряд-ли вам нужно будет взламывать его вайфай, разве что для понта.


  1. madf
    30.09.2019 16:25
    -1

    Да, лентяев везде хватает, поленились даже элементарно шифрануть…


  1. Javian
    30.09.2019 16:37

    Они разукрасили процесс активации Станции, сделали его необычным.

    Китайская WIFI камера Q7 точно также первый раз настраивается — телефон свистит, пока не подключится камера.


    1. unwrecker
      30.09.2019 17:27

      А холодильники LG насвистывают результаты самодиагностики.


      1. vilgeforce
        30.09.2019 18:50
        +1

        И стиральные машины тоже…


        1. corvair
          01.10.2019 04:34

          Кондеи ещё.


      1. Kurochkin
        03.10.2019 20:05

        Холодильник "Донбасс" или "Днепр" у нас на даче в 80-х годах тоже Уже умел насвистывать самодиагностику.
        Сосед Коля пришёл, послушал, продиагностировал "Всьо, йому… пришла" (заглушено свистом холодильника)


        1. Javian
          04.10.2019 12:02

          Механик Петр так автомоторы диагностирует :)


  1. kyprizel
    30.09.2019 16:51

    Здравствуйте, Сергей.
    Меня зовут Эльдар, я работаю в команде безопасности Яндекса.

    Прошу прощения за то, что не ответили на письмо в «Охоту за ошибками». Мы его разобрали, но на этапе ответа на обращение случился организационный баг — письмо не было отправлено. Проведём работу над ошибкой.

    Как вы верно подметили в посте, эту особенность сложно назвать уязвимостью. Мы думали, как сделать настройку более безопасной и не менее удобной для пользователя — самым приемлемым вариантом (в первую очередь, из-за длины ключей и размера шифротекста) показалось использование для обмена сессионными ключами алгоритма ECDH, однако взвесив риски и возможные неудобства, остановились на текущем алгоритме.

    Спасибо.


    1. Krupnikas Автор
      30.09.2019 16:54

      Здравствуйте, Эльдар.

      Понимаю, баги бывают везде :)
      Благодарю за ответ. В этот раз письмо пришло. Прикрепил его скриншот к посту.

      Спасибо.


    1. shpaker
      30.09.2019 18:10
      +1

      Извиняюсь, что вклиниваюсь. Ну а что такое 'доверенная среда'? Я не понимаю такой терминологии от слова совсем. И где предупреждение, что данный звук не должен быть нигде распространен? Сейчас можно поискать по ютубу записей настройки данных девайсов и наверняка найдутся те у кого пароль от вайфая используется на ещё каких-либо сервисах. Такой себе конечно пример… ну а вдруг.


      1. kost
        30.09.2019 20:27

        Даже если вы расшифруете эти пароли с видео, что они вам дадут?

        Гораздо успешнее можно поискать ключи от AWS, например, на StackOverflow или GitHub. Кторые должны храниться в надежном месте и не быть доступными никому.


        1. shpaker
          30.09.2019 21:19
          +4

          А где эта грань в которой пароли "что-то дадут" и "что-то не дадут"? Почему вообще вопрос ставится вот так? Есть возможно подсмотреть пароль в открытом виде и это не круто. С каких пор ставится вопрос о том допустимо это или нет?


          1. creker
            01.10.2019 01:25
            +1

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


            1. Azya
              01.10.2019 09:22

              Когда человек вводит пароль руками, он понимает, что видеозапись этого на Youtube лучше не публиковать. Вся проблема, как это часто случается, в неожидаемом поведении вещей, а производителю лень поставить лишнюю сноску в инструкции.


            1. shpaker
              01.10.2019 11:21

              С тех пор, как существует сфера информационной безопасности. Риски оценивают не в вакууме.

              Ну расскажите мне как риски в этом случае оценивались и что это за термин такой "доверенная среда" за пределы которой Алису выносить нельзя. Это вообще нормально употреблять самовыдуманные термины которых фактически не существует?


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

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


              Вы вот руками вводите пароль для вайфая на клавиатуре — стоящий за спиной все увидит.

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


              Колонка настраивается в доверенной изолированной среде — личной комнате человека.

              Это ваши фантазии. Ничто не ограничивает человека активировать колонку там где ему хочется. И мало того, что ничто не ограничивает, так еще его никто и не предупреждает.


              1. creker
                01.10.2019 11:56

                Какую-то демагогию развели на пустом месте. trusted environment это общеизвестный термин. Читайте и разбирайтесь. Со стороны яндекса в данном случае единственная претензия это отсутствие предупреждения, что при настройке что-то передается по воздуху и на людях это лучше не делать.


                1. shpaker
                  01.10.2019 12:05

                  trusted environment это общеизвестный термин. Читайте и разбирайтесь.

                  Нет такого общеизвестного термина. Есть термин trusted execution environment, но это совсем не про то. Читайте и разбирайтесь прежде чем писать.


                  … единственная претензия это отсутствие предупреждения...

                  Все равно это очень странная ерунда


    1. iig
      30.09.2019 18:51
      +2

      Мы думали, как сделать настройку более безопасной и не менее удобной для пользователя


      КМК, поднять на колонке внутренний WiFi чисто для настройки не стоило бы совершенно ничего в смысле программирования, и позволило бы обойтись без передачи пароля plain text'ом.


      1. mk2
        30.09.2019 23:27

        Тогда мы получаем уязвимость «другое устройство создаёт такой wifi или подключается к wifi колонки и подслушивает пароль».


        1. iig
          01.10.2019 10:57

          Вряд ли. Если ssid и пароль наклеены на стикере в инструкцию — за те 10 мин, пока длится подключение, даже АНБ не успеет подобрать пароль. Денег это стоит… чуть дороже стикера. Если защиту WPA не использовать совсем, но хотя бы использовать https (это тоже бесплатно!) — даже если кто-то запишет траффик, пароль вынимать оттуда будет ооочень долго. Случай, когда злой дядька постоянно сидит рядом и готов построить mitm атаку, это как-то слишком параноидально. Случай с поддельной точкой доступа обходится очень просто — после успешного подключения к колонке нажать на аппаратную кнопку, помигать лампочкой… Получить обратную связь по другому каналу.
          Случайно записанный свист расшифровывается очень просто и быстро.


      1. creker
        01.10.2019 01:29

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


        1. Simplevolk
          01.10.2019 10:06

          У меня возникло ощущение, что когда-то и где-то я читал этот комментарий…


  1. PavelBelyaev
    30.09.2019 16:58

    Меня раздражало первое время когда на ютубе и везде было очень много рекламы с криками «Алиса, ....», от чего моя колонка активировалась и отвечала «звукам из телика».


    1. goodic
      30.09.2019 17:17
      +1

      И продолжает это делать.


      1. maloii
        30.09.2019 17:36

        Дома как огня боюсь упоминать в разговоре всяческих знакомых Алис :)


    1. snuk182
      30.09.2019 17:49

      Фильмы по Киру Булычеву не смотрите… Мало ли… Миелофон еще закажет.


    1. ProgrammerForever
      01.10.2019 10:29

      Установил на ноутбук дочери Алису, чтобы дочь могла нормально найти нужные ей мультики (дочери 3 года, зовут Алиса). Каждый раз, когда зову дочь погромче из другой комнаты — ноутбук отвечает.


    1. solariserj
      01.10.2019 21:17

      У меня возле телевизора колонка активировалась при просмотре фильма «В гостях у Элис»


  1. fenst
    30.09.2019 17:37

    Если что, домашние Wi-Fi камеры Dahua (лидер рынка наравне с Hikvision) под брендом Imou получают пароль от Wi-Fi сети таким же насвистыванием или ку-ку-каньем.


  1. fapsi
    30.09.2019 18:14

    Настройка умных колонок от U.S. Robotics — раздирающие душу сигналы Dial-Up


  1. Tsvetik
    30.09.2019 18:54
    +4

    Ха-ха. Доверенная среда. Играешь такой в онлайн игру, а тебе из колонок по тимспику "Алиса, запри двери, выключи свет и включи газ". Это будет покруче Xbox shutdown троллинга https://www.google.com/url?sa=t&source=web&rct=j&url=https://m.youtube.com/watch%3Fv%3DanslUJ5SCIs&ved=0ahUKEwjK_6Hr8_jkAhXttYsKHSkkCFwQo7QBCCcwBA&usg=AOvVaw2VOSbvnLcdaBxlwANA1dK8


    1. namikiri
      01.10.2019 10:38

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


  1. FreeManOfPeace
    30.09.2019 22:02
    -1

    Что, если для модуляции hex символов использовать частоты нот? Почему бы не передать данные в До-мажоре?

    Даёшь передачу данных в жанре Heavy Metal! Хотя бы соляками


  1. AndreyUA
    30.09.2019 23:26
    +2

    Я правильно понимаю, что достаточно подарить жертве умную колонку от Яндекса и каким-то образом перехватить звук активации? Конечно, достаточно странный вектор атаки, но он имеет место быть… И пользователи узнают об этом не из инструкции, а на хабре.


    1. Barbaresk
      01.10.2019 00:25
      +1

      Ну как вариант добавить внутрь корпуса Алисы соответствующее аппаратное обеспечение. Тогда всё будет ограничено фантазией и техническими возможностями атакующего. Собственно, это же стандартная техника шпионажа — дарить что-то с видео/звукозаписывающей аппаратурой.


  1. Skykharkov
    01.10.2019 04:57
    +1

    Навеяло...


  1. shifttstas
    01.10.2019 09:39

    Ну зачем они изобрели такие костыли? Почему нельзя это было сделать через Bluetooth или стандартным подключением к Wi-Fi колонки?


    Собственно самый простой метод настройки уже придуман: у Apple и Samsung с их наушниками и другой техникой (HomePod/AppleTV) почему нельзя было использовать такой же метод?


  1. achekalin
    01.10.2019 09:39

    image

    Ну, Я, экономы: вместо чтобы просто выдать награду каждому, кто о проблеме или баге в безопасности сообщит, они стали устраивать конкурс среди всем приславших репорты, чтобы потратить на всех один приз. Ок, может, «призовых мест» там в конкурсе не одно, а три (и приза тоже три — т.е. экономия раза в 2.5 меньшая), но и конкурс, как бы помягче сказать, впору проводить скорее не среди исследователей, а среди разработчиков Я — кто больше скосячил.

    Думаю, кстати, что приз автора ушел как раз разрабу, который такую авторизацию придумал.

    P.S. Не то чтобы на баунти-выплаты кто-то планирует прожить, но интерес такой подход подогревает, плюс дает положительную обратную связь исследователям и сообществу (сабмитишь в компанию баг, а тебя не то что в полицию сдают, а еще и награждают, т.е. стимулируют поиски потенциальных дыр, а, значит, конкретной компании не пофиг). А с таким подходом, как в приведенном автоответе так и хочется задать «вопрос на засыпку»: какова вероятность, что следующие баги будут отправляться в Я, а не просто сразу на Хабре разбираться (в лучшем случае)?
    Такое впечатление, что Я специально свои поделия детища сначала громко выпускает, а потом тихо топит, забивая в мелочах.


    1. pyrk2142
      02.10.2019 00:32

      Имхо, среди российских Bug Bounty Яндекс — вполне уверенный среднячок: на голову превосходит ВК с их «Ого, как исправить эту проблему? *Молчание месяц* А мы знаем об этой проблеме из внутренних источников, что же ты на чёрный рынок не пошёл, лошок?))))», но уступает нескольким хорошим программам.

      Но есть тот момент, который меня стабильно раздражает: Яндекс берет сервис, размещает на своём домене, клеит свои логотипы, а потом, когда там обнаруживается критическая дыра, заявляет «А это сервис партнёров)))))», денег нет, но проблема исправлена. Весьма сомнительные ощущения.


  1. Kutlic
    01.10.2019 10:30

    Вот это поворот) Красава!


  1. Gordon01
    01.10.2019 12:20

    Это вы еще про Wi-Fi Smart Config не слышали, там, конечно, есть опциональное AES шифрование, большинство разработчиков «забывают» его включить.
    Без шифрования пароль открытым текстом передается по Wi-Fi


  1. toivo61
    02.10.2019 15:56

    Ответ Яндекса в стиле: «Часы не варить!»