О цифровых удостоверениях

Цифровые удостоверения – это криптографически проверяемые цифровые документы, которые пользователи могут использовать для предоставления информации о себе, а также для аутентификации или авторизации. Цифровые удостоверения основаны на открытом отраслевом стандарте W3C Digital Credentials API. На устройствах Android это реализовано через Digital Credentials API в Менеджере учетных данных.

Изображение, на котором показано, как использовать цифровое удостоверение
Рисунок 1. Использование цифрового удостоверения в примере приложения.

Преимущества цифровых сертификатов

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

  • Повышенная безопасность и доверие. Цифровые удостоверения зашифрованы, что обеспечивает целостность данных и подлинность. Это подтверждает уверенность в том, что учетные данные были выданы проверяемым источником и не были подделаны.
  • Повышенная конфиденциальность. Многие форматы цифровых удостоверений поддерживают выборочное раскрытие информации, что позволяет пользователям делиться только необходимыми данными. Например, пользователь может подтвердить, что у него есть водительские права, не раскрывая дату рождения.
  • Объединенное хранилище. Пользователи могут хранить различные учетные данные от разных эмитентов в цифровых кошельках на своих устройствах, что снижает необходимость носить с собой физические карты.
  • Совместимость. Благодаря открытым стандартам цифровые удостоверения могут работать в разных операционных системах, на разных устройствах и платформах.

Примеры использования

Digital Credentials API можно использовать в самых разных случаях, например:

  • Принимать официальные удостоверения личности. Приложения могут запрашивать и использовать атрибуты официальных документов, например для подтверждения возраста, восстановления доступа к аккаунту и проверки KYC.
  • Подтверждение номеров телефонов. Приложения могут использовать API для подтверждения номеров телефонов, обмениваясь цифровыми удостоверениями, полученными с SIM-карты телефона, напрямую с оператором связи пользователя. Это позволяет отказаться от одноразовых кодов, повысить безопасность и снизить расходы на передачу данных. Подробные сведения приведены в руководстве по подтверждению номера телефона.
  • Подтверждение адресов электронной почты. API позволяет приложению получать подтвержденные адреса электронной почты непосредственно с устройства пользователя. Это устраняет необходимость в одноразовых кодах и упрощает регистрацию, вход и восстановление доступа к аккаунту. Дополнительную информацию можно найти в руководстве по подтверждению адреса электронной почты.
  • Собственные удостоверения. Расширяемость API позволяет любому приложению начать выдавать собственные цифровые удостоверения, которые могут запрашивать соответствующие валидаторы.
  • Подтверждение платежных данных и транзакций. API позволяет защищать авторизацию платежей и цифровые платежные данные с помощью встроенного криптографически связанного подтверждения кошелька.

Как работают цифровые удостоверения

Экосистема цифровых удостоверений включает три основные категории приложений:

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

Digital Credentials API в Менеджере учетных данных координирует взаимодействие между издателями, владельцами и приложениями для проверки.

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

Удобство использования

Подобно тому, как в Менеджере учетных данных есть встроенные пользовательские интерфейсы для процессов аутентификации, например с помощью ключей доступа, паролей и функции "Войти с аккаунтом Google", для различных вариантов использования Digital Credentials API также есть стандартизированные интерфейсы.

Существуют варианты интерфейса, адаптированные для конкретных сценариев использования. При использовании API система Android автоматически отображает контекстно-зависимые нижние экраны, например в следующих сценариях:

  • Подтверждение адреса электронной почты. В интерфейсе показывается окно выбора аккаунта с подтвержденным адресом электронной почты и поставщиком идентификационной информации.
  • Подтверждение номера телефона. В интерфейсе есть карточка подтверждения с операторами связи.
  • Несколько карт. В этом представлении карты накладываются друг на друга, и связанные объекты можно объединить в один.
  • Данные для электронных платежей. На странице оплаты показываются реквизиты платежной карты, информация о продавце и общая сумма транзакции для немедленного подтверждения.
Изображение, на котором показаны варианты UX цифровых удостоверений
Рисунок 2. Варианты UX для цифровых удостоверений, используемых для подтверждения адреса электронной почты, подтверждения по телефону и в сценариях с несколькими удостоверениями.

Отраслевые стандарты

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

  • Передача данных. Запросы на доступ к цифровым удостоверениям отправляются по стандарту OpenID4VP.
  • Выпуск. Цифровые удостоверения выпускаются с использованием стандарта OpenID4VCI.
  • Формат хранилища учетных данных. Цифровые удостоверения представлены в стандартизированных форматах, которые поддерживаются различными организациями по стандартизации, в первую очередь следующими:

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

Попробовать

Чтобы протестировать межплатформенный процесс работы с цифровыми удостоверениями, установите примеры приложений для держателя и проверяющего на устройство Android.

Чтобы протестировать процесс, выполните следующие действия:

  1. Установите примеры приложений на устройство Android. Для этого воспользуйтесь одним из следующих способов:
    • Используйте готовые APK-файлы.
      • Скачайте приложение-держатель. Войдите в аккаунт GitHub, перейдите на страницу GitHub Actions приложения-держателя, выберите последнюю успешную сборку и скачайте файл app-debug.apk из раздела Artifacts (Артефакты). Оно называется CMWallet.
      • Скачайте приложение для проверки. APK-файл примера приложения для проверки можно скачать из репозитория примеров удостоверений личности. Затем установите APK-файл на устройство Android. Оно называется Digital Credentials Demo.
    • Сборка из исходного кода. Клонируйте указанные репозитории и установите приложение с помощью Android Studio.
  2. Откройте пример приложения-хранилища. Это зарегистрирует учетные данные хранилища в Менеджере учетных данных.
  3. Откройте пример приложения для проверки. Откройте пример приложения для проверки. Затем выберите вариант запроса цифровых удостоверений из кошельков. Появится нижний лист с доступными учетными данными из CMWallet.
  4. Выберите учетные данные. Выберите учетные данные, которые нужно отправить обратно в приложение для проверки. Теперь в приложении для проверки должны отображаться поля из возвращенных учетных данных.

Ресурсы