Что такое яндекс ключ. Как оплатить по QR code через приложение Яндекс.деньги

Яндекс.Ключ создаёт одноразовые пароли (OTP) для обеспечения более безопасного входа на Яндекс, Facebook, Google, GitHub, Dropbox, ВКонтакте и другие сервисы с поддержкой двухфакторной аутентификации (2FA). Чтобы входить на сервисы Яндекса, потребуется только созданный Ключом одноразовый пароль, на другие - одноразовый и ваш обычный. - Несколько цифр или отпечаток пальца Вам не надо придумывать сложные пароли для надёжной защиты своего логина на Яндексе. Достаточно запомнить от 4 до 16 цифр - по ним Яндекс.Ключ будет выдавать вам уникальный одноразовый пароль сроком действия меньше минуты. Если не хотите вводить пин-код, включите в настройках Ключа Touch ID и используйте отпечаток пальца. - Защита данных Яндекс.Ключ дополнительно защищает ваш аккаунт от взлома и кражи личной информации: получать одноразовые пароли будете только вы, в своём мобильном устройстве. - Простое подключение Добавлять аккаунты в приложение можно вручную - перепечатав данные с сайта сервиса, который вы подключаете, или автоматически - считав оттуда QR-код. - Работа офлайн Для добавления аккаунтов в приложение и создания одноразовых паролей Яндекс.Ключу не нужен интернет. Для получения паролей не нужны даже SMS. - Дополнительные возможности Ключ умеет создавать шестизначные и восьмизначные пароли - в зависимости от требований сервиса. Кроме того, Ключ поддерживает разные периоды обновления одноразовых паролей, не только 30 с (это зависит от используемого сервиса). - Стандарты защиты Яндекс.Ключ подходит для двухфакторной (или двухшаговой) аутентификации на всех сервисах, поддерживающих стандарты защиты RFC-6238 и RFC-4226 (кроме тех, которые работают только с SMS). - Резервное копирование На случай, если с устройством что-то случится, вы можете создать резервную копию данных Ключа на сервере Яндекса. Это безопасно: каждая копия зашифрована с помощью пароля, известного только её владельцу. Подробности читайте на странице помощи - https://ya.cc/2fa

Скриншоты

