Статьи и публикации

Двухфакторная аутентификация — это просто, на примере JaCarta U2F

Интернет-портал Habrahabr.ru, январь, 2018
Статья Дмитрия Шуралёва, технического специалиста по работе с технологическими партнёрами компании "Аладдин Р.Д."

Сегодня поговорим о стандарте U2F, разработанном ассоциацией FIDO Aliance, участником которой мы являемся, и электронном ключе нашей собственной разработки — JaCarta U2F, и, конечно, покажем несколько примеров его использования.

О чем думает человек, услышав упоминание слов типа двухфакторная аутентификация, электронный ключ, USB-токен, смарт-карта? Человек, далёкий от погружения в технологии ИБ, может быть вспомнит одноразовые смс-пароли для входа в банк, а кто-то подумает про инфраструктуры открытых ключей, сертификаты, цепочки доверия.

А тем временем, разработанный альянсом FIDO протокол U2F набирает популярность среди интернет-компаний и показывает, что двухфакторная аутентификация — не только безопасно, но легко и просто, а главное понятно для конечного пользователя, нетехнического специалиста.

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

Таких сервисов уже довольно много, и список их постоянно расширяется. Сначала стандарт U2F поддерживали Google (gmail, youtube, etc), Dropbox, Github. Сейчас присоединились Facebook, Salesforce, Bitbucket, Dashlane и другие сервисы и компании. Большое развитие U2F получил в криптовалютной среде на различных крипто-биржах и крипто-кошельках, например Bitfinex, Coinbase и другие. Об этом мы поговорим отдельно чуть позже.

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

Если сервис сам пока не добавил возможность привязать U2F-ключ в качестве аутентификатора, возможно, это получится осуществить через провайдеров двухфакторной аутентификации, например, duo security, причём доступ можно будет настроить не только в web-приложения. Строго говоря, такие облачные платформы в качестве аутентификаторов используют не только U2F, и их возможности гораздо шире. Но не отметить эту возможность в нашей обзорной статье мы также не могли.

Еще один из способов интеграции U2F мы предусмотрели в нашем сервере аутентификации JaCarta Authentication Server (JAS), встраивание происходит путём настройки сервера и добавления необходимого кода на сайт, доступ к которому необходимо защитить.

Примеры настройки и использования

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

А для примера аутентификации с использованием облачного провайдера аутентификации сервис duo.com и Web-сайт на платформе WordPress.

Google

  1. Войдите в свой аккаунт Google.
  2. Перейдите на страницу настроек учётной записи, нажав на кнопку "Мой аккаунт" в верхнем правом углу страницы.

  3. Перейдите в раздел "Безопасность и вход".

  4. В разделе "Пароль и способ входа в аккаунт" перейдите по ссылке "Двухэтапная аутентификация".

  5. Нажмите на кнопку "Приступить к настройке" и следуйте инструкциям.
  6. В процессе настройки снимите флажок "Надёжный компьютер". В противном случае токен не будет использоваться при входе в аккаунт.

  7. Перейдите на закладку "Токены" и нажмите на кнопку "Добавить аппаратный токен".

  8. Подключите токен к USB-порту и дождитесь, пока световой индикатор на корпусе токена не начнёт гореть непрерывно.
  9. Нажмите на кнопку "Зарегистрировать", после чего световой индикатор начнёт мигать.
  10. Нажмите на кнопку на корпусе токена.
  11. Регистрация токена завершена.

Теперь проверим вход.

Чтобы зайти в профиль учётной записи Google с помощью JaCarta U2F, выполните следующее.

  1. Подсоедините JaCarta U2F к компьютеру и зайдите на сайт https://www.google.com.
  2. В правой верхней части страницы щёлкните на кнопке Войти

    Отобразится страница, содержащая следующую форму.

  3. Введите адрес своей электронной почты и нажмите Далее.

    Отобразится следующая форма.

  4. Введите пароль от своей учётной записи и нажмите Войти.

    Отобразится следующая страница.

  5. Снимите флажок Запомнить на этом компьютере.

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

  6. Нажмите на кнопку на корпусе JaCarta U2F.

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

Аутентификация в Web-сайт на WordPress с использованием облачного провайдера аутентификации duo.com

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

Со стороны Web-сайта добавьте Duo-плагин, для этого в меню Плагины в поиске найдите Duo-Two-Factor Authentication и нажмите Установить. После установки нажмите Активировать.

Со стороны платформы войдите в меню Приложения (Applications) и выберите Защитить приложение (Protect an Application).

В отобразившемся меню поиска наберите WordPress и нажмите Защитить это приложение (Protect this Application).

Отобразятся 3 ключевых поля, Integration Key, Secret Key и API Hostname.

Значения этих полей нужно перенести в соответствующие поля плагина на Web-сайте.

На этом настройка связи Web-сайта с платформой DUO завершена. Далее аутентифицируйтесь по паролю, на том Web-сайте, куда ранее была привязана платформа Duo.

Установленный и настроенный плагин Duo предложит настроить защиту аккаунта. Нажмите Start Setup.

Выберите U2F-token.

Подсоедините JaCarta U2F к USB-порту и следуйте указаниям.

По завершении вы попадёте в админскую часть сайта, пройдя аутентификацию с использованием JaCarta U2F.

Сами сервисы обычно имеют свои собственные инструкции по настройке U2F, и их довольно просто найти, вот некоторые примеры.

Facebook

GitHub

Dropbox

Google

В заключении приведём несколько часто задаваемых вопросов и ответы на них.

Как получить доступ к ресурсу, если U2F ключ будет утерян? Все довольно просто, предусмотрен резервный способ двухфакторной аутентификации в виде кода по смс или email. А после входа в аккаунт связь с утерянным ключом можно разорвать и настроить новый.

Сколько ресурсов может быть добавлено в 1 ключ? Практически безгранично.

На каких платформах используется U2F? Устройство с любой операционной системой, с установленным браузером, поддерживающим U2F (в настоящее время это Google Chrome версии 38 и выше, Opera версии 40 и выше FireFox через специальный плагин), и свободным USB-портом.