Руководство разработчика паролей для проверяющих сторон

Узнайте, как интегрировать ключи доступа в свой сервис.

Анатомия системы доступа

Система ключей состоит из нескольких компонентов:

  • Проверяющая сторона : в контексте ключа доступа проверяющая сторона (сокращенно RP) занимается выдачей ключа доступа и аутентификацией. RP должен управлять клиентом — веб-сайтом или приложением, которое создает ключи доступа или проверяет подлинность с помощью ключей доступа — и сервером для регистрации, хранения и проверки учетных данных, сгенерированных ключами доступа на клиенте. Мобильное приложение с ключом доступа должно быть привязано к домену RP-сервера с помощью механизма ассоциации, предоставляемого ОС, например Digital Asset Links .
  • Аутентификатор : вычислительное устройство, такое как мобильный телефон, планшет, ноутбук или настольный компьютер, которое может создавать и проверять ключи доступа с помощью функции блокировки экрана, предлагаемой операционной системой.
  • Менеджер паролей : программное обеспечение, установленное на устройствах конечного пользователя, которое обслуживает, хранит и синхронизирует ключи доступа, например Google Менеджер паролей .

Процесс регистрации

Используйте API WebAuthn на веб-сайте или библиотеку Credential Manager в приложении Android, чтобы создать и зарегистрировать новый ключ доступа.

Чтобы создать новый ключ доступа, необходимо предоставить несколько ключевых компонентов:

  • Идентификатор RP : укажите идентификатор проверяющей стороны в виде веб-домена.
  • Информация о пользователе : идентификатор пользователя, имя пользователя и отображаемое имя.
  • Исключаемые учетные данные : информация о ранее сохраненных ключах доступа для предотвращения дублирующей регистрации.
  • Типы ключей доступа : использовать ли само устройство («аутентификатор платформы») в качестве аутентификатора или съемный ключ безопасности («кроссплатформенный/роуминговый аутентификатор»). Кроме того, вызывающие абоненты могут указать, следует ли сделать учетные данные видимыми, чтобы пользователь мог выбрать учетную запись для входа в систему.

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

Процесс регистрации

Узнайте подробнее, как создать и зарегистрировать ключ доступа:

Поток аутентификации

Используйте API WebAuthn на веб-сайте или библиотеку Credential Manager в приложении Android для аутентификации с помощью зарегистрированного ключа доступа.

Для аутентификации с помощью ключа доступа необходимо предоставить несколько ключевых компонентов:

  • Идентификатор RP : укажите идентификатор проверяющей стороны в виде веб-домена.
  • Задача : задача, сгенерированная сервером, которая предотвращает атаки повторного воспроизведения.

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

Поток аутентификации

Узнайте подробнее, как пройти аутентификацию с помощью ключа доступа:

Серверная интеграция

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

Узнайте больше в наших руководствах по серверной части:

Существующие (устаревшие) механизмы аутентификации

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

Есть несколько причин:

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

Пересмотрите существующий механизм аутентификации

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

Пароли

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

Двухфакторная аутентификация

Хотя использование менеджера паролей помогает пользователям работать с паролями, не все пользователи их используют. Запрос дополнительных учетных данных, называемых одноразовым паролем (OTP), является обычной практикой для защиты таких пользователей. OTP обычно передаются по электронной почте, в SMS-сообщении или через приложение для проверки подлинности, например Google Authenticator . Поскольку одноразовые пароли обычно представляют собой короткий текст, динамически генерируемый и действительный только в течение ограниченного периода времени, это снижает вероятность взлома учетной записи. Эти методы не так надежны, как ключ доступа, но гораздо лучше, чем оставлять пользователям только пароль.

Если вы выберете SMS в качестве способа доставки одноразового пароля, ознакомьтесь со следующими рекомендациями, которые помогут упростить процесс ввода одноразового пароля.

Федерация удостоверений

Федерация удостоверений — это еще один вариант, позволяющий пользователям безопасно и легко входить в систему. Благодаря федерации удостоверений веб-сайты и приложения могут позволять пользователям входить в систему, используя удостоверение пользователя от стороннего поставщика удостоверений. Например, функция «Вход через Google» обеспечивает высокую конверсию для разработчиков, а пользователи находят ее проще и предпочтительнее аутентификации на основе пароля. Объединение удостоверений дополняет ключи доступа. Это отлично подходит для регистрации, поскольку веб-сайт или приложение могут получить основную информацию профиля пользователя за один шаг, а ключи доступа отлично подходят для оптимизации повторной аутентификации.

Имейте в виду, что после того, как Chrome прекратит использование сторонних файлов cookie в 2024 году, это может повлиять на некоторые системы федерации удостоверений в зависимости от того, как они построены. Чтобы смягчить это воздействие, разрабатывается новый API браузера под названием Federated Credential Management API (сокращенно FedCM). Если у вас есть поставщик удостоверений, ознакомьтесь с подробностями и решите, нужно ли вам внедрять FedCM.

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

Образовательные ресурсы

Интернет

Чтобы интегрировать ключи доступа на свой веб-сайт, используйте API веб-аутентификации (WebAuthn) . Чтобы узнать больше, посетите следующие ресурсы:

Андроид

Чтобы интегрировать ключи доступа в ваше приложение Android, используйте библиотеку Credential Manager . Чтобы узнать больше, посетите следующие ресурсы:

UX

Изучите рекомендации по использованию ключей доступа: