Мегафон

Яндекс ключ - двухфакторная аутентификация. Двухфакторная аутентификация Яндекс – дополнительная защита аккаунта

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

В закладки

Компания «Яндекс» запустила механизм двухфакторной аутентификации и новое приложение «Яндекс.Ключ», генерирующее на мобильном устройстве код доступа к аккаунту на «Яндексе». Это позволит не запоминать сложный пароль для обеспечения безопасности. Об этом TJ сообщили представители компании.

Обновлено : спустя два часа после анонса от «Яндекса» о введении двухфакторной аутентификации сообщили в Mail.Ru Group.

«Яндекс.Ключ» позволяет не запоминать сложные пароли

Для того, чтобы пользоваться «Яндекс.Ключом», всё-таки придётся придумать и запомнить четырёхзначный PIN-код. Временные пароли, с помощью которых можно будет войти в свой аккаунт на «Яндексе», будут приходить на мобильное устройство и действовать в течение 30 секунд.

Однако авторизоваться можно и без введения одноразового пароля. В форме авторизации на «Яндексе» появились QR-коды: их можно считать при помощи камеры смартфона через «Яндекс.Ключ». Пользователи мобильных устройств Apple могут и не запоминать свой PIN-код: для них доступ в приложение возможен через отпечаток пальца, считанный при помощи сенсора Touch ID.

Двумя факторами аутентификации в данном случае являются PIN-код (или отпечаток пальца), который имеется только у пользователя, и знание о связи между аккаунтом на «Яндексе» и мобильным устройством с «Яндекс.Ключом» - оно хранится на серверах компании. Секретные коды генерируются одновременно с использованием как PIN, так и «секрета» с серверов «Яндекса». В компании также пояснили, что процедура аутентификации является одноэтапной: для логина требуется всего одно действие (ввод одноразового кода или сканирование QR-кода).

Нужно больше безопасности

Это уже не первое появление в «Яндексе» двухфакторной аутентификации. До этого она использовалась в «Яндекс.Деньгах» и во внутренних сервисах компании, сообщили TJ в «Яндексе».

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

Обычно при двухфакторной аутентификации пользователя просят войти в учётную запись под своими логином и паролем, а затем подтвердить личность - скажем, с помощью SMS. У нас всё ещё проще. Достаточно включить двухфакторную аутентификацию в «Паспорте» и установить приложение Яндекс.Ключ. В форме авторизации на главной странице «Яндекса», в «Почте» и «Паспорте» появились QR-коды. Для входа в учётную запись пользователю необходимо считать QR-код через приложение - и всё.

Владимир Иванов, заместитель руководителя департамента эксплуатации «Яндекса»

В случае, если пользователь одновременно забудет свой PIN-код и утратит доступ к привязанной к аккаунту SIM-карте, у него всё равно будет возможность восстановить свой аккаунт. Для этого ему придётся пройти стандартную процедуру: заполнить анкету и побеседовать со службой поддержки, объяснили в «Яндексе».

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

пресс-служба «Яндекса»

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

Массовое «убийство» паролей

Пользователи не хотят запоминать сложные пароли и в большинстве своём не пользуются двухфакторной аутентификацией, считая её слишком сложной. Как показывает статистика, в самых популярных паролей 2014 года до сих пор лидируют «123456», «password» и «qwerty».

В «Яндексе» решили использовать QR-коды и Touch ID после анализа различных исследований, показавших, что стандартной процедурой двухфакторной аутентификации пользуются от 0,02% до 1% аудитории различных сервисов.

«Яндекс» - не первая компания, которая включилась в гонку за повышение безопасности пользователей и одновременный отказ от запоминания сложных паролей. В октябре Twitter похожую на «Яндекс.Ключ» платформу под названием Digits, позиционируя её как «убийцу паролей».

При помощи Digits пользователи смогут авторизовываться сразу в нескольких сервисах: на старте Twitter анонсировал партнёрство с фитнес-трекером FitStar, сервисом резервирования столиков в ресторанах Resy и приложением для спортивных фанатов OneFootball. Платформа Digits также интегрирована в новый пакет ПО для разработчиков Twitter Fabric.

В «Яндексе» рассказали TJ, что собираются открыть возможность авторизовываться в других приложениях при помощи «Яндекс.Ключа» - её появление запланировано в следующих обновлениях программы

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

В мобильном приложении Facebook давно существует собственный сервис Code Generator, который позволяет авторизовываться при помощи временных кодов. В Google можно включить двухфакторную аутентификацию для аккаунта и использовать приложение Google Authentificator , дающее доступ по QR-коду или по вводу кода безопасности. После скандала с утечкой личных фотографий знаменитостей в Apple тоже безопасностью пользователей iCloud.

Аналогичная Google функциональность в июне и во «ВКонтакте», однако в соцсети заявили, что такие меры безопасности для большинства пользователей являются излишними. В почтовом сервисе Mail.Ru двухэтапная аутентификация отсутствует.

