02/08/2019 | Blockchain,Desarrollo de software,Tecnologías

El trabajo de identidad digital en Alastria

Hoy vamos a hablar de la “¡Identidad Digital Soberana!” (SSI, por sus siglas en inglés). Y no, no es una inteligencia artificial omnipotente que va a gobernarnos a todos. Es un sistema muy útil para nuestro día a día.

Este concepto hace referencia a la idea de poder tener todos los datos que forman parte de la identidad de cada individuo controlados y manejados por sí mismo. Cada persona podrá decidir quién y qué saben los demás de ella. Para hacer esto se están desarrollando múltiples soluciones, generalmente con tecnologías blockchain, en varias partes del mundo. Casi todas ellas se basan en propuestas en las que los datos personales están encriptados en smartphones y desde estos, gracias a una aplicación, el usuario puede controlar el acceso a sus datos y las transacciones que se realizan con ellos.

La solución de identidad digital en la que hoy nos vamos a centrar es AlastriaID, que se plantea como un estándar de Identidad Digital Soberana sustentado en blockchain, creada en el ámbito del ecosistema Alastria. AlastriaID está siendo desarrollado en Madrid por un grupo de desarrolladores de múltiples empresas colaboradoras, entre las que nos encontramos nosotros, Tribalyte Technologies, y del cual yo mismo formo parte. Por tanto, no perdamos más tiempo y… ¡vamos a explicar como funciona!

 AlastriaID

El trabajo en Alastria para la Identidad Digital Soberana se centra en realizar unos Smart Contracts que permiten el trazado de transacciones de datos off-chain en la blockchain, de manera segura y anónima para los agentes externos a la transacción. Así pues, los datos enviados no viajan a través de la blockchain, pero en esta si se traza la transacción realizada para asegurar su legalidad. Para comprender el funcionamiento básico pasamos a explicar el modelo de AlastriaID.

El modelo

El modelo de AlastriaID se basa en tres roles principales:

  • Issuers: Son las entidades que certifican cierto datos acerca de los usuarios. Por ejemplo: La DGT puede ser un «issuer» que certifique que la obtención del carnet de conducir en cierta fecha.
  • Service Providers: Son los proveedores con los que el usuario quiere compartir ciertos datos para recibir ciertos servicios. Siguiendo con el ejemplo de antes: Una empresa de alquiler de coches que necesita tu fecha de carnet de conducir.
  • Users: Son los usuarios que poseen sus datos, deciden a quién y cuáles de ellos comparten.

Pensemos en un caso de uso. Yo, Álvaro, como user quiero abrir una cuenta bancaria en una entidad A, que sería nuestro service provider (SP). Para ello, la entidad A me hace una “Presentation Request”, es decir, me solicita ciertos datos para poder darme de alta. Yo, como usuario, tengo 2 de los datos que me piden, estos datos se llaman “Crendentials”, y me falta uno más que no tengo. Por tanto llamo a alguna entidad que pueda tener este dato sobre mí. Esta otra entidad (entidad B), hará de issuer y nos mandará la “Credential” con el dato que nos faltaba. Una vez tengo todos los datos, creo una “Presentation” con los datos pedidos por el service provider en su “Presentation Request” y se lo mandaré. En ese momento el banco tendrá los datos necesarios para abrirnos la cuenta.

Este modelo nos proporciona grandes ventajas, ya que son los usuarios quienes controlan sus propios datos y, además, una vez dichos usuarios poseen esta información certificada, pueden reutilizarla constantemente sin necesidad de rellenar múltiples formularios o papeles en cada operación.

El trabajo en el equipo de desarrollo

Además del modelo y los Smart Contracts, en Alastria estamos desarrollando una implementación de referencia de AlastriaID. Esta incluye una aplicación móvil o «wallet» para la gestión de los datos por parte del usuario. Además de una librería para interactuar de una manera más sencilla con la blockchain.

Desde Tribalyte nos encargamos principalmente del desarrollo de la aplicación, cuyo desarrollo está basado en Ionic Framework.

A día de hoy, esta aplicación realiza la comunicación desde SP a usuario a través de códigos QR. Estos códigos contienen unos «tokens» con la información personal codificada y firmada. Esto permite tanto al usuario como al Service Provider asegurar que la persona con la que están compartiendo los datos es quien dice ser. 

Debido a esta comunicación por QR, por ahora únicamente se pueden realizar transacciones desde la aplicación web o tablet de un service provider a un smartphone del usuario. Sin embargo en próximas iteraciones de la misma, se podrá comunicar estos datos entre aplicaciones del mismo teléfono o incluso con notificaciones push, así mejorando la usabilidad.

Una vez que el usuario lee el QR generado por el Service Provider, confirma que es quien dice ser, genera los datos solicitados, los firma y los codifica los manda a un endpoint que el SP especificó en la información del QR. Cuando cualquier transacción de este tipo se realiza se crea un transacción en la blockchain para dejar perfectamente trazado el suceso.

Ya que todos los datos personales del usuario estarán en un dispositivo móvil, estos datos se almacenarán cifrados de manera segura en el dispositivo. Será necesario tener algún tipo de bloqueo de seguridad en el smartphone para poder utilizar la aplicación. A día de hoy, la implementación de esta seguridad viene dada por un plugin de Cordova, llamado secure-storage. En posibles versiones futuras de la aplicación se podrían utilizar métodos aun más avanzados para proteger los datos.

 Conclusiones

El trabajo de AlastriaID avanza día a día. Su desarrollo es muy prometedor y ¡dará mucho que hablar en próximos meses!

Además del trabajo técnico, hay gran cantidad de trabajo conceptual para asegurar la validez legal de este sistema y poder integrarlo en la vida cotidiana de todos los ciudadanos. Todo este trabajo mejorará nuestra privacidad, además de facilitar y agilizar todos los trámites que deseemos hacer.

Esto ha sido todo por hoy. Muchas gracias por leer esta entrada, y nos vemos más pronto que tarde…

Compartir en:

Relacionados