Сегодня поговорим о стандарте 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-портом.

Комментарии (12)


  1. sopov
    19.01.2018 14:48

    А как быть со смартфонами/планшетами? Без USB


    1. shuralev Автор
      19.01.2018 16:46

      есть спецификация UAF, в случае смартфона\планшета ios\android будет само устройство доверенным, как второй фактор выступать.


    1. The_Kf
      19.01.2018 18:49

      www.yubico.com/support/knowledge-base/categories/articles/yubikey-neo-support-u2f-nfc
      www.yubico.com/product/yubikey-neo

      Мой пока в дороге: как приедет — буду пробовать в т.ч. для этого.


      1. vikarti
        20.01.2018 06:52

        А как заказывали? Там напрямую доставка в Россию работает а то устройство шифрования, нотификации, таможня…


        1. The_Kf
          20.01.2018 14:26

          С Амазона, напрямую, не в СНГ =)


        1. 91koff
          20.01.2018 20:45

          Я пару месяцев назад заказывал себе yubikey 4 nano в одном крупном российской интернет магазине, который торгует лицензиями на ПО (думаю, найдете). Все привезли. Правда, порадовал комплект доставки – чек и приклеенный к нему скотчем токен :)


    1. herrjemand
      19.01.2018 20:16

      Андроид устройства поддерживают NFC и BLE аутентификаторы


  1. herrjemand
    19.01.2018 20:18

    shuralev Алладин не будет на планерке в Монтери на следующей неделе часом?;)


    1. shuralev Автор
      23.01.2018 15:51

      нет)


  1. sergrt
    21.01.2018 19:59

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


    1. shuralev Автор
      23.01.2018 15:47

      Если там U2F чистый то должен, попробуем посмотреть.


      1. sergrt
        23.01.2018 17:05

        Судя по всему, там нужно писать правильный плагин. То, что есть, U2F не реализует, только OATH HOTP и HMAC-SHA1 Challenge-Response.