Know-how / Segurança de palavras-passe

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:

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

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 porTempo 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

Criar palavras-passe seguras

Saiba como criar palavras-passe que resistem a ataques de força bruta.

Dicas para palavras-passe seguras