Descripción general de las credenciales digitales

Las credenciales digitales son documentos verificables de forma criptográfica que se pueden usar para autenticar, autorizar o proporcionar información sobre un usuario. Por lo general, se trata de documentos como licencias de conducir para dispositivos móviles, pasaportes digitales, pases de abordar, etcétera. Reside 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 administración de credenciales del 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 una parte solicitante cuando se le solicite:

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

En este caso, por lo general, un usuario tiene una sola billetera y recupera las credenciales solicitadas de la billetera para presentarlas al solicitante. Las billeteras son, en su mayoría, intercambiables y, por lo general, pueden almacenar los mismos elementos.

Las credenciales digitales tienen algunas diferencias principales:

  1. Se espera que los usuarios tengan varias billeteras que pueden contener varias credenciales diferentes. Las billeteras determinan qué credenciales se pueden almacenar dentro de ellas.
  2. El solicitante ahora 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 plataforma de API recupera y presenta las credenciales. En Android, este es el Administrador de credenciales.

Por lo tanto, el Administrador de credenciales asume varios roles que antes controlaba el usuario:

  1. En Android, las billeteras deben registrar sus metadatos de credenciales con el Administrador de credenciales para aparecer en la IU del Administrador de credenciales.
  2. El Administrador de credenciales busca coincidencias entre las credenciales de las billeteras según la solicitud y presenta una lista para que el usuario la 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 de credencial digital
Figura 2: Modelo de interacción para la verificación de credenciales digitales El Administrador de credenciales usa metadatos de credenciales registradas previamente en las billeteras del usuario para hacer coincidir 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 muestra.

Experiencia del usuario

Como se muestra en el flujo de Android, el usuario solo necesita interactuar una vez con la IU del Administrador de credenciales 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: IU de credenciales digitales.

Estándares

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

Por lo general, las respuestas de credenciales digitales se muestran en un formato de credenciales estandarizado. Diferentes organismos de estándares los mantienen y, entre ellos, se incluyen las credenciales verificables del W3C, sd-jwt y mdoc.

También se pueden usar protocolos personalizados, aunque te recomendamos que uses uno de los protocolos estándar en tu aplicación.

Probar

Puedes probar el flujo de credenciales digitales en todas las 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 el repositorio y, luego, instálalo directamente desde Android Studio o 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 con el Administrador de credenciales. Asegúrate de que el Bluetooth esté habilitado para permitir que los dispositivos se conecten entre sí.
  3. Navega a https://digital-credentials.dev/ y selecciona Request Credentials (OpenID4VP).
  4. Acepta las indicaciones 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 que se muestra.

Consulta también

  • Para obtener más información sobre el uso de Credential Manager para solicitar credenciales digitales en tu app, lee la página de la API de Credential Verifier.
  • Para obtener más información sobre cómo crear una billetera digital con Credential Manager, lee la página de la API de Credential Holder.