Cryptology Academy · Les

PKCS#1 v1.5-padding en Bleichenbacher

Leg adaptieve chosen-ciphertextaanvallen op PKCS#1 v1.5 uit.

Les 2 van 413 stappen

PKCS#1 v1.5-padding en Bleichenbacher is een gratis Cryptology Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.

Welkom

PKCS#1 v1.5-padding was 20 jaar lang de dominante RSA-paddingstandaard. In 1998 toonde Daniel Bleichenbacher aan dat deze kwetsbaar was voor een adaptieve aanval met gekozen cijfertekst.

Structuur van PKCS#1 v1.5

Indeling: 0x00 0x02 [willekeurige bytes ongelijk aan nul] 0x00 [bericht] Het voorvoegsel 0x00 0x02 geeft padding voor versleuteling aan (tegenover 0x00 0x01 voor ondertekening). Willekeurige bytes voorkomen determinisme en mogen niet nul zijn.

Waarom PKCS#1 v1.5 werd gebruikt

PKCS#1 v1.5 werd in 1993 ontworpen door RSA Security, lang voordat er beveiligingsbewijzen voor IND-CCA2 bestonden. Het voegde willekeur en structuurcontroles toe. Vanaf 1995 werd het op grote schaal ingezet in SSL/TLS.

De aanval van Bleichenbacher

Bleichenbacher (1998): als een server onthult of RSA-ontsleuteling geldige PKCS#1 v1.5-padding oplevert (via een foutmelding of tijdmeting), kan een aanvaller elke met RSA versleutelde waarde ontsleutelen met ongeveer 1 miljoen verzoeken.

Definitie van een orakel

Een 'padding-orakel' is elk zijkanaal dat onderscheid maakt tussen 'geldige padding' en 'ongeldige padding'. Zelfs een klein tijdsverschil of een andere foutmelding creëert een uit te buiten orakel.

De werking van de aanval

De aanvaller vermenigvuldigt het doelcijferbericht C met s^e mod n en verstuurt het gewijzigde C×s^e. Als de server reageert met 'geldige padding', is s juist gekozen. Door dit te herhalen wordt het mogelijke bereik van de plaintext steeds kleiner, totdat M is teruggevonden.

DROWN-aanval (2016)

DROWN misbruikte Bleichenbacher via SSLv2. Moderne TLS-servers die een sleutel deelden met een SSLv2-server waren kwetsbaar. RSA-sleuteluitwisselingen van moderne TLS-verbindingen werden ontsleuteld met SSLv2 als orakel. 33% van de HTTPS-servers was getroffen.

ROBOT-aanval (2017)

ROBOT (Return Of Bleichenbacher's Oracle Threat) herontdekte timingorakels in 7 van de 10 populairste TLS-implementaties, waaronder Cisco, F5 en Radware. Bleichenbacher blijft bestaan omdat implementaties moeilijk correct te maken zijn.

RSA-ontsleuteling met constante uitvoeringstijd

Verdedigingsmaatregelen: ga altijd door met ontsleutelen, ongeacht of de padding geldig is; geef bij ongeldige padding een identieke reactie terug. Gebruik code met constante uitvoeringstijd om tijdsverschillen te voorkomen. Dit is moeilijk correct te implementeren.

Waarom OAEP v1.5 verving

OAEP bevat een eenrichtingshash met geheime achterdeur die de IND-CCA2-beveiliging bewijst (beveiliging tegen gekozen cijferteksten). Zelfs met een padding-orakel maakt de willekeurige structuur van OAEP orakelbevragingen oninformatief.

Oudere systemen gebruiken nog steeds v1.5

Ondanks het bestaan van OAEP blijft PKCS#1 v1.5 bestaan in oudere betalingssystemen, oudere Java-apps en bepaalde PKI-implementaties. TLS 1.3 heeft RSA-sleuteluitwisseling volledig verwijderd en daarmee dit aanvalsoppervlak geëlimineerd.

Snelle controle

Wat is een 'padding-orakel' in de context van de aanval van Bleichenbacher?

Samenvatting

De aanval van Bleichenbacher is een mijlpaal in praktische cryptanalyse. Vervolgens bestuderen we OAEP — de aantoonbaar veilige padding die v1.5 vervangt.
Gratis beginnen

Leer Cryptology Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
67
Lessen
261

Veelgestelde vragen

Is de les “PKCS#1 v1.5-padding en Bleichenbacher” gratis?

Ja — de volledige tekst van “PKCS#1 v1.5-padding en Bleichenbacher” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wat leer ik in “PKCS#1 v1.5-padding en Bleichenbacher”?

Leg adaptieve chosen-ciphertextaanvallen op PKCS#1 v1.5 uit. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cryptology Academy te beginnen?

Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “PKCS#1 v1.5-padding en Bleichenbacher”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?

Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. RSA uit het boek en waarom het onveilig is
  2. PKCS#1 v1.5-padding en Bleichenbacher
  3. OAEP: Optimal Asymmetric Encryption Padding
  4. RSA-PSS voor digitale handtekeningen
← Terug naar Cryptology Academy