Como funcionam os ataques de força bruta
Por que o comprimento importa: exemplos de cálculo e contramedidas.
Em ataques de força bruta os invasores tentam adivinhar uma senha por meio de testes sistemáticos de todas as combinações possíveis de caracteres. A ideia por trás disso é simples: testar o maior número possível de combinações por segundo – de preferência em GPUs ou em sistemas distribuídos. Isso também é chamado de busca exaustiva (busca exaustiva).
Na prática, esses ataques infelizmente costumam ser bem-sucedidos porque muitas senhas são muito curtas , se limitam a poucos grupos de caracteres (apenas letras) ou aparecem em listas de palavras . Isso reduz drasticamente o espaço de busca e facilita a adivinhação. Mais importante ainda: distingue-se entre ataques online (contra formulários de login; nesse caso, limitação de taxa/bloqueios de conta ajudam) e ataques offline (contra hashes de senha roubados; nesse caso, a função de hash e a força da senha determinam o tempo do ataque).
Quebrar senhas (offline) ≠ “descriptografar”
As senhas não são descriptografadas, mas armazenadas como valores de hash e depois procuradas com tentativa + hash (força bruta, ataques de dicionário/máscara). A velocidade de processamento do hardware moderno está na faixa de bilhões por segundo (para algoritmos de hash rápidos), razão pela qual senhas com muitas e com algoritmos lentos (por exemplo, Argon2, scrypt, PBKDF2, bcrypt) são decisivas quando armazenadas como hash.
Referência histórica e atual: O projeto RC5 da distributed.net demonstra a força bruta da busca exaustiva em um 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 status do proxy para RC5-72 aprox. 2,38 trilhões de chaves por segundo (status: consultado hoje). Isso se refere a força bruta de chaves e não a hash de senhas – mas ilustra como a capacidade computacional distribuída escala.
Combinação e comprimento da senha
Os exemplos a seguir mostram o impacto do(a) comprimento e da seleção de caracteres. Para fins de ilustração, considera-se 2 bilhões de tentativas por segundo (computador individual muito potente; os valores reais variam bastante conforme 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 é calculado por:
Importante: A tabela mostra o tempo máximo de busca. Em média, o tempo real fica em cerca da metade. Além disso, ataques de dicionário, por regras e por máscara reduzem significativamente o espaço de busca, enquanto métodos lentos de hash de senha reduzem drasticamente a taxa efetiva.
| Passwort besteht aus | Mögliche Kombinationen (Formel) | Benötigte Zeit (bei 2 Mrd./s) |
|---|---|---|
| 5 Zeichen 3 Kleinbuchstaben, 2 Zahlen | (53) × 263 × 10217.576.000 | 0,009 Sekunden |
| 7 Zeichen 1 Großbuchstabe, 6 Kleinbuchstaben | (71) × 261+656.222.671.232 | ≈ 28 Sekunden |
| 8 Zeichen 4 Kleinbuchstaben, 2 Sonderzeichen, 2 Zahlen | (84) × (42) × 264 × 322 × 10219.653.623.808.000 | ≈ 2,73 Stunden |
| 9 Zeichen 2 Groß-, 3 Kleinbuchstaben, 2 Zahlen, 2 Sonderzeichen | (92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000 | ≈ 53 Tage |
| 12 Zeichen 3 Groß-, 4 Kleinbuchstaben, 3 Sonderzeichen, 2 Zahlen | (123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 | ≈ 115.591 Jahre |
| 14 Zeichen 4 Groß-, 4 Kleinbuchstaben, 3 Zahlen, 3 Sonderzeichen | (144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 | ≈ 455.812.388 Jahre |
Conclusão: Cada caractere adicional multiplica o espaço de busca. O comprimento supera as regras de complexidade – especialmente contra Ataques offline – desde que os serviços utilizem algoritmos de hash adequados e lentos com salt.
Proteção contra ataques de força bruta
A medida mais eficaz para o usuário é uma senha mestra longa e aleatória ou uma frase-senha (por exemplo, várias palavras aleatórias) – exclusiva para cada serviço. Password Depot ajuda na geração e exibe um tempo estimado de ataque que considera, além do comprimento/conjunto de caracteres, também vulnerabilidades de dicionário.
- Ative MFA/2FA (por exemplo, app TOTP ou token de hardware) – sempre que possível, as Passkeys são ainda melhores. Veja as orientações do BSI.
- Não reutilize senhas. Cada conta precisa de uma senha forte e exclusiva.
- Prefira comprimento à complexidade obrigatória. Os serviços devem permitir senhas/frases-senha longas (mín. 64 caracteres) e bloquear senhas comprometidas (blacklist).
- Algoritmos 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 não são adequados para armazenamento de senhas.
- Rate limiting/throttling & bloqueios: ataques online devem ser contidos por meio de tentativas limitadas de erro, tempos de espera progressivos e, se necessário, CAPTCHA.
Além disso, Password Depot dificulta tentativas de rate online ao bloquear brevemente o campo de entrada da senha mestra após inserções incorretas – com tempo de espera crescente em caso de tentativas repetidas sem sucesso.
Orientações práticas para prestadores de serviços (equipes técnicas)
- Aceite todos os caracteres imprimíveis, incluindo espaços/Unicode, e permita copiar e colar.
- Implemente listas de bloqueio (senhas comprometidas/comuns) e rate limiting com orientações claras para os usuários.
- Armazene senhas exclusivamente como valores com salt e hash com KDFs lentas e verifique os fatores de custo regularmente.
Fontes complementares
- NIST SP 800–63B (Rev. 4), Appendix: Strength of Passwords – comprimento, passphrases, ataques offline (bilhões de hashes/seg.) e conceito de rate limiting.
- NIST SP 800–63B (Rev. 3) – entre outros: comprimento mínimo, permitir senhas longas (≥ 64), blacklists, permitir colar; Rate Limiting/Throttling com limitação a no máximo 100 tentativas consecutivas sem sucesso.
- OWASP Password Storage Cheat Sheet – métodos adequados (Argon2, scrypt, PBKDF2, bcrypt), salt/fatores de custo.
- OWASP Authentication Cheat Sheet – diretrizes sobre entrada de senha, comprimento, blacklists e mecanismos de bloqueio.
- BSI: como criar senhas seguras – incluindo senhas longas/complexas e frases-senha; dicas práticas.
- BSI – imprensa 31.01.2025 – sem trocas periódicas de senha impostas; dar preferência a 2FA/Passkeys.
- distributed.net RC5 / status atual do proxy – exemplo ilustrativo de busca exaustiva e poder computacional distribuído.
Como criar senhas seguras
Saiba como criar senhas que resistem a ataques de força bruta.
Dicas para senhas seguras