Cryptology Academy · leksjon

PKCS#1 v1.5-padding og Bleichenbacher

Forklar adaptive angrep med valgt chiffertekst mot PKCS#1 v1.5.

Leksjon 2 av 413 trinn

PKCS#1 v1.5-padding og Bleichenbacher er en gratis leksjon i Cryptology Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cryptology Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cryptology Academy inneholder totalt 4 leksjoner.

Velkommen

PKCS#1 v1.5-padding var den dominerende RSA-paddingstandarden i 20 år. I 1998 viste Daniel Bleichenbacher at den var sårbar for et adaptivt angrep med valgt chiffertekst.

Strukturen til PKCS#1 v1.5

Format: 0x00 0x02 [tilfeldige byteverdier som ikke er null] 0x00 [melding] Prefikset 0x00 0x02 angir padding for kryptering (i motsetning til 0x00 0x01 for signering). De tilfeldige byteverdiene forhindrer determinisme og må ikke være null.

Hvorfor PKCS#1 v1.5 ble brukt

PKCS#1 v1.5 ble utformet av RSA Security i 1993, lenge før det fantes sikkerhetsbevis for IND-CCA2. Det la til tilfeldighet og struktursjekker. Standarden ble bredt tatt i bruk i SSL/TLS fra 1995 og fremover.

Bleichenbacher-angrepet

Bleichenbacher (1998): Hvis en server avslører om RSA-dekrypteringen gir gyldig PKCS#1 v1.5-padding (via en feilmelding eller tidsmåling), kan en angriper dekryptere enhver RSA-kryptert verdi med rundt 1 million forespørsler.

Definisjon av et orakel

Et «padding-orakel» er enhver sidekanal som skiller mellom «gyldig padding» og «ugyldig padding». Selv en liten tidsforskjell eller en annen feilmelding skaper et orakel som kan utnyttes.

Slik fungerer angrepet

Angriperen multipliserer målchifferteksten C med s^e mod n og sender den modifiserte C×s^e. Hvis serveren svarer «gyldig padding», ble s valgt riktig. Ved å gjenta prosessen snevres området for mulige klartekster inn helt til M er gjenopprettet.

DROWN-angrepet (2016)

DROWN utnyttet Bleichenbacher-angrepet via SSLv2. Moderne TLS-servere som delte nøkkel med en SSLv2-server, var sårbare. RSA-nøkkelutvekslinger i moderne TLS ble dekryptert ved å bruke SSLv2 som orakel. 33 % av HTTPS-serverne var berørt.

ROBOT-angrepet (2017)

ROBOT (Return Of Bleichenbacher's Oracle Threat) gjenoppdaget tidsorakler i 7 av de 10 mest populære TLS-implementasjonene, blant annet Cisco, F5 og Radware. Bleichenbacher består fordi implementasjoner er vanskelige å lage riktig.

RSA-dekryptering i konstant tid

Forsvarstiltak: Fortsett alltid dekrypteringen uavhengig av om paddingen er gyldig, og returner et identisk svar ved ugyldig padding. Bruk kode i konstant tid for å forhindre tidsforskjeller. Dette er vanskelig å implementere riktig.

Hvorfor OAEP erstattet v1.5

OAEP inneholder en trapdoor one-way-hash som beviser IND-CCA2-sikkerhet (sikkerhet mot valgt chiffertekst). Selv med et padding-orakel gjør OAEPs randomiserte struktur orakelforespørsler uinformative.

Eldre systemer bruker fortsatt v1.5

Til tross for at OAEP finnes, brukes PKCS#1 v1.5 fortsatt i eldre betalingssystemer, eldre Java-applikasjoner og enkelte PKI-implementasjoner. TLS 1.3 fjernet RSA-nøkkelutveksling fullstendig og eliminerte dermed denne angrepsflaten.

Kunnskapssjekk

Hva er et «padding-orakel» i forbindelse med Bleichenbacher-angrepet?

Oppsummering

Bleichenbacher-angrepet er en milepæl innen praktisk kryptoanalyse. Deretter studerer vi OAEP – den beviselig sikre paddingen som erstatter v1.5.
Gratis å komme i gang

Lær deg Cryptology Academy med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
67
Leksjoner
261

Ofte stilte spørsmål

Er leksjonen «PKCS#1 v1.5-padding og Bleichenbacher» gratis?

Ja – hele teksten i «PKCS#1 v1.5-padding og Bleichenbacher» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cryptology Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cryptology Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «PKCS#1 v1.5-padding og Bleichenbacher»?

Forklar adaptive angrep med valgt chiffertekst mot PKCS#1 v1.5. Du øver på Cryptology Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Cryptology Academy?

Ingen tidligere erfaring er nødvendig. Cryptology Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «PKCS#1 v1.5-padding og Bleichenbacher»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Cryptology Academy-leksjonen?

Ja. Alle Cryptology Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Lærebok-RSA og hvorfor det er usikkert
  2. PKCS#1 v1.5-padding og Bleichenbacher
  3. OAEP: optimal asymmetrisk krypteringspadding
  4. RSA-PSS for digitale signaturer
← Tilbake til Cryptology Academy