0Pricing
Cryptology Academy · Lezione

PBKDF2 e scelta dell'algoritmo giusto

Confronti PBKDF2 con bcrypt e Argon2 e scelga la soluzione migliore per la Sua app.

PBKDF2 e scelta dell'algoritmo giusto è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 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.

Benvenuto

In questa lezione conclusiva per principianti studieremo PBKDF2, lo confronteremo con bcrypt e Argon2 e creeremo un quadro decisionale per scegliere l'algoritmo di hashing delle password più adatto.

Panoramica di PBKDF2

PBKDF2 (Password-Based Key Derivation Function 2) è stato pubblicato nella RFC 2898 (2000). Applica iterativamente una funzione pseudocasuale (in genere HMAC-SHA256) alla password e al salt.

Formula di PBKDF2

PBKDF2(PRF, password, salt, iterations, keylen) Esempio: key = PBKDF2-HMAC-SHA256(password, salt, 600000, 32) OWASP raccomanda 600.000 iterazioni con SHA-256 dal 2023.

PBKDF2 in Python

import hashlib, os salt = os.urandom(16) key = hashlib.pbkdf2_hmac( 'sha256', password.encode(), salt, 600000, dklen=32 ) # Or using cryptography library: from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC

Punti di forza di PBKDF2

Conforme a FIPS 140-2/3. Integrato nelle librerie standard di Python, Java e .NET. Ampiamente utilizzato negli ambienti aziendali e governativi. Semplice da implementare correttamente.

Punti deboli di PBKDF2

Non è memory-hard. È adatto alle GPU: consente miliardi di iterazioni di SHA-256 al secondo. Con 600.000 iterazioni, una GPU raggiunge comunque circa 1 milione di password al secondo. bcrypt e soprattutto Argon2 sono significativamente più difficili da sottoporre a brute force.

Tabella comparativa degli algoritmi

Algoritmo | Memory-hard | FIPS | Velocità (GPU) | Raccomandazione bcrypt | No | No | 50K/s | Accettabile PBKDF2 | No | Sì | 1M/s | Ambienti regolamentati Argon2id | Sì | No | 100/s | Scelta migliore

Quadro decisionale

Utilizzi Argon2id: per le nuove applicazioni senza vincoli di conformità. Utilizzi bcrypt: quando Argon2 non è disponibile o per i sistemi legacy. Utilizzi PBKDF2-SHA256: quando è richiesta la conformità FIPS o governativa. Non utilizzi mai: MD5, SHA-1, SHA-256 senza iterazioni, qualsiasi algoritmo senza salt.

Note sulla conformità

PCI-DSS: non specifica un algoritmo, ma richiede un hashing "forte". bcrypt e Argon2 sono conformi a questo requisito. NIST SP 800-132: approva PBKDF2. Alcuni sistemi FedRAMP con requisiti stringenti impongono PBKDF2 con una PRF approvata da FIPS.

Evoluzione del numero di iterazioni

Iterazioni PBKDF2-SHA256 raccomandate da OWASP: 2010: 1000, 2016: 100000, 2023: 600000. L'hardware diventa più veloce: riveda e aumenti il valore ogni 2 anni. Costo di bcrypt: 2010: 10, 2023: 12, obiettivo 2025: 13.

Flusso sicuro per il reset della password

1. Generi un token crittograficamente casuale: secrets.token_urlsafe(32) 2. Calcoli l'hash con SHA-256 (non bcrypt: serve solo per la memorizzazione) 3. Memorizzi l'hash e invii il token tramite e-mail 4. Al reset: calcoli l'hash del token inviato, lo confronti e lo faccia scadere immediatamente dopo l'uso

Verifica rapida

In quale ambiente PBKDF2 è preferibile ad Argon2id, nonostante sia più debole contro gli attacchi tramite GPU?

Riepilogo

Ha completato il percorso di Crittologia per principianti. Ora conosce gli hash, la crittografia simmetrica e asimmetrica, le firme, la PKI e l'hashing delle password. Prossimo argomento: i temi intermedi, ovvero le modalità dei cifrari a blocchi, i cifrari a flusso e lo scambio di chiavi.

Domande Frequenti

La lezione «PBKDF2 e scelta dell'algoritmo giusto» è gratuita?

Sì — il testo completo di «PBKDF2 e scelta dell'algoritmo giusto» è 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 «PBKDF2 e scelta dell'algoritmo giusto»?

Confronti PBKDF2 con bcrypt e Argon2 e scelga la soluzione migliore per la Sua app. 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 4 di 4.

Quanto tempo richiede la lezione «PBKDF2 e scelta dell'algoritmo giusto»?

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. Perché SHA-256 semplice non è sufficiente per le password
  2. bcrypt: algoritmo e fattore di costo
  3. Argon2: hashing delle password memory-hard
  4. PBKDF2 e scelta dell'algoritmo giusto
← Torna a Cryptology Academy