Descripción de cómo funcionan las credenciales verificables

Completado

Los identificadores descentralizados (DID) son un componente clave del proceso que se sigue para emitir, presentar y comprobar una credencial verificable, y son el motivo por el que los usuarios pueden controlar cómo y cuándo se presenta y se comparte. En otras palabras, los DID habilitan las credenciales verificables.

Entidades implicadas en un ecosistema de credenciales verificables

Es importante describir primero algunas de las partes implicadas en el ecosistema de credenciales verificables, tal como se define en la recomendación del W3C sobre el modelo de datos de credenciales verificables v1.1.

  • Emisor: el emisor crea la credencial verificable. Entre los ejemplos de emisores se incluyen las corporaciones, las entidades gubernamentales, las organizaciones comerciales, etc. El emisor realiza notificaciones sobre usted, como firmante de la credencial.
  • Asunto: el asunto es la entidad sobre la que se realizan las notificaciones de la credencial. El firmante de una credencial verificable suele ser una persona, pero puede ser una cosa o un animal. Un ejemplo en el que el firmante podría ser una cosa es una credencial verificable que afirma que el vehículo que usted posee está registrado en su estado. Del mismo modo, un animal podría ser el firmante en el caso de una credencial que afirma que su mascota está registrada y vacunada contra la rabia. En nuestro escenario, daremos por supuesto que el firmante es una persona y podríamos denominarlo usuario.
  • Titular: un titular es una entidad que posee una o varias credenciales verificables. Algunos ejemplos de titulares son estudiantes, empleados, clientes, etc. El titular podría ser diferente del firmante, como cuando el propietario de una mascota posee una credencial que afirma que su mascota (el firmante) está registrada y vacunada. En nuestro ejemplo, y por motivos de simplicidad, el titular y el firmante serán el mismo y se hará referencia a ellos como usuario o titular.
  • Comprobador: el comprobador es una entidad que recibe la credencial verificable para su procesamiento. Algunos ejemplos de entidades que pueden servir como comprobadores incluyen empleadores, personal de seguridad, sitios web, universidades, etc.
  • Registro de datos verificables: los registros de datos verificables son los sistemas implicados en la creación y el registro de los DID, las claves públicas y otros datos que se usan con credenciales verificables. Estos sistemas suelen ser redes distribuidas, como libros de contabilidad distribuidos, cadenas de bloques, sistemas de archivos distribuidos u otro almacenamiento de datos de confianza. El tipo de registro que se use dependerá del método DID. Dentro del ecosistema de credenciales verificables, puede haber muchos registros. Podría decirse que la colección de estos registros es una red subyacente que representa un sistema de confianza.

Todas las partes implicadas en la transacción de la credencial verificable (emisor, usuario, comprobador) tienen su propio DID único que se puede resolver en el documento DID asociado.

Diagrama en el que se muestran los actores principales en un escenario de credenciales verificables. Estos incluyen el emisor, el usuario, el comprobador y el registro de datos verificables que representa el sistema de confianza.

Cartera digital

Otro componente importante del ecosistema de credenciales verificables es la cartera digital. En pocas palabras, una cartera digital es una representación de nuestra cartera física como una aplicación de software. Igual que en el caso de nuestras carteras físicas, la usamos para guardar credenciales, como una tarjeta de embarque, un carné de biblioteca, dinero, abonos y muchos otros tipos de credenciales y datos privados.

En realidad, una cartera digital es más que eso. Una cartera digital se compone de dos partes: la cartera en sí misma y un agente digital. La cartera sirve como contenedor para todo lo que se coloca en ella, es decir, todas las credenciales, abonos, datos privados, etc. El agente digital es el software que administra las interacciones con la cartera. El agente podría equipararse al usuario que coloca las credenciales en la cartera física y se las presenta a alguien que necesita comprobar su identidad. En el contexto de un ecosistema de credenciales verificables, el agente hace más que eso. El agente, en nombre del usuario final (el titular de la cartera digital), genera los pares de claves pública y privada y los DID, realiza solicitudes de credenciales, presenta credenciales (normalmente a través de códigos de usuario o QR), firma digitalmente las comunicaciones con los emisores y comprobadores de credenciales, etc. Algunas de estas acciones (como la creación de claves criptográficas, DID, firmas digitales, etc.) son transparentes para el usuario, pero son componentes importantes que se usan en el proceso de emisión y validación de credenciales verificables.

Desde la perspectiva del usuario final, la función del agente digital no se puede distinguir de la cartera en sí misma, dado que el agente suele estar integrado en la cartera. En este documento, consideraremos la cartera y el agente digital como un solo elemento y nos referimos a él como cartera digital.

Escenario y flujo de credenciales verificables

Alice, la usuaria, es una empleada de Woodgrove, Inc. (el emisor) que busca un descuento de empleado de una organización afiliada, Proseware (el comprobador).

Diagrama en el que se muestra el flujo de emisión y comprobación de una credencial verificable.

  1. Como se mencionó anteriormente, las claves públicas y DID de todas las partes se registran en un registro de datos verificable, como un libro de contabilidad descentralizado. Para mostrar una vista más ordenada, en la imagen solo aparece el registro de esta información para Woodgrove.
  2. Alice inicia sesión en el portal de empleados de Woodgrove y solicita una credencial que sirva de prueba de empleo. En este punto, Woodgrove podría mostrar un código QR en el sitio del portal de empleados. Alice digitaliza el código QR con una aplicación de cartera digital en su dispositivo móvil (por ejemplo, con la aplicación Microsoft Authenticator) y se inicia el modelo de atestación de Woodgrove para validar que Alice es realmente una empleada. La atestación podría realizarse de formas diferentes. Por ejemplo, Woodgrove puede requerir que Alice se autentique en su propio directorio, obligarle a realizar un recorrido de comprobación de la identidad que implique a un tercero encargado de la comprobación y la verificación de la identidad, o solicitarle un PIN. En este escenario, supongamos que Alice solo tiene que introducir un PIN mediante la cartera digital en su dispositivo móvil.
  3. Una vez que Woodgrove ha validado que Alice es una empleada, Woodgrove responde con la credencial. Cuando Woodgrove emite la credencial, incluye lo siguiente:
    • El DID de Woodgrove (DID del emisor).
    • El DID de la firmante (en este caso, Alice).
    • Las notificaciones de las que Woodgrove realiza la atestación. En este caso, Woodgrove atestigua que Alice ocupa el cargo de administradora de programas desde 2011.
    • La firma de Woodgrove (firma del emisor). Woodgrove firma la credencial con su clave privada.
  4. Alice acepta esa credencial, que se agrega a su cartera digital. Ahora que Alice tiene su credencial, visita el sitio web de Proseware para comprar un equipo.
  5. Para poder recibir el descuento, Proseware obliga a Alice a presentar una prueba de empleo.
  6. Alice ahora puede consultar su cartera digital y autorizarla a presentar esa credencial a Proseware en su nombre. La presentación incluye lo siguiente:
    • La credencial tal y como la emitió Woodgrove.
      • El DID de Woodgrove (DID del emisor).
      • El DID de Alice (DID de la firmante).
      • Las notificaciones de las que Woodgrove realiza la atestación. En este caso, Woodgrove atestigua que Alice ocupa el cargo de administradora de programas desde 2011.
      • La firma de Woodgrove (firma del emisor). Woodgrove firma la credencial con su clave privada.
    • La firma de Alice (firma de la firmante). Alice firma la credencial con su clave privada.
  7. Proseware recibe la prueba de empleo y realiza algunas búsquedas para comprobar que Woodgrove emitió la credencial y que la firmante de la credencial es Alice.
    • Compruebe el firmante:
      • Puesto que la credencial incluye el DID de Alice, Proseware puede resolver el DID y obtener el documento DID que contiene la clave pública.
      • Dado que Alice firmó la credencial, Proseware puede usar la clave pública para comprobar que la firma de la credencial procede realmente de Alice como firmante.
    • Compruebe el emisor:
      • Puesto que la credencial incluye el DID de Woodgrove, Proseware puede resolver el DID para obtener el documento DID de Woodgrove que contiene la clave pública.
      • Dado que la credencial también incluye la firma de Woodgrove, Proseware puede usar la clave pública para comprobar que la firma de la credencial procede realmente de Woodgrove como emisor.
      • Durante el proceso de comprobación del emisor, Proseware no necesitó en ningún momento conectarse directamente con Woodgrove. Proseware solo necesita conectarse con el registro de datos distribuido.
      • Ahora que Proseware ha recibido y validado la credencial de Alice, se pone en marcha la lógica de negocios de Proseware para permitir que Alice compre un equipo a un precio con descuento.

En la transacción de emisión, presentación y comprobación de la transacción, conviene resaltar algunos puntos que ponen de relieve el valor de las credenciales verificables:

  • Al emitir una credencial, las notificaciones que se presentan son el conjunto mínimo de notificaciones necesarias para cumplir el objetivo. En este caso, la credencial solo debe incluir una notificación del puesto de la empleada y el año en que empezó a trabajar para la empresa. Esto limita la cantidad de información personal que se comparte.
  • La usuaria controla la credencial y determina con quién la compartirá. Además, la cartera de la usuaria mantiene un registro de las entidades con las que se compartió la credencial, junto con otra información.
  • Cuando el comprobador valida la credencial, lo hace sin necesidad de conectarse con el emisor. El comprobador resuelve el DID del emisor para obtener las claves públicas, y con la clave pública puede validar la firma del emisor que aparece en la credencial.

Un escenario común que puede darse con cualquier credencial es que expire o que el emisor tenga que revocarla. La recomendación del W3C sobre el modelo de datos de credenciales verificables v1.1 incluye campos de propiedad en la credencial para tener en cuenta estos escenarios.

En la cartera digital de Alice, la credencial se muestra como una tarjeta similar a las credenciales que llevaríamos en nuestra cartera física. Pero, en realidad, una credencial verificable es una estructura de datos JSON legible por una máquina que consta de una serie de pares clave-valor e incluye el DID del emisor, las notificaciones que se declaran en la credencial, las firmas digitales, etc.

Visite https://aka.ms/vcdemo para ver una demostración más completa de un escenario de incorporación de credenciales verificables.