jueves, julio 11, 2019

RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 5 de 5)

La última fase de este proceso consiste ya en comprobar el funcionamiento de Rubika como un sistema de autenticación Anti-Rubber Hose en un entorno real basado en una página web. Para ello hay que tener presente que, para evitar falsos positivos, en lugar de utilizar la resolución del cubo de Rubika como una forma de identificación, la utilizamos como una forma de autenticación.

Figura 44: RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 5 de 5)

Es decir, en lugar de hacer una resolución ante el sistema de login y que la plataforma reconozca al usuario por cómo lo resuelve - al igual que sería un sistema de autenticación biométrica - lo que hacemos es que la resolución biométrica de Rubika es como si fuera una contraseña, que es lo que estaba explicando justo en esta foto de la presentación de Open Expo Europe 2019.


Así, aunque una persona hiciera una resolución de un cubo que por casualidad encajara en un conjunto cualquiera al azar, solo serviría si se supiera que ese conjunto de resoluciones de Rubika está asociado a una persona concreta. Algo así a como funcionan las contraseñas. En un sistema tradicional dos personas pueden tener la misma contraseña pero nunca el mismo id. Es decir, las passwords son suprayectivas.

Figura 46: Registro de una nueva cuenta en Cube Auth (nuestra web de prueba de Rubika)

Solo si se acierta con la tupla correcta se produce la autenticación, tal y como os explique en un post muy, muy, muy antiguo que decía que "Tus passwords son suprayectivas". Por eso, cuando damos de alta un usuario le damos de alta 10 entrenamientos de Rubika tal y como si "escribiera" 10 veces su contraseña.

Figura 47: Instrucciones para crear tu "contraseña" usando Rubika o Giiker

El proceso exige que se conecte un cubo Rubika o un Giiker y comenzar a resolverlo un total de diez veces, y en este vídeo tienes el proceso completo hecho por nuestro compañero Víctor - otro que ha tenido que aprender a resolver el cubo de Rubik en ElevenPaths -


Figura 48: Proceso de entrenamiento con Rubika para dar de alta a un nuevo usuario

Una vez que está entrenado el algoritmo para reconocer los patrones de un determinado usuario, el proceso es bastante intuitivo. Se va a la página de inicio de sesión y el usuario introduce su ID de Login - en este caso un correo electrónico  -. Después, el sistema le reta no a introducir una password sino a resolver el Cubo de Rubik con un patrón que encaje con el que entrenó el usuario.

Figura 49: Login en el proceso de Cube Auth

Y el resultado completo es algo como lo que podéis ver en el siguiente vídeo donde nuestro compañero se autentica en el sistema resolviendo el cubo con nuestro Rubika.


Figura 50: Autenticación correcta con Rubika

El proceso final no solo tiene un valor binario de sí o no, sino que además da información del porcentaje de precisión con el que el algoritmo ha identificado esa resolución dentro del conjunto de resoluciones que aprendió durante el proceso de entrenamiento.

Figura 51: Autenticación correcta con un resultado de 0.9486 de precisión

Y lo mismo cuando la autenticación no es correcta. Si el usuario intentar autenticarse con un patrón que no corresponde al que el algoritmo de Machine Learning aprendió durante el proceso de aprendizaje, el sistema rechazará el acceso.


Figura 52: Autenticación incorrecta con Rubika

Y de igual forma obtendremos el valor de similitud con el algoritmo de ese sistema. En este caso de menos de un 30%. Con ese simple valor podríamos crear un sistema robótico controlado con una GAN que pudiera saltarse este sistema de autenticación - si tuviera intentos infinitos - así que ya tenemos proyecto para el futuro.

Figura 53: Autenticación incorrecta.

Y así está, tenemos un factor de autenticación basado en patrones aprendidos que permite utilizar a una persona y que puede usarse como 1FA, 2FA o 3FA. Es decir, como desafío que cualquier sistema quiera emplear. Aunque la verdad, no creo que sea el sistema de autenticación elegido para las empresas, pero seguro que se os ocurren muchas cosas chulas que hacer con cosas similares - como por ejemplo un Criptex -

Conclusiones

El trabajo que os he contado por aquí ha sido fruto de muchos años trabajando muchas personas a ratos libres. Conectando puntos. Probando cosas. Enrique probando con el algoritmo. Jorge y Álvaro probando el hardware y la electrónica. Pablo diseñando la plataforma. Y muchos más compañeros imprimiendo en 3D, resolviendo el Cubo de Rubik, programando la web, etc... Un trabajo en equipo que al final ha quedado precioso.

Al final, como dije en la presentación que os colgaré pronto, hacer cosas nuevas consiste en seguir siempre avanzando en la línea de trabajo. Unir los puntos del pasado y hacer algo nuevo. Seguir intentándolo. Inventar algo nuevo dándole una vuelta de tuerca a lo que ya se ha hecho. Y que no hay nada más bonito que hacer realidad cosas que el género de "Ciencia Ficción" nos ha enseñado en pasado, y hacerlo en equipo, con gente que comparta tu misma pasión.

Saludos Malignos!

**************************************************************************************************
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 1 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 2 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 3 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 4 de 5)
- RUBIKA: Un sistema Anti-Rubber Hose basado en un cubo de Rubik (Parte 5 de 5)
**************************************************************************************************

1 comentario:

  1. Majestuoso! Me encantó esta seríe de posts! Felicitaciones Chema y equipo.

    ResponderEliminar