Biometria facial na autenticação do usuário root

O comando su/sudo no sistema operacional tem a função de atribuir ao usuário os poderes administrativos. Neste documento veremos como elevar a segurança incluindo a tecnologia de biometria facial junto a senha, assim criando uma camada adicional de autenticação.

[ Hits: 33.150 ]

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


Jogo rápido: Download e instalação a partir do código fonte



Tecnologia de reconhecimento facial

É o método mais comum entre os seres humanos se reconhecerem, além de identificar podemos perceber o estado emocional de uma pessoa apenas observando sua expressão facial.

Aplicações estáticas e assistidas (onde a imagem, a iluminação ambiente e a verificação é controlada) favorece a precisão do sistema. Quando a aplicação é desassistida ou a iluminação ambiente e a imagem não são controladas, devemos aumentar o coeficiente de similaridade tornando o sistema exigente, assim obtendo resultados precisos.

Embora o reconhecimento facial seja uma tarefa simples para o ser humano, é extremamente complexo implementar esse processo em uma máquina, pois não sabemos, ao certo, como o cérebro humano realiza essa tarefa. O cérebro humano pode identificar corretamente uma pessoa a partir de sua imagem facial mesmo sobre as mais diversas condições, como variações de iluminação, observando apenas uma de suas características ou partes, e até mesmo com distorções ou deformações.
Linux: Biometria Facial na autenticação do usuário root!

O projeto pam-face-authentication

O pacote pam-face-authentication inicialmente foi projetado para trabalhar com o algorítimo eigenface para efetuar o reconhecimento facial baseada.

Algumas deficiências do eigenface alavancou a mudança para o algoritmo DCTMOD2 e LBP.

O método LBP - Padrão de Binários Locais (Local Binary Pattern) é utilizado para classificar a textura em escala de cinza da imagem. Seu valor é calculado com o valor binário de cada pixel, formando uma vizinhança linear de raio R em torno do pixel principal localizado na posição central. A seguir a ilustração mostra na prática o método:

Tabela:
Linux: Biometria Facial na autenticação do usuário root!  Linux: Biometria Facial na autenticação do usuário root!
Mais informações e detalhes em: FaceRecognition at code.google.com

Download e instalação

Vamos direto ao assunto... Efetue o download com o comando wget no link especificado a seguir:

wget http://pam-face-authentication.googlecode.com/files/pam-face-authentication-0.2.tar.gz

Requisitos do projeto:
Descompacte o pacote com o comando "tar -zxvf" e entre na pasta recém-criada.

tar -zxvf ~/face/pam-face-authentication-0.2.tar.gz
$ cd pam-face-authentication-0.2/


Compile o pacote com o comando configure, make e make install:

./configure
$ make
$ su

senha:
# make install

Agora, associar uma face ao usuário, utilize o aplicativo gtk-facemanager como no exemplo abaixo:

# gtk-facemanager
Linux: Biometria Facial na autenticação do usuário root!
O botão "ADD" adiciona usuário, já o botão "Remove" apaga a conta especificada. "Train Select" é o botão responsável por calcular e adicionar os dados biométricos na conta selecionada. Veja o vídeo logo abaixo:
Para incluir a autenticação através da biometria facial no comando su, basta adicionar a linha a seguir no arquivo /etc/pam.d/su:

auth     sufficient     pam_face_authenticate.so

O arquivo terá um conteúdo similar ao exemplo abaixo:

#%PAM-1.0
auth     sufficient     pam_rootok.so
auth     include        common-auth
auth     sufficient     pam_face_authenticate.so
account  include        common-account
password include        common-password
session  include        common-session
session  optional       pam_xauth.so

Pronto! Agora basta utilizar o comando su, após a digitação da senha será solicitado a autenticação facial como no vídeo demonstrativo.
Como sempre menciono: Colaborar atrai amigos, competir atrai inimigos...
Sobre o autor: http://www.netitec.com.br/alessandro

   

