A despeito de todo o avanço recente em métodos de autenticação tais como biometria e certificados criptográficos, as boa e velha senha ainda é o método mais utilizado em um grande número de aplicações. Para enviar um email, por exemplo, o servidor pode pedir uma senha. Para aceder a uma caixa postal remota e baixar as mensagens recebidas, também é necessário fornecer uma senha. A segurança dos sistemas cujo acesso é autorizado pela autenticação de uma senha é tão mais forte quanto mais fortes forem as senhas usadas.
Introdução
Uma senha forte é a que resiste a sua adivinhação por um atacante, mas quem são os atacantes, quem quer obter senhas e por que? Infelizmente são muitos e são bastante espertos. De posse de senhas os bandidos podem
- invadir sistemas,
- roubar dados confidenciais,
- roubar recursos de comunicações,
- falsificar identidades,
- etc.
A lista é extensa e assustadora.
O principal tipo de ataque contra senhas é o chamado ataque de dicionário em que o ladrão de senhas tenta o acesso ao serviço com um repertório de senhas conhecidas, o dicionário, e suas variações. Normalmente a primeira tentativa é justamente o próprio nome do usuário. Com a disponibilidade de serviços de Internet em banda larga e computadores poderosos a preço de banana, ataques assim geralmente conseguem quebrar uma pequena fração das senhas tentadas, mas essa pequena fração é suficiente para fazer muito estrago.
Um exemplo real das consequências do comprometimento de senhas ocorreu em uma empresa onde um funcionário ao enviar um email para um fornecedor teve o dissabor de ver sua mensagem recusada porque o endereço IP do servidor de email da empresa se encontrava em uma lista negra. O caso foi levado ao executivo de TI, que, em primeiro lugar estranhou o caso, porque nas políticas de segurança da empresa são tomadas todas as medidas para evitar que qualquer máquina da rede corporativa envie spam clandestinamente. Investigando melhor e contatando o gerente da lista negra em questão ele descobriu que a mensagem que causou a listagem era autenticada, isto é, ela parecia ter sido enviada por um usuário legítimo da empresa, com uso de nome e senha. Mais um passo na investigação descobriu-se que a senha desse usuário era igual ao seu nome, e que devia ter sido quebrada por um dos vários bots, programas clandestinos, que rodam pelos computadores pessoais sem que seus donos percebam. Na verdade os spams também foram enviados por bots, de várias partes do mundo, mas sempre usando o nome e senha do usuário descuidado. Correntes sempre quebram no elo mais fraco e, neste caso, o elo mais fraco era uma senha fraquíssima.
Então, mesmo que a aplicação protegida pela senha não seja o detonador do fim do mundo, seu abuso pode ter consequências catastróficas para a empresa e para o usuário.
Política de senhas
O problema de fazer com que os usuários tenham senhas fortes é mais complicado do que parece à primeira vista. Uma boa senha, além de ser forte em relação aos ataques de dicionário, deve ser facilmente lembrável pelo dono e dificilmente adivinhável pelos outros.
Há quem recomende a troca periódica de senhas, com base no fato de que quanto mais velha, mais exposta a senha esteve às tentativas de quebra, porém, trocar as senhas frequentemente leva a senhas sem sentido, difíceis de memorizar, e as pessoas as acabarão guardando em arquivos ou escrevendo em post-it colado ao lado da tela do computador. Eu não recomendo a troca periódica de senhas, mas o uso de senhas naturalmente fortes.
Como criar senhas fortes? Em primeiro lugar, vejamos o que não fazer:
- senha igual ao nome, é a mais fraca possível;
- sobrenomes, nome do meio, apelidos;
- palavras de dicionário, ainda que modificadas, como b0nec@;
- anagramas do próprio nome ou sobrenome;
- senhas completamente numéricas, datas de aniversário.
Fica difícil assim escolher alguma coisa que seja fácil de lembrar, mas difícil de um outro adivinhar. Uma idéia é usar uma frase e formar a senha com a primeira (ou segunda, ou selecionada com algum critério) letra de cada palavra, por exemplo, para a frase Batatinha quando nasce esparrama pelo chão, a senha seria Bqbepc que é considerada forte por vários programas quebradores.
Na mesma linha, o acróstico de um poema pode servir muito bem. Por exemplo, eis uma estrofe de uma canção bem conhecida de Janis Joplin:
O, Lord, won't you buy me a Mercedes Benz. My friends all drive Porsches, I must make amends. Worked hard all my lifetime, no help from my friends, so, Lord won't you buy me a Mercedes Benz
cujo primeiro acróstico é OaMIWnsa, que é uma senha e tanto!
Outra receita para construir uma senha forte e lembrável é partir de uma palavra que tem sentido para o usuário mas para quase mais ninguém, como era o caso de rosebud para o Cidadão Kane (a propósito, hoje em dia essa é uma palavra de dicionário e não pode mais ser usada). O nome do monstro que morava debaixo da cama pode servir bem, se não for uma palavra de dicionário.