Una Rainbow Table era una risorsa utilizzata per violare le funzioni di hash crittografiche al fine di scoprire le password in chiaro utilizzando un database di autenticazione precalcolato . Le soluzioni Rainbow Table utilizzavano un algoritmo per cercare rapidamente le informazioni necessarie a decifrare gli hash delle password. Sebbene i moderni algoritmi di hashing e di salting delle password abbiano in gran parte reso obsolete le Rainbow Table, esistono ancora molte applicazioni che non utilizzano questi strumenti facilmente disponibili e si affidano invece a singole password con hash per pigrizia o disattenzione a dettagli importanti.
L'idea di utilizzare tabelle rainbow o altri metodi di hash cracking deriva dall'uso di hash delle password nei database di autenticazione. Qualsiasi sistema che utilizzi password per l'autenticazione deve memorizzarle in un formato o nell'altro. Il caso peggiore è che lo sviluppatore dell'applicazione memorizzi le password in chiaro, rendendole estremamente vulnerabili ad accessi non autorizzati da parte di hacker o persino degli amministratori di sistema interni. Sebbene questa pratica poco pratica sia nota da decenni, è ancora comune nelle applicazioni online.
Una cosa leggermente ma probabilmente inutile che alcuni programmatori fanno è eseguire un singolo calcolo hash della password. Esistono algoritmi di hashing comuni che convertono le password in quelle che possono sembrare stringhe di caratteri casuali, ma che in realtà sono molto semplici da sottoporre a reverse engineering con una tabella rainbow. Quando ci si autentica in un sistema, la password inserita viene sottoposta a hashing utilizzando lo stesso algoritmo utilizzato per memorizzare la password nel database delle password. Se gli hash corrispondono, l'autenticazione è avvenuta correttamente. È qui che entra in gioco la tabella rainbow.
Una tabella rainbow memorizza tutti gli hash unidirezionali delle password in chiaro, da 1 a 7 o forse 8 caratteri. (Una tabella rainbow di 8 caratteri per un semplice algoritmo di hashing occuperebbe fino a 32 petabyte di spazio di database!). Quando un hacker ruba una cache di hash di password semplici, può cercare il valore hash nella tabella rainbow per trovare la password in chiaro.
Con l'avvento del salting delle password fino a 32 caratteri, le tabelle arcobaleno non esistono più per eseguire tali ricerche (Fonte: Rainbow Tables are Dead ). Ancora più importante, molti binari standard eseguono l'hashing iterativo delle password. In questo caso, una password con salt viene sottoposta a hashing ripetutamente, per un numero prestabilito di volte, e il valore hash finale, ad esempio il 764° hash della password con salt originale, viene memorizzato nel database per un successivo confronto durante l'autenticazione all'applicazione. Le tabelle arcobaleno non sono in grado di decifrare queste password.
Quando gli hacker rubano una cache di password, possono determinare rapidamente se le password sono state sottoposte a salting e hashing N volte, utilizzando una tabella rainbow per cercare le prime 100 password. Se trovano una corrispondenza, possono procedere a ritroso per determinare se i programmatori sono stati pigri e non hanno applicato salting alle password o hash iterativamente, o entrambe le cose. Troppo spesso, gli sviluppatori hanno saltato questi passaggi importanti, quindi gli hacker ora riescono a ottenere le vostre password sottoponendole a reverse engineering su una semplice tabella rainbow.
Le tabelle rainbow sono un metodo rapido ed efficace per decifrare password non salate e con hash singolo. Se sviluppate un'applicazione per la vostra PMI, assicuratevi di chiedere come vengono memorizzate le password. Chiedete allo sviluppatore quanto è grande il suo SALT (8 è piccolo, 32 caratteri sono sufficienti) e poi chiedete quante iterazioni esegue sulle password prima di memorizzare il valore hash. LastPass esegue l'hashing delle password oltre 100,000 volte sulla Master Password. Questo potrebbe essere eccessivo per la vostra organizzazione, ma dovrebbero essere necessarie da qualche centinaio a qualche migliaio.
Tra le funzioni di salting e hashing più comuni si annoverano: " Argon2 , scrypt , bcrypt e PBKDF2 ".
Qualunque cosa tu faccia, considera questo come un requisito fondamentale nello sviluppo della tua applicazione. Se non puoi integrare l'SSO nel tuo schema di password e devi memorizzare gli hash delle password, allora devi eseguire il salting e l'hashing iterativo del tuo database di password utilizzando gli strumenti menzionati in questo articolo.
Fonti:
Letture aggiuntive:
Come proteggere il tuo sito web dalle violazioni dei dati
Crittografia, hashing e salting: qual è la differenza?
Termini correlati:
Scopri e condividi le ultime tendenze, i suggerimenti e le best practice in materia di sicurezza informatica, oltre alle nuove minacce a cui prestare attenzione.
Autrice: Katie Boquetti | Editoriale: Craig Taylor Editoriale di Craig Taylor: Lo sappiamo da un po' qui...
Leggi di più
Autrice: Katie Boquetti | Editoriale: Craig Taylor Editoriale di Craig Taylor: Un CAPTCHA dovrebbe verificare se...
Leggi di piùOttieni una visione più attenta dei rischi per l'uomo, con un approccio positivo che supera i tradizionali test di phishing.
