JaCarta U2F - универсальный USB-токен, предназначенный для использования в качестве второго фактора при парольной аутентификации конечных пользователей онлайн-сервисов, поддерживающих стандарт FIDO U2F
- "Облачные" сервисы (Dropbox, Google Cloud Platform)
- Почтовые сервисы (GMail)
- Файловый хостинг, видеохостинг, хостинг IT-проектов и их совместной разработки (Google Drive, YouTube, GitHub)
- Электронные платёжные системы (Google Wallet)
- Социальные сети (Google+)
Решаемые задачи
- Усиление парольной аутентификации пользователей при доступе к Web-ресурсам за счёт перехода к двухфакторной аутентификации с использованием токена
- Избавление пользователей от необходимости запоминать сложные пароли. За счёт использования второго фактора аутентификации требования к сложности пароля могут быть существенно снижены
- Использование одного устройства для доступа к различным ресурсам
Основные компоненты типового решения с поддержкой U2F-аутентификации на базе токена JaCarta U2F представлены ниже:
- Web-сервер – сервер, к ресурсам которого обращаются пользователи. На одном Web-сервер может быть установлено несколько Web-приложений. В качестве Web-сервера выступает, как правило, одно из доступных на рынке решений данного класса (например, Microsoft IIS, Apache, nginx и др.).
- Web-приложение – приложение (Web-сервис), реализующее конкретную прикладную логику. Например, Web-портал, личный кабинет клиента банка и т.п.
- U2F-сервер – приложение, реализующее серверную часть протокола U2F и обеспечивающее хранение информации, полученной в процессе регистрации и аутентификации. В качестве U2F-сервера может выступать либо готовое решение, созданное сторонними производителями, либо продукт собственной разработки. Web-приложение при получении запросов на регистрацию и аутентификацию пользователей обращается к U2F-серверу для проверки и сохранения полученных от пользователя данных.
- U2F-клиент – приложение, посредством которого пользователь взаимодействует с Web-сервисом (например, Web-браузер или мобильное приложение). U2F-клиент реализует клиентскую часть протокола U2F, взаимодействует с Web-сервером и U2F-токеном:
- взаимодействие с Web-сервером осуществляется по протоколу HTTPS;
- взаимодействие с U2F-токеном осуществляется по протоколу USB HID.
- Токен JaCarta U2F – устройство, используемое в качестве второго фактора аутентификации при доступе к Web-ресурсам и реализующее интерфейс USB HID.
Как это работает
Рассмотрим процесс аутентификации пользователя на онлайн-ресурсе с использованием токена JaCarta U2F (на самом низком уровне взаимодействие токена с компьютером в процессе регистрации токена и аутентификации пользователя осуществляется через HID-интерфейс и поэтому не требует установки драйверов – они уже есть в любой современной ОС: Windows, Linux, Mac OS X).
- Перед первым использованием токена JaCarta U2F его необходимо зарегистрировать в данном онлайн-сервисе. Если у пользователя уже есть учётная запись на сервере, то он должен сделать это самостоятельно из личного кабинета, не прибегая к помощи администратора сервиса. В процессе регистрации внутри токена генерируется новая пара "открытый-закрытый ключ", связанная только с данным онлайн-сервисом. Открытый ключ передается на сервер, а закрытый ключ никогда не покидает токен (безопасно хранится в памяти токена).
- Аутентификацию на Web-ресурсе пользователь, как и раньше, начинает с предъявления регистрационного имени и пароля. Если для данного пользователя в системе уже зарегистрирован токен JaCarta U2F, со стороны Web-ресурса поступит дополнительный запрос. Пользовательский браузер (Google Chrome) имеет встроенную поддержку протокола U2F: он "знает", что полученный запрос на U2F-аутентификацию надо направить на подключенный к компьютеру пользователя U2F-токен и "умеет" это делать безо всяких дополнительных плагинов и пр. Чтобы токен пользователя смог обработать запрос на аутентификацию, пользователь должен подтвердить своё присутствие за компьютером – для этого достаточно просто нажать на кнопку на корпусе JaCarta U2F. После этого появляется возможность использовать для аутентификации на целевом ресурсе ключевые пары, хранящиеся в памяти токена.
- В памяти токена JaCarta U2F хранятся закрытые ключи, уникальные для каждого Web-ресурса. Открытые ключи передаются и хранятся на сервере. На одном ресурсе можно зарегистрироваться несколько раз (например, с разными логинами). Ключевая пара соответствует конкретной регистрации пользователя. Поступивший со стороны сервера запрос на аутентификацию содержит идентификатор Web-ресурса, который поможет токену выбрать из всех ключевых пар именно ту, которая была сгенерирована именно для этого ресурса. С помощью закрытого ключа токен JaCarta U2F подписывает запрос на аутентификацию и возвращает его браузеру, который в свою очередь отправляет запрос на Web-ресурс для проверки подписи.
- В случае успешной проверки подписи пользователь считается авторизованным в онлайн-сервисе.