Este gerador de senhas pronunciáveis cria senhas com sílabas em vez de palavras, para que você possa ditar uma pelo telefone sem soletrar cada caractere. Nenhuma é uma palavra de verdade, e todas se escrevem como soam.
O que é um gerador de senhas pronunciáveis?
Um gerador de senhas pronunciáveis junta sílabas ao acaso em algo que se pode dizer: Brisaufoclematos em vez de k3w9zq4mt. Ele não tem dicionário: as sílabas nunca foram palavras, então um atacante não tem nada para procurar.
Sílabas, não palavras
Este site tem três ferramentas que produzem algo que uma pessoa consegue manejar. O que separa um gerador de senhas pronunciáveis das outras duas é de onde vem o acaso.
- O gerador de frases secretas sorteia palavras de uma lista de 4.096 palavras em português.
- O gerador de senhas fáceis de lembrar sorteia palavras de uma lista de 1.024 palavras curtas em português.
- Este sorteia sílabas de uma lista de 256 que não são palavras.
A diferença aparece no comprimento. Palavras são fáceis de lembrar e custam muitos caracteres; sílabas são mais difíceis de lembrar e ocupam bem menos. Um gerador de senhas pronunciáveis é a escolha certa só quando a senha precisa sair da sua tela.
Quando vale a pena
Sempre que a senha precisar passar pelo ouvido de alguém: ler um código para um colega, ditar um acesso temporário pelo telefone ou escrevê-la num quadro para uma oficina. É para isso que existe um gerador de senhas pronunciáveis.
Uma string aleatória obriga você a soletrar e confirmar cada caractere. Um gerador de senhas pronunciáveis entrega algo que se diz uma vez só.
Sílabas que se escrevem como soam
Por que não são as mesmas do inglês
A versão em inglês desta ferramenta usa 285 sílabas pensadas para a pronúncia inglesa, com th, sh ou oo. Quem fala português ouve thuve e não sabe como escrever, e uma senha ditada que não dá para escrever não serve para nada.
Por isso, aqui, este gerador de senhas pronunciáveis usa outras sílabas, com uma regra só: cada som aparece escrito do jeito que quem ouve escreveria. Ouviu a sílaba, escreveu certo de primeira.
Que letras ficam de fora
- z, e o c antes de e ou i: soam como o s. Entre vogais, o s soa como z, e quem ouve escreve s, como em casa e mesa.
- g antes de e ou i: soa como o j. O c e o g só aparecem com a, o e u.
- x e ch: têm o mesmo som, e o x ainda tem outros.
- h no começo: não se pronuncia.
- k, w, y e q: aparecem quase só em palavras estrangeiras, siglas e símbolos, e o q precisa de um u depois.
- ou e ei: no Brasil, ouro soa como oro, e cadeira como cadera; quem ouve escreveria uma vogal só.
O que sobra
Doze consoantes simples (b, d, f, j, l, m, n, p, r, s, t e v) vão com as cinco vogais ou com dez ditongos; o c e o g, só com a, o e u; e catorze grupos, como br, cl, lh ou nh, com as cinco vogais.
Ao contrário do espanhol, o v fica: em português ele não se confunde com o b.
São as 256 sílabas deste gerador de senhas pronunciáveis. A última pode terminar em r ou s, ou ficar aberta. O l e o m no fim ficam de fora, porque no Brasil mal soa como mau e um m final vira só um som nasal.
O que custa, e o que não resolve
Menos sílabas significa menos bits por sílaba: 8 em vez de 8,15, e três finais em vez de 23. Cinco sílabas ficam em 41,6 bits, abaixo dos 45,3 da versão em inglês, então neste gerador de senhas pronunciáveis o padrão sobe para seis: 49,6 bits em uns 18 caracteres.
Uma coisa a regra não resolve: em boa parte do Brasil, um e ou um o átono no fim soam como i e u, e o r final às vezes some. Por isso a senha vem também separada em sílabas logo abaixo; leia por ela.
O erro que marcou esta categoria
O padrão foi retirado
O NIST publicou o FIPS 181, o Automated Password Generator, em 1993. Segundo o resumo, o algoritmo cria ao acaso sílabas simples e pronunciáveis para usar como senhas: exatamente o que faz um gerador de senhas pronunciáveis.
Ele foi retirado em 19 de outubro de 2015, e nada o substituiu. O módulo de Perl Crypt::GeneratePassword, uma das poucas implementações que entram no assunto, diz que evita o FIPS-181, “which is proven to be insecure” (que se provou inseguro), e cita um artigo de Ganesan e Davies de 1994.
Onde a entropia se perde
A falha está na forma de escolher. O jeito tentador de montar um gerador de senhas pronunciáveis é escolher primeiro um modelo (consoante e vogal, ou consoante, vogal e consoante) e depois preenchê-lo.
Os modelos não contêm o mesmo número de senhas. Escolher entre eles meio a meio deixa cada senha do modelo pequeno mais provável que qualquer uma do grande.
Uma única sílaba pode terminar aberta, sem consoante final, de 256 formas, ou fechada de 512, com 768 possibilidades no total. Escolher entre as duas formas no cara ou coroa e depois preencher a forma dá a cada senha aberta 0,195 por cento de chance e a cada fechada 0,098 por cento, então a mais provável é duas vezes mais provável que a menos provável. A resistência dela a tentativas é de 9 bits. Enumerar primeiro as 768 possibilidades e sortear uma só vez dá a cada senha 0,130 por cento e os 9,58 bits completos.
Com só dois finais, o português é o caso mais brando dos três, e mesmo assim a perda existe. Um atacante que conhece as formas não ataca a média: começa pela metade barata, justamente a que um gerador de senhas pronunciáveis descuidado barateia mais.
Por isso este nunca escolhe uma forma
As 256 sílabas são enumeradas uma vez, antes de gerar qualquer coisa, e cada sorteio pega uma delas de forma uniforme. Este gerador de senhas pronunciáveis não tem nenhuma decisão de modelo que possa dar errado.
As restrições continuam existindo, como o c só aparecer antes de a, o e u, porque ce soaria como se. Mas elas valem na hora de montar a lista, e não na hora de sortear. Descartar combinações antes de enumerar não custa nada; ponderá-las depois é o erro.
Por isso a entropia é uma contagem
Cada sílaba é consoantes seguidas de vogais, sem final, então uma senha pronta alterna blocos de consoantes e de vogais e só pode ser separada de um jeito. Seis sílabas e um final dão 256⁶ × 3 possibilidades: 49,6 bits, contados e não estimados.
O preço de poder dizer a senha
Bits por caractere
Todo formato de senha legível troca entropia por legibilidade, e um gerador de senhas pronunciáveis não é exceção. A pergunta útil é a que preço.
Quarenta e cinco bits de entropia ocupam uns nove caracteres com letras e dígitos ao acaso, dezesseis com as sílabas pronunciáveis em português deste gerador, vinte e cinco com palavras da lista curta e separadores, e vinte e oito com palavras da lista longa e separadores. Estas sílabas carregam 2,92 bits por caractere, contra 5,17 do acaso completo, 1,87 da lista curta e 1,62 da longa. As duas listas de palavras são em inglês.
Comparadas a uma string aleatória, estas sílabas perdem cerca de 44% da densidade. Em troca, carregam de 1,6 a 1,8 vez o que carrega uma senha feita de palavras, e por isso o resultado é bem mais curto que uma frase secreta igualmente forte.
Quantas sílabas usar
Seis é o padrão: 49,6 bits em uns 18 caracteres, que cabem em qualquer campo de senha e se agrupam bem na hora de dizer. Com menos de cinco, um gerador de senhas pronunciáveis deixa de compensar a entropia que abriu mão.
Oito passam de 65 bits com uns 24 caracteres: é o ajuste do gerador de senhas pronunciáveis para qualquer senha que vá durar mais do que a conversa em que foi ditada.
Por que o número vai no fim
O gerador de senhas fáceis de lembrar esconde de propósito o número dentro de uma palavra, porque as regras de quebra de senhas testam primeiro os enfeites do fim.
Aqui isso seria contraproducente: ninguém consegue ler bri7saufo em voz alta. O número e o símbolo vão no fim e, como a posição deles é previsível, este gerador de senhas pronunciáveis não os conta no número que mostra.
As palavras que ele se recusa a dizer
Por que um filtro é necessário
Deixe um gerador de senhas pronunciáveis juntar sílabas por tempo suficiente e ele acaba formando algo que você não leria em voz alta num escritório. Não é um risco hipotético.
O protótipo da versão em inglês produziu um palavrão inconfundível nas primeiras doze amostras, e isso encerrou a discussão. Há uma lista de cerca de 130 sequências, em português, inglês e espanhol, e com seis sílabas em português mais ou menos um rascunho em cada 61 contém alguma.
Rejeitado, não consertado
Um rascunho que não passa no filtro é jogado fora e outro é sorteado. Ele nunca é retocado.
Trocar uma letra para desfazer uma palavra indesejada enviesaria o resultado sem avisar: algumas sílabas passariam a sair mais que outras, num padrão que ninguém veria.
Descartar mantém cada senha restante exatamente tão provável quanto as outras. É o mesmo princípio pelo qual este gerador de senhas pronunciáveis sorteia de uma lista enumerada.
O custo do filtro
Tirar cerca de 1,7% do espaço custa 0,024 bits de 49,6. O número foi medido sobre um milhão de sorteios, e não suposto. Com as sílabas em inglês, o descarte é de 4,8%.
Medir é o que importa: um filtro que tirasse uma parte grande estaria mudando o que o gerador de senhas pronunciáveis produz, e não aparando, e ninguém perceberia olhando o resultado.
Perguntas frequentes
São palavras de verdade?
Não, e de propósito. Este gerador de senhas pronunciáveis não tem dicionário: cada senha é montada com 256 sílabas que nunca foram palavras. Isso importa porque uma senha feita de palavras de verdade só é tão difícil de adivinhar quanto a lista de onde saiu, e um atacante conhece as listas comuns.
Por que as sílabas não têm z, x nem h?
Porque quem ouve a senha precisa escrevê-la igual. O z, e o c antes de e ou i, soam como o s; o x tem o mesmo som do ch, e o g antes de e ou i soa como o j; o h não se pronuncia. O ç não entra porque a saída só usa as letras de a a z.
Como o número de entropia é calculado?
Contando, e não estimando. As sílabas são enumeradas uma vez e sorteadas de forma uniforme. Cada sílaba é formada por consoantes seguidas de vogais, então as letras se alternam em blocos e uma senha pronta só pode ser separada de um jeito. Seis sílabas e um final dão 256⁶ × 3 possibilidades: 49,6 bits exatos.
Por que não usar o FIPS 181, o padrão do NIST para isso?
Porque o NIST o retirou em 19 de outubro de 2015 e não indicou nenhum substituto. Um módulo de Perl para gerar senhas, uma das poucas implementações que tratam do assunto, explica que evita o FIPS-181 porque já se provou que ele é inseguro, e cita um artigo de Ganesan e Davies de 1994.
O que há de errado em escolher um modelo e preenchê-lo?
Os modelos não contêm o mesmo número de senhas. Se você escolhe meio a meio entre um pequeno e um grande, cada senha do pequeno fica mais provável, e um atacante começa por ali. Com uma única sílaba em português, a resistência cai de 9,58 bits para 9. Este gerador de senhas pronunciáveis sorteia uma só vez de uma lista pronta.
Quão segura é uma senha pronunciável comparada a uma aleatória?
Menos por caractere que uma aleatória e mais que uma de palavras. Estas sílabas carregam cerca de 2,92 bits por caractere, contra 5,17 de letras e dígitos ao acaso e de 1,62 a 1,87 das senhas feitas de palavras. 45 bits ocupam 9 caracteres ao acaso, 16 pronunciáveis ou de 25 a 28 com palavras.
Por que o número vai no fim, se outras páginas o escondem no meio?
Porque colocá-lo no meio estragaria a única coisa que esta ferramenta oferece. As regras de quebra de senhas testam primeiro os números do fim, e por isso o gerador de senhas fáceis de lembrar os coloca no meio; mas ninguém consegue ditar “bri7saufo” pelo telefone. O número vai no fim e não entra no número de entropia.
Pode sair algum palavrão?
Não de uma lista de cerca de 130 sequências, em português, inglês e espanhol, que ele se recusa a produzir. O risco é real: o protótipo da versão em inglês produziu um palavrão nas primeiras doze amostras. Com seis sílabas em português, cerca de um rascunho em cada 61 é descartado e sorteado de novo, o que custa 0,024 bits.
Descartar rascunhos deixa o resultado menos aleatório?
Reduz um pouco o espaço, e a rejeição mantém tudo o que sobra com a mesma chance. Por isso os rascunhos são jogados fora, e não consertados: trocar uma letra enviesaria o resultado de um jeito difícil de ver e mais difícil de medir. O custo é medido sobre um milhão de sorteios, e não suposto.
Mais geradores gratuitos
Todas as ferramentas deste site funcionam no seu navegador, sem conta e sem limites. As de chaves e segredos e a de UUID, por enquanto, só estão em inglês.
Ferramentas de senha
Geradores aleatórios
- Gerador de strings aleatóriasQualquer comprimento, qualquer conjunto de caracteres, em lote.
- Gerador de letras aleatóriasUma letra ao acaso, ou várias, todas com a mesma chance.
- Gerador de códigos aleatóriosCupons, vales-presente e números de série, em lote.
- UUID Generator (em inglês)Version 4 UUIDs, single or by the hundred.
- Gerador de PINSenhas numéricas que nunca são 1234.
Chaves e segredos
- API Key Generator (em inglês)Prefixed keys in common formats.
- Secret Key Generator (em inglês)128 to 512-bit secrets in hex or Base64.
- JWT Secret Generator (em inglês)HS256, HS384 and HS512 signing secrets.
- Salt Generator (em inglês)Random salts for password hashing.
- Hash Generator (em inglês)SHA-256, SHA-384 and SHA-512 in-browser.
Metodologia
Atualizado em
As sílabas
Doze consoantes simples vão com as cinco vogais ou com dez ditongos; o c e o g, só com a, o e u; e catorze grupos, incluindo lh e nh, com as cinco vogais: 256 sílabas, de 8 bits cada. O final sai de 3 opções, uma das quais é não pôr nada. Nenhuma lista de palavras entra no processo.
Como o sorteio funciona
possibilidades = 256sílabas × 3
Cada sílaba vem de crypto.getRandomValues() por amostragem por rejeição, e a lista é enumerada antes de qualquer sorteio, então todas as sílabas têm a mesma chance. Math.random() não é usado em nenhuma parte deste gerador de senhas pronunciáveis.
Por que a contagem é exata
Uma sílaba tem uma parte de consoantes e outra de vogais, e mais nada, então a senha pronta alterna blocos de consoantes e de vogais e os limites ficam fixados.
Os testes unitários geram senhas, separam de novo em sílabas e conferem a ida e volta, com as sílabas em português, em espanhol e em inglês. Isso demonstra que a correspondência é de um para um e que a contagem não conta nada duas vezes.
Os testes conferem também que nenhuma sílaba em português tem z, k, w, y, q, x ou ch, que o h só aparece em lh e nh, que o c e o g nunca vêm antes de e ou i e que ou e ei não aparecem.
As palavras bloqueadas
Cerca de 130 sequências, em português, inglês e espanhol, que o gerador não produz, aplicadas por rejeição. As palavras em português e em espanhol foram escolhidas à mão, e cada uma aparece em pelo menos uma lista de licença aberta.
Com seis sílabas em português, a taxa de rejeição medida é de 1,65% e custa 0,024 bits. A lista está no código-fonte, e os testes procuram duplicados e entradas curtas demais para serem seguras, e a comparam com listas escritas à parte nos três idiomas.
O que não é contado
O número e o símbolo opcionais. A posição deles é fixa e a presença é anunciada pelo formulário que os exige, então incluí-los inflaria o número. Nada do que é gerado aqui é transmitido, guardado ou colocado na URL, e as páginas em português não carregam ferramentas de análise.