Een regenboogtabel is een lijst van alle mogelijke permutaties van versleutelde wachtwoorden, specifiek voor een bepaald hash-algoritme.
Regenboogtabellen worden vaak gebruikt door wachtwoordkrakende software voor netwerkbeveiligingsaanvallen. Alle computersystemen die wachtwoord-gebaseerde authenticatie vereisen, slaan databases op met wachtwoorden voor gebruikersaccounts, meestal versleuteld in plaats van platte tekst als veiligheidsmaatregel.
Als een aanvaller eenmaal toegang heeft tot de wachtwoord-database van een systeem, vergelijkt de wachtwoord-kraker de vooraf samengestelde lijst van potentiële hashes van de rainbow table met gehashte wachtwoorden in de database. De rainbow table associeert platte tekst mogelijkheden met elk van deze hashes, die de aanvaller dan kan gebruiken om toegang tot het netwerk te krijgen als een geauthenticeerde gebruiker.
Rainbow tables maken het kraken van wachtwoorden veel sneller dan eerdere methoden, zoals brute-force kraken en woordenboek aanvallen. Afhankelijk van de software kunnen rainbow tables worden gebruikt om alfanumerieke wachtwoorden van 14 tekens in ongeveer 160 seconden te kraken.
Rainbow tables zijn pas sinds kort bruikbaar omdat de hoeveelheid beschikbare RAM in oudere computers ontoereikend was.
Een enkele rainbow table voor een standaard alfanumeriek bestand is bijna 4 gigabyte (GB). Door symbolen toe te voegen neemt de hoeveelheid benodigd geheugen toe, net als elke stap hoger in de encryptie.
Om zich tegen aanvallen met rainbow tables te beschermen, moeten systeembeheerders beveiligingsmaatregelen toevoegen aan wachtwoord encryptie, zoals het toevoegen van willekeurig gegenereerde karakters (salt) aan wachtwoord hashes en het vermijden van het gebruik van verouderde wachtwoord hashing algoritmen.