0Pricing
Cyber Security Academy · Lezione

Hashing delle password: bcrypt, Argon2, PBKDF2

Impari perché archiviare le password in chiaro è pericoloso e come l’hashing con salt le protegge.

Hashing delle password: bcrypt, Argon2, PBKDF2 è una lezione Cyber Security 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 Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

Perché non memorizzare le password in chiaro

Memorizzare le password in chiaro è catastrofico: una singola violazione del database espone tutti gli account. Le password devono essere elaborate con una funzione unidirezionale prima della memorizzazione, in modo che nemmeno l'accesso al database riveli la password originale.

Che cos'è l'hashing

Una funzione hash converte un input di qualsiasi lunghezza in un output di lunghezza fissa. Lo stesso input produce sempre lo stesso output, ma non è possibile recuperare l'originale dall'hash. Esempi: SHA-256, bcrypt, Argon2.

Perché non usare SHA-256 per le password

Le funzioni hash generiche come SHA-256 sono progettate per essere veloci. Un attaccante può calcolare miliardi di hash SHA-256 al secondo usando una GPU, rendendo praticabile il cracking tramite forza bruta.

Il password hashing richiede funzioni lente e costose.

Salting

Un salt è un valore casuale aggiunto a ogni password prima dell'hashing. Fa sì che due utenti con la stessa password abbiano hash diversi, impedendo gli attacchi con rainbow table e gli attacchi di cracking in batch. Il salt viene memorizzato insieme all'hash (non è segreto).

# Conceptual salt example
hash = bcrypt("password" + random_salt)

bcrypt

bcrypt è stato progettato nel 1999 specificamente per l'hashing delle password. Dispone di un fattore di costo configurabile che controlla la lentezza dell'hashing. Con il miglioramento dell'hardware, aumentate il fattore di costo per mantenere la sicurezza.

Oggi è comune un fattore di costo pari a 12: il calcolo dell'hash richiede circa 250 ms su una CPU moderna.

PBKDF2

PBKDF2 (Password-Based Key Derivation Function 2) applica molte volte una funzione hash (ad esempio HMAC-SHA256) tramite iterazioni. Più iterazioni = maggiore lentezza = maggiore sicurezza. È raccomandato da NIST e usato da WPA2 per le password Wi-Fi.

Argon2

Argon2 ha vinto la Password Hashing Competition nel 2015. È lo standard moderno. È configurabile in base a:

  • Costo temporale — numero di iterazioni
  • Costo in memoria — RAM richiesta (limita l'accelerazione tramite GPU)
  • Parallelismo — numero di thread

Usate Argon2id per la maggior parte delle applicazioni.

Rainbow table

Una rainbow table è una tabella di ricerca precalcolata da hash a testo in chiaro. Senza salting, un attaccante che possiede l'hash può cercarlo istantaneamente nella tabella. Il salting rende inutilizzabili le rainbow table perché ogni hash è univoco.

Tecniche di cracking delle password

Approcci comuni per il cracking offline:

  • Attacco a dizionario — prova le password comuni e le relative varianti
  • Forza bruta — prova tutte le combinazioni di caratteri
  • Basato su regole — applica regole di mutazione al dizionario (aggiungere l'anno, usare le maiuscole, leet speak)
  • Strumenti: Hashcat, John the Ripper

Scegliere l'algoritmo giusto

Ordine di preferenza per le nuove applicazioni:

  1. Argon2id — migliore resistenza al cracking tramite GPU/ASIC
  2. bcrypt — ampiamente supportato e con una comprovata affidabilità
  3. PBKDF2 — approvato da NIST e richiesto in alcuni contesti di conformità

Non usate mai: MD5, SHA-1 o SHA-256 senza salt per le password.

Processo di verifica

Quando un utente effettua l'accesso:

  1. Recuperi l'hash e il salt memorizzati per l'utente
  2. Calcoli l'hash della password inviata usando lo stesso salt e algoritmo
  3. Confronti l'hash risultante con quello memorizzato (confronto a tempo costante)
  4. Non decifri mai: esegua solo il confronto

Verifica rapida: hashing delle password

Quale algoritmo di hashing delle password è considerato la best practice attuale e ha vinto la Password Hashing Competition?

Riepilogo della lezione

Le password devono essere memorizzate come hash, non in testo in chiaro. Gli algoritmi veloci come SHA-256 non sono adatti: utilizzi funzioni di hashing delle password lente, come Argon2id (preferito), bcrypt o PBKDF2. Utilizzi sempre un salt casuale per ogni password, per prevenire gli attacchi tramite rainbow table. Non implementi mai autonomamente la crittografia: utilizzi librerie collaudate.

Domande Frequenti

La lezione «Hashing delle password: bcrypt, Argon2, PBKDF2» è gratuita?

Sì — il testo completo di «Hashing delle password: bcrypt, Argon2, PBKDF2» è 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 Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Hashing delle password: bcrypt, Argon2, PBKDF2»?

Impari perché archiviare le password in chiaro è pericoloso e come l’hashing con salt le protegge. Eserciti Cyber Security 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 Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security 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 «Hashing delle password: bcrypt, Argon2, PBKDF2»?

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 Cyber Security Academy?

Sì. Ogni lezione Cyber Security 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. Robustezza e criteri delle password
  2. Hashing delle password: bcrypt, Argon2, PBKDF2
  3. Autenticazione a più fattori
  4. Credential stuffing e password spraying
← Torna a Cyber Security Academy