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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы сопоставить AAGUID с поставщиком ключа доступа, RP могут использовать репозиторий 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 — это уникальная строка, которая идентифицирует поставщика ключа доступа, создавшего ключ доступа. RP могут использовать AAGUID, чтобы упростить пользователям управление их ключами доступа. Репозиторий AAGUID, созданный сообществом, может использоваться для сопоставления AAGUID с поставщиками ключей доступа.