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

Обратите внимание! После входа новое устройство автоматически станет проверенным.


Важные моменты, которые не стоит забывать:
  • Обязательно запоминайте данные учетной записи.

    Важно! Для ее восстановления нужно обращаться в Apple и доказать законное приобретение устройства у официальных представителей компании.

  • Обеспечьте безопасность (физическую) проверенным устройствам.
  • Используйте пароли блокировки на всех гаджетах.

Включение двухфакторной аутентификации

Активировать функцию можно через настройки системы смартфона.

Обратите внимание! Для примера использован iPhone с iOS 11. Если у вас версия 10.2 или более ранняя, то настройка выполняется через пункт iCloud.

Отключение функции

Отключение двухэтапной проверки происходит через браузер.

Обратите внимание! Для подтверждения личности могут потребоваться ответы на контрольные вопросы.


Выводы

Двойная проверка позволяет обезопасить устройство от взлома злоумышленниками. При использовании функции не стоит забывать о некоторых правилах безопасности. Настройка либо отключение аутентификации не занимает много времени.

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

Заходим в управлением паролем по адресу passport.yandex.ru/profile/access . Здесь вы можете изменить пароль или включить дополнительную защиту для своего аккаунта - двухфакторную аутентификацию. Нажимаем на ползунок Двухфакторная аутентификация, чтобы включить её.

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

Нажимаем начать настройку.

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

Настройка двухфакторной аутентификации. Шаг 1 из 5.

Подтвердите номер телефона. Это ваш основной номер на Яндексе. Он понадобится, если вы потеряете доступ к своему аккаунту. Нажимаем получить код.

На ваш номер придет SMS-код от Yandex.

Вводим SMS-код от Yandex сюда и нажимаем подтвердить.

Настройка двухфакторной аутентификации. Шаг 2 из 5.

Скачайте приложение Яндекс.Ключ. Теперь заходим в AppStore на вашем айфоне или айпэде или в Play Store на Android смартфоне или планшете и ищем приложение Яндекс.Ключ. Либо нажимаем получить ссылку на телефон.

Откроется App Store или Play Market нажимаем загрузить, чтобы скачать приложение Яндекс.Ключ и установить его на ваш смартфон или планшет.

Если потребуется ввести пароль от Apple ID, то вводим пароль от Apple ID.

Спустя секунд 30 приложение скачается на ваш смартфон, запускаем его, нажав на него.

Настройка двухфакторной аутентификации. Шаг 3 из 5.

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

Вновь перейдем к смартфону.

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

Нажимаем добавить аккаунт в приложение.

Программа «Ключ» запрашивает доступ к «камере». Нажимаем разрешить, чтобы дать доступ приложение к камере на смартфоне, чтобы сканировать QR-код с экрана монитора компьютера.

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

Готово. QR-код отсканирован. Приложение Яндекс.Ключ готово к работе.

Теперь переходим к монитору компьютера.

Нажимаем создать пин-код.

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

Придумываем пин-код из четырех цифр и нажимаем продолжить.

Настройка двухфакторной аутентификации. Шаг 4 из 5.

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

Вводим придуманный вами ранее пин-код и нажимаем проверить.

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

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

Последний шаг. Введите пароль из Яндекс.Ключа.

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

Что изменится после включения двухфакторной аутентификации:

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

Вводим одноразовый пароль который отображен на экране вашего смартфона и нажимаем завершить настройку.

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

Вводим старый пароль от Яндекс аккаунта и нажимаем OK.

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

Нажимаем закрыть.

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

Выбираем тип приложения > Почтовая программа.

И выбираем операционную систему вашей почтовой программы. Я использую айфон, поэтому я выбираю iOS.

И нажимаем создать пароль, чтобы создать пароль для почтовой программы на смартфоне.

Ваш пароль почтовой программы для iOS сгенерирован.

Как использовать пароль:

  • Чтобы дать приложению доступ к вашим данным, укажите в его настройках этот пароль.
  • Запоминать пароль не нужно: он понадобится вам только один раз. При смене пароля на Яндексе вам потребуется получить новый пароль приложения.
  • Пароль приложения показывается только один раз. Если вы закроете страницу и не успеете его использовать, просто получите новый.

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

