3 Modelo de Proposto
 
 

Este trabalho propõe um modelo de autenticação de usuários para ser utilizado em aplicações de educação a distância. Deste modo, envolve todas as rotinas relacionadas à autenticação e geração dinâmica das páginas.

De acordo com a análise realizada no capítulo anterior, procurou-se selecionar as soluções viáveis, tanto em termos de custo e dispositivos extras envolvidos, como em termos de simplicidade de procedimentos e precisão das medidas efetuadas. Assim, foi proposto um modelo que integra essas técnicas de autenticação a fim de chegar a um nível de segurança maior do que senhas.

O sistema funciona como um proxy, cuja função é controlar o acesso às páginas Web através da combinação de senhas, perguntas randômicas, dispositivos biométricos e checagem randômica, ao mesmo tempo que gera logs da atividade do aluno no curso. Esses logs conterão informações como dia e hora do acesso, tempo dispendido em cada página, endereço IP da máquina do aluno, entre outras. Esses dados poderão ser utilizados na avaliação do aluno e também na geração de seu perfil estatístico, que servirá para gerar alertas, na medida em que os dados do perfil sofrerem mudanças acima dos limites estabelecidos, durante a atividade do aluno.

Para que apenas pessoas autorizadas possam acessar as páginas, as mesmas serão geradas dinamicamente através de um CGI (Common Gateway Interface) no servidor. Esse mesmo CGI será o responsável pela autenticação e pela geração dos logs citados acima.

FIGURA 3.1 - Arquitetura do modelo proposto
O sistema é composto pelos seguintes módulos: módulo de autenticação, módulo de navegação dinâmica, módulo de controle de sessões, módulo de geração de alertas e módulo de geração de logs. A figura 3.1 apresenta a arquitetura do modelo proposto.
 
 

3.1 Módulo de Autenticação:

Este módulo integra diferentes soluções de autenticação de usuários de modo a suprir as deficiências individuais de cada uma. Estas soluções se completam, formando um todo mais seguro que o oferecido com o uso individual de cada uma.

A primeira técnica utilizada são as senhas. Por questões de segurança, apenas os hashs MD5 dessas senhas são armazenados no banco de dados. Isso evita que o sistema seja comprometido em caso do banco de dados ser violado. Quando o usuário entra no sistema, o mesmo busca o hash na base de dados e compara-o com o hash da senha informada, liberando o acesso caso forem idênticos.

A utilização de perguntas randômicas é uma técnica que visa dificultar o acesso de pessoas não cadastradas ao sistema. Estas perguntas baseiam-se em dados pessoais de alunos válidos que são previamente cadastrados. No momento da conexão, busca-se na base de dados uma dessas perguntas pessoais de forma aleatória, a qual é devolvida ao aluno na forma de um desafio. Se ele responder corretamente, estará autenticado no sistema. A figura 3.2 apresenta alguns exemplos de perguntas randômicas pessoais que podem ser utilizadas. É importante se destacar que as perguntas apresentadas na figura 3.2 são apenas exemplos. Caberá ao administrador do sistema realizar o cadastro das perguntas que julgar necessárias, em ferramenta própria, desenvolvida neste trabalho.

Um meio de melhorar a eficiência das perguntas randômicas é a inserção de perguntas com respostas dinâmicas, isto é, com respostas geradas pela atividade do usuário, como por exemplo: "Qual a data de sua última conexão?" Ao contrário das respostas estáticas, as dinâmicas mudam a cada sessão, aumentando o grau de segurança.
 
 
 
1 - Qual é a sua cidade natal? 
2 - Qual é o primeiro nome de sua mãe? 
3 - Em que ano você nasceu (AAAA)? 
4 - Qual é o primeiro nome de seu pai? 

FIGURA 3.2 - Exemplos de perguntas randômicas
O uso de dispositivos biométricos pretende adicionar a característica pessoal do aluno no processo de autenticação. Um dispositivo que pode ser utilizado é o reconhecimento de faces. Ele necessita apenas uma câmera digital, freqüentemente encontrada em ambientes de ensino a distância. Porém podem ser utilizados outros dispositivos biométricos que possam funcionar pela Web.

Por fim, a utilização de checagem randômica complementa a autenticação possibilitando que se faça uma verificação visual do usuário que estiver utilizando o procedimento de educação a distância. Nesta técnica, é necessário instalar uma aplicação no cliente que em tempos aleatórios extraia uma foto do usuário através de uma câmera digital e a envie para um diretório remoto para posterior conferência. Assim o professor pode conferir se a pessoa que está na frente da câmera é a mesma que passou pelos outros processos de autenticação. A aplicação que roda no cliente para extração das fotos comunica-se com o módulo de autenticação, de modo que o usuário somente poderá concluir a autenticação se esta rotina estiver ativa.

