Regras de senhas são besteira

Dos diversos problemas que eu vejo com senhas em geral, sabe o que mais me incomoda? Regras.


Fonte: Coding Horror, tradução própria

 

Existem vários sites com regras estúpidas1, mas não preciso te falar sobre isso, quanto mais você utilizar geradores de senhas (como todos deveríamos e não fazemos), mais vezes você já sofreu com isso.

Já fizeram até um quadrinho sobre isso:

Fonte: XKCD

 

A parte mais importante é o argumento final: “Através de 20 anos de esforço, nós conseguimos com sucesso treinar todo mundo a usar senhas que são difíceis para humanos lembrarem e fáceis para computadores descobrirem”.

Podemos argumentar o quão viável é a senha “Grampo de bateria de cavalo”, porém o argumento importante é que tamanho importa.

Alguns anos atrás, considerava-se que 8 caracteres era um bom número “mínimo” de caracteres desde que usados em conjunto com uma variedade grande de caracteres (Maiúsculos, minúsculos, números e caracteres especiais), o que ainda pode ser válido em casos de força bruta em sites2, porém deixa de ter o resultado necessário quando a base de dados já está comprometida.3

Vamos fazer um teste rápido:

Ao ler isso você deve pensar que um “Massive Cracking Array” é algo difícil de conseguir, porém lamento em informar que construir um com algo em torno de 24 GPUs otimizadas para quebrar “hashes” é bem dentro do orçamento de pequenas empresas e também principalmente, de órgãos federais. Hoje em dia está ainda mais fácil com o avanço da “Cloud“, onde com alguns poucos dólares, podemos alugar uma máquina deste nível por algumas horas.

Mesmo que você não acredite que seja fácil montar um “Massive Cracking Array”, o “Offline Fast Attack” que é ainda mais fácil de conseguir, não foi muito melhor, durando apenas 9 minutos.

9 caracteres 30 segundos
10 caracteres 25 minutos
11 caracteres 21 horas
12 caracteres 1,5 meses
13 caracteres 6,5 anos

 

O gerador do random.org “só” utiliza maiúsculas, minúsculas e números, o resultado adicionando caracteres especiais melhora um pouco:

8 caracteres 28 segundos
9 caracteres 39 minutos
10 caracteres 2 dias
11 caracteres 6,5 meses
12 caracteres 45 anos

 

Sabemos que é bem improvável que a computação fique mais devagar, e apesar de que com certeza existe um número de caracteres onde o número de tentativas chegue a um número exponencialmente astronômico, a ponto de eficientemente ser impossível, o número de caracteres só aumentará ao longo do tempo.

Ao final de tudo chegamos a onde eu queria que é: Se sua senha tem menos de 12 caracteres, você está vulnerável, e essa é a única regra que realmente fará diferença ao escolher sua senha.5