Ideias para uma palavra-passe: porque é que as tuas não servem

Publicado a por David Carrero

Há uma pesquisa que se repete constantemente: ideias para uma palavra-passe. E compreende-se, porque o formulário está ali à espera, é preciso inventar alguma coisa e nunca ninguém te explicou como se faz.

O problema é que a palavra ideias já é a falha. Uma boa palavra-passe não é uma boa ideia. É uma palavra-passe que não tem ideia nenhuma por trás.

E isto não é uma frase bonita para abrir um artigo: é literalmente como funciona um ataque.

A lista de ideias que te ocorrem é a lista que ele experimenta primeiro

Um ataque por dicionário não começa em aaaaaaaa e vai subindo. Começa pelas palavras-passe que já foram divulgadas aos milhões, segue pelos nomes próprios, nomes comuns, cidades, clubes de futebol e anos de quatro algarismos. E por cima dessa base aplica regras: maiúscula no início, algarismo ou ! no fim, a por @, e por 3, o por 0, a palavra ao contrário, a palavra escrita duas vezes.

Essas regras não são segredo nem novidade. Estão escritas há décadas e vêm de série em qualquer ferramenta de ataque. Dito de outro modo: o catálogo de ocorrências a que chamarias «ideias para uma palavra-passe» é, mais ou menos por esta ordem, o ficheiro de configuração de quem te ataca.

Daqui em diante, todos os números saem do verificador da casa, que assume um ataque offline a 10¹² tentativas por segundo contra um hash rápido. Isso está escrito por baixo do resultado, e sem esse dado nenhum tempo significa nada. Podes reproduzir cada número: escreve o exemplo e olha.

Ideia um: o teu nome e o ano em que nasceste

Sofia1985. Nove caracteres, uma maiúscula, quatro algarismos. Cumpre o que exige meia internet.

O verificador parte-a em duas de relance: «Está nos nossos dicionários» para Sofia, «Parece um ano ou uma data» para 1985. Resultado: 28.400 tentativas, o que a esse ritmo é menos de um segundo.

E repara porque são 28.400 e não um número astronómico. Não é por ser curta. É que não são nove decisões, são duas: que nome e que ano. Os nomes frequentes contam-se aos milhares; os anos que as pessoas realmente põem numa palavra-passe, às dezenas. Multiplicas e está feito: escreveste nove caracteres e escolheste entre menos de trinta mil palavras-passe possíveis.

Ideia dois: trocar o «a» por uma arroba

Este é o truque em que toda a gente acredita, e o que envelhece pior.

S0fi@198583.600 tentativas. Subiu, sim: para o triplo. E o triplo de nada continua a ser nada — o verificador continua a medi-la em menos de um segundo — porque a substituição não criou uma palavra-passe nova. Acrescentou duas ou três perguntas de sim ou não que o atacante já tinha previstas: esta pessoa trocou o a? E o o?

Repara que o verificador nem sequer muda o veredicto. Continua a dizer «Está nos nossos dicionários», desta vez com a nota com números no lugar de letras. Encontrou a palavra à mesma.

Se quiseres ver até onde isto vai, experimenta o exemplo canónico. P@ssw0rd, com a sua maiúscula, a sua arroba, o seu zero e o seu ar de ter sido bem pensada, cai em 17 tentativas. Dezassete. Conta-se pelos dedos das duas mãos com um bocado de paciência.

Ideia três: escrevê-la ao contrário

aifos198528.400 tentativas. O mesmo número, até ao último algarismo, que Sofia1985.

Não é que inverter ajude pouco. É que não muda absolutamente nada. Inverter a palavra é uma das regras que o dicionário traz de série, por isso o verificador encontra-a na mesma e etiqueta-a na mesma, desta vez com a nota escrita ao contrário.

O mesmo com repeti-la: SofiaSofia desce para 371 tentativas — escrever o dobro das letras deixa-te pior do que antes, porque «repete um pedaço» também é um padrão com nome próprio.

Ideia quatro: descer pelo teclado com os dedos

Quando alguém não quer pensar, olha para o teclado e percorre uma forma. Sai qwerty123, ou 1qaz2wsx, ou 1q2w3e4r, ou asdfghjkl.

Parece aleatório porque não significa nada. Mas o teclado tem uma geometria fixa e pequeníssima, e percorrê-la é exatamente aquilo que um programa faz melhor do que tu:

  • qwerty123273 tentativas.
  • 1qaz2wsx29 tentativas.

Vinte e nove. Estas palavras-passe estão tão gastas que nem sequer são precisas as regras de teclado: aparecem tal e qual nas listas de palavras-passe divulgadas, e o verificador despacha-as com um seco «Está nos nossos dicionários».

