sábado, 4 de maio de 2013

Password ou Pass Phrase

Nos dias atuais quando se cria uma conta em certo provedor de serviços uma situação que incomoda um pouco é a exigência de uma senha de no mínimo 8 caracteres que contenha números, símbolos e letras.  Tal situação para mim é chata porque utilizo a mesma senha de 6 dígitos ha pelo menos 15 anos! Se o pessoal responsável por segurança ouvisse uma barbaridade assim, creio que teriam um ataque de nervos, mas creio que a grande maioria dos 'usuários' pensam da mesma forma.

Essa exigência, no entanto, tem lá suas razões e mostra claramente uma tendência que deveríamos entender e tomar como uma politica de segurança pessoal e organizacional, e de certa maneira nossos sistemas também deveriam adotar essa politica.  Essa tendência determina a extinção dos Passwords e a adoção dos Pass Phrases, ou seja, a forma curta da chave de acesso deixa de existir e em seu lugar surgem as frases maiores, com espaços em branco e mais seguras.

A questão é que a evolução das praticas de segurança tem levado a exigências de dimensões de senhas cada vez maiores, e o CIS Microsoft Windows 8 Benchmark, em sua página 31, já especifica uma senha com no mínimo 14 caracteres, e olha que estamos analisando as politicas de segurança do Windows 8, num relatório de janeiro/2013.

O relatório traz um exemplo bastante interessante de Pass Phrase, que no meu ponto de vista quebra um pouco a barreira do desconforto, e que deveria ser mais disseminado, que é uma frase como "I want to drink a $5 milkshake", que segundo os especialistas trata-se de uma excelente forma de escrever uma frase de segurança.

Infelizmente o mundo continuará imperfeito, pois segundo esse mesmo relatório, o que ocorre é que uma forma de ataque de força bruta utiliza um dicionário com palavras comuns, então ao mesmo tempo que esse método ajuda também complica, com a adoção de senhas com palavras ditas 'simples'.

O relatório analisa ainda o impacto da adoção de uma politica como essa, e também aponta que esse tipo de frase também pode tornar o processo mais inseguro, pois alguns usuários insistem em escrever as senhas e mantê-las em um local pouco seguro, como a mãe de uma conhecida que escreveu a senha em uma fita no verso do cartão do banco.  E também aumentaria o risco, pois geraria processos de recuperação de senha (por email) e help desk.

Recomendações


Então como podemos melhorar a segurança de nossos sistemas.

  1. Permitir que nossos sistemas possam adotar frases ao invés de senhas curtas, o que implica em no minimo alterar dimensões dos atributos;
  2. Toda tela de ingresso deve exigir o Captcha, ou seja, o controle que evita que nosso programa seja alvo de sistemas de força bruta. O Captcha deve também conter muitas imagens e palavras preferencialmente randomicas ao invés de uma tabela com palavras, senão não adianta nada;
  3. Melhorar o entendimento das pessoas com relação às questões ligadas a segurança;
  4. Melhorar o cadastramento dessas frases, aceitando-se espaços, simbolos e letras;
  5. Armazenar as senhas em forma encriptada no banco de dados, preferencialmente num algoritmo MD5 que não possa ser restaurado a sua forma original;
  6. Utilizar certificados de segurança para comunicação entre o navegador e o servidor.

Algumas dessas ações envolvem programação de mecanismos mais seguros, mas o problema, ao meu ver, continuará sendo o item 3), pois o convencimento das pessoas continuará a ser a maior dificuldade.

Outra coisa que me ocorre é o seguinte, já que o tal método do dicionário busca palavras comuns, que tal utilizarmos palavras incomuns, e tenho uma proposta, que tal voltarem o ensino de latim nas escolas, dai teriamos palavras mais 'dificeis' para utilizar. Acho que nossos advogados não terão problema na escolha de frases esquisitas.



Fontes:
v1.0.0