Páginas do artigo
   1. Jogo rápido: Download e instalação a partir do código fonte
Outros artigos deste autor

Artigo número 100: AR.Drone - O robô voador com Linux embarcado

Criando uma aplicação em shell script integrada com o Interbase/Firebird

Como instalar um cartão PCMCIA (modem/rede) no meu notebook?

Torne o seu servidor um mirror de atualização do Antivírus AVG (revisão)

ReactOS: O irmão open-source do Microsoft Windows NT 4.0

Leitura recomendada

Melhorando o nível de segurança com chflags

Bloqueio de repetidas tentativas de login ao seu Linux

Escrevendo em discos sem sistemas de arquivos

Antivírus ClamAV com proteção em tempo real

Bloqueio de Países com IPTables

  
Comentários
[1] Comentário enviado por moska em 16/07/2009 - 19:47h

Salve Cabelo meu conterraneo!

Kra, show de bola seu artigo parabens, mas tenho uma duvida:
É possivel usar a identificação em ambiente 100% texto? Num servidor que não tenha X por exemplo?

Valews kra, MoSka

[2] Comentário enviado por renato.leite em 16/07/2009 - 21:22h

Muito 10 o Artigo
ta de parabéns...

Abraços...

[3] Comentário enviado por xsmokex em 16/07/2009 - 21:50h

Ótimo artigo, parabéns

[4] Comentário enviado por removido em 17/07/2009 - 08:27h

ótimo artigo!

quando dou um configure está tudo ok até que:

configure: error: PAM library missing

alguem sabe?

[5] Comentário enviado por cleberjsantos em 17/07/2009 - 09:48h

Opa Cabelo, ótimo artigo... Pergunta, eu recentemente comprei um HP Pavilion dv5-1260br Entertainment PC, no qual tive problemas de instalação do Linux, inclusive até para manter um registro (Quem tiver problemas com este modelo deve atualizar a Bios), problemas a parte, estou com ele rodando legal a versão 9.04 do Ubuntu, mas não compilei para 64 Bits... Ainda hehehe

A dúvida é, ele tem um leitor biométrico, e não foi detectado pelo ubuntu, instalei o fprint-demo e também o thinkfinger mas nada rolou, vc já chegou a ver algo para este modelo de PC? Teria como me dar uma ajuda com isso? Desde já agradeço...

[6] Comentário enviado por thieme.reis em 17/07/2009 - 12:17h

Primeiramente, parabéns pelo artigo.
Segundamente ... rs .. você sabe sé é possível integrar o reconhecimento facial a interface grafica de login (gdm ou kdm)?

[7] Comentário enviado por cabelo em 17/07/2009 - 12:43h

Sim, testei com o GDM e funcionou...

[8] Comentário enviado por sandromelo em 17/07/2009 - 13:47h

Para quem tiver com erro PAM library missing só instalar o libpam0g-dev.


[9] Comentário enviado por hugobcar em 17/07/2009 - 13:50h

Assim como a questão que o usuário do "Br-Linux" levantou, até que ponto esse sistema é seguro ? Tipo, e se eu colocar uma foto do seu rosto em frente ao sistema, ele irá detectar que é você e dessa forma irá liberar o acesso root, não é mesmo ?


Obs.: Estou levantando essa questão apenas por motivos de segurança, volto a dizer que seus artigos são formidáveis.

Parabéns



[10] Comentário enviado por m4gnu5 em 17/07/2009 - 13:57h

Primeiramente Parabéns ainda não vi a palestra, por estar tão ansioso para compilar este programa, gostaria de ajuda pois não consegui efetuar a instalação do mesmo!
segui os procedimentos baixei ./configure funciona mais quando efetuo o make, depois make install ele não roda!
agradeço qualquer informação!
de vista parabéns.

[11] Comentário enviado por timtonys em 17/07/2009 - 14:10h

