Ataques de dicionário e tabelas arco-íris
Veja como tabelas de hashes pré-computadas permitem quebrar senhas rapidamente e como o uso de salt impede isso.
Ataques de dicionário e tabelas arco-íris é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.
Ataques de dicionário: quebra baseada em listas de palavras
Um ataque de dicionário não tenta todas as combinações possíveis; em vez disso, testa uma lista selecionada de senhas prováveis. Usuários reais escolhem senhas de um vocabulário limitado: palavras comuns, nomes, datas e frases. Testar uma lista de palavras com um milhão de senhas prováveis é muito mais rápido do que testar todas as sequências de 8 caracteres (200 trilhões de combinações). Os ataques de dicionário são bem-sucedidos porque as escolhas humanas de senhas são previsíveis.
rockyou.txt: o conjunto de dados de senhas vazadas
Em 2009, a rede social RockYou sofreu uma violação que expôs 32 milhões de senhas de usuários em texto simples. A lista resultante, agora chamada de rockyou.txt, contém aproximadamente 14 milhões de senhas exclusivas e é a primeira lista de palavras padrão usada na quebra de senhas. Examinar rockyou.txt revela que as senhas mais comuns são 123456, password e variações de nomes próprios seguidas de números.
Ataques híbridos: combinação de dicionários e regras
Um ataque híbrido amplia uma lista de palavras base aplicando regras de transformação. Uma palavra como password se torna Password, P@ssword, p4ssword, password1, password123 e centenas de outras variantes. O mecanismo de regras do Hashcat permite especificar exatamente quais transformações aplicar: colocar a primeira letra em maiúscula, acrescentar dois dígitos e substituir letras por símbolos. Isso amplia drasticamente a cobertura sem testar sequências verdadeiramente aleatórias.
Ataques baseados em regras e substituições de letras
Substituições que trocam letras por números (e=3, a=4, i=1, o=0, s=5) já foram consideradas uma forma de melhorar a segurança das senhas. Ferramentas de quebra baseadas em regras incluem essas substituições como transformações padrão. Uma senha como s3cur1ty é trivialmente quebrada a partir da palavra-base security com uma regra de substituição. As ferramentas de quebra também tentam padrões comuns: acrescentar !, 123 ou o ano atual a qualquer palavra do dicionário.
Tabelas arco-íris: cadeias de resumos pré-computadas
Uma tabela arco-íris é um grande banco de dados pré-computado que associa valores de resumo às senhas originais. Em vez de calcular o resumo de um candidato e compará-lo, o invasor consulta o resumo na tabela. Criar a tabela exige muito tempo e espaço de armazenamento, mas cada consulta é instantânea. Tabelas arco-íris de resumos MD5 para todas as senhas alfanuméricas de 8 caracteres podem caber em alguns terabytes e quebrar qualquer senha correspondente em milissegundos.
Compromisso entre tempo e memória nas tabelas arco-íris
As tabelas arco-íris incorporam um compromisso entre tempo e memória: gasta-se tempo para calcular a tabela uma vez e depois usa-se memória para tornar rápidas as consultas futuras. A tabela armazena cadeias de resumos: cada cadeia começa com um palpite, calcula seu resumo, aplica uma função de redução para gerar outro palpite e repete o processo. Armazenar apenas os pontos finais das cadeias permite recuperar senhas a partir de resumos por meio de um processo de reconstrução da cadeia que equilibra armazenamento e computação.
O sal derrota as tabelas arco-íris
Um sal é um valor aleatório acrescentado à senha antes do cálculo do resumo. Como o sal é exclusivo para cada usuário, dois usuários com a mesma senha produzem valores de resumo diferentes. Isso significa que um invasor não pode pré-computar uma tabela arco-íris para a senha com sal; precisaria criar uma tabela separada para cada valor de sal possível, o que é inviável do ponto de vista computacional. A aplicação de sal é obrigatória em qualquer sistema seguro de armazenamento de senhas.
MD5 sem sal: quebra instantânea
Muitos aplicativos web antigos armazenavam senhas como resumos MD5 sem sal. O MD5 da string password é 5f4dcc3b5aa765d61d8327deb882cf99, um valor fixo. Qualquer pessoa que já tenha visto esse resumo ou que o consulte em um banco de dados pré-computado sabe instantaneamente qual é a senha. Sites como CrackStation mantêm bilhões de resumos MD5 e SHA-1 pré-computados. Senhas comuns sem sal são quebradas em menos de um segundo.
Have I Been Pwned
Have I Been Pwned (HIBP), criado pelo pesquisador de segurança Troy Hunt, reúne resumos de senhas de grandes vazamentos de dados. Os usuários podem verificar se seu endereço de e-mail ou sua senha apareceu em um vazamento. Desenvolvedores podem usar a API do HIBP para verificar senhas candidatas contra 850 milhões de resumos vazados usando um modelo de k-anonimato: os primeiros 5 caracteres hexadecimais do resumo SHA-1 são enviados à API, que retorna os sufixos correspondentes sem que o servidor descubra o resumo completo.
Preenchimento de credenciais com listas de senhas vazadas
Ataques de preenchimento de credenciais usam pares de nome de usuário e senha de um vazamento e os testam contra outros serviços. Como muitos usuários reutilizam senhas em vários sites, um vazamento em um site de baixa segurança fornece credenciais válidas para alvos de alto valor, como serviços bancários e e-mail. Ferramentas automatizadas enviam milhares de tentativas de autenticação por segundo para vários serviços. A limitação de taxa e a autenticação multifator são as principais defesas contra o preenchimento de credenciais.
Defesa: resumo adaptativo com sal
O armazenamento seguro de senhas combina a aplicação de sal com uma função de resumo lenta e adaptativa. bcrypt, Argon2 e scrypt foram projetados para ter alto custo computacional, levando milissegundos por resumo em vez de microssegundos. Isso limita a taxa de processamento do invasor de bilhões de tentativas por segundo para milhares. O parâmetro de custo pode ser aumentado à medida que o hardware fica mais rápido, mantendo constante o requisito de esforço. Esses algoritmos são o padrão atual para armazenamento de senhas.
Uso de sal versus tabelas arco-íris
Por que adicionar um sal aleatório exclusivo a cada senha antes de calcular o resumo impede ataques de tabelas arco-íris pré-computadas?
Ataques de dicionário e tabelas arco-íris: principais conclusões
Os ataques de dicionário testam senhas prováveis em vez de todas as combinações. rockyou.txt fornece 14 milhões de exemplos do mundo real. Ataques híbridos e baseados em regras ampliam as listas de palavras com transformações. As tabelas arco-íris permitem consultas instantâneas para resumos sem sal. A aplicação de sal derrota as tabelas arco-íris ao tornar cada resumo único. O HIBP verifica se as senhas aparecem em vazamentos conhecidos. Funções de resumo adaptativas como bcrypt e Argon2 são necessárias para o armazenamento seguro.
Perguntas Frequentes
A aula “Ataques de dicionário e tabelas arco-íris” é grátis?
Sim — o texto completo de “Ataques de dicionário e tabelas arco-íris” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.
O que vou aprender em “Ataques de dicionário e tabelas arco-íris”?
Veja como tabelas de hashes pré-computadas permitem quebrar senhas rapidamente e como o uso de salt impede isso. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cryptology Academy?
Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Ataques de dicionário e tabelas arco-íris”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cryptology Academy?
Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Como funcionam os ataques de força bruta
- Ataques de dicionário e tabelas arco-íris
- Por que o tamanho da chave criptográfica importa
- Limitação de taxa e defesas contra bloqueio de contas