Gerador de senhas pronunciáveis

Sílabas aleatórias que se escrevem como soam.

Sua senhaTudo no seu navegador

 

Extras que quase todo formulário pede

Os dois vão no fim, onde não atrapalham na hora de dizer a senha em voz alta, e nenhum entra no número acima.

Maiúsculas e quantidade
Maiúsculas

Brisaufoclematos — parece um nome e cumpre a regra da maiúsculabrisaufoclematos — o mais rápido de digitar, sem a tecla Shift

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.

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.

Uma sílaba pode ficar aberta de 256 formas ou fechada de 512. Tire a forma no cara ou coroa e a senha mais fácil passa a ser 2 vezes mais provável que a mais difícil: de 9,58 bits para 9.Calculado com as sílabas em português deste gerador. Com as 23 terminações da versão em inglês, a diferença é de 22 vezes; com as 5 da espanhola, de 4. A perda se acumula a cada sílaba.

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.

45 bits ocupam 9 caracteres como string aleatória, 16 como sílabas e de 25 a 28 como palavras. As sílabas ficam no meio e, ao contrário de uma string aleatória, o resultado pode ser dito em voz alta.Calculado com as sílabas em português deste site e as duas listas de palavras da EFF, que 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.

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.