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.
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.
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:
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
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
[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?
[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)?
[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.
[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.
[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 =)
[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
[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
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:
[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:
[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.
[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
[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 ?