Provavelmente encontrou o termo ao lado da força bruta, numa lista de formas de quebrar palavras-passe. O que engana é o rótulo. Um ataque de dicionário quase nada tem a ver com dicionários, e perceber o que a lista contém realmente explica porque algumas palavras-passe de aspeto sólido caem em segundos.
O que o ataque faz realmente
Um ataque de dicionário adivinha palavras-passe a partir de uma lista preparada de candidatas em vez de percorrer todas as combinações de caracteres possíveis. O atacante pega num hash roubado, calcula o hash de cada candidata à vez e para quando dois coincidem.
É todo o mecanismo, e a sua força está inteiramente na ordem. Um ataque de força bruta é exaustivo e indiferente: encontrará a sua palavra-passe um dia, e contra uma palavra-passe longa, um dia significa nunca na prática. Um ataque de dicionário é seletivo. Gasta cada tentativa em algo que um ser humano poderia plausivelmente ter escolhido, portanto ou ganha depressa ou não ganha de todo.
Os dois ataques são então limitados por propriedades diferentes da sua palavra-passe. A força bruta é vencida pelo comprimento. O ataque de dicionário é vencido pela imprevisibilidade. Não são a mesma coisa, e uma palavra-passe pode ser forte contra um e indefesa perante o outro.
As listas não são dicionários
Eis a parte que fica de fora. Uma lista de ataque moderna não é construída a partir de um dicionário da língua. É construída a partir das palavras-passe que pessoas reais já usaram, colhidas em fugas anteriores.
Cada grande fuga torna-se matéria-prima. As entradas são depois ordenadas pela frequência com que cada palavra-passe apareceu em dados reais, de modo que a lista não é alfabética mas ordenada por verosimilhança, da mais comum para a mais rara. Coleções públicas montadas assim estão livremente disponíveis, e são usadas com a mesma naturalidade em testes de segurança legítimos e em ataques.
Isto tem uma consequência em que vale a pena parar. Uma palavra-passe que apareceu em qualquer fuga, em qualquer sítio, não fica enfraquecida só nesse site. Passou a integrar a lista, e está agora à cabeça da fila para qualquer ataque futuro contra quem quer que seja. É por isso que perguntar se aquela palavra-passe foi exposta é mais útil do que perguntar se parece forte.

