0Pricing
Cryptology Academy · Lezione

Padding PKCS#1 v1.5 e Bleichenbacher

Spieghi gli attacchi a testo cifrato scelto in modo adattivo contro PKCS#1 v1.5.

Padding PKCS#1 v1.5 e Bleichenbacher è 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.

Benvenuto

Il padding PKCS#1 v1.5 è stato lo standard di padding RSA dominante per 20 anni. Nel 1998, Daniel Bleichenbacher ha dimostrato che era vulnerabile a un attacco adattivo con testo cifrato scelto.

Struttura di PKCS#1 v1.5

Formato: 0x00 0x02 [random non-zero bytes] 0x00 [message] Il prefisso 0x00 0x02 indica il padding per la cifratura (rispetto a 0x00 0x01 per la firma). I byte casuali impediscono il determinismo e non devono essere zero.

Perché veniva utilizzato PKCS#1 v1.5

PKCS#1 v1.5 è stato progettato da RSA Security nel 1993, molto prima che esistessero dimostrazioni di sicurezza IND-CCA2. Ha aggiunto casualità e controlli sulla struttura. È stato ampiamente utilizzato in SSL/TLS dal 1995 in poi.

L'attacco di Bleichenbacher

Bleichenbacher (1998): se un server rivela se la decifratura RSA produce un padding PKCS#1 v1.5 valido (tramite un messaggio di errore o i tempi di risposta), un attaccante può decifrare qualsiasi valore cifrato con RSA con circa 1 milione di richieste.

Definizione di oracolo

Un "oracolo del padding" è qualsiasi canale laterale che distingua tra "padding valido" e "padding non valido". Anche una minima differenza nei tempi di risposta o un messaggio di errore diverso crea un oracolo sfruttabile.

Meccanismo dell'attacco

L'attaccante moltiplica il testo cifrato di destinazione C per s^e mod n e invia C×s^e modificato. Se il server risponde "padding valido", s è stato scelto correttamente. Ripetendo il procedimento, restringe l'intervallo dei possibili testi in chiaro finché M non viene recuperato.

Attacco DROWN (2016)

DROWN ha sfruttato Bleichenbacher tramite SSLv2. I server TLS moderni che condividevano una chiave con qualsiasi server SSLv2 erano vulnerabili. Ha decifrato gli scambi di chiavi RSA del TLS moderno utilizzando SSLv2 come oracolo. Il 33% dei server HTTPS era interessato.

Attacco ROBOT (2017)

ROBOT (Return Of Bleichenbacher's Oracle Threat) ha riscoperto oracoli temporali in 7 delle 10 implementazioni TLS più diffuse, tra cui Cisco, F5 e Radware. Bleichenbacher continua a essere una minaccia perché le implementazioni sono difficili da realizzare correttamente.

Decifratura RSA a tempo costante

Difese: procedere sempre con la decifratura indipendentemente dalla validità del padding; restituire una risposta identica in caso di padding non valido. Utilizzare codice a tempo costante per impedire differenze nei tempi di risposta. È difficile implementarlo correttamente.

Perché OAEP ha sostituito v1.5

OAEP include una funzione hash unidirezionale con botola che dimostra la sicurezza IND-CCA2 (sicurezza contro i testi cifrati scelti). Anche in presenza di un oracolo del padding, la struttura casuale di OAEP rende prive di informazioni le richieste all'oracolo.

I sistemi legacy utilizzano ancora v1.5

Nonostante l'esistenza di OAEP, PKCS#1 v1.5 sopravvive nei sistemi di pagamento legacy, nelle applicazioni Java meno recenti e in alcune implementazioni PKI. TLS 1.3 ha rimosso completamente lo scambio di chiavi RSA, eliminando questa superficie di attacco.

Verifica rapida

Che cos'è un "oracolo del padding" nel contesto dell'attacco di Bleichenbacher?

Riepilogo

L'attacco di Bleichenbacher è una pietra miliare della crittoanalisi pratica. Ora studieremo OAEP, il padding dimostrabilmente sicuro che sostituisce v1.5.

Domande Frequenti

La lezione «Padding PKCS#1 v1.5 e Bleichenbacher» è gratuita?

Sì — il testo completo di «Padding PKCS#1 v1.5 e Bleichenbacher» è 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 «Padding PKCS#1 v1.5 e Bleichenbacher»?

Spieghi gli attacchi a testo cifrato scelto in modo adattivo contro PKCS#1 v1.5. 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 «Padding PKCS#1 v1.5 e Bleichenbacher»?

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. RSA teorico e perché è insicuro
  2. Padding PKCS#1 v1.5 e Bleichenbacher
  3. OAEP: Optimal Asymmetric Encryption Padding
  4. RSA-PSS per le firme digitali
← Torna a Cryptology Academy