Não consegui compilar o programa. Seguem detalhes do processo de instalação que fiz:

Distribuição: Ubuntu 9.04
Mensagem de erro dá durante o Configure:

checking for pam_start in -lpam... no
configure: error: PAM library missing

Alguma idéia do que seja?

[12] Comentário enviado por removido em 17/07/2009 - 14:28h

Cabelo, o tarado da biometria :P

>>>Tipo, e se eu colocar uma foto do seu rosto em frente ao sistema
Pensei no mesmo.


Cara, já to com o eViacam instalado aqui e funcional, vou testar também este sistema de autenticação facial.
Valeu cabelo, pelas suas matérias formidáveis na área de Biometria =)

[13] Comentário enviado por sandromelo em 17/07/2009 - 14:41h

Aqui está dando erro na hora de compilar erro é esse:

/usr/local/include/opencv/cxmisc.h:52:26: error: cvconfig.h: No such file or directory
make[1]: ** [libfacedetect.lo] Erro 1

Alguem está com mesmo problema ou sabe como resolver ?

[14] Comentário enviado por removido em 17/07/2009 - 14:44h

Opa
aqui tá funcionando redondinho

su
eu digito a senha
ele faz o reconhecimento da minha face =)

Bom demaaaaaaaaais!

[15] Comentário enviado por sandromelo em 17/07/2009 - 15:14h

Alguem está com esse erro:
libfaceauthenticate.c:298: error: too few arguments to function 'cvSaveImage'
make[1]: ** [libfaceauthenticate.lo] Erro 1

[16] Comentário enviado por cbov em 17/07/2009 - 15:15h

opa, tive alguns problemas aqui no meu ubuntu 9.04 com a webcam do meu notebook (hp dv5-1220br)...
ficava dando alguns erros de selector timeout ou coisa parecida ...

solução foi recompilar o opencv com a seguinte config
./configure --without-v4l --with-gstreamer --prefix=/usr

[17] Comentário enviado por removido em 17/07/2009 - 15:59h

quando ponho em train selected abre a janela... mas não abre a camera de forma alguma...
alguem sabe resolver?

[18] Comentário enviado por rausth em 17/07/2009 - 16:51h

e aeh, um pergunta, é possível implementar essa autenticação no logon do ubuntu 9.04 32bits?

[19] Comentário enviado por removido em 17/07/2009 - 17:24h

Também fiquei curioso. Nosso cérebro faz a distinção entre uma foto e uma pessoa com facilidade. Mas este software é capaz de fazer o mesmo?

[20] Comentário enviado por removido em 17/07/2009 - 17:50h

Estranho


Configurei como o passo a passo

Digito SU
eu coloco a senha

se eu clicar em CANCELAR, ele mesmo assim autentica(só ignora a autenticação feito pelo pam_face_authenticate.so)

[21] Comentário enviado por joserribeirojuni em 18/07/2009 - 21:31h

poxa, como fizeram pra instalar o GSL e o OpenCV não ta dando certo aqui, alguém conseguir instalar pelo apt-get ?
Abraço

[22] Comentário enviado por removido em 18/07/2009 - 22:05h

Ow, e se eu colocar uma foto da pessoa
Teoricamente deve passar


Como se proteger contra isso?

[23] Comentário enviado por wryel em 20/07/2009 - 23:07h

se considere a referencia nacional em biometria ! HAAHAHHA :)

nice !

[24] Comentário enviado por thiago_dias em 21/07/2009 - 01:16h

instalei tudo certinho, mais na hora de clicar em train selected ,o video simplesmente não abre...
fica tudo em branco,nada acontece, assim como mencionou mais acima o xmarkinx.
Alguém saberia dizer oque seja isso?
Abraços

[25] Comentário enviado por chmod000 em 03/09/2009 - 03:09h

Bicho, muito bom o artigo.

Segui ele direitinho e, entre uns file missing aqui e outros ali, consegui instalar tudo.

