Pular para o conteúdo

Frase-senha: quantas palavras bastam

Por Como este texto foi feito

Frase-senha é senha feita de palavras sorteadas, tipo agenda-chacal-mala-rodela. A pergunta que ninguém responde com número é quantas palavras bastam — e a resposta mudou desde a última vez que a internet a respondeu. Abaixo está a conta, feita pelo mesmo motor que o gerador daqui usa.

O que cada exigência compra, em bits

O que você acrescentaBitsO que é
Uma palavra a mais na frase+10,1sorteada entre 1.100
Dois dígitos no fim da frase+6,6de 00 a 99, sorteados
Exigir símbolo numa senha de 20+5alfabeto vai de 62 para 74
Exigir símbolo numa senha de 16+3,9o padrão do gerador daqui
Exigir símbolo numa senha de 8+1,4o mínimo que a maioria dos sites pede
Deixar a inicial de cada palavra maiúscula0sempre na mesma posição — não sorteia nada
Trocar as letras por símbolo parecido0regra pronta em quem ataca; ver abaixo

Bit é dobra: cada bit a mais dobra o número de senhas que quem ataca precisa testar. Dez bits multiplicam por mil. Um bit e meio não chega a multiplicar por três. Conferido em 9 de agosto de 2026.

O caractere especial que o site exige compra quase nada

É a primeira linha do formulário de cadastro: “sua senha precisa ter pelo menos um caractere especial”. A conta de quanto isso compra dá para fazer, e ela é constrangedora.

Numa senha de oito caracteres, que é o mínimo que a maioria dos sites brasileiros ainda aceita, permitir os doze símbolos do gerador daqui leva o alfabeto de 62 para 74 caracteres. Isso vale 1,4 bit. Na senha de 16, que é o padrão daqui, vale 3,9 bits. Uma palavra a mais na frase vale 10,1.

Ou seja: a exigência que faz milhões de pessoas esquecerem a senha compra menos de 0,4 de uma palavra. E ela cobra caro no que não aparece em bit nenhum — senha que a pessoa não decora vira papel embaixo do teclado, e senha que o site recusa três vezes vira Senha@123.

Quem diz isso com todas as letras não é este site. O NIST SP 800-63B-4, seção 3.1.1.2, determina que verificadores não devem (“SHALL NOT”) impor regras de composição — exigir mistura de tipos de caractere é o exemplo que o próprio texto dá. O FAQ oficial do documento explica o motivo no item B06: as regras rendem pouco porque as pessoas as satisfazem de um jeito previsível, colando um ! no fim, e ainda empurram para o reúso da mesma senha em vários sites.

Trocar “a” por “@” não é ideia sua

A outra metade da crença é a substituição esperta: senha vira s3nh@ e pronto, ficou difícil. Não ficou, e dá para mostrar o arquivo.

O hashcat é o programa que se usa para quebrar senha vazada. Ele trabalha com “regras”: pega cada palavra de uma lista e a deforma de um jeito conhecido antes de testar. Entre as regras que já vêm instaladas com ele existe uma chamada leetspeak.rule, e ela é isto aqui, inteira:

sa4 sa@ sb6 sc< sc{ se3 sg9 si1 si! so0 sq9 ss5 ss$ st7 st+ sx%

Cada linha é uma troca: sa@ troca todo “a” por “@”, se3 troca todo “e” por “3”, so0 troca todo “o” por zero. São 16 substituições, mais uma linha final que aplica seis delas de uma vez. Não é uma lista que alguém precisa inventar contra você: vem no pacote, e roda em cima do dicionário inteiro em segundos.

Por isso a coluna da tabela lá em cima marca zero. A substituição não acrescenta acaso nenhum — ela transforma uma palavra que já estava na lista em outra palavra que também está, porque a regra que a transforma está no mesmo pacote. Trocar letra por símbolo parecido deixa a senha mais chata de digitar e exatamente tão fácil de adivinhar.

Quanto vale uma palavra

A força de uma palavra sorteada não vem de ela ser difícil. Vem de quantas palavras a lista tem. Sortear entre 1.100 palavras vale log₂(1.100) = 10,1 bits, e tanto faz se saiu “abacaxi” ou “zoológico”.

E a lista ser pública não enfraquece nada. Quem ataca já supõe que ela é conhecida — é assim que a conta é feita aqui e é assim que ela é feita em qualquer lugar sério. O segredo é o sorteio, nunca a lista.

O Diceware, de Arnold Reinhold, é o avô disso: 7.776 palavras, que é 6⁵, porque a lista foi feita para ser sorteada com cinco jogadas de um dado de seis faces. Cada palavra de lá vale 12,9 bits. A EFF publicou em 2016 três listas no mesmo formato — uma longa de 7.776 e duas curtas de 1.296 — e recomenda seis palavras da lista longa, o que dá 77,5 bits.

A lista daqui é menor de propósito, e isso tem preço: cada palavra vale 10,1 bits em vez de 12,9. O motivo está escrito no arquivo que a guarda, e são três regras que cortaram muita palavra boa: nenhuma tem menos de quatro nem mais de oito letras, nenhuma é o começo de outra (não existem “cola” e “colar” juntas, porque ditar isso por telefone vira erro de digitação que ninguém acha depois) e nenhuma leva acento ou cedilha. Uma lista brasileira que aceitasse “nível” e “ação” seria maior e mais forte no papel — e impossível de ditar.

A conta da compensação é direta: seis palavras da lista longa da EFF equivalem a 7,7 palavras desta. É por isso que o padrão do gerador daqui é 7, e não seis.

Quantas palavras, e quanto tempo cada frase aguenta

PalavrasBitsTempo no chuteTeclasSelo
3≈30menos de um segundo≈20fraca
4≈40menos de um segundo≈26fraca
5≈5013 minutos≈33razoável
6≈6010 dias≈40forte
7≈7031 anos≈47forte
8≈8034 mil anos≈54blindada
10≈10141 bilhões de anos≈68blindada

“No chute” é o cenário ruim de propósito, o mesmo do artigo sobre tempo de quebra: banco de senhas vazado, ataque fora do site, um trilhão de tentativas por segundo. Contra o formulário de login de um site de verdade o mesmo ataque é milhões de vezes mais lento. “Teclas” é estimativa: a média desta lista é 5,9 letras por palavra, mais os hifens.

O que empata com o quê

A mesma tabela, agora misturando frase e senha aleatória na mesma régua — e com a coluna que ninguém publica: quanto você digita para conseguir aqueles bits.

SenhaBitsTempo no chuteTeclasBits por tecla
Frase de 4 palavras≈40menos de um segundo≈261,53
Oito caracteres, os quatro tipos≈483 minutos≈86,07
Doze minúsculas, sem mais nada≈5613 horas≈124,7
15 minúsculas (o mínimo do NIST)≈7027 anos≈154,7
Frase de 7 palavras (o padrão daqui)≈7031 anos≈471,51
16 aleatórios, os quatro tipos (o padrão daqui)≈9911 bilhões de anos≈166,19

A tabela está em ordem de força, não de tamanho. Repare que ela sobe e desce de linha em linha na coluna de teclas: é o retrato de que comprimento não é força, e de que a frase compra memória, não bit.

Quatro palavras já não bastam

A ideia de frase-senha ficou famosa com uma tirinha do xkcd de 2011, a das quatro palavras. Ela está certa no argumento e velha no número, e as duas coisas importam.

O quadrinho supõe uma lista de 2.048 palavras, o que dá 11 bits por palavra e 44 bits nas quatro. Depois escreve o tempo: “550 anos, a mil chutes por segundo”. Mil chutes por segundo era uma suposição razoável em 2011. Hoje, no cenário de vazamento que esta página usa, são um trilhão por segundo — um bilhão de vezes mais. Os mesmos 44 bits viram 9 segundos.

Com a lista daqui, quatro palavras dão ≈40 bits, e o tempo é menos de um segundo. Doze minúsculas seguidas, sem símbolo nenhum, dão ≈56 — a frase de quatro palavras perde para elas por 16 bits, digitando 14 teclas a mais.

Este texto ia começar afirmando o contrário. A pauta dele, escrita antes da medição, prometia “quatro palavras aleatórias batem doze caracteres embolados”. A conta desmentiu, o título mudou, e a afirmação virou uma trava: se algum dia a lista crescer a ponto de quatro palavras passarem das doze minúsculas, esta página para de compilar e alguém tem que vir reescrever o parágrafo.

O argumento do xkcd, esse continua de pé, e é o que a tabela mostra: palavra rende mais por unidade de MEMÓRIA. O que envelheceu foi quantas palavras.

A frase que você inventa não é uma frase-senha

Aqui está a confusão que estraga tudo. “Frase-senha” não quer dizer frase. Quer dizer palavras SORTEADAS. E existe medição de quanto vale a frase que uma pessoa escolhe sozinha.

Em 2012, Joseph Bonneau e Ekaterina Shutova estudaram um sistema da Amazon, o PayPhrase, em que cada cliente registrava uma frase — e que, por exigir frases únicas, permitia testar de fora quais já estavam tomadas. O paper deles montou um dicionário de 20.656 frases, quase todo feito de listas que qualquer um baixa (títulos de filme, de livro, de música, nomes de artista), e ele cobriu cerca de 1,13% das escolhas. Isso equivale a 20,8 bits.

20,8 bits é menos que 3 palavras sorteadas desta lista, que dão ≈30. A frase que você inventa sozinha vale, medida, umas 2,1 palavras sorteadas — e o mínimo que esta ferramenta deixa gerar já são 3.

O paper ainda derruba a saída óbvia, que seria escrever uma frase mais comprida. Palavra por palavra, a escolha humana segue o padrão da língua: as pessoas montam pares de substantivo que aparecem juntos na fala. A conclusão está no resumo, e vale traduzir inteira: a distribuição de pares em linguagem natural “não é nem de longe aleatória o bastante para resistir a um ataque fora do site, e nem as frases mais longas, de três ou quatro palavras, para as quais o retorno decresce rapidamente”.

O ponto não é que a sua frase é ruim. É que o gerador precisa ser uma máquina. A mesma diferença separa Math.random() de crypto.getRandomValues no gerador daqui: o que parece aleatório e o que é.

“Três palavras aleatórias”, e por que três

O conselho de três palavras vem do órgão de segurança cibernética britânico, que fez uma campanha inteira em cima disso, e chegou ao Brasil pelo caminho mais respeitável possível. O fascículo de autenticação da Cartilha de Segurança do CERT.br diz, na seção “crie senhas fortes”: “crie senhas longas — escolha, por exemplo, três palavras aleatórias”.

Está certo, e é bom conselho — para o ataque que ele tem em mente. Três palavras contra alguém tentando adivinhar pelo formulário de login, num site que bloqueia depois de algumas tentativas, é mais do que suficiente: o atacante não chega nem perto de esgotar as possibilidades antes de ser barrado.

O cenário desta página é o outro, e é o que acontece de verdade com senha de gente comum: o site vaza, o banco de senhas embaralhadas vai embora inteiro, e o ataque roda na máquina de quem levou, sem bloqueio nenhum. Aí três palavras desta lista são ≈30 bits e duram menos de um segundo.

Não é contradição, é modelo de ameaça diferente — e é por isso que o mesmo conselho de três palavras aparece em fonte séria enquanto esta ferramenta abre em 7. O CERT.br fala com quem tem uma senha por conta e verificação em duas etapas ligada. Uma página que gera senha não sabe onde a senha vai parar, e o número dela precisa aguentar o pior lugar.

Vale dizer o que vem junto com esse conselho no mesmo fascículo, e que costuma se perder no caminho: ninguém está mandando decorar todas as senhas. Logo depois de “crie senhas fortes”, o CERT.br abre uma seção chamada “guarde suas senhas de forma segura” e lista três saídas — gerenciador de senhas, arquivo criptografado, ou anotar num papel e guardar em lugar seguro. Um órgão oficial pondo “anote num papel” por escrito é a admissão de que senha difícil demais para decorar é problema real, não frescura.

A parte que desmente a fama da frase-senha

A frase-senha tem uma reputação de ser a senha mais forte que existe. Pela conta desta página, ela não é — e essa é a informação que quase nenhum texto sobre o assunto dá.

A frase padrão daqui, 7 palavras, tem ≈70 bits e ocupa umas 47 teclas. A senha aleatória padrão daqui, 16 caracteres com os quatro tipos, tem ≈99 bits em 16 teclas. A senha aleatória é 28,4 bits mais forte digitando três vezes menos.

Por tecla, a diferença é gritante: a frase rende 1,51 bit por tecla, a senha aleatória rende 6,19. É o preço de usar palavras conhecidas: cada letra dentro da palavra é previsível depois das primeiras, e o acaso só existe na escolha da palavra inteira.

O empate exato deixa isso claro. 15 minúsculas sorteadas dão ≈70 bits; a frase de 7 palavras dá ≈70. Mesma força, um terço da digitação — e o 15 não saiu do nada: é o mínimo que a seção 3.1.1.2 do NIST SP 800-63B-4 passou a exigir de senha usada sozinha, sem segundo fator.

Então por que a frase existe? Porque ninguém decora 15 minúsculas sorteadas. A comparação certa não é frase contra senha aleatória — é frase contra a senha que você realmente usaria se tivesse que guardar na cabeça, que é aquela com o nome do cachorro e o ano do casamento. A frase-senha não ganha da senha gerada. Ganha da senha lembrada.

Na prática isso divide as senhas em dois grupos, e o critério é simples: as que entram no gerenciador podem ser aleatórias, porque você nunca vai digitá-las. As três ou quatro que você digita de cabeça — a do computador, a do celular, a do próprio gerenciador — são as que pedem frase.

A maiúscula não vale bit nenhum, e o gerador se recusa a contar

O gerador daqui oferece duas caixinhas na frase: deixar a inicial de cada palavra maiúscula, e pendurar dois dígitos no fim. A conta de bits trata as duas de maneira diferente, e a diferença é o ponto inteiro deste artigo.

A maiúscula vale zero. Ela é aplicada sempre na mesma posição, na primeira letra de toda palavra, então não existe nenhuma frase possível a mais por causa dela — quem ataca uma frase com iniciais maiúsculas testa exatamente o mesmo número de combinações. Somar bits aí seria vender acaso que não foi sorteado, e a função que calcula a força se recusa: o número não muda com a caixinha ligada.

Os dois dígitos valem 6,6 bits, esses sim: são cem saídas realmente sorteadas. Pouco mais de meia palavra. Eles existem para passar na regra do site que exige dígito, não para dar força — e é exatamente por isso que estão numa caixinha, e não ligados por padrão.

Reinhold escreve a mesma coisa na página do Diceware: dá para inserir um caractere especial sorteado, e ele acrescenta cerca de dez bits, menos do que acrescentaria mais uma palavra. É o mesmo conselho pela mesma aritmética, com trinta anos de diferença.

Onde a frase-senha quebra

Três lugares, e vale saber antes de gerar uma:

Campo com tamanho máximo. Banco e sistema antigo costumam cortar em 12, 16 ou 20 caracteres, às vezes sem avisar — a senha entra cortada no cadastro e você descobre no login seguinte. Uma frase de 7 palavras passa dos 47 caracteres e não cabe em nenhum dos três. Onde há teto, a saída é senha aleatória curta e gerenciador.

Teclado que não é teclado. Digitar 47 caracteres no controle da TV é castigo. Para Wi-Fi e para aparelho de sala, o gerador tem modos próprios, sem símbolo e sem caractere que se confunda.

Frase que você mesmo altera. Trocar uma palavra sorteada por uma que “combina melhor” devolve a frase para o território dos 20,8 bits do estudo da Amazon. Se não gostou do sorteio, sorteie de novo — o botão está ali para isso, e a próxima frase é tão sorteada quanto a anterior.

O resumo, em quatro linhas

Caractere especial exigido pelo site: entre 1,4 e 5 bits, dependendo do tamanho. Trocar letra por símbolo parecido: zero, e já vem como regra pronta no programa que ataca. Palavra sorteada a mais: 10,1 bits. Frase que você inventou: 20,8 bits, medidos.

O gerador daqui abre em 7 palavras, que é onde o tempo estimado sai da casa dos dias e entra na dos anos, e vai até 10. O sorteio é do crypto.getRandomValues do seu navegador. Nada do que sai de lá é enviado, guardado ou recuperável — inclusive por nós.