Chapter 8 Conclusions and Future Work
8.1 Future Work
Slash and Pair es un sistema que funciona a trav´es de la web, y una de sus carac- ter´ısticas principales es el emparejamiento de dos sesiones de navegaci´on distintas. La sesi´on se establece en el momento en el que un usuario se conecta utilizando un navegador al servicio web Slash and Pair. Como se ha detallado anteriormente, Slash and Pair est´a formado por dos proyectos, que proporcionan dos p´aginas web distintas, estas p´aginas generan dos valores de sesi´on distintos e independientes en el momento en el que alg´un usuario se conecta.
Este apartado se refiere a las cuestiones relacionadas con el enlace de las sesiones de ambos proyectos a trav´es del sistema Slash and Pair. En resumen, el enlace se formaliza en el momento en el que el usuario introduce el c´odigo que es generado por Desktop en el entorno de Mobile.
Esta relaci´on de sesiones web genera vulnerabilidades, ya que, si se utiliza un c´odigo un atacante puede intentar encontrar ese c´odigo para falsear la sesi´on de un usuario.
4.4.3.4.1 4 d´ıgitos
Los c´odigos de 4 d´ıgitos est´an ampliamente extendidos. En un c´odigo de 4 d´ıgitos existen 10.000 posibles combinaciones, si contamos que de los 4 d´ıgitos posibles tenemos una franja entre los valores 0-9.
La complejidad a nivel de implementaci´on no es muy alta. El desarrollador ha de utilizar un generador de n´umeros aleatorios. En el caso de Slash and Pair que est´a desarrollado en Java, ser´ıa posible realizar esta tarea aprovechando el paquete de Java “Random”.
Si seguimos analizando la complejidad en cuanto a la implementaci´on de este tipo de autenticaci´on (ya se ha analizado la complejidad de generar el c´odigo), ahora se procede a analizar lo costoso de permitir al usuario introducir el c´odigo.
El usuario s´olo podr´a interactuar a trav´es del navegador, por lo tanto, habr´a que utilizar las herramientas provistas por un HTML. Para permitir al usuario introducir un c´odigo de 4 cifras se puede utilizar un cuadro “input” de tipo num´erico.
En cuanto a la usabilidad, para el usuario es sencillo recordar un c´odigo de 4 d´ıgitos para introducirlo en el lado Mobile. La memoria a corto plazo permite recordar una serie de aproximadamente 7 elementos hasta una duraci´on de aproxi- madamente 30 segundos [33].
Tan s´olo es necesario visualizar el cuadro de texto que le permita introducir los d´ıgitos mostrados habi´endolos visualizado previamente en Desktop.
Si analizamos el factor de seguridad, en cuanto a probabilidades es posible uti- lizando m´etodos de fuerza bruta encontrar un pin v´alido ya que son limitadas las combinaciones posibles.
4.4.3.4.2 Sincronizaci´on mediante Patr´on
Un patr´on es una combinaci´on de nodos situados en forma de matriz cuadrada como se muestra en la figura 9. Los nodos se pueden conectar entre ellos utilizando la pantalla t´actil. Se desliza el dedo por encima de cada uno de ellos siguiendo una serie de reglas b´asicas:
Figura 9: Ejemplo patr´on desbloqueo de un smartphone. • Para que el patr´on sea v´alido hay que unir como m´ınimo 4. • Un nodo ya marcado no se puede marcar otra vez.
• No se puede atravesar un nodo sin marcarlo. • Se puede comenzar desde cualquier nodo. • Se permiten las diagonales.
Utilizando estas reglas descritas, se calcula el n´umero de posibles combinaciones que se pueden utilizar y el resultado es de 389.112 patrones distintos [34].
Para realizar la implementaci´on del patr´on dentro de Slash and Pair, lo primero que se debe definir es una generaci´on aleatoria del patr´on para que sea ´unico de ese usuario. Una vez realizado el patr´on aleatorio, hay que generar una matriz que se corresponda al patr´on anteriormente generado y generar una imagen, para que se le muestre al usuario a modo de gu´ıa del trazo que deber´a definir en la web Mobile. Otro factor a tener en cuenta es como se codifica el patr´on, como se estructurar´an los datos para poderlos guardar, tratar y comparar. Debido a que la informaci´on que contiene el patr´on es una secuencia de gestos en los que el orden importa, esta cuesti´on es importante solventarla.
Finalmente, en el lado Mobile es necesario implementar usando HTML una ma- triz con los 9 nodos para que el usuario pueda introducir el patr´on que ha generado Desktop.
A nivel de usabilidad para los usuarios, a trav´es del software se deber´ıa hacer un esfuerzo para que los patrones generados no sean dif´ıciles. Debido a que la generaci´on aleatoria implica que cualquier gesto que cumpla las normas establecidas anteriormente puede ser v´alido, puede haber una serie de c´odigos realmente dif´ıciles de reproducir [35]. Por lo tanto, la usabilidad del patr´on depender´a de c´omo se ha generado y el n´umero de nodos a enlazar y esta caracter´ıstica no es deseable cuando
Si analizamos el factor de seguridad, tambi´en es posible utilizar fuerza bruta para encontrar un patr´on v´alido y secuestrarlo. Las combinaciones son elevadas respecto al c´odigo de 4 d´ıgitos.
4.4.3.4.3 Sincronizaci´on mediante c´odigo QR
Un c´odigo QR (Quick Response Code) es un c´odigo de barras bidimensional cua- drado, que puede almacenar datos de forma codificada. Esta matriz se puede leer a trav´es de un dispositivo m´ovil utilizando lectores espec´ıficos. Presenta tres cua- drados en las esquinas que permiten detectar la posici´on del c´odigo al lector como se puede ver en la figura 10.
Figura 10: Ejemplo de c´odigo QR.
La implementaci´on del c´odigo QR implica dos factores. El sistema Desktop debe poder generar la imagen del c´odigo a˜nadiendo la informaci´on que sea necesaria para que Mobile pueda descodificarlo e interpretarlo. Por otro lado, Mobile debe ser capaz de capturar el c´odigo QR a trav´es de la c´amara del smartphone del usuario. El factor de seguridad de un c´odigo QR es m´as elevada comparada con otros m´etodos de sincronizaci´on. Uno de los factores importantes es que la codificaci´on propia del c´odigo QR hace que los datos de sincronizaci´on no viajen en claro desde el servidor hasta el HTML que ver´a el usuario. Adem´as, los datos de sincronizaci´on son transparentes al usuario.
Tambi´en es determinante entender, que un c´odigo QR permite almacenar 7.089 caracteres num´ericos y 4.296 caracteres alfanum´ericos [36]. Esta caracter´ıstica eleva las posibles combinaciones de c´odigos a generar.
El c´odigo QR tiene una alta capacidad para incorporar claves de sincronizaci´on largas y realmente dif´ıciles de reproducir. Tratar de secuestrarlos a trav´es de fuerza bruta no es viable.