El proyecto "VIDchain: Identidad soberana global y confiable basada en blockchain" tiene como reto tecnológico poner en funcionamiento uno de los primeros sistemas en España y en el mundo que implementen un caso de uso real basado en la filosofía self-sovereign identity. Existen algunas pruebas de concepto, pero por ahora ninguna que incluya todas las piezas del rompecabezas.

Mediante el proyecto VIDchain, nuestro principal objetivo es crear una solución integral desarrollando herramientas, librerías open-source y servicios profesionales que permitan al usuario gestionar su identidad soberana (SSI) garantizando un máximo nivel de privacidad, recuperar el control de su identidad mediante el uso de un sistema descentralizado y acceder a cualquier servicio en línea de una manera más rápida, más segura y confiable.

Self-sovereign identity (identidad auto-soberana)

La Identidad auto-soberana (o Self-Sovereign identity, SSI) es una nueva forma de pensar sobre la identidad digital, basada en el principio de que los individuos deben tener el control de su identidad digital y sus datos asociados (credenciales).

El mismo concepto de SSI, de hecho, significa que el individuo en sí (o bien la propia organización) puede gestionar los elementos que conforman su identidad y controlar digitalmente el acceso a las credenciales mencionadas.

Con este sistema, por lo tanto, el poder de controlar los datos personales residen en el propio individuo y no en un tercero.

Al basarse en normas y especificaciones abiertas, el ecosistema emergente SSI (wallets, protocolos, servicios SSI, SDK, etc.) tiene el potencial de ser interoperable por defecto, creando así un entorno de mercado colaborativo y competitivo a la vez. En este ecosistema los ciudadanos pueden interactuar libremente con los proveedores de servicios SSI, los cuales pueden utilizar diferentes proveedores de tecnología, pudiendo incluso pasar de una solución de un proveedor a otro sin perder el control de sus datos (portabilidad).

SSI permite pues la creación de una identidad digital portátil, interoperable, que puede utilizarse para todo, desde simples solicitudes de autenticación con una sola credencial (por ejemplo, el inicio de sesión de servicio), hasta tareas como el intercambio de datos de identidad para solicitudes más complejas (por ejemplo, llenar formularios digitalmente).

VIDchain

Gracias a la financiación obtenida con este programa, Validated ID está desarrollando VIDchain, un conjunto de servicio SSI para empresas consistente en:

  • VIDwallet, una aplicación para que los usuarios puedan tener credenciales verificables (VC) W3C y generar y gestionar el DID del usuario.
  • VIDconnect, un proveedor OpenID qué es capaz de realizar autenticación mediante DIDs.
  • VIDcredentials, un servicio que permite la gestión de VC (solicitud y envío de credenciales).

VIDchain se está desarrollando con la intención de ser lo más tecnológicamente agnóstico posible en el que consta el tipo de tecnología DLT empleada.
Inicialmente se ha empezado a trabajar con diferentes tipos de redes basadas en la EVM, como la propia Ethereum, Hyperledger Besu (Alastria y EBSI) o Quórum (Alastria), y se irá ampliando a otras tecnologías, como por ejemplo Hyperledger Indy.

OpenID Connect

Garantizar y facilitar el acceso a la identidad descentralizada es uno de los objetivos perseguidos con este proyecto.

Es por ello que estamos desarrollando un componente OpenID que permita la reutilización de sistemas existentes como OAuth2/OpenID Connect en los emisores y verificadores de credenciales. Validated ID desplegará un proveedor OpenID (Authorization server) para que los usuarios que disponen del ID Wallet puedan autenticarse con él. Una vez autenticado, el Broker devolverá al usuario un token OAuth2 compatible con los sistemas existentes del proveedor de servicios.

En el mismo proceso se podrán solicitar credenciales verificables que serán transportadas dentro del flujo OpenID en junto al o en un campo específico.

El funcionamiento será muy parecido al uso que estamos acostumbrados al usar servicios de identificación mediante Google o Facebook:

El usuario, al querer acceder a un recurso web de una entidad, y éste le propone autenticarse mediante VIDchain (1). Para ello, usa un cliente estándar OpenID Connect, y lo redirige al proveedor OpenID de VIDchain (2). Aquí, el proveedor OpenID en lugar de solicitar un usario/contraseña como en los proveedores OpenID actuales (véase Google, Facebook…) se solicitará una autenticación vía Verifiable Credential (3), en la que el usuario se autenticará mediante sus claves criptográficas almacenadas en su wallet. El componente VIDchain OpenID Provider se encargará de validar la autenticación del usuario (4) y si es válida, devolverá un id_token estándar a la aplicación web (5), para que decida si puede o no acceder (6) al recurso solicitado.

Confidential storage

Dentro del marco del proyecto, una de las piezas importantes es el desarrollo de un componente de almacenamiento seguro de datos.

Las credenciales de identidad de las entidades (personas, organizaciones u objetos) pueden requerir en muchos casos de un repositorio seguro donde almacenarlas.

Este componente es un sistema de almacenamiento seguro local o remoto que respeta la privacidad para almacenar, indexar y recuperar datos cifrados en un proveedor de almacenamiento. Suele ser útil cuando una persona u organización quiere proteger los datos de forma que el proveedor de almacenamiento no pueda verlos, analizarlos, agregarlos o revenderlos.

Mediante este planteamiento se busca garantizar que los datos almacenados sean portables y privados en todo momento.

Exigir el cifrado del lado del cliente para todos los datos y metadatos y, al mismo tiempo, permitir que el usuario almacene los datos en múltiples dispositivos y los comparta con otros, al tiempo que se pueden realizar búsquedas o consultas, ha sido históricamente muy difícil de implementar en un sistema. A menudo se hacen concesiones que sacrifican la privacidad en favor de la usabilidad, o viceversa. Gracias a la madurez de las tecnologías y los estándares, este tipo de compromisos ya no son necesarios y es posible implementar protocolos para el almacenamiento descentralizado de datos cifrados que mantengan la privacidad.

Las cuatro funcionalidades siguientes se han identificado como las más esenciales a implementar en un sistema de almacenamiento:

  • Almacenamiento y utilización de datos
  • Búsqueda de datos
  • Compartir datos con una o más entidades
  • Almacenar los mismos datos en más de un lugar

CDTI / CERVERA

El expediente de CDTI asignado al proyecto es IDI-20210030 y el período de ejecución es del 1 de julio de 2020 a 30 de junio de 2022. Este proyecto está cofinanciado por el Centro para el Desarrollo Tecnológico Industrial


Xavier Vila Pueyo
Product Manager en Validated ID