Como gerar senhas fortes

· 9 min de leitura

Uma senha fraca é a vulnerabilidade mais explorada da internet de consumo. Ano após ano, os corpora de vazamentos publicados pelos atacantes mostram as mesmas strings no topo: «123456», «password», «qwerty», «admin». Se alguma das suas contas compartilha esse DNA, ela já está em uma wordlist rodando em alguma botnet por aí. Uma senha forte é a defesa mais barata e rápida que você pode implantar, e alguns segundos com um gerador batem qualquer coisa que um cérebro humano produz sob pressão.

Uma breve história das senhas de computador

As senhas de computador datam de 1961, quando a equipe de Fernando Corbató no MIT as introduziu para o Compatible Time-Sharing System (CTSS), permitindo que vários usuários compartilhassem um mesmo mainframe mantendo seus arquivos privados. O sistema teve sua primeira invasão em 1962, quando o doutorando Allan Scherr imprimiu o arquivo mestre de senhas para conseguir mais tempo de computação do que sua cota semanal de quatro horas permitia. A lição, de que guardar segredos em claro ao lado das contas que eles protegem é má ideia, levou quase vinte anos para ser realmente absorvida pelo campo.

Em 1979, Robert Morris e Ken Thompson publicaram «Password Security: A Case History» e entregaram o hashing DES com sal no Unix Versão 7: um sal aleatório de 12 bits mais 25 iterações de DES transformaram o arquivo de senhas de um troféu instantâneo em um alvo de força bruta moderadamente caro. Rainbow tables, o «Crack» de Alec Muffett (1991) e GPUs cada vez mais rápidas acabaram superando essas defesas, e o campo migrou para funções de hash deliberadamente lentas: bcrypt (1999), scrypt (2009) e Argon2 (2015, vencedor atual do PHC).

O lado usuário das recomendações sobre senhas evoluiu mais devagar. As diretrizes NIST de 2003 (escritas em grande parte por Bill Burr) recomendavam rotação periódica forçada e mistura obrigatória de classes de caracteres, conselho que virou padrão corporativo por quinze anos. O próprio Burr renegou essas regras em uma entrevista de 2017. No mesmo ano, NIST SP 800-63B Revisão 3 abandonou formalmente a rotação periódica e as regras de composição, substituindo-as por duas ideias mais simples: preferir segredos memorizados longos, e verificar candidatos contra corpora de vazamentos antes de aceitá-los.

O que torna uma senha forte

A resistência de uma senha a adivinhação reduz-se a uma única grandeza: entropia, medida em bits. Cada bit duplica o espaço de busca. Um PIN de 4 dígitos tem cerca de 13 bits de entropia (10 000 combinações). Uma string de 16 caracteres só minúsculas tem cerca de 75 bits. Uma string de 16 caracteres com maiúsculas, minúsculas, dígitos e símbolos tem cerca de 105 bits. A 100 GH/s, o que uma GPU de consumo topo de gama consegue contra hashes salgados rápidos, 50 bits caem em dias, 70 bits em milênios.

Duas implicações práticas.

O comprimento domina a complexidade. Acrescentar um caractere extraído de um alfabeto de 70 símbolos multiplica o espaço de busca por 70, mais ou menos o mesmo que acrescentar 6,1 bits. Acrescentar uma regra de composição (digamos, misturar caixa com comprimento constante) só duplica o espaço, um bit a mais. Doze caracteres minúsculos aleatórios batem oito caracteres com caixa mista + símbolos toda vez.

A aleatoriedade não é negociável. Uma string de 20 caracteres feita de palavras em inglês não é 130 bits de entropia; diante de um atacante sério talvez seja 40, porque ferramentas de cracking rodam wordlists mais regras de mutação, não força bruta cega. Senhas geradas dão entropia plena por caractere. Senhas escolhidas por humanos quase nunca.

Como funciona um gerador de senhas

Um gerador no navegador usa crypto.getRandomValues(), o gerador de números pseudoaleatórios criptograficamente seguro (CSPRNG) da plataforma, alimentado pelo pool de entropia do sistema operacional. É a mesma fonte usada para derivar chaves de sessão TLS e vetores de inicialização AES. O antigo Math.random() não é criptograficamente seguro e nunca deve ser usado para senhas ou qualquer outro fim de segurança.

Você escolhe três coisas:

O gerador então amostra uniformemente do alfabeto escolhido até atingir o comprimento pedido, sem viés nem padrões.

Como gerar uma senha forte

  1. Decida o comprimento. Doze caracteres é um piso razoável para contas novas, 16 a 20 para contas que guardam dinheiro ou segredos, 25 ou mais para senhas mestras e credenciais root.
  2. Ative todas as classes de caracteres a menos que o site rejeite símbolos. Regras de composição ocultas custam alguns bits de entropia e vale a pena incluir os caracteres mais difíceis de adivinhar quando um gerenciador preenche o campo para você de qualquer jeito.
  3. Gere, então audite. A maioria dos geradores mostra a entropia estimada; mire em pelo menos 80 bits para contas comuns, 100 ou mais para alto valor.
  4. Salve em um gerenciador antes de colar. Fechar a aba perde a senha para sempre se ela não foi armazenada antes. Esse é o gol contra mais comum.
  5. Teste o ida-e-volta do login. Uma fração pequena mas real de sites trunca silenciosamente as senhas em 16, 20 ou 32 caracteres, ou tira certos símbolos no lado do servidor. Saia e entre uma vez para confirmar o que de fato foi aceito.

Comprimento, alfabeto e entropia em um olhar

ComprimentoAlfabetoCombinaçõesEntropia (bits)
8só minúsculas (26)2,1 × 10^1138
12minúsculas + dígito (36)4,7 × 10^1862
16caixa mista + dígito (62)4,8 × 10^2895
20caixa mista + dígito + 32 símbolos4,5 × 10^37125
25teclado completo (cerca de 94)2,0 × 10^49164

Abaixo de 64 bits, é frágil diante de um atacante offline decidido. Acima de 100 bits, é confortavelmente à prova da próxima década contra hardware clássico. Ataques quânticos reduzem pela metade a entropia efetiva via o algoritmo de Grover, então 100 bits clássicos dão 50 bits pós-quânticos, ainda bem acima de qualquer ameaça prática.

Frases-senha como alternativa

Para o pequeno conjunto de senhas que você realmente precisa lembrar (a mestra do seu gerenciador, um desbloqueio de dispositivo, um código de recuperação de emergência), uma frase-senha ganha de uma string aleatória em memorabilidade sem sacrificar segurança. A receita clássica é o Diceware, inventado por Arnold Reinhold em 1995: jogue cinco dados físicos, procure o número de cinco dígitos numa lista de 7 776 entradas (7 776 = 6^5), repita pelo número de palavras desejado. Cada palavra adiciona cerca de 12,9 bits de entropia, então uma frase de seis palavras como correct horse battery staple cargo lumen dá uns 77 bits, equivalente a uma string aleatória de 13 caracteres com caixa mista + dígito.

Em 2016, a Electronic Frontier Foundation publicou listas estilo Diceware renovadas, com palavras mais longas e memoráveis (7 caracteres em média contra 4,3 de Reinhold), ainda com 7 776 entradas, ainda com a mesma entropia por palavra, mais fáceis de digitar e ditar por telefone. Qualquer das duas serve.

O único erro que destrói a segurança de uma frase-senha é escolher as palavras você mesmo em vez de jogar os dados. Humanos se concentram em 1 000 a 2 000 substantivos e verbos comuns, então uma frase de seis palavras inventada por você costuma estar mais perto de 60 bits de entropia efetiva e às vezes está literalmente na wordlist do crackeador (correct horse battery staple mesma, popularizada pelo quadrinho xkcd, hoje figura em todo ataque de dicionário moderno).

Dicas para senhas melhores

Erros comuns

Além das senhas: gerenciadores, MFA e passkeys

Um gerenciador de senhas não é mais opcional. A alternativa realista é reutilizar senhas fracas ou anotá-las em papel, ambas piores do que qualquer gerenciador reputado. Uma comparação curta das opções principais:

FerramentaPreçoModelo de armazenamentoPonto forte
BitwardenGrátis / pagoSync na nuvem, opção auto-hospedadaOpen source, auditado, plano grátis generoso
1PasswordPagoSync na nuvem, criptografia ponta a pontaUX polida, compartilhamento familiar, Travel Mode
DashlanePagoSync na nuvemMonitoramento de dark-web, VPN inclusa
KeePassXCGrátisArquivo local (sync do seu jeito)Totalmente offline, sem risco de fornecedor
Proton PassGrátis / pagoSync na nuvem, criptografia ponta a pontaIncluído na conta Proton, alias de email
Chaveiro AppleGrátis em aparelhos AppleSync iCloudNativo, grátis, preso ao ecossistema Apple
Embutidos em navegadoresGrátisSync por conta do navegadorGrátis e embutido, mais fraco diante de malware na máquina

A autenticação de dois fatores (2FA) sobe o custo de uma senha roubada da tomada instantânea da conta para «o atacante também precisa interceptar o segundo fator». Prefira senhas de uso único baseadas em tempo (TOTP, via um app autenticador como Aegis, Raivo ou 2FAS) ao SMS, que é vulnerável a ataques de SIM-swap. Prefira chaves de segurança físicas (YubiKey, Titan, SoloKey) ao TOTP nas contas de maior valor.

As passkeys (FIDO2 / WebAuthn) substituem a senha por uma chave criptográfica ligada ao dispositivo. Apple, Google e Microsoft anunciaram conjuntamente o suporte expandido a passkeys em maio de 2022, e elas já estão disponíveis em iOS 16+, Android, Chrome, Safari, Edge e Windows Hello. Uma passkey é à prova de phishing porque o navegador se recusa a usá-la em um domínio para o qual ela não foi registrada, e não existe segredo compartilhado num banco do servidor para vazar numa brecha. Onde um site oferece passkeys, ative-as; geralmente você pode manter a senha como reserva enquanto o ecossistema amadurece.

Privacidade e o gerador

O gerador de senhas roda inteiramente no seu navegador. Chama crypto.getRandomValues() uma vez por caractere, amostra do alfabeto escolhido e renderiza o resultado na página. Nada é registrado, nada é enviado a um servidor, nada é guardado depois que você sai da página. A senha gerada nunca sai do seu aparelho a menos que você opte por colá-la em algum lugar. Para algo tão fundamental quanto a chave de uma conta, esse fluxo estritamente local é o padrão correto: sem telemetria, sem analytics, sem scripts de terceiros, sem cache. A ferramenta inteira pode rodar offline depois que a página carrega, o que você pode verificar desligando a rede e clicando em Gerar novamente.

Perguntas frequentes

Quão longa deve ser minha senha?

Use pelo menos 12 caracteres para segurança adequada, 16 ou mais para contas de alta segurança. Cada caractere adicional torna a senha exponencialmente mais difícil de quebrar.

Devo incluir caracteres especiais?

Sim. Combinar letras maiúsculas (A-Z), letras minúsculas (a-z), números (0-9) e caracteres especiais (!@#$%^&*) aumenta significativamente a força da senha ao expandir o conjunto de caracteres que um atacante precisaria adivinhar.

É seguro usar um gerador de senhas?

Sim, quando ele roda no seu navegador. Geradores baseados em navegador usam o gerador de números aleatórios criptográfico do seu dispositivo e nunca enviam a senha a um servidor.

Com que frequência devo mudar minhas senhas?

As orientações atuais de segurança (do NIST e outros) recomendam mudar senhas apenas quando há evidência de vazamento, não em um cronograma fixo. Mudanças forçadas frequentes levam a senhas mais fracas porque as pessoas escolhem senhas mais simples para lembrar.

Is a passphrase as good as a random password?

Yes, if it is long enough and the words are chosen randomly (for example with Diceware or the EFF wordlist). Six randomly-chosen words give about 77 bits of entropy, comparable to a 13-character random password. Self-invented phrases are usually much weaker because humans cluster around the same few thousand common words.