Upload
phamhanh
View
216
Download
0
Embed Size (px)
Citation preview
Estudo de mecanismos de autenticação para aplicações Web
Maurilio Bolonhesi II
Luciana Andréia Fondazzi Martimiano (orientadora)
Especialização em Desenvolvimento de Sistemas para Web – Universidade Estadual de
Maringá (UEM) [email protected]; [email protected]
Abstract. Several authentication mechanisms are available and are used by
the applications. From the authentication of an entity (user, server, etc.), it is
possible to define which are the rights of this entity in a computing
environment. Given this fact, a study of the most widely used authentication
mechanisms is of great importance, especially for Web applications. To study
and to evaluate authentication mechanisms and their use in Web, raising the
advantages and disadvantages of each mechanism, are the main objective of
the work described in this paper.
Resumo. Diversos mecanismos de autenticação estão disponíveis e são
utilizados por sites e aplicações Web. A partir da autenticação de uma
entidade (usuário, servidor, etc.), é possível definir quais são os direitos desta
entidade em um ambiente computacional. Diante deste fato, um estudo dos
mecanismos de autenticação mais utilizados é de grande importância,
principalmente para aplicações Web. Estudar e avaliar mecanismos de
autenticação e suas aplicações em sistemas para a Web, levantando as
vantagens e desvantagens de cada mecanismo, são os objetivos deste
trabalho.
1. Introdução
Um importante requisito para qualquer sistema de gestão da informação é proteger de
dados e recursos contra a divulgação não autorizada e modificações impróprias ou
proibidas, e ao mesmo tempo, garantir a utilização aos usuários que possuem permissão.
Sua proteção, portanto, exige que todos os acessos a um sistema e seus recursos sejam
controlados e que apenas acessos autorizados sejam realizados.
Este processo é denominado controle de acesso. O desenvolvimento de um sistema
de controle de acesso exige a definição de regras por meio de funções e algoritmos
computacionais. Quase todas as aplicações que lidam com a privacidade precisam de
alguma forma de controle de acesso.
O controle de acesso define as atividades autorizadas aos usuários legítimos, e
controla cada interação do usuário para acessar um recurso do sistema. Atualmente,
existem diversos mecanismos de autenticação e controle de acessos, e por este motivo é
importante um estudo dos principais métodos para um levantamento dos mais seguros e
viáveis com relação a custos e tempo de desenvolvimento. Muitos mecanismos na
Internet não levam em conta fatores importantes de segurança e acabam deixando os
sistemas vulneráveis.
O crescimento das redes abertas fez com que surgissem vários problemas de
segurança, que vão desde o roubo de senhas e interrupção de serviços até problemas de
2
personificação, quando uma pessoa faz-se passar por outra para obter acesso
privilegiado [FIORESE, 2000].
Com isso, surgiu a necessidade de autenticação, que consiste na verificação e
validação da identidade tanto dos usuários quanto dos sistemas e processos. Os
mecanismos de autenticação de usuários dividem-se em três categorias: baseados no
conhecimento (o que se sabe), baseados em propriedade (o que se possui) e baseados
em características (o que se é) [YOUNG, 1996]. Cada uma destas categorias possui
vários métodos de autenticação, que são descritos na sequência deste trabalho. Alguns
métodos foram desenvolvidos e comparados, considerando a visão do desenvolvedor e
do usuário.
Este artigo está organizado da seguinte maneira: a Seção 2 apresenta uma descrição
sobre sistemas Web; a Seção 3 apresenta definições, princípios e ferramentas de
segurança; a Seção 4 descreve os diferentes mecanismos de autenticação, apontando
suas vantagens e desvantagens; a Seção 5 descreve a implementação e a avaliação de
três métodos; e a Seção 6 apresenta as considerações finais e propostas de trabalhos
futuros.
2. Segurança da Informação
A informação é um ativo que, como qualquer outro ativo importante para os negócios,
tem um valor para a organização e, consequentemente, necessita ser adequadamente
protegida. A segurança da informação protege os dados de diversos tipos de ameaças
para garantir a continuidade dos negócios, minimizar os danos aos negócios e
maximizar o retorno dos investimentos e as oportunidades de negócio [ISO/IEC NBR
17799, 2005].
A segurança de um ambiente está baseada em três importantes princípios:
Confidencialidade: garante que os dados estarão seguros e acessíveis apenas a
quem possuir acesso legítimo.
Integridade: garante que os dados estarão seguros e protegidos e serão modificados
apenas por aqueles que tenham acesso legítimo.
Disponibilidade: garante que os dados estarão acessíveis sempre que um usuário
legítimo necessite.
Além desses três princípios, três características também são importantes:
autenticidade, autorização e irretratabilidade. Autenticidade é utilizada para se
comprovar que o usuário é realmente quem diz ser. Um dos recursos mais utilizados e
conhecidos por conferir autenticidade é a senha, a princípio, conhecida somente pelo
usuário. Autorização é o ato de determinar se um usuário em particular (ou um sistema
computacional) tem o direito de executar determinada tarefa, tal como leitura de um
arquivo ou execução de um programa.
Geralmente, usuários estão divididos em grupos diferentes com direitos diferentes.
Autenticidade e autorização são sempre empregadas em conjunto: um usuário precisa
ser autenticado antes de executar tarefas que ele esteja autorizado. Irretratabilidade está
relacionada com o fato de que um usuário não pode negar que executou uma
determinada tarefa. Por exemplo, o resultado de uma autenticação não pode ser negado
posteriormente.
As necessidades de segurança dos ambientes tecnológicos sofrem mudanças e
avanços constantes, tendo assim as organizações que se adaptarem as inúmeras
fraquezas proporcionadas por riscos iminentes encontrados em quaisquer sistemas
3
computacionais provedores de serviços [MARTINS, 2007]. As ferramentas auxiliam na
proteção dando segurança, por exemplo, ao servidor onde estão os dados do sistema,
caso algum invasor consiga acessar os dados pelo servidor, ele poderá alterar o sistema
e visualizar toda informação do mesmo.
Uma ferramenta que é importante e pode auxiliar na garantia dos princípios de
segurança e autenticação é a Criptografia, como citam Paredes (2006) e Menezes
(1996), a criptografia é a ciência de escrever em cifras ou códigos utilizando um
conjunto de técnicas que tornam, em princípio, os dados ininteligíveis para o atacante.
Criptografar dificulta muito caso algum invasor esteja monitorando os dados que são
trafegados pelo sistema Web, no qual o atacante pode visualizar dados do sistema, como
senhas e informações confidenciais.
3. Autenticação
De acordo com Aboudagga et al. (2005) autenticação é um processo que envolve um
autenticador comunicando-se com um requisitante usando um protocolo de autenticação
para verificar as credenciais apresentadas pelo requisitante com a finalidade de
determinar os privilégios de acesso do requisitante. Um protocolo de autenticação
define a sequência de mensagens trocadas entre entidades (requisitante e autenticador)
nas quais há algum segredo a ser reconhecido.
Quando um usuário legítimo é verificado, são aplicadas técnicas de controle de
acesso para permitir seu acesso aos recursos do sistema. Se a identidade dos usuários
legítimos puder ser verificada com um grau aceitável de certeza, as tentativas de acessos
ao sistema sem autorização podem ser negadas.
Existe uma variedade de métodos para executar autenticação de usuários, os quais
formam a base dos sistemas de controle de acesso. As três categorias de métodos para
verificação da identidade de um usuário são baseadas em: algo que ele sabe, como uma
senha; algo que o ele possui, como um token de autenticação; e alguma característica
física do usuário, como a impressão digital ou a íris do olho. De modo a usar estas
características para verificar a identidade de um indivíduo, os sistemas de computadores
usam software, hardware ou a combinação dos dois [FIORESE, 1998].
Diversos mecanismos podem ser utilizados e alguns desses são descritos a seguir.
4.1 Mecanismos de autenticação
Soluções de Autenticação baseadas no Conhecimento
A autenticação baseada no conhecimento é o método mais utilizado em sistemas Web,
utilizando segredos como senhas, chaves de criptografia, PIN (Personal Identification
Number), dentre outros que a entidade que está se autenticando possua.
Vários métodos foram propostos para tornar a autenticação baseada em senhas mais
segura, dentre eles o uso de geradores randômicos de senhas, checagem pró-ativa,
utilização de senhas descartáveis (one-time passwords) e sistemas de desafio/resposta
(chalenge/response systems), modificações no processo de login e combinação com
outros mecanismos de autenticação de usuários como smartcards.
As principais vantagens desse método são:
Onde o usuário estiver o segredo estará com ele.
O segredo pode ser facilmente modificado, se necessário.
4
O segredo é facilmente inserido através do teclado, não necessitando de dispositivos
especiais.
Bem aceitos pelos usuários, pois são baratos e fáceis de implementar.
Não requerem hardware adicional.
Podem ser integrados em sistemas baseados em rede e na Web, além de diversos
sistemas operacionais.
No entanto, a principal desvantagem desses métodos está relacionada ao fato de que
senhas podem ser adivinhadas, roubadas ou esquecidas.
A utilização de perguntas randômicas, porém, acrescenta uma dificuldade adicional
a quem quiser divulgar seu segredo, pois, ao contrário de contar apenas uma palavra
(como no caso de senhas), terá que divulgar todas as informações constantes no
questionário que serve de base para as perguntas randômicas.
A integração de soluções baseadas em conhecimento com dispositivos biométricos
oferece dois níveis de autenticação, e pode ser uma solução interessante para evitar o
problema acima citado.
Exemplo de sistemas que utilizam autenticação baseada no conhecimento:
Sites de webmail como Gmail, Hotmail, Yahoo, dentre outros;
Websites em geral que possuem sistema de gerenciamento de conteúdo;
Sites de relacionamentos como Facebook, Orkut, dentre outros;
Blogs, Fotologs, Youtube, e a grande maioria dos sites e sistemas Web.
Soluções de Autenticação baseadas na Propriedade
Segundo Fiorese (2000), as soluções de autenticação baseadas na propriedade
caracterizam-se por um objeto físico que a entidade possui. Este objeto pode ser um
cartão inteligente (smartcard), uma chave ou um token (dispositivo eletrônico
semelhante a uma calculadora, usados para calcular senhas descartáveis).
É comum ter-se a combinação de autenticação por propriedade com autenticação
baseada em senhas, fornecendo dois fatores de autenticação. Sem os dois, uma entidade
não pode ser autenticada em um sistema ou aplicação. Com a crescente utilização de
cartões inteligentes já é possível obter-se três fatores de autenticação, por meio de sua
combinação com senhas e dispositivos biométricos.
As desvantagens deste tipo de autenticação são que os objetos físicos podem ser
perdidos, roubados ou esquecidos, além do custo adicional do hardware necessário.
Um tipo de autenticação baseada em propriedades são mecanismos de baseados em
tokens. Tokens são dispositivos semelhantes a uma calculadora de mão e que não
necessitam de dispositivos de leitura/escrita adicionais. Eles fornecem autenticação
híbrida, usando tanto "algo que o usuário possui" (o próprio dispositivo), como "algo
que o usuário conhece" (um PIN de 4 a 8 dígitos). Sistemas de autenticação
por tokens baseiam-se em um dos seguintes esquemas: autenticação por desafio/resposta
ou autenticação sincronizada no tempo.
Nos sistemas baseados em desafio/resposta, o usuário insere sua identificação no
sistema, que apresenta um desafio randômico como, por exemplo, na forma de um
número de sete dígitos. O usuário, por sua vez, digita seu PIN no token e informa o
desafio apresentado pelo sistema. O token gera a resposta correspondente cifrando o
desafio com a chave do usuário, a qual ele informa ao sistema. Enquanto isso, o sistema
5
calcula a resposta apropriada baseado no seu arquivo de chaves de usuários. Quando o
sistema recebe a resposta do usuário, ele a compara com a resposta que acabou de
calcular, se for idêntica, a conexão é permitida e os direitos de acessos dados.
Na utilização de calculadoras de desafio/resposta, é dado a cada usuário um
dispositivo que foi unicamente chaveado. O sistema deve ter um processo ou
processador para gerar um par de desafios/resposta a cada tentativa de conexão, baseado
nos dados informados pelo usuário. Cada desafio é diferente, para que a observação de
uma troca de questionários com sucesso não traga informações suficientes para uma
conexão subsequente. A desvantagem deste esquema é o número de mensagens trocadas
entre o usuário e o servidor. Uma vez que uma nova senha é gerada a cada 60
segundos, o sistema evita ataques como: adivinhação da senha, ataque do dicionário e
monitoramento do tráfego na rede. Outra característica importante na comparação com
outros produtos são a facilidade de uso e o fato de não requerer hardware adicional.
Exemplos de sistemas que utilizam autenticação baseada na propriedade:
O website do banco Bradesco combina autenticação por conhecimento e por
propriedade (senhas e tokens) (Figura 1), assim como outros sites bancários.
O sistema do jogo online World of War Craft.
Caixas de autoatendimentos bancários.
Figura 1. Exemplo de cartão token utilizado por alguns bancos em sua autenticação no website e nos terminais de autoatendimento.
A principal desvantagem deste esquema é o número de mensagens trocadas entre o
usuário e o servidor.
Soluções de Autenticação baseadas em Características
Sistemas biométricos são métodos automatizados para o reconhecimento de uma pessoa
com base em alguma característica física, como a impressão digital ou o padrão de íris,
ou algum aspecto comportamental, como a escrita ou o padrão de digitação. Ainda que
os sistemas biométricos não possam ser usados para estabelecer um "sim/não" na
identificação pessoal, como as outras tecnologias tradicionais, eles podem ser usados
para alcançar uma identificação positiva, com um alto grau de confiança.
Teoricamente, qualquer característica humana, física ou comportamental, pode ser
usada para a identificação, desde que satisfaça os seguintes requisitos:
Universalidade: todas as pessoas devem possuir a característica.
Singularidade: esta característica não pode ser igual em pessoas diferentes.
Permanência: a característica não deve variar com o tempo;
Mensurabilidade: a característica pode ser medida quantitativamente.
Na prática, existem outros requisitos importantes:
6
Desempenho: precisão de identificação, os recursos requeridos para conseguir uma
precisão de identificação aceitável e ao trabalho ou fatores ambientes que afetam a
precisão da identificação.
Aceitabilidade: indica o quanto as pessoas estão dispostas a aceitar os sistemas
biométricos.
Proteção: refere-se à facilidade/dificuldade de enganar o sistema com técnicas
fraudulentas.
As principais características que são comumente utilizadas são [FIORESE, 2000;
RUGGLES, 2002]:
Reconhecimento da Face: O uso de reconhecimento de face é o método mais
natural de identificação biométrica. O uso das características da face para
identificação automática é uma tarefa difícil porque a aparência facial tende a mudar
a todo tempo. As variações podem ser causadas por diferentes expressões faciais,
mudanças no estilo do cabelo, posição da cabeça, ângulo da câmara, condições de
luz, etc. Apesar das dificuldades envolvidas, o reconhecimento facial já foi abordado
de diversas maneiras, variando de sistemas de reconhecimento de padrões por redes
neurais até varreduras infravermelhas de pontos estratégicos (como posição dos
olhos e da boca) na face.
Impressão Digital: Na verificação de uma impressão, muitos sistemas analisam a
posição de detalhes chamados de minutiae, tais como terminações e bifurcações dos
sulcos. Sistemas modernos também verificam outras características para
identificação única, tais como arcos e voltas que aparecem no dedo. Por exemplo,
alguns dispositivos contam o número de cumes entre um minutiae para formar o
modelo de referência, enquanto outros o tratam como um problema de
processamento de imagens, e aplicam circuitos integrados de grande escala
customizados (VLSI – Very Large Scale Integrated), redes neurais, lógica fuzzy
(fuzzy logic) e outras tecnologias para resolver o problema. Impressões digitais têm
sido utilizadas em várias aplicações como controle de acesso, caixas automáticos de
bancos, registros de saúde, entre outras. Algumas de suas principais vantagens são a
rapidez e a confiança, o baixo preço e o pequeno tamanho dos leitores e o fato de ele
ser considerado pelos usuários como pouco intrusivo. Entretanto, algumas pessoas
acham que estão sendo tratadas como criminosas se sua impressão digital está sendo
requerida.
Geometria da Mão: A geometria da mão tem sido usada em aplicações desde o
começo de 1970. Ela baseia-se no fato de que virtualmente não existem duas
pessoas com mãos idênticas e de que o formato da mão não sofre mudanças
significativas após certa idade.
Reconhecimento de Retina: Algumas pesquisas têm provado que o padrão de veias
da retina é a característica com maior garantia de unicidade que uma pessoa pode
ter.
Reconhecimento de Íris: A captura da imagem é feita por uma câmara em preto e
branco. O usuário olha para a câmara de uma distância de aproximadamente 30 cm
ou mais por poucos segundos. O sistema acomoda usuários de lentes de contato sem
dificuldades, embora o sensor deva ser montado ou ajustado de modo a ser
satisfatório para usuários de diferentes alturas, incluindo aqueles em cadeiras de
roda.
7
Reconhecimento de Voz: A tecnologia de reconhecimento de voz é fácil de usar e
não requer grandes esforços na educação do usuário. Entretanto, deve-se cuidar para
garantir que o usuário fale em um tempo apropriado e em voz clara.
Reconhecimento de Assinatura: O ritmo necessário para escrever uma assinatura
pode ser usado em um sistema de identificação automático. Esta técnica já é muito
usada e popular, uma vez que todos os cheques são verificados usando-se as
assinaturas.
Ritmo de Digitação: Como a assinatura, o ritmo de digitação exibe o mesmo fator
neurofísico que pode ser utilizado na identificação única de um indivíduo.
Esquemas de ritmo de digitação analisam o modo como um usuário digita em um
terminal, monitorando o teclado 1000 vezes por segundo.
Como exemplo da utilização de autenticação por característica algumas empresas
estão adotando a utilização de digitais em softwares de pontos de funcionários, catracas
e demais sistemas que precisem de identificação pessoal ou autenticação. Alguns bancos
estão adotando em seus terminais de autoatendimento o reconhecimento das veias da
mão em conjunto com senhas e tokens, ou até mesmo sem eles caso o cliente prefira.
Na Tabela 1, alguns métodos de autenticação como o da assinatura não são muito
seguros, pois possuem uma baixa singularidade, universalidade e proteção, assim como
o tempo pode modificar a forma de assinar de uma pessoa, deixando o recurso
biométrico com uma baixa permanência. Já os métodos de autenticação por íris e
digitais se destacam, pois são bastantes mais seguros e bem aceitos e também possuem
bom desempenho.
Tabela 1. Comparação entre algumas técnicas biométricas [FIORESE, 2000].
Biométricos Univer-
salidade
Singula-
ridade
Perma-
nência
Mensura-
bilidade
Desem-
penho
Aceita-
bilidade
Proteção
Face Alto Baixo Médio Alto Baixo Alto Baixo
Impressão
Digital
Médio Alto Alto Médio Alto Médio Alto
Geometria
da Mão
Médio Médio Médio Alto Médio Médio Médio
Veias da
Mão
Médio Médio Médio Médio Médio Médio Alto
Íris Alto Alto Alto Médio Alto Alto Alto
Retina Alto Alto Médio Baixo Alto Alto Alto
Assinatura Baixo Baixo Baixo Alto Baixo Alto Baixo
8
Voz Médio Baixo Baixo Médio Baixo Alto Baixo
4. Implementação de mecanismos de autenticação
Para a avaliação e comparação foram implementados três mecanismos de autenticação,
utilizando o framework de desenvolvimento codeigniter, com a linguagem para Web
PHP5 e o banco de dados MySQL, utilizando o padrão de programação MVC (Model-
View-Controler).
Foi desenvolvido inicialmente um mecanismo de autenticação simples de login e
senha, no qual foi observado que dentre os métodos estudados, este é o mais simples de
desenvolver, mais rápido, porém, o que possui menos segurança.
No segundo método, além do login e senha, foram utilizados tokens, que são
semelhantes a um cartão que pode ficar com o usuário. Na programação, foi necessário
ter um banco de dados com os tokens cadastrados e algumas linhas de códigos a mais
para comparações, aumentando assim a dificuldade e o tempo de desenvolvimento, mas
também dando uma maior credibilidade e segurança a este método.
No terceiro método, a autenticação é feita pela digital. Para o cadastro de cada
usuário no banco de dados é necessário armazenar a digital e também ter em cada ponto
de controle de acesso um hardware de leitura da mesma. O hardware verifica a digital e
envia os dados para o sistema que compara com a digital cadastrada, se for correta,
libera o acesso, caso contrário, o acesso não é liberado. Este método possui mais
credibilidade que os anteriores, pois o usuário não corre o risco de perder ou alguém
roubar sua senha, porém, o desenvolvimento é mais complexo e há o custo do
hardware.
5.1 Mecanismos implementados
A seguir, são apresentados os mecanismos que foram implementados.
a) Autenticação baseada no conhecimento – Login e senha, conforme Figura 2.
Figura 2. Formulário de login e senha
Disponível em: http://www.mundov.com.br/sistema
O Quadro 1 mostra o código utilizado para implementação deste mecanismo. No
código, a função addslashes remove caracteres indevidos que são utilizados em ataques
como os de SQL Injection, que permite ao atacante inserir uma série de instruções SQL
em uma consulta (query) por meio da manipulação das entradas de dados de uma
aplicação. Em seguida, tem-se uma verificação se a variável login está preenchida, se
estiver, o sistema carrega um módulo do framework codeigniter chamado
9
form_validation (validação de formulário), que é responsável por validar formulários,
de acordo com as regras que definimos. Regras são definidas para não permitir que as
variáveis login e senha estejam em branco e que a senha seja criptografada utilizando o
método MD5 (Message-Digest algorithm 5), que é um algoritmo de hash de 128
bits unidirecional. Na sequência, é verificado se o usuário existe no banco de dados e se
a senha confere. Se a senha estiver correta, a aplicação lista os privilégios deste e salva
as informações em variáveis de sessão, liberando o acesso e redirecionando para a
página inicial do sistema.
class Login extends Controller {
function Login() {
parent::Controller();
}
function index() {
//salva váriaveis do form
$id = addslashes($this->input->post('id'));
$login = addslashes($this->input->post('login'));
$senha = addslashes($this->input->post('senha'));
if (!$login) { //se login nao for preenchido, abre formulario
$data['erro']='';
$this->load->view('login',$data);
} else {
$this->load->library('form_validation');
$this->form_validation->set_rules('senha', 'Senha', 'md5|required');
$this->form_validation->set_rules('login', 'Login', 'required');
$erro=0;
//verifica se existe o usuario e confere o login e a senha.
$query = $this->db->get_where('usuarios',array('login' => $login, 'senha'
=> $senha));
// Não achou nenhum user, guardar mensagem de erro e retornar na tela de login.
if ($query->num_rows() == 0) {
$data['erro'] = "Senha ou login inválidos";
$erro=1;
//achou usuario, verifica se ele tem permissao ao nucleo selecionado
} else {
$user = $query->row();
}
if ($erro == 0) {
$now = date('Y-m-d H:i:s');
// Achou user, guardar dados em sessão
$row = $query->row();
$this->session->set_userdata('logged',1);
$this->session->set_userdata('login',$row->login);
$this->session->set_userdata('nome',$row->nome);
$this->session->set_userdata('id',$row->id);
$this->session->set_userdata('tipo',$row->tipo);
$menu = $this->db->get('menus');
//seleciona as opçoes de acessos do usuario
foreach ($menu->result() as $n) {
$permite = $this->db-
>get_where('permissoes',array('id_user' => $row->id, 'id_menus' => $n->id))->num_rows();
if ($permite > 0) {
$this->session->set_userdata($n->nome,1);
} else {
$this->session->set_userdata($n->nome,0);
}
}
if ($row->data_acesso == "") {
$acesso=$now;
} else {
10
$acesso = $row->data_acesso;
}
$this->session->set_userdata('data_acesso',$row->data_acesso);
// Inserindo Last Login, fica sempre salvo o ultimo login do usuário.
$update = array('data_acesso' => $now);
if ($row->id) {
$this->db->where('id', $row->id);
$this->db->update('usuarios', $update);
}
//redireciona para a pagina inicial do sistema.
redirect('adm/inicio');
} else {
$this->load->view('login',$data);
}
}
}
}
Quadro 1. Código para implementação do mecanismo de login e senha.
b) Autenticação baseada na propriedade – Login, senha e token, conforme Figura 3.
Neste método foi utilizado um token, além do convencional login e senha. Durante o
cadastro de cada usuário, são cadastrados no banco de dados os tokens iniciais
referentes a este usuário, que serão solicitados na tela de autenticação. Estes tokens são
gerados de forma randômica por meio da função rand() do PHP. Na tela de autenticação
é solicitado ao usuário seu login, sua senha e uma chave de 1 a 3 que também é
sorteada, fazendo com que o usuário preencha com o token correspondente à chave que
foi mostrada. Após a verificação correta, o acesso é liberado.
Figura 3. Formulário de login, senha e token.
Disponível em: http://www.mundov.com.br/sistema2
c) Autenticação baseada na característica – Digital, conforme Figura 4.
11
Figura 4. Formulário de login com digitais, comparando digital de entrada com digital cadastrada em sistema.
No método de digitais, cada usuário tem em seu cadastro no banco de dados
uma imagem de sua digital, ou várias, se for o caso de utilizar mais dedos. Além
disso, é necessário um hardware que faça a leitura da digital, como por exemplo, o
Fingerprint da empresa Microsoft. Este aparelho possui um software interno, que
recebe as imagens das digitais cadastradas no banco de dados e faz a comparação
com a digital em leitura no momento, retornando o usuário. Caso haja confirmação
da digital, o seu acesso ao sistema é liberado.
5.2 Análise dos mecanismos
Para realizar um comparativo entre os métodos desenvolvidos, foram feitas duas
tabelas, uma que possui a visão do desenvolvedor (Tabela 2) e a outra que mostra a
visão do usuário (Tabela 3). As respostas a uma pesquisa via e-mail enviada a
cinco pessoas foram utilizados como base para os resultados apresentados na
Tabela 3. Nesta pesquisa foi solicitado ao usuário fazer uma escala de 1 a 3, entre
os três mecanismos implementados, as questões eram:
1. Numere os métodos de autenticação que acha mais simples de se usar, 1
para o pior e 3 para o melhor.
2. Numere os métodos de autenticação que você tem mais confiança em
utilizar, 1 para o pior e 3 para o melhor.
Na Tabela 2, a comparação foi feita em uma escala de três níveis (1, 2 e 3,
sendo que 1 indica o pior e 3 indica o melhor) com relação a quatro características:
segurança, custo, viabilidade e dificuldade. Já na Tabela 3, os três níveis indicam as
confiabilidade que o usuário teve na utilização e também a facilidade de se
autenticar (usabilidade).
Tabela 2. Visão do desenvolvedor: comparação entre os métodos de autenticação desenvolvidos.
Segurança Custo Viabilidade Dificuldade
Login e senha 1 1 3 1
Login, senha e token 2 2 2 2
12
Digital 3 3 1 2
Tabela 3. Visão do usuário: comparação entre os métodos de autenticação desenvolvidos.
Usabilidade Confiabilidade
Login e senha 3 1
Login, senha e token 1 2
Digital 2 3
5. Considerações Finais e Trabalhos Futuros
Entre os tipos de autenticação estudados, cada um possui vantagens e desvantagens,
sendo que alguns se tornam mais viáveis para algumas finalidades e outros não. Como o
estudo é sobre sistemas Web, os métodos de autenticação baseados em características só
serão viáveis em alguns casos específicos (sistema empresariais, intranets, etc.), pois
eles têm a dificuldade e o custo do hardware, apesar de ter alta confiabilidade e
segurança.
Os métodos baseados em conhecimento, apesar da baixa confiabilidade e baixa
segurança, em muitos casos é ainda o mais viável na Web, pois não depende de
hardware para milhares de usuários e ainda é o mais simples de ser desenvolvido e com
usabilidade. Por outro lado, sites e sistemas que necessitam de maior segurança das
informações, a melhor opção analisada é a combinação entre autenticação por
conhecimento com a propriedade, utilizando login e senha, e o token, dando maior
confiabilidade e segurança, mesmo com um aumento no custo devido ao uso do
hardware gerador de tokens ou dos cartões tokens, dependendo da aplicação.
Em trabalhos futuros, poderão ser estudados mais a fundo os métodos baseados em
características, para que sejam viáveis em relação aos custos, facilitando seu uso e
tornando o processo de autenticação mais seguro e confiável em sistemas Web.
6. Referências Bibliográficas
ABOUDAGGA, N., REFAEI, M. T., ETOWEISSY, M., DASILVA, L. A.,
QUISQUATER, J.; Authentication Protocols for Ad Hoc Networks: Taxonomy and
Research Issues, International Workshop on Modeling Analysis and Simulation of
Wireless and Mobile Systems, 2005.
BALASUBRAMANIYAN, J. S.; FERNANDEZ, J. O. G.; ISACOFF, D.; SPAFFORD,
E.; ZAMBONI, D.; An architecture for intrusion detection using autonomous
agents. Tecnhical Report. Department of Computer Sciences, Purdue University,
COAST Laboratory TR 98/05. 1998.
CHAPMAN, D. B.; SWICK, E. D.; Building Internet Firewalls. O’Reilly &
Associates. 1995. 517p.
13
FIORESE, M.; Mecanismos de Autenticação de Usuários. Porto Alegre -
Universidade Federal do Rio Grande do Sul - UFRGS, 1998.
FIORESE, M.; Uma Proposta de Autenticação de Usuários para Ensino a
Distância, Universidade Federal do Rio Grande do Sul – UFRGS, 2000.
HOUAISS, A.; Dicionário da língua portuguesa. Editora Objetiva, 2003.
ISO/IEC NBR 17799; Tecnologia da informação – Código de prática para a gestão
da segurança da informação. Agosto, 2005.
MARTINS, P. R.; Relacionando o Conceito de Criptografia em Implantações de
Firewalls, Senais – Florianópolis, SC, 2007.
MENEZES, A. J.; VAN OORSCHOT, P. C.; VANSTONE, S. A.; Handbook of
Applied Cryptography. CRC Press. 1996.
OPPLIGER, R.; Internet Security: Firewalls and Beyond. Communication of the
ACM, v. 40, n. 5, 1996. pp. 92–102.
PAREDES, G. G.; Introducción a la criptografia. Revista Digital Universitária, vol. 7,
n. 7, 2006.
RUGGLES, T.; Comparation of Biometric Techniques. The Biometric Consulting
Group. Disponível em http://www.biometric-consulting.com/bio.htm. 2002. Acesso em
setembro de 2011.
YOUNG, I. T.; KIRSTEIN, P. T.; IBBETSON, A.; Technologies to Support
Authentication in Higher Education. Disponível em
http://www.ukoln.ac.uk/services/elib/papers/other/scoping/. 1996. Acesso em setembro
de 2011.
WINCKLER, M.; PIMENTA, M. S.; Avaliação de usabilidade de sites Web.
Universidade Federal do Rio Grande do Sul – UFRGS – 2001.