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

Узнайте, как можно интегрировать пароли в ваш сервис.

Анатомия системы паролей

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Интеграция на стороне сервера

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

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

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

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

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

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

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

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

Пароли

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

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

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

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

Федерация идентичности

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

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

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

Учебные ресурсы

Интернет

Для интеграции паролей на ваш сайт используйте API веб-аутентификации (WebAuthn) . Подробнее см. на следующих ресурсах:

Андроид

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

UX

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