You are on page 1of 10

http://pt.opensuse.org/ARTIGOS:fprint:_Biometria_digital_livre,_completa_e_total!

ARTIGOS:fprint: Biometria digital livre, completa e total!


"O pacote fprint, uma opo totalmente open-source para o desenvolvimento de aplicativos utilizando a tecnologia de biometria digital. O pacote de integrao permite a criao de processo de identificao e verificao de impresso digital para diversos modelos de leitores."

ndice [esconder] 1 Introduo 2 Conceito 3 Download e instalao 3.1 Download 3.2 Instalao: 4.1 Autenticao biomtrica 4.3 O su e o comando sudo 4.4 A biblioteca fprint 4.5 Instalando a autenticao biomtrica:

4 Autenticao Biomtrica como usurio root

5 Integrando a biometria ao comando su: 6 fPrint-Demo: Interface grfica.

Introduo
O pacote fprint o sonho de todo desenvolvedor de cdigo aberto. O kit de integrao permite o desenvolvimento de processos de identificao e verificao de impresses digitais. Um dos pontos fortes nesta soluo open-source, a compatibilidade com diversos modelos de sensores disponveis no mercado. Em Setembro de 2005 a doao um sensor biomtrico Microsoft fingerprint iniciou o desenvolvimento do projeto dpfp. Onde o principal objetivo, era tornar possvel o uso do mesmo na plataforma Linux (Instalando leitores de impresso digital modelo Digital Persona no Linux). Foras/projetos paralelos extraam imagens de outros sensores. Entretanto ainda nada era possvel com estas imagens. Projetos open-source para processamento da imagem foram testados, mas por vrios motivos no foi incorporado ao desenvolvimento principal. Problemas com propriedade intelectual surgiram durante a jornada de trabalho. Aps algum tempo, o projeto foi retomado como um trabalho Universitrio, mais adiante publicado como Open-Source.

Conceito
A impresso digital composta de linhas formadas pelas elevaes da pele. A comparao por impresso digital um mtodo utilizado a mais de mil anos como forma de identificao de usurios. uma caracterstica nica entre os seres

humanos, inclusive entre irmo gmeos univitelinos. Formada ainda quando feto, a impresso digital acompanha a pessoa por toda a sua existncia sem apresentar grandes mudanas. Extraindo os pontos caractersticos ou ponto de mincias de uma impresso digital, um papiloscopista ou sistemas computadorizados podem identificar pessoas utilizando clculos bastantes confiveis. So vrios os tipos de impresses digitais, abaixo algumas imagens de diferentes digitais:

Grande parte dos algoritmos trabalham com o princpio de extrao dos pontos de mincias ou pontos caractersticos. Aps a extrao so calculados a relao entre as distncias destes pontos, cada algoritmo possui a sua base de clculo, seja por anlise dos pontos entre si ou por agrupamentos de pontos para anlise de semelhanas de tringulos com os ngulos internos.

Sensores biomtricos suportados pela biblioteca libfprint esto disponveis em: http://www.reactivated.net/fprint/wiki/Supported_devices Composio do pacote: libfprint: Biblioteca para desenvolvimento e integrao em sistemas; pam_fprint: Pacote utilizado para autenticao e login em sistemas Linux; fprint_demo: Aplicativo para fins demonstrativo da libfprint; fprintd: Daemon (servio) que utiliza o D-Bus (comunicao inter-processo) para facilitar a comunicao da libfprint com diversos aplicativos concorrentes.

Download e instalao
Download
Abaixo os links para download do cdigo-fonte, pacotes para o OpenSuse e Ubuntu. Neste documento trabalharemos a partir da compilao do cdigo fontes para compatibilizar o mximo possvel as instrues para qualquer distribuio. Cdigo fonte (utilizado neste documento): http://ufpr.dl.sourceforge.net/sourceforge/fprint/fprint_demo0.4.tar.bz2 (exemplo no modo grfico)http://ufpr.dl.sourceforge.net/sourceforge/fprint/libfprint-0.0.6.tar.bz2 (fontes da biblioteca) Pacotes OpenSuse: Os usurios openSUSE podem selecionar diretamente os pacotes no yast como na figura abaixo dispensando o download, compilao e instalao a partir dos fontes.

Pacotes Ubuntu: http://www.madman2k.net/comments/105

Instalao:
Aps 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 compilao para o seu ambiente.
$ tar -jxvf libfprint-0.0.6.tar.bz2 $ cd libfprint-0.0.6 $ ./configure

Execute o comando "make" para efetuar a compilao na ntegra, a seguir transforme-se em super-usurio para efetuar a instalao da bibliotecas atravs do comando "make install" seguido do "ldconfig" conforme as instrues abaixo.
$ make $ su Senha: $ make install $ ldconfig

Para finalizar este pacote, entre na pasta "example" e execute o comando "make" para compilar os cdigos exemplos.
$ cd examples/ $ make

A compilao dos exemplos criar na pasta corrente programas para capturar a imagem do sensor, calcular o template biomtrico e verificao 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 choice

Para capturar imagens do sensor de impresso digital, basta executar o programa "img_capture" e logo aps a mensagem encoste o dedo no sensor. Duas imagens sero 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 impresso 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 ound 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 funo de efetuar continuamente a verificao da impresso digital aps o usurio encostar o dedo no sensor. Execute o programa para verificar a funcionalidade seguindo as instrues 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

Autenticao Biomtrica como usurio root


Autenticao biomtrica
As maneiras de autenticao de identidade podem ser realizadas atravs da apresentao de algo que o usurio saiba, atravs de algo sobre a posse do usurio (token) ou atravs de uma caracterstica fsica mensurvel. O uso da biometria como mtodo de autenticao uma realidade em diversos segmentos mercadolgicos. A tecnologia est tornando-se to comum como as senhas e cdigos PIN, porm sem a necessidade de memorizao de cdigo e preocupao com a facilidade da deduo ou quebra por tentativas computacionais. A biometria uma caracterstica do indivduo que est sempre consigo, diferente dos tokens identificadores que necessitam de transporte, assim desta maneira, sendo facilmente roubados ou esquecidos, no apresentando uma maneira eficaz de controlar quem exatamente est apresentando determinado identificador. A biometria exige a presena do usurio no ponto de identificao devido a sua base em caractersticas fisiolgicas, o que aumenta a garantia de sucesso, credibilidade e segurana no momento da identificao.

O usurio root e administrao do sistema


O sistema operacional GNU/Linux entende o usurio root como uma conta especial, ou seja, se o usurio em questo possuir o UID igual a 0, o mesmo ter poderes para alterar qualquer configurao do sistema. Tanto poder deve somente ser utilizado nas tarefas onde usurios convencionais no possuem privilgios para tal situao. Logado como usurio convencional no possvel causar danos acidentalmente ao sistema operacional. Portanto devemos atribuir uma senha de difcil deduo, assim evitando/facilitando o acesso a pessoas indevidas ao usurio root. Tambm recomendvel alterar a senha periodicamente, existem diversos utilitrios para gerao aleatria de senhas fortes (mais de 8 caracteres, letras maisculas, minsculas e nmeros).

O su e o comando sudo
Em diversas situaes precisamos executar uma tarefa ou comando permitido apenas ao usurio root. Um opo eficaz e segura utilizar o comando su ou sudo. Ao digitar o comando su no terminal, ser solicitada a senha do usurio root. Logo a seguir todas as operaes podem ser efetuadas como usurio administrador. Ao trmino basta executar o comando exit e voltaremos a operar com o login utilizado anteriormente. O comando sudo um recurso similar, porm interessante e mais abrangente, pois possvel definir quais usurios poder utiliz-lo. Detalhes sobre o comando SU/SUDO no so o escopo deste texto, sendo assim sugiro algumas pesquisas na internet para mais informaes.

A biblioteca fprint
O pacote fprint o sonho de todo desenvolvedor de cdigo aberto. O kit de integrao permite o desenvolvimento de processos de identificao e verificao de impresses digitais. Um dos pontos fortes nesta soluo open source a compatibilidade com diversos modelos de sensores disponveis no mercado.

Instalando a autenticao biomtrica:


pam_fprint o mdulo biomtrico que trabalha em conjunto com a biblioteca de autenticao PAM (Pluggable Authentication Modules). Sua base tecnolgica a biblioteca fprint, que compilamos e instalamos anteriormente. O pacote pam_fprint utiliza as funes biomtricas para processar e verificar a autenticao do usurio. Dando continuidade ao trabalho, efetue o download, descompacte, compile e instale o pacote pam_fprint seguindo as instrues abaixo:
$ wget http://ufpr.dl.sourceforge.net/sourceforge/fprint/pam_fprint-0.2.tar.bz2 $ tar -jxvf pam_fprint-0.2.tar.bz2 $ cd pam_fprint-0.2 $ ./configure $ make $ sudo make install

Integrando a biometria ao comando su:


Para finalizar, devemos apenas modificar o arquivo de configurao do comando su (utilizado para obter os direitos do usurio root) , localizado em /etc/pam.d/su. A seguir o contedo deste arquivo, com as alteraes necessrias para tornar obrigatria a autenticao biomtrica durante o comando su no sistema GNU/Linux. Reparem na utilizao do modo REQUISITE de autenticao. Maiores informaes, sugiro a leitura de documentao do PAM.
#%PAM-1.0 auth sufficient pam_rootok.so auth include common-auth auth requisite pam_fprint.so account include common-account password include common-password session include common-session session optional pam_xauth.so

prximo passo efetuar o cadastramento biomtrico da sua impresso digital. Se concludo com sucesso esta tarefa, no prximo login o usurio, alm da senha, dever fornecer a sua impresso digital para ter acesso ao sistema. O programa pam_fprint_enroll responsvel pelo cadastramento das impresses digitais. Para entender melhor a sintaxe, digite "pam_fprint_enroll --help" e constataremos que devemos informar o nmero correspondente ao dedo utilizado para cadastro.
$ pam_fprint_enroll --help Usage: ./pam_fprint_enroll options -h --help Display this usage information. -f --enroll-finger index Enroll finger with index. Valid indexes are: 1 - Left Thumb 2 - Left Index Finger 3 - Left Middle Finger 4 - Left Ring Finger 5 - Left Little Finger 6 - Right Thumb 7 - Right Index Finger 8 - Right Middle Finger 9 - Right Ring Finger 10 - Right Little Finger

No meu caso utilizei o nmero 7 representando o dedo indicador da mo direita. Ao executar o programa, pressione a tecla [ENTER] e encoste o dedo no leitor de impresso digital. Pronto! Nesta fase, ao efetuar o login, o seu sistema operacional solicitar a senha seguida da autenticao biomtrica.
$ pam_fprint_enroll --enroll-finger 7 This program will enroll your finger, unconditionally overwriting any selected 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 Right Index Finger 1 times to complete the process. Scan your finger now. Enroll complete! Enrollment completed!

Se tudo estiver funcionando corretamente, aps o comando su ser solicitada a autenticao biomtrica e a senha de root. Ou seja, implementamos uma terceira camada de autenticao com a impresso digital do usurio. A seguir o vdeo apresenta a tecnologia open source fprint (leitura de impresso digital) integrado ao comando SU na plataforma Linux.

fPrint-Demo: Interface grfica.


Para finalizar, os fontes exemplos "fprint_demo" demonstra as funcionalidades da biblioteca libfprint com uma interface grfica baseada no GTK bem amigvel. muito simples a instalao do programa fprinte_demo, basta descompactar o pacote com o comando tar, e utilizar os comandos "./configure" e "make". O binrio deve ser executado na pasta "src", como no exemplo das instrues abaixo:
$ tar -xvf /home/cabelo/Download/programas/fprint/fprint_demo-0.4.tar $ cd fprint_demo-0.4/ $ ./configure $ make $ cd src $ ./fprint_demo

Abaixo algumas telas do projeto:

Para encerra, um vdeo demonstrativo.

A biblioteca fprint proporciona inmeros recursos alm dos mencionados neste documento, para um estudo detalhado sobre o assunto, sugiro algumas leituras no site oficial do projeto fpint e outros disponves na internet... Concluso: "O prximo grande salto evolutivo da humanidade ser a descoberta de que cooperar melhor que competir" Sendo assim, como sempre menciono... Colaborar atrai amigos, competir atrai inimigos... Sobre o autor: (Alessandro de Oliveira Faria A.K.A.CABELO )