Biometria: Transforme-se no usuário root com sua impressão digital

O comando su/sudo no sistema operacional GNU/Linux atribui ao usuário os poderes de administrador do sistema. Neste documento veremos como elevar a segurança incluindo a tecnologia biométrica de impressão digital junto à senha para obter poderes administrativos.

[ Hits: 32.865 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 07/07/2009 | Blog: http://assuntonerd.com.br


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 fonte para compatibilizar o máximo possível as instruções para qualquer distribuição Linux.

Código fonte (utilizado neste documento): libfprint-0.0.6.tar.bz2 (fontes da biblioteca)

Após o download devemos descompactar/extrair os arquivos fonte. 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
$ ./configure


Execute o convencional o comando "make" para efetuar a compilação na íntegra do código-fonte, a seguir transforme-se em super-usuário (root) para efetuar a instalação da biblioteca através do comando "make install" seguido do "ldconfig", conforme as instruções abaixo.

make
$ su

Senha:
# make install
# ldconfig


Instalando a autenticação biométrica:

pam_fprint é o módulo biométrico que trabalha em conjunto com a biblioteca de autenticação PAM (Pluggable Authentication Modules). Sua base tecnológica é a biblioteca fprint, que compilamos e instalamos anteriormente. O pacote pam_fprint utiliza as funções biométricas para processar e verificar a autenticação do usuário.

Dando continuidade ao trabalho, efetue o download, descompacte, compile e instale o pacote pam_fprint seguindo as instruções 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 configuração do comando su (utilizado para obter os direitos do usuário root) , localizado em /etc/pam.d/su. A seguir o conteúdo deste arquivo, com as alterações necessárias para tornar obrigatória a autenticação biométrica durante o comando su no sistema GNU/Linux. Reparem na utilização do modo REQUISITE de autenticação. Maiores informações, sugiro a leitura de documentação 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

O próximo passo é efetuar o cadastramento biométrico da sua impressão digital. Se concluído com sucesso esta tarefa, no próximo login o usuário, além da senha, deverá fornecer a sua impressão digital para ter acesso ao sistema.

O programa pam_fprint_enroll é responsável pelo cadastramento das impressões digitais. Para entender melhor a sintaxe, digite "pam_fprint_enroll --help" e constataremos que devemos informar o número 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 número 7 representando o dedo indicador da mão direita. Ao executar o programa, pressione a tecla [ENTER] e encoste o dedo no leitor de impressão digital. Pronto! Nesta fase, ao efetuar o login, o seu sistema operacional solicitará a senha seguida da autenticação biométrica.

# 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, após o comando su será solicitada a autenticação biométrica e a senha de root. Ou seja, implementamos uma terceira camada de autenticação com a impressão digital do usuário. A seguir o vídeo apresenta a tecnologia open source fprint (leitura de impressão digital) integrado ao comando SU na plataforma Linux. A biblioteca fprint proporciona inúmeros recursos além dos mencionados neste documento, para um estudo detalhado sobre o assunto, sugiro algumas leituras como o artigo fprint: Biometria livre completa e total, e também no site oficial do projeto.
Página anterior    

Páginas do artigo
   1. Introdução: Autenticação Biométrica e o usuário root
   2. Download e instalação
Outros artigos deste autor

Utilize qualquer Tablet/Smartphone como monitor estendido sem fio no GNU/Linux

Como instalar Firefox OS junto ao Android com gerenciador de boot

Biblioteca VBMcgi: Crie aplicações Web CGI em C++ com acesso ao banco Interbase/Firebird sem mistério

MainActor: Edição de vídeo profissional (Adobe Premiere) em Linux

Efeitos tridimensionais nas seleções dos desktops virtuais

Leitura recomendada

Cuca Fresca no Linux

Instalação do Debian 3.1r2 Sarge como servidor

Instalação do Debian GNU/Linux - Passo a passo

Montando seu Linux a partir do fonte (método fácil)

Mais formatação especial no OpenOffice

  
Comentários
[1] Comentário enviado por removido em 07/07/2009 - 15:56h

Como sempre um ótimo artigo.

[2] Comentário enviado por sandromt em 07/07/2009 - 16:38h

Parabéns por mais essa artigo, quando se ler Biometria no VOL ja se sabe que é o Cabelo com seus projetos excelentes....valeu!!!!!!!!

[3] Comentário enviado por asdf2 em 07/07/2009 - 16:51h

ficou muito massa, vale 10, foi pro favoritos.

[4] Comentário enviado por araujo_silva em 07/07/2009 - 19:00h

Parabéns pela sua, sempre muito importante, contribuição ao nosso aprendizado.

Abraços,

Lourival

[5] Comentário enviado por chmod000 em 08/07/2009 - 14:37h

Mais um excelente artigo de nosso amigo.

Seria interessante uma lista (ou alguns exemplos) de dispositivos compatíveis disponíveis no mercado.

Grande abraço.

chmod000

[6] Comentário enviado por hendrigo em 08/07/2009 - 17:19h

vc sabe como ficaria uma implementação de biometria com OpenLDAP?

[7] Comentário enviado por tjpp em 08/07/2009 - 17:31h

Eu tentei usar o fprint no leitor do meu notebook. Eu achei a margem de acertos pequena. Depois instalei o thinkfinger em um Lenovo e a margem de acerto era bem maior. Uma diferença chama a atenção: o thinkfinger pede que passe o dedo três vezes (pelo menos) para registrar e o fprint apenas uma. Para mim, a diferença é óbvia, mas não sei porque ninguém mais se interessou por isto.

Só para registrar, nos 30 únicos minutos em que usei o Vista, o leitor funcionava perfeitamente (lá também pedia o cadastramento em três vezes).

[8] Comentário enviado por Teixeira em 09/07/2009 - 07:13h

Mais uma vez o cabelo nos surpreende com um ótimo artigo. Parabéns!

[9] Comentário enviado por ebernardino em 17/07/2009 - 11:15h

Espero que este tutorial ajude também. Segue Link: http://ostrecosdeti.com.br/wordpress/2008/11/12/instalando-o-leitor-biometrico-dos-notebooks-hp-pavi...

[10] Comentário enviado por gregory em 27/07/2009 - 18:13h

não esta dando certo instalar a biblioteca.

apos o comando ./configure ele checa varias coisas e quando chega para chegar a libusb aparece essa mensagem:

checking for LIBUSB... configure: error: Package requirements ("libusb") were not met:

No package 'libusb' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBUSB_CFLAGS
and LIBUSB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.


onde pego essa lib?

obrigado

[11] Comentário enviado por gregory em 27/07/2009 - 18:20h

com o comando yum install libusb aparece a seguinte mensagem:

Configurando o processo de instalação
O pacote libusb-0.1.12-21.fc11.i586 já está instalado em sua última versão

[12] Comentário enviado por ZiroCool em 02/08/2009 - 00:17h

Quando executo o ./configure, tenho a seguinte mensagem de erro:

checking security/pam_modules.h usability... no
checking security/pam_modules.h presence... no
checking for security/pam_modules.h... no
configure: error: PAM headers missing


Não tá achando os arquivos de cabeçalho no arquivo disponibilizado no artigo. =/

[13] Comentário enviado por meken em 23/02/2011 - 17:42h

O meu Está aparecendo essa mensagem de erro após o comando Make, Estou usando Slackware 13.1

root@mknote:/usr/src/panfprint/pam_fprint-0.2# make
Making all in src
make[1]: Entering directory `/usr/src/panfprint/pam_fprint-0.2/src'
gcc -I/usr/local/include/libfprint -g -O2 -o pam_fprint_enroll pam_fprint_enroll-pam_fprint_enroll.o -L/usr/local/lib -lfprint
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPathStart'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetViewbox'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetFont'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetStrokeColor'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawColor'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPopPattern'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetFillPatternURL'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetStrokeDashArray'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawAllocateWand'
/usr/lib/libMagickCore.so.3: undefined reference to `PushDrawingWand'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPathClose'
/usr/lib/libMagickCore.so.3: undefined reference to `PixelSetRedQuantum'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawScale'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetTextUnderColor'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawLine'
/usr/lib/libMagickCore.so.3: undefined reference to `PopDrawingWand'
/usr/lib/libMagickCore.so.3: undefined reference to `DestroyPixelWand'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetFontSize'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawTranslate'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPathMoveToAbsolute'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawAnnotation'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetStrokeAntialias'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPushDefs'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPathFinish'
/usr/lib/libMagickCore.so.3: undefined reference to `DestroyMagickWand'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawRoundRectangle'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPopDefs'
/usr/lib/libMagickCore.so.3: undefined reference to `PixelSetQuantumColor'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetFillColor'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawComposite'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetClipPath'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawRender'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawEllipse'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawComment'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPathLineToAbsolute'
/usr/lib/libMagickCore.so.3: undefined reference to `PixelSetBlueQuantum'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetStrokeLineJoin'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPushPattern'
/usr/lib/libMagickCore.so.3: undefined reference to `PixelSetColor'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPushClipPath'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetStrokeLineCap'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawArc'
/usr/lib/libMagickCore.so.3: undefined reference to `NewMagickWandFromImage'
/usr/lib/libMagickCore.so.3: undefined reference to `PixelSetOpacityQuantum'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPopClipPath'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetClipRule'
/usr/lib/libMagickCore.so.3: undefined reference to `NewPixelWand'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawRotate'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawRectangle'
/usr/lib/libMagickCore.so.3: undefined reference to `DestroyDrawingWand'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetStrokeWidth'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawPathEllipticArcAbsolute'
/usr/lib/libMagickCore.so.3: undefined reference to `DrawSetStrokePatternURL'
/usr/lib/libMagickCore.so.3: undefined reference to `PixelSetGreenQuantum'
collect2: ld returned 1 exit status
make[1]: *** [pam_fprint_enroll] Error 1
make[1]: Leaving directory `/usr/src/panfprint/pam_fprint-0.2/src'
make: *** [all-recursive] Error 1
root@mknote:/usr/src/panfprint/pam_fprint-0.2#


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts