Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina

sexta-feira, 31 de agosto de 2007

Você é um Humano?

Olá pessoal!

Muitas são as razões para se exigir alto grau de segurança num sistema, que vão desde a movimentação de valores num sistema bancário até a privacidade de informações de seus clientes.

Na busca por mais segurança, os desenvolvedores utilizam métodos para verificar se o usuário que está acessando o sistema ou recurso é um humano ou não. Os testes que têm como objetivo diferenciar um humano de uma máquina são chamados de Testes de Turing, criado pelo famoso cientista da computação Alan Turing.

Certamente, diferenciar um humano de uma máquina com eficiência aumenta o grau de segurança de uma aplicação. O problema é que há fatores importantes que devem ser levados em consideração na aplicação desses testes. O principal deles, na minha opinião, é a acessibilidade.

Também precisamos levar em consideração a eficiência dos testes. Sempre que há desenvolvedores buscando soluções de segurança, existem outros buscando meios de burlar a segurança. E quanto mais atrativo for o sistema para utilização criminosa, mais recursos serão despreendidos para quebrar a segurança.

Neste artigo, vou mostrar algumas alternativas para Testes de Turing.

Captcha

O mais famoso Teste de Turing aplicado na WEB certamente é o CAPTCHA. Um tipo comum de CAPTCHA é o uso de letras e números distorcidos sobre uma plano de fundo.

Existem muitos sistemas de Inteligência Artificial que foram desenvolvidos com o intuito de ler as imagens através de computadores e passar por essas barreiras de segurança. O mais impressionante é que normalmente os captchas que podem ser entendidos por humanos são quebrados por esses sistemas com um alto grau de eficiência - a maior parte dos captchas é quebrada em mais de 80 das tentativas. Assim, a sensação de segurança com a utilização de captcha normalmente é só uma sensação, pois, se o seu sistema realmente interessar, será despreendido tempo e recursos para a quebra de segurança.

Não quero, com isso, dizer que não há captchas eficientes. Existem captchas que até hoje nunca foram quebrados e provavelmente nunca serão, devido a sua complexidade.

O problema da complexidade é que muitos humanos também terão dificuldade de entender a imagem e acessar o sistema. Falando em acesso, pense num usuário cego se cadastrando num site que tenha captcha Ele simplesmente não conseguirá se cadastrar e será marginalizado pelo sistema. Agora imagine que esse site seja da Receita Federal. Uma parte da população não poderá acessar um serviço público.

Esse problema pode ser contornado com a utilização de captchas sonoros combinados aos visuais. Mas se você conseguiu fazer um captcha visual eficiente, certamente terá muito mais dificuldade para ter a mesma eficiência com sons. Isso porque distorcer um som para impedi-lo de ser entendido por sistemas de reconhecimento de voz fará com que também fique difícil para humanos entender.

Também cabe sempre pensar nos usuários de navegadores baseados em texto.

Se decidir por utilizar CAPTCHA, tenha em mente que seu sistema terá a acessibilidade comprometida e que não estará 100 livre de invasores. Muito pelo contrário: se o invasor tiver muito interesse em acessar de forma automática, ele não enveredará esforços para conseguir exito e muito provavelmente conseguirá.

Testes de Lógica

Este tipo de teste também vem crescendo na WEB. Trata-se de uma pergunta que tem somente uma resposta lógica. Exemplo: Qual dessas palavras é um nome de homem? Armário, Carro ou João?.

Bastante interessante, não? É uma pergunta fácil de ser respondida por um humano porém difícil de ser respondida por um computador.

Se a pergunta não admitir somente uma resposta de múltipla escolha, como no exemplo acima, o sistema deve permitir flexibilidade de maiúsculas/minúsculas, acentos, espaços a mais, pontuação, etc.

Mas há desvantagens.

1. Você terá que ter um arsenal de milhares de perguntas e respostas. Imagine que você cadastre 100 perguntas e suas respectivas respostas. Em questão de minutos um computador testará todas as possibilidades e as cadastrará para futuro uso. Mesmo que não seja possível automatizar os testes com um computador, um humano pode responder às perguntas e ensinar ao computador as respostas.

2. Esse método também tem problemas de acessibilidade. Existem pessoas que têm problemas de cognição ou dislexia. Além disso, há os visitantes de outros países.

Verificação por e-mail

É um método interessante. O usuário cadastra-se através de um formulário comum mas a sua conta fica desabilitada até que o usuário confirme sua inscrição através de um e-mail enviado pelo sistema para o endereço cadastrado.

Embora dificulte, não impede. Se um humano completar o cadastro do robô, posteriormente ele (o robô) poderá acessar o sistema através de login automático.

A grande vantagem desse método é que ele é completamente acessível. Além disso, é simples de implementar.

Identificação por Documentos

Outra forma simples de implementar e acessível é a identificação do usuário por documentos (Identidade, CPF, cartão de crédito, etc). Esse método se assemelha ao anterior pela facilidade de implementação e da quebra de segurança.

Outro fator a ser levado em consideração é a segurança das informações dos usuários cadastrados e o uso de documentos de terceiros.

Coleta de Perfil

Uma forma complexa é a formação de um perfil de utilização do sistema para cada usuário. Muito utilizado por sistemas financeiros de instituições bancárias, consiste em monitorar os passos do usuário e estabelecer padrões de uso.

Digamos que você acessa o site do seu banco e faz sempre movimentações baixas, paga sempre os mesmos boletos, etc. Um dia outro usuário se faz passar por você e paga um título estranho de um valor alto, ou faz uma transferência para uma conta estranha. O sistema detecta que pode estar acontecendo uma invasão e alerta o administrador do sistema, que faz a investigação e toma as medidas necessárias.

Eu conheço usuários que já tiveram suas contas bloqueadas porque os administradores do sistema bancário identificaram a invasão antes que houvesse alguma fraude.

Como desvantagens, vejo o alto custo do sistema, monitoração de alertas, etc. Além disso, há um tempo necessário para a correta coleta do perfil do usuário. Essas desvantagens inviabilizam a utilização da coleta de perfil na maior parte dos sistemas WEB.

Chat ou Telefone

Imagine tentar acessar um serviço que requer segurança e, antes do acesso, ser submetido a um chat com um operador, para que você confirme que é um humano ou que você é o dono da conta.

Interessante, não?

Esse sistema é utilizado por alguns sites, que requerem que, após uma transação, você confirme através de telefone ou chat que realmente deseja continuar a transação.

Mais um sistema eficiente. Mais um sistema que é inviável, na maior parte das vezes, pelo alto custo.

Limitação de Utilização

Ainda tomando como exemplo sistemas financeiros, o seu sistema ter cotas de utilização. Exemplos:

1. Mandar 20 mensagens por dia.

2. Comprar no máximo R500,00 por dia.

A desvantagem é que torna-se necessário um estudo detalhado para estabelecimento de cotas que permitam aos usuários corretos utilizar o sistema de forma satisfatória. O sistema também deve prever forma de contornar as cotas. Além disso, sempre haverá usuários que acharão que as cotas foram mal estabelecidas e ficarão insatisfeitos.

Conclusão

Vimos que um sistema infalível é difícil e custoso. Vimos principalmente que, ao contrário do que muitos pensam, CAPTCHA não é seguro, mas funciona para invasores inexperientes ou com poucos recursos.

O importante é levarmos em consideração a acessibilidade dos nossos sistemas. Pensar na parcela dos usuários que serão excluídos.

Seja criterioso na escolha do sistema Você é um humano?. Pense nos prós e contras, nas medidas para diminuir ou neutralizar os contras e, se os contras ainda existirem, se vale a pena conviver com eles.

Por: Thiago Ferreira é formado em Análise de Sistemas pela Universidade Salgado de Oliveira. Trabalha desde 2005 com desenvolvimento WEB

Nenhum comentário:

Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina