Infra - Linux
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.
por Alessandro de Oliveira FariaIntrodução: Autenticação Biométrica e o usuário root
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 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).
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.
Download e instalação
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
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.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.
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--helpDisplay 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.
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--helpDisplay 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.
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware