Quanto tempo para quebrar uma password?

A propósito dos requisitos mínimos para definir uma boa password, e na sequência de um apontamento que li no Daring Fireball, lembrei-me de apontar por aqui uma tabela, roubada sem vergonha de um estudo da GeodSoft, que ilustra, para dois tipos de composições de passwords, o tempo necessário para quebrá-las.

Os valores apresentados pressupõem que é utilizado um computador com capacidade para executar, localmente, 1.000.000 de operações criptográficas por segundo — valores triviais nas máquinas correntes. Para além disso, e para não haver quaisquer dúvidas sobre o significado dos números desta tabela, o contexto para este exercício pressupõe que a password em análise já foi capturada, embora esteja ainda cifrada. Isto é, o tempo apresentado corresponde ao tempo necessário para decifrar essa password, assumindo que todas as combinações possíveis são tentadas.

Finalmente, para interpretarem correctamente estes dados, resta-me acrescentar que a primeira coluna contém o tamanho, em caracteres, dessa password; a segunda coluna apresenta o caso em que a composição é realizada exclusivamente com letras mínusculas; e, por último, a terceira coluna ilustra uma situação em que são utilizados caracteres de um conjunto de 95 possibilidades, correspondentes aos caracteres que podem ser impressos no código ASCII.

Número caracteresPassword composta
por letras minúsculas
Password composta por múltiplos caracteres
30,02segundos0,86segundos
40,46segundos1,36minutos
511,90segundos2,15horas
65,15minutos8,51dias
72,23horas2,21anos
82,42dias2,10séculos
92,07meses20,00milénios
104,48anos1.899,00milénios
111,16séculos180.365,00milénios
123,03milénios17.187.705,00milénios
1378,70milénios1.627.797.068,00milénios
142.046,00milénios154.640.721.434,00milénios

Pela simples leitura destes dados, sem quaisquer outras análises, podemos concluir imediatamente que (i) passwords compostas por letras mínusculas devem ter, no mínimo, 10 caracteres; (ii) para usarmos passwords com um comprimento inferior, na casa dos 7 caracteres, temos que usar uma composição complexa, que inclua vários tipos de caracteres, entre letras maiúsculas e minúsculas, algarismos, e outros caracteres especiais, e.g. pontuação.

Para fechar esta nota, é importante referir que este estudo assume que as passwords não são compostas por palavras que podem ser encontradas num dicionário. Para encontrar essas chaves, os tempos apresentados já não têm validade. O tempo para encontrar essas chaves, actualmente, é próximo de zero; é imediato. E é por isso que, como se torna óbvio pela evidência dos factos, as pessoas têm que escolher umas passwords mais elaboradas. Definitivamente.

(post-scriptum: lembrei-me agora que escrevi, há já algum tempo, uma nota sobre uma formula simples para criar passwords mais complexas. Pode ser útil para sensibilizar os mais resistentes. Está por AQUI)