Le Rainbow Tables rappresentano uno degli strumenti più efficaci nell’arsenale degli attaccanti informatici, eppure molti responsabili IT sottovalutano ancora questa minaccia.
Si tratta di database giganteschi che contengono milioni di password con i relativi hash precalcolati, disponibili gratuitamente online su siti che danno la possibilità di cercare hash e relativa password.
Il principio di funzionamento è tanto semplice quanto devastante: invece di calcolare l’hash di ogni possibile password durante un attacco, gli aggressori utilizzano tabelle dove qualcun altro ha già fatto il grosso del lavoro. Hanno solo bisogno di confrontare l’hash rubato dal database compromesso con quelli presenti nella rainbow table per ottenere istantaneamente la password in chiaro. Niente calcoli complessi e niente tempo di attesa: basta una semplice ricerca su un sito internet.
Questo spiega perché imparare in modo semplice la crittografia e il panorama degli attacchi crittografici non è più un lusso per specialisti, ma è una competenza essenziale per chi deve proteggere la propria organizzazione[1].
Le rainbow tables sfruttano un comportamento umano prevedibile: la tendenza a scegliere password facili da ricordare.
Le combinazioni “password123!”, “admin2025$” e varianti simili compaiono praticamente in tutti i database di password compromesse. I criminali lo sanno e hanno precalcolato gli hash di milioni di queste combinazioni comuni, comprese sostituzioni e permutazioni come “p4ssw0rd” e “P4ssW0rd”, in tal modo creando un vero e proprio arsenale di armi immediatamente disponibili contro la maggior parte dei sistemi.
La situazione peggiora quando si considerano le varianti regionali. Gli attaccanti preparano rainbow tables specifiche per ogni lingua e cultura: password italiane come “ciaociao123”, “juventus2026” e “francesco123” si trovano nelle prime 10 voci della classifica annuale (purtroppo, i numeri li ho aggiunti io per pudore). E sono tutte password presenti in questi database specializzati.
Anche sostituzioni e permutazioni apparentemente creative come “p@ssw0rd” o “c1@0ci4o” sono già state incluse nelle rainbow tables: gli hackers non sono stupidi, invece spesso lo siamo noi.
Oltre alle rainbow tables, gli attaccanti utilizzano hardware specificamente progettato per sferrare attacchi a forza bruta scalabili.
Le GPU moderne, che originariamente erano state create per il gaming e il mining di criptovalute, oggi vengono utilizzate per l’AI e quindi sono sempre più diffusi quei servizi in cloud che le mettono a disposizione.
Ma si rivelano estremamente efficaci anche nel calcolare milioni di hash al secondo: cluster di GPU possono craccare in poche ore o pochi giorni una password così complessa che richiederebbe anni per essere craccata dalle CPU tradizionali.
E i servizi in cloud da usare per questo scopo stanno diminuendo di prezzo.
Questo hardware specializzato rende obsolete molte assunzioni sulla “sicurezza temporale” delle password. Una password di 8 caratteri negli anni ’90 richiedeva mesi per essere violata, mentre oggi può essere craccata in poche ore.
La corsa agli armamenti è impietosa: mentre la potenza computazionale cresce esponenzialmente, molte organizzazioni continuano a utilizzare policy di password sviluppate per minacce di vent’anni fa.
Il salting (il “sale crittografico”) rappresenta la contromisura più efficace contro le rainbow tables.
Cioè, aggiungendo un valore casuale unico a ogni password prima dell’hashing (ad esempio, la password “pippo” diventa “pippo67awm39”), anche password identiche producono hash completamente diversi.
Questo approccio rende inutili le tabelle precalcolate, perché ogni hash deve essere calcolato specificamente per quella combinazione password+salt e allunga la password, rendendola più robusta.
Tuttavia, l’implementazione del salting nasconde insidie che molti sviluppatori sottovalutano:
Il “pepper” rappresenta l’evoluzione del salting: è un valore costante di grandi dimensioni memorizzato separatamente dal database delle password, tipicamente nel codice applicativo o in file di configurazione protetti.
Anche se un attaccante compromette il database e ottiene hash e salt, non può effettuare attacchi efficaci senza il pepper.
Algoritmi moderni come PBKDF2, bcrypt e scrypt incorporano il key stretching, rendendo computazionalmente costoso ogni singolo tentativo di calcolo hash.
Invece di un singolo ciclo di hashing, questi algoritmi eseguono migliaia o decine di migliaia di iterazioni.
Per un utente legittimo che inserisce una password, il ritardo di pochi millisecondi è impercettibile. Invece, per un attaccante che deve testare milioni di combinazioni, questo ritardo diventa proibitivo ed è il deterrente per fargli spostare l’obiettivo altrove.
Le rainbow tables insegnano una lezione fondamentale sulla sicurezza informatica: gli attaccanti investono tempo e risorse per precalcolare le soluzioni ai problemi di sicurezza più comuni. Non improvvisano e non tentano approcci casuali. Studiano i pattern, identificano le debolezze ricorrenti e preparano strumenti specifici per sfruttarle sistematicamente.
La difesa efficace richiede lo stesso approccio sistematico che usano gli hacker.
Non basta dire agli utenti «dovete usare password complesse altrimenti vi licenziamo»: bisogna implementare policies più semplici da implementare e controlli tecnici che rendano inefficaci gli strumenti degli attaccanti.
Salting adeguato, pepper separati, algoritmi di key stretching, policy di lunghezza minima basate sulla realtà computazionale attuale e non su quella di vent’anni fa, ma anche passphrase e nessuna scadenza delle password.