Pular para o conteúdo

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.
Alessandro de Oliveira Faria (A.K.A. CABELO) cabelo
Hits: 33.037 Categoria: Linux Subcategoria: Software
  • Indicar
  • Impressora
  • Denunciar

Introdução: Autenticação Biométrica e o usuário root

Autenticação biométrica

As maneiras de autenticação de identidade podem ser realizadas através da apresentação de algo que o usuário saiba, através de algo sobre a posse do usuário (token) ou através de uma característica física mensurável.

O uso da biometria como método de autenticação é uma realidade em diversos segmentos mercadológicos. A tecnologia está tornando-se tão comum como as senhas e códigos PIN, porém sem a necessidade de memorização de código e preocupação com a facilidade da dedução ou quebra por tentativas computacionais.

A biometria é uma característica do indivíduo que está sempre consigo, diferente dos tokens identificadores que necessitam de transporte, assim desta maneira, sendo facilmente roubados ou esquecidos, não apresentando uma maneira eficaz de controlar quem exatamente está apresentando determinado identificador.

A biometria exige a presença do usuário no ponto de identificação devido a sua base em características fisiológicas, o que aumenta a garantia de sucesso, credibilidade e segurança no momento da identificação.

O usuário root e administração do sistema

Linux: Biometria: Transforme-se no usuário root com a sua impressão digital. O sistema operacional GNU/Linux entende o usuário root como uma conta especial, ou seja, se o usuário em questão possuir o UID igual a 0, o mesmo terá poderes para alterar qualquer configuração do sistema.

Tanto poder deve somente ser utilizado nas tarefas onde usuários convencionais não possuem privilégios para tal situação. Logado como usuário convencional não é possível causar danos acidentalmente ao sistema operacional.

Portanto devemos atribuir uma senha de difícil dedução, assim evitando/facilitando o acesso a pessoas indevidas ao usuário root. Também é recomendável alterar a senha periodicamente, existem diversos utilitários para geração aleatória de senhas fortes (mais de 8 caracteres, letras maiúsculas, minúsculas e números).

O su e o comando sudo

Em diversas situações precisamos executar uma tarefa ou comando permitido apenas ao usuário root. Um opção eficaz e segura é utilizar o comando su ou sudo.

Ao digitar o comando su no terminal, será solicitada a senha do usuário root. Logo a seguir todas as operações podem ser efetuadas como usuário administrador. Ao término basta executar o comando exit e voltaremos a operar com o login utilizado anteriormente.

O comando sudo é um recurso similar, porém interessante e mais abrangente, pois é possível definir quais usuários poder utilizá-lo. Detalhes sobre o comando SU/SUDO não são o escopo deste texto, sendo assim sugiro algumas pesquisas na internet para mais informações.

A biblioteca fprint

O 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.

   1. Introdução: Autenticação Biométrica e o usuário root
   2. Download e instalação

Compilador Clipper open-source, compile sem problemas os sistemas .PRG no Linux!

Criando um invejável serviço de backup em CD-R com gravação multi-sessão

Faça um incrível espetáculo de efeitos visuais com vídeo em tempo real

LibreOffice em nuvem - Crie seu servidor Web Office

Transmitindo vídeo de eventos ao vivo via Internet com GNU/Linux

Backups com TAR e DUMP

ManageIQ: Gerencie a sua infraestrutura de TI Híbrida através de uma única plataforma

Filesystem do Nokia 6225 no Linux

Projetos de software livre descontinuados: um problema com solução

dstat - Ferramenta de Monitoramento no Linux

#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!
#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

Entre na sua conta para comentar.