Определите поставщика ключа доступа с помощью AAGUID

Доверяющие стороны (RP) могут определить, каким поставщиком ключей был создан ключ, изучив AAGUID соответствующих учетных данных открытого ключа.

Проблемы с управлением ключами доступа

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

Для пользователей, управляющих несколькими паролями на сервере доступа, сложность заключается в том, чтобы найти нужный пароль, когда им необходимо отредактировать или удалить определенный пароль среди других. Хороший пример — когда пользователь хочет удалить неиспользуемый пароль. Рекомендуется добавлять в список паролей информацию о пароле, такую ​​как дата создания и дата последнего использования . Это помогает пользователям найти конкретный пароль.

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

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

С помощью глобально уникального идентификатора аутентификатора (AAGUID), включенного в учетные данные открытого ключа, возвращаемые при регистрации пароля, поставщики паролей могут определить поставщика пароля и помочь пользователям найти правильный пароль.

Определите поставщика ключа доступа с помощью AAGUID.

AAGUID — это уникальный номер, идентифицирующий модель аутентификатора (а не конкретный экземпляр аутентификатора). AAGUID можно найти в данных аутентификатора открытого ключа.

Схема объекта аттестации, иллюстрирующая включенные данные аутентификатора (содержащие подтвержденные учетные данные) и заявление об аттестации.
AAGUID можно найти в данных аутентификатора.

Поставщики паролей могут использовать AAGUID для идентификации поставщика пароля. Например, если пользователь создает пароль на устройстве Android с помощью Google Password Manager, поставщик паролей получит AAGUID "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4" . Поставщик паролей может добавить пометку в список паролей, указывающую на то, что пароль был создан в Google Password Manager.

На странице настроек паролей в разделе параметров безопасности отображается подробная информация о каждом пароле.
Пример пользовательского интерфейса для управления паролями.

Для сопоставления AAGUID с поставщиком паролей, поставщики паролей могут использовать репозиторий AAGUID, созданный сообществом . Найдя AAGUID в списке , можно узнать имя поставщика паролей и текстовое содержимое его значка в формате SVG.

Получение AAGUID — это функция, которую предоставляют большинство библиотек WebAuthn. В следующем примере показан код регистрации на стороне сервера с использованием SimpleWebAuthn :

// Import a list of AAGUIDs from a JSON file
import aaguids from './aaguids.json' with { type: 'json' };

...

 // Use SimpleWebAuthn handy function to verify the registration request.
const { verified, registrationInfo } = await verifyRegistrationResponse({
  response: credential,
  expectedChallenge,
  expectedOrigin,
  expectedRPID,
  requireUserVerification: false,
});

...

const { aaguid } = registrationInfo;
const provider_name = aaguids[aaguid]?.name || 'Unknown';

Заключение

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