Agora estou tendo o seguinte problema:

quando executo o gtk-facemanager abre a janelinha para cadastrar as faces, mas...

$ sudo gtk-facemanager
select timeout
Corrupt JPEG data: 300 extraneous bytes before marker 0xd9
$

e a janelinha fecha. Se eu fizer tudo bem rapidinho, até consigo cadastrar meu rosto, mas...

$ su -

(process:8742): Gtk-WARNING **: This process is currently running setuid or setgid.
This is not a supported use of GTK+. You must create a helper
program instead. For further details, see:

http://www.gtk.org/setuid.html

Refusing to initialize GTK+.
Corrupt JPEG data: 13754 extraneous bytes before marker 0x10
select timeout

^C

e nada acontece....

E aí, qual o caso?



[26] Comentário enviado por cabelo em 03/09/2009 - 10:34h

Sugiro a todos com interesse neste documento, ler a dica de atualização para a nova versão em QT:

http://www.vivaolinux.com.br/dica/Biometria-facial-na-autenticacao-do-usuario-root-(atualizacao)

[27] Comentário enviado por edup_pt em 20/01/2010 - 18:19h

Estou a tentar compilar a aplicação no entanto deparo-me com uns erros (os mesmo que o sandromelo):

1. cvconfig.h is missing (copiei o ficheiro para /usr/local/include/opencv/.
2. Dps, estou a debater-me com erros de "few arguments" no caso das funções cvRetrieveFrame, e cvSaveImage:

- No código desta aplicação estas funções são sempre chamadas com menos um argumento que o que está definido no /usr/local/include/highgui.h cujas funções são definidas da seguinte forma:

CVAPI(IplImage*) cvRetrieveFrame( CvCapture* capture, int streamIdx CV_DEFAULT(0) );
CVAPI(int) cvSaveImage( const char* filename, const CvArr* image,const int* params CV_DEFAULT(0) );

Já tentei adicionar um 0 em cada uma das chamadas à função mas o resulta em "segmentation fault".

Podem-me ajudar?

Obrigado

[28] Comentário enviado por removido em 02/07/2010 - 13:38h

Para quem tiver o erro:

checking for GSL... configure: error: Package requirements (gsl >= 1.9) were not met:

No package 'gsl' 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 GSL_CFLAGS
and GSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Basta instalar o pacote libgsl0-dev.


[29] Comentário enviado por rodand1tux em 01/01/2012 - 12:10h

ola sera que pode me ajudar quando digito o comando make aparece o seguinte erro ao final:


ibfaceauthenticate.c: In function 'createLBP':
libfaceauthenticate.c:298:5: error: too few arguments to function 'cvSaveImage'
/usr/local/include/opencv2/highgui/highgui_c.h:224:12: note: declared here
libfaceauthenticate.c: In function 'loadTrainingData':
libfaceauthenticate.c:550:5: error: too few arguments to function 'cvOpenFileStorage'
/usr/local/include/opencv2/core/core_c.h:1528:24: note: declared here
make[1]: ** [libfaceauthenticate.lo] Erro 1
make[1]: Saindo do diretório `/home/rodand1/Downloads/face/pam-face-authentication-0.2'
make: ** [all] Erro 2

Espero que possa me ajudar valeu.

[30] Comentário enviado por jorgerabello em 05/09/2012 - 02:19h

Fala Cabelo td jóia ?

Cara seguinte estou aqui usando o ubuntu 12.04 LTS e tentando seguir a sua dica... só que seguinte ao executar o ./configure recebo a seguinte saida:


checking for GSL... configure: error: Package requirements (gsl >= 1.9) were not met:

Requested 'gsl >= 1.9' but version of GSL is 1.0

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

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

Me parece que falta uma dependência a GSL, mas eu instalei, acredito que tenha instalado uma versão mais antiga, vc sabe como compilar uma versão superir o 1.9 ? ou como solucionar o problema ?

Grato !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts