Una tabella arcobaleno è un elenco di tutte le possibili permutazioni di testo in chiaro di password crittografate specifiche per un dato algoritmo hash.
Le tabelle arcobaleno vengono spesso utilizzate dal software di cracking delle password per attacchi alla sicurezza di rete. Tutti i sistemi informatici che richiedono l'autenticazione basata su password memorizzano i database delle password associate agli account utente, in genere crittografate anziché in chiaro come misura di sicurezza.
Una volta che un utente malintenzionato ottiene l'accesso al database delle password di un sistema, il cracker di password confronta l'elenco precompilato di potenziali hash della tabella arcobaleno con le password con hash nel database. La tabella arcobaleno associa possibilità di testo in chiaro a ciascuno di questi hash, che l'attaccante può quindi sfruttare per accedere alla rete come utente autenticato.
Le tabelle arcobaleno rendono il cracking delle password molto più veloce rispetto ai metodi precedenti, come il cracking a forza bruta e gli attacchi al dizionario. A seconda del software specifico, le tabelle arcobaleno possono essere utilizzate per decifrare password alfanumeriche di 14 caratteri in circa 160 secondi. Tuttavia, l'approccio utilizza molta RAM a causa della grande quantità di dati in tale tabella.
Le tabelle arcobaleno sono diventate utilizzabili solo di recente perché la quantità di RAM disponibile nei computer più vecchi era inadeguata. Una singola tabella arcobaleno per un file alfanumerico standard è vicino a 4 gigabyte (GB). L'aggiunta di simboli alla combinazione aumenta la quantità di memoria richiesta, così come ogni passaggio nella crittografia.
Per proteggersi dagli attacchi che utilizzano le tabelle arcobaleno, gli amministratori di sistema dovrebbero aggiungere misure di sicurezza alla crittografia delle password, come l'aggiunta di caratteri generati casualmente (salt) agli hash delle password ed evitare l'uso di algoritmi di hashing delle password obsoleti.