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.
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.
2 - Qual é o primeiro nome de sua mãe? 3 - Em que ano você nasceu (AAAA)? 4 - Qual é o primeiro nome de seu pai? |
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">
|
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> |
http://servidor:porta/servlet/Rewritten original
http://servidor:porta/servlet/Rewritten?sessionid=123 parâmetros adicionados http://servidor:porta/servlet/Rewritten/123 caminho modificado |
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.
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:
FIGURA 3.9 - Fórmula do desvio-padrão
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.