Готово. Двухфакторная аутентификация Яндекса работает, можно жить дальше.

Теперь, если вы выйдете из своего аккаунта Яндекс и снова введете свой логин и пароль вам напишут:

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

Теперь вам надо открыть приложение Яндекс.Ключ, ввести ваш пин-код и навести камеру смартфона на QR-код. Вы автоматически войдете в свой Яндекс аккаунт, после того, как смартфон считает QR-код с экрана монитора.

Другие записи на тему безопасности и двухэтапной аутентификации:

Двухфакторная аутентификация Apple ID – это новая технология обеспечения безопасности для учётки, гарантирующая, что доступ к ней будет обеспечен только ее владельцу. Причем даже если символы пароля от учётки знает кто-то еще, все равно он не сможет войти в систему вместо законного обладателя ID.

Использование этой технологии обеспечивает доступ к учётке исключительно с доверенных девайсов – айфона, планшета или макбука. При первичном заходе на новом гаджете понадобится указать два вида данных – символы пароля и код проверки в 6 – значном формате. Кодовые символы на автомате обновляются на этих девайсах. После его вбивания новый гаджет причислят к доверенным. Допустим, если в наличии iPhone, при первичном входе в учетку на только что купленном MacBook понадобится вбить символы пароля и проверочный код, который на автомате всплывет на дисплее айфона.

Поскольку для доступа к учетке символов пароля недостаточно, применяются и иные типы проверки, показатель безопасности ID – номера значительно повышается.

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

Проверенные гаджеты: что это?

Таковым может быть не любой «яблочный» девайс – только айфоны, айпады тач с операционкой версии 9 или более новой, а также макбуки с операционкой Capitan либо более «свежими». В системы этих гаджетов должны быть осуществлены входы с применением 2-факторной проверки.

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

Проверенные телефонные номера

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

Еще можно выполнить подтверждение иных номеров – домашнего, или друга/родственника. Когда временно нет доступа к основному, можно будет использовать их.

Правила настройки

Если на девайсе стоит операционка версии 10.3 и старше, алгоритм действий будет таков:

  • Переход в раздел настроек, к пункту пароля и безопасности.
  • Нажатие на раздел включения 2-х факторной идентификации.
  • Щелчок по пункту продолжения.

Если на гаджете операционка 10.2 или более ранняя, шаги будут следующими:

  • Переход к настройкам iCloud.
  • Выбор своего ID – номера и переход к разделу пароля безопасности.
  • Щелчок по пункту включения 2-х факторной аутентификации.
  • Нажатие по элементу продолжения.



Как отключить двухфакторную аутентификацию в Apple ID?

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

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

Если кто-то ее вновь активирует для ID без ведома законного обладателя, можно будет выполнить отключение по e-mail. Далее нужно, как и ранее, нажать на раздел выключения аутентификации в самом низу сообщения, пришедшего ранее по e-mail. Ссылка будет активной еще две недели. Переход по ней позволит восстановить прошлые настройки безопасности ID и контроль над своей учёткой.

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

Вконтакте

Как работает двухфакторная аутентификация

Рассматриваемый способ защиты позволяет входить в аккаунт Apple ID только с доверенных устройств. К последним относятся iPhone, iPad или Mac пользователя, которые прошли проверку в системе. А именно: при первом доступе к учетной записи сервис потребует ввести пароль и код из шести цифр, который отобразится на экране гаджета, входящего в число доверенных. Например, если у юзера есть iPhone, а он желает зайти в свою учетную запись с новоприобретенного iPad (или Mac), то система предложит ему ввести пароль и код — последний будет переслан на смартфон.

Что это дает пользователю? Так как для входа в аккаунт необходим будет не только пароль, это значительно обезопасит как Apple ID, так и данные, которые сберегаются на серверах Apple. После того как доступ будет получен, проверочный код вводить больше не придется. За исключением тех случаев, когда будет совершен полный выход, удалены все данные с гаджета или будет проведена замена пароля. Также можно указать определенный браузер, как доверенный, если в аккаунт пользователь будет переходить с него (при условии, что совершать он это будет с доверенного устройства) – это избавит от необходимости каждый раз подтверждать свой доступ.

Доверенные (проверенные) устройства

К доверенным устройствам относятся iPhone, iPad, iPod touch или Mac, с установленными операционными системами iOS 9 или OS X El Capitan (или с их свежими обновлениями). С этих гаджетов должен быть осуществлен вход в аккаунт Apple ID с применением двухфакторной аутентификации. Иначе говоря, к проверенным устройствам относятся те, о которых система может точно знать, что они принадлежат конкретному владельцу, и в этом можно удостовериться, отправив на его гаджет проверочный код.

Проверенные номера телефона

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

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

Что такое код подтверждения

Это код, который отправляется системой на доверенное устройство или доверенный номер телефона пользователя для удостоверения его личности при первом входе в аккаунт. Запросить такой код можно также на своем проверенном гаджете в приложении «Настройки ». Следует помнить, что пароль и код – это не одно и то же. Пароль пользователь выдумывает сам, код же присылает ему система.

Как настроить двухфакторную аутентификацию для Apple ID на iPhone, iPad или iPod touch

Для того, чтобы получить доступ к опции двухфакторной аутентификации необходимо быть пользователем iCloud и иметь гаджет с iOS 9 или OS X El Capitan (или же с их обновлениями) на борту.

Если на вашем гаджете установлена операционная система iOS 10.3 или более новая версия, то необходимо предпринять такие шаги:

1. Открыть «Настройки », перейти в раздел с вашим именем и открыть пункт «Пароль и безопасность »;

2. В открывшемся окне кликнуть по кнопке «Включить » ниже пункта «Двухфакторная аутентификация »;

3. Нажать «Продолжить ».

Если устройство работает под управлением платформы iOS 10.2 и более ранних версий, необходимо выполнить следующие действия:

1. Открыть в «Настройках » раздел «iCloud »;

2. Выбрать свой Apple ID и перейти к пункту «Пароль и безопасность »;

3. В открывшемся окне активировать «Двухфакторную аутентификацию »;

4. Нажать «Продолжить ».

Верификация доверенного номера телефона

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

Как настроить двухфакторную аутентификацию для Apple ID на Mac

Для настройки двухфакторной аутентификации необходимо быть пользователем iCloud и OS X El Capitan (и новее) на борту.

1 . Откройте меню Apple и перейти в «Системные настройки », а затем в «iCloud » и «Учетную запись ».

2 . Выберите вкладку «Безопасность ».

3 . Кликните «Включить двухфакторную аутентификацию ».

4 . Следует знать, что если функция двухэтапной проверки уже включена, то ее следует отключить перед активацией двухфакторной аутентификации. Также некоторые Apple ID, созданные в версиях платформ iOS 10.3 или macOS 10.12.4 (а также в более поздних версиях этих ОС), могут автоматически включать защиту двухфакторной аутентификацией.

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

8 . В-третьих, не забывать своевременно обновлять список доверенных номеров телефонов.

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

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

Управление аккаунтом Apple ID

В своей учетной записи можно корректировать данные о доверенных устройствах и телефонах.

Обновление проверенных номеров телефонов

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

  • Зайти в свой аккаунт Apple ID;
  • Открыть вкладку «Безопасность » и кликнуть по пункту «Правка ».

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

Обзор доверенных гаджетов и управление ими

Просматривать информацию о гаджетах, получивших статус проверенных, можно в разделе «Устройства » в своем аккаунте Apple ID. Там же можно ознакомиться со сведениями, касающимися этих гаджетов.

В случае возникновения необходимости, проверенное устройство можно удалить из списка. После этого с него невозможно будет получить доступ к iCloud и прочим сервисам Apple до тех пор, пока оно снова не будет авторизовано посредством двухфакторной аутентификации.

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

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