Descripción general de las credenciales digitales

Las credenciales digitales son documentos criptográficamente verificables que se pueden usar para autenticar, autorizar o proporcionar información sobre un usuario. Por lo general, se trata de elementos como licencias de conducir para dispositivos móviles, pasaportes digitales, tarjetas de embarque, etcétera. Se encuentran en contenedores virtuales llamados billeteras digitales y forman parte de un estándar del W3C que especifica cómo acceder a ellos y recuperarlos. Este estándar se implementa para casos de uso web con la API de Credential Management de W3C y en Android, con la API de DigitalCredential de Credential Manager.

Información sobre las credenciales digitales

En el mundo físico, una persona puede guardar su identidad en su billetera y presentarla a la parte solicitante cuando se le pida:

Imagen que muestra el flujo de una interacción normal con la billetera
Figura 1: Proceso para completar una solicitud de credencial del mundo físico. El solicitante le pide al usuario una credencial específica. Luego, el usuario la selecciona y la recupera de su billetera física. Por último, el usuario proporciona la credencial al solicitante.

En este caso, el usuario suele tener una sola billetera y recupera las credenciales solicitadas de la billetera para presentárselas al solicitante. Las billeteras son, en su mayoría, intercambiables y, por lo general, pueden almacenar las mismas cosas.

Las credenciales digitales tienen algunas diferencias principales:

  1. Se espera que los usuarios tengan varias billeteras, también conocidas como titulares, que pueden contener varias credenciales diferentes. Las billeteras determinan qué credenciales se pueden almacenar en ellas.
  2. Ahora, el solicitante es una aplicación en lugar de una persona real, y se lo conoce como verificador.
  3. La presentación de credenciales se realiza en software, lo que significa que una superficie de API recupera y presenta las credenciales. En Android, esto es Credential Manager.

Por lo tanto, Credential Manager asume varios roles que antes manejaba el usuario:

  1. En Android, las billeteras deben registrar los metadatos de sus credenciales en Credential Manager para que aparezcan en la IU de Credential Manager.
  2. El Administrador de credenciales correlaciona las credenciales en todas las billeteras según la solicitud y presenta una lista para que el usuario seleccione.
  3. Cuando el usuario selecciona una credencial en la lista, el Administrador de credenciales invoca la billetera, que controlará el resto de la transacción (mostrará IU, etc.) y devolverá la credencial a la aplicación.

Este flujo se muestra aquí:

Imagen que muestra el flujo de una interacción con credenciales digitales
Figura 2: Modelo de interacción para la verificación de credenciales digitales. Credential Manager usa metadatos de credenciales registradas previamente en las billeteras del usuario para que coincidan con la solicitud de un verificador y le solicita al usuario que seleccione una credencial. Luego, el Administrador de credenciales dirige el flujo de actividad a la billetera correspondiente, que controla el resto de la transacción y devuelve la credencial al verificador. Nota: El verificador debe controlar y verificar la respuesta de la credencial una vez que se devuelve.

Experiencia del usuario

Como se muestra en el flujo de Android, el usuario solo necesita interactuar una vez con la IU de Credential Manager para seleccionar la credencial adecuada. Este es un ejemplo de cómo se ve el selector:

Imagen que muestra la IU de credenciales digitales en el Administrador de credenciales
Figura 3: Es la IU de las credenciales digitales.

Estándares

Las solicitudes de credenciales digitales se crean con el estándar OpenID4VP. Puedes ver ejemplos de solicitudes en el sitio de demostración de credenciales digitales.

Por lo general, las respuestas de credenciales digitales se devuelven en un formato de credencial estandarizado. Estos son mantenidos por diferentes organismos de estándares y, entre ellos, se incluyen las credenciales verificables de W3C, sd-jwt y mdoc.

Los protocolos personalizados también son factibles, aunque te recomendamos que uses uno de los protocolos estándar en tu aplicación.

Probar

Puedes probar el flujo de credenciales digitales en diferentes plataformas con una billetera de Android y un verificador basado en la Web:

  1. Instala la muestra pública de CMWallet en tu teléfono Android. Para ello, extrae datos del repositorio e instala directamente desde Android Studio, o bien navega a https://github.com/digitalcredentialsdev/CMWallet/actions y selecciona la compilación más reciente para acceder al archivo app-debug.apk más reciente.
  2. Abre CMWallet para registrar los metadatos en el Administrador de credenciales. Asegúrate de que el Bluetooth esté habilitado para permitir que tus dispositivos se conecten entre sí.
  3. Navega a https://digital-credentials.dev/ y selecciona Request Credentials (OpenID4VP).
  4. Acepta los mensajes de advertencia y escanea el código QR con tu teléfono. Luego, selecciona "Usar llave de acceso" y presiona la confirmación para mostrar las credenciales disponibles.
  5. Selecciona la credencial de CMWallet para volver al navegador. El navegador debería mostrar la credencial devuelta.

Consulta también