Обновлено в 15:34 : Спустя несколько часов после анонса от «Яндекса» портал Mail.Ru запустил двухфакторную аутентификацию для «Почты», «Облака», «Календаря», «Игрового центра» и других проектов, сообщили TJ представители компании. Для входа пользователю необходимо использовать свой пароль и код, полученный через SMS на мобильный телефон.

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

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

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

Анна Артамонова, вице-президент Mail.Ru Group

Неслучайно в интернете множество советов, как защитить свой аккаунт от взлома, и, пожалуй, самый популярный из них - использовать сложные пароли и регулярно их менять. Это, конечно, неплохо, но постоянно запоминать новые сложные пароли бывает довольно утомительно. Специально для тех, кто беспокоится о безопасности своего аккаунта, Яндекс запустил бета-версию двухфакторной аутентификации. С ней ключ от вашего аккаунта будет только в ваших руках. Точнее, в вашем смартфоне. При авторизации на Яндексе - или на любом другом сайте - вы вводите свои логин и пароль. Система проверяет, соответствует ли пароль логину и впускает вас, если всё в порядке. Но пароль - это только один фактор проверки. Существуют системы, которым одного фактора недостаточно. Помимо пароля они требуют, например, специальный код, присылаемый в смс, или USB-ключ, который надо вставить в компьютер. Эти системы используют двухфакторную или многофакторную аутентификацию. Для своей схемы двухфакторной аутентификации мы создали Яндекс.Ключ - мобильное приложение для iOS и Android. Достаточно считать приложением QR-код на главной странице Яндекса, в Паспорте или в поле авторизации Почты - и вы окажетесь в своём аккаунте. Чтобы воспользоваться Ключом, вам нужно включить двухфакторную аутентификацию, установить приложение и привязать его к вашей учётной записи. Потом вы задаёте в приложении четырёхзначный пин-код. Этот код станет одним из факторов, частью «секрета», на основе которого алгоритм будет создавать одноразовые пароли. Второй фактор хранится в смартфоне. Когда вы будете в дальнейшем считывать в форме авторизации QR-код, приложение отправит на сервера Яндекса ваш логин и одноразовый пароль. Сервер проверит их и даст странице команду пустить или не пустить вас внутрь. Когда считать QR-код не получается, например не работает камера смартфона или нет доступа к интернету, вы можете ввести одноразовый пароль вручную. Ввод пароля в этом случае заменяет считывание QR-кода - разница только в том, что пароль не отправляется на сервера автоматически, вместо этого вы вводите его в форме авторизации вместе с логином. Одноразовый пароль действует всего 30 секунд. Это сделано для того, чтобы его нельзя было украсть с вашего компьютера (например, с помощью программы, запоминающей введённые в браузер пароли). Никто кроме вас не сможет воспользоваться Ключом для входа в ваш аккаунт, ведь при генерации паролей Ключ использует пин-код, который придумали вы. Без правильного пин-кода приложение будет создавать неверные пароли, которые не подойдут к вашей учётной записи. Если у вас смартфон или планшет от Apple с Touch ID, то вместо пин-кода можно использовать отпечаток пальца. Механизм двухфакторной аутентификации - это ещё один инструмент, который поможет сделать работу пользователей Яндекса в интернете более безопасной. Если вам нужна дополнительная защита вашего аккаунта - самое время закрыть его на Яндекс.Ключ.

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

В закладки

Компания «Яндекс» запустила механизм двухфакторной аутентификации и новое приложение «Яндекс.Ключ», генерирующее на мобильном устройстве код доступа к аккаунту на «Яндексе». Это позволит не запоминать сложный пароль для обеспечения безопасности. Об этом TJ сообщили представители компании.

Обновлено : спустя два часа после анонса от «Яндекса» о введении двухфакторной аутентификации сообщили в Mail.Ru Group.

«Яндекс.Ключ» позволяет не запоминать сложные пароли

Для того, чтобы пользоваться «Яндекс.Ключом», всё-таки придётся придумать и запомнить четырёхзначный PIN-код. Временные пароли, с помощью которых можно будет войти в свой аккаунт на «Яндексе», будут приходить на мобильное устройство и действовать в течение 30 секунд.

Однако авторизоваться можно и без введения одноразового пароля. В форме авторизации на «Яндексе» появились QR-коды: их можно считать при помощи камеры смартфона через «Яндекс.Ключ». Пользователи мобильных устройств Apple могут и не запоминать свой PIN-код: для них доступ в приложение возможен через отпечаток пальца, считанный при помощи сенсора Touch ID.

Двумя факторами аутентификации в данном случае являются PIN-код (или отпечаток пальца), который имеется только у пользователя, и знание о связи между аккаунтом на «Яндексе» и мобильным устройством с «Яндекс.Ключом» - оно хранится на серверах компании. Секретные коды генерируются одновременно с использованием как PIN, так и «секрета» с серверов «Яндекса». В компании также пояснили, что процедура аутентификации является одноэтапной: для логина требуется всего одно действие (ввод одноразового кода или сканирование QR-кода).

Нужно больше безопасности

Это уже не первое появление в «Яндексе» двухфакторной аутентификации. До этого она использовалась в «Яндекс.Деньгах» и во внутренних сервисах компании, сообщили TJ в «Яндексе».

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

