Como funcionam os ataques de força bruta

Por que o comprimento é importante: exemplos de cálculos e contramedidas.

Nos ataques de força bruta, os atacantes tentam adivinhar uma palavra-passe através da tentativa sistemática de todas as combinações de caracteres possíveis. A ideia subjacente é simples: testar o maior número possível de combinações por segundo – idealmente em GPUs ou em sistemas distribuídos. Também se fala de uma busca exaustiva (exhaustive search).

Na prática, infelizmente, esses ataques são frequentemente bem-sucedidos, porque muitas palavras-passe são muito curtas, limitam-se a poucos grupos de caracteres (apenas letras) ou aparecem em listas de palavras. Isso reduz drasticamente o espaço de pesquisa e torna mais fácil adivinhar. Mais importante ainda: distingue-se entre ataques online (contra formulários de login, onde ajudam a limitação de tentativas/bloqueios de conta) e ataques offline (contra hashes de palavras-passe roubadas, onde a função hash e a força da palavra-passe determinam o tempo de ataque).

Quebrar palavras-passe (offline) ≠ «descriptografar»

As palavras-passe não são descriptografadas, mas sim armazenadas como valores hash e depois pesquisadas com taxas + hash</ em> (força bruta, ataques de dicionário/máscara). A velocidade de cálculo do hardware moderno está na ordem de milhares de milhões por segundo (para processos de hash rápidos), razão pela qual as palavras-passe com longas e lentos (por exemplo, Argon2, scrypt, PBKDF2, bcrypt) são decisivos.

Combinação e comprimento da senha

Os exemplos a seguir mostram a influência do comprimento e da seleção de caracteres. Para ilustrar, são calculadas 2 mil milhões de tentativas por segundo (computador individual muito potente; os valores reais variam muito dependendo do hardware e, no caso offline, do método de hash).

Grupos de caracteres típicos:

  • Números (10: 0–9)
  • Letras (52: A–Z e a–z)
  • Caracteres especiais (≈ 32; depende do conjunto de caracteres permitido pelo serviço)

O número de combinações possíveis resulta de:

Combinações possíveis = (conjunto de caracteres)comprimento da palavra-passe

Importante: a tabela mostra o tempo de pesquisa máximo. Em média, o tempo real é cerca de metade. Além disso, ataques de dicionário, regras e máscaras reduzem consideravelmente o espaço de pesquisa, enquanto os processos de hash de senha lentos reduzem drasticamente a taxa efetiva.

A palavra-passe é composta por Combinações possíveis (fórmula) Tempo necessário (a 2 bilhões/s)

5 caracteres
(3 letras minúsculas,
2 números)

( 53) × 263 × 102 =
17.576.000

17.576.000 / 2.000.000.000 =
0,008788 segundos

7 caracteres
(1 letra maiúscula,
6 letras minúsculas)

( 71) × 261+6 =
56.222.671.232

56.222.671.232 / 2.000.000.000 =
28,111335616 segundos

8 caracteres
(4 letras minúsculas,
2 caracteres especiais,
2 números)

( 84) × ( 42 ) × 264 × 322 × 102 =
19.653.623.808.000

19.653.623.808.000 / 2.000.000.000 =
9.826,811904 segundos =
≈ 2,73 horas

9 caracteres
(2 letras maiúsculas,
3 letras minúsculas,
2 números,
2 caracteres especiais)

( 92 ) × ( 73) × ( 42 ) × 262+3 × 102 × 322 =
9.197.895.942.144.000

9.197.895.942.144.000 / 2.000.000.000 =
4.598.947,971072 segundos =
≈ 53,23 dias

12 caracteres
(3 letras maiúsculas,
4 letras minúsculas,
3 caracteres especiais,
2 números)

( 123) × ( 94 ) × ( 53) × 263+4 × 323 × 102 =
7.295.525.784.083.496.960.000

7.295.525.784.083.496.960.000 / 2.000.000.000 =
3.647.762.892.041,74848 segundos =
≈ 115.590,63 anos

14 caracteres
(4 letras maiúsculas,
4 letras minúsculas,
3 números,
3 caracteres especiais)

( 144 ) × ( 104) × ( 63 ) × 264+4 × 103 × 323 =
28.768.690.008.569.256.345.600.000

28.768.690.008.569.256.345.600.000 / 2.000.000.000 =
14.384.345.004.284.628,1728 segundos =
≈ 455.812.387,64 anos

Conclusão: Cada caractere adicional multiplica o espaço de pesquisa. O comprimento prevalece sobre as regras de complexidade – especialmente contra ataques offline – desde que os serviços utilizem métodos de hash adequados e lentos com salt.

Proteção contra ataques de força bruta

A medida mais eficaz do utilizador é uma senha mestra longa e aleatória ou uma frase-passe (por exemplo, várias palavras aleatórias) – única para cada serviço. O Password Depot ajuda na geração e mostra um tempo estimado de ataque, que, além do comprimento/conjunto de caracteres, também leva em consideração as vulnerabilidades do dicionário.

  • Ativar MFA/2FA (por exemplo, aplicação TOTP ou token de hardware) – sempre que possível, as chaves de acesso são ainda melhores. Consulte Instruções da BSI.
  • Não reutilize palavras-passe. Cada conta precisa de uma palavra-passe forte e exclusiva.
  • Preferência por comprimento em vez de complexidade obrigatória. Os serviços devem permitir palavras-passe/frases-passe longas (pelo menos 64 caracteres) e bloquear palavras-passe comprometidas (lista negra).
  • Processos de hash lentos no lado do servidor (por exemplo, Argon2, scrypt, PBKDF2, bcrypt) com salt e fatores de trabalho adequados; hashes rápidos como MD5/SHA-1 são inadequados para o armazenamento de palavras-passe.
  • Limitação de taxa/restrição e bloqueios: os ataques online devem ser travados por tentativas de falha limitadas, tempos de espera progressivos e, se necessário, CAPTCHA.

Além disso, o Password Depot Online dificulta as tentativas de taxa, bloqueando brevemente o campo de entrada da palavra-passe mestra após entradas incorretas – com tempo de espera crescente em caso de tentativas falhadas repetidas.

Fontes adicionais