A quién no se le pasó por la cabeza realizar la autenticación de un usuario con un dispositivo USB. Tú llegas a un equipo, enchufas el pen y automáticamente el sistema detecta qué usuario eres y te permite el acceso. Esto, además de práctico es perfecto. Cada pen es realmente un usuario y en entornos universitarios, que solían regalarte un dispositivo de estos, pues quedaría muy bien.
En GNU/Linux conseguir es relativamente sencillo, lo único que se necesita en el dispositivo ("el usuario"), previamente creado y mucha imaginación, ya que, con tiempo, hay muy pocas cosas imposibles.
Para empezar, instalaremos las librerías necesarias. Como siempre, partimos de nuestra distro preferida y tiramos de repositorios oficiales.
Para empezar, instalaremos las librerías necesarias. Como siempre, partimos de nuestra distro preferida y tiramos de repositorios oficiales.
shell> apt-get install libpam-usb pamusb-tools
Una vez instalado el software necesario sólo queda crear el token de autenticación en dicho dispositivo. Para simplificar la tarea, yo recomiendo que sólo se conecte un dispositivo al sistema y así simplificar las cosas y evitar equivocarse. Aunque nos equivocásemos la información del pen no se perdería, por eso no habría problema. La información extra que vamos a introducir no realiza cambios en el sistema de ficheros. Para crear el token:
shell> pamusb-conf --add-device token Please select the device you wish to add. * Using "SanDisk U3 Cruzer Micro (SanDisk_U3-0:0)" (only option) Which volume would you like to use for storing data ? * Using "/dev/sdf1 (UUID: A3AD-3572)" (only option) Name : token Vendor : SanDisk Model : U3 Cruzer Micro Serial : SanDisk_U3_Cruzer_Micro_25851207EFD19790-0:0 UUID : A3AD-3572 Save to /etc/pamusb.conf ? [Y/n] Y Done.
Ahora asociamos el token creado con un usuario concreto. En mi caso con el usuario javier. Toda esta información se está almacenando en el fichero /etc/pamusb.conf y podría ser consultada o exportada a otros equipos, lo que garantizaría que esta operación aquí descrita sólo hubiera que realizarla en un único equipo la primera vez.
shell> pamusb-conf --add-user javier Which device would you like to use for authentication ? * Using "token" (only option) User : javier Device : token Save to /etc/pamusb.conf ? [Y/n] Y Done.
Ahora, antes de realizar los cambios en el sistema para que permita la autenticación vía USB, vamos a comprobar que todo quedó correcto. Aquí lo importante es conseguir que todo esté correcto (Access granted), que será lo que nos garantice que todo funcione. Una salida correcta, sería la que se ve a continuación.
shell> pamusb-check javier * Authentication request for user "javier" (pamusb-check) * Device "token" is connected (good). * Performing one time pad verification... * Regenerating new pads... * Access granted.
Tras esto, únicamente queda indicarle a pam que la autenticación de los usuarios la realice también a través del módulo usb, que se llama pam_usb.so. Para ello, hay que editar el fichero /etc/pam.d/common-auth y añadirle la siguiente línea:
auth sufficient pam_usb.so
Tras ello, salimos de la sesión y comprobamos que se puede iniciar perfectamente sesión al introducir el pen en el equipo en la pantalla de login y también desbloquear una sesión ya iniciada.
Hay que recordar que en este proceso en ningún momento se altera el contenido del sistema de ficheros del dispositivo y aunque se intentanse realizar una copia bit a bit del pen, no se podría copiar el usuario por que los datos asociados son el fabricante, el UUID del dispositivo y el Nº de serie, una combinación que cuando menos se considera difícil de replicar.
Con lo dicho aquí y lo escrito en otro post sobre UUID no sería demasiado complejo asociar un pen con la home de usuario y con su autenticación.
No hay comentarios :
Publicar un comentario