Ideia cinco: o cão, e a data que nunca se esquece

Toby2015! é uma palavra-passe com biografia: o nome do cão, o ano em que chegou a casa e um ponto de exclamação para contentar o formulário. Dá 1,2 × 10⁸ tentativas, e continua a ser menos de um segundo.

Os nomes de animal mais comuns são uns milhares, e estão nas mesmas listas que os nomes de pessoa. O ! final contribui com aquilo com que contribui uma regra que toda a gente aplica: nada.

Com a data marcante é ainda mais incómodo. 24121985 — um dia, um mês, um ano — lê-se como oito algarismos, mas o verificador etiqueta-a «Contém uma data» e resolve-a em 14.966 tentativas. A razão é de calendário: há 31 dias, 12 meses e um século largo de anos plausíveis. Oito algarismos que parecem dez milhões de combinações são, na verdade, uns quinze mil.

É essa a armadilha da data: dá-te comprimento sem te dar incerteza, e a incerteza é a única coisa que se paga.

Ideia seis: a matrícula, e o que o verificador não consegue ver

4521KDR é outro caso, e vale a pena parar.

Aqui o verificador diz «Não encontrámos nenhum padrão conhecido» e calcula 3,9 × 10¹⁰ tentativas. Mas marca esse número como um teto, e essa palavra é a parte importante: não encontrou o teu padrão, o que não prova que não tenhas um. Mesmo assim, e sendo generoso, o tempo continua a ser menos de um segundo.

E aqui está a distância que é preciso perceber. O verificador não sabe que carro tens. Quem te conhece, quem tem o teu Instagram à frente ou quem comprou uma base de dados onde consta a tua matrícula, não precisa de 3,9 × 10¹⁰ tentativas: precisa de uma. O número que vês quando não há padrão mede a ignorância de um desconhecido, não a de alguém que te andou a procurar.

O mesmo vale para o número da porta, o número do cartão de cidadão, o telemóvel e a data do casamento.

O que as seis têm em comum

Nenhuma destas ideias falha por ser «pouco complexa». Todas falham pelo mesmo: são autobiografia, e a autobiografia adivinha-se. O teu nome, o teu ano, o teu cão, o teu carro, a tua maneira de percorrer o teclado. Cada uma dessas decisões parece tua e pessoal, e é precisamente por isso que pertence a uma lista curta que alguém já escreveu.

Acrescentar complexidade não resolve nada, porque a complexidade que tu aplicas também é uma decisão tua e também está na lista. Por isso S0fi@1985 sobe um mísero fator três e aifos1985 nem isso.

Se quiseres o argumento em números, está nos bits de entropia: o que conta não é quantas palavras-passe poderias ter escrito, mas quantas sobram depois de descontar tudo o que se sabe dos teus gostos.

A saída não é uma ideia melhor: é deixar de ter ideias

A única forma de sair da lista é que a palavra-passe não saia da tua cabeça.

É exatamente isso que faz o Diceware: lanças cinco dados, procuras o número numa lista de 7.776 palavras e anotas o que sai. Cada lançamento vale 12,9 bits, e são 12,9 a sério, porque os dados não têm gostos, nem memória, nem o teu ano de nascimento. Seis palavras dão uns 77 bits.

Mete uma no verificador e vê o que muda: seis palavras correntes tiradas aos dados passam de «Muito Fraca» a «Muito Forte», e o tempo deixa de se medir em segundos. Não por serem rebuscadas — não são, são seis palavras normais — mas porque é a única parte da tua palavra-passe que não foste tu a decidir. Se preferes que seja o navegador a lançar os dados, o gerador faz o mesmo sorteio e mostra-te os bits enquanto o faz.

Portanto a resposta honesta a «dá-me ideias para uma palavra-passe» é que não precisas delas e que, aliás, tens ideias a mais. O que te falta é um dado.


Fontes: todos os números deste artigo saem do verificador do password.es, que declara o seu modelo por baixo do resultado — 10¹² tentativas por segundo, ataque offline, hash rápido — e são reproduzíveis escrevendo cada exemplo em /pt/verificador/ · o motor de análise de padrões é o zxcvbn, de Daniel Lowe Wheeler (Dropbox), apresentado na USENIX Security 2016 como «zxcvbn: Low-Budget Password Strength Estimation» · as regras de substituição, inversão e repetição citadas são as que as ferramentas de ataque por dicionário trazem de série · Arnold G. Reinhold, «The Diceware Passphrase Home Page» (1995), para as 7.776 palavras e os 12,9 bits por lançamento.

Foto de RDNE Stock project · Pexels

← Voltar ao blog