- Por que uma frase-senha em vez de uma senha?
- Porque humanos são ruins em lembrar sequências de alta entropia. tH7$kQ9!mP2@ tem cerca de 78 bits de entropia e é impossível de memorizar; correct-horse-battery-staple-anchor-yodel tem a mesma entropia e você consegue repetir depois de ler uma vez. A tirinha 936 do XKCD tornou esse argumento famoso. A matemática continua valendo desde então.
- O que é a EFF Long Wordlist?
- Uma lista de 7.776 palavras em inglês publicada pela Electronic Frontier Foundation em 2016 para gerar frases-senha no estilo Diceware. Ela foi montada para ser fácil de lembrar, fácil de digitar, livre de ofensas e com palavras de tamanho parecido, para as frases-senha ficarem uniformes. Cada palavra contribui com log2(7.776) ≈ 12,92 bits de entropia. A gente usa porque é o padrão moderno de fato.
- O que os bits de entropia significam na prática?
- Bits de entropia são o log2 do número de frases-senha possíveis com as suas configurações. 77,5 bits = 2^77,5 ≈ 1,7×10^23 possibilidades. Mesmo a um trilhão de tentativas por segundo (um quebrador offline de primeira linha), a força bruta levaria mais que a idade do universo. 50 bits é razoável (inibe ataques online), 70+ é forte (inibe ataques offline), 100+ é exagero para tudo, menos adversários com orçamento de Estado.
- Quantas palavras devo escolher?
- 6 é o ponto ideal para a maioria dos usos: ~77,5 bits de entropia e ainda fácil de lembrar. 4 palavras (~52 bits) servem para contas de pouco risco. 8 ou mais palavras (~103+ bits) é a escolha certa para senhas mestras de gerenciador de senhas, chaves de criptografia ou qualquer coisa que você odiaria perder. Mais palavras = mais entropia, de forma linear.
- É seguro usar isto?
- A escolha é criptograficamente segura: crypto.getRandomValues é o CSPRNG do navegador, a mesma fonte que o TLS e o WebAuthn usam. A lista de palavras está inteira embutida nesta página — nada é buscado, transmitido ou registrado. Dito isso: não cole uma frase-senha real em nenhum chat, print ou documento na nuvem. O elo mais fraco quase sempre é o jeito como a pessoa guarda a senha, não a geração.
- Devo colocar maiúsculas ou um número?
- Não por segurança — esses ajustes somam pouquíssima entropia (maiúsculas somam ~1 bit por palavra, um número no final soma ~3,3 bits). O motivo real para ativar é cumprir regras de senha que exigem “pelo menos uma maiúscula” ou “pelo menos um número”. Se o sistema não exige, deixe desligado — a frase-senha fica mais fácil de digitar e lembrar.
- Por que não Math.random()?
- O Math.random() dos navegadores é um gerador pseudoaleatório não criptográfico: é rápido, mas a saída dele dá para prever a partir das anteriores e não é segura para chaves, tokens ou frases-senha. A gente usa crypto.getRandomValues, que vai para o reservatório de entropia seguro do sistema operacional (urandom no Linux, BCryptGenRandom no Windows, SecRandomCopyBytes no macOS). Cada posição de palavra também passa por amostragem com rejeição para eliminar o viés do módulo — 2^32 mod 7.776 não é zero, então um sorteio ingênuo favoreceria um pouco as primeiras palavras.
- Vou conseguir lembrar disto mesmo?
- Sim — esse é o objetivo. A lista da EFF foi ajustada para ser memorável. Repita a frase-senha em voz alta três vezes quando gerar; visualize cada palavra; anote uma vez e destrua o papel depois de conseguir lembrar de cabeça. Para uma senha mestra, guarde também em dois lugares físicos (um envelope lacrado numa gaveta; um envelope lacrado na casa de alguém de confiança) — esse é o modelo de ameaça por trás das frases-senha: fácil de lembrar, com um papel de reserva.
- Posso usar isto como senha mestra de um gerenciador de senhas?
- Sim — o Diceware é exatamente o que os fabricantes de gerenciadores de senha recomendam para isso. Escolha 7 ou 8 palavras (cerca de 90–103 bits), use maiúsculas se o gerenciador exigir e nunca reutilize a frase-senha em outro lugar. Bitwarden, 1Password e KeePass recomendam oficialmente frases-senha mestras no estilo Diceware em vez de senhas curtas e complexas.