Instalar fingerprint Authentec en Linux Debian
Tuesday, January 22nd, 2008Hace algún tiempo mi amigo walter hizo funcionar el fingerprint de las IBM Thinkpad en debian; salvo, que este es un modelo y fabricante distinto; Authentec; empresa famosa ya que su fingerprint está en casi todos los modelos (desde Dell, Acer, HP, Compaq como el actual nx6320 que tengo; hasta modelos de mesa como los fabricados por APC, BioPod o incluso Microsoft).
El modelo es sencillo, viene en el lateral de mi actual HP Compaq nx6320 y como dije, comparte vida con la gran mayoría de los fingerprint comerciales.
Lo soporta mi fingerprint?:
Un lsusb lo demuestra:
>lsusb
Si dice:
Bus 001 Device 013: ID 08ff:2580 AuthenTec, Inc.
Has determinado que es un fingerprint authentec, por ende, esta guía es para tí.
Existen varias formas de hacerlo funcionar, el proyecto BioPOD, el proyecto BioAPI o uno más reciente (aun un poco inmaduro) llamado proyecto fprint (f print project); el proyecto consta de 3 cosas:
- Una Librería (libfprint) (el corazón de la aplicación)
- Un módulo para autenticación pam (pam_fprint) (para autenticarse en linux)
- y una aplicación GTK de pruebas (para validación y autenticación)
Para hacerlo funcionar hay que instalar muchas cosas: así que les recomiendo inicialmente leerse una guía de compilación de aplicaciones en linux.
Instalando lo básico:
Primeramente debemos ejecutar una larga lista de cosas a instalar (como los devel de gnome para poder compilar aplicaciones GTK, o la librería imagemagick para la creación de las huellas dactilares por el programa demo):
Si nunca en su vida han compilado algo, deben instalar:
aptitude install build-essential fakeroot gcc
Y luego si instalen lo que necesitamos:
aptitude install libgnomeui-0 libgnomeui-devlibgnomeprint-dev libgnome2-dev
aptitude install libgladeui-1-dev libglade0-dev libglade-gnome-dev libusb++-0.1-4c2 libusb++-dev libusb-dev
aptitude install imagemagick graphicsmagick-imagemagick-compat libgraphicsmagick++-dev libgraphicsmagick-dev
aptitude install imagemagick graphicsmagick libgraphicsmagick-dev libgraphicsmagick1-dev libmagick-dev libmagick9-dev
aptitude install libxv1 libxcb-xv0 libxcb-xv0-dev
Descargando los paquetes:
Como dije, los paquetes son 3;
libfprint: http://downloads.sourceforge.net/fprint/libfprint-0.0.5.tar.bz2?modtime=1197040114&big_mirror=0
pam_fprint: http://downloads.sourceforge.net/fprint/pam_fprint-0.2.tar.bz2?modtime=1195499996&big_mirror=0
fprint_demo: http://downloads.sourceforge.net/fprint/fprint_demo-0.4.tar.bz2?modtime=1195755056&big_mirror=0
Luego de descargados, procederemos a su compilación.
Compilando libfprint:
para compilar descomprimimos libfprint:
tar xvf libfprint-0.0.5.tar.bz2
cambiamos a la carpeta creada por la descompresión:
cd libfprint-0.0.5
y ejecutamos la compilación:
./configure –prefix=/usr –enable-shared –enable-examples-build –enable-x11-examples-build
make
make install
El make install procede a instalar la librería en el sistema; luego de ejecutar:
ldconfig
estamos listos para usar libfrint.
Probando libfprint:
Para probar libfprint necesitamos, dentro del fuente de libfprint, movernos a la carpeta examples
cd examples/
y dentro de esta, ejecutar dos aplicaciones; la primera
./enroll
Crea un png a partir de la huella dactilar que pase por encima del lector (si este es detectado).
y
./verify_live
que hace verificaciones (prueba el lector) para ver si es capaz de reconocer y luego, validar una misma huella (puede hacerse con cualquier dedo).
Como nota adicional, todas las pruebas deben hacerse como root (para poder acceder al dispositivo físico, el fingerprint, contenido en /proc/bus/usb).
Instalando fprint_demo:
Para instalar simplemente descomprimimos y compilamos:
./configure –prefix=/usr –with-gnu-ld
make
make install
y ejecutamos la aplicación:
fprint_demo
con el cual obtendremos una ventana semejante a esta:
Donde podemos hacer el enroll (reconocimiento) de cada una de nuestras huellas de cada dedo de ambas manos y luego, verificarlas con este práctico test (que incluso binariza la huella y computa y muestra los puntos de minutae o coincidencia de la huella); fijense que en el fondo de la app. pueden ver la lista de los dispositivos detectados y están listos para usarse.
Compilando y usando pam_fprint:
Compilar es simple, como los anteriores:
./configure –prefix=/usr –enable-shared –with-gnu-ld
make
make install
Para usarla, primero debemos hacer el “enroll” de cada uno de nuestros dedos como usuario; ejemplo, decidí darle fingerprint al usuario root; entonces:
su -
y luego:
pam_fprint_enroll –enroll-finger 7
El índice de dedos va desde la mano izquierda (mirando hacia arriba) a la derecha mirando hacia abajo (tal vez el desarrollador es zurdo!, jajaja); en este caso, 1 es pulgar izquierdo, 2 es índice izquierdo y así hasta terminar la mano; la mano derecha comienza en 6 con el pulgar y terminando en 10, con el meñique derecho; en mi caso, le hice enroll al dedo 7 (indice derecho).
Lo interesante de esto es que puedes identificarte con cualquier dedo de la mano; si haces enroll de todos los dedos, simplemente podrás autenticarte con todos los dedos (obvio que no a la vez, para aclarar!, jajaja).
Configurando PAM
Para configurar PAM simplemente editamos el archivo /etc/pam.d/common-auth y colocamos:
auth required pam_env.so
auth sufficient pam_fprint.so #esta linea es la de pam_fprint
auth sufficient pam_unix.so nullok_secure try_first_pass likeauth
auth required pam_deny.so
En algunos casos, si queremos solamente autenticación dactilar (y eliminar los passwords) removemos a pam_unix de la lista de autenticaciones (pero eso hará que más nadie sino ustedes puedan usarla); quitarle el “required” a pam_unix podamos o usar una forma u alternativamente otra; más las 2 no son necesarias (pongan ambas en required y tendrán un lindo sistema para neuróticos de la seguridad que pedirá ambas cosas!, xD).
Para probar si la autenticación pam funciona entonces simplemente abrimos una consola y escribimos:
su -
Scan right index finger on AuthenTec AES2501
(y haga su “swap finger” y espere el milagro)Ya debería funcionar para el resto de las aplicaciones; pero solamente hace falta una cosa (que publicaré despues que lo pruebe) es darle al usuario mortal acceso al dispositivo USB fingerprint (un detallito en debian de acceso al /proc/bus/usb para usuarios mortales); parchear el gnome-screensaver (para poder entrar a la maquina si se activa el screensaver) y darle acceso al GDM al dispositivo de fingerprint.
Como dije anteriormente, existen otros proyectos como bioPOD y bioAPI, que tambien los he probado y que prontamente realizaré una guia de los mismos.
Como verán el proyecto está algo “crudo”; tiene algunos bugs, algunas fallas (no diría fallas, pero esa manía de autenticarte con un mínimo de 12 minutae te obliga a recordar en que posición, angulo y velocidad pasaste el dedo, sino, quedas fuera!) y aun están en la versión 0.0.5 y por ende hay mucho camino por andar; pero en mi caso, ya tienen un colaborador adicional, yo!.
Espero disfruten como yo de entrar a su computador sin tener que recordarse compilados y mnemotécnicos passwords; el único riesgo aquí es que te corten el dedo para usar tu portatil!.