Отзывы

  • Отличное приложение

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

  • Регулярное обновление на уровне

    Как и пишут многие: прошло уже больше половины 2019 года, а адаптации под X,XS,XR все ещё нет. А ребята и не торопятся обновлять, зачем? Альтернатив то нет, все равно придётся пользоваться тем что есть. Но отсутствие поддержки FaceID эт конечно дикое наплевательство на пользователей. Только отписки «обновление планируется когда-нибудь, но когда не знаем». Функционал хороший а сервис ужасный

  • Неплохая функциональность, ужасный UI/UX

    Кто вообще придумал эту карусель с аккаунтами... Когда нет иконки два аккаунта не отличить, и крутить туда-сюда неудобно жутко.

  • ЧСВ зашкаливает

    От Yuyuygyffhdsgbfddes

    Может, Яндексу надо когда-нибудь понять, что люди, ставящие 2FA себе на аккаунты - это довольно озабоченные безопасностью своих данных люди, и они не готовы просто так взять и дать свой номер телефона. Иронично, что хоть само приложение и может использоваться для сторонних сервисов (спс Яндексу за подробное разъяснение), для Яндекса его использование нецелесообразно.

  • Не работает

    От wrghbqjwjqjqnqtktqjtj

  • iPhone X

    Почему нет адаптации под iPhone X??

  • Не работает

    Не работает! Я ввожу выдаваемый пароль, а сайт его не принимает! Раз 200 ввела бесполезно. Если не умеете делать двухфакторную аутентификацию - то не лезьте!

  • На дне

    Приложение 2 года не обновляется. На него забили. Face id нет. Для экранов с вырезом не оптимизировано. Интерфейс не меняется. Короче Яндекс забил.

  • Бесполезное

    Приложение отдельно работает, отдельно работает приложение Яндек-деньги. Совместно с этим приложением Яндекс-деньги не работает: ни с Пин-кодом (вводится верно), не с отпечатком. Время синхронизировал - результат не исправило. Снёс как бесполезное.

  • Неплохо

    От Gordon Krants

    Хорошее приложение, но крайне неудобно расположение в горизонтальном порядке:(Хотелось бы в будущих обновлениях видеть вертикальную колонку с сервисами и возможностью выбрать иконку для каждого, а то тяжело искать нужный код когда у тебя по несколько аккаунтов на одном сервисе

  • Не считывается QR код

    От Амир Гатин

    Не смог установить код на Айфон 6. Не считывает!

  • Не работает!!!

    Не заходит ни по QR коду, ни по одноразовому паролю! Это писец!!!

  • Генерирует не то

    Неправильный одноразовый пароль! Постоянно время на устройстве не менял

  • Пользоваться не удобно

    Безумно неудобная ху....

  • Аккаунт

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

  • Зачем своё?

    От 79522370021784380H

    Зачем придумывать ещё одно приложение, когда есть Authy? Меня напрягает то, что на пк надо в дефолте ставить ~4 лаунчера, так ещё и на телефоне ~4 софта для 2фа. Не удобно, пусть и ключ не из 6 цифр, но 2фа это 2фа, а не вход без пароля. Мне проще 6-8 цифр вставить чем вводить набор букв

  • Не мог войти в учётную запись

    Помогла техподдержка

  • Face ID? Не, не слышал

    Нет поддержки Face ID. Приложение растянуто, словно делали под четвёртый айфон. Яндекс, это точно ты?

  • Иконки

    От another username sc

    Мною ощущается острая нехватка иконок для разных сервисов. Вы сделали иконки для самых популярных, но к сожалению приложение не знает о многих других сервисах. Например о mega, discord, EA origin, Ubisoft Uplay и это только то, что я вспомнил сходу.

  • Отвратительно

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

  • Поддержка кончилась

    Обновите хоть для новый устройств

  • Так и не дождался

    Так и не обновили приложение под новые устройства.

  • Адаптация

    От удача5

    Адаптируйте пожалуйста приложение под XR

  • Некорректно функционирует

    От Кастор888

    После установки приложения и двухфакторной аутентификации при вводе пинкода выдаёт ошибку что пинкод неправильный

  • Обновите

    От НИКОЛАЙ

    Я не понимаю как можно было сделать такое крутое и продвинутое во всех смыслах приложение, а потом взять и забросить его. До сих пор нету адаптации под iPhone X! Как вообще можно держать столь важное приложение без обновлений 2 года?

  • Обновления не ждите

    Обновлений нету год.. Поддержки iPhone XR, XS нет Поддержки Touch ID нет.. Сказать когда будет обновление не могут.. Яндекс 🤦‍♂️

  • Ужасно

    От JinMariachi

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

  • Обновите уже наконец

    Отвратно смотрится на iPhone X.

  • Эргономика не понравилась

    Почитал статью вашу на хабре. Молодцы. Только почему с таким умом и подходом настолько кошмарный интерфейс и все что с ним связано. Дизайнят люди с преобладающими техническими навыками. 8 буков слитно - тоже из той серии. Разработчики/дизайнеры сами этой 2fa пользовались ей когда-нибудь? Конечно запоминать 2х3 проще. А 8 знаков слитно - это просто жесть.

  • -

    От AndiZhdanov

    Работает отвратительно, сделайте что-нибудь

  • Ужас!! Было кучу ключей привязано. Сделан БЭКАП.

    И после смены телефона, восстанавливаю из бэкапа и пишет, ничего нет!! Это как так? Отвратительно!!

  • Спасибо

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

  • Муть

    От Антон Григорьев

    Сложно, особенно сменить телефон. Не адаптировано пол современные экраны.

  • Нужно обновление!

    Иногда вылетает при старте. Обновите, пожалуйста, приложение для поддержки последней версии iOS и тёмной темой!!

  • Приложение супер!

    От Георгий Эфрон

    Намного удобнее гуглового приложения, но 4 звезды за отсутсвие поддержки iPhone XS Max.

Внимание. Приложения, разработанные в Яндексе, требуют именно одноразового пароля - даже правильно созданные пароли приложений не подойдут.

  1. Вход с помощью QR-кода
  2. Перенос Яндекс.Ключа
  3. Мастер-пароль
  4. Как одноразовые пароли зависят от точного времени

Вход на сервис или в приложение Яндекса

Вы можете ввести одноразовый пароль в любой форме авторизации на Яндексе или в разработанных Яндексом приложениях.

Примечание.

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

Чтобы получить одноразовый пароль, запустите Яндекс.Ключ и введите пин-код, который вы задали при настройке двухфакторной аутентификации. Приложение начнет генерировать пароли раз в 30 секунд.

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

Вход с помощью QR-кода

Некоторые сервисы (например, главная страница Яндекса, Паспорт и Почта) позволяют войти на Яндекс, просто наведя камеру на QR-код. При этом ваше мобильное устройство должно быть подключено к интернету, чтобы Яндекс.Ключ мог связаться с сервером авторизации.

    Нажмите на иконку QR-кода в браузере.

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

    Введите пин-код в Яндекс.Ключе и нажмите Войти по QR-коду .

    Наведите камеру вашего устройства на QR-код, отображенный в браузере.

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

Вход с аккаунтом Яндекса в стороннее приложение или сайт

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

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

Перенос Яндекс.Ключа

Вы можете перенести генерацию одноразовых паролей на другое устройство, или настроить Яндекс.Ключ на нескольких устройствах одновременно. Для этого откройте страницу Управление доступом и нажмите кнопку Замена устройства .

Несколько аккаунтов в Яндекс.Ключе

Один и тот же Яндекс.Ключ можно использовать для нескольких аккаунтов с одноразовыми паролями. Чтобы добавить в приложение еще один аккаунт, при настройке одноразовых паролей на шаге 3 нажмите в приложении значок . Кроме того, вы можете добавить в Яндекс.Ключ генерацию паролей для других сервисов, поддерживающих такую двухфакторную аутентификацию. Инструкции для самых популярных сервисов приведены на странице о создании кодов проверки не для Яндекса .

Чтобы удалить привязку аккаунта к Яндекс.Ключу, нажмите и удерживайте соответствующий портрет в приложении, пока справа от него не появится крестик. Когда вы нажмете на крестик, привязка аккаунта к Яндекс.Ключу будет удалена.

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

Отпечаток пальца вместо пин-кода

Отпечаток пальца вместо пин-кода можно использовать на следующих устройствах:

Примечание.

На смартфонах и планшетах с iOS отпечаток пальца можно обойти, введя пароль устройства. Чтобы защититься от этого, включите мастер-пароль или измените пароль на более сложный: откройте приложение Настройки и выберите пункт Touch ID и пароль .

Чтобы воспользоваться включить проверку отпечатка:

Мастер-пароль

Чтобы дополнительно защитить ваши одноразовые пароли, создайте мастер-пароль: → Мастер-пароль .

С помощью мастер-пароля вы можете:

    сделать так, чтобы вместо отпечатка можно было ввести только мастер-пароль Яндекс.Ключа, а не код блокировки устройства;

Резервная копия данных Яндекс.Ключа

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

Чтобы получить данные из резервной копии, нужно:

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

    помнить пароль, который вы задали для шифрования резервной копии.

Внимание. Резервная копия содержит только логины и секреты, необходимые для генерации одноразовых паролей. Пин-код, который вы задали, когда включали одноразовые пароли на Яндексе, необходимо помнить.

Удалить резервную копию с сервера Яндекса пока невозможно. Она будет удалена автоматически, если вы ей не воспользуетесь в течение года после создания.

Создание резервной копии

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

    Введите номер телефона, к которому будет привязана резервная копия (например, «71234567890» «380123456789» ), и нажмите кнопку Далее .

    Яндекс отправит код подтверждения на введенный номер телефона. Как только вы получите код, введите его в приложении.

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

    Введите придуманный пароль два раза и нажмите кнопку Готово . Яндекс.Ключ зашифрует резервную копию, отправит ее на сервер Яндекса и сообщит об этом.

Вопрос, как получить аварийный код Яндекс Деньги без СМС возникает у пользователей в ситуациях, которые принято называть форс-мажорными. Если вы утратили пароль, который регулярно использовали, по каким-то причинам до вас не доходит SMS с одноразовым шифром, не находите табличку с набором кодовых символов, можете не волноваться по этому поводу. Именно для таких случаев сервис предусмотрел экстренный вариант. Вы сможете запросить аварийные коды Яндекс Деньги и завершить платёжную операцию.

Пароли money.yandex.ru на все случаи жизни

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

  • поступающие в SMS;
  • QR-коды, актуальные для приложений;
  • наборы символов, применяемые в аварийных ситуациях.

Именно последние мы рассмотрим несколько подробнее. Не стоит путать их с привычными цифрами, которые вы ждёте в СМС, чтобы завершить перевод средств. Они имеют несколько иное свойство, нежели модные на сегодняшний день пароли QR, которые может сканировать камера девайса.

Что нужно знать про аварийные коды

Итак, что такое аварийные коды в Яндекс Деньги, как их взять, и зачем они нужны? Ситуация, когда вы хотите срочно вывести с кошелька часть средств, заполнили все необходимые графы, но не можете завершить процесс, так как не приходит СМС, знакома каждому. Чаще всего такое случается в роуминге. Другой вариант проблемы — разрядившийся телефон, в котором установлено приложение. В обоих случаях, не будь аварийного кода, пользователи не смогли бы совершить платёжную операцию на Yandex Money. Шифры данного типа отличаются от QR и действуют аналогично обычным одноразовым наборам символов. Какую бы операцию вы ни совершили, они будут вам в помощь и позволят закончить её.

Инструкция по получению аварийного кода

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

Если попали в подобную ситуацию, алгоритм ваших действий должен быть следующим:

  1. Найдите ссылку «Получить аварийный код».
  2. Введите пароль (одноразовый).
  3. Распечатайте лист с кодами.

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


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

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

Нельзя встретить в интернете человека, не слышавшего про QR-коды хотя бы краем уха. С возросшей популярностью сети в последние десятилетия пользователям требовалось передавать данные между собой различными способами. QR-коды как раз и являются «разносчиком» информации, которую зашифровал туда пользователь. Но вопрос стоит в другом — как расшифровать такие коды и получить то, что в них находится?

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

Способ 1: IMGonline

Данный сайт представляет собой один большой источник, на котором есть всё для взаимодействия с изображениями: обработка, изменения размера и так далее. И, конечно, там присутствует интересующий нас обработчик изображений с QR-кодами, позволяющий для распознавания изменять картинку так, как нам заблагорассудится.

Чтобы просканировать интересующее изображение, выполните следующие действия:


Способ 2: Decode it!

В отличие от предыдущего сайта, этот полностью основан на том, что помогает пользователям в сети расшифровывать огромное количество видов данных, начиная от ASCII символов и заканчивая MD5 файлами. Имеет довольно минималистичный дизайн, что позволяет использовать его с мобильных устройств, но на нём отсутствуют какие-либо другие функции, помогающие расшифровывать QR-коды.

Чтобы расшифровать QR-код на данном сайте, потребуется выполнить следующее:


Способ 3: Foxtools

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

Для чтения QR-кода в данном онлайн-сервисе, нужно проделать следующие действия:


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

Редкий пост в блоге Яндекса, а особенно касающийся безопасности, обходился без упоминания двухфакторной аутентификации. Мы долго думали, как правильно усилить защиту пользовательских аккаунтов, да еще так, чтобы этим мог пользоваться без всех тех неудобств, которые включают в себя самые распространённые ныне реализации. А они, увы, неудобны. По некоторым данным, на многих крупных сайтах доля пользователей, включивших дополнительные средства аутентификации, не превышает 0,1%.

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

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

После включения двухфакторной аутентификации в Паспорте вам надо будет установить приложение Яндекс.Ключ в App Store или Google Play . В форме авторизации на главной странице Яндекса, в Почте и Паспорте появились QR-коды. Для входа в учётную запись необходимо считать QR-код через приложение - и всё. Если считать QR-код не получается, например не работает камера смартфона или нет доступа к интернету, приложение создаст одноразовый пароль, который будет действовать всего 30 секунд.

Расскажу о том, почему мы решили не использовать такие «стандартные» механизмы, как RFC 6238 или RFC 4226 . Как работают распространенные схемы двухфакторной аутентификации? Они двухэтапные. Первый этап ─ обычная аутентификация логином и паролем. Если он прошел успешно, сайт проверяет, «нравится» ему эта пользовательская сессия или нет. И, если «не нравится», просит пользователя «доаутентифицироваться». Распространенных методов «доаутентификации» два: отсылка SMS на привязанный к аккаунту номер телефона и генерация второго пароля на смартфоне. В основном для генерации второго пароля используется TOTP по RFC 6238. Если пользователь ввел второй пароль верно, сессия считается полностью аутентифицированной, а если нет, то сессия теряет и «предварительную» аутентификацию.

Оба способа ─ отправка SMS и генерация пароля ─ доказательства обладания телефоном и потому являются фактором наличия. Пароль, вводимый на первом этапе, ─ фактор знания. Поэтому такая схема аутентификации ─ не только двухэтапная, но и двухфакторная.

Что показалось нам проблемным в этой схеме?

Начнем с того, что компьютер среднестатистического пользователя не всегда можно назвать образцом защищенности: тут и выключение обновлений Windows, и пиратская копия антивируса без современных сигнатур, и ПО сомнительного происхождения ─ все это не повышает уровень защиты. По нашей оценке, компрометация компьютера пользователя ─ самый массовый способ «угона» учетных записей (и недавно тому было еще одно подтверждение), от нее в первую очередь и хочется защититься. В случае двухэтапной аутентификации, если считать, что компьютер пользователя скомпрометирован, ввод пароля на нем компрометирует сам пароль, являющийся первым фактором. Значит, злоумышленнику необходимо лишь подобрать второй фактор. В случае распространенных реализаций RFC 6238 второй фактор ─ это 6 десятичных цифр (а максимум, предусмотренный спецификацией, ─ 8 цифр). Согласно калькулятору bruteforce для OTP , за три дня атакующий в состоянии подобрать второй фактор, если ему каким-либо образом стал известен первый. Нет ясности, что сервис может противопоставить этой атаке, не нарушая нормальную работу пользователя. Единственный возможный proof of work ─ капча, что, на наш взгляд, является последним средством.

Вторая проблема ─ непрозрачность суждения сервиса о качестве пользовательской сессии и принятия решения о необходимости «доаутентификации». Хуже того, сервис не заинтересован в том, что бы сделать этот процесс прозрачным, ─ ведь тут фактически работает security by obscurity. Если злоумышленник знает, на основании чего сервис принимает решение о легитимности сессии, он может попытаться подделать эти данные. Из общих соображений можно заключить, что суждение делается на основе истории аутентификаций пользователя с учетом IP-адреса (и производных от него номера автономной системы, идентифицирующей провайдера, и местоположения на основе геобазы) и данных браузера, например заголовка User Agent и набора cookies, flash lso и html local storage. Это означает, что если злоумышленник контролирует компьютер пользователя, то он имеет возможность не только украсть все необходимые данные, но и воспользоваться IP-адресом жертвы. Более того, если решение принимается на основе ASN, то любая аутентификация из публичного Wi-Fi в кофейне может привести к «отравлению» с точки зрения безопасности (и обелению с точки зрения сервиса) провайдера этой кофейни и, например, обелению всех кофеен в городе. Мы рассказывали о работе системы обнаружения аномалий , и ее можно было бы применить, но времени между первым и вторым этапом аутентификации может оказаться недостаточно для уверенного суждения об аномалии. Кроме того, этот же аргумент разрушает идею «доверенных» компьютеров: злоумышленник может украсть любую информацию, влияющую на суждение о доверенности.

Наконец, двухэтапная аутентификация попросту неудобна: наши usability-исследования показывают, что ничто так не раздражает пользователей, как промежуточный экран, дополнительные нажатия на кнопки и прочие «неважные», с его точки зрения, действия.
Исходя из этого, мы решили, что аутентификация должна быть одноэтапной и пространство паролей должно быть намного больше, чем возможно сделать в рамках «чистого» RFC 6238.
При этом нам хотелось по возможности сохранить двухфакторность аутентификации.

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

  1. Факторы знания (это традиционные пароли, пин-коды и все, что на них похоже);
  2. Факторы владения (в используемых OTP-схемах, как правило, это смартфон, но может быть и аппаратный токен);
  3. Биометрические факторы (отпечаток пальца ─ самый распространенный сейчас, хотя кто-то вспомнит эпизод с героем Уэсли Снайпса в фильме Demolition Man).

Разработка нашей системы

Когда мы начали заниматься проблемой двухфакторной аутентификации (первые страницы корпоративной вики по этому вопросу относятся к 2012 году, но кулуарно он обсуждался и раньше), первой идеей было взять стандартные способы аутентификации и применить их у нас. Мы понимали, что нельзя рассчитывать на то, что миллионы наших пользователей купят аппаратный токен, поэтому этот вариант отложили на какие-то экзотичные случаи (хотя полностью мы от него не отказываемся, возможно, нам удастся придумать что-то интересное). Способ с SMS тоже не мог быть массовым: это очень ненадежный способ доставки (в самый ответственный момент SMS может задержаться или не дойти вовсе), а рассылка SMS стоит денег (и операторы начали увеличивать их цену). Мы решили, что использование SMS ─ удел банков и прочих нетехнологичных компаний, а нашим пользователям хочется предложить что-то более удобное. В общем, выбор был невелик: использовать смартфон и программу в нем в качестве второго фактора.

Широко распространена такая форма одноэтапной аутентификации: пользователь помнит пин-код (первый фактор), имеет на руках аппаратный или программный (в смартфоне) токен, генерирующий OTP (второй фактор). В поле ввода пароля он вводит пин-код и текущее значение OTP.

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

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

В качестве Nonce может выступать либо счетчик, либо текущее время. Мы решили выбрать текущее время, это позволяет не бояться рассинхронизации в случае, если кто-то сгенерирует слишком много паролей и увеличит счетчик.

Итак, у нас есть программа для смартфона, куда пользователь вводит свою часть секрета, та смешивается с хранимой частью, результат используется в качестве ключа HMAC , которым подписывается текущее время, округленное до 30 секунд. Выход HMAC приводится к читаемому виду, и вуаля ─ вот и одноразовый пароль!

Как уже было сказано, RFC 4226 предполагает усечение результата работы HMAC до максимум 8 десятичных цифр. Мы решили, что пароль такого размера непригоден для одноэтапной аутентификации и должен быть увеличен. При этом нам хотелось сохранить простоту использования (ведь, напомним, хочется сделать такую систему, которой будут пользоваться обычные люди, а не только security-гики), так что в качестве компромисса в текущей версии системы мы выбрали усечение до 8 символов латинского алфавита. Кажется, что 26^8 паролей, действующих в течение 30 секунд, вполне приемлемо, но если security margin нас не будет устраивать (или на Хабре появятся ценные советы, как улучшить эту схему), расширим, например, до 10 символов.

Подробнее о стойкости таких паролей

В самом деле, для латинских букв без учета регистра число вариантов на один знак равно 26, для больших и малых латинских букв плюс цифры, число вариантов равно 26+26+10=62. Тогда log 62 (26 10) ≈ 7,9 то есть пароль из 10 случайных малых латинских букв почти такой же стойкий, как пароль из 8 случайных больших и малых латинских букв или цифр. Этого точно хватит на 30 секунд. Если говорить о 8-символьном пароле из латинских букв, то его стойкость log 62 (26 8) ≈ 6,3 , то есть немного больше 6-символьного пароля из больших, малых букв и цифр. Мы считаем, что это все еще приемлемо для окна в 30 секунд.

Магия, беспарольность, приложения и дальнейшие шаги

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

Поэтому мы начали работы над «магическим логином». С таким способом аутентификации пользователь запускает приложение на смартфоне, вводит в него свой пин-код и сканирует QR-код на экране своего компьютера. Если пин-код введен правильно, страница в браузере перезагружается и пользователь оказывается аутентифицирован. Магия!

Как это устроено?

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

Стало лучше, но и тут мы решили не останавливаться. Начиная с iPhone 5S в телефонах и планшетах Apple появился сканер отпечатков пальцев TouchID, а в iOS версии 8 работа с ним доступна и сторонним приложениям. На деле приложение не получает доступ к отпечатку пальца, но если отпечаток верен, то приложению становится доступен дополнительный раздел Keychain. Этим мы и воспользовались. В защищенную TouchID запись Keychain помещается вторая часть секрета, та, которую в предыдущем сценарии пользователь вводил с клавиатуры. При разблокировке Keychain две части секрета смешиваются, и дальше процесс работает так, как описано выше.

Зато пользователю стало невероятно удобно: он открывает приложение, прикладывает палец, сканирует QR-код на экране и оказывается аутентифицированным в браузере на компьютере! Так мы заменили фактор знания на биометрический и, с точки зрения пользователя, совсем отказались от паролей. Мы уверены, что обычным людям такая схема покажется куда более удобной, чем ручной ввод двух паролей.

Можно подискутировать, насколько формально двухфакторной является такая аутентификация, но на деле для успешного ее прохождения все еще необходимо иметь телефон и обладать правильным отпечатком пальца, так что мы считаем, что нам вполне удалось отказаться от фактора знания, заменив его биометрией. Мы понимаем, что полагаемся на безопасность ARM TrustZone , лежащей в основе iOS Secure Enclave , и считаем, что на настоящий момент эту подсистему можно считать доверенной в рамках нашей модели угроз. Разумеется, нам известны проблемы биометрической аутентификации: отпечаток пальца ─ не пароль и заменить его в случае компрометации нельзя. Но, с другой стороны, всем известно, что безопасность обратно пропорциональна удобству, и пользователь сам вправе выбрать приемлемое для него соотношение одного и другого.

Напомню, что пока это бета. Сейчас при включении двухфакторной аутентификации мы временно выключаем синхронизацию паролей в Яндекс.Браузере. Связано это с тем, как устроено шифрование базы паролей. Мы уже придумываем удобный способ аутентификации Браузера в случае 2FA. Вся остальная функциональность Яндекса работает в прежнем режиме.

Вот что у нас получилось. Кажется, вышло неплохо, но судить вам. Мы будем рады услышать отзывы и рекомендации, а сами продолжим работу над улучшением безопасности наших сервисов: теперь вместе с CSP , шифрованием транспорта почты и всего остального у нас появилась и двухфакторная аутентификация . Не забывайте, что сервисы аутентификации и приложения генерации OTP относятся к критичным и поэтому за обнаруженные в них ошибки в рамках программы Bug Bounty выплачивается двойная премия.

Теги: Добавить метки