Dos diversos problemas que eu vejo com senhas em geral, sabe o que mais me incomoda? Regras.
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:

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:
- Gerar uma senha aleatória. (A minha foi: jmLjDnqb)4
- Colocar a senha no “GRC password crack checker“.
- Verifique o resultado em “Massive Cracking Array”, no meu caso foi 0,54 segundos.
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