Uma tabela arco-íris é uma lista de todas as possíveis permutações de senhas criptografadas específicas para um determinado algoritmo de hash.
As tabelas arco-íris são frequentemente usadas por software de cracking de senhas para ataques de segurança de rede. Todos os sistemas de computador que requerem autenticação baseada em senhas armazenam bancos de dados de senhas associados a contas de usuários, tipicamente criptografados em vez de texto puro como medida de segurança.
Após um atacante obter acesso ao banco de dados de senhas de um sistema, o cracker de senhas compara a lista pré-compilada da tabela arco-íris de hashes potenciais para hashed senhas no banco de dados. A tabela arco-íris associa possibilidades de texto simples com cada um desses hashes, que o atacante pode então explorar para acessar a rede como um usuário autenticado.
As tabelas arco-íris fazem o cracking de senhas muito mais rápido do que os métodos anteriores, tais como cracking de força bruta e ataques de dicionário. Dependendo do software em particular, tabelas arco-íris podem ser usadas para craquear senhas alfanuméricas de 14 caracteres em cerca de 160 segundos. No entanto, a abordagem usa muita memória RAM devido à grande quantidade de dados em tal tabela.
As tabelas arco-íris só se tornaram viáveis recentemente porque a quantidade de memória RAM disponível em computadores mais antigos era inadequada. Uma única tabela arco-íris para um arquivo alfanumérico padrão é próxima de 4 gigabytes (GB). A adição de símbolos à mistura aumenta a quantidade de memória necessária, assim como cada passo acima na criptografia.
Para proteger contra ataques usando tabelas arco-íris, os administradores do sistema devem adicionar medidas de segurança à criptografia de senhas, como a adição de caracteres (sal) gerados aleatoriamente aos hashes de senhas e evitar o uso de algoritmos de hashing de senhas desatualizados.