Calculadora de força de senha
Resultado
Entropia
- Conjunto de caracteres
- 62
- Entropia por caractere
- 5,95 bit
- Combinações (potência de 10)
- 28
A força de uma senha é aritmética, e esta página faz a conta em vez de chutar. Escolha um comprimento e um conjunto de caracteres e você recebe o tamanho do espaço que essas escolhas descrevem, a entropia em bits e quanto tempo uma placa de vídeo moderna leva para tentar todas as combinações — contra um hash rápido e contra um hash lento bem configurado. A distância entre esses dois últimos números é a coisa mais útil da página: a mesma senha que cai em três anos contra um banco de dados MD5 vazado resiste milhões de anos contra o bcrypt. O comprimento é a outra metade. Cada caractere a mais multiplica o trabalho pelo tamanho do conjunto, enquanto acrescentar um conjunto inteiro a um comprimento fixo multiplica uma única vez.
Tempo de quebra por faixa de entropia
| Faixa | Entropia | Combinações | Segundos a 10¹⁰/s | Segundos a 10⁴/s |
|---|---|---|---|---|
| Fraca | 28 – 35 bits | 8 | -2 | 4 |
| Razoável | 36 – 59 bits | 10 | 0 | 6 |
| Forte | 60 – 127 bits | 18 | 8 | 14 |
| Muito forte | 128 bits ou mais | 38 | 28 | 34 |
Leia as duas últimas colunas como potências de dez: -2 significa 10⁻² segundos, 3 significa mil segundos. A coluna da direita é o mesmo atacante contra um hash lento bem configurado, então as duas diferem por um fator de um milhão. As duas taxas são estimativas de ordem de grandeza de uma única placa moderna, e não a medição de uma máquina específica. A entropia é o limite inferior da faixa, e é por isso que esta tabela e o selo de força sempre concordam. As combinações são arredondadas para baixo até uma potência de dez, de modo que nunca são superestimadas.
Fórmula
entropia (bits) = comprimento da senha × log₂(tamanho do conjunto de caracteres), e o número de combinações é 2 elevado à entropia
- comprimento da senha
- Quantos caracteres a senha tem
- conjunto de caracteres
- Quantos caracteres distintos estão disponíveis: 26 minúsculas, 26 maiúsculas, 10 dígitos, 32 símbolos
- log₂
- Logaritmo na base 2, para que o resultado seja contado em bits
Use para comparar duas políticas de força de senha antes de escrever uma, ou para conferir se uma senha que você já tem vale a pena manter. A conta é exata para uma senha gerada ao acaso a partir de um conjunto de caracteres conhecido, e apenas um limite superior para uma inventada por uma pessoa — gente escolhe padrões, então uma senha de 12 caracteres que alguém criou na cabeça tem bem menos entropia do que 12 caracteres aleatórios. A força bruta também não é o único ataque: uma senha repetida em vários sites cai junto com o vazamento do outro site, e nenhuma quantidade de comprimento ajuda nisso.
Exemplos resolvidos
16 caracteres, letras e dígitos
- Conjunto: 26 + 26 + 10 = 62 caracteres
- Entropia por caractere: log₂(62) = 5,95 bits
- Entropia total: 16 × 5,95 = 95,3 bits
- Combinações: 10²⁸ — a ferramenta informa a potência de dez em vez dos 29 dígitos
95,3 bits passam com folga da faixa de 60 e caem na faixa mais alta, normalmente reservada para 128. Ligar os símbolos também levaria o conjunto a 94 e a entropia a 104,9 bits — 9,6 bits a mais, o mesmo que acrescentar cerca de 1,6 caracteres.
8 caracteres, só minúsculas
- Conjunto: 26 caracteres
- Entropia por caractere: log₂(26) = 4,70 bits
- Entropia total: 8 × 4,70 = 37,6 bits
- Combinações: 2^37,6 ≈ 2,1 × 10¹¹, portanto 10¹¹
37,6 bits caem na faixa razoável — cerca de sete segundos de trabalho para um hash rápido em uma placa. Dobrar o comprimento para 16 caracteres leva a 75,2 bits, enquanto manter o comprimento em 8 e ligar todos os conjuntos de caracteres chega apenas a 52,4 bits. O comprimento faz mais por tecla do que a variedade.
Limitações
O número de entropia supõe que a senha foi gerada de forma uniformemente aleatória a partir do conjunto de caracteres que você escolheu. Qualquer senha escolhida à mão tem menos, muitas vezes bem menos, porque as pessoas recorrem a palavras, datas e padrões de teclado que uma ferramenta de quebra testa primeiro. Esta página mede, portanto, a política, e não a senha. Os tempos de quebra são estimativas de ordem de grandeza a partir de uma única placa de vídeo moderna, e não a medição de uma máquina específica: um atacante determinado com um cluster, ou apenas com uma placa mais nova, bate esses números por um fator grande, e um banco de hashes roubado pode ser atacado offline pelo tempo que o atacante quiser. Nada aqui leva em conta se a senha é repetida, pescada por phishing, capturada por keylogger ou redefinida pelo suporte — é assim que as senhas realmente caem, e nenhuma dessas vias depende da entropia. Por fim, a página não gera uma senha para você, porque um gerador seguro precisa de uma fonte aleatória criptograficamente segura, e um cálculo puro não pode ser essa fonte.
Perguntas frequentes
- Como a entropia de uma senha é calculada?
- A entropia é o comprimento da senha multiplicado pelo logaritmo na base 2 do tamanho do conjunto de caracteres. Escolher letras minúsculas, letras maiúsculas e dígitos dá um conjunto de 62 caracteres, log₂(62) dá 5,95 bits por caractere, e uma senha de 16 caracteres desse conjunto carrega portanto 95,3 bits. O número de combinações possíveis é 2 elevado à entropia, e é por isso que a entropia é a unidade útil: ela se soma quando a senha fica mais longa.
- 60 bits de entropia bastam, e como leio o tempo de quebra?
- Depende inteiramente de como o site guarda a sua senha. A 10¹⁰ tentativas por segundo — uma placa moderna contra um hash rápido sem salt —, 60 bits dão cerca de três anos de trabalho contínuo. Contra o bcrypt com custo 12 a mesma placa faz em torno de 10⁴ tentativas por segundo, e a mesma senha leva milhões de anos. Então 60 bits bastam contra um site competente e são marginais contra um descuidado; 80 bits bastam contra os dois. Os dois valores são estimativas de ordem de grandeza, não medições de uma máquina específica.
- Devo usar símbolos e misturar maiúsculas e minúsculas, ou só aumentar o comprimento?
- Aumentar o comprimento costuma ser a troca melhor, e sempre a mais fácil de memorizar. Passar de uma senha de 8 caracteres em minúsculas para 16 caracteres vale 37,6 bits; manter os 8 caracteres e ligar todos os conjuntos de caracteres vale 15 bits. O conjunto só multiplica uma vez quando você o amplia, enquanto cada caractere acrescentado multiplica de novo. Use símbolos quando um site os exigir, e não porque sejam o jeito eficiente de ganhar força.
- Por que esta página não gera uma senha para mim?
- Uma senha é tão imprevisível quanto a fonte de aleatoriedade por trás dela, e uma página que calcula um número para exibir não pode ao mesmo tempo sortear de uma fonte aleatória criptograficamente segura — essa fonte é exatamente o que separa um gerador de uma calculadora. Use o gerador do seu gerenciador de senhas ou o do seu sistema operacional, que têm essa fonte, e depois use esta página para conferir se o comprimento e os conjuntos que você escolheu lá valem a pena.
- Uma senha mais longa é sempre uma senha mais forte?
- Só se ela tiver sido gerada ao acaso. O comprimento é o que a aritmética premia, e é por isso que uma frase-senha de quatro palavras pode bater um emaranhado curto de símbolos — mas uma senha de 20 caracteres montada com um trecho de música, uma data de nascimento e um nome cai com um ataque de dicionário, e a força real dela não tem nada a ver com os 20 caracteres aleatórios que esta página mede. Esta página dá o teto de uma política de senhas; uma senha inventada por uma pessoa fica bem abaixo dele.
Referências
- NIST Special Publication 800-63B: Digital Identity Guidelines — Authentication and Lifecycle Management — National Institute of Standards and Technology
- NIST Special Publication 800-57 Part 1 Revision 5: Recommendation for Key Management — National Institute of Standards and Technology
- Password Storage Cheat Sheet — OWASP Foundation