Para acessar o sistema, o aluno deve primeiramente iniciar a aplicação de checagem randômica em seu computador. A seguir, acessar, com seu navegador, a página de login. Neste momento lhe serão requisitados os dados de autenticação (nome, senha e/ou extração do dado biométrico). Estes dados serão enviados para o módulo de autenticação, que verificará se são válidos. Se os dados forem válidos, o sistema buscará na base de dados uma pergunta pessoal aleatória e desafiará o usuário. Se ele responder corretamente à pergunta, estará autenticado no sistema, e lhe será apresentada a página inicial com os cursos em que está matriculado. Uma resposta ou dado inválido, em qualquer etapa deste processo, negará o acesso do aluno ao sistema.
 
 

3.2 Módulo de Navegação Dinâmica

O módulo de navegação dinâmica é responsável por apresentar as páginas do curso aos alunos. Para isso, ao receber uma requisição, ele abre uma conexão URL (Uniform Resource Locator) com o servidor WWW destino, busca a página e a devolve para o navegador do cliente, de forma transparente.

Os métodos analisados para realizar o controle de acesso dos alunos às páginas do curso foram a geração de páginas dinâmicas, autenticação básica dos servidores WWW e alterações no servidor WWW.

A autenticação básica dos servidores WWW utiliza somente senhas, o que foi considerado insuficiente devido aos problemas relacionados às senhas apresentados no capítulo dois. A fim de obter independência de plataforma e de servidor WWW, descartou-se modificações em um servidor, optando-se assim pela geração dinâmica de páginas. Além disso, esta técnica possibilita que se obtenha um controle mais apurado das atividades dos usuários.

No momento em que este módulo busca a página no servidor remoto, ele modifica seus links de modo que toda a requisição do cliente passe pelo sistema. A figura 3.3 apresenta um trecho do código HTML (Hypertext Markup Language) de uma página modificada.

É importante salientar que a navegação somente é possível após o aluno ter passado pelo processo de autenticação. Na medida em que o usuário navega pelo curso, armazena-se várias informações, tais como a seqüência de navegação, informações de cada página, entre outras, que serão utilizadas na geração dos logs do sistema.
 
 
<li><a href="javascript:envia('x500.htm')"><big>Padrão X.500</big></a></li>
<li><a href="javascript:envia('nomes.htm')"><big>Nomes</big></a></li>
<li><a href="javascript:envia('dib.htm')"><big>BID - Base de Informações do Diretório </big></a></li>

<script language="javascript">
function envia(url1)
{
   document.form1.URL.value=url1
   document.form1.submit()
}
</script>
<form name=form1 ACTION="http://127.0.0.1/servlets/ProxyServlet" 

FIGURA 3.3 - Fonte do arquivo HTML com links modificados


3.3 Módulo de Controle de Sessões

O HTTP (Hypertext Transfer Protocol) é um protocolo sem estados (stateless), ou seja, não fornece nenhum meio de um servidor reconhecer que uma seqüência de requisições é do mesmo cliente. Assim, é necessário que cada cliente forneça um identificador único que permita que o servidor identifique-o. Esse é o trabalho do módulo de controle de sessão

Existem várias técnicas que podem ser utilizadas no controle de sessão. Dentre as mais comuns, destacam-se campos de formulários escondidos, reescrita de URL e cookies [HUN98].

A técnica de campos de formulário escondidos (hidden form fields) consiste em adicionar este tipo de campos em um formulário HTML, os quais não são mostrados pelo navegador do cliente. Eles são enviados ao servidor no momento em que o formulário que os contém é submetido. A figura 3.4 apresenta um exemplo de campo escondido. Campos de formulários escondidos são suportados por todos os navegadores e não exigem pré-requisito adicional do servidor.
 
 
 
 
<FORM ACTION="cgi-bin/Exemplo" METHOD="POST"
...
<INPUT TYPE=hidden NAME="sessionid" VALUE="43rddd5d">
...
</FORM>

FIGURA 3.4 - Campos escondidos em um formulário HTML


Na técnica de reescrita de URL (URL Rewriting), cada link que o usuário possa clicar é dinamicamente modificado ou reescrito, de modo a incluir informações adicionais. Estas informações podem ser na forma de caminho (path), parâmetros ou alguma URL específica. Devido ao limitado espaço disponível para a reescrita de uma URL, as informações adicionadas são usualmente limitadas a um identificador de sessão. Por exemplo, a figura 3.5 mostra a reescrita de uma URL para passar o identificador de sessão 123.
 
 
http://servidor:porta/servlet/Rewritten    original
http://servidor:porta/servlet/Rewritten?sessionid=123  parâmetros adicionados
http://servidor:porta/servlet/Rewritten/123   caminho modificado
FIGURA 3.5 - Reescrita de URL
A última técnica de controle de sessão estudada envolve o uso de cookies. Um cookie é um pedaço de informação enviado pelo servidor Web para um navegador que pode ser lido posteriormente pelo servidor. Quando um navegador recebe um cookie, ele o salva e depois o envia para o servidor cada vez que o navegador acessa uma página naquele servidor, sujeito à certas regras. Uma vez que o valor do cookie pode identificar unicamente um cliente, eles podem ser usados para controle de sessão.

O módulo de controle de sessão utiliza uma combinação de cookies e campos de formulários escondidos para permitir que o sistema associe um pedido a um usuário. Na verdade, o controle de sessão do sistema utiliza cookies. Os campos de formulários escondidos são utilizados para passar informações da sessão para o módulo de avaliação (desenvolvido por outro aluno do PPGC da UFRGS)[HAC2000] .

O funcionamento do módulo de controle de sessão é simples: no momento em que o usuário acessa a página de login e envia suas informações é criado um cookie contendo um identificador para aquela sessão. Este identificador de sessão é armazenado em memória e associado ao nome do usuário. Em todas as requisições subseqüentes, o sistema verifica este cookie. Se ele for válido, ele verifica a associação com o nome do usuário em memória e mantém a sessão. Ao término da sessão ou na ocorrência de uma etapa de autenticação inválida, o cookie é invalidado e sua referência é retirada da memória. Com isso, qualquer requisição subseqüente é redirecionada para a página de login, para a criação de um novo cookie.
 
 

3.4 Módulo de Geração de Logs

O módulo de geração de logs é responsável por armazenar informações sobre a atividade dos usuários no sistema. Estas informações referem-se às sessões e à seqüência de páginas acessadas. Dentre as informações da sessão, destacam-se a data e hora de acesso, tempo despendido em cada sessão, endereço IP e DNS da máquina cliente, e agente do usuário - HTTP_USER_AGENT (contém o nome e a versão do navegador do usuário). Além disso, este módulo também armazena a seqüência de navegação do usuário, contendo informações sobre cada página acessada, tais como título da página, URL, data e hora de acesso, tamanho da página e taxa e tempo de leitura. A figura 3.6 apresenta uma parte do log gerado no final de uma sessão.

A geração das informações contidas no log do sistema inicia no momento em que o usuário finaliza a fase de autenticação. A partir daí, qualquer operação efetuada é armazenada. No momento em que o usuário encerra sua sessão, o sistema armazena as informações do log na base de dados.

As informações contidas no log são utilizadas pelo módulo de avaliação para avaliar o aluno. O módulo de geração de alertas também utiliza essas informações para a composição do perfil do aluno.

FIGURA 3.6 - Log gerado no final de uma sessão


3.5 Módulo de Geração de Alertas

Este módulo é responsável pela análise da utilização do sistema pelos usuários e pela geração de alertas na medida em que seu comportamento desvia-se do perfil gerado durante a atividade desses usuários no sistema. Desta forma, o módulo de geração de alertas é visto como um complemento da autenticação.

O perfil do usuário é extraído através de consulta aos logs do sistema. Dentre as variáveis selecionadas para a composição deste perfil destacam-se:

Para que o professor possa configurar e ajustar os limites de cada variável na geração de alertas, o sistema disponibilizará uma ferramenta chamada "Configurar Alertas". Através dela, o professor poderá ajustar as regras de geração de alertas do modo que melhor lhe convier. A figura 3.7 apresenta uma visão da ferramenta Configurar Alertas.


 

FIGURA 3.7 - Ferramenta Configurar Alertas

 
Com as variáveis "horário em que o usuário acessa o sistema", "duração da sessão" e "taxa de leitura", determina-se a média aritmética (figura 3.8) e o desvio padrão (figura 3.9).

FIGURA 3.8 - Fórmula da média aritmética


FIGURA 3.9 - Fórmula do desvio-padrão


Com isso, o professor poderá configurar estas variáveis para estarem dentro de determinados intervalos. Estes intervalos foram escolhidos de acordo com a propriedade mátemática do desvio-padrão para distribuições normais [SPI79]: Sempre que uma variável estiver fora dos limites configurados pelo professor, envia-se uma mensagem alertando-o do ocorrido.
 

3.6 Escopo da Implementação

Este trabalho propõe um modelo de autenticação de usuários a utilizar-se em aplicações de ensino a distância. Assim, serão implementadas rotinas relacionadas à autenticação, controle de sessão, geração dinâmica das páginas, geração de alertas e logs.

Uma vez que as páginas serão geradas dinamicamente, a interface com o usuário também ficará contida neste trabalho.

Em termos de integração com o sistema de avaliação (desenvolvido em [HAC2000]), serão incluídos na interface do sistema os links de chamada das ferramentas de avaliação. O identificador de sessão será passado às rotinas de avaliação através de campos escondidos.

No que refere-se à autenticação, a inviabilidade econômica para aquisição dispositivos biométricos e seu respectivo software, impediram sua utilização neste trabalho. A dificuldade de manipulação das APIs das câmeras digitais no desenvolvimento de uma rotina de checagem randômica também inviabiliza sua implementação neste projeto. Assim, dispositivos biométricos e checagem randômica apenas constarão no modelo e em trabalhos futuros.

Por fim , em termos de navegação dinâmica, se optou por utilizar apenas um subconjunto do HTML para a validação do modelo. Desta forma, apenas serão modificados os links relacionados a tag HREF para páginas HTML e texto.