Infra - Linux
fprint: Biometria livre, completa e total!
O pacote fprint, é uma opção totalmente open-source para o desenvolvimento de aplicativos utilizando a tecnologia de biometria digital. O pacote de integração permite a criação de processo de identificação e verificação de impressão digital para diversos modelos de leitores.
por Alessandro de Oliveira FariaO pacote fprint é o sonho de todo desenvolvedor de código aberto. O kit de integração permite o desenvolvimento de processos de identificação e verificação de impressões digitais. Um dos pontos fortes nesta solução open-source, é a compatibilidade com diversos modelos de sensores disponíveis no mercado.
Em Setembro de 2005 a doação um sensor biométrico Microsoft fingerprint iniciou o desenvolvimento do projeto dpfp. Onde o principal objetivo, era tornar possível o uso do mesmo na plataforma Linux (Instalando leitores de impressão digital modelo Digital Persona no Linux).
Forças/projetos paralelos extraíam imagens de outros sensores. Entretanto ainda nada era possível com estas imagens. Projetos open-source para processamento da imagem foram testados, mas por vários motivos não foi incorporado ao desenvolvimento principal.
Problemas com propriedade intelectual surgiram durante a jornada de trabalho. Após algum tempo, o projeto foi retomado como um trabalho Universitário, mais adiante publicado como Open-Source.
Conceito
A impressão digital é composta de linhas formadas pelas elevações da pele. A comparação por impressão digital é um método utilizado a mais de mil anos como forma de identificação de usuários. É uma característica única entre os seres humanos, inclusive entre irmão gêmeos univitelinos.
Formada ainda quando feto, a impressão digital acompanha a pessoa por toda a sua existência sem apresentar grandes mudanças. Extraindo os pontos característicos ou ponto de minúcias de uma impressão digital, um papiloscopista ou sistemas computadorizados podem identificar pessoas utilizando cálculos bastantes confiáveis.
São vários os tipos de impressões digitais, abaixo algumas imagens de diferentes digitais:
Sensores biométricos suportados pela biblioteca libfprint:
Vendor |
Product |
USB Vendor ID |
USB Product ID |
Driver |
ASUS |
F3Sv laptop embedded |
08ff |
1600 |
aes1610 |
ASUS |
R1F tablet embedded |
0483 |
2016 |
upekts |
Cherry |
SmartTerminal SFR-1244U |
0483 |
2015 |
upektc |
Covadis |
Alya |
05ba |
000a |
uru4000 |
Covadis |
Atria |
05ba |
000a |
uru4000 |
DigitalPersona |
U.are.U 4000 Reader |
05ba |
0007 |
uru4000 |
DigitalPersona |
U.are.U 4000B Reader |
05ba |
000a |
uru4000 |
Fujitsu-Siemens |
FP-Sensor S26381-K342-V1 GS:01 |
08ff |
2580 |
aes2501 |
Fujitsu-Siemens |
Lifebook S7110 |
08ff |
2580 |
aes2501 |
HP |
6510b laptop embedded |
08ff |
2580 |
aes2501 |
HP |
6710b laptop embedded |
08ff |
2580 |
aes2501 |
HP |
6910p laptop embedded |
08ff |
2580 |
aes2501 |
HP |
8710w laptop embedded |
08ff |
2580 |
aes2501 |
HP |
nc6400 laptop embedded |
08ff |
2580 |
aes2501 |
HP |
nx6125 laptop embedded |
08ff |
2580 |
aes2501 |
HP |
nx6325 laptop embedded |
08ff |
2580 |
aes2501 |
HP |
nw9440 laptop embedded |
08ff |
2580 |
aes2501 |
HP |
Pavilion dv6640ew laptop embedded |
08ff |
2580 |
aes2501 |
HP |
Pavilion tx1302au tablet embedded |
08ff |
1600 |
aes1610 |
IBM |
ThinkPad T43p embedded |
0483 |
2016 |
upekts |
IBM |
ThinkPad T61 embedded |
0483 |
2016 |
upekts |
IBM |
ThinkPad X41 embedded |
0483 |
2016 |
upekts |
IBM |
ThinkPad X60 embedded |
0483 |
2016 |
upekts |
Lenovo |
V100 laptop embedded |
08ff |
1600 |
aes1610 |
Lenovo |
3000 N100 laptop embedded |
08ff |
2580 |
aes2501 |
Medion |
MD85264 |
08ff |
2580 |
aes2501 |
Microsoft |
Keyboard with Fingerprint Reader |
045e |
00bb |
uru4000 |
Microsoft |
Wireless Intellimouse with Fingerprint Reader |
045e |
00bc |
uru4000 |
Microsoft |
Fingerprint Reader |
045e |
00bd |
uru4000 |
Microsoft |
Fingerprint Reader |
045e |
00ca |
uru4000 |
Precise Biometrics |
100 XS |
08ff |
2580 |
aes2501 |
Samsung |
P35 laptop embedded |
0483 |
2015 |
upektc |
Samsung |
X65 laptop embedded |
08ff |
1600 |
aes1610 |
Targus |
PA460U DEFCON Authenticator |
08ff |
5501 |
aes4000 |
Toshiba |
A-105 laptop embedded |
0483 |
2016 |
upekts |
UPEK |
Eikon |
0483 |
2016 |
upekts |
Veridicom |
5thSense |
061a |
0110 |
vcom5s |
Composição do pacote:
- libfprint: Biblioteca para desenvolvimento e integração em sistemas;
- pam_fprint: Pacote utilizado para autenticação e login em sistemas Linux;
- fprint_demo: Aplicativo para fins demonstrativo da libfprint;
- fprintd: Daemon (serviço) que utiliza o D-Bus (comunicação inter-processo) para facilitar a comunicação da libfprint com diversos aplicativos concorrentes.
Download e instalação
Abaixo os links para download do código-fonte, pacotes para o OpenSuse e Ubuntu.
Neste documento trabalharemos a partir da compilação do código fontes para compatibilizar o máximo possível as instruções para qualquer distribuição.
Código fonte (utilizado neste documento):
http://ufpr.dl.sourceforge.net/sourceforge/fprint/fprint_demo-0.4.tar.bz2 (exemplo no modo gráfico)
http://ufpr.dl.sourceforge.net/sourceforge/fprint/libfprint-0.0.6.tar.bz2 (fontes da biblioteca)
Pacotes OpenSuse:
http://download.opensuse.org/repositories/home:/dgege/openSUSE_10.3/i586/
Pacotes Ubuntu:
http://www.madman2k.net/comments/105
Instalação:
Após o download, devemos descompactar e extrair os arquivos fontes. Utilize o comando "tar -jxvf" como abaixo . Entre na pasta criada pelo comando tar (libfprint-0.0.6) e execute o comando "./configure" para configurar as diretivas de compilação para o seu ambiente.
$ tar -jxvf libfprint-0.0.6.tar.bz2 $ cd libfprint-0.0.6 $ ./configureExecute o comando "make" para efetuar a compilação na íntegra, a seguir transforme-se em super-usuário para efetuar a instalação da bibliotecas através do comando "make install" seguido do "ldconfig" conforme as instruções abaixo.
$ make $ su Senha: # make install # ldconfigPara finalizar este pacote, entre na pasta "example" e execute o comando "make" para compilar os códigos exemplos.
$ cd examples/ $ makeA compilação dos exemplos criará na pasta corrente programas para capturar a imagem do sensor, calcular o template biométrico e verificação da digital em tempo real.
Antes de executar quais quer um dos programas acima, em primeiro lugar plugue o sensor e execute o comando "dmesg" para constatar se tudo esta funcionando corretamente. Abaixo o resultado do comando ao plugar o meu sensor U.ARE.U 4000B.
$ dmesg usb 3-1: new full speed USB device using uhci_hcd and address 2 usb 3-1: new device found, idVendor=05ba, idProduct=000a usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=3 usb 3-1: Product: U.are.U 4000B Fingerprint Reader usb 3-1: Manufacturer: DigitalPersona, Inc. usb 3-1: SerialNumber: {BB353718-DFA3-B74C-A883-B8419AA53934} usb 3-1: configuration #1 chosen from 1 choicePara capturar imagens do sensor de impressão digital, basta executar o programa "img_capture" e logo após a mensagem encoste o dedo no sensor. Duas imagens serão geradas no disco (finger.pgm e finger_standardized.pgm). Veja a seguir o exemplo:
# ./img_capture Found device claimed by Digital Persona U.are.U 4000/4000B driver Opened device. It"s now time to scan your finger.Para cadastrar e calcular o template da sua impressão digital, execute o programa enroll como no exemplo abaixo:
# ./enroll
This program will enroll your right index finger, unconditionally overwriting any right-index print that was enrolled previously. If you want to continue, press enter, otherwise hit Ctrl+C
Found device claimed by Digital Persona U.are.U 4000/4000B driver
Opened device. It"s now time to enroll your finger.
You will need to successfully scan your finger 1 times to complete the process.
Scan your finger now.
Wrote scanned image to enrolled.pgm
Enroll complete!
Enrollment completed!
O programa "verify_live" tem a função de efetuar continuamente a verificação da impressão digital após o usuário encostar o dedo no sensor. Execute o programa para verificar a funcionalidade seguindo as instruções abaixo:
# ./verify_live
Found device claimed by Digital Persona U.are.U 4000/4000B driver
Opened device. It"s now time to enroll your finger.
You will need to successfully scan your finger 1 times to complete the process.
Scan your finger now.
Enroll complete!
Enrollment completed!
Normally we"d save that print to disk, and recall it at some point later when we want to authenticate the user who just enrolled. In the interests of demonstration, we"ll authenticate that user immediately.
Scan your finger now.
MATCH!
Verify again? [Y/n]? Y
Scan your finger now.
MATCH!
Verify again? [Y/n]? n
fPrint-Demo: Interface gráfica.
Para finalizar, os fontes exemplos "fprint_demo" demonstra as funcionalidades da biblioteca libfprint com uma interface gráfica baseada no GTK bem amigável.
É muito simples a instalação do programa fprinte_demo, basta descompactar o pacote com o comando tar, e utilizar os comandos "./configure" e "make". O binário deve ser executado na pasta "src", como no exemplo das instruções abaixo:
# tar -xvf /home/cabelo/Download/programas/fprint/fprint_demo-0.4.tar # cd fprint_demo-0.4/ # ./configure # make # cd src # ./fprint_demoAbaixo algumas telas do projeto:
Para finalizar, um vídeo demonstrativo.
Colaborar atrai amigos, competir atrai inimigos...
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware