Pular para o conteúdo

BlogPrivacidade e segurança6 min de leitura

Quanto tempo leva para quebrar uma senha?

A força de uma senha vem de quantas senhas poderiam ter sido escolhidas, não de quão complicada ela parece. Calculamos quanto tempo os tipos comuns de senha resistem a uma placa de vídeo moderna, e por que as inventadas pelas pessoas caem primeiro.

Um cadeado, um campo de senha oculto, um medidor de força e um cronômetro.

Toda página de dicas sobre senhas manda misturar maiúsculas, dígitos e símbolos. Pouquíssimas dizem por quê, ou quanto cada passo realmente rende. A resposta é um pouco de aritmética, e depois de vê-la a escolha certa fica óbvia: comprimento e aleatoriedade importam muito mais que substituições espertas.

Este artigo faz as contas com números reais. Os tempos abaixo são o que leva para testar todas as senhas possíveis de um tipo, nas velocidades que os benchmarks públicos informam para o hardware atual.

Como as senhas são realmente atacadas

Há duas situações bem diferentes. Num ataque online, alguém digita tentativas num formulário de login. Os sites atrasam isso, bloqueiam contas e pedem segundo fator, então um atacante consegue talvez algumas tentativas por minuto. Quase qualquer senha que não esteja numa lista de senhas comuns sobrevive a isso.

O caso perigoso é o ataque offline. Quando um site é invadido, o atacante leva para casa uma cópia do banco de senhas. As senhas deveriam ser guardadas como hashes, impressões digitais de mão única que não podem ser revertidas, então o atacante calcula o hash das tentativas no próprio hardware e compara. Não há bloqueios nem limites de velocidade, só a velocidade das placas de vídeo dele.

Essa velocidade depende muito do hash que o site usou. Em benchmarks publicados, uma única placa de vídeo atual de ponta testa bem mais de 100 bilhões de tentativas por segundo contra um hash rápido como MD5 ou NTLM, mas menos de 200 mil por segundo contra o bcrypt, que é lento de propósito. Você não consegue ver qual um site usa, então é sensato se preparar para o caso rápido.

Entropia: contar as possibilidades

A medida útil de uma senha é a entropia, em bits. É o logaritmo na base 2 do número de senhas que poderiam ter saído do método que você usou. Cada bit extra dobra o número de tentativas que um atacante precisa.

Para uma senha de caracteres aleatórios, a conta é fácil: o número de caracteres possíveis elevado ao comprimento. Letras minúsculas dão 26 opções por caractere, então 8 delas dão 26 elevado a 8, cerca de 209 bilhões de possibilidades, ou 37,6 bits. Usar os 94 caracteres imprimíveis de um teclado (maiúsculas e minúsculas, dígitos e 32 símbolos) dá 6,1 quatrilhões de possibilidades para os mesmos 8 caracteres, ou 52,4 bits.

Para uma frase-senha de palavras aleatórias, conte palavras em vez de caracteres. A lista longa de palavras da EFF que nosso gerador de senhas usa tem 7.776 palavras, então cada palavra acrescenta cerca de 12,9 bits. Quatro palavras dão 51,7 bits, seis palavras dão 77,5 bits.

Os números

Este é o tempo necessário para testar todas as senhas possíveis de cada tipo com uma placa de vídeo. Em média, um atacante encontra uma senha na metade desse tempo.

Tipo de senhaEntropiaHash rápido (100 bilhões por segundo)bcrypt (200 mil por segundo)
8 letras minúsculas37,6 bits2 segundos12 dias
8 caracteres, todos os tipos52,4 bits17 horas966 anos
12 letras minúsculas56,4 bits11 dias15.000 anos
4 palavras aleatórias51,7 bits10 horas579 anos
5 palavras aleatórias64,6 bits9 anos5 milhões de anos
12 caracteres, todos os tipos78,7 bits151.000 anos75 bilhões de anos
6 palavras aleatórias77,5 bits70.000 anos35 bilhões de anos
16 caracteres, todos os tipos104,9 bits12 trilhões de anosmuito mais
Pior caso para uma placa de vídeo. Atacantes com várias placas dividem esses tempos pelo número de placas; um rack de 100 placas transforma 17 horas em uns 10 minutos.
Bits de entropia por tipo de senha
  • 8 minúsculas37,6 bits
  • 4 palavras aleatórias51,7 bits
  • 8 de todos os tipos52,4 bits
  • 12 minúsculas56,4 bits
  • 5 palavras aleatórias64,6 bits
  • 6 palavras aleatórias77,5 bits
  • 12 de todos os tipos78,7 bits
  • 16 de todos os tipos104,9 bits

Cada bit dobra o trabalho. Os tipos destacados ficam fora do alcance de uma só placa mesmo contra um hash rápido.

Duas coisas se destacam. Primeiro, o comprimento vence a variedade: 12 letras minúsculas (56,4 bits) superam 8 caracteres de todos os tipos (52,4 bits), e são muito mais fáceis de digitar no celular. Segundo, o salto de «quebrável em um dia» para «quebrável na vida do universo» acontece com só alguns caracteres ou duas palavras a mais, porque os números crescem de forma exponencial.

Por que sua própria senha é mais fraca do que a tabela diz

A tabela supõe que a senha foi escolhida ao acaso. As senhas que as pessoas inventam não são. As ferramentas de quebra começam com listas de bilhões de senhas vazadas e depois aplicam regras que imitam como as pessoas as montam: uma palavra, uma maiúscula no início, um ano, um ponto de exclamação no fim, letras trocadas por dígitos parecidos.

Uma senha como Summer2024! tem 11 caracteres de quatro tipos, o que parece dar 72 bits. Na prática é uma estação, um ano e um símbolo, e um ataque por regras a testa entre as primeiras bilhões de tentativas, o que leva bem menos de um segundo contra um hash rápido. P@ssw0rd123 está em toda lista. Comprimento feito de partes previsíveis acrescenta muito pouco.

É também por isso que os medidores de força dos formulários de cadastro podem enganar. Um medidor que conta tipos de caractere dá nota máxima a Summer2024! e não avalia melhor quietly-orbit-lantern-pebble-fossil, embora a segunda seja muito mais forte.

O que faz uma boa senha hoje

  • Deixe um computador escolher. Caracteres aleatórios ou palavras aleatórias, de um gerenciador de senhas ou de um gerador que use a fonte aleatória criptográfica do seu navegador.
  • Busque pelo menos 12 caracteres, ou 16 se você nunca a digita. Um gerenciador de senhas a preenche, então o comprimento não custa nada.
  • Use uma frase-senha onde precisar digitá-la. Cinco ou seis palavras aleatórias são longas mas fáceis de digitar e lembrar, o que combina com o login de um notebook ou com o próprio gerenciador de senhas.
  • Nunca reutilize uma senha. A maioria das invasões de conta hoje não quebra nada: testa num site senhas vazadas de outro.
  • Ative um segundo fator no e-mail, no banco e em tudo que pode redefinir outras contas. Isso torna uma senha roubada inútil sozinha.

Ainda vale incluir símbolos quando o site permite, porque eles aumentam o número de opções por caractere. Só não substituem o comprimento, e não valem nada quando aparecem onde todo mundo os coloca.

Como funciona o gerador deste site

O gerador de senhas do Tooloat tira cada caractere ou palavra de crypto.getRandomValues, o gerador de números aleatórios criptográfico do navegador, e roda inteiro no seu aparelho: nada do que você gera é enviado. Ele mostra a entropia do método escolhido e três estimativas de quebra, de um ataque online a um grande cluster, para você ver o efeito de cada ajuste antes de copiar o resultado.

Para a maioria das contas, o padrão de 20 caracteres aleatórios é a resposta certa. Para a única senha que você digita todo dia, escolha Frase-senha e cinco ou seis palavras.

Perguntas e respostas

Uma senha mais longa é sempre mais forte?

Só se o comprimento extra for aleatório. Doze letras minúsculas aleatórias superam oito caracteres aleatórios de todos os tipos, mas uma frase longa de uma música ou de um livro pode ser adivinhada com listas de frases.

Os símbolos ainda importam?

Eles aumentam o número de opções por caractere, então ajudam quando aparecem ao acaso. Uma maiúscula no início e um ponto de exclamação no fim quase não acrescentam nada, porque as ferramentas de quebra testam esse padrão primeiro.

Com que frequência devo trocar minha senha?

A orientação atual de órgãos de segurança como o NIST é trocar quando houver motivo para achar que vazou, não num calendário fixo. Trocas obrigatórias tendem a gerar variações previsíveis.

Frases-senha são tão fortes quanto caracteres aleatórios?

Por caractere são mais fracas, mas por coisa que você lembra são mais fortes. Seis palavras aleatórias têm mais ou menos a mesma entropia de 12 caracteres aleatórios de todos os tipos, e a maioria das pessoas as acha bem mais fáceis de digitar.

Ferramentas deste artigo

Mais do blog

Privacidade e segurança6 min de leitura

Como remover a localização e outros metadados das fotos

Toda foto carrega dados ocultos sobre a câmera, o horário e muitas vezes o lugar. Lemos o que nove fotos publicadas ainda revelavam, adicionamos uma localização para mostrar sua precisão e conferimos que removê-la deixa a imagem intacta.

Privacidade e segurança6 min de leitura

MD5 ou SHA-256: qual hash você deve usar?

O MD5 e o SHA-256 transformam um arquivo em uma impressão digital curta, mas só um deles ainda é confiável quando alguém pode estar tentando enganar você. Cronometramos sete funções de hash e vimos o que «quebrado» realmente significa.

Privacidade e segurança6 min de leitura

Os conversores online enviam seus arquivos?

A maioria dos conversores online envia seu arquivo para um servidor; alguns fazem o trabalho no seu navegador. Veja como saber em um minuto de que tipo é um site, e como foi cada requisição quando convertemos uma foto no nosso.

Esc