Обзор цифровых учетных данных

Цифровые учетные данные — это криптографически проверяемые документы, которые могут использоваться для аутентификации, авторизации или предоставления иной информации о пользователе. Обычно это такие документы, как мобильные водительские удостоверения, цифровые паспорта, посадочные талоны и т. д. Они хранятся в виртуальных контейнерах, называемых цифровыми кошельками, и являются частью стандарта W3C, определяющего способы доступа и извлечения этих данных. Этот стандарт реализован для веб-приложений с помощью API управления учетными данными W3C , а на Android — с помощью API DigitalCredential из Credential Manager.

Разберитесь в цифровых учетных данных.

В реальном мире человек может хранить свои личные данные в кошельке и предъявлять их запрашивающей стороне по требованию:

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

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

Цифровые учетные данные отличаются от учетных данных, существующих в реальном мире, следующими особенностями:

  1. Предполагается, что у пользователей будет несколько кошельков — также известных как держатели — которые могут содержать различные учетные данные. Кошельки определяют, какие учетные данные могут храниться в них.
  2. Приложение или сервис, запрашивающий учетные данные для предоставления доступа или подтверждения личности, называется верификатором .
  3. Организация, которая создает учетные данные и заявляет о своих правах в отношении данного предмета (например, университет, правительство или технологическая компания), называется эмитентом .
  4. Представление учетных данных происходит на программном уровне, то есть API-интерфейс получает и отображает учетные данные — в Android это менеджер учетных данных.

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

  1. На Android кошельки должны зарегистрировать метаданные своих учетных данных в Credential Manager, чтобы отображаться в пользовательском интерфейсе Credential Manager.
  2. Менеджер учетных данных сопоставляет учетные данные между кошельками на основе запроса и отображает список для выбора пользователем.
  3. Когда пользователь выбирает учетные данные в списке, менеджер учетных данных вызывает кошелек, который обрабатывает оставшуюся часть транзакции (отображает пользовательский интерфейс и т. д.) и возвращает учетные данные приложению.

Этот процесс показан здесь:

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

Проверяемые учетные данные

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

Не все цифровые учетные данные являются проверяемыми, но все проверяемые учетные данные являются цифровыми учетными данными.

Что означает подтверждение заявления?

Когда учетные данные поступают через API Android Credential Manager и в них есть утверждение, помеченное как «проверено», это означает, что эмитент подтверждает проверку этих конкретных данных. Однако это не означает, что данные являются абсолютной, универсальной истиной. «Проверено» — это подтверждение процесса, а не автоматическая гарантия доверия.

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

пользовательский опыт

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

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

Стандарты

Запросы на получение цифровых учетных данных создаются с использованием стандарта OpenID4VP . Примеры запросов можно посмотреть на демонстрационном сайте цифровых учетных данных .

Ответы, содержащие цифровые учетные данные, обычно возвращаются в стандартизированном формате. Эти форматы поддерживаются различными организациями по стандартизации, включая W3C Verifiable Credentials , sd-jwt и mdoc .

Также возможно использование пользовательских протоколов, хотя мы рекомендуем в вашем приложении использовать один из стандартных протоколов.

Попробуйте!

Вы можете протестировать поток цифровых учетных данных на разных платформах с помощью Android-кошелька и веб-верификатора:

  1. Установите общедоступный пример CMWallet на свой Android-телефон. Это можно сделать, загрузив его из репозитория и установив непосредственно из Android Studio, или перейдя по ссылке https://github.com/digitalcredentialsdev/CMWallet/actions и выбрав последнюю сборку, чтобы получить доступ к последнему файлу app-debug.apk .
  2. Откройте CMWallet, чтобы зарегистрировать метаданные в Credential Manager. Убедитесь, что Bluetooth включен, чтобы ваши устройства могли подключаться друг к другу.
  3. Перейдите по ссылке https://digital-credentials.dev/ и выберите Request Credentials (OpenID4VP) .
  4. Примите предупреждения и отсканируйте QR-код своим телефоном, затем выберите «Использовать пароль» и пройдите подтверждение, чтобы отобразить доступные учетные данные.
  5. Выберите учетные данные из CMWallet, чтобы вернуться в браузер. В браузере должны отобразиться возвращенные учетные данные.

См. также

  • Чтобы узнать больше об использовании Credential Manager для запроса цифровых учетных данных в вашем приложении, ознакомьтесь со страницей Credential Manager - Verifier API .
  • Чтобы узнать больше о создании цифрового кошелька с помощью Credential Manager, ознакомьтесь со страницей Credential Manager - Holder API .