Skip to content

Continuous authentication via Bluetooth Low Energy with Android and Node.js

License

Notifications You must be signed in to change notification settings

nicslabdev/BLEAuthentication

 
 

Repository files navigation

Bluetooth Low Energy Continuous Authentication

Hoy en día, una de las principales metas de la seguridad informática es la veri cación de la identidad de las personas que hacen uso de aplicaciones o que acceden de forma física a su lugar de trabajo habitual, este proceso se conoce como autenticación de usuarios. Frente a las tecnologías tradicionales como las contraseñas (algo que el usuario conoce ) o el uso de tarjetas inteligentes (algo que poseen ), aparece la necesidad de diseñar una solución que permita no sólo comprobar la identidad del usuario en un momento dado (la mayoría de las veces al acceder a la aplicación, lo que abre la puerta a posibles sustracciones de identidad), sino durante todo el periodo de uso del servicio. Estas técnicas deben ser poco intrusivas en la rutina de la persona, y a la vez conseguir una identi cación unívoca, reduciendo la probabilidad de suplantación de identidad. Otro aspecto importante a considerar es el respeto a la privacidad de los usuarios, debiéndose evitar que elementos externos al sistema puedan conocer los patrones de uso de sus usuarios o hacer un seguimiento efectivo de estas.

Este proyecto se circunscribe en el ámbito de la seguridad informática y pretende estudiar una posible implementación de un protocolo de autenticación de dichas características. Concretamente, su foco principal es la utilización de dispositivos inalámbricos (p. e. móvil) para estudiar el potencial impacto sobre la privacidad de las personas, su usabilidad y la aplicación en escenarios concretos.

Archivos ejecutables y ficheros del proyecto:

  • Cliente (aplicación móvil): se adjunta el proyecto creado con Cordova, donde en la carpeta www está el contenido web de la aplicación y los cheros de Javascript necesarios para la conexión Bluetooth. Dicha aplicación posee un perfil de usuario de demo, a emplear en la presentación del proyecto.
  • Servidor: para su puesta en marcha se requiere configurar varios elementos y actualizar varias rutas absolutas en el código de la aplicación. En el CD se adjuntan todos los cheros necesarios para poner en funcionamiento los distintos componentes a ejecutar como procesos demonio en un sistema Ubuntu (dentro de la carpeta daemon en cada componente), excepto de la base de datos de la aplicación, que es necesaria con gurar para la gestión de los perfiles de usuario:
    • Servidor bleno con Node.js para la autenticación por Bluetooth: para hacerla funcionar es necesario copiar el fichero de configuración situado dentro de daemon a /etc/init (con esto se con gura como demonio) o ejecutarlo con Node.js. Previamente es necesario modificar la ruta del ejecutable bleauth.js dentro de ese fichero por la ruta donde se haya copiado.
    • Servidor Node.js para el panel de control: al igual que el anterior, es necesario modificar la ruta del ejecutable controlpanel.js dentro del fichero con extensión .conf y luego copiarlo a la ruta /etc/init para configurarlo como proceso demonio. También es preciso cambiar la ruta de la plantilla de la lista negra en la función addUserToTemplate y deleteUserFromTemplate dentro del fichero io.js (carpeta lib).
    • Shell script para el bloqueo/desbloqueo de la pantalla: de igual forma, es necesario actualizar la ruta dentro del fichero .conf de la carpeta daemon para luego copiarlo a /etc/init. Además, es necesario hacer lo propio con la ruta del chero login.users.denied (plantilla de la lista negra del módulo PAM) dentro del archivo monitor.sh.

Por otro lado, base de datos de la aplicación en el servidor. Para la primera tarea, basta con modi car el fichero de configuración de PAM para la autenticación de usuarios en el sistema, situado en /etc/pam.d/common-auth. En ese archivo insertaremos la siguiente línea para especificar que la autenticación del sistema será del tipo lista negra, dando la ruta al fichero que listará aquellos usuarios que tengan que autenticarse con la aplicación móvil:

auth required pam\_listfile.so onerr=fail item=user sense=deny file=/etc/login.users.denied

En segundo lugar, para preparar la base de datos de forma que sea accesible por Node.js, es necesario crear una base de datos con nombre TFGdb y dentro de ella una colección llamada users . En el siguiente enlace es posible obtener más información acerca de la línea de comandos que proporciona MongoDB: http://docs.mongodb.org/manual/reference/

About

Continuous authentication via Bluetooth Low Energy with Android and Node.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 59.2%
  • C++ 14.6%
  • JavaScript 13.5%
  • Objective-C 4.7%
  • C# 3.1%
  • HTML 2.5%
  • Other 2.4%