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 |
( 53) ×
263 × 102 = |
17.576.000 / 2.000.000.000 = |
|
7 caracteres |
( 71) ×
261+6 = |
56.222.671.232 / 2.000.000.000 = |
|
8 caracteres |
( 84) × ( 42 ) × 264
× 322 × 102 = |
19.653.623.808.000 / 2.000.000.000 = |
|
9 caracteres |
( 92 ) × ( 73) × ( 42 ) ×
262+3 × 102 × 322 = |
9.197.895.942.144.000 / 2.000.000.000 = |
|
12 caracteres |
( 123) × ( 94 ) × ( 53) ×
263+4 × 323 × 102 = |
7.295.525.784.083.496.960.000 / 2.000.000.000 = |
|
14 caracteres |
( 144 ) × (
104) × ( 63 ) ×
264+4 × 103 × 323 = |
28.768.690.008.569.256.345.600.000 / 2.000.000.000 = |
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
- NIST SP 800‑63B (Rev. 4), Apêndice: Força das palavras-passe – Comprimento, frases-passe, ataques offline (milhares de milhões de hashes/seg.) e conceito de limitação de taxa.
- NIST SP 800‑63B (Rev. 3) – entre outros, comprimento mínimo, permitir palavras-passe longas (≥ 64), listas negras, permitir colar; Limitação de taxa/restrição com limitação para um máximo de 100 tentativas falhadas consecutivas.
- OWASP Password Storage Cheat Sheet – procedimentos adequados (Argon2, scrypt, PBKDF2, bcrypt), fatores salt/work.
- OWASP Authentication Cheat Sheet – diretrizes para introdução de palavras-passe, comprimento, listas negras e mecanismos de bloqueio.
- BSI: Criar palavras-passe seguras – entre outras coisas, palavras-passe e frases-passe longas/complexas; dicas práticas.
- BSI‑Presse 31.01.2025 – sem alterações regulares obrigatórias de palavras-passe; dar preferência a 2FA/chaves de acesso.
- distributed.net RC5 / estado atual do proxy – exemplo ilustrativo de pesquisa exaustiva e poder de computação distribuído.