Cryptology Academy · Lezione

Protocolli PAKE e loro proprietà

Esamini la famiglia dei protocolli Password-Authenticated Key Exchange, inclusi OPAQUE e SPAKE2.

Lezione 3 di 413 passaggi

Protocolli PAKE e loro proprietà è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 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.

Introduzione alla famiglia PAKE

Password Authenticated Key Exchange (PAKE) è una famiglia di protocolli che consente a due parti, che condividono solo una password a bassa entropia, di stabilire una chiave di sessione ad alta entropia con autenticazione reciproca. A differenza dell'autenticazione tradizionale con password, PAKE fornisce forward secrecy e resistenza agli attacchi a dizionario offline senza trasmettere la password.

PAKE bilanciato e PAKE aumentato

Il PAKE bilanciato (B-PAKE) tratta le due parti simmetricamente: sia il client sia il server possiedono lo stesso segreto (la password o una sua trasformazione simmetrica). Il PAKE aumentato (A-PAKE) è asimmetrico: il server possiede solo un verificatore pubblico derivato dalla password, rendendo la compromissione del server non catastrofica per la sicurezza del client.

Protocollo SPEKE

Simple Password Exponential Key Exchange (SPEKE) è un PAKE bilanciato in cui entrambe le parti utilizzano la password per definire un generatore di gruppo g = H(password). Lo scambio successivo è uno scambio di chiavi Diffie-Hellman che utilizza questo generatore derivato dalla password, garantendo che solo le parti che conoscono la password possano completarlo.

Protocollo J-PAKE

Password Authenticated Key Exchange by Juggling (J-PAKE), RFC 8236, utilizza prove a conoscenza zero per consentire a due parti di stabilire una chiave di sessione a partire da una password condivisa. J-PAKE è utilizzato in Thread (un protocollo di rete IoT) ed è stato implementato in OpenSSL. Non è soggetto a brevetti e fornisce le proprietà di un PAKE bilanciato.

OPAQUE: PAKE asimmetrico

OPAQUE (una bozza IETF, draft-irtf-cfrg-opaque) è un PAKE aumentato con solide proprietà di sicurezza. Durante la registrazione, il client utilizza un oblivious PRF (OPRF) per derivare una chiave dalla password senza che il server venga a conoscenza della password. Il server memorizza un contenitore cifrato che contiene la chiave privata del client.

Fase di accesso OPAQUE

Durante l'accesso OPAQUE, client e server eseguono un protocollo OPRF per ricostruire la chiave del client senza che il server venga a conoscenza della password. Il client utilizza quindi questa chiave per decifrare il contenitore e recuperare le credenziali necessarie a completare uno scambio di chiavi. Il server non vede mai la password in nessuna fase.

Resistenza alla precomputazione di OPAQUE

OPAQUE offre resistenza alla precomputazione: anche se un attaccante compromette il server e ottiene tutti i dati memorizzati, non può eseguire un attacco a dizionario offline sui valori memorizzati senza simulare una nuova interazione OPRF per ogni tentativo. Si tratta di una garanzia più forte di quella offerta da SRP.

SPAKE2 e SPAKE2+

SPAKE2 (RFC 9382) è un PAKE bilanciato semplice, basato su Diffie-Hellman con chiavi pubbliche rese cieche dalla password. SPAKE2+ è la variante aumentata, nella quale il server memorizza valori distinti per i ruoli del client e del server. Apple utilizza SPAKE2+ in HomeKit per associare i dispositivi, e il protocollo è impiegato in diversi protocolli di provisioning dei dispositivi IoT.

PAKE CPace

CPace (componente RFC 9380) è un PAKE componibile progettato da Haase e Labrique e adottato come PAKE bilanciato standard dell'IETF. CPace è progettato per essere composto con successive fasi di conferma della chiave ed è raccomandato per i nuovi protocolli che richiedono un PAKE bilanciato. È il B-PAKE selezionato dal CFRG, insieme a OPAQUE come A-PAKE.

Confronto tra le proprietà di sicurezza dei PAKE

Tutti i PAKE forniscono autenticazione e instaurazione delle chiavi. Gli A-PAKE forniscono inoltre resistenza alla compromissione del server. OPAQUE offre una resistenza alla precomputazione che va oltre la semplice resistenza alla compromissione del server. FIDO2 fornisce il vincolo all'origine che impedisce il phishing. La scelta dipende dal fatto che sia necessaria un'autenticazione basata su password o che questa possa essere sostituita con credenziali a chiave pubblica.

Considerazioni sulla distribuzione dei PAKE

I protocolli PAKE sono più complessi da implementare correttamente rispetto al semplice hashing delle password e dovrebbero essere basati su librerie sottoposte ad audit. Il CFRG dell'IETF ha standardizzato CPace (B-PAKE) e OPAQUE (A-PAKE) come scelte raccomandate per i nuovi protocolli. SRP continua a essere utilizzato nelle implementazioni esistenti, ma OPAQUE è preferibile per i nuovi progetti.

Verifica delle proprietà dei PAKE

Quale proprietà del PAKE distingue il PAKE aumentato (A-PAKE) dal PAKE bilanciato (B-PAKE)?

Riepilogo della lezione: il panorama dei protocolli PAKE

I protocolli PAKE consentono l'autenticazione reciproca basata su password e l'instaurazione delle chiavi. I B-PAKE (CPace, SPAKE2, J-PAKE) sono simmetrici. Gli A-PAKE (SRP, OPAQUE, SPAKE2+) memorizzano solo verificatori lato server. OPAQUE offre le garanzie più forti, inclusa la resistenza alla precomputazione. L'IETF ha standardizzato CPace e OPAQUE come scelte moderne raccomandate.

Gratis per iniziare

Impara Cryptology Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
67
Lezioni
261

Domande Frequenti

La lezione «Protocolli PAKE e loro proprietà» è gratuita?

Sì — il testo completo di «Protocolli PAKE e loro proprietà» è 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 «Protocolli PAKE e loro proprietà»?

Esamini la famiglia dei protocolli Password-Authenticated Key Exchange, inclusi OPAQUE e SPAKE2. 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 3 di 4.

Quanto tempo richiede la lezione «Protocolli PAKE e loro proprietà»?

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. Il problema fondamentale dell’autenticazione tramite password
  2. SRP: Secure Remote Password Protocol
  3. Protocolli PAKE e loro proprietà
  4. Autenticazione senza password: WebAuthn e FIDO2
← Torna a Cryptology Academy