Instalar fingerprint Authentec en Linux Debian

Hace 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!.

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 22 enero 2008 en Linux, PlanetaLinux. Añade a favoritos el enlace permanente. 22 comentarios.

  1. Epa, que buen paper vieja, voy a ver si termino la segunda parte del fingerprint para las lenovos t60. voy a probarlas con las HP que tenemos por aqui.

    Saludos y cromalo.

  2. Jajaja deja el perrismo. Voy a comprarme uno USB…si luis.

  3. Saludos Lara, una pregunta que repos tienes activos tengo ciertos paquetes como el “libgnomeui-devlibgnomeprint-dev” el cual no es listado en las busquedas del apt.
    alguna sugerencia?

  4. He solucionado algunas deppendencias via aptitude y poniendole orden a los repos, ahora el asunto es otro:

    No package ‘libcrypto’ found

  5. Hola, muy bueno esto, pero he tenido un problemas, esque al configurar con ./configure etc etc, da error, se puede configurar solo con ./configure. Despues tengo un problema al ejecutar ./enroll y ./veryfi_live
    Haber si pueden ayudarme, gracias

  6. MUY BUENO!!! Hace mucho que quería darle uso al lector de huellas pero no había podido. Muchas gracias!
    Una pregunta: solamente como root me levanta el lector de huellas cuando ejecuto fprint_demo, si lo ejecuto como usuario normal me dice que no puede acceder al dispositivo. Esto es correcto o hay algo que me falta configurar. Gracias nuevamente

  7. Si, aun no doy con el chiste de como darle uid al dispositivo USB para que un usuario “normalito” acceda a él … sigo investigando, si dás con la solución me avisas para poner el update.

  8. funka con el AES4000???

  9. Que tal amigo Lara, sabes quede en ir para las jornadas a que me instalaras el linux en mi maquina compaq nx6320, pero fíjate que descargue el instalador de ubunto de la red, lo instale yo mismo, configure el beryl ahora tengo todos los efectos grandiosos que no tiene linux, pero al momento de configurar el fingerprint me dio problema justo en las ultimas tres lineas si puedes ayudarme por favor te lo agradecería, ah también no he podido configurar la red wifii

    si puedes escribe a mi correo, gracias amigo y que viva el linux……

  10. ah disculpa estas son las lineas donde me quede

    ./configure –prefix=/usr –enable-shared –enable-examples-build –enable-x11-examples-build
    make
    make install

  11. Vicro, si, de hecho si funciona …

    Alexis, necesito saber que versión de Linux tienes y que errores te arroja …

  12. Bueno gracias por la info de verdad me funciono muy bien … Casi casi para algunos puede faltarle algunos detalles como a mi.

    Si puedes publicar algo mas sobre el uso de la herramienta y como cambiar de dedo, solo puedo con el pulgar izquierdo.
    y la parte de usar el PAM con el fprint_demo, no entiendo muy bien eso.

    Estos son.

    – En este paso Compilando libfprint
    Falta una libreria no me acuerdo bien pero … libxv-dev creo que es esa. Si no unos que se relacionen

    – En este paso Instalando fprint_demo
    aqui me da un error al hacer MAKE
    Comentar esta linea en fprint_demo-0.4/src/verify.c
    // get_window_set_deletable(GTK_WINDOW(dialog), FALSE);

    – En este paso Compilando y usando pam_fprint
    Faltan dependecia con gtk2.0 buscarlo e instalar … libgtk2.0-common y gtk2-engines-xfce

    Listo con todo eso me pudo funcionar.

  13. Mi linux es Ubuntu 8.04, alguna posibilidad de instalarlo en mi maquina?

  14. Pues me imagino que si; debido a que es un debian-based; solamente debes instalar todas las dependencias y herramientas de compilación (aunque por ser ubuntu, verifica primero no vaya a ser que libfprint ya esté en los repositorios de ubuntu).

  15. viejo me gustaria saber como hacer para un control de acceso verificar una huella contra muchas otras al solo scanear el dedo una sola ves

  16. hola buenas tardes excelente tu post, al realizar el make me genera un error
    imgdev.c:23:32: error: magick/ImageMagick.h: No such file or directory
    imgdev.c: In function ‘im_resize’:
    imgdev.c:93: error: ‘Image’ undeclared (first use in this function)
    imgdev.c:93: error: (Each undeclared identifier is reported only once
    imgdev.c:93: error: for each function it appears in.)
    imgdev.c:93: error: ‘mimg’ undeclared (first use in this function)
    imgdev.c:94: error: ‘resized’ undeclared (first use in this function)
    imgdev.c:95: error: ‘ExceptionInfo’ undeclared (first use in this function)
    imgdev.c:95: error: expected ‘;’ before ‘exception’
    imgdev.c:96: error: ‘MagickBooleanType’ undeclared (first use in this function)
    imgdev.c:96: error: expected ‘;’ before ‘ret’
    imgdev.c:105: error: implicit declaration of function ‘IsMagickInstantiated’
    imgdev.c:106: error: implicit declaration of function ‘InitializeMagick’
    imgdev.c:108: error: implicit declaration of function ‘GetExceptionInfo’
    imgdev.c:108: error: ‘exception’ undeclared (first use in this function)
    imgdev.c:109: error: implicit declaration of function ‘ConstituteImage’
    imgdev.c:109: error: ‘CharPixel’ undeclared (first use in this function)
    imgdev.c:113: error: implicit declaration of function ‘ResizeImage’
    imgdev.c:121: error: ‘ret’ undeclared (first use in this function)
    imgdev.c:121: error: implicit declaration of function ‘ExportImagePixels’
    imgdev.c:123: error: ‘MagickTrue’ undeclared (first use in this function)
    imgdev.c:128: error: implicit declaration of function ‘DestroyImage’
    make[2]: *** [libfprint_la-imgdev.lo] Error 1
    make[2]: se sale del directorio `/opt/libfprint-0.0.5/libfprint’
    make[1]: *** [all-recursive] Error 1
    make[1]: se sale del directorio `/opt/libfprint-0.0.5′
    make: *** [all] Error 2

  17. si es posible informarme al respecto lo agradezco gracias y disculpa las molestia

  18. Buenos días por la mañana muchas gracias por la respuesta Phenobartibal, pero efectivamente tengo la librería el problema esta cuando estas colocando –enable-x11-examples-build da un pequeño error porque en la estrutura de linux la letra “x” esta es en Mayúscula, por otro lado cuando estoy compilando con “make” me genera este error
    imgdev.c:23:32: error: magick/ImageMagick.h: No such file or directory
    imgdev.c: In function ‘im_resize’:
    imgdev.c:93: error: ‘Image’ undeclared (first use in this function)
    imgdev.c:93: error: (Each undeclared identifier is reported only once
    imgdev.c:93: error: for each function it appears in.)
    imgdev.c:93: error: ‘mimg’ undeclared (first use in this function)
    imgdev.c:94: error: ‘resized’ undeclared (first use in this function)
    imgdev.c:95: error: ‘ExceptionInfo’ undeclared (first use in this function)
    imgdev.c:95: error: expected ‘;’ before ‘exception’
    imgdev.c:96: error: ‘MagickBooleanType’ undeclared (first use in this function)
    imgdev.c:96: error: expected ‘;’ before ‘ret’
    imgdev.c:105: error: implicit declaration of function ‘IsMagickInstantiated’
    imgdev.c:106: error: implicit declaration of function ‘InitializeMagick’
    imgdev.c:108: error: implicit declaration of function ‘GetExceptionInfo’
    imgdev.c:108: error: ‘exception’ undeclared (first use in this function)
    imgdev.c:109: error: implicit declaration of function ‘ConstituteImage’
    imgdev.c:109: error: ‘CharPixel’ undeclared (first use in this function)
    imgdev.c:113: error: implicit declaration of function ‘ResizeImage’
    imgdev.c:121: error: ‘ret’ undeclared (first use in this function)
    imgdev.c:121: error: implicit declaration of function ‘ExportImagePixels’
    imgdev.c:123: error: ‘MagickTrue’ undeclared (first use in this function)
    imgdev.c:128: error: implicit declaration of function ‘DestroyImage’
    make[2]: *** [libfprint_la-imgdev.lo] Error 1
    make[2]: se sale del directorio `/opt/libfprint-0.0.5/libfprint’
    make[1]: *** [all-recursive] Error 1
    make[1]: se sale del directorio `/opt/libfprint-0.0.5′
    make: *** [all] Error 2
    entonces al principio de la compilación no me detecta un Header “Cabecera” magick/ImageMagick.h de ahí en adelante no me deja continuar disculpen la molestia pero ando configurando un capta huella que es de una empresa privada en debian Lenny 5.8 no he visto ningún material al respecto sobre el pero es una aventura para romper barreras
    Redencion:/opt/libfprint-0.0.5# lsusb
    Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 003: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x Composite Device
    la compañia es Bioscrypt modelo VPRX esta conectado vía usb a un Desktop
    muchas gracias por la ayuda

  19. muchas gracias phenobarbital agradecido reinstale los paquetes y pude resolver, ahora a configurar el dispositivo.

  20. Todo bien en ubuntu 11.04…solo que no puedo hacer q me pida solo una o el password o el lector, siempre me sale con ambas….xfa podrias detallar lo que tengo q editar en el pam.d

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: