acercando la usabilidad de la identidad digital a todo el mundo

Una solución unificada sin contraseña para la autenticación en línea de entidades SSI a través del protocolo estándar FIDO2 WebAuthn. SSIDO es un proyecto de código abierto que tiene como objetivo la convergencia de dos tecnologías relacionadas con la identidad y la autenticación,  SSI y FIDO2. Dentro de la solución SSIDO  el protocolo estándar FIDO2 WebAuthn se implementa mediante la introducción de componentes basados en DKPI: validador del lado del servidor y autenticador del lado del cliente (móvil o de escritorio).

En comparación con el inicio de sesión tradicional, FIDO2 ofrece una autenticación en línea más simple y sólida con características mejoradas de privacidad, usabilidad y escalabilidad y menores riesgos de piratería, ataques de repetición, robo de contraseñas y spam.

arquitectura ssido

La arquitectura SSIDO está compuesta por una aplicación del lado del servidor (Parte de confianza) y componentes del lado del cliente, como se muestra en la figura siguiente.

El cliente SSIDO consta de dos componentes:

El agente de usuario (normalmente un navegador web) es un cliente que solicita alguna página web protegida.

SSI Authenticator es una aplicación móvil de agente perimetral o una aplicación de escritorio del lado del cliente que responde a los reclamos de autenticación de Access Controller utilizando la billetera SSI.

El servidor SSIDO consta de dos módulos:

Access Controller es una aplicación del lado del servidor que organiza el proceso de autenticación. Establece y gestiona una conexión HTTP (S) con el agente de usuario y una conexión WebSocket con SSI Authenticator.

SSI Validator es una biblioteca que valida el DID del usuario a través del SSI DPKI y ejecuta operaciones criptográficas necesarias.

PROTOCOLO ssido

La secuencia de autenticación se muestra en el diagrama siguiente.

DIAGRAMA DE LA SECUENCIA DE AUTENTICACIÓN.

  1. El usuario a través del User Agent solicita alguna página web protegida.
  2. Una vez que se ha recibido la solicitud, el Controlador de Acceso establece una conexión WebSocket con el Agente de Usuario. El Controlador de Acceso almacena el ID de sesión establecido y responde al agente de usuario enviando un código QR de validación. El código QR contiene la URL de autenticación, la identificación de sesión establecida y, opcionalmente, otra información relevante.
  3. El usuario utiliza la aplicación de edge-agent para leer el código QR recibido y envía el DID del usuario al servidor.
  4. La aplicación del lado del servidor recibe el DID del usuario y recupera la clave pública correspondiente del Documento DID almacenado en el libro mayor SSI. El Validador SSI verifica que las credenciales de usuario no se revoquen.
  5. Si el Controlador de Usuario no existe, la aplicación del lado del servidor lo crea.
  6. El validador SSI genera un desafío aleatorio junto con otros parámetros de acuerdo con la lógica empresarial y la configuración de la aplicación.
  7. Si el DID del usuario ya está almacenado en la base de datos, la aplicación lo usa para buscar las credenciales del usuario.
  8. Las credenciales de usuario recuperadas se utilizan para completar las Credenciales de exclusión y permitir los parámetros de Credenciales.
  9. El validador SSI devuelve la solicitud http. El Controlador de Acceso almacena la solicitud en el almacenamiento temporal.
  10. La aplicación del agente perimetral (SSI Authenticator) recibe la solicitud y verifica el DID del servidor mediante el SSI Ledger.
  11. El Autenticador SSI confirma la operación y el usuario devuelve la respuesta con el objeto Credencial de clave pública al servidor.
  12. El Controlador de Acceso del lado del servidor recupera la solicitud inicial del almacenamiento temporal y pasa tanto la solicitud como la respuesta al validador SSI para generar una respuesta.
  13. El Validador SSI verifica todos los parámetros de respuesta necesarios, como desafío, origen, etc.
  14. El Validador SSI busca la clave pública de la credencial nombrada por response.id.
  15. El Controlador de Acceso obtiene la clave pública de usuario del SSI Ledger.
  16. El Controlador de Acceso aplica la clave pública del usuario para verificar la firma de autenticación.
  17. La aplicación devuelve los resultados de la ceremonia en forma de un objeto POJO que incluye el DID, el nombre de usuario y el identificador, la identificación de la credencial y el nuevo contador de firmas para la credencial.
  18. El Validador SSI verifica los resultados de la ceremonia de autenticación y ejecuta una acción apropiada.
  19. En el caso de una autenticación fallida, se envía un informe de error al usuario.
  20. En el caso de una autenticación exitosa, el validador del lado del servidor actualiza el contador de firmas en la base de datos de usuarios.
  21. Finalmente, el validador del lado del servidor recupera el ID de sesión almacenado (Punto 2) para enviar una respuesta que permite al Agente de Usuario redirigir a la página solicitada.

¿Qué ventajas nos ofrece SSIDO?

ESTA ES LA VALORACIÓN DE LOS EXPERTOS 

FIDO tiene una base de usuarios sustancial, es bien conocida y apoyada por partes importantes. Crear un estándar transparente y abierto basado en él para facilitar los ecosistemas de SSI será un gran paso adelante.

SSI Evaluator

Este es un enfoque innovador con alto potencial.

SSI Evaluator

– Estoy completamente de acuerdo con el enfoque general de ser un componente compatible con FIDO. Esto ayudará con la portabilidad y la integración con los ecosistemas existentes.

SSI Evaluator

YA NOS QUEDA MENOS