View
225
Download
0
Category
Preview:
Citation preview
UNIVERSIDADE FEDERAL DE GOIAS – UFG
CAMPUS CATALAO – CaC
DEPARTAMENTO DE CIENCIA DA COMPUTACAO – DCC
Bacharelado em Ciencia da Computacao
Projeto Final de Curso
Autenticacao Segura Baseada em Biometria Voltadapara a Dinamica da Digitacao
Autor: Gustavo Batista da C. Almeida
Orientador: Ms. Marcio de Souza Dias
Catalao - 2009
Gustavo Batista da C. Almeida
Autenticacao Segura Baseada em Biometria Voltada para a Dinamica da
Digitacao
Monografia apresentada ao Curso de
Bacharelado em Ciencia da Computacao da
Universidade Federal de Goias Campus Catalao
como requisito parcial para obtencao do tıtulo de
Bacharel em Ciencia da Computacao
Area de Concentracao: Seguranca da Informacao
Orientador: Ms. Marcio de Souza Dias
Catalao - 2009
Almeida, Gustavo Batista da C.
Autenticacao Segura Baseada em Biometria Voltada para a Dinamica da
Digitacao/Ms. Marcio de Souza Dias- Catalao - 2009
Numero de paginas: 58
Projeto Final de Curso (Bacharelado) Universidade Federal de Goias, Campus
Catalao, Curso de Bacharelado em Ciencia da Computacao, 2009.
Palavras-Chave: 1. Biometria. 2. Dinamica da Digitacao. 3. Seguranca da In-
formacao
Gustavo Batista da C. Almeida
Autenticacao Segura Baseada em Biometria Voltada para a Dinamica da
Digitacao
Monografia apresentada e aprovada em de
Pela Banca Examinadora constituıda pelos professores.
Ms. Marcio de Souza Dias – Presidente da Banca
Ms. Luanna Lopes Lobato
Acrısio Jose do Nascimento Junior
Dedico este trabalho a minha Mae Maria Jose, ao meu
Pai Leonides e ao meu Irmao Chester
AGRADECIMENTOS
Agradeco primeiramente a Deus, por ser o meu porto seguro e por me dar forcas para
conseguir vencer os obstaculos.
Agradeco aos meus pais, Leonides e Maria Jose por todo amor, carinho e incentivo
durante toda a minha vida! Sem eles nada disso seria possıvel.
Agradeco ao meu irmao Chester, pelo companherismo e apoio.
Agradeco tambem a minha namorada Bianca Leao, pelo carinho afeto e compreensao
durante todo o tempo.
Agradeco aos colegas da graduacao,que sempre me ajudaram quando mais precisei.
Em especial aos amigos Nelio Junior e ao Danilo Reis pelo sincero companheirismo.
Agradeco a todos os mestres da graduacao e em especial ao meu orientador profes-
sor Ms. Marcio Souza Dias, por acreditar em mim e tornar possivel a realizacao deste
trabalho.
Agradeco a todos os tios e tias, primos e primas que sempre me apoiaram.
Por fim, agradeco a todos que de forma direta ou indireta que cotribuıram para a
minha formacao.
“Os desafios foram feitos para serem vencidos. pois se
nao houvessem desafios, nao existiriam vitorias”.
Sulamita
RESUMO
Almeida, Gustavo Batista da C. Autenticacao Segura Baseada em Biome-
tria Voltada para a Dinamica da Digitacao. Curso de Ciencia da Computacao,
Campus Catalao, UFG, Catalao, Brasil, 2009, 58p.
Sistemas computacionais que necessitam de uma restricao de acesso sao, normalmente,
baseados em um mecanismo de autenticacao que usa nome de usuario e senha como
requisito para a obtencao do acesso. Tal processo de autenticacao faz com que o acesso a
estes sistemas seja menos seguro, tendo em vista o alto ındice de perda e roubo dos dados
de autenticacao.
Baseado nessa fragilidade dos sistemas de autenticacao que e proposto neste trabalho
o desenvolvimento de um prototipo de autenticacao seguro baseado em biometria com
foco na dinamica de digitacao, como meio de tornar mais seguro o acesso a sistemas
computacionais.
Para o desenvolvimento deste trabalho, foi utilizada uma nova metodologia no processo
de captura das amostras, a qual leva em consideracao o tempo total de digitacao da senha
aliado a uma menor complexidade computacional, assim sendo o prototipo desenvolvido
conseguiu obter bons resultados mostrando ser uma solucao viavel para o aumento da
seguranca de sistemas computacionais.
Palavras-Chaves: Biometria, Dinamica da Digitacao, Seguranca da Informacao
i
Sumario
Lista de Abreviacoes 1
Introducao 2
1 Seguranca da Informacao 4
1.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Os Tres Pilares da Seguranca da Informacao . . . . . . . . . . . . . . . . . 5
1.3 Tecnologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Autenticacao e Controle de Acesso . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Metodos de Autenticacao . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Senhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Biometria e Seguranca da Informacao . . . . . . . . . . . . . . . . . . . . . 8
1.7 Dinamica da Digitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Biometria 10
2.1 O que e Biometria? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Metodos Basicos de Identificacao . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Verificacao vs Identificacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Medidas de Desempenho em Sistemas Biometricos . . . . . . . . . . . . . . 14
2.4.1 FAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.2 FRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Tipos de Sistemas Biometricos . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6 Sistemas Biometricos Fisiologicos . . . . . . . . . . . . . . . . . . . . . . . 15
2.6.1 Reconhecimento de Face . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6.2 Reconhecimento da Impressao Digital . . . . . . . . . . . . . . . . . 15
2.6.3 Reconhecimento da Geometria da Mao . . . . . . . . . . . . . . . . 16
2.6.4 Reconhecimento da Iris . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.7 Sistemas Biometricos Comportamentais . . . . . . . . . . . . . . . . . . . . 17
2.7.1 Reconhecimento de Voz . . . . . . . . . . . . . . . . . . . . . . . . 17
2.7.2 Reconhecimento da Assinatura Manuscrita . . . . . . . . . . . . . . 18
ii
2.8 Dinamica da Digitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.8.1 Conceitos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.8.2 Informacao Alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.8.3 Quantidade de Amostras . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8.4 Extracao das Caracterısticas . . . . . . . . . . . . . . . . . . . . . . 20
2.8.5 Tentativas de Autenticacao . . . . . . . . . . . . . . . . . . . . . . . 21
2.8.6 Classificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8.7 Abordagens da Dinamica da Digitacao . . . . . . . . . . . . . . . . 21
2.8.8 Aplicacoes da Dinamica da Digitacao . . . . . . . . . . . . . . . . . 22
2.9 Verificacao de Padroes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.10 Outros Tipos de Biometria . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.11 Comparacao entre as Tecnologias Biometricas . . . . . . . . . . . . . . . . 24
3 Estado da Arte 25
3.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Biometria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Dinamica da Digitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4 Evolucao da Dinamica da Digitacao . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4 Metodologia e Analise do Prototipo Proposto 31
4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Caracterısticas do Sistema Proposto . . . . . . . . . . . . . . . . . . . . . . 33
4.2.1 Senha ou Informacao Alvo . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.2 Quantidade de Amostras . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.3 Tentativas de Autenticacao . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.4 Abordagens da Dinamica da Digitacao . . . . . . . . . . . . . . . . 34
4.2.5 Extracao de Caracterısticas . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Prototipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5 Teste e Analise dos Resultados 40
5.1 Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Plano de Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3 Documentacao do Plano de Testes . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.1 Planejamento para a Execucao do Teste . . . . . . . . . . . . . . . 41
5.3.2 Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4 Documentacao da Especificacao dos Casos de Testes . . . . . . . . . . . . . 42
5.4.1 Caso de Teste - FRR . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4.2 Caso de Teste - FAR . . . . . . . . . . . . . . . . . . . . . . . . . . 42
iii
5.4.3 Resultados Esperados . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.5 Relatorio Resumo de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.5.1 Caso de Teste - FRR . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.5.2 Caso de Teste - FAR . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.5.3 Analise dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 44
Consideracoes Finais 46
Referencias 48
Apendices 50
A Codigo Fonte 51
A.1 Modulo Captura de Amostras . . . . . . . . . . . . . . . . . . . . . . . . . 51
A.2 Modulo de Autenticacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
iv
Lista de Figuras
1.1 Blocos de solucoes [Zapatar e Suzuki, 2005] . . . . . . . . . . . . . . . . . . 6
2.1 Abordagens de Autenticacao associadas as Tecnologias Biometricas [Araujo, 2004] 12
2.2 Verificacao Um para Um . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Identificacao Um para Muitos . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Impressoes Digitais com Qualidades Diferentes . . . . . . . . . . . . . . . . 16
2.5 Leitor da Geometria da Mao[Gava, 2006] . . . . . . . . . . . . . . . . . . . 17
2.6 Extracao de Caracterısticas . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.7 Comparacao entre as Tecnologias Biometricas [Araujo, 2004] . . . . . . . . 24
3.1 Tecnica de Identificacao Biometrica de Bertillon . . . . . . . . . . . . . . . 26
4.1 Modulo de Cadastramento . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Modulo de Autenticacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3 Usuario Sendo Cadastrado . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Usuario Cadastrado com Sucesso! . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 Falha no Cadastro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.6 Usuario Sendo Autenticado . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.7 Usuario Autenticado com Sucesso . . . . . . . . . . . . . . . . . . . . . . . 38
4.8 Usuario Autenticado com Sucesso . . . . . . . . . . . . . . . . . . . . . . . 38
4.9 Tentativa de Fraude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1 Taxas de FAR e FRR Obtidas . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Algumas Comparacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
v
Lista de Abreviacoes
FAR - False Accept Reject - Taxa de Falsa Aceitacao
FRR - False Reject Reject - Taxa de Falsa Rejeicao
ASCII - American Standard Code for Information Interchange - Codigo Padrao Amer-
icano para o Intercambio de Informacao
1
Introducao
Um problema fundamental na seguranca da informacao e o de autenticar um humano
perante uma maquina [Silberchatz et al., 2004]. Sistemas computacionais que necessitam
de uma restricao de acesso sao normalmente baseados em login/senha. Porem um fator
preponderante deste tipo de restricao e o fato de que as senhas ja nao sao consideradas
tao seguras devido ao alto ındice de perda e roubo das mesmas, o que leva estes sistemas
a se tornarem menos seguros[Stamp, 2006].
Sendo assim, faz-se necessario o uso de tecnicas que fortalecam o processo de aut-
enticacao baseado em login/senha com o objetivo de garantir uma maior seguranca a
sistemas computacionais. Uma solucao para este problema seria usar a biometria como
ferramenta para o fortalecimento da autenticacao.
Este trabalho tem como objetivo principal fortalecer o processo de autenticacao de
usuarios baseado em login/senha com o auxilio da biometria, usando a tecnica biometrica
da dinamica da digitacao. A proposta e fazer um estudo detalhado sobre a biometria
com foco na tecnica biometrica da dinamica da digitacao e por meio deste estudo ter uma
base solida para o desenvolvimento de um prototipo de autenticacao baseado na dinamica
da digitacao como meio de fortalecer o processo de autenticacao, garantindo assim mais
seguranca a sistemas computacionais.
Este trabalho procura uma forma diferenciada de usar a dinamica da digitacao pro-
pondo uma nova metodologia baseada no tempo total gasto pelo usuario ao digitar a sua
senha, visto que a maioria dos trabalhos da area usa a latencia de digitacao(intervalo de
tempo entre as digitacoes de tecla sucessivas pelo usuario) para extrair as caracterısticas de
digitacao do usuario. Mas, por ser a metodologia usada neste trabalho de menor complex-
idade em relacao as demais sera que o prototipo a ser desenvolvido ira produzir resultados
que viabilizem o uso de tal metodologia de desenvolvimento? O trabalho descrito neste
texto esta divido em 5 capıtulos.
No capıtulo 1 sao abordados os conceitos de seguranca da informacao e a relacao da
seguranca da informacao com a biometria.
No capıtulo 2 sao apresentados os conceitos e fundamentos da biometria, tipos de
biometria, medidas de desempenho em sistemas biometricos e e feita uma explanacao
sobre as principais tecnicas de biometria, com foco principal na dinamica da digitacao.
2
Ao longo do capıtulo 3 pode-se observar um levantamento sobre o estado da arte da
biometria com foco principal na dinamica da digitacao.
No capıtulo 4 e discorrido sobre a metodologia proposta para o desenvolvimento do
prototipo de autenticacao alem de ser apresentada uma abrangente analise acerca das
principais caracterısticas do mesmo.
NO capıtulo 5 e abordado todo o processo de testes, alem de ser realizado uma analise
dos resultados. Por fim ha uma conclusao do trabalho realizado, levantando os objetivos
alcancados, pontos positivos, pontos negativos, dificuldades e trabalhos futuros.
Ainda e possıvel encontrar o codigo fonte do prototipo e a documentacao de testes
elaborada no apendice desta monografia.
3
Capıtulo 1
Seguranca da Informacao
1.1 Introducao
Informacao compreende qualquer conteudo que possa ser armazenado ou transferido
de algum modo, servindo a determinado proposito e sendo de utilidade ao ser humano,
ou seja, trata-se de tudo aquilo que permite a aquisicao de conhecimento [Filho, 2004].
A seguranca da informacao busca reduzir os riscos de vazamentos, fraudes, erros, uso
indevido, sabotagens, paralisacoes, roubo de informacoes ou qualquer outra ameaca que
possa prejudicar os sistemas, os equipamentos de um indivıduo ou organizacao [Medeiros, 2001].
Um computador ou um sistema computacional e dito seguro se este atende a tres
requisitos basicos relacionados aos recursos que o compoem: confidencialidade, integridade
e disponibilidade [CERT.BR, 2006].
• Confidencialidade: a confidencialidade visa manter a privacidade das informacoes
evitando que pessoas ou programas nao autorizados tenham acesso as mesmas
[Moreira, 2001];
• Integridade: visa manter intacta a informacao, ou seja, a informacao deve man-
ter todas as caracterısticas originais estabelecidas pelo proprietario da informacao
[Moreira, 2001];
• Disponibilidade: propoe garantir que a informacao deve estar disponıvel para a
pessoa certa no momento que ela precise [Moreira, 2001].
Os incidentes de seguranca da informacao vem aumentando consideravelmente ao longo
dos ultimos anos e podem assumir formas variadas, tais como: infeccao de sistemas com-
putacionais por vırus, acesso nao autorizado, furto de informacao proprietaria, invasao de
sistemas, entre outras [Zapatar e Suzuki, 2005].
Um dos principais motivadores desse aumento e a Internet, que cresceu muito passando
de alguns milhares de usuarios na decada de 80 para centenas de milhoes de usuarios
4
nos dias atuais [Zapatar e Suzuki, 2005]. Alem disso, ha o aumento dos incidentes de
seguranca ocasionados pelas vulnerabilidades1 nos sistemas computacionais.
E importante salientar que nao sao so as ameacas externas que representam riscos a
uma corporacao ou a um indivıduo, os proprios funcionarios representam um alto risco
quando mal intencionados ou mesmo quando nao sao conscientes dos riscos envolvidos na
manipulacao de informacoes [Zapatar e Suzuki, 2005].
1.2 Os Tres Pilares da Seguranca da Informacao
Quando se fala em seguranca da informacao, faz-se necessario considerar tres pi-
lares inter-relacionados. Esses tres pilares sao: as pessoas, os processos e as tecnologias
[Fonseca, 2006]. Esses tres pilares apoiados uns nos outros conseguem suportar um peso
maior e desta forma conseguir impedir o surgimento de problemas.
• Pilar 1 - Pessoas: Um dos elementos mais importantes da seguranca da informacao.
A maioria dos casos de incidentes dentro de uma organizacao contam com o apoio,
intencional ou nao, de pessoal interno [Moreira, 2001]. E comum nas corporacoes
deparar com funcionarios que deixam sua senha de acesso ao sistema escrita em lugar
visıvel a todos, ou mesmo que passam sua senha a outras pessoas. Sao as pessoas
que manipulam o sistema e tem acesso direto as informacoes. Daı a preocupacao
em capacitar e conscientizar os funcionarios como forma de evitar incidentes de
seguranca [Zapatar e Suzuki, 2005].
• Pilar 2 - Processos: Compreende a estrategia de seguranca, definicao e adocao das
polıticas de seguranca. Atraves de processos bem definidos, uma corporacao del-
ega a seguranca como uma responsabilidade de todos, pois sao os processos que
determinam o que deve ou nao ser feito.
• Pilar 3 - Tecnologias: Sao as solucoes empregadas para suportar os processos de-
scritos. E atraves das tecnologias que se aplica as polıticas de seguranca e seu
monitoramento [Zapatar e Suzuki, 2005].
1.3 Tecnologias
O maior desafio da industria mundial de software de seguranca e prover solucoes em
curto prazo a partir da descoberta de determinada ameaca ou problema. Foi-se o tempo
1Vulnerabilidade e definida como uma falha no projeto, implementacao ou configuracao de um software
ou sistema operacional, que quando explorada por um invasor resulta na violacao de seguranca de um
computador [CERT.BR, 2006].
5
em que tudo se resumia a encontrar um antivırus eficaz, atualmente os vırus nao sao os
unicos viloes do mundo digital [Moreira, 2001].
A seguranca da informacao deve estar atrelada a um plano de gestao de seguranca que
se constitui basicamente de tres partes [Moreira, 2001]:
• A primeira parte consiste em realizar o levantamento e a classificacao dos ativos de
uma organizacao ou pessoa, ou seja, ativos sao os elementos que a seguranca busca
proteger. Os ativos possuem valor para as empresas e precisam ser protegidos de
forma adequada para que seus negocios nao sejam prejudicados.
• O segundo consiste na avaliacao do grau de risco e das vulnerabilidades destes ativos;
• E a terceira diz respeito a infra-estrutura de tecnologias, envolvendo desde a aquisicao
de ferramentas ate a configuracao e instalacao de solucoes.
As tecnologias que dao suporte a infra-estrutura incluem diversas funcionalidades im-
portantes no processo de seguranca da informacao de uma organizacao, tais como a identi-
ficacao de usuarios, a criptografia dos dados e a defesa contra ameacas externas e internas
[Zapatar e Suzuki, 2005].
Atualmente um profissional de seguranca da informacao, tem a sua disposicao uma
gama de ferramentas para garantir a seguranca dos ativos de uma corporacao. Estas
ferramentas se dividem em basicamente tres blocos de solucoes [Zapatar e Suzuki, 2005],
como pode ser visto na figura 1.1.
Figura 1.1: Blocos de solucoes [Zapatar e Suzuki, 2005]
Gestao de Identidade
A gestao de identidade compreende as tecnologias ou ferramentas que permitem que
seja feita a correta identificacao de um usuario, para assim lhe garantir o direito de acesso
a um determinado sistema computacional de acordo com o seu perfil. Essas ferramentas
sao denominadas ferramentas de autenticacao.
6
As ferramentas de autenticacao permitem identificar unicamente um usuario e verificar
a autenticidade de sua identidade por meio de variados mecanismos, tais como, mecanis-
mos de login/senha, certificados digitais, dispositivos portateis (tokens, smart cards) ou
mesmo a biometria [Zapatar e Suzuki, 2005].
Defesa Contra Ameacas
A defesa de ameaca consiste em acoes preventivas ou corretivas, na defesa contra
ameacas a seguranca de uma organizacao. Este bloco de solucoes compreende acoes de
implementacao de medidas necessarias para evitar a troca de informacoes nao autorizadas,
o monitoramento de redes e aplicacoes visando a deteccao de atividades de intrusao,
ataques externos e a protecao contra infeccao de pragas virtuais [Zapatar e Suzuki, 2005].
Criptografia
Este bloco de solucoes e responsavel por garantir a confidencialidade das informacoes,
atraves da aplicacao de algoritmos de criptografia, variando desde a criptografia de in-
formacoes gravadas em dispositivos de armazenamento (Hard Disks), ate a criptografia das
informacoes em transito visando uma comunicacao mais segura [Zapatar e Suzuki, 2005].
1.4 Autenticacao e Controle de Acesso
Quando falamos em controle de acesso, estamos nos referindo a questoes que dizem re-
speito ao acesso de recursos de um sistema computacional, desta forma, segundo [Stamp, 2006],
temos duas vertentes principais para a realizacao do controle de acesso a sistemas, sendo
elas:
• A autenticacao;
• A autorizacao.
[Stamp, 2006], elucida-nos que a autenticacao permite (ou nao) o acesso de um usuario
ao sistema. Porem, quando um usuario e autenticado, nao necessariamente ele tem acesso
a todos os recursos do sistema, sendo assim faz-se necessario que o sistema tenha uma
polıtica de restricao que restrinja as acoes dos usuarios ja autenticados. Este processo e
o que define a autorizacao.
Sendo assim, a autenticacao diz se voce e mesmo quem diz ser e a autorizacao diz
se um usuario ja autenticado tem ou nao permissao para realizar determinada acao no
sistema [Stamp, 2006].
7
1.4.1 Metodos de Autenticacao
Um problema fundamental na seguranca da informacao e o de autenticar um humano
perante uma maquina [Silberchatz et al., 2004]. Ou seja, temos que convencer o sistema
que somos de fato quem dizemos ser. Basicamente um homem pode ser autenticado
perante uma maquina com base em qualquer combinacao de algo que voce sabe, algo que
voce tem ou algo que voce e [Costa, 2006].
1.5 Senhas
Uma senha e algo que voce sabe, e mais ainda, e algo que um computador pode
verificar se voce sabe, pois teoricamente as senhas seriam algo que mais ninguem alem de
voce tem conhecimento, por se tratar de algo pessoal e intrasferıvel [Stamp, 2006].
Mas por que as senhas sao mais usadas no processo de autenticacao em relacao a
dispositivos biometricos ou cartoes de acesso, visto que os dois ultimos sao mais seguros
que as senhas? Um dos motivos e o de que as senhas e a sua verificacao por um sistema
computacional e feita de forma bem menos complexa e mais barata em relacao ao uso de
sistemas biometricos ou cartoes de acesso.
De acordo com [Stamp, 2006], atualmente as senhas ja nao sao consideradas seguras
pelo fato de que os usuarios ao selecionarem as suas senhas perante o sistema tendem a
escolher senhas ruins ou fracas do tipo data do seu aniversario, seu sobrenome, etc. Esta
acao de escolher senhas fracas facilita a quebra das senhas o que prejudica seriamente a
seguranca de um sistema computacional.
1.6 Biometria e Seguranca da Informacao
Como veremos com mais detalhes no capitulo 2, a biometria e um metodo de auten-
ticacao que verifica “algo que voce e”, ou seja o usuario passa a ser a senha [Magalhaes e Santos, 2003].
Existem varios tipos de dados biometricos que podem ser utilizados no processo de
autenticacao tais como, impressoes digitais, reconhecimento de face, reconhecimento da
dinamica da digitacao, entre outras.
Na area de seguranca da informacao, o principal impulso por tras da biometria e a
substituicao das senhas ou a combinacao de dados biometricos com metodos de auten-
ticacao mais comuns, como por exemplo, o uso da dinamica da digitacao aliado as senhas
[Stamp, 2006].
8
1.7 Dinamica da Digitacao
A tecnica biometrica da dinamica da digitacao (que sera vista com mais detalhes no
capıtulo 2) tem se mostrado uma solucao bastante viavel para sistemas computacionais
pelo fato de que esta tecnica prove um nıvel maior de seguranca aos mecanismos de
autenticacao de usuarios, possui um baixo custo de implementacao nao necessitando de
dispositivos caros para a aquisicao de informacoes.
9
Capıtulo 2
Biometria
2.1 O que e Biometria?
O termo biometria deriva do grego bios (vida) + metron (medida), onde no sis-
tema computacional biometria refere-se a utilizacao das caracterısticas de um indivıduo
para proceder a sua autenticacao/identificacao [Magalhaes e Santos, 2003]. Tecnologias
biometricas podem ser definidas como: ”metodos automaticos de verificacao ou identi-
ficacao de identidade de uma pessoa viva baseada em caracterısticas fisiologicas ou de
comportamento”[Marcelo, 2001]
Segundo Costa(2006), as medidas biometricas podem ser divididas em dois grupos, a
biometria fisiologica e a comportamental. A biometria fisiologica engloba caracterısticas
tais como padrao de ıris, impressoes digitais, forma do contorno da mao e da face, e a
principal vantagem deste tipo de biometria e que as caracterısticas fisiologicas sao relati-
vamente estaveis. Ja a biometria comportamental e um reflexo de atitudes psicologicas
do indivıduo, tais como a forma como o indivıduo assina o seu nome, o padrao de sua voz
ou ritmo de sua digitacao.
Teoricamente, qualquer caracterıstica humana, fısica ou comportamental, pode ser
usada para a identificacao de pessoas, desde que ela satisfaca os seguintes requerimentos
[Cavalcanti, 2005]:
• Universalidade: significa que todas as pessoas devem possuir a caracterıstica;
• Singularidade: indica que esta caracterıstica e unica em cada pessoa;
• Permanencia: significa que a caracterıstica nao deve variar muito;
• Mensurabilidade: indica que a caracterıstica pode ser medida quantitativamente.
Na pratica, existem outros requerimentos importantes, que relaciona os requerimentos
acima com algumas tecnicas biometricas [Cavalcanti, 2005]:
10
• Desempenho: refere-se a precisao de identificacao, os recursos requeridos para con-
seguir uma precisao de identificacao aceitavel e ao trabalho ou fatores ambientais
que afetam a precisao da identificacao;
• Aceitabilidade: indica o quanto as pessoas estao dispostas a aceitar os sistemas
biometricos;
• Permanencia: significa que a caracterıstica nao deve variar muito;
• Protecao: refere-se a facilidade de enganar o sistema com tecnicas fraudulentas.
Tanto a tecnica de autenticacao biometrica fisiologica quanto a comportamental
proveem nıveis de identificacao e seguranca maiores do que aquelas baseadas em
sistema de login/senhas ou cartoes de forma isolada [Costa, 2006].
A autenticacao baseada em biometria tem como objetivo prover uma maior qualidade
e seguranca no servico de autenticacao, pelo fato de que a biometria se baseia em car-
acterısticas pessoais e unicas de um indivıduo. Desta forma torna-se mais difıcil para
as pessoas nao autorizadas utilizarem o sistema, mantendo assim a confiabilidade e a
integridade dos dados.
2.2 Metodos Basicos de Identificacao
A maioria dos metodos de autenticacao de usuarios baseia-se em um dos tres princıpios
basicos de identificacao [Araujo, 2004]:
• Autenticacao usando objetos fısicos (ex.: chave de porta, cartao magnetico);
• Autenticacao usando senhas (login/senha);
• Autenticacao usando biometria (impressao digital, retina, reconhecimento da dinamica
da digitacao, etc.).
A partir destes tres princıpios basicos pode-se criar diferentes maneiras de identi-
ficacao, podendo estes esquemas ser menos ou mais complexos de acordo com o grau
de seguranca que o sistema necessite. No primeiro metodo o acesso a determinado lu-
gar exige que o usuario apresente algum cartao magnetico ou mesmo use alguma chave
para abrir a porta e conseguir o seu acesso. No segundo metodo o acesso e permitido
mediante a apresentacao do nome de usuario e senha do usuario e no terceiro metodo o
sistema responsavel por verificar a veracidade do usuario exige que seja apresentada uma
caracterıstica biometrica, a qual e inerente a cada pessoa [Costa, 2006].
11
Um ponto importante a ser observado e que no primeiro e segundo metodos, apesar
de ser necessario para a autenticacao a apresentacao de algum objeto fısico e/ou a apre-
sentacao do login/senha, estas informacoes podem ser (e comummente sao), passadas de
pessoa para pessoa, o que permitiria que pessoas nao autorizadas fizessem uso do sistema.
Ja no terceiro metodo, mesmo que o usuario passe a outrem o seu login e senha ou
mesmo a posse de seu cartao magnetico, por exemplo, uma impressao digital, impoe que
a pessoa que apresente o seu login/senha seja realmente quem diz ser. A autenticacao
do usuario baseada na biometria prove um bom nıvel de seguranca, visto que o proprio
usuario e a senha, diminuindo-se a probabilidade de acesso indevido ao sistema.
Na figura 2.1 e apresentado um diagrama de blocos com as abordagens do processo de
autenticacao associado as tecnologias biometricas. As abordagens de posse e conhecimento
podem ser combinadas com a biometrica cujo objetivo e prover uma maior seguranca na
autenticacao [Araujo, 2004]. A figura mostra tambem os principais tipos de biometrias.
Figura 2.1: Abordagens de Autenticacao associadas as Tecnologias Biometricas
[Araujo, 2004]
12
2.3 Verificacao vs Identificacao
Um sistema biometrico pode ser identificado de acordo com a maneira que seus dados
de entrada sao comparados no banco de dados, sendo elas a verificacao e a identificacao
[Gava, 2006].
Na verificacao a informacao biometrica fornecida pelo usuario e comparada com o
modelo referente ao fornecido pelo mesmo no momento de seu processo de cadastramento,
ou seja, tem-se uma verificacao ”um-para-um”, veja a figura 2.2.
Figura 2.2: Verificacao Um para Um
Ja na identificacao tem-se uma comparacao ”um-para-muitos”, ou seja, neste caso a in-
formacao biometrica fornecida pelo usuario e comparada com todos os modelos existentes
no banco de dados. Como e mostrado na figura 2.3.
Figura 2.3: Identificacao Um para Muitos
Segundo ROCHA (2004), o processo de verificacao e mais usado nos sistemas biometricos
13
por possuir algumas vantagens em relacao ao processo de identificacao: como a verificacao
analisa somente o modelo referente a determinado usuario, o processamento da verificacao
e menor do que o do processo de identificacao. Sendo assim tem-se resultados mais rapidos
pelo fato de nao haver necessidade de comparacao com todos os modelos existente no
banco de dados.
2.4 Medidas de Desempenho em Sistemas Biometricos
O desempenho de um sistema biometrico e medido tendo como base dois tipos de
erro. Esses dois tipos de erros sao conhecidos como FAR (False Accept Rate / Taxa de
Falsa Aceitacao) e FRR (False Rejection Rate / Taxa de Falsa Rejeicao). O FAR e o
FRR sao expressos em porcentagens e quanto menor for as taxas encontradas maior sera
a eficiencia do sistema [Costa, 2006].
As taxas de falsa aceitacao e falsa rejeicao (FAR e FRR) afetam de forma direta o
nıvel de precisao de um sistema biometrico. Desta forma, os numeros fornecidos por estas
taxas de erro devem ser considerados como fator primario durante o processo de avaliacao
destes sistemas [Rocha, 2004].
2.4.1 FAR
A FAR (False Accept Reject) e a estimativa de um usuario mal intencionado ser aceito
quando faz uma autenticacao usando uma identidade falsa. Assim se o usuario A usando os
dados de autenticacao do usuario B e conseguir ter acesso ao sistema entao fica configurado
um erro de falsa aceitacao. A FAR e definida pela seguinte equacao [Costa, 2006]:
FAR = (Total de Falsa Aceitacao / Total de Contas Tentadas)%
2.4.2 FRR
A FRR (False Rejection Rate) e a estimativa de o sistema biometrico rejeitar um
usuario verdadeiro. Por exemplo, se o usuario C usando os seus proprios dados de auten-
ticacao nao conseguir obter acesso ao sistema em que esta cadastrado, entao configura-se
uma falsa rejeicao. A FRR e definida pela seguinte equacao [Costa, 2006]:
FRR = (Total de Falsa Rejeicao / Total de Contas Tentadas)%
2.5 Tipos de Sistemas Biometricos
Os sistemas biometrcios sao divididos basicamente em dois tipos, sendo o primeiro
os fisiologicos e o segundo os comportamentais [Costa, 2006]. Nos topicos subsequentes
14
veremos com mais detalhes os principais tipos biometrcis tanto fisiologicos quanto os
comportamentais.
2.6 Sistemas Biometricos Fisiologicos
2.6.1 Reconhecimento de Face
No reconhecimento biometrico atraves da face, o sistema e responsavel por capturar
uma imagem do rosto do usuario e posteriormente, com o uso de algoritmos, delimitar a
geometria e as proporcoes da face do indivıduo [Gava, 2006]. Esses dados sao armazenados
na base de dados do sistema, e serao usados nas futuras comparacoes para verificar a
legitimidade do usuario.
Atualmente o reconhecimento da face e uma das areas que mais crescem na industria
da biometria. O fato deste tipo de reconhecimento nao ser tao intrusivo ao usuario facilita
a sua proliferacao neste meio. Segundo CAVALCANTI (2005), para reconhecer o rosto
de uma pessoa sistemas biometricos usam basicamente tres estrategias, sendo elas:
• O reconhecimento atraves da geometria e das proporcoes da face;
• Analise estatıstica da face completa, utilizando algoritmos como o ACP (Analise de
Componentes Principais) e Redes Neurais e.
• E a abordagem que extrai caracterısticas usando a transformando da Gabor em
partes da imagem.
Sistema biometricos baseados no reconhecimento da face possuem um nıvel de segu-
ranca satisfatorio, mas tem como desvantagem o fato de que podem falhar quando os
usuarios alteram alguns atributos esteticos, tais como: uso de oculos, barba, bigode e
chapeus.
2.6.2 Reconhecimento da Impressao Digital
De todas as tecnicas biometricas, as que se baseiam na impressao digital lideram o
mercado. Isso se deve pelo fato de que os dispositivos de capturas de digitais sao baratos
e podem ser acoplados em mouses e teclados [Cavalcanti, 2005].
A estabilidade e a unicidade das impressoes digitais sao bem estabelecidas no meio
social, tanto que este tipo de reconhecimento e usado como uma forma de identificacao em
registros civis e processos criminais. Segundo COSTA (2006), a extracao de caracterısticas
sobre impressoes digitais se baseia em encontrar a posicao de pequenos pontos, chamados
de minucias, que estao presente nas digitais.
15
Tomando por base estas minucias, a digital coletada e comparada com as amostras
que estao armazenadas e caso esta comparacao obtenha uma amostra de igualdade, o
indivıduo tera a permissao concedida ao uso do sistema.
Um fator importante que deve ser observado neste tipo de autenticacao biometrica e
o nıvel de precisao do equipamento de captura, pois quando a digital capturada nao tem
um bom nıvel de precisao pode levar o sistema a nıveis de confiabilidade mais baixos.
Na figura abaixo pode-se observar nove impressoes digitais (de dedos diferentes), com
qualidades diferentes [Magalhaes e Santos, 2003].
Figura 2.4: Impressoes Digitais com Qualidades Diferentes
2.6.3 Reconhecimento da Geometria da Mao
O reconhecimento da geometria da mao tem o mesmo princıpio de comparacao do
reconhecimento por impressao digital. Neste tipo de reconhecimento o sistema avalia o
comprimento dos dedos, largura, area e em sistema mais complexos a veias da palma da
mao. Na figura 2.5 temos um aparelho biometrico que faz o reconhecimento da geometria
da mao.
De acordo com GAVA (2006), a analise da largura, do comprimento e da area da
mao sao independentes e nao descritivas o bastante para a identificacao, tornando-se
necessario combinar essas varias caracterısticas individuais para alcancar uma verificacao
mais robusta.
16
Figura 2.5: Leitor da Geometria da Mao[Gava, 2006]
2.6.4 Reconhecimento da Iris
A ıris, que e a parte colorida do olho, guarda um conjunto de caracterısticas complexas
e que podem ser usadas para distinguir uma pessoa da outra [Gava, 2006]. Ela possui
algumas variacoes em seu formato, e sao essas variacoes que sao usadas para diferenciar
uma pessoa da outra atraves da sua ıris[Vigliazzi, 2003].
Assim como a impressao digital, a ıris ocular e unica, tornando-se uma medida poderosa
para diferenciacao e identificacao de usuarios. Este tipo de sistema analisa o formato da
ıris e a disposicao dos vasos sanguıneos. Comparando estas informacoes com as amostras
ja armazenadas o sistema trara um alto grau de confiabilidade na autenticacao de usuarios
[Gava, 2006].
Um ponto negativo deste tipo de sistema e o fato do mesmo ser considerado um tanto
quanto intrusivo, fato este que e motivado pelo grande incomodo que ele gera por usar
feixes de luz para realizar a varredura da ıris do olho.
2.7 Sistemas Biometricos Comportamentais
Os sistemas Biometricos comportamentais dizem respeito a atitudes psicologicas de
um indivıduo, tais como a voz, a assinatura e o ritmo de sua digitacao. Nos topicos sub-
sequentes serao abordados os principais tipos biometricos comportamentais, abordando
de foco especial a dinamica da digitacao.
2.7.1 Reconhecimento de Voz
Sistemas de identificacao de usuario atraves da fala tratam a voz com uma funcao
e se valem dos padroes harmonicos para separar um impostor de um usuario autentico
[Cavalcanti, 2005].
A voz e utilizada em sistemas automaticos de verificacao/identificacao de locutor.
17
Este tipo de reconhecimento e muito atrativo visto que e considerado pouco invasivo pelo
usuario.
No reconhecimento de voz o sistema de identificacao baseia-se em caracterısticas unicas
do indivıduo, tais como entonacao da voz, sotaque, frequencia de voz e outras, no intuito
de identificar o usuario.
Um ponto negativo deste tipo de sistema e o fato de que pode haver mudancas na voz
do usuario oriundas de seu estado emocional e fısico tais como: tristeza, cansaco, alegria,
gripe e rouquidao, fatores que poderiam levar o sistema a recusar um usuario legitimo.
2.7.2 Reconhecimento da Assinatura Manuscrita
O reconhecimento digital da assinatura pode ser realizado de duas formas, a off-line
e a on-line [Heinen e Osorio, 2005]. No reconhecimento off-line o usuario assina em uma
folha de papel que e posteriormente digitalizada, analisada e comparada com as amostras
disponıveis. Ja no reconhecimento on-line o usuario assina diretamente em um hardware
especıfico (mesa digitalizadora ou tablet), que e conectado ao software de reconhecimento,
o qual vai analisar e comparar a assinatura.
Uma dificuldade inerente a esta abordagem e que a assinatura de uma mesma pessoa
varia bastante e isso pode ser agravado dependendo do estado emocional do usuario ou
mesmo por problemas de saude relacionados com a coordenacao motora [Cavalcanti, 2005].
2.8 Dinamica da Digitacao
O processo de autenticacao de sistemas e comumente baseado em senha, e esta e a
forma mais popular e simples de seguranca e identificacao no meio tecnologico atual. Mas,
por ser um metodo simples, e tambem considerado um metodo fraco e que da brechas
a ataques de impostores que tenham a intencao de fraudar de algum modo os sistemas
protegidos por senhas [Costa, 2006].
Porem, se analisarmos o processo de autenticacao baseado em senhas de forma mais
profunda, pode-se notar que os usuarios destes sistemas protegidos certamente impoem
um ritmo ao pressionar e soltar as teclas que compoem a sua senha [Joyce e Gupta, 1990],
ou seja, cada usuario tem um ritmo proprio para digitar a sua senha.
Sabendo que existem sistemas que sao capazes de verificar se a senha que o usuario
digita e ou nao correta, ha tambem a necessidade desenvolver sistemas que sao capazes
de verificar se quem esta digitando a senha deseja fraudar o sistema, visto que por mais
que o impostor conheca a senha, o ritmo de sua digitacao nao sera o mesmo do usuario
verdadeiro e desta forma o impostor nao conseguira fraudar o sistema de autenticacao.
Tendo isto posto, a dinamica da digitacao e definida como sendo o processo de analisar
18
o modo que um usuario digita informacoes importantes (por exemplo, senha de acesso de
algum sistema computacional) em um terminal [Monrose et al., 1999], onde o terminal fica
responsavel por monitorar suas entradas atraves do teclado, com o objetivo de autentica-lo
com base em seu ritmo de digitacao da senha habitual.
2.8.1 Conceitos Basicos
No momento da autenticacao do usuario, o mesmo digita a senha ou informacao alvo.
Neste momento o sistema biometrico e responsavel por recolher dados como os tempos de
pressionamento, soltura das teclas (latencias) e tempo total de digitacao da senha, dados
esses que serao utilizados para a extracao de caracterısticas que formarao uma amostra
[Araujo, 2004]. Caso este usuario ainda nao esteja cadastrado no sistema uma quantidade
destas amostras e armazenada (esta quantidade tambem e variavel em cada trabalho),
formando um conjunto de treinamento, do qual sera gerado o modelo ou template1. Mas,
caso o usuario ja esteja cadastrado no sistema, uma amostra e calculada e enviada para o
classificador, que tem a funcao de decidir se o usuario pode ou nao ter acesso ao sistema
de acordo com a verificacao ou identificacao de sua identidade.
2.8.2 Informacao Alvo
Quando nos referimos a informacao alvo, esta se refere ao conjunto de caracteres que
serao digitados pelo usuario. Esta informacao e monitorada pelo sistema de autenticacao
que a coleta, a analisa e posteriormente autoriza ou nao a entrada do usuario de acordo
com a comparacao da informacao fornecida pelo mesmo com o modelo existente no banco
de dados [Joyce e Gupta, 1990].
A informacao alvo pode ser o login e/ou senha, ou acrescidos pelo primeiro nome
e ultimo nome. Em seus trabalhos [Joyce e Gupta, 1990] utilizaram um total de oito
amostras para a formacao do modelo ou template e um classificador estatıstico.
Basicamente existem duas maneiras principais de trabalhar com a dinamica da digitacao
em relacao a informacao alvo. A primeira utiliza uma senha fixa para todos os usuarios
do sistema e o segundo usa senhas diferentes por pessoa, ou seja, na primeira abordagem
(senha fixa), existe uma senha unica ou um texto unico para todos os usuarios do sistema
e ja na segunda abordagem (senhas diferentes), cada usuario pode escolher uma senha
para obter acesso ao sistema.
1Template e a representacao das informacoes extraıdas das amostras biometricas fornecidas pelo in-
divıduo no seu processo de cadastramento[Araujo, 2004]
19
2.8.3 Quantidade de Amostras
Segundo [Bleha et al., 1990], a quantidade de amostras coletadas e armazenadas pelo
sistema de autenticacao torna-se um aspecto crucial na medida em que os erros de clas-
sificacao tendem a aumentar quando a quantidade de amostras captadas e baixa. Mas
de acordo com as pesquisas de [Joyce e Gupta, 1990], os testes realizados apontaram que
para a obtencao de resultados satisfatorios, em que a utilizacao de menos que seis amostras
para a formacao nao e recomendavel, visto que o sistema nao consegue obter um padrao
conciso sobre como o usuario digita a sua informacao alvo (senha), e desta forma o sistema
teria mais chances de errar.
2.8.4 Extracao das Caracterısticas
Segundo MONROSE (1999), as caracterısticas que devem ser escolhidas para repre-
sentar cada usuario devem ser altamente repetitivas no mesmo usuario e diferente para
os demais, tornando-se assim altamente discriminantes.
A caracterıstica mais utilizada pelos sistemas de autenticacao baseados na dinamica
da digitacao e a latencia da digitacao. A latencia da digitacao representa o intervalo de
tempo entre as digitacoes de teclas sucessivas pelo usuario [Costa, 2006]. Este intervalo
de tempo e obtido pela diferenca entre o pressionamento das teclas ti e ti+1.
Outra caracterıstica bastante usada e a duracao da digitacao, abordagem que foi uti-
lizada pela primeira vez no ano de 1997 por [Obaidat e Sadoun, 1997], e representa o
intervalo de tempo em que uma tecla fica pressionada pelo usuario.
Quando o usuario digita as informacoes que compoem sua senha, o sistema constroi
um vetor composto dos eventos ”tecla-pressionada”e ”tecla solta”. De acordo com os
estudos de [Costa, 2006], se uma senha composta de n caracteres e digitada, o resultado
sera um vetor de dimensao (2n), onde cada posicao representara uma unidade de tempo
calculada em funcao dos eventos tecla pressionada e tecla solta. Desta forma, supondo
que se tenha uma senha com n = 4 caracteres, sendo eles 1-2-3-4 o vetor teria dimensao
igual a 8, e contera os tempos [0, 0.30, 0.31, 0.60, 0.61, 0.75, 0.76, 0.95] como e mostrado
na figura 2.6 Os valores mostrados na figura sao exemplos de digitacao de um usuario e
nao valores fixos. A unidade de tempo adotada foi o segundo.
Outra caracterıstica que pode ser utilizada no contexto da dinamica da digitacao
e a pressao de tecla, que representa o nıvel de pressao aplicada na tecla pelo usuario
[Costa, 2006]. Mas, esta caracterıstica nao e muito utilizada pelo fato de que e necessario
o uso de um teclado especializado que capture a pressao aplicada na tecla pelo usuario.
20
Figura 2.6: Extracao de Caracterısticas
2.8.5 Tentativas de Autenticacao
De acordo com os testes de [Haider et al., 2000], usuarios legıtimos na maioria das
vezes falhavam da primeira vez, mas na segunda tentativa, realizava a autenticacao
com sucesso. Sendo assim a maioria dos sistemas de autenticacao baseados na tecnica
biometrica de dinamica da digitacao passaram a adotar duas tentativas no processo de
autenticacao.
2.8.6 Classificador
O classificador e a parte responsavel pela tomada de decisao, ou seja, de determinar
se a identidade de determinado usuario e verdadeira ou nao. Os classificadores estaticos
sao os mais utilizados nas bibliografias estudadas. Mas ha tambem outros tipos de clas-
sificadores tais como o classificador nebuloso (fuzzy), que e baseado na logica nebulosa e
os classificadores neurais, baseados por sua vez em redes neurais [Costa, 2006].
No trabalho de [Haider et al., 2000], foram usados de forma combinada os tres tipos
de classificadores supracitados (estatico, nebuloso e neural) e nao obteve resultados muito
satisfatorios em relacao aos outros trabalhos.
A maioria dos trabalhos relatam que os melhores resultados sao obtidos quando os
sistemas de autenticacao fazem uso do classificador estatico [Haider et al., 2000].
2.8.7 Abordagens da Dinamica da Digitacao
A autenticacao biometrica baseada na dinamica da digitacao pode ser dividida em duas
abordagens, estas abordagens se diferenciam em relacao ao momento da autenticacao e
em relacao ao nıvel de processamento gasto pelo sistema [Monrose et al., 1999],sendo elas:
• Estatica: Neste tipo de abordagem, a autenticacao se da no inıcio da interacao do
usuario com o sistema, geralmente no momento do login. Este tipo de abordagem
e o mais usado em sistemas de autenticacao biometricos, pelo fato do mesmo ter
uma complexidade de desenvolvimento nao tao elevada e despender de um nıvel de
processamento computacional baixo.
21
• Contınua: Na abordagem contınua a autenticacao e realizada varias vezes durante a
interacao do sistema com o usuario. Esta abordagem e mais segura que a abordagem
estatica visto que ela pode realizar a deteccao caso haja uma troca de usuarios, mas
por outro lado nesta abordagem exige-se um maior processamento computacional
em relacao a abordagem estatica.
O fato do nıvel de processamento computacional da abordagem estatica ser menor que
na abordagem dinamica se deve ao fato de que na abordagem estatica ha somente uma
autenticacao de usuario e que se realiza no momento de seu login no sistema, ao contrario
da abordagem dinamica que faz varias autenticacoes durante o perıodo em que o usuario
faz uso do sistema.
2.8.8 Aplicacoes da Dinamica da Digitacao
A autenticacao biometrica baseada na dinamica de digitacao tem muitas aplicacoes na
area de seguranca da informacao, visto que usando este tipo de autenticacao biometrica
e aliando-a ao sistema tradicional de login e senha e possıvel diminuir a probabilidade
de que um usuario nao autorizado acesse indevidamente o sistema e venha a ter acesso
a informacoes sigilosas ou mesmo destruı-las. O uso da dinamica de digitacao e util em
sistemas computacionais que necessitam de um maior nıvel de seguranca, pelo fato de
que:
• Maior nıvel de seguranca: prove um nıvel maior de seguranca aos mecanismos de
identificacao tradicionais presentes em controles de acesso, pois somam-se as vanta-
gens das caracterısticas biometricas que sao inerentes ao usuario.
• Baixo Custo: este tipo de autenticacao faz o uso apenas de um teclado convencional
para aquisicao das informacoes que serao analisadas pelo software, o que torna esse
tipo de autenticacao muito mais barato em relacao aos outros tipos de autenticacao
biometrica que em sua maioria fazem uso de dispositivos caros para a aquisicao das
informacoes.
• Nao intrusivo: a aquisicao das amostras necessita que o usuario digite apenas sua
string alvo, processo que o mesmo ja esta habituado a realizar para obter acesso
a sistemas computacionais. Esta vantagem nao e comum em outras tecnologias de
acesso baseadas em biometria, tomando como exemplo a de identificacao da ıris que
e obtida atraves da varredura do olho utilizando um feixe de luz, fazendo com que
os usuarios sintam-se desconfortaveis.
22
2.9 Verificacao de Padroes
De acordo com [Haider et al., 2000], reconhecimento de padroes e o estudo de como
as maquinas podem observar o meio, aprender e distinguir padroes de interesse neste
meio e serem capazes de tomar decisoes certas acerca das categorias a que pertencem tais
padroes.
No que tange a biometria, que e uma das areas onde se aplica o reconhecimento de
padroes, o padrao poderia ser uma impressao digital, assinatura manuscrita ou mesmo a
dinamica de digitacao de um indivıduo [Araujo, 2004].
O problema do reconhecimento de padroes esta relacionado com as tarefas de clas-
sificacao, onde as classes podem ser definidas previamente pelo projetista do sistema,
ou pode estar baseada em um aprendizado feito acerca da similaridade dos padroes
[Costa, 2006].
Basicamente, em sistemas que necessitam fazer o reconhecimento de padroes, dentre
eles temos a biometria, tem-se usado quatro tipos de tecnicas como forma de resolver os
problemas do reconhecimento de padroes [Haider et al., 2000]:
• Reconhecimento estatıstico: As caracterısticas sao da forma de tuplas ou vetores,
onde sao utilizadas regras de decisao, teoria da probabilidade e outros procedimentos
estatıscos como forma de proceder o reconhecimento. Esse e o tipo de reconheci-
mento de padroes mais usado.
• Reconhecimento Sintatico: e tambem conhecido com reconhecimento estrutural de
padroes, onde as caracterısticas estruturais dos elementos sao representadas sintati-
camente.
• Reconhecimento por Logica Nebulosa: estes classificadores tratam os padroes em
questao de grau de pertinencia a uma determinada classe.
• Reconhecimento por Redes Neurais: pode ser considerado como um tipo particular
de reconhecimento estatıstico, pelo fato das caracterısticas serem formadas por tu-
plas ou vetores. No entanto por possuir algumas capacidades particulares, tais como
capacidade de generalizacao e aprendizagem a partir de exemplos, o reconhecimento
por redes neurais e tratado como uma area distinta ao reconhecimento estatıstico.
2.10 Outros Tipos de Biometria
Dentre as novas tecnologias biometricas que vem sendo desenvolvidas podemos citar
a biometria de DNA, os termogramas de mao, face e veias da mao e a dinamica do andar
[Julio, 2007].
23
A biometria de DNA (acido desoxirribonucleico) e unica para cada pessoa, exceto para
gemeos, e e muito utilizada em aplicacoes forenses (investigativas) para o reconhecimento
de pessoas [Julio, 2007].
O termograma de mao, face e veias da mao, e um metodo biometrico que captura
o calor emitido pelo corpo. Sendo assim este metodo e pouco invasivo ao usuario. Um
ponto negativo deste metodo e o fato de que o mesmo so e viavel e produz resultados
confiaveis quando e feito em ambientes controlados [Julio, 2007].
A dinamica de andar analisa a forma particular em que cada indivıduo anda con-
siderando tempo e espaco. Ainda nao ha estudos extensivos a respeito deste tipo de
biometria e sobre sua confiabilidade [Julio, 2007].
2.11 Comparacao entre as Tecnologias Biometricas
Na figura abaixo e apresentado uma comparacao entre as principais tecnologias biometricas
vistas anteriormente e leva em consideracao tres fatores como criterio de avaliacao:
• Desempenho: refere a capacidade de um sistema biometrico autenticar corretamente
um indivıduo de acordo com as caracterısticas biometricas inerentes ao sistema
[Araujo, 2004]
• Aceitabilidade: Indica o quao aceitavel e pelos usuarios passarem por este tipo de au-
tenticacao. Tem relacao direta com o nıvel de intrusao do sistema ao usuario[Araujo, 2004].
• Fraudavel: Indica a facilidade com que o sistema biometrico pode ser enganado por
usuarios e metodos fraudulentos [Araujo, 2004].
Figura 2.7: Comparacao entre as Tecnologias Biometricas [Araujo, 2004]
24
Capıtulo 3
Estado da Arte
3.1 Introducao
O reconhecimento de pessoas, bem como o uso de caracterısticas inerentes a cada indi-
viduo, analisados computacionalmente para autenticacao de pessoas pode ser considerado
um tema atual, mas, desde a antiguidade caracterısticas fısicas eram usadas para a iden-
tificacao de indivıduos. As bases da verificacao de pessoas atraves de suas caracterısticas
pessoais vem sendo exercitadas bem antes do surgimento dos computadores.
3.2 Biometria
A partir do seculo XIX, a crescente pesquisa na area de criminalıstica, com o objetivo
de relacionar caracterısticas fısicas com processos criminais, impulsionou a criacao de
varios dispositivos para mensuracao de indivıduos, principalmente o de reconhecimento
de impressoes digitais [Marcelo, 2001].
No entanto, a ideia de usar as caracterısticas pessoais no processo de identificacao
surgiu e se caracterizou ao longo da historia.
No ano de 782 da era Crista, foram encontradas placas soterradas na regiao do
Turquestao que continham um termo de acordo firmado pela afixacao da marcas dos
dedos de ambas as partes como forma de concordancia entre as partes [Marcelo, 2001].
Em 800 na regiao da India, analfabetos legalizavam seus papeis atraves de suas im-
pressoes digitais [Marcelo, 2001].
No ano de 1300, chineses empregavam a impressao digital em casos de crime e de
divorcio [Marcelo, 2001].
O ano de 1664 foi um ano de muito muita importancia para a autenticacao biometrica.
Neste ano o medico e anatomista Marcelo Malpighi publicou um trabalho com o nome de
”Epıstola sobre o orgao do tato”, trabalho no qual se fazia um estudo sobre os desenhos
25
das digitais e da palma da mao [Marcelo, 2001].
Em 1840, com o advento da fotografia, a mesma passou a ser usada como processo de
identificacao criminal, inicialmente na Suıca [Marcelo, 2001].
Em 1856, Jose Engel publicou o ”Tratado de desenvolvimento da mao humana”, tra-
balho que compreendia um estudo sobre os desenhos digitais [Marcelo, 2001].
Em 1882, Alfonse Bertillon criou o primeiro sistema cientifico de identificacao baseado
nas caracterısticas fısicas do homem (figura 3.1). Este sistema consistia no assinalamento
milimetrico de varias partes do corpo humano: diametro da cabeca, comprimento das
orelhas, estatura, envergadura e marcas particulares como tatuagens e cicatrizes. Estes
dados eram registrados em uma ficha antropometrica, que continha tambem a fotografia
do identificado em questao [Marcelo, 2001].
Figura 3.1: Tecnica de Identificacao Biometrica de Bertillon
Em 1888, Francis Galton, um nobre ingles foi incubido pela nobreza para desenvolver
um sistema de identificacao mais seguro que o antropometrico. Galton lancou as bases
cientificas da impressao digital, e apesar de seu sistema de identificacao pelas digitais ser
bastante rudimentar, o seu trabalho serviu como ponto de partida para os demais sistemas
dactiloscopicos [Marcelo, 2001].
Em 1900, Edward Richard Henry publicou na Inglaterra um livro de sua autoria
chamado ”Classification and users of finger prints”, que expunha seu novo sistema de
reconhecimento de impressoes digitais baseado em arcos, presilhas verticilos e compostos.
Onde um ano depois, em 1901, seu sistema passou a ser usado pela polıcia da Inglaterra
[Marcelo, 2001].
26
No Brasil o uso de caracterısticas biometricas para identificacao pessoal, passou a
ser mais usado a partir do ano de 1902. Neste ano Jose Alves Felix Pacheco, iniciou
no Rio de Janeiro a tomada da impressao digital nas fichas antropometricas. Em julho
de 1904 foi expedida a primeira carteira de identidade, que ainda usava assinalamentos
antropometrico juntamente com as digitais [Marcelo, 2001].
3.3 Dinamica da Digitacao
A tecnica de autenticacao biometrica baseada na dinamica de digitacao e baseada na
suposicao que as pessoas tem maneiras ou caracterısticas unicas de digitacao. A dinamica
da digitacao tambem e conhecida por alguns nomes tais como, dinamica de teclado, analise
de digitacao, biometria da digitacao e ritmo da digitacao [Umphress e Williams, 1985].
O uso da dinamica da digitacao em sistemas que usam caracterısticas biometricas
para autenticacao de usuarios vem crescendo. Boa parte deste crescimento se deve ao
fato de que a dinamica da digitacao possui uma viabilidade tecnica e financeira para ser
implementada, visto que a mesma e baseada em software e nao necessita de hardwares
especıficos para a captura das informacoes biometricas, fazendo com que o seu custeio
e complexidade de implementacao caiam em relacao as outras tecnicas de autenticacao
biometrica.
O uso das caracterısticas advindas da digitacao foi sugerido por Spillane em 1975, como
e citado por [Leggett e Usnik, 1990]. Como foi relatado nos trabalhos de [Umphress e Williams, 1985],
no ano de 1985 observou-se que os operadores de telegrafo possuıam uma maneira par-
ticular de digitar as mensagens a serem transmitidas. Sendo assim era possıvel para os
outros operadores de telegrafo identificar quem estava transmitindo determinada men-
sagem apenas escutando o som da digitacao dos pontos.
Em meados dos anos 70 esta observacao dos operadores de telegrafo passou a ser nor-
malizada e aplicada para a area de dinamica da digitacao, o que teve como consequencia
a publicacao de alguns trabalhos utilizando estas caracterısticas observadas para a auten-
ticacao de usuarios, validando assim a suposicao de que caracterısticas vindas do teclado
mostram verdadeiramente que cada pessoa tem uma caracterıstica singular de digitacao
e que essa caracterıstica podem ser usada para identificar pessoas.
Em 1985 [Umphress e Williams, 1985], publicaram um dos primeiros trabalhos cientıficos
envolvendo dinamica de digitacao para autenticacao pessoal. Neste trabalho foram uti-
lizados os intervalos de tempo entre teclas (latencia) em dois tipos distintos: no primeiro
um texto contendo 1400 caracteres no processo de cadastramento e no segundo um texto
contendo 300 caracteres no processo de cadastramento, sendo que o texto era imposto
pelo sistema, ou seja, o usuario nao tinha a opcao de digitar a string que desejava.
Uma das principais desvantagens que foram observadas no trabalho de [Umphress e Williams, 1985]
27
foi que devido ao tamanho da informacao e da quantidade de dados de entrada ser rela-
tivamente grande, obteve-se como consequencia, apenas uma taxa de erro dentre as duas
(FAR e FRR ) a ser analisada: a FAR, cujo valor foi de aproximadamente 6%. Tambem
foi observado que o tamanho dos textos de entrada dificulta a coleta de amostras.
Em 1988 [Leggett e Williams, 1987], estenderam o trabalho realizado por [Umphress e Williams, 1985],
mostrando que as singularidades da digitacao de cada pessoa poderia ser utilizada para
aumentar a seguranca em verificacoes estaticas de login e senha em conjunto com uma
frase nao tao grande como nos trabalho de [Umphress e Williams, 1985].
Em [Leggett e Usnik, 1990], que tambem estende os estudos de [Umphress e Williams, 1985]
e [Leggett e Williams, 1987], foi utilizado pela primeira vez o conceito de autenticacao de
usuarios baseada na dinamica da digitacao com abordagem dinamica. Anteriormente a
autenticacao do usuario era feita para conceder a permissao do mesmo para dar entrada no
sistema (Autenticacao Estatica), desta forma a autenticacao era feita antes do usuario dar
entrada no sistema. Ja na autenticacao dinamica a verificacao da identidade do usuario
e realizada nao so antes do usuario entrar no sistema, mas tambem durante a interacao
do usuario com o sistema. Isso evita uma possıvel troca de usuarios durante a interacao
com o sistema, e ate mesmo previne usuarios esquecidos que deixam o sistema aberto e
saem, podendo alguem nao autorizado se apossar do sistema.
3.4 Evolucao da Dinamica da Digitacao
Como se pode observar em [Bleha et al., 1990] os autores usaram em seus trabalhos
um texto fixo e a senha de cada usuario como informacao alvo, para assim proceder a
autenticacao e dar entrada ao sistema onde o vetor de caracterıstica foi formando usando
a latencia de digitacao entre as teclas. Os resultados obtidos foram calculados usando 32
pessoas, de onde, 10 eram usuarios autenticos e 22 eram impostores. As taxas atingidas
foram 0,310% de FRR e 0,50% de FAR.
No ano de 1993, [Brow e Rogers, 1993] abordaram o problema de autenticacao baseado
na tecnica biometrica de dinamica da digitacao, usando em seu classificador o modelo de
redes neural: Kohonen aliada ao algoritmo Backpropagation. Usando um total de 25
usuarios, que foram responsaveis pela criacao tanto dos padroes autenticos como dos
falsos, obteve-se os seguintes resultados: 11,5% de FRR e 4,2% de FAR.
Em 2000, [Cho et al., 2000], usou como classificador uma rede neural auto-associativa
que foi treinada somente com padroes genuınos. Essa arquitetura foi usada somente para
detectar impostores e conseguiu atingir excelentes resultados: FRR de 1% e 0% de FAR.
Mas apesar dos bons resultados este tipo de abordagem apontou algumas desvantagens e
limitacoes, A primeira delas foi a de apresentar um alto custo computacional, alem de um
fator que na pratica nao e trivial de se conseguir, muitos padroes autenticos por pessoa,
28
que no caso deste artigo foi usado centenas de padroes por pessoa.
Ao contrario da maioria dos sistemas dos sistemas de autenticacao baseados na dinamica
da digitacao que usam um texto variavel por pessoa como string alvo como,por exemplo,
seu nome e/ou sua senha [Bergadano et al., 2002], propuseram um sistema de autenticacao
onde a informacao alvo era um texto que continha 683 caracteres para todos os usuarios.
Com essa configuracao o sistema alcancou taxas de 0,40% de FRR e 0,01% de FAR.
Em 2004, [Yu e Cho, 2004], construıram um sistema no qual foi utilizada uma maquina
de vetor de suporte (Vector Suport Machine) como classificador. As caracterısticas eram
extraıdas a partir das senhas de cada um dos usuarios usando a mesma abordagem dos
trabalhos de Brown e Roger [Brow e Rogers, 1993]. Foi desenvolvido tambem um proced-
imento de selecao de caracterısticas, baseado em uma arquitetura integrada de selecao-
classificacao, usando algoritmos geneticos e VSM. Usando um total de 21 usuarios o
sistema implementado apresentou as seguintes taxas de erros: 0,354% de FRR e 0% de
FAR.
Em 2004, [Araujo, 2004] apresentou uma metodologia para autenticacao de usuarios
baseada na dinamica da digitacao que analisava o tempo de pressionamento bem como o
tempo de soltura das teclas, alem de seus codigos ASCII . Caso o usuario nao estivesse
cadastrado no sistema, dez amostras eram adquiridas para formar um conjunto de treina-
mento, e assim calcular um template para representa-lo. A metodologia apresentada pelo
autor foi avaliada envolvendo tres tipos de usuarios: o legıtimo o impostor simples e o
impostor observador.
O usuario legıtimo e o proprietario da conta, o impostor simples tem conhecimento da
informacao alvo a ser digitada e o impostor observador participa das secoes de autenticacao
do usuario legitimo. Este trabalho apresentou algumas inovacoes tais como: a extracao de
caracterısticas em funcao das teclas utilizadas na digitacao, o conjunto de caracterısticas
(codigo de teclas, duracao de teclas e de duas latencias de teclas) e a determinacao do
valor de limiar em funcao do desvio padrao das caracterısticas. O trabalho apresentou os
seguintes resultados: 0,155% de FRR e 0,191% de FAR.
A coleta de amostras, para a formacao da base de dados do trabalho de [Araujo, 2004],
foi realizada na Faculdade de Engenharia Eletrica (FEEC) da Universidade Estadual de
Campinas (UNICAMP). Em um perıodo de 3 meses, os usuarios tentavam se autenticar
nas contas cadastradas usando dois tipos de layout de teclados (ABNT) sendo um con-
vencional e outro um teclado de notebook.
[Cavalcanti, 2005], apresentou um sistema de composicao de biometrias para sistemas
multimodais de verificacao de identidade pessoal. Seu trabalho apresenta uma arquitetura
que combina tres tipos de biometria, sendo elas: reconhecimento de face, reconhecimento
de assinatura manuscrita e reconhecimento da dinamica da digitacao. O uso da dinamica
da digitacao foi usado pelo autor por ser uma tecnica biometrica com um custo de im-
29
plementacao baixo e ser pouco intrusiva para o usuario. O software para aquisicao do
ritmo da digitacao de cada usuario foi desenvolvido em uma linguagem de programacao
chamada Visual Basic e foi usado um total de 24 usuarios para a aquisicao do banco de
dados. O sistema apresentou bons resultados, principalmente na tecnica biometrica de
dinamica da digitacao.
No ano de 2006 [Costa, 2006], apresentou uma nova abordagem para autenticacao
biometrica de usuarios baseada na dinamica da digitacao usando teclados numericos. A
metodologia pode ser usada tanto em mecanismos de login, no controle de acesso a areas
restritas e na melhoria do nıvel de seguranca em transacoes bancarias. O sistema analisa
o codigo ASCII, duas latencias e uma duracao associada a cada tecla.
[Costa, 2006], baseou o seu trabalho analisando dois tipos de usuarios para a obtencao
das taxas FAR e FRR, sendo eles os usuarios autenticos e os usuarios impostores. Ao
todo, foram coletadas 2340 amostras de usuarios autenticos e cada conta foi atacada 60
vezes por usuarios impostores resultando em um total de 1560 amostras impostoras. O
seu trabalho apresentou os seguintes resultados: 0,219% de FRR e 0,122% de FAR.
Sistemas de autenticacao baseados na tecnica biometrica de dinamica da digitacao,
podem ser usados em qualquer ambiente que se faca necessario o uso de senha como forma
de controle de acesso, como forma de aumentar o nıvel de seguranca destes sistemas.
Atualmente, a nıvel comercial, a empresa Admit One Securit possui um sistema de-
nominado BioPassword, que tem como objetivo principal monitorar e autenticar usuarios
usando a tecnica biometrica de dinamica da digitacao. O BioPassword usa uma com-
binacao do login e senha do usuario aliado ao comportamento biometrico da dinamica da
digitacao para proceder a autenticacao do usuario. Por ser um software proprietario, nao
ha muitos detalhes em relacao a sua implementacao.
3.5 Conclusao
Algumas conclusoes podem ser feitas acerca das caracterısticas principais dos trabalhos
vistos no estado da arte. Dentre os trabalhos estudados fica sublinhado que a extracoes de
caracterısticas mais utilizada sao a latencia da digitacao e a duracao da digitacao. Uma
outra caracterıstica importante dos sistemas desenvolvidos e o de que o uso de textos
fixos grande para como informacao alvo nao e muito viavel, pelo fato de obter com essa
configuracao taxas de erro altas.
30
Capıtulo 4
Metodologia e Analise do Prototipo
Proposto
4.1 Introducao
Como pode ser visto no capıtulo 3, o calculo da latencia da digitacao e o calculo
do tempo em que cada tecla fica pressionada sao os meios mais usados para a extracao
de caracterısticas em um sistema de autenticacao biometrica voltado para a dinamica da
digitacao. Neste trabalho nao se usa a latencia de digitacao ou da duracao da digitacao das
teclas como forma de extrair as caracteristicas de digitacao de um usuario, com o objetivo
principal de verificar a viabilidade de outro metodo de extracao de caracterıstica.
Este trabalho propoe uma metodologia que analisara o tempo total gasto para que um
usuario digite a sua senha no sistema, objetivando desta forma mostrar que a analise do
tempo que um usuario gasta para digitar a sua senha pode ser discriminante.
Basicamente o prototipo proposto e baseado em dois modulos principais, sendo eles o
modulo de cadastramento e o modulo de autenticacao. Inicialmente se o usuario deseja
acesar o sistema e ainda nao e cadastrado ele deve criar uma nova conta, caso contrario
ele deve informar uma conta ja cadastrada.
O modulo de cadastramento (figura 4.1) permite inicialmente que o usuario faca o seu
cadastro pessoal, o qual contem o identificador da conta do usuario (um numero inteiro)
e onde o usuario deve informar seu nome de usuario. E pedido que cada usuario digite
sua senha por um total de dez vezes. O modulo de cadastramento e responsavel entao
por analisar cada uma das dez entradas que o usuario digitou a sua senha armazenando
o tempo gasto (em milisegundos) de cada digitacao. Tendo estes tempos armazenados,
o sistema verifica quais foram o maior e o menor tempo em que o usuario digitou a sua
senha e armazena os tempos de digitacao das senhas e a senha propriamente dita em um
arquivo de texto referenciado pelo identificador da conta deste usuario. E importante
31
salientar que o identificador da conta de usuario e fornecido pelo sistema e nao e de livre
escolha do usuario.
Figura 4.1: Modulo de Cadastramento
Com uma conta ja criada, para obter acesso ao sistema o usuario devera ir ao modulo
de autenticacao (figura 4.2). No modulo de autenticacao o primeiro passo do usuario e
informar o identificador de sua conta (numero inteiro).
A partir da identificacao da conta o sistema ira buscar na sua base de dados o modelo
correspondente a este usuario. Como mostrado anteriormente este modelo que e refer-
enciado pelo identificador de conta deste usuario contem os tempos que foram gastos
pelo usuario no modulo de cadastramento. Posteriormente, o usuario devera informar o
seu login e sua senha. Ao digitar a senha o sistema analisara a dinamica da digitacao
do usuario atraves da analise do tempo que o usuario gasta para digitar a sua senha.
O sistema entao verifica se o tempo que foi gasto esta entre o maior e o menor tempo
armazenado no arquivo correspondente a este usuario na base de dados. Se o tempo es-
tiver dentro do intervalo pre-definido entao sistema autoriza o acesso ao sistema, senao
o sistema concedera ao usuario uma outra chance de autenticacao, caso nesta segunda
tentativa de autenticacao o usuario nao consiga se autenticar com sucesso o sistema en-
tendera que este usuario e um impostor e nao permitira o seu acesso ao sistema. Um fato
32
importante a ser citado em relacao ao modulo de cadastramento e que o sistema alem
de verificar a forma com que o usuario digita determinada senha, tambem verifica se a
senha que esta sendo fornecida ao sistema no momento da autenticacao bate com a senha
cadastrada pelo mesmo no momento do cadastramento.
Figura 4.2: Modulo de Autenticacao
4.2 Caracterısticas do Sistema Proposto
Com base nos estudos realizados no capıtulo Estado da Arte, os varios trabalhos de
dinamica da digitacao vistos possuem caracterısticas que os diferem ou que os aproximam
uns dos outros, seja no uso de senhas fixas ou nao, seja no numero de tentativas de
autenticacao ou mesmo na forma em que os sistemas propostos pelos autores realizam a
extracao de caracterısticas. Nas proximas sessoes sao apresentados aspectos importantes
relacionados a metodologia proposta.
4.2.1 Senha ou Informacao Alvo
A senha e o conjunto de caracteres digitado pelo usuario para sua autenticacao, esta
senha e escolhida pelo usuario no momento do cadastramento de sua conta no sistema. Em
relacao a escolha da senha pelo usuario, esta pode contar tanto numeros quanto letras e
nao deve ser menor que cinco caracteres. A escolha destas caracterısticas para a formacao
de uma senha baseou-se nos estudos de [BLEHA et al, 1990] que concluiu que o uso de
33
menos que cinco caracteres na composicao da senha podem comprometer a extracao das
caracterısticas de digitacao do usuario, tornando o sistema menos confiavel.
4.2.2 Quantidade de Amostras
Foram 10 a quantidade de amostras coletadas por cada usuario. Isso se deve ao
fato de que segundo os estudos de [Joyce e Gupta, 1990] para a obtencao de resultados
satisfatorios nao e indicado o uso de menos que seis amostras coletadas pois quanto menor
o numero de amostras fica mais difıcil para o usuario imprimir um ritmo que o diferencie
de outros usuarios.
4.2.3 Tentativas de Autenticacao
De acordo com os testes de [Haider et al., 2000], usuarios legıtimos na maioria das
vezes falhavam da primeira vez, mas na segunda tentativa, realizava a autenticacao com
sucesso. Sendo assim a maioria dos sistemas de autenticacao de usuarios baseados na
dinamica da digitacao da o direito ao usuario de duas tentativas para se autenticar com
sucesso no sistema, desta forma este trabalho segue esta tendencia e permite que o usuario
tente por duas vezes se autenticar. Caso ele nao consiga nestas duas tentativas o sistema
ira considera-lo um usuario impostor.
4.2.4 Abordagens da Dinamica da Digitacao
Como colocado no capıtulo 2, existem duas formas de trabalhar com a dinamica da
digitacao em relacao a autenticacao, sendo elas a forma estatica e a forma dinamica. Neste
trabalho usa-se a forma estatica, ou seja, a autenticacao se dara no momento em que o
usuario inicia sua interacao com o sistema.
4.2.5 Extracao de Caracterısticas
Diferentemente de outros trabalhos como [Costa, 2006] e [Araujo, 2004], que analis-
aram caracterısticas como latencia da digitacao e/ou a duracao de tempo em que cada
tecla da informacao alvo fica pressionada, este trabalho analisa o tempo total que foi
gasto pelo usuario para digitar a sua senha. Este tempo e medido em milisegundos e
compreende o tempo em que o usuario pressiona a primeira tecla ate o momento em que
solta a ultima tecla que compoe a sua senha.
34
4.3 Prototipo
Foi desenvolvido um prototipo com o objetivo de automatizar a metodologia proposta.
Este prototipo foi desenvolvido na linguagem de programacao JAVA na plataforma de
desenvolvimento NETBEANS 6.1. O uso desta linguagem se deve ao fato de sua porta-
bilidade e robustez.
Como esta citado na metodologia foram desenvolvidos dois modulos: um responsavel
pelo cadastramento e outro responsavel pela autenticacao. No desenvolvimento deste
projeto nao houve a necessidade de um sistema gerenciador de banco de dados, visto que
as informacoes pertinentes ao cadastramento de usuarios (identificador da conta, tempos
de digitacao e senha), e que posteriormente sao usadas pelo modulo de autenticacao sao
armazenadas em arquivos de texto; isto e, ja sao suficientes para a analise da tecnica
proposta empregada.
Na figura 4.3, observa-se um usuario sendo cadastrado no sistema. No momento do
cadastramento o usuario recebe o identificador de sua conta, escolhe um login e digita sua
senha no sistema por um total de dez vezes. Feito isso basta clicar em finalizar para que
o cadastro seja concluıdo.
Figura 4.3: Usuario Sendo Cadastrado
Quando o usuario clica em finalizar, o sistema mostra uma janela confirmando que o
cadastro deste usuario foi realizado com sucesso (Figura 4.4). A partir deste momento
o usuario pode autenticar-se no modulo de autenticacao, visto que o mesmo ja sabe
35
o identificador de sua conta, definiu a sua senha e o sistema ja armazenou os dados
necessarios para proceder a sua autenticacao baseado na sua dinamica de digitacao e
verificacao de sua senha.
Figura 4.4: Usuario Cadastrado com Sucesso!
No momento do cadastramento se o usuario muda ou erra a senha que esta sendo
digitada, o sistema informa ao mesmo que houve um erro no processo de cadastramento
e que todas as senhas a serem digitadas precisam ser iguais. Como visto na figura 4.5.
Terminado o processo de cadastramento o usuario passa entao ao modulo de cadastra-
mento, onde ira autenticar-se. Para autenticar-se no sistema o usuario devera informar o
identificador de sua conta, a seguir informar o seu login e por fim informar a sua senha,
como pode ser observado na figura 4.6.
Caso a senha digitada esteja correta e a dinamica da digitacao imprimida pelo usuario
ao digitar a senha coincida com a cadastrada, o usuario e autenticado com sucesso (figura
4.7).
Caso a senha ou a dinamica empregada pelo usuario nao coincidam com o seu modelo
cadastrado, o sistema acusa falha na autenticacao (Figura 4.8). O sistema entao lhe
concede outra chance de autenticacao.
Mas se na segunda tentativa de autenticacao o usuario nao conseguir se autenticar
com sucesso o sistema acusa tentativa de fraude (figura 4.9), e fecha a aplicacao.
36
Figura 4.5: Falha no Cadastro
Figura 4.6: Usuario Sendo Autenticado
37
Figura 4.7: Usuario Autenticado com Sucesso
Figura 4.8: Usuario Autenticado com Sucesso
38
Figura 4.9: Tentativa de Fraude
39
Capıtulo 5
Teste e Analise dos Resultados
5.1 Testes
O desenvolvimento de um software envolve uma gama de atividades nas quais a possi-
bilidade de ocorrerem falhas humanas e enorme [Molinario, 2008]. E e por estas razoes que
o desenvolvimento de um software deve ser sempre acompanhado por atividades de testes
que visam garantir a qualidade do software. Os testes sao indispensaveis para remover
defeitos e para avaliar o grau de qualidade do software [Delamaro et al., 2007].
5.2 Plano de Testes
O ato de planejar testes e um dos mecanismos mais efetivos na prevencao de erros em
um software [Beizer, 1995]. Um plano de testes e um forte instrumento estrategico no
desenvolvimento de um software, isso se deve pelo fato de que e ele que ira guiar e repre-
sentar todo o processo de teste atraves de documentos e quanto mais bem documentado
o plano estiver, melhor ele representara a realidade [Delamaro et al., 2007].
Segundo [Molinario, 2008], existem varios padroes internacionais, alem de um nacional
que sao padroes especıficos para a elaboracao e uso do plano de testes, como forma de
sistematizar a producao de documentos relativos aos testes realizados na producao de
um software, dentre estes padroes destaca-se as Normas IEEE (Institute of Eletrical and
Eletronics Engineers), o padrao QAI (Quality Assurance Institute) e o padrao ABNT
NBR 12207.
As normas IEEE (Institute of Eletrical and Eletronics Engineers), sao padroes esta-
belecidos pelo Software Engineering Standarts Comittee e tem como objetivo basico ser
ponto de apoio para o desenvolvimento de diversas atividades industriais de software,
sugerindo que essas normas sejam um guia para as definicoes dos processos envolvidos.
O QAI (Quality Assurance Institute) e um instituto internacional de certificacoes e
40
padroes em qualidade de software e tem uma proposta propria de padronizacao do plano
de testes.
A ABNT NBR 12207 e o unico padrao nacional existente no que tange a teste de
software. Porem, na pratica nao e muito seguida [Molinario, 2008].
Ainda segundo [Molinario, 2008], para testes o padrao mais importante e bem e re-
conhecido o IEEE STD 829-1998. Esta norma foi criada em 1998 e tem como objetivo
prover uma forma mais organizada de montar uma documentacao eficaz para testes, sem-
pre visando alcancar uma maior qualidade de software. Segundo dados do IEEE, este
documento descreve oito sugestoes de documentacao, nao sendo necessario porem, uti-
lizar todos eles, o ideal e que o projetista de testes utilize o que mais adequar a sua
necessidade. Dentre os oito documentos sugeridos pela norma, os que serao produzidos
por este trabalho como forma de documentar e nortear os testes serao:
• Plano de Testes: apresenta o planejamento para a execucao do teste;
• Especificacao dos Casos de Testes: Definir os casos de teste, incluindo dados
de entrada e resultados esperados;
• Relatorio-Resumo de Teste: apresenta os resultados das atividades de testes e
prover avaliacoes baseadas nestes resultados;
5.3 Documentacao do Plano de Testes
5.3.1 Planejamento para a Execucao do Teste
Como foi visto no capıtulo 2, secao 2.4, a eficiencia de um sistema biometrico e veri-
ficada por meio da mensuracao de dois tipos de erros: o de falsa aceitacao (FAR - false
accept reject), que ocorre quando o sistema aceita um impostor como usuario autentico e
o de falsa rejeicao (FRR - false rejection rate), quando o sistema rejeita um usuario ver-
dadeiro. Sendo assim, quanto menor for as taxas de erro do sistema biometrico, maior sera
a sua eficiencia [Costa, 2006]. Os testes entao, serao realizados com o objetivo principal
de mensurar as taxas de erro geradas por um sistema biometrico (FAR e FRR).
5.3.2 Recursos
Os principais recursos usados na realizacao dos testes foram: um microcomputador
com sistema operacional Windows XP SP3 instalado, 512MB de memoria RAM, Disco
rıgido com capacidade de 40GB e um processador AMD Sempron 2.1GHz 32Bits.
41
Como os testes foram realizados em um sistema biometrico que analisa a dinamica de
digitacao do usuario para proceder a autenticacao, faz-se necessario citar que o teclado
usado e um teclado do tipo ABNT2, idioma portugues do Brasil.
5.4 Documentacao da Especificacao dos Casos de Testes
Basicamente tem-se dois casos de testes: o primeiro ira mensurar a taxa de erro de falsa
rejeicao (FRR), e o segundo ira mensurar a taxa de erro de falsa aceitacao(FAR). O uso
de apenas dois casos de testes se da pelo fato de que a qualidade de um sistema biometrico
e verificada atraves da mensuracao das taxas de erro FAR e FRR[Araujo, 2004], sendo
assim temos um caso de teste para tipo de erro. Os detalhes acerca de cada um dos casos
de testes podem ser vistos no que segue.
5.4.1 Caso de Teste - FRR
O caso de teste que compreende a verificacao de falsa rejeicao (FRR) sera realizado
em duas etapas, sendo a primeira uma etapa de cadastramento e a segunda uma etapa
de tentativa de autenticacao.
Na primeira etapa um total de 40 usuarios cadastraram no sistema biometrico por
meio do modulo de cadastramento (vide figura 4.1). Cada um dos 40 usuarios escolheram
um login (nome de usuario) e alimentaram o sistema digitando a sua senha (que foi
previamente escolhida pelo usuario). Esta fase teve a duracao de 1 dia.
Terminada a etapa de cadastramento estes usuarios foram (um por vez), por meio do
modulo de autenticacao tentar realizar a sua autenticacao. Em cada conta que usuario
nao conseguisse autenticar-se no sistema, o mesmo iria computar um erro de falsa rejeicao,
pois o sistema rejeitou um usuario verdadeiro.
Todos os dados referentes a este teste foram devidamente anotados e arquivados, e
serao mostrados no Relatorio-Resumo de teste.
5.4.2 Caso de Teste - FAR
Para realizar a verificacao de falsa aceitacao FAR, e necessario que um usuario im-
postor tente autenticar-se com sucesso se passando pelo dono de uma conta previamente
cadastrada no sistema. Se este usuario impostor conseguir autenticar-se entao estara car-
acterizado um erro de falsa aceitacao, pois o sistema acaba de aceitar um usuario que nao
e verdadeiro.
Este caso de teste leva em conta dois tipos de usuarios impostores, o primeiro que sera
denominado usuario impostor simples, o qual tera em maos uma lista contendo o login e
a senha de todos os 40 usuarios cadastrados no sistema. Desta forma ele ira poder tentar
42
autenticar-se em cada uma das 40 contas. Em cada conta que ele conseguir autenticar-se
sera computado um erro de falsa aceitacao.
O segundo tipo de usuario impostor sera denominado usuario impostor observador
[Araujo, 2004]. Este usuario vai estar presente no momento em que os usuarios verdadeiros
estiverem procedendo o seu cadastro no sistema e tera como missao observar a forma como
10 dos 40 usuarios, que irao realizar o cadastro, digitam a sua senha, observando de forma
especial o posicionamento das maos sobre o teclado e como cada tecla e pressionada. A
principal contribuicao que este usuario impostor ira trazer para as avaliacoes finais do teste
e mostrar se alguem que sabe a senha e ve como o usuario digita, tera mais vantagem
quando tentar burlar o sistema.
Todos os dados referentes a este teste serao devidamente anotados e arquivados, e
serao mostrados no Relatorio-Resumo de teste.
5.4.3 Resultados Esperados
Em relacao aos casos de testes propostos, espera-se primeiramente que o sistema iden-
tifique, na maioria dos casos, se um determinado usuario e ou nao um usuario verdadeiro.
Espera-se tambem que as taxas de erros obtidas por meio da realizacao dos testes, pos-
sam ser compatıveis quando comparadas a outros trabalhos da area. Esta comparacao e
muito importante, pois atraves dela iremos saber se o uso da metodologia proposta por
este trabalho e viavel ou nao.
5.5 Relatorio Resumo de Teste
Este documento tem como objetivo, apresentar os resultados obtidos nas atividades
de teste e realizar uma avaliacao desses resultados com base nos objetivos propostos.
5.5.1 Caso de Teste - FRR
Levando-se em consideracao o caso de teste FRR (false rejection rate), de acordo com
os dados anotados durante o procedimento de testes, pode-se observar que apenas tres (3)
usuarios verdadeiros de um total de 40, nao conseguiram obter acesso ao sistema. Sendo
assim ficou configurando tres erros de falsa rejeicao, pois o sistema rejeitou tres usuarios
verdadeiros.
Como visto no capitulo 2 e secao 2.4 a FRR e definida pela seguinte equacao [Costa, 2006]:
FRR = (Total de Falsa Rejeicao / Total de Contas Tentadas) %
FRR = (3 / 40) %
FRR = 0,075 %
43
Desta forma o sistema obteve uma taxa de erro FRR de 0,075%
5.5.2 Caso de Teste - FAR
Levando em consideracao o caso de teste do usuario impostor simples, pode-se observar
durante os testes que ele conseguiu autenticar-se em 7 das 40 contas disponıveis. Sendo
assim ficou configurado um total de 7 erros de falsa aceitacao.
Como visto no capıtulo 2 e secao 2.4 a FAR e definida pela seguinte equacao [Costa, 2006]:
FAR = (Total de Falsa Aceitacao / Total de Contas Tentadas) %
FAR = (7 / 40) %
FRR = 0,175 %
Desta forma o sistema obteve uma taxa de erro FAR de 0,175%.
Levando-se em consideracao o caso de teste do usuario impostor observador, pode-se
observar durante os testes que ele conseguiu obter acesso em 2 das 10 contas utilizadas.
Isso mostra que mesmo observando como o usuario verdadeiro digita a sua senha, ainda e
difıcil para o impostor proceder o mesmo ritmo de digitacao, pelo fato de que na maioria
das vezes o usuario verdadeiro ja esta familiarizado com a senha e o impostor nao.
FAR = (Total de Falsa Aceitacao / Total de Contas Tentadas) % FAR = (2 / 10) %
FRR = 0,2%
Sendo assim a FAR obtida para o usuario impostor observador foi FAR = 0,2%.
5.5.3 Analise dos Resultados
Os testes do prototipo, que foram realizados de acordo com a documentacao de testes
elaborada seguindo a norma de documentacao de teste de software IEEE 829-1998, con-
seguiram alcancar o seu objetivo principal que era o de mensurar as taxas de erro geradas
por este sistema de autenticacao biometrico. As taxas obtidas por este prototipo podem
ser vistas na figura 5.1.
Figura 5.1: Taxas de FAR e FRR Obtidas
As taxas de erro que o sistema obteve sao consideradas satisfatorias, quando compara-
das a outros trabalhos da area. Abaixo veremos algumas comparacoes.
No ano de 1990 [Bleha et al., 1990] os autores usaram em seus trabalhos um texto
fixo e a senha de cada usuario como informacao alvo, e como caracterıstica foi extraıda a
44
latencia de digitacao. Os resultados obtidos foram calculados usando 32 pessoas para a
realizacao dos testes. As taxas atingidas foram 0,310% de FRR e 0,50% de FAR.
No ano de 2004 [Araujo, 2004] apresentou uma metodologia para autenticacao de
usuarios baseada na dinamica da digitacao que analisava o tempo de pressionamento bem
como o tempo de soltura das teclas, alem de seus codigos ASCII. Os resultados obtidos
foram de 0,155% de FRR e 0,191% de FAR.
No ano de 2006 [Costa, 2006], apresentou uma nova abordagem para autenticacao
biometrica de usuarios baseada na dinamica da digitacao usando teclados numericos. O
seu trabalho apresentou os seguintes resultados: 0,219% de FRR e 0,122% de FAR.
A escolha destes trabalhos para a realizacao da comparacao com o trabalho atual deve-
se principalmente ao fato de [Costa, 2006] e [Araujo, 2004] serem trabalhos mais atuais,
outro fato importante para a escolha destes tres trabalhos e o de que todos eles usam a
latencia da digitacao na extracao das caracterısticas do usuario, sendo assim como este
trabalho propoe uma nova metodologia faz-se necessario compara-lo com trabalhos que
usam metodologias diferentes no intuito de verificar se a metodologia proposta e ou nao
viavel.
Atraves da tabela comparativa 5.2, pode-se observar que o prototipo desenvolvido
obteve resultados melhores que o de [Araujo, 2004] levando-se em consideracao a taxa de
FAR, mas, observa-se tambem que a taxa de FAR obtida por este prototipo foi maior que
a taxa obtida por [Bleha et al., 1990] e [Costa, 2006].
Figura 5.2: Algumas Comparacoes
Levando-se em consideracao a taxa de erro FRR, observa-se que o prototipo desen-
volvido obteve resultados expressivos, obtendo uma taxa de FRR menor que os outros tres
trabalhos usados na comparacao. Isso mostra que o prototipo desenvolvido e a metodolo-
gia usada produzem otimos resultados em relacao a falsa rejeicao.
45
Consideracoes Finais
Autenticar seres humanos perante um sistema computacional e algo de grande im-
portancia e fundamental para a seguranca da informacao. Sendo assim foi abordado
neste trabalho uma alternativa de autenticacao de usuarios usando o tipo biometrico da
dinamica da digitacao com o objetivo de prover uma maior seguranca a sistemas com-
putacionais que necessitam de uma autenticacao baseada em login/senha.
Este trabalho apresentou um estudo das tecnicas de autenticacao baseados em biome-
tria, cujo foco foi o tipo biometrico de dinamica da digitacao, produzindo um prototipo
de autenticacao baseado na dinamica da digitacao, implementado por meio da linguagem
de programacao JAVA.
Contribuicoes foram produzidas durante o desenvolvimento deste trabalho, uma delas
e o estudo sobre a biometria e principalmente o estudo da dinamica da digitacao, uma
tecnica biometrica ainda desconhecida para muitos, mas que vem se mostrando uma
solucao bastante simples e viavel de ser implementada por prover bons resultados quando
o objetivo e o de garantir maior seguranca a sistema de autenticacao de usuarios baseados
em login/senha.
A tecnica biometrica da dinamica da digitacao e uma area de pesquisa cientifica que
ainda esta em crescimento, e devido a isto ainda nao possui muitos trabalhos publicados
na area. Desta forma o desenvolvimento deste trabalho e muito importante, pois este vem
a somar com os trabalhos anteriores, solidificando o fato de que a tecnica biometrica da
dinamica da digitacao e uma poderosa ferramenta para o fortalecimento da seguranca de
sistemas computacionais.
Desta forma o desenvolvimento deste trabalho e muito importante, pois este vem a
somar com os trabalhos anteriores, solidificando o fato de que a tecnica biometrica da
dinamica da digitacao e uma poderosa ferramenta para o fortalecimento da seguranca de
sistemas computacionais.
A metodologia de desenvolvimento usada para o desenvolvimento deste prototipo e
bem menos complexa que a maioria das aplicacoes desenvolvidas na area, o que garante a
esta aplicacao um nıvel de processamento bem menor que as demais. Quando comparada
a outros importantes trabalhos da area (como visto no capıtulo 5) mostrou-se que mesmo
sendo de um nıvel de complexidade menor, o prototipo desenvolvido conseguiu prover
46
resultados competitivos e ate melhores em alguns pontos, respondendo de forma positiva
a pergunta feita na introducao que questionava se o uso de uma metodologia baseada no
tempo total gasto para a digitacao da senha discriminaria ou nao usuarios impostores de
usuarios verdadeiros.
Dentre as dificuldades encontradas para realizacao deste trabalho pode-se citar a difi-
culdade de encontrar publico alvo para a realizacao dos testes. Isso ficou evidente pelo fato
de demandar um pouco de tempo por parte do usuario para a realizacao do cadastro no
sistema. A escolha de uma linguagem de programacao adequada para o desenvolvimento
do prototipo tambem nao foi uma tarefa das mais faceis, tendo em vista a grande possibili-
dade de escolhas possıveis. A bibliografia tambem pode ser considerada outra dificuldade,
ja que a dinamica da digitacao ainda e uma area de pesquisa em desenvolvimento e ainda
nao ha muitos trabalhos publicados sobre a dinamica da digitacao.
Um ponto bastante positivo deste trabalho foi o fato do mesmo conseguir taxas de
FRR e FAR baixas o que mostra que o prototipo desenvolvido e confiavel, solidificando
ainda mais o fato da metodologia usada ser bastante viavel. Outro ponto positivo e que
o prototipo alcancou uma taxa de FRR mais baixa em relacao aos trabalhos comparados
(como visto na figura 5.2).
Por outro lado o prototipo obteve uma taxa de erro de FAR mais alta que dois dos
tres trabalhos com os quais foi comparado, o que mostra que uma desvantagem deste
prototipo esta na aceitacao de falsos usuarios. Apesar de conseguir taxas mais altas,
porem proximas, este ponto do trabalho deve ser melhorado.
Para trabalhos futuros tem-se a perspectiva de usar redes neurais no processo de
classificacao e comparacao das amostras, com o objetivo de tentar diminuir ainda mais
as taxas de erros obtidas, provendo assim um maior nıvel de seguranca ao sistema de
autenticacao.
Outra intencao de trabalho futuro seria a de usar este sistema no ambito da crip-
tografia, gerando uma chave biometrica baseada nas caracterısticas da dinamica da digitacao
do usuario agregando mais seguranca a este sistema.
47
Referencias
Araujo, L. (2004). Uma metodologia para autenticacao pessoal baseada em Dinamica da
Digitacao. UNICAMP, Campinas, SP, Brasil.
Beizer, B. (1995). Black-Box Testing. Wiley-Interscience.
Bergadano, F., Gunneti, D., e Pikardi, C. (2002). User authentication through keystroke
dynamics. ACM Transactions on Information and System Security.
Bleha, S., C.Slivinsky, e Hussain, B. (1990). Computer-Access Security Systems Using
Keystroke Dynamics. IEEE Trans. Pattern Anal. Machine Intell., Vol. 12.
Brow, M. e Rogers, M. (1993). User identification via keystroke char-
acteristics of typed names using neural networks. Disponıvel em:
http://portal.acm.org/citation.cfm?id=1085126.1085129 Acesso em 23/03/2009.
Cavalcanti, G. (2005). Composicao de Biometrias para Sistemas Mul-
timodais de Verificacao de Identidade Pessoal. Disponıvel em:
http://www.bdtd.ufpe.br/tedeSimplificado//tde busca/arquivo.php?codArquivo=402
Acesso em 13/01/2009.
CERT.BR (2006). Cartilha de Seguranca da Informacao. http://cartilha.cert.br/conceitos
Acesso em 25/05/2009.
Cho, S., Han, C., e Kim, H. (2000). Web-based keystroke dynamics identity verification us-
ing neural network. Disponıvel em: http://www.informaworld.com/smpp/content con-
tent=a785829106 db=all Acesso em 21/02/2009.
Costa, C. (2006). Autenticacao Biometrica via teclado numerico baseada na dinamica da
digitacao. UNICAMP, Campinas, SP, Brasil.
Delamaro, M., Maldonado, J., e M.Jino (2007). Introducao ao Teste de Software. Editora
Campus.
Filho, A. (2004). Seguranca da Informacao: Sobre a necessidade de Protecao de Sistemas
de Informacao. Disponıvel em: http://www.espacoacademico.com.br/042/42amsf.htm
Acesso em 14/05/2009.
Fonseca, F. (2006). Curso Basico de Seguranca da Informacao, Introducao a Seguranca
da Informacao. Academia Latino-Americana de Seguranca da Informacao.
Gava, E. (2006). Sistemas Biometricos com enfase na dinamica da digitacao. Disponıvel
em: http://www.fatec.br/html/sistemas biometricos.pdf Acesso em 15/05/2009.
48
Haider, S., Abbas, A., e Zaidi, A. (2000). A Multi-Technique Approach for User Identifi-
cation through Keystroke Dynamics. IEEE Int. Conference of Syst., Man and Cybern.,
Vol. 2.
Heinen, M. e Osorio, F. (2005). Biometria Comportamental: Pesquisa e de-
senvolvimento de usuarios utilizando assinaturas manuscritas. Disponıvel em:
www.dcc.ufla.br/infocomp/artigos/v3.2/art06.pdf Acesso em 25/05/2009.
Julio, R. (2007). O Reconhecimento Biometrico. Disponıvel em:
http://bsi.cneccapivari.br/?q=node/39 Acesso em 14/04/2009.
Joyce, R. e Gupta, G. (1990). Identity authorization based on keystroke latencies. Com-
munications of the ACM, Vol. 33., No 2.
Leggett, J. e Usnik, G. (1990). Dynamic identity verification via keystroke characteristics.
International Journal of Man-Machine Studies, Vol. 35.
Leggett, J. e Williams, G. (1987). Verifying identity via keystroke characteristics. Inter-
national Journal of Man-Machine Studies, Vol. 28.
Magalhaes, P. e Santos, H. (2003). Biometria e Autenticacao.
http://repositorium.sdum.uminho.pt/handle/1822/2184 Acesso em 22/12/2008.
Marcelo, A. (2001). Biometria. Disponıvel em:
www.fieo.br/v2/central aluno?revista/rev2001/biometria.htm Acesso em 15/05/2009.
Medeiros, C. (2001). Seguranca da Informacao: Implantacao de Me-
didas e Ferramentas de Seguranca da Informacao. Disponıvel em:
http://www.linuxsecurity.com.br/info/general/TCE Seguranca da Informacao.pdf
Acesso em 13/02/2009.
Molinario, L. (2008). Testes Funcionais de Software. Visual Books, 1◦ edicao.
Monrose, F., Reiter, M., e S, W. (1999). Password Hardening Based on Keystroke Dy-
namics. 6th ACM Conference on Computer Security.
Moreira, N. (2001). Seguranca Mınima, Uma Visao Corporativa da Seguranca da In-
formacao. Axcel Books.
Obaidat, M. e Sadoun, B. (1997). Verification of Computer User Using Keystroke Dy-
namics,. IEEE Trans. Syst., Man, Cybern., Vol. 27.
Rocha, P. (2004). Um estudo sobre sistemas biometricos multimodais. Universidade Fed-
eral de Goias, Catalao, GO, Brasil.
49
Silberchatz, A., Galvin, P., e Gagne, G. (2004). Sistemas Operacionais com Java. Editora
Campous 2004.
Stamp, M. (2006). Information Security, principles and practice. Wiley-Interscience.
Umphress, D. e Williams, G. (1985). Identity verification through keyboard characteristics.
International Journal of Man-Machine Studies, Vol. 23.
Vigliazzi, D. (2003). Biometria, Medidas de Seguranca. Visual Books, 2003.
Yu, E. e Cho, S. (2004). Keystroke dynamics identity verifi-
cation - its problems and practical solutions. Disponıvel em:
http://www.sciencedirect.com/science? ob=ArticleURL udi=B6V8G-4CMW0SJ-
1 user=686368 rdoc=1 fmt= orig=search sort=dview=c acct=C000037519 version=1 urlVersion=0 userid=686368=md5=9b3d85d376c3118e5fb82d56300266f6
Acesso em 13/01/2009.
Zapatar, M. e Suzuki, R. (2005). Seguranca da Informacao, Um diferencial determinante
na competitividade das corporacoes. PROMOM 2005.
50
Apendice A
Codigo Fonte
A.1 Modulo Captura de Amostras1 /*
2 * ModuloCapturaAmostras.java
3 *
4 *Este modulo permite que o usuario faca um cadastro que contem seu login e o
5 *identificador de sua conta. Posteriormente o modulo analisa cada uma das
6 *entradas fornecidas e armazena o tempo gasto em milisegundos de cada
7 *digitac~ao.
8 *
9 * Created on 11 de Agosto de 2008, 17:10
10 */
11
12 package Frames;
13
14 import Usuarios.Usuario;
15 import java.awt.event.KeyEvent;
16 import java.io.File;
17 import java.io.FileOutputStream;
18 import java.io.IOException;
19 import java.io.ObjectOutputStream;
20 import java.util.logging.Level;
21 import java.util.logging.Logger;
22 import javax.swing.JOptionPane;
23
24 /**
25 *
26 * @author Gustavo Almeida
27 */
28 public class ModuloCapturaAmostras extends javax.swing.JFrame {
29
30 long[] tempoFinal = new long[9];
31 int i = 0; /** Captura o tempo em que cada tecla da informac~ao alvo ficou pressionada
32 pelo usuario*/
33 int cont = 1;
34 int j = 0;
35 String senha = "";
36 long[] tempoInicial = new long[9];
37 long[] media = new long[10];
38 long[] mediaOrd = new long[10];
39
40 /** Creates new form ModuloCapturaAmostras */
41 public ModuloCapturaAmostras() {
42 initComponents();
43
44 boolean existe = true;
45 int l = 1;
46 while(existe) {
47 if(!new File("Usuarios/" + l + ".bio").exists()) {
48 jLabel2.setText("0" + l);
49 existe = false;
51
50 }
51 else {
52 l++;
53 }
54 }
55
56
57 }
58
59 /** This method is called from within the constructor to
60 * initialize the form.
61 * WARNING: Do NOT modify this code. The content of this method is
62 * always regenerated by the Form Editor.
63 */
64 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
65 private void initComponents() {
66
67 jLabel5 = new javax.swing.JLabel();
68 jLabel1 = new javax.swing.JLabel();
69 jLabel2 = new javax.swing.JLabel();
70 jButton5 = new javax.swing.JButton();
71 jPasswordField1 = new javax.swing.JPasswordField();
72 jButton6 = new javax.swing.JButton();
73 jTextField1 = new javax.swing.JTextField();
74 jLabel4 = new javax.swing.JLabel();
75 jLabel6 = new javax.swing.JLabel();
76 jLabel7 = new javax.swing.JLabel();
77 jLabel3 = new javax.swing.JLabel();
78
79 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
80 setTitle("..:: Modulo de Captura de Amostras ::..");
81 getContentPane().setLayout(null);
82
83 jLabel5.setFont(new java.awt.Font("Arial", 1, 12));
84 jLabel5.setForeground(new java.awt.Color(0, 0, 153));
85 jLabel5.setText(" Modulo de Captura de Amostras");
86 getContentPane().add(jLabel5);
87 jLabel5.setBounds(20, 10, 370, 30);
88
89 jLabel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Identificador da Conta: "));
90 getContentPane().add(jLabel1);
91 jLabel1.setBounds(20, 60, 210, 50);
92
93 jLabel2.setText("01");
94 getContentPane().add(jLabel2);
95 jLabel2.setBounds(140, 80, 34, 14);
96
97 jButton5.setText("Finalizar");
98 jButton5.addActionListener(new java.awt.event.ActionListener() {
99 public void actionPerformed(java.awt.event.ActionEvent evt) {
100 jButton5ActionPerformed(evt);
101 }
102 });
103 getContentPane().add(jButton5);
104 jButton5.setBounds(40, 350, 100, 23);
105
106 jPasswordField1.addActionListener(new java.awt.event.ActionListener() {
107 public void actionPerformed(java.awt.event.ActionEvent evt) {
108 jPasswordField1ActionPerformed(evt);
109 }
110 });
111 jPasswordField1.addKeyListener(new java.awt.event.KeyAdapter() {
112 public void keyPressed(java.awt.event.KeyEvent evt) {
113 jPasswordField1KeyPressed(evt);
114 }
115 public void keyReleased(java.awt.event.KeyEvent evt) {
116 jPasswordField1KeyReleased(evt);
117 }
118 });
119 getContentPane().add(jPasswordField1);
120 jPasswordField1.setBounds(40, 240, 160, 20);
121
122 jButton6.setText("Cancelar");
123 getContentPane().add(jButton6);
52
124 jButton6.setBounds(190, 350, 100, 23);
125 getContentPane().add(jTextField1);
126 jTextField1.setBounds(40, 140, 160, 20);
127
128 jLabel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Escolha um LOGIN: "));
129 getContentPane().add(jLabel4);
130 jLabel4.setBounds(20, 120, 210, 60);
131
132 jLabel6.setFont(new java.awt.Font("Tahoma", 1, 11));
133 jLabel6.setText("1a");
134 getContentPane().add(jLabel6);
135 jLabel6.setBounds(210, 240, 50, 20);
136
137 jLabel7.setFont(new java.awt.Font("Tahoma", 0, 10));
138 getContentPane().add(jLabel7);
139 jLabel7.setBounds(40, 280, 120, 10);
140
141 jLabel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Digite a Informac~ao Alvo: "));
142 getContentPane().add(jLabel3);
143 jLabel3.setBounds(20, 200, 310, 100);
144
145 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
146 setBounds((screenSize.width-413)/2, (screenSize.height-449)/2, 413, 449);
147 }// </editor-fold>//GEN-END:initComponents
148
149 private void jPasswordField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jPasswordField1ActionPerformed
150 this.i = 0;
151
152 // Verifica se as senhas s~ao as mesmas
153 if(this.j == 0) {
154 this.senha = jPasswordField1.getText();
155 }
156
157 if(this.j > 0 && this.senha.compareTo(this.jPasswordField1.getText()) != 0) {
158 reiniciaProcesso();
159 }
160 else {
161 /**
162 * Verifica o tempo final - inicial (media)
163 * Pega o tamanho da senha
164 */
165 this.media[j] = tempoFinal[this.tempoFinal.length - 1] - tempoInicial[0];
166 for(int l = this.tempoFinal.length - 1; l >= 0; l--) {
167 if(this.media[j] == -this.tempoInicial[0]) {
168 this.media[j] = tempoFinal[l] - tempoInicial[0];
169 }
170 else {
171 break;
172 }
173 }
174 this.j++;
175 this.cont++;
176
177 // apos as 10 entradas
178 if(this.cont == 11) {
179 this.jLabel6.setText("ok!");
180 this.jLabel7.setText("Clique em finalizar");
181 jButton5.requestFocus();
182 // ordena o vetor de tempo
183 this.mediaOrd = ordenaVetor(media);
184
185 // Imprime o vetor de tempos e ele apos a ordenac~ao
186 for (int l = 0; l < this.media.length; l++) {
187 System.out.println(this.media[l]);
188 }
189 }
190 else {
191 this.jLabel6.setText((this.cont) + "a");
192 this.jPasswordField1.setText("");
193 this.tempoFinal = new long[9];
194 this.tempoInicial = new long[9];
195 }
196 }
197
53
198 }//GEN-LAST:event_jPasswordField1ActionPerformed
199
200 private void jPasswordField1KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jPasswordField1KeyPressed
201 if(evt.getKeyCode() != KeyEvent.VK_ENTER) {
202 this.tempoInicial[i] = System.currentTimeMillis();
203 }
204
205 }//GEN-LAST:event_jPasswordField1KeyPressed
206
207 private void jPasswordField1KeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jPasswordField1KeyReleased
208 if(evt.getKeyCode() != KeyEvent.VK_ENTER) {
209 this.tempoFinal[i] = System.currentTimeMillis();
210 this.i++;
211 }
212
213 }//GEN-LAST:event_jPasswordField1KeyReleased
214
215 private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
216 ObjectOutputStream buf = null;
217 try {
218 // Cria o novo usuario com as informac~oes colhidas
219 int id = Integer.parseInt(jLabel2.getText());
220 Usuario novo = new Usuario(id, jTextField1.getText(), this.senha, mediaOrd);
221 Object obj = (Object) novo;
222
223 // Escreve no arquivo
224 File file = new File("Usuarios/" + id + ".bio");
225 file.createNewFile();
226 FileOutputStream fos = new FileOutputStream(file);
227 buf = new ObjectOutputStream(fos);
228 buf.writeObject(novo);//GEN-LAST:event_jButton5ActionPerformed
229
230 JOptionPane.showMessageDialog(null, "Cadastro realizado com sucesso!",
231 "Confirmac~ao", JOptionPane.INFORMATION_MESSAGE);
232
233 } catch (IOException ex) {
234 Logger.getLogger(ModuloCapturaAmostras.class.getName()).log(Level.SEVERE, null, ex);
235 JOptionPane.showMessageDialog(null, "N~ao foi possıvel realizar o cadastro!",
236 "Erro!", JOptionPane.ERROR_MESSAGE);
237 }
238 finally {
239 try {
240 buf.close();
241 dispose();
242 } catch (IOException ex) {
243 Logger.getLogger(ModuloCapturaAmostras.class.getName()).log(Level.SEVERE, null, ex);
244 }
245 }
246 }
247
248 /**
249 * @param args the command line arguments
250 */
251 public static void main(String args[]) {
252 java.awt.EventQueue.invokeLater(new Runnable() {
253 @Override
254 public void run() {
255 new ModuloCapturaAmostras().setVisible(true);
256 }
257 });
258 }
259
260 // Variables declaration - do not modify//GEN-BEGIN:variables
261 private javax.swing.JButton jButton5;
262 private javax.swing.JButton jButton6;
263 private javax.swing.JLabel jLabel1;
264 private javax.swing.JLabel jLabel2;
265 private javax.swing.JLabel jLabel3;
266 private javax.swing.JLabel jLabel4;
267 private javax.swing.JLabel jLabel5;
268 private javax.swing.JLabel jLabel6;
269 private javax.swing.JLabel jLabel7;
270 private javax.swing.JPasswordField jPasswordField1;
271 private javax.swing.JTextField jTextField1;
54
272 // End of variables declaration//GEN-END:variables
273
274 private long[] ordenaVetor(long[] med) {
275 for(int l = 0; l < med.length - 1; l++) {
276 for(int m = l + 1; m < med.length; m++) {
277 if(med[l] > med[m]) {
278 long aux = med[l];
279 med[l] = med[m];
280 med[m] = aux;
281 }
282 }
283 }
284
285 return media;
286 }
287 // End of variables declaration
288
289 private void reiniciaProcesso() {
290 JOptionPane.showMessageDialog(null, "Senhas incorretas!\n Todas as senhas digitadas" +
291 " devem ser iguais!", "Alerta", JOptionPane.WARNING_MESSAGE);
292
293 this.j = 0;
294 this.cont = 1;
295
296 this.jLabel6.setText((this.cont) + "a");
297 this.jPasswordField1.setText("");
298 }
299
300 }
A.2 Modulo de Autenticacao1 package Frames;
2
3 import Usuarios.Usuario;
4
5 /*
6 * ModuloAutenticacao.java
7 *Neste modulo o usuario informa sei identificador ao sistema, que por sua vez
8 *busca em sua base de dados o modelo correspondente a este usuario.Assim o
9 *usuario ira tentar autenticar-se no sistema!
10 *
11 * Created on 11 de Agosto de 2008, 16:21
12 */
13 import java.io.File;
14 import java.io.FileInputStream;
15 import java.io.IOException;
16 import java.io.ObjectInputStream;
17 import java.util.logging.Level;
18 import java.util.logging.Logger;
19 import javax.swing.JOptionPane;
20
21 /**
22 *
23 * @author Gustavo Almeida
24 */
25 public class ModuloAutenticacao extends javax.swing.JFrame {
26
27 private Usuario user;
28
29 private long[] tempo = new long[2];
30 private int cont = 1;
31 private int tent = 0;
32
33 /** Creates new form ModuloAutenticacao */
34 public ModuloAutenticacao() {
35 initComponents();
36 }
37
38 /** This method is called from within the constructor to
39 * initialize the form.
55
40 * WARNING: Do NOT modify this code. The content of this method is
41 * always regenerated by the Form Editor.
42 */
43 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
44 private void initComponents() {
45
46 jIdConta = new javax.swing.JTextField();
47 jLabel2 = new javax.swing.JLabel();
48 jLabel3 = new javax.swing.JLabel();
49 jLogin = new javax.swing.JTextField();
50 jLabel4 = new javax.swing.JLabel();
51 jLabel5 = new javax.swing.JLabel();
52 jLabel6 = new javax.swing.JLabel();
53 jLabel1 = new javax.swing.JLabel();
54 jAutentica = new javax.swing.JButton();
55 jSenha = new javax.swing.JPasswordField();
56
57 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
58 setTitle("..:: Modulo de Autenticac~ao ::..");
59 getContentPane().setLayout(null);
60
61 jIdConta.addFocusListener(new java.awt.event.FocusAdapter() {
62 public void focusLost(java.awt.event.FocusEvent evt) {
63 jIdContaFocusLost(evt);
64 }
65 });
66 getContentPane().add(jIdConta);
67 jIdConta.setBounds(70, 70, 50, 20);
68
69 jLabel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Login/Senha"));
70 getContentPane().add(jLabel2);
71 jLabel2.setBounds(10, 140, 250, 100);
72
73 jLabel3.setText("LOGIN: ");
74 getContentPane().add(jLabel3);
75 jLabel3.setBounds(40, 170, 50, 14);
76 getContentPane().add(jLogin);
77 jLogin.setBounds(90, 170, 90, 20);
78
79 jLabel4.setText("SENHA: ");
80 getContentPane().add(jLabel4);
81 jLabel4.setBounds(40, 210, 50, 14);
82
83 jLabel5.setFont(new java.awt.Font("Arial", 1, 12));
84 jLabel5.setForeground(new java.awt.Color(0, 0, 153));
85 jLabel5.setText(" Autenticac~ao Biometrica de Usuario");
86 getContentPane().add(jLabel5);
87 jLabel5.setBounds(30, 10, 350, 30);
88
89 jLabel6.setFont(new java.awt.Font("Tahoma", 0, 10));
90 getContentPane().add(jLabel6);
91 jLabel6.setBounds(160, 100, 90, 10);
92
93 jLabel1.setFont(new java.awt.Font("Arial", 1, 12));
94 jLabel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Identificador da Conta"));
95 getContentPane().add(jLabel1);
96 jLabel1.setBounds(10, 50, 250, 70);
97
98 jAutentica.setText("Autenticar");
99 jAutentica.addActionListener(new java.awt.event.ActionListener() {
100 public void actionPerformed(java.awt.event.ActionEvent evt) {
101 jAutenticaActionPerformed(evt);
102 }
103 });
104 getContentPane().add(jAutentica);
105 jAutentica.setBounds(100, 260, 130, 23);
106
107 jSenha.addKeyListener(new java.awt.event.KeyAdapter() {
108 public void keyPressed(java.awt.event.KeyEvent evt) {
109 jSenhaKeyPressed(evt);
110 }
111 public void keyReleased(java.awt.event.KeyEvent evt) {
112 jSenhaKeyReleased(evt);
113 }
56
114 });
115 getContentPane().add(jSenha);
116 jSenha.setBounds(90, 210, 90, 20);
117
118 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
119 setBounds((screenSize.width-389)/2, (screenSize.height-351)/2, 389, 351);
120 }// </editor-fold>//GEN-END:initComponents
121 /** Verifica se o ritmo de digitac~ao do usuario corresponde com o da
122 conta fornecida previamente*/
123 private void jAutenticaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jAutenticaActionPerformed
124 long media = this.tempo[1] - this.tempo[0];
125 if(media < this.user.menorTempo() || media > this.user.maiorTempo()) {
126 JOptionPane.showMessageDialog(null, "Falha na autenticac~ao!");
127
128 /** Tempo mostrado no JOptionPane */
129 JOptionPane.showMessageDialog(null, "Tempo feito: " + media
130 + "\n\n" + "Menor Certo: " +
131 this.user.menorTempo() + "\n" + "Maior Certo: " +
132 this.user.maiorTempo());
133 /** ate aqui */
134
135 this.cont = 1;
136 this.jIdConta.setText("");
137 this.jLabel6.setText("");
138 this.jLogin.setText("");
139 this.jSenha.setText("");
140 this.tent++;
141 if(this.tent == 2) {
142 JOptionPane.showMessageDialog(null, "Tentativa de fraude!", "ALERTA",
143 JOptionPane.ERROR_MESSAGE);
144 dispose();
145 }
146 }
147 else {
148 JOptionPane.showMessageDialog(null, "Usuario autenticado com sucesso!");
149
150 /** Tempo mostrado no JOptionPane */
151 JOptionPane.showMessageDialog(null, "Tempo feito: " + media
152 + "\n\n" + "Menor Certo: " +
153 this.user.menorTempo() + "\n" + "Maior Certo: " +
154 this.user.maiorTempo());
155 /** ate aqui */
156
157 dispose();
158 }
159
160 }//GEN-LAST:event_jAutenticaActionPerformed
161 /**Este metodo comeca a contagem de tempo, a partir do momento em que o usuario
162 digita o primeiro caracter de sua senha*/
163 private void jSenhaKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jSenhaKeyPressed
164 if(cont == 1) {
165 this.tempo[0] = System.currentTimeMillis();
166 }
167 }//GEN-LAST:event_jSenhaKeyPressed
168 /**Este metodo termina a contagem do tempo que o usuario gastou para digitar
169 a sua senha, esta contagem termina no momento em que o usuario solta a ultima
170 tecla de sua senha*/
171 private void jSenhaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jSenhaKeyReleased
172 if(cont == this.user.getSenha().length() - 1) {
173 this.tempo[1] = System.currentTimeMillis();
174 }
175 cont++;
176 }//GEN-LAST:event_jSenhaKeyReleased
177 /**Este metodo carrega a conta fornecida pelo usuario para assim, proceder
178 a autenticac~ao*/
179 private void jIdContaFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jIdContaFocusLost
180 try {
181 ObjectInputStream buf = null;
182
183 File file = new File("Usuarios/" + Integer.parseInt(jIdConta.getText()) + ".bio");
184 FileInputStream fos = new FileInputStream(file);
185 buf = new ObjectInputStream(fos);
186 Object obj = buf.readObject();
187
57
188 this.user = (Usuario)obj;
189
190 jLabel6.setText("Dados carregados.");
191 } catch (IOException ex) {
192 Logger.getLogger(ModuloAutenticacao.class.getName()).log(Level.SEVERE, null, ex);
193 } catch (ClassNotFoundException ex) {
194 Logger.getLogger(ModuloAutenticacao.class.getName()).log(Level.SEVERE, null, ex);
195 }
196 }//GEN-LAST:event_jIdContaFocusLost
197
198 /**
199 * @param args the command line arguments
200 */
201 public static void main(String args[]) {
202 java.awt.EventQueue.invokeLater(new Runnable() {
203 public void run() {
204 new ModuloAutenticacao().setVisible(true);
205 }
206 });
207 }
208
209 // Variables declaration - do not modify//GEN-BEGIN:variables
210 private javax.swing.JButton jAutentica;
211 private javax.swing.JTextField jIdConta;
212 private javax.swing.JLabel jLabel1;
213 private javax.swing.JLabel jLabel2;
214 private javax.swing.JLabel jLabel3;
215 private javax.swing.JLabel jLabel4;
216 private javax.swing.JLabel jLabel5;
217 private javax.swing.JLabel jLabel6;
218 private javax.swing.JTextField jLogin;
219 private javax.swing.JPasswordField jSenha;
220 // End of variables declaration//GEN-END:variables
221
222 }
58
Recommended