Comments 84
Данные для авторизации в Яндексе мне не удалось выделить. Однако, длина пакета достаточно маленькая, поэтому точно можно сказать, что в посылке нет какого-нибудь OAuth токена
Просто на правах фантазии, возможно авторизация идет с телефона, яндекс возвращает телефону одноразовый пароль с малым временем жизни, а уже он передается на колонку…
Можно, конечно, раздавать каждой станции свой ключ, но тогда придется просить пользователя дополнительно вводить вручную или сканировать какой-нибудь QR-код с идентификатором колонки. Иначе телефон не будет знать, какой ключ использовать.
Вариантов тьма. Колонка сама может например генерить ключ и передавать телефону. Эдакий хендшейк производить перед передачей данных. Вопрос в том, сколько пользователю держать руку над колонкой пока она наболтается с телефоном. Но имхо это настолько забавный процесс, что я бы и пострадал немного созерцая за голосовым общением двух девайсов ))
Вопрос в том, сколько пользователю держать руку над колонкой пока она наболтается с телефоном.
для этого давно придумали qr коды.
Но имхо это настолько забавный процесс, что я бы и пострадал немного созерцая за голосовым общением двух девайсов ))
пи-пу-куррр-кир-курр-кир пии-кр-пиии-кр-пииюю-ПТУПТУТУ-шшшшпшшшкшшшшшшшпшшшш…
Но имхо это настолько забавный процесс, что я бы и пострадал немного созерцая за голосовым общением двух девайсов ))Вы наверное диал-ап не застали?
Тут возникает вопрос о качестве микрофона на смартфоне, а это независимый параметр от Яндекса
Давайте посмотрим википедию. Предположим, нам достаточно 128-битного ключа. Тогда обе стороны должны послать друг другу по 128 бит.
А потом пролистаем дальше и прочитаем что более-менее стойкий ключ 1024 бит.
Вы сейчас явно про разные види ключей и про разные алгоритмы говорите.
128 — AES, симметричный шифр.
1024 — RSA, с открытым ключом.
В Diffie-Hellmann нужена пара ключей: открытый и секретный. В результате получим ключ (созданный двумя устройствами вместе) для симметричного шифрования типа AES чтобы потом с помощью него общаться.
*1024 бита на RSA уже маловато по нынешним меркам.
Существует, например, тот же ECDSA, стойкий ключ для которого всего 256бит
8 это минимум, у меня пароль 32 символа. Открытый ключ в HEX можно уместить в 20 байт, наверное.
Или яндексу было пофиг или проблема в слишком разных микрофонах у смартфонов. Станция идет с bluetooth, тогда я вообще не понимаю зачем спариваться через звук.
"все так делают"
Не все.
"В документации на wpa_supplicant.conf тоже ни про какие хэши информации не видно."
Видно. man wpa_passphrase
Он же используется в некоторых «китайских» IP-камерах (например камеры Digoo).
Такая позиция вдохновила меня развить идею разработчиков Яндекса и сделать протокол, ориентированный на впечатление. Что, если для модуляции hex символов использовать частоты нот? Почему бы не передать данные в До-мажоре?
Но самая смешная фишка в том, что программа представляла счета компании еще и в виде музыкального произведения. По крайней мере мне это казалось смешным. А вот клиентам-бизнесменам понравилось, они все как с ума от нее посходили.
Профессор серьезно посмотрел на него, держа перед собой вилку с кусочком моркови, но не произнес ни слова.
– Понимаете, любая мелодия передается как последовательность или комбинация цифр, – вдохновенно продолжал объяснять Ричард. – Цифры же отображают высоту звука, его длину, сочетания…
– То есть мотив, – подсказал профессор. Морковь все еще оставалась нетронутой.
Ричард усмехнулся:
– Мотив – весьма точное слово. Надо запомнить.
– Так будет проще выразить мысль. – Не попробовав морковь, профессор вернул ее на тарелку и спросил: – Значит, программа ваша имела успех?
– Не в этой стране. Оказалось, что годовые отчеты британских компаний в основном звучат как «Похоронный марш» из генделевского «Саула». Зато японцам она весьма приглянулась. У них вышло множество веселых корпоративных гимнов, которые начинаются очень задорно, но, если уж начистоту, к концу становятся чересчур шумными и скрипучими. Что самое главное, программа отлично показала себя в Штатах и имела коммерческий успех. Впрочем, теперь меня больше всего интересует другое: что будет, если убрать из нее счета? Превратить в музыку цифры, представляющие взмахи крыльев ласточки? Что мы тогда услышим? Точно не жужжание кассовых аппаратов, как того хочется Гордону.
Дуглас Адамс
Если бы Существо не щелкнуло тумблером, я бы никогда его не нашел. Оно
могло подождать, пока не подойду на расстояние вытянутой руки. Стоило мне
чуть ослабить внимание, оно могло бы обезоружить меня, выбить карабин из
рук. Но оно не сделало этого. Просто включило магнитофон и спокойно
встретило смерть…
Он кинулся к пульту. Где тумблер? Он шарил руками по приборной панели.
«Тюлилихум ааухум».
— Что ты делаешь, Мартин? — кричал полковник Яролимек, такой близкий и
такой бесконечно далекий.- Сейчас мы тебя вытащим, успокойся!
Мартин метался от одной секции к другой. «Тюлилихум ааухум»…
Есть!
Он коснулся плавно вращавшихся дисков. Накипевшая ярость нашла выход.
Он вырвал пленку, бросил на пол, топтал ногами. Потом рассмеялся. К чему все
это? Придут люди и сотрут последние следы какого-то «тюлилихум ааухум».
Он вдруг почувствовал, что должен укрыться.
— Куда ты, Мартин? — звал полковник Яролимек.
Он не мог ответить и сам не знал почему. Неуверенными шагами направился
к двери склада, где Дана Мразкова приняла свой последний бой. Они не должны
меня видеть. Но почему, почему?
Пошатываясь, ввалился он в помещение, привалился к стене и медленно
сполз на прохладный пол. Специфическая удушливая вонь ударила в ноздри.
«Тюлилихум ааухум».
— Почему я все время думаю об этой мерзости? — спросил он себя вслух.
И тут что-то произошло.
Мартин Данеш впервые в жизни увидел свет.
Он закричал от ужаса и неведомой прежде радости. Вечная тьма озарилась.
Красочные очертания выступили из темноты, закружились в сознании. Странные
переплетения, пульсирующие разноцветные прожилки… Это не просто свет,
подумал Мартин. Это глаз Существа.
Я скоро превращусь в Существо, я успел заразиться. Но я еще
сопротивляюсь, через слух это идет не так быстро. Медленнее, чем вам
хотелось бы, не правда ли? Кто вас сюда послал? Кто-то тщательно выбритый,
умытый и плотно позавтракавший?
Онджей Нефф, Белая трость калибра 7.62
Вообще WiFi там много всего, а вот что он звуком передается, это прикольно. И услышать его гораздо сложнее чем ловить хэндшейки. Так что да, уязвимость не особо опасна, блогерам просто не очень приятно будет, если у них пароли везде одинаковые.
А безопасно его передавать можно по разному, как предложили выше используя ДиффиХелмана, или комбинацию подстановки/замены (Цезарь и другие) (не безопасно, но звук уже не поможет, тут мобилку придется крутить, хотя бы один раз).
Ну, а если у вас вообще имеется свободный доступ в помещение с колонкой (наверное это будет дом вашего друга), то вряд-ли вам нужно будет взламывать его вайфай, разве что для понта.
Они разукрасили процесс активации Станции, сделали его необычным.
Китайская WIFI камера Q7 точно также первый раз настраивается — телефон свистит, пока не подключится камера.
А холодильники LG насвистывают результаты самодиагностики.
Меня зовут Эльдар, я работаю в команде безопасности Яндекса.
Прошу прощения за то, что не ответили на письмо в «Охоту за ошибками». Мы его разобрали, но на этапе ответа на обращение случился организационный баг — письмо не было отправлено. Проведём работу над ошибкой.
Как вы верно подметили в посте, эту особенность сложно назвать уязвимостью. Мы думали, как сделать настройку более безопасной и не менее удобной для пользователя — самым приемлемым вариантом (в первую очередь, из-за длины ключей и размера шифротекста) показалось использование для обмена сессионными ключами алгоритма ECDH, однако взвесив риски и возможные неудобства, остановились на текущем алгоритме.
Спасибо.
Понимаю, баги бывают везде :)
Благодарю за ответ. В этот раз письмо пришло. Прикрепил его скриншот к посту.
Спасибо.
Извиняюсь, что вклиниваюсь. Ну а что такое 'доверенная среда'? Я не понимаю такой терминологии от слова совсем. И где предупреждение, что данный звук не должен быть нигде распространен? Сейчас можно поискать по ютубу записей настройки данных девайсов и наверняка найдутся те у кого пароль от вайфая используется на ещё каких-либо сервисах. Такой себе конечно пример… ну а вдруг.
Гораздо успешнее можно поискать ключи от AWS, например, на StackOverflow или GitHub. Кторые должны храниться в надежном месте и не быть доступными никому.
А где эта грань в которой пароли "что-то дадут" и "что-то не дадут"? Почему вообще вопрос ставится вот так? Есть возможно подсмотреть пароль в открытом виде и это не круто. С каких пор ставится вопрос о том допустимо это или нет?
С тех пор, как существует сфера информационной безопасности. Риски оценивают не в вакууме.
Ну расскажите мне как риски в этом случае оценивались и что это за термин такой "доверенная среда" за пределы которой Алису выносить нельзя. Это вообще нормально употреблять самовыдуманные термины которых фактически не существует?
Если открытый пароль используется в условиях, когда риски его утечки минимальны, то это не проблема.
Это лично ваши умозаключения? С такими умозаключения можно, например, прийти к тому, что пароли хранить в базах в открытом виде тоже нормально. Ведь риски минимальны.
Вы вот руками вводите пароль для вайфая на клавиатуре — стоящий за спиной все увидит.
Во-первых, я так не делаю, а вбиваю из менеджера паролей. Во-вторых, в формах ввода паролей хотя бы есть звездочки и единомоментно все присутствующие в помещении не увидят мой пароль целиком. Сравнение более чем не корректно.
Колонка настраивается в доверенной изолированной среде — личной комнате человека.
Это ваши фантазии. Ничто не ограничивает человека активировать колонку там где ему хочется. И мало того, что ничто не ограничивает, так еще его никто и не предупреждает.
trusted environment это общеизвестный термин. Читайте и разбирайтесь.
Нет такого общеизвестного термина. Есть термин trusted execution environment, но это совсем не про то. Читайте и разбирайтесь прежде чем писать.
… единственная претензия это отсутствие предупреждения...
Все равно это очень странная ерунда
Мы думали, как сделать настройку более безопасной и не менее удобной для пользователя
КМК, поднять на колонке внутренний WiFi чисто для настройки не стоило бы совершенно ничего в смысле программирования, и позволило бы обойтись без передачи пароля plain text'ом.
Вряд ли. Если ssid и пароль наклеены на стикере в инструкцию — за те 10 мин, пока длится подключение, даже АНБ не успеет подобрать пароль. Денег это стоит… чуть дороже стикера. Если защиту WPA не использовать совсем, но хотя бы использовать https (это тоже бесплатно!) — даже если кто-то запишет траффик, пароль вынимать оттуда будет ооочень долго. Случай, когда злой дядька постоянно сидит рядом и готов построить mitm атаку, это как-то слишком параноидально. Случай с поддельной точкой доступа обходится очень просто — после успешного подключения к колонке нажать на аппаратную кнопку, помигать лампочкой… Получить обратную связь по другому каналу.
Случайно записанный свист расшифровывается очень просто и быстро.
Фильмы по Киру Булычеву не смотрите… Мало ли… Миелофон еще закажет.
Ха-ха. Доверенная среда. Играешь такой в онлайн игру, а тебе из колонок по тимспику "Алиса, запри двери, выключи свет и включи газ". Это будет покруче 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
Что, если для модуляции hex символов использовать частоты нот? Почему бы не передать данные в До-мажоре?
Даёшь передачу данных в жанре Heavy Metal! Хотя бы соляками
Я правильно понимаю, что достаточно подарить жертве умную колонку от Яндекса и каким-то образом перехватить звук активации? Конечно, достаточно странный вектор атаки, но он имеет место быть… И пользователи узнают об этом не из инструкции, а на хабре.
Ну зачем они изобрели такие костыли? Почему нельзя это было сделать через Bluetooth или стандартным подключением к Wi-Fi колонки?
Собственно самый простой метод настройки уже придуман: у Apple и Samsung с их наушниками и другой техникой (HomePod/AppleTV) почему нельзя было использовать такой же метод?
Ну, Я, экономы: вместо чтобы просто выдать награду каждому, кто о проблеме или баге в безопасности сообщит, они стали устраивать конкурс среди всем приславших репорты, чтобы потратить на всех один приз. Ок, может, «призовых мест» там в конкурсе не одно, а три (и приза тоже три — т.е. экономия раза в 2.5 меньшая), но и конкурс, как бы помягче сказать, впору проводить скорее не среди исследователей, а среди разработчиков Я — кто больше скосячил.
Думаю, кстати, что приз автора ушел как раз разрабу, который такую авторизацию придумал.
P.S. Не то чтобы на баунти-выплаты кто-то планирует прожить, но интерес такой подход подогревает, плюс дает положительную обратную связь исследователям и сообществу (сабмитишь в компанию баг, а тебя не то что в полицию сдают, а еще и награждают, т.е. стимулируют поиски потенциальных дыр, а, значит, конкретной компании не пофиг). А с таким подходом, как в приведенном автоответе так и хочется задать «вопрос на засыпку»: какова вероятность, что следующие баги будут отправляться в Я, а не просто сразу на Хабре разбираться (в лучшем случае)?
Такое впечатление, что Я специально свои
Но есть тот момент, который меня стабильно раздражает: Яндекс берет сервис, размещает на своём домене, клеит свои логотипы, а потом, когда там обнаруживается критическая дыра, заявляет «А это сервис партнёров)))))», денег нет, но проблема исправлена. Весьма сомнительные ощущения.
Без шифрования пароль открытым текстом передается по Wi-Fi
Реверс инжиниринг протокола активации Яндекс.Станции