Tabela arco-íris
Uma tabela arco-íris é uma estrutura pré-calculada usada para procurar entradas prováveis de hashes de senha sem sal.
Definição
Uma tabela arco-íris é uma estrutura de dados pré-calculada para voltar de muitos valores hash possíveis a entradas candidatas, geralmente senhas. Em vez de aplicar hash a tentativas depois de um vazamento, o atacante prepara cadeias de hashes e reduções com antecedência e armazena informação suficiente para recuperar correspondências prováveis depois.
Tabelas arco-íris são mais úteis contra hashes rápidos e sem sal de senhas escolhidas por pessoas. Elas não são descriptografia mágica: cobrem apenas o espaço de entrada e o algoritmo usados para construir a tabela.
Como funciona
Tabelas de consulta clássicas armazenam muitos pares diretos senha-hash. Tabelas arco-íris reduzem armazenamento guardando pontos finais de cadeias: um hash é reduzido para outra entrada candidata, recebe hash novamente e o processo se repete com funções de redução variáveis. Durante o ataque, o hash alvo percorre possíveis posições da cadeia até encontrar um ponto final correspondente.
É uma troca entre tempo e armazenamento. Construir tabelas úteis pode ser caro, mas depois elas podem testar rapidamente muitos hashes sem sal compatíveis.
Defesa
Um sal aleatório único por senha torna uma tabela pré-calculada inútil em muitas contas, porque o sal muda o valor que recebe hash. Funções lentas de hash de senha como Argon2id, bcrypt e PBKDF2 aumentam ainda mais o custo de cada tentativa.
Sais não transformam senhas fracas em fortes, e hashes rápidos brutos como MD5 ou SHA-1 continuam ruins para armazenar senhas mesmo com sal. Armazene senhas com uma função dedicada e parâmetros de custo atuais.
Um sal aleatório único torna tabelas pré-calculadas para hashes sem sal ineficazes entre contas. O atacante precisaria de trabalho separado para cada sal.
Não. Força bruta calcula tentativas durante o ataque; uma tabela arco-íris desloca grande parte desse trabalho para uma fase de pré-cálculo.
Não. Elas cobrem apenas algoritmos, sais e espaço de candidatos usados para construí-las. Segredos longos aleatórios e hashes de senha lentos com sal ficam fora de tabelas práticas.