Обычно при двухфакторной аутентификации пользователя просят войти в учётную запись под своими логином и паролем, а затем подтвердить личность - скажем, с помощью SMS. У нас всё ещё проще. Достаточно включить двухфакторную аутентификацию в «Паспорте» и установить приложение Яндекс.Ключ. В форме авторизации на главной странице «Яндекса», в «Почте» и «Паспорте» появились QR-коды. Для входа в учётную запись пользователю необходимо считать QR-код через приложение - и всё.

Владимир Иванов, заместитель руководителя департамента эксплуатации «Яндекса»

В случае, если пользователь одновременно забудет свой PIN-код и утратит доступ к привязанной к аккаунту SIM-карте, у него всё равно будет возможность восстановить свой аккаунт. Для этого ему придётся пройти стандартную процедуру: заполнить анкету и побеседовать со службой поддержки, объяснили в «Яндексе».

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

пресс-служба «Яндекса»

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

Массовое «убийство» паролей

Пользователи не хотят запоминать сложные пароли и в большинстве своём не пользуются двухфакторной аутентификацией, считая её слишком сложной. Как показывает статистика, в самых популярных паролей 2014 года до сих пор лидируют «123456», «password» и «qwerty».

В «Яндексе» решили использовать QR-коды и Touch ID после анализа различных исследований, показавших, что стандартной процедурой двухфакторной аутентификации пользуются от 0,02% до 1% аудитории различных сервисов.

«Яндекс» - не первая компания, которая включилась в гонку за повышение безопасности пользователей и одновременный отказ от запоминания сложных паролей. В октябре Twitter похожую на «Яндекс.Ключ» платформу под названием Digits, позиционируя её как «убийцу паролей».

При помощи Digits пользователи смогут авторизовываться сразу в нескольких сервисах: на старте Twitter анонсировал партнёрство с фитнес-трекером FitStar, сервисом резервирования столиков в ресторанах Resy и приложением для спортивных фанатов OneFootball. Платформа Digits также интегрирована в новый пакет ПО для разработчиков Twitter Fabric.

В «Яндексе» рассказали TJ, что собираются открыть возможность авторизовываться в других приложениях при помощи «Яндекс.Ключа» - её появление запланировано в следующих обновлениях программы

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

В мобильном приложении Facebook давно существует собственный сервис Code Generator, который позволяет авторизовываться при помощи временных кодов. В Google можно включить двухфакторную аутентификацию для аккаунта и использовать приложение Google Authentificator , дающее доступ по QR-коду или по вводу кода безопасности. После скандала с утечкой личных фотографий знаменитостей в Apple тоже безопасностью пользователей iCloud.

Аналогичная Google функциональность в июне и во «ВКонтакте», однако в соцсети заявили, что такие меры безопасности для большинства пользователей являются излишними. В почтовом сервисе Mail.Ru двухэтапная аутентификация отсутствует.

Обновлено в 15:34 : Спустя несколько часов после анонса от «Яндекса» портал Mail.Ru запустил двухфакторную аутентификацию для «Почты», «Облака», «Календаря», «Игрового центра» и других проектов, сообщили TJ представители компании. Для входа пользователю необходимо использовать свой пароль и код, полученный через SMS на мобильный телефон.

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

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

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

Анна Артамонова, вице-президент Mail.Ru Group

Редкий пост в блоге Яндекса, а особенно касающийся безопасности, обходился без упоминания двухфакторной аутентификации. Мы долго думали, как правильно усилить защиту пользовательских аккаунтов, да еще так, чтобы этим мог пользоваться без всех тех неудобств, которые включают в себя самые распространённые ныне реализации. А они, увы, неудобны. По некоторым данным, на многих крупных сайтах доля пользователей, включивших дополнительные средства аутентификации, не превышает 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 выплачивается двойная премия.

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

«Яндекс» запустил систему двухфакторной авторизации и выпустил приложение «Яндекс.Ключ» для входа в аккаунт без необходимости запоминать и вводить сложный пароль. Приложение уже доступно на Android и iOS, а вход в него на новых моделях iPhone можно защитить сканером отпечатков пальцев.

Авторизоваться в учетной записи через «Яндекс.Ключ» можно несколькими способами, но для начала нужно зайти на страницу настроек yandex.ru/promo/2fa и включить двухфакторную авторизацию.

Подтвердите свой номер телефона кодом, полученным по SMS.

Установите на смартфон или планшет приложение «Яндекс.Ключ».

Запустите приложение и отсканируйте QR-код на сайте «Яндекса». Если у мобильного устройства нет камеры, нажмите «Показать секретный ключ» и введите в приложении отображенные символы.

Придумайте PIN-код и введите его на сайте или в приложении.

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

Эти действия нужно выполнить только один раз. После активации двухфакторной авторизации потребуется повторно авторизовываться в сайтах «Яндекса» на всех устройствах. Для доступа к приложениям можно создать отдельные пароли.

Теперь на странице входа в аккаунт «Яндекса» появится кнопка со значком QR-кода.