Pular para o conteúdo

Frase-senha: quantas palavras bastam

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
330menos de um segundo20fraca
440menos de um segundo26fraca
55013 minutos33razoável
66010 dias40forte
77031 anos47forte
88034 mil anos54blindada
1010141 bilhões de anos68blindada

“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 palavras40menos de um segundo261,53
Oito caracteres, os quatro tipos483 minutos86,07
Doze minúsculas, sem mais nada5613 horas124,7
15 minúsculas (o mínimo do NIST)7027 anos154,7
Frase de 7 palavras (o padrão daqui)7031 anos471,51
16 aleatórios, os quatro tipos (o padrão daqui)9911 bilhões de anos166,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.