0Pricing
Cryptology Academy · Lezione

Attacchi a dizionario e rainbow table

Scopra come le tabelle di hash precalcolate accelerano il cracking delle password e come il salting le rende inefficaci.

Attacchi a dizionario e rainbow table è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Attacchi a dizionario: cracking basato su wordlist

Un attacco a dizionario non prova ogni combinazione possibile; utilizza invece un elenco selezionato di password probabili. Gli utenti reali scelgono le password da un vocabolario limitato: parole comuni, nomi, date e frasi. Testare una wordlist di un milione di password probabili è molto più rapido che testare tutte le stringhe di 8 caratteri possibili (200.000 miliardi di combinazioni). Gli attacchi a dizionario hanno successo perché le scelte degli utenti sono prevedibili.

rockyou.txt: il dataset delle password violate

Nel 2009, il social network RockYou ha subito una violazione che ha esposto in chiaro 32 milioni di password degli utenti. L'elenco risultante, oggi chiamato rockyou.txt, contiene circa 14 milioni di password uniche ed è la prima wordlist standard utilizzata nel cracking delle password. L'analisi di rockyou.txt rivela che le password più comuni sono 123456, password e varianti di nomi propri seguiti da numeri.

Attacchi ibridi: combinare dizionari e regole

Un attacco ibrido amplia una wordlist di base applicando regole di trasformazione. Una parola come password diventa Password, P@ssword, p4ssword, password1, password123 e centinaia di altre varianti. Il motore di regole di Hashcat consente di specificare esattamente quali trasformazioni applicare: rendere maiuscola la prima lettera, aggiungere due cifre, sostituire le lettere con simboli. Questo amplia enormemente la copertura senza testare stringhe realmente casuali.

Attacchi basati su regole e leet speak

Un tempo si pensava che le sostituzioni tipiche del leet speak (sostituire le lettere con numeri: e=3, a=4, i=1, o=0, s=5) migliorassero la sicurezza delle password. I cracker basati su regole includono queste sostituzioni tra le trasformazioni standard. Una password come s3cur1ty viene violata banalmente partendo dalla parola security e applicando una regola di sostituzione leet. I cracker provano anche schemi comuni: aggiungere !, 123 o l'anno corrente a qualsiasi parola del dizionario.

Tabelle arcobaleno: catene di hash precalcolate

Una tabella arcobaleno è un grande database precalcolato che associa i valori hash alle password originali. Invece di calcolare l'hash di un candidato e confrontarlo, l'attaccante cerca l'hash nella tabella. La costruzione della tabella richiede tempi e spazio di archiviazione enormi, ma ogni ricerca è istantanea. Le tabelle arcobaleno per gli hash MD5 di tutte le password alfanumeriche di 8 caratteri possono occupare pochi terabyte e violare in millisecondi qualsiasi password corrispondente.

Compromesso tempo-memoria nelle tabelle arcobaleno

Le tabelle arcobaleno applicano un compromesso tempo-memoria: si dedica tempo a calcolare la tabella una volta, poi si utilizza la memoria per rendere rapide le ricerche successive. La tabella memorizza catene di hash: ogni catena inizia con un tentativo, ne calcola l'hash, applica una funzione di riduzione per generare un altro tentativo e ripete il processo. Memorizzare solo gli estremi delle catene consente di recuperare le password dagli hash attraverso un processo di ricostruzione della catena che bilancia lo spazio di archiviazione e il calcolo.

Il salt sconfigge le tabelle arcobaleno

Un salt è un valore casuale aggiunto alla password prima dell'hashing. Poiché il salt è univoco per ogni utente, due utenti con la stessa password producono valori hash diversi. Questo impedisce all'attaccante di precalcolare una tabella arcobaleno per la password con salt; dovrebbe costruire una tabella separata per ogni possibile valore del salt, cosa computazionalmente impraticabile. L'uso del salt è obbligatorio in qualsiasi sistema sicuro di memorizzazione delle password.

MD5 senza salt: crack istantaneo

Molte delle prime applicazioni web memorizzavano le password come hash MD5 privi di salt. L'MD5 della stringa password è 5f4dcc3b5aa765d61d8327deb882cf99, un valore fisso. Chiunque abbia già visto questo hash o lo cerchi in un database precalcolato conosce immediatamente la password. Siti come CrackStation mantengono miliardi di hash MD5 e SHA-1 precalcolati. Le password comuni prive di salt vengono violate in meno di un secondo.

Have I Been Pwned

Have I Been Pwned (HIBP), creato dal ricercatore di sicurezza Troy Hunt, raccoglie gli hash delle password provenienti da importanti violazioni di dati. Gli utenti possono verificare se il proprio indirizzo email o la propria password sono comparsi in una violazione. Gli sviluppatori possono utilizzare l'API HIBP per confrontare le password candidate con 850 milioni di hash violati tramite un modello di k-anonimato: all'API vengono inviati i primi 5 caratteri esadecimali dell'hash SHA-1, che restituisce i suffissi corrispondenti senza che il server conosca l'hash completo.

Credential stuffing con elenchi di password trapelate

Gli attacchi di credential stuffing prendono coppie nome utente-password da una violazione e le provano su altri servizi. Poiché molti utenti riutilizzano le password su più siti, una violazione in un sito con scarsa sicurezza può fornire credenziali funzionanti per obiettivi di alto valore come servizi bancari e caselle email. Gli strumenti automatizzati inviano migliaia di tentativi di accesso al secondo su più servizi. La limitazione della frequenza e l'autenticazione a più fattori sono le principali difese contro il credential stuffing.

Difesa: hashing adattivo con salt

La memorizzazione sicura delle password combina il salt con una funzione hash lenta e adattiva. bcrypt, Argon2 e scrypt sono progettati per essere computazionalmente costosi e richiedono millisecondi per hash anziché microsecondi. Questo riduce la velocità dell'attaccante da miliardi di tentativi al secondo a migliaia. Il parametro di costo può essere aumentato man mano che l'hardware diventa più veloce, mantenendo costante il lavoro richiesto. Questi algoritmi sono lo standard attuale per la memorizzazione delle password.

Salting e tabelle arcobaleno

Perché aggiungere un salt casuale univoco a ogni password prima dell'hashing sconfigge gli attacchi con tabelle arcobaleno precalcolate?

Attacchi a dizionario e tabelle arcobaleno: punti chiave

Gli attacchi a dizionario testano le password probabili invece di tutte le combinazioni. rockyou.txt offre 14 milioni di esempi reali. Gli attacchi ibridi e basati su regole ampliano le wordlist con trasformazioni. Le tabelle arcobaleno consentono ricerche istantanee per gli hash privi di salt. Il salt sconfigge le tabelle arcobaleno rendendo ogni hash univoco. HIBP verifica se le password compaiono in violazioni note. Per una memorizzazione sicura sono necessarie funzioni hash adattive come bcrypt e Argon2.

Domande Frequenti

La lezione «Attacchi a dizionario e rainbow table» è gratuita?

Sì — il testo completo di «Attacchi a dizionario e rainbow table» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Attacchi a dizionario e rainbow table»?

Scopra come le tabelle di hash precalcolate accelerano il cracking delle password e come il salting le rende inefficaci. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Attacchi a dizionario e rainbow table»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Come funzionano gli attacchi brute force
  2. Attacchi a dizionario e rainbow table
  3. Perché la lunghezza della chiave crittografica è importante
  4. Rate limiting e difese tramite blocco degli account
← Torna a Cryptology Academy