As regras: como uma palavra se torna milhares de tentativas
As ferramentas de cracking não param nas palavras da lista. Aplicam regras de transformação, alterações aplicadas a cada entrada para gerar variantes. As comuns são exatamente as que adivinharia, e o problema é mesmo esse:
- primeira letra maiúscula
- juntar um dígito, um ano ou
123 - colar um
!no fim - substituir letras por símbolos parecidos,
apor@,epor3,spor$ - inverter a palavra, ou repeti-la
Releia essa lista a pensar num site que lhe avisa que a palavra-passe precisa de uma maiúscula, um número e um caractere especial. As regras existem por causa desse requisito. São a descrição de como as pessoas lhe respondem.
Password1! e P@ssw0rd não são espertas. São as duas primeiras regras aplicadas à palavra mais comum de todas as listas, e são tentadas nos primeiros instantes de um ataque, não no fim. Um ataque híbrido ou combinador vai um passo mais longe e junta pares de entradas, o que também põe ao alcance as palavras-passe de duas palavras.
Em linha e fora de linha são situações diferentes
A palavra ataque cobre dois cenários que não se parecem nada.
Em linha, contra um formulário de início de sessão real, o atacante adivinha através do próprio site. A limitação de tentativas, o bloqueio de contas e a deteção tornam impraticável adivinhar de forma sustentada, e por isso quem quer trabalhar em grande escala passa antes para o credential stuffing ou para o password spraying: menos tentativas, espalhadas por muitas contas, para ficar abaixo do limiar de alarme.
Fora de linha, contra uma base de hashes roubada, nenhum desses travões existe. O atacante tem os hashes no seu próprio equipamento e pode adivinhar tão depressa quanto a função de hash permitir. É esse último pormenor que decide o desfecho. Funções de hash rápidas e generalistas como MD5 ou SHA-1 sem sal testam-se a ritmos enormes em equipamento gráfico vulgar. Funções concebidas para serem deliberadamente lentas e exigentes em memória, como bcrypt, scrypt ou Argon2, afundam esse ritmo em várias ordens de grandeza e transformam um fim de semana de cracking em algo pouco rentável.
Não é você que escolhe qual delas o site adotou. Fica a saber depois, o que é o argumento para partir do pior cenário.
Como se defender a sério
A defesa não é mais complexidade. É menos previsibilidade, mais nunca reutilizar nada.
Uma palavra-passe gerada ao acaso por software não tem relação com nenhuma lista e nenhuma regra a produz, portanto o ataque simplesmente não tem nada para tentar a não ser força bruta exaustiva, onde é o comprimento que assume a proteção. É a resposta prática para quase todas as contas, e é por isso que um gestor de palavras-passe conta mais do que qualquer regra sobre símbolos.
Se quer algo que consiga escrever de memória, uma frase-passe funciona, mas com uma condição: as palavras têm de ser escolhidas ao acaso por uma máquina. Uma frase que compôs segue as formas da sua língua e os seus hábitos. Uma frase tirada de um verso de uma canção, de uma fala de um filme ou de um livro já circula tal e qual. O acaso tem de vir de fora da sua cabeça.
E a unicidade faz o resto. Se cada conta tem a sua palavra-passe, um site que guarda mal os hashes e é quebrado custa-lhe exatamente uma conta em vez de todas.
★ Audit Cure53 2024 · ✓ Plan gratuit · Cross-platform
Gere palavras-passe que nenhuma lista contém → NordPassGerador aleatório · uma palavra-passe única por site · scanner de fugas · plano gratuito→Onde se situa entre os outros ataques
- Força bruta: tenta todas as combinações, ao vivo. Vencida pelo comprimento. Ver o que é um ataque de força bruta.
- Ataque de dicionário: tenta uma lista ordenada de palavras-passe prováveis e as suas variantes por regras. Vencido pela imprevisibilidade.
- Rainbow table: pré-calcula o trabalho de hash e consulta o resultado. Vencida pelo salting. Ver o que é uma rainbow table.
- Credential stuffing: repete pares reais de utilizador e palavra-passe fugidos. Vencido pela unicidade. Ver o que é o credential stuffing.
Costumam ser descritos como quatro técnicas. Leem-se melhor como quatro apostas diferentes sobre o aspeto da sua palavra-passe, e a única forma de as fazer perder todas as quatro é ter uma palavra-passe longa, única, que nada nem ninguém previu.
★ Audit Cure53 2024 · ✓ Plan gratuit · Cross-platform
Proteja as suas contas → NordPassPalavras-passe fortes e únicas · scanner de fugas · plano gratuito→Perguntas frequentes
O que é um ataque de dicionário?
Um ataque de dicionário é um ataque de adivinhação de palavras-passe que percorre uma lista preparada de palavras-passe prováveis em vez de tentar todas as combinações de caracteres possíveis. Cada candidata é passada por hash e comparada com o alvo. É muito mais rápido do que a força bruta porque gasta o tempo em palavras-passe que as pessoas escolhem mesmo, e resulta ou falha consoante a sua palavra-passe se pareça ou não com uma que outra pessoa já tenha usado.
É o mesmo que força bruta?
Não, e a diferença é a ordem de procura. Um ataque de força bruta é exaustivo: percorre todas as combinações e acabará por acertar se lhe derem tempo suficiente. Um ataque de dicionário é seletivo: tenta uma lista escolhida e desiste quando a lista acaba. A força bruta é limitada pelo comprimento da sua palavra-passe, o ataque de dicionário pela sua previsibilidade, e por isso uma cadeia curta e aleatória pode sobreviver a um enquanto uma frase longa e memorável cai perante o outro.
De onde vêm as listas dos atacantes?
Sobretudo de fugas anteriores, não de dicionários da língua. Cada grande fuga de palavras-passe torna-se matéria-prima, e as listas resultantes são ordenadas pela frequência com que cada palavra-passe apareceu em dados reais, de modo que as candidatas mais comuns são tentadas primeiro. Existem coleções públicas construídas assim, livremente disponíveis, usadas com a mesma naturalidade em testes de segurança legítimos e em ataques. É também por isso que uma palavra-passe exposta em qualquer fuga fica queimada em todo o lado.
As regras de transformação tornam seguras as palavras-passe complexas?
Não. As ferramentas de cracking aplicam regras de transformação a cada palavra da lista: primeira letra maiúscula, juntar um dígito ou um ano, colar um ponto de exclamação, trocar letras por símbolos parecidos. Essas regras existem precisamente porque descrevem o que as pessoas fazem quando um site exige uma maiúscula, um número e um caractere especial. Uma palavra-passe criada a seguir os requisitos de complexidade costuma estar dentro do espaço de procura, não fora.
Como me protejo de um ataque de dicionário?
Torne a sua palavra-passe imprevisível em vez de complicada, e nunca a reutilize. Uma cadeia longa gerada ao acaso por um gestor de palavras-passe não tem relação com nenhuma lista, e uma palavra-passe única faz com que uma fuga num site não possa ser repetida noutro. Se prefere uma frase-passe, as palavras têm de ser escolhidas ao acaso por uma máquina, porque uma frase que compôs, ou tirada de uma canção ou de um filme, já circula.



