¿Cuándo fue la última vez que dijiste “wow” cuando probaste algo nuevo? Muy bien, el poke bowl que comiste ayer suena muy bien, pero aquí estoy hablando de tecnología. ¿Cuándo fue la última vez que intentaste algo revolucionario?
Hola, mi nombre es Matt y soy un arquitecto de desarrollo asociado con los especialistas en integración de identidad digital aquí en WhoIAM. Creamos soluciones de identidad del consumidor utilizando tecnología como OpenID Connect, SAML y Azure AD B2C.
Durante los últimos meses, nuestro equipo ha estado trabajando con un nuevo servicio del equipo de identidad de Microsoft llamado Entra Verified ID que promete solucionar problemas como la residencia de datos y la federación difícil que son comunes en nuestra industria. La implementación de Microsoft de Verifiable Credentials está en sus primeras etapas, pero es muy prometedora. Resuelve una variedad de casos de uso clave en la actualidad para clientes de todas las industrias, y vale la pena echarle un vistazo si desea estar a la vanguardia de la tecnología.
Más allá de esa vanguardia, hay un mundo en el que podemos tener nuestro pastel y comérnoslo también con servicios en línea que son seguros y sin fricciones. Para hacer eso, Verifiable Credentials busca reemplazar su combinación de nombre de usuario y contraseña con una tarjeta de identificación virtual a prueba de manipulaciones que existe en una aplicación como una billetera de la vida real. Este sistema tiene el potencial de:
- Deshágase de su libro gigante de contraseñas (o biblioteca del administrador de contraseñas)
- Facilite la verificación de credenciales de otra institución (como un diploma universitario) sin un proceso de integración largo y complicado
- Permitir la verificación en persona de las identidades en línea.
- Por ejemplo, se registra para un evento que ha invitado a ciertas organizaciones. Para asistir, debe demostrar que es miembro de la organización para obtener su insignia.
- Sin una verificación sólida, cualquiera podría retocar la insignia de una empresa. Podría hacer coincidir el nombre y la licencia de conducir, pero la recepción tendría que pasar mucho tiempo haciendo eso, creando largas filas.
“Oh, genial, otro servicio en la nube patentado”
Yo también estaría poniendo los ojos en blanco, pero Entra Verified ID parece estar haciendo muchas cosas bien.
1. Estándares abiertos
Se basa en estándares abiertos de W3, la principal organización de estándares web que ha especificado HTML, CSS y HTTP, solo por nombrar algunos. Microsoft es una de las muchas empresas que implementan esta especificación.
Por ahora, Microsoft Authenticator es la única billetera que puede usar con Verified ID. Sin embargo, se está construyendo una especificación común que permite que las billeteras funcionen entre sí. Puede ver esto en el esquema de URL de la siguiente especificación:
He confirmado que tanto Microsoft como Auth0 siguen este esquema de URL. A partir del 2 de enero de 2023, las billeteras de las dos empresas casi trabajaron juntas*, por lo que el futuro parece prometedor. Otras billeteras para revisar incluyen Dock y Mattr .
2. Seguridad
Cada proveedor de identidad (IdP) representa un tesoro oculto de información y potencial de explotación. Como atacante, si compromete la contraseña de un usuario o viola el IdP, entonces está dentro. Si viola el IdP, entonces todos los usuarios en ese sistema son bombardeados ya que sus contraseñas pueden volcarse (dependiendo de qué tan seguras fueron almacenadas) . Consulte el documento del Instituto Nacional de Estándares y Tecnología (NIST) sobre IdP para obtener más detalles: https://pages.nist.gov/800-63-3-Implementation-Resources/63C/IdP/
Existen sitios como haveibeenpwned para verificar si su contraseña se ha visto comprometida como parte de una violación. Si ingresa su correo electrónico, lo más probable es que algún servicio que utiliza se haya visto comprometido. Esto se relaciona directamente con el impulso hacia la eliminación de contraseñas en las empresas .
3. Centrarse en la privacidad y seguridad del usuario final
Credenciales verificables busca eliminar la necesidad de almacenar sus contraseñas y datos confidenciales en el servidor de otra persona. En su lugar, almacenaría una credencial que vive en su dispositivo. Entonces, en lugar de que el proveedor de identidad sea la fuente de la verdad para “eres quien dices que eres”, tú y tu dispositivo lo son. La especificación también permite un par de características interesantes para preservar la privacidad. Digamos que tiene una tarjeta de identificación de estudiante que tiene su nombre completo y número de identificación :
- Divulgación selectiva : un sitio que ofrece descuentos para estudiantes puede solicitar solo su nombre completo para la información de envío, mientras que la tarjeta en sí demuestra que es un estudiante. Otros sitios, como una transcripción interna de un sitio universitario, necesitarían solicitar su número de identificación para recuperar la transcripción.
- Reclamaciones abstractas : para evitar la divulgación de información de identificación personal, un emisor (como un servicio de verificación de identidad o el gobierno) podría establecer un valor “ageOver21 = [verdadero o falso]” en su tarjeta cuando se emita . Luego, el usuario podría presentar esto en una tienda de comestibles en lugar de su fecha de nacimiento completa.
*Estas dos funciones aún no están implementadas en Entra Verified ID, pero llegarán eventualmente .
4. Federación más fácil
La autenticación y la autorización tienen una curva de aprendizaje pronunciada para todos, incluso para los desarrolladores experimentados .
Por eso me sorprendió trabajar con Verifiable Credentials: la curva de aprendizaje fue mucho más intuitiva porque funciona en un análogo de la vida real: las billeteras.
Puede emitir una credencial y presentarla, al igual que una licencia de conducir. La entidad que emite la credencial debe ser legítima, pero una vez emitida, va directamente a su billetera, una aplicación segura en su teléfono. Al presentar, los datos de la credencial se envían directamente al sitio o la aplicación que los necesita.
De la sección de detalles del ciclo de vida de w3c en la especificación del modelo de datos
¿Notas que falta algo? Así es, no se requiere IdP. Eso es importante por un par de razones:
5. Esfuerzo de implementación
Imagina que estás vendiendo jugo de cactus en línea. Todo lo que necesita es el correo electrónico, el nombre, la dirección y los detalles de pago del cliente para completar un pedido. Las cuentas de invitados funcionan bien por un tiempo… pero ¿qué pasa si quieres implementar un programa de fidelización? ¿Qué pasa si sus clientes quieren ver su historial de pedidos? Entonces empiezas a necesitar algún tipo de sistema de identidad.
Con credenciales verificables, puede crear una solicitud de presentación solo para la información que necesita sin que el usuario tenga que crear una cuenta con su empresa . Por ejemplo, el emisor podría ser un verificador de identidad como ID.me y tú serías el verificador. Claro que podría federarse desde un proveedor como Google, pero eso aún requiere un sistema de identidad propio. La federación también deja otra oportunidad para los atacantes, como se muestra en el truco de Facebook/Spotify (con el que tengo alguna experiencia personal ).
Como alguien que implementó una buena cantidad de soluciones de identidad para clientes, las dos razones anteriores ya me entusiasman para seguir trabajando con esta tecnología y ver a dónde va.
Envolver
Como cualquier tecnología emergente, hay mucho trabajo por hacer para que sea fácil de integrar y desarrollar. La adopción de la industria aún está en marcha y pasará un tiempo antes de que todos usen credenciales verificables en lugar del nombre de usuario/contraseña habitual para todo.
Habiendo dicho eso, estoy muy entusiasmado con la dirección que están tomando Entra Verified ID y Verifiable Credentials de Microsoft en su conjunto.
- W3C tiene una hoja de ruta completa que muestra la posible integración con WebAuthN eventualmente: https://w3c-ccg.github.io/roadmap/diagram.html
- El lanzamiento de la credencial verificable de Auth0 se hizo en Hacker News de YCombinator: https://news.ycombinator.com/item?id=33427503
- El Servicio Nacional de Salud del Reino Unido ha comenzado a usar Verified ID: https://customers.microsoft.com/en-us/story/1348169400682329017-nhs-foundation-trust-health-provider-m365
Recursos:
- Más información sobre Entra Verified ID: https://learn.microsoft.com/en-us/azure/active-directory/verifiable-credentials/decentralized-identifier-overview
- Lea las especificaciones oficiales de W3: https://www.w3.org/TR/vc-data-model/
- Echa un vistazo a los miembros de la organización https://identity.foundation/ para conocer a todos los jugadores en este espacio (y estoy seguro de que les encantaría que te suscribieras a su boletín)
Notas al margen:
*: Auth0 no ofrecía códigos QR escaneables para la emisión de credenciales, así que tuve que intentar hacer una solicitud de presentación para una credencial Auth0 en Verified ID. Cambié el emisor y acepté el tipo de credencial y escaneé el código QR con la aplicación de billetera de muestra de Auth0. Luego recibí un error: “Los orígenes de la propiedad contienen un origen no válido”. Esto podría valer la pena investigar en un artículo de seguimiento.
En el otro sentido, intenté escanear una solicitud de presentación de Auth0 sin la credencial en el autenticador de Microsoft y logré ver el ícono de “dominio verificado”, lo cual es una buena señal.