Em junho de 2023, um programador chamado Neal Agarwal publicou no seu site, neal.fun, uma coisa intitulada The Password Game. Pede-te que escrevas uma palavra-passe. Depois que tenha pelo menos cinco caracteres. Depois um número. Depois uma maiúscula. Depois um carácter especial.
Até aqui não é um jogo. É o formulário do teu banco.
Depois começa a outra parte. Que os dígitos somem 25. Que contenha o nome de um mês. Que contenha algarismos romanos cujo produto seja 35. Que inclua a resposta do Wordle de hoje. Que identifique o país de uma fotografia. Que contenha a melhor jogada de uma posição de xadrez, em notação algébrica. São trinta e cinco regras, e pelo caminho nasce dentro da tua palavra-passe um emoji de ovo chamado Paul, que tem de ser alimentado com lagartas, enquanto uma chama vai comendo os teus caracteres se não a apagares a tempo.
O jogo resulta por uma razão incómoda: ninguém tem de te explicar a piada. Percebe-la no primeiro segundo, porque andas a sofrer esse mecanismo há meia vida. Agarwal limitou-se a continuar a puxar o fio.
E é aí que convém abrandar. As quatro primeiras regras não foram ele que as inventou.
De onde vieram as regras que já conhecias
Uma maiúscula, um número, um símbolo e um comprimento mínimo não são folclore da internet: são a tradução prática de um documento do NIST norte-americano publicado em 2003, o SP 800-63, escrito por Bill Burr. Daí desceram para os formulários de meio mundo, e daí para a tua cabeça.
Contámos a história toda em o que é uma palavra-passe: Burr não tinha dados sobre palavras-passe reais — mal existiam — por isso raciocinou para o que parecia sensato. Mais variedade de caracteres, mais combinações, mais segurança. Em 2017 o próprio NIST deu meia-volta, e Burr disse ao Wall Street Journal que lamentava boa parte do que tinha escrito.
Portanto o jogo de Agarwal não exagera uma política de segurança. Continua uma lista que já estava errada na primeira linha. A única diferença entre «tem de conter um símbolo» e «os dígitos têm de somar 25» é que à primeira já te habituaste.
O que essas regras nunca mediram
É aqui que a piada deixa de ter graça, porque se pode medir.
Estes números saem do verificador deste site, com o seu modelo declarado: um ataque offline contra uma hash rápida, a 10¹² tentativas por segundo. Não são estimativas de folheto; é o que vais ver se escreveres estas mesmas cadeias lá.
| palavra-passe | regras que cumpre | tentativas | aguenta |
|---|---|---|---|
Palavrapasse1! |
as quatro | 3,4 × 10⁸ | < 1 segundo |
Outono2026! |
as quatro | 1,0 × 10⁷ | < 1 segundo |
Zx9#kQ2m |
as quatro | 3,3 × 10¹⁵ | 55 minutos |
| seis palavras tiradas aos dados, em minúsculas | nenhuma | 1,1 × 10²³ | 3.500 anos |
A última linha não sai do verificador, sai da aritmética, e é de propósito: o verificador não pode saber que essas seis palavras vieram de um dado, por isso calcularia outra coisa. Seis lançamentos são exatamente 77,5 bits, e 77,5 bits a 10¹² tentativas por segundo são cerca de três mil e quinhentos anos. Voltamos a isso no fim.
Lê outra vez. Palavrapasse1! passa em qualquer formulário do planeta e cai antes
de largares a tecla, porque a palavra está no dicionário e o resto é o adorno que
toda a gente põe: maiúscula à frente, número e símbolo atrás. E a última linha, seis
palavras correntes em minúsculas, não seria aceite por metade dos sites onde tens
conta: não leva maiúscula, nem número, nem símbolo.
Vale a pena parar em Zx9#kQ2m, porque é o melhor caso possível da regra. Oito
caracteres verdadeiramente aleatórios, com os quatro tipos, exatamente aquilo que a
política de 2003 considerava uma palavra-passe exemplar. Cinquenta e cinco minutos.
E é um teto: o verificador não pode saber que a escreveste ao acaso, por isso
dá-te o benefício da dúvida e calcula o melhor cenário. E ninguém escreve assim, de
resto. Pede a uma pessoa oito caracteres com um símbolo e o que sai é Futebol123!
— 5,4 × 10⁶ tentativas, menos de um segundo.
A regra não distingue os dois. Para o formulário, Futebol123! e Zx9#kQ2m são a
mesma palavra-passe. É essa a falha inteira: uma regra de composição mede a forma
da cadeia, e a resistência não está na forma.
A regra dos 90 dias, ou como se inventa Inverno2026!
A outra metade da herança de 2003 é a caducidade. Muda-a de noventa em noventa dias.
Ninguém inventa uma palavra-passe nova de noventa em noventa dias. O que as pessoas
fazem — o que tu fazes, e eu também — é incrementar a que já tinham. Outono2026!
transforma-se em Inverno2026! e o trabalho está feito. As duas aguentam menos de
um segundo, e se um atacante tiver a primeira, adivinhar a segunda não é um
ataque: é preencher um espaço.
O NIST retirou a rotação obrigatória no SP 800-63B, em 2017. Na revisão de agosto de 2025 o tom endureceu: onde antes dizia que os verificadores não deveriam impor regras de composição nem exigir mudanças periódicas, agora diz que não devem fazer nenhuma das duas coisas. A mudança só se força se houver indícios de comprometimento.
Nove anos depois da primeira retratação, a tua empresa continua a pedir-te uma maiúscula todos os trimestres.
O limite de caracteres é o pior sinal de todos
Agarwal contou que a gota de água, o que o levou a fazer o jogo, foi tentar criar uma conta e ouvir que a sua palavra-passe era demasiado longa.
De todas as regras absurdas, é a única que, ainda por cima, é um mau sinal.
Um sistema que guarda a tua palavra-passe como deve não a guarda: guarda a sua hash, e uma hash mede sempre o mesmo, quer lhe dês oito caracteres quer lhe dês oitocentos. Não existe nenhuma razão de armazenamento para um limite de dezasseis. Há exatamente uma exceção técnica legítima e conhecida — o bcrypt ignora o que passar dos 72 bytes — e não explica os formulários que param aos doze.
Um teto curto não prova que estejam a guardar a tua palavra-passe em claro, mas é o tipo de pormenor que só aparece quando alguém a meteu numa coluna de base de dados de tamanho fixo. O próprio SP 800-63B pede o contrário: que se aceitem pelo menos 64 caracteres.
A regra que funciona não cabe num formulário
O incómodo de fundo é que a boa prática não se consegue exprimir como uma caixa de validação. Ninguém consegue escrever uma expressão regular para «não a usaste noutro sítio» nem para «não aparece na última fuga».
O que se consegue fazer é contar. Uma frase de palavras escolhidas aos dados — Diceware — soma 12,9 bits limpos por palavra, e esses bits são bits a sério. Com o mesmo modelo de 10¹² tentativas por segundo:
- Cinco palavras são 64,6 bits: uns 164 dias.
- Seis palavras são 77,5 bits: uns 3.500 anos.
Convém dizer os dois números e não só o segundo. Repete-se muito que uma frase de cinco palavras «aguenta séculos»; contra uma hash rápida não aguenta séculos: aguenta cinco meses e meio. Por isso Reinhold recomendava cinco como mínimo e seis para o que importa a sério. A sexta palavra é a que muda a escala, e é de graça.
Nenhuma das duas passaria no formulário do teu banco.
Porque é que o jogo tem graça
Quando o jogo exige que os dígitos somem 25, ris-te porque é uma condição arbitrária que não tem nada a ver com aquilo que torna uma palavra-passe segura.
Exigir um símbolo é igualmente uma condição arbitrária que não tem nada a ver com aquilo que torna uma palavra-passe segura. A diferença é que essa é servida por meia internet, e que a essa ganhámos-lhe afeto.
Se queres o resumo operacional, cabe em três linhas: usa o gerador ou uns
dados, mete o resultado no gestor, e cumpre as regras do formulário
acrescentando o que ele pedir, sem acreditares que isso te protegeu de alguma
coisa. A maiúscula à frente e o ! no fim são uma portagem, não uma defesa.
O resto é um jogo. Está muito bem feito, e é pena que não tenha ficado por jogo.
Fontes: Neal Agarwal, «The Password Game» (neal.fun, 27 de junho de 2023), as suas 35 regras e o relato do próprio autor sobre o formulário que lhe disse que a sua palavra-passe era demasiado longa · NIST SP 800-63 (2003), SP 800-63B (2017) e SP 800-63B-4 (agosto de 2025), que passa de «não deveriam» a «não devem» quanto a regras de composição e caducidade, e pede que se aceitem pelo menos 64 caracteres · declarações de Bill Burr ao Wall Street Journal, agosto de 2017 · Arnold G. Reinhold, Diceware (1995), de onde vêm os 12,9 bits por palavra. Os tempos da tabela estão medidos com o verificador deste site, com o seu modelo declarado de 10¹² tentativas por segundo contra uma hash rápida; os de Diceware, calculados ao mesmo ritmo a partir de log₂(7.776) por palavra.
Foto de Olha Ruskykh · Pexels