Tutti gli articoli

PBKDF2: lo standard più vecchio per lo stretching delle chiavi

In Italia, come nel resto dell'Unione Europea, il GDPR impone di adottare "misure tecniche e organizzative adeguate" per proteggere i dati personali, incluse le password, senza indicare un algoritmo specifico. Il Garante per la protezione dei dati personali fa riferimento a standard tecnici riconosciuti, e funzioni di derivazione della chiave come PBKDF2 sono uno dei modi concreti in cui le aziende italiane soddisfano questo requisito generico.

Il principio dello stretching della chiave

Invece di hashare una password una sola volta, PBKDF2 applica una funzione hash di base (di solito HMAC-SHA256) molte migliaia di volte di seguito, usando il risultato di ogni iterazione come input per la successiva. Questo rallenta deliberatamente il calcolo di un singolo hash, rendendo la forza bruta massiva molto più costosa per un attaccante.

PBKDF2 nel Wi-Fi: WPA2

Uno degli usi più diffusi di PBKDF2 al mondo è la derivazione della chiave di cifratura Wi-Fi dalla password della rete nello standard WPA2-PSK: la password della rete passa attraverso PBKDF2-HMAC-SHA1 con 4096 iterazioni, usando il nome della rete (SSID) come sale, generando una chiave a 256 bit. Questo spiega perché una password Wi-Fi corta sia così vulnerabile a un attacco a forza bruta offline dopo aver catturato un singolo "handshake".

Perché questo strumento richiede HTTPS

Questo strumento calcola PBKDF2 usando la Web Crypto API nativa del browser invece di un'implementazione JavaScript scritta a mano. I browser espongono crypto.subtle solo in un "contesto sicuro" — HTTPS, o localhost durante lo sviluppo — quindi senza una connessione cifrata, questo e ogni altro strumento crittografico del sito semplicemente non funziona, indipendentemente dalla potenza del dispositivo.

A cosa serve

  • Derivare chiavi crittografiche dalle password per la cifratura (ad esempio in WPA2/WPA3 per il Wi-Fi).
  • Mantenere la compatibilità con sistemi legacy che usano PBKDF2 per la memorizzazione delle password.
  • Capire perché il numero di iterazioni raccomandato continua a crescere nelle nuove versioni degli standard.

La scelta della funzione hash di base è importante

Le vecchie implementazioni di PBKDF2 spesso usavano HMAC-SHA1 come impostazione predefinita — SHA-1 stesso è considerato crittograficamente indebolito per l'hashing diretto, ma nella costruzione HMAC questa debolezza non è una vulnerabilità critica. Tuttavia le raccomandazioni moderne consigliano nettamente HMAC-SHA256 o HMAC-SHA512 — non per una minaccia diretta da SHA-1, ma perché un output più lungo e una funzione più moderna offrono un margine di sicurezza maggiore senza una perdita di velocità significativa.

Prova lo strumento