Como funcionam os ataques de força bruta
Porque o comprimento importa: exemplos de cálculo e contramedidas.
Nos ataques de força bruta os atacantes tentam descobrir uma palavra-passe através da tentativa sistemática de todas as combinações possíveis de caracteres. A ideia subjacente é simples: testar o maior número possível de combinações por segundo – idealmente em GPUs ou em sistemas distribuídos. Fala-se também de uma pesquisa exaustiva (pesquisa exaustiva).
Na prática, estes ataques são infelizmente muitas vezes bem-sucedidos, porque muitas palavras-passe são demasiado curtas , se limitam a poucos grupos de caracteres (apenas letras) ou constam em listas de palavras . Isso reduz drasticamente o espaço de pesquisa e torna a adivinhação mais fácil. Mais importante ainda: distingue-se entre ataques online (contra formulários de login; aqui, a limitação de tentativas e o bloqueio de contas ajudam) e ataques offline (contra hashes de palavras-passe roubados; aqui, a função de hash e a robustez da palavra-passe determinam o tempo do ataque).
Quebrar palavras-passe (offline) ≠ "desencriptar"
As palavras-passe são não são desencriptadas, mas sim armazenadas como valores de hash e depois procuradas por adivinhar + aplicar hash (brute force, ataques de dicionário/de máscara). A velocidade de processamento do hardware moderno situa-se na ordem dos milhares de milhões por segundo (para métodos de hash rápidos), razão pela qual palavras-passe com hash longas e com métodos lentos (por exemplo, Argon2, scrypt, PBKDF2, bcrypt) são decisivas.
Referência histórica e atual: O projeto RC5 da distributed.net demonstra a força bruta da pesquisa exaustiva num espaço de chaves: 56 bits foram encontrados em 1997 após 250 dias, 64 bits em 2002 após 1.757 dias. Atualmente, o estado do proxy para RC5-72 aprox. 2,38 biliões de chaves por segundo (estado: consulta efetuada hoje). Isto corresponde a brute force de chaves e não a hashing de palavras-passe – mas ilustra bem como o poder de computação distribuído escala.
Combinação e comprimento da palavra-passe
Os exemplos seguintes mostram a influência do comprimento e da seleção de caracteres. Para fins ilustrativos, considera-se 2 mil milhões de tentativas por segundo (computador individual muito potente; os valores reais variam muito consoante o hardware e – no caso offline – o 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:
Importante: A tabela mostra o tempo máximo de pesquisa. Em média, o tempo real é de cerca de metade. Além disso, ataques por dicionário, por regras e por máscara reduzem significativamente o espaço de pesquisa, enquanto métodos lentos de hashing de palavras-passe reduzem drasticamente a taxa efetiva.
| A palavra-passe é composta por | Tempo necessário (a 2 mil milhões/s) | Combinações possíveis (fórmula) |
|---|---|---|
| 5 caracteres 3 minúsculas, 2 algarismos | 0,009 segundos | (53) × 263 × 10217.576.000 |
| 7 caracteres 1 maiúscula, 6 minúsculas | ≈ 28 segundos | (71) × 261+656.222.671.232 |
| 8 caracteres 4 minúsculas, 2 caracteres especiais, 2 algarismos | ≈ 2,73 horas | (84) × (42) × 264 × 322 × 10219.653.623.808.000 |
| 9 caracteres 2 maiúsculas, 3 minúsculas, 2 algarismos, 2 caracteres especiais | ≈ 53 dias | (92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000 |
| 12 caracteres 3 maiúsculas, 4 minúsculas, 3 caracteres especiais, 2 algarismos | ≈ 115.591 anos | (123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 |
| 14 caracteres 4 maiúsculas, 4 minúsculas, 3 algarismos, 3 caracteres especiais | ≈ 455.812.388 anos | (144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 |
Conclusão: Cada carácter adicional multiplica o espaço de pesquisa. O comprimento supera 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 para o utilizadordo utilizador é uma palavra-passe mestra longa e aleatória ou uma frase-passe (p. ex., várias palavras aleatórias) – única para cada serviço. Password Depot ajuda na geração e apresenta um tempo estimado de ataque que considera, além do comprimento/conjunto de caracteres, também vulnerabilidades de dicionário.
- Ativar MFA/2FA (p. ex., aplicação TOTP ou token de hardware) – sempre que possível, as Passkeys são ainda melhores. Consulte as informações do BSI.
- Não reutilize palavras-passe. Cada conta precisa de uma palavra-passe própria e forte.
- Comprimento em vez de complexidade obrigatória. Os serviços devem permitir palavras-passe/frases-passe longas (mín. 64 caracteres) e bloquear palavras-passe comprometidas (blacklist).
- Métodos de hash lentos no servidor (p. ex., Argon2, scrypt, PBKDF2, bcrypt) com Salt e fatores de trabalho adequados; hashes rápidos como MD5/SHA-1 não são adequados para o armazenamento de palavras-passe.
- Rate-Limiting/Throttling & bloqueios: Os ataques online têm de ser travados com um número limitado de tentativas falhadas, tempos de espera progressivos e, se necessário, CAPTCHA.
Além disso, o Password Depot dificulta tentativas de rate online ao bloquear brevemente o campo de introdução da Master-Passwort após introduções incorretas – com tempo de espera crescente em caso de tentativas repetidas falhadas.
Recomendações práticas para prestadores de serviços (equipas técnicas)
- Aceite todos os caracteres imprimíveis, incluindo espaços/Unicode, e permita Copy-&-Paste.
- Implemente listas de bloqueio (palavras-passe comprometidas/comuns) e rate limiting com indicações claras para os utilizadores.
- Armazene palavras-passe exclusivamente como valores com salt e hash com KDFs lentas e verifique regularmente os fatores de trabalho.
Fontes complementares
- NIST SP 800–63B (Rev. 4), Appendix: Strength of Passwords – comprimento, passphrases, ataques offline (mil milhões de hashes/seg.) e conceito de rate limiting.
- NIST SP 800–63B (Rev. 3) – entre outros, comprimento mínimo, permitir palavras-passe longas (≥ 64), blacklists, permitir colar; Rate-Limiting/Throttling com limitação a um máximo de 100 tentativas falhadas consecutivas.
- OWASP Password Storage Cheat Sheet – métodos adequados (Argon2, scrypt, PBKDF2, bcrypt), salt/fatores de trabalho.
- OWASP Authentication Cheat Sheet – diretrizes sobre introdução de palavras-passe, comprimento, blacklists e mecanismos de bloqueio.
- BSI: Criar palavras-passe seguras – incluindo palavras-passe longas/complexas e frases-passe; dicas práticas.
- BSI – imprensa 31.01.2025 – sem alterações periódicas de palavra-passe impostas; dar preferência a 2FA/Passkeys.
- distributed.net RC5 / estado atual do proxy – exemplo ilustrativo de pesquisa exaustiva e capacidade de computação distribuída.
Criar palavras-passe seguras
Saiba como criar palavras-passe que resistem a ataques de força bruta.
Dicas para palavras-passe seguras