Цифровые удостоверения – это криптографически проверяемые цифровые документы, которые пользователи могут использовать для предоставления информации о себе, а также для аутентификации или авторизации. Цифровые удостоверения основаны на открытом отраслевом стандарте W3C Digital Credentials API. На устройствах Android это реализовано через Digital Credentials API в Менеджере учетных данных.
Преимущества цифровых сертификатов
У цифровых удостоверений есть несколько преимуществ по сравнению с физическими удостоверениями и нестандартизированными цифровыми документами:
- Повышенная безопасность и доверие. Цифровые удостоверения зашифрованы, что обеспечивает целостность данных и подлинность. Это подтверждает уверенность в том, что учетные данные были выданы проверяемым источником и не были подделаны.
- Повышенная конфиденциальность. Многие форматы цифровых удостоверений поддерживают выборочное раскрытие информации, что позволяет пользователям делиться только необходимыми данными. Например, пользователь может подтвердить, что у него есть водительские права, не раскрывая дату рождения.
- Объединенное хранилище. Пользователи могут хранить различные учетные данные от разных эмитентов в цифровых кошельках на своих устройствах, что снижает необходимость носить с собой физические карты.
- Совместимость. Благодаря открытым стандартам цифровые удостоверения могут работать в разных операционных системах, на разных устройствах и платформах.
Примеры использования
Digital Credentials API можно использовать в самых разных случаях, например:
- Принимать официальные удостоверения личности. Приложения могут запрашивать и использовать атрибуты официальных документов, например для подтверждения возраста, восстановления доступа к аккаунту и проверки KYC.
- Подтверждение номеров телефонов. Приложения могут использовать API для подтверждения номеров телефонов, обмениваясь цифровыми удостоверениями, полученными с SIM-карты телефона, напрямую с оператором связи пользователя. Это позволяет отказаться от одноразовых кодов, повысить безопасность и снизить расходы на передачу данных. Подробные сведения приведены в руководстве по подтверждению номера телефона.
- Подтверждение адресов электронной почты. API позволяет приложению получать подтвержденные адреса электронной почты непосредственно с устройства пользователя. Это устраняет необходимость в одноразовых кодах и упрощает регистрацию, вход и восстановление доступа к аккаунту. Дополнительную информацию можно найти в руководстве по подтверждению адреса электронной почты.
- Собственные удостоверения. Расширяемость API позволяет любому приложению начать выдавать собственные цифровые удостоверения, которые могут запрашивать соответствующие валидаторы.
- Подтверждение платежных данных и транзакций. API позволяет защищать авторизацию платежей и цифровые платежные данные с помощью встроенного криптографически связанного подтверждения кошелька.
Как работают цифровые удостоверения
Экосистема цифровых удостоверений включает три основные категории приложений:
- Эмитенты. Это приложения, которые безопасно создают и выпускают удостоверения.
- Хранилища (кошельки). Это приложения на устройстве пользователя, в которых хранятся удостоверения. Пользователи должны иметь возможность передавать эти учетные данные запрашивающим приложениям в процессе презентации.
- Проверяющие приложения. Это приложения, которые проверяют и используют цифровые удостоверения.
Digital Credentials API в Менеджере учетных данных координирует взаимодействие между издателями, владельцами и приложениями для проверки.
Когда проверяющий запрашивает цифровое удостоверение, он отправляет запрос в систему Android через API. Затем Менеджер учетных данных показывает подходящие цифровые удостоверения из разных кошельков в надежном системном интерфейсе. Когда пользователь соглашается продолжить, Менеджер учетных данных вызывает соответствующий держатель для создания ответа.
Удобство использования
Подобно тому, как в Менеджере учетных данных есть встроенные пользовательские интерфейсы для процессов аутентификации, например с помощью ключей доступа, паролей и функции "Войти с аккаунтом Google", для различных вариантов использования Digital Credentials API также есть стандартизированные интерфейсы.
Существуют варианты интерфейса, адаптированные для конкретных сценариев использования. При использовании API система Android автоматически отображает контекстно-зависимые нижние экраны, например в следующих сценариях:
- Подтверждение адреса электронной почты. В интерфейсе показывается окно выбора аккаунта с подтвержденным адресом электронной почты и поставщиком идентификационной информации.
- Подтверждение номера телефона. В интерфейсе есть карточка подтверждения с операторами связи.
- Несколько карт. В этом представлении карты накладываются друг на друга, и связанные объекты можно объединить в один.
- Данные для электронных платежей. На странице оплаты показываются реквизиты платежной карты, информация о продавце и общая сумма транзакции для немедленного подтверждения.
Отраслевые стандарты
Цифровые удостоверения соответствуют отраслевым стандартам, что обеспечивает их совместимость с разными платформами. Наиболее распространенные открытые стандарты:
- Передача данных. Запросы на доступ к цифровым удостоверениям отправляются по стандарту OpenID4VP.
- Выпуск. Цифровые удостоверения выпускаются с использованием стандарта OpenID4VCI.
- Формат хранилища учетных данных. Цифровые удостоверения представлены в стандартизированных форматах, которые поддерживаются различными организациями по стандартизации, в первую очередь следующими:
- IETF выборочное раскрытие веб-токенов JSON (sd-jwt) VC
- ISO MDoc
Эти стандарты широко используются на различных платформах и операционных системах, обеспечивая бесперебойную работу в веб-браузерах, на мобильных устройствах и других форм-факторах. Это позволяет разработчикам обмениваться цифровыми удостоверениями с другими приложениями независимо от платформы, на которой они работают.
Попробовать
Чтобы протестировать межплатформенный процесс работы с цифровыми удостоверениями, установите примеры приложений для держателя и проверяющего на устройство Android.
Чтобы протестировать процесс, выполните следующие действия:
- Установите примеры приложений на устройство Android. Для этого воспользуйтесь одним из следующих способов:
- Используйте готовые APK-файлы.
- Скачайте приложение-держатель. Войдите в аккаунт GitHub, перейдите на страницу GitHub Actions приложения-держателя, выберите последнюю успешную сборку и скачайте файл
app-debug.apkиз раздела Artifacts (Артефакты). Оно называется CMWallet. - Скачайте приложение для проверки. APK-файл примера приложения для проверки можно скачать из репозитория примеров удостоверений личности. Затем установите APK-файл на устройство Android. Оно называется Digital Credentials Demo.
- Скачайте приложение-держатель. Войдите в аккаунт GitHub, перейдите на страницу GitHub Actions приложения-держателя, выберите последнюю успешную сборку и скачайте файл
- Сборка из исходного кода. Клонируйте указанные репозитории и установите приложение с помощью Android Studio.
- Используйте готовые APK-файлы.
- Откройте пример приложения-хранилища. Это зарегистрирует учетные данные хранилища в Менеджере учетных данных.
- Откройте пример приложения для проверки. Откройте пример приложения для проверки. Затем выберите вариант запроса цифровых удостоверений из кошельков. Появится нижний лист с доступными учетными данными из CMWallet.
- Выберите учетные данные. Выберите учетные данные, которые нужно отправить обратно в приложение для проверки. Теперь в приложении для проверки должны отображаться поля из возвращенных учетных данных.
Ресурсы
- Подробнее о том, как выпускать цифровые удостоверения, рассказывается в руководстве для эмитентов.
- Дополнительную информацию о приложениях-держателях можно найти в руководстве для разработчиков.
- Дополнительную информацию о проверке пользователей на основе цифровых удостоверений можно найти в руководстве по проверке.
- Подробнее о цифровых удостоверениях в интернете…