Meteen naar de inhoud

Certificaten voor 47 dagen komen eraan. Ben je er klaar voor?

Handel nu →

RSA-padding uitgelegd: PKCS#1 v1.5 versus OAEP versus PSS

CBOM

Als je werkt met beveiligingssystemen, API's of cryptografische bibliotheken, ben je waarschijnlijk wel eens RSA-encryptie tegengekomen . RSA is een van de meest gebruikte cryptografische algoritmen met publieke sleutels ter wereld. Het vormt de basis voor TLS-verbindingen, digitale handtekeningen, authenticatie op basis van certificaten en veilige sleuteluitwisseling in vrijwel elke branche. Maar er is iets dat niet altijd goed wordt uitgelegd: RSA is op zichzelf niet veilig om direct te gebruiken. Het heeft padding nodig.

Padding is essentieel voor de veiligheid van RSA-encryptie en digitale handtekeningen in de praktijk. Zonder padding kunnen aanvallers voorspelbare patronen in de versleutelde gegevens misbruiken. Rash RSA is deterministisch, wat betekent dat dezelfde invoer altijd dezelfde uitvoer oplevert. Deze voorspelbaarheid creëert patronen die aanvallers al tientallen jaren weten te misbruiken. Padding doorbreekt deze voorspelbaarheid door willekeurigheid en structuur toe te voegen voordat de gegevens worden versleuteld of ondertekend.

Er zijn momenteel drie belangrijke RSA-padding-schema's in gebruik: PKCS#1 v1.5, OAEP en PSS. Elk schema is ontworpen voor een specifiek doel en heeft een heel ander beveiligingsprofiel. Het gebruik van het verkeerde schema, of een verouderd schema in een nieuw systeem, is geen klein configuratieprobleem. Het is een beveiligingslek. Deze blog legt uit hoe elk schema werkt, waar het thuishoort en wat uw organisatie nu zou moeten doen.

Wat is RSA-padding en waarom is het nodig?

Wanneer je gegevens versleutelt met behulp van raw RSA, levert hetzelfde bericht altijd dezelfde versleutelde tekst op . Die voorspelbaarheid is een ernstig probleem. Een aanvaller die versleuteld verkeer onderschept, kan patronen ontdekken en die gebruiken om dingen te weten te komen die hij niet zou mogen weten.

Padding lost dit op door structuur, willekeurigheid en integriteitscontroles aan het bericht toe te voegen vóór de versleuteling. Hierdoor is elk versleutelingsresultaat anders, zelfs als de invoer hetzelfde is. Zie padding als een beschermende laag die RSA nodig heeft voordat het veilig kan worden ingezet.

Padding is niet optioneel. Het gebruik van RSA zonder padding in een productiesysteem is een kritiek beveiligingsrisico. Er zijn drie belangrijke RSA-paddingschema's die in de praktijk worden gebruikt: PKCS#1 v1.5 , OAEP en PSS . Elk is ontwikkeld voor een specifiek doel en heeft zijn eigen beveiligingsprofiel.

PKCS#1 v1.5 begrijpen: hoe het werkt en wat de beperkingen ervan zijn.

PKCS#1 v1.5 werd geïntroduceerd in 1993 en was jarenlang het standaard RSA-paddingschema. Het is nog steeds te vinden in een groot aantal oudere systemen, TLS-implementaties en oudere bedrijfssoftware. Als u oudere infrastructuur controleert of onderhoudt, zult u er waarschijnlijk mee te maken krijgen.

Voor versleuteling formatteert PKCS#1 v1.5 het bericht voordat het wordt versleuteld. Het begint met een vaste bytevolgorde, gevolgd door willekeurige bytes die niet nul zijn, vervolgens een nulbyte en ten slotte het bericht zelf. De willekeurige bytes zorgen ervoor dat elke versleutelde tekst uniek is, en de structuur stelt de ontvanger in staat om de opvulling na decodering te vinden en te verwijderen. Voor digitale handtekeningen gebruikt het formaat een ander bytepatroon en bevat het een hash-identificatie.

Het probleem is dat onderzoeker Daniel Bleichenbacher in 1998 de zogenaamde Bleichenbacher-aanval ontdekte. Deze aanval werkt door een groot aantal zorgvuldig geconstrueerde versleutelde berichten naar een server te sturen en te wachten op een specifieke reactie: of de opvulling geldig was of niet. Door die reactie als signaal te gebruiken, kan een aanvaller uiteindelijk een bericht decoderen zonder ooit de privésleutel in handen te hebben.

Wat dit extra zorgwekkend maakt, is dat de aanval vandaag de dag nog steeds werkt. Een onderzoek uit 2017, genaamd ROBOT (Return of Bleichenbacher's Oracle Threat), toonde aan dat grote leveranciers zoals F5, Citrix en Palo Alto Networks producten hadden die bijna twintig jaar na de oorspronkelijke ontdekking nog steeds kwetsbaar waren.

Beperkingen van PKCS#1 v1.5:

  • Kwetsbaar voor Bleichenbacher padding oracle-aanvallen
  • De structuur ervan genereert foutsignalen die aanvallers kunnen misbruiken.
  • Geen formeel beveiligingsbewijs tegen moderne aanvalsmodellen.
  • Mag niet worden gebruikt in nieuwe encryptie-implementaties.

PQC Adviesdiensten

Bereik post-quantum paraatheid met een door experts geleide cryptografische beoordeling, migratiestrategie en praktische implementatie conform de NIST-normen.

OAEP uitgelegd: De moderne standaard voor RSA-encryptie

OAEP, wat staat voor Optimal Asymmetric Encryption Padding, werd geïntroduceerd in 1994 en maakt nu deel uit van PKCS#1 v2.0. Het is tegenwoordig de aanbevolen methode voor RSA-encryptie. In tegenstelling tot PKCS#1 v1.5 heeft OAEP een formeel veiligheidsbewijs, wat betekent dat de veiligheid ervan wiskundig gekoppeld is aan de moeilijkheid om RSA zelf te kraken.

OAEP werkt door een maskergeneratiefunctie (MGF) te gebruiken, gebaseerd op een cryptografische hash, meestal SHA-256, om een ​​willekeurige seed in het bericht te mengen vóór de encryptie. Dit proces is grondiger dan alleen het toevoegen van willekeurige bytes aan het begin. De willekeurigheid is diep ingebouwd in de structuur van het opgevulde blok. Met OAEP levert het wijzigen van een enkele bit in de ciphertext een volledig onvoorspelbaar resultaat op bij decryptie. Dit elimineert de gestructureerde foutsignalen waarop de Bleichenbacher-aanval is gebaseerd.

In de praktijk moet u, wanneer u een HSM configureert , een TLS-beleid instelt of een cryptografische bibliotheek controleert, nagaan of RSA-versleutelingsbewerkingen gebruikmaken van OAEP met een veilig hash-algoritme. Als PKCS#1 v1.5 nog steeds is gespecificeerd voor versleuteling in een nieuw systeem, is het belangrijk om dit direct te signaleren.

Waarom OAEP de juiste keuze is voor encryptie:

  • Bewezen veilig onder het random oracle-model.
  • Elimineert de foutkanalen die worden gebruikt bij Bleichenbacher-aanvallen.
  • Produceert elke keer een andere versleutelde tekst, zelfs voor dezelfde invoer.
  • Ondersteund in alle moderne cryptografische bibliotheken.
  • Vereist volgens de NIST-richtlijnen voor RSA-encryptie

PSS uitgelegd: Veilige opvulling voor RSA-digitale handtekeningen

PSS staat voor Probabilistic Signature Scheme en is specifiek ontworpen voor RSA-digitale handtekeningen. Het werkt samen met OAEP, maar heeft een ander doel. Waar OAEP de encryptie verzorgt, is PSS verantwoordelijk voor de ondertekening. Beide systemen delen een vergelijkbare ontwerpbenadering: de beveiliging moet formeel aantoonbaar zijn en niet zomaar worden aangenomen.

Een punt dat vaak tot verwarring leidt: PKCS#1 v1.5 werd gebruikt voor zowel encryptie als digitale handtekeningen. PSS is een specifiek schema voor digitale handtekeningen. Je zou PSS niet gebruiken voor encryptie, net zoals je OAEP niet zou gebruiken voor digitale handtekeningen. Elk schema heeft zijn eigen functie.

Bij het ondertekenen met PSS genereert het schema een willekeurige salt en hasht deze samen met de berichtdigest. Dit resultaat wordt vervolgens gecodeerd met behulp van een maskerfunctie. De verificator herstelt de salt, berekent de hash opnieuw en controleert of alles overeenkomt. Twee handtekeningen op hetzelfde bericht zullen er verschillend uitzien, maar beide zullen correct worden geverifieerd.

Het kraken van PSS is wiskundig gezien gelijk aan het kraken van RSA zelf. PKCS#1 v1.5-handtekeningen kunnen die claim niet maken. Voor organisaties die werken aan FIPS 186-5 of opereren onder SOC 2- of ISO 27001-raamwerken, is PSS het aanbevolen of verplichte schema.

Wanneer PSS te gebruiken:

  • Elke nieuwe implementatie die RSA-digitale handtekeningen vereist.
  • Code ondertekening, certificaatuitgifte en workflows voor documentintegriteit
  • Voldoet aan FIPS 186-5 of NIST SP 800-131A
  • Het vervangen van verouderde PKCS#1 v1.5-handtekeningschema's in bestaande systemen.

PKCS#1 v1.5 versus OAEP versus PSS: Belangrijkste verschillen en beste toepassingsvoorbeelden

Hieronder volgt een eenvoudige vergelijking van alle drie de regelingen.

PKCS#1 v1.5 is ontwikkeld voor zowel encryptie als digitale handtekeningen, maar brengt tegenwoordig aanzienlijke beveiligingsrisico's met zich mee. Het beveiligingsniveau is zwak volgens moderne maatstaven, het maakt minimaal gebruik van willekeurigheid en het is zeer kwetsbaar voor de Bleichenbacher-aanval. Het zou alleen moeten worden behouden in systemen waar vervanging nog niet mogelijk is, en zelfs dan moet een migratieplan worden opgesteld.

OAEP is exclusief ontwikkeld voor encryptie. Het is de moderne, veilige standaard, ondersteund door formele bewijzen en wereldwijd geaccepteerd. Het introduceert echte willekeurigheid door middel van een seed, waardoor het aanvalsoppervlak dat PKCS#1 v1.5 openliet, wordt geëlimineerd. Alle nieuwe RSA-encryptie zou OAEP moeten gebruiken.

PSS is exclusief ontwikkeld voor digitale handtekeningen. Net als OAEP maakt het gebruik van willekeurigheid door middel van een salt-waarde en heeft het een strikt beveiligingsbewijs dat direct gekoppeld is aan RSA. Het is de juiste keuze voor elke nieuwe implementatie van RSA-handtekeningen en is vereist binnen diverse belangrijke compliance-frameworks.

De conclusie is simpel: PKCS#1 v1.5 hoort niet thuis in nieuwe cryptografische ontwerpen. Gebruik OAEP voor RSA-encryptie. Gebruik PSS voor RSA-digitale handtekeningen. Dit is geen kwestie van voorkeur; het weerspiegelt het huidige cryptografische onderzoek en de regelgeving.

Voor veel organisaties die met gemengde omgevingen werken, is de grootste uitdaging niet het oplossen ervan, maar het vinden van de plekken waar deze schema's worden gebruikt. Je kunt een probleem niet aanpakken als je het niet hebt gevonden. Beoordelingen van cryptografische flexibiliteit en PKI-gezondheidscontroles zijn de meest betrouwbare manier om deze problemen aan het licht te brengen voordat ze incidenten worden.

CBOM Secure

Verkrijg volledig inzicht met continue cryptografische detectie, geautomatiseerde inventarisatie en datagestuurde PQC-correctie.

Hoe encryptieconsultancy kan helpen

Weten dat PKCS#1 v1.5 vervangen moet worden, is eenvoudig. Het vinden van alle plekken waar het in uw omgeving wordt gebruikt, is echter een heel andere uitdaging. De meeste organisaties met een gemengde infrastructuur hebben RSA-padding-schema's verspreid over cryptografische bibliotheken, API's, HSM's, TLS-configuraties en legacy-applicaties; en geen duidelijk beeld van waar elk schema zich bevindt. Dat is precies het probleem dat CBOM Secure wil oplossen.

CBOM Secure is de cryptografische detectie- en inventarisatieoplossing van Encryption Consulting. Het scant continu uw code, cloudomgevingen en HSM's om alle gebruikte cryptografische elementen te vinden, inclusief de algoritmen, padding-schema's en sleutelconfiguraties. Als PKCS#1 v1.5 ergens in uw omgeving wordt gebruikt, zal het dit vinden.

Hieronder volgt een overzicht van de onderwerpen die in deze blog aan bod komen:

Cryptografische ontdekking in code en infrastructuur: CBOM Secure identificeert het gebruik van RSA in uw omgeving en brengt de padding-schema's in kaart die aan elke implementatie zijn gekoppeld, zodat u precies weet waar OAEP en PSS verouderde configuraties moeten vervangen.

Quantum Risk Scoring: Naast het gebruik van padding-schema's, beoordeelt het uw cryptografische beveiliging op basis van kwantumrisico's, waardoor u prioriteiten kunt stellen op basis van daadwerkelijke blootstelling in plaats van giswerk.

Compliance-afstemming: CBOM Secure brengt uw cryptografische inventaris in kaart aan de hand van frameworks zoals FIPS, CMMC en PCI DSS, en brengt configuraties aan het licht die niet aan de compliance-vereisten voldoen, waaronder verouderde padding-schema's die zijn gemarkeerd onder NIST SP 800-131A.

Ondersteuning voor cryptografische flexibiliteit: Zodra u weet wat er in uw omgeving aanwezig is, biedt CBOM Secure u de inventaris die nodig is om migraties methodisch te plannen, wat precies vereist is voor het opbouwen van cryptografische flexibiliteit.

Voor organisaties die de noodzaak hebben vastgesteld om hun RSA-implementaties te auditeren en te moderniseren, is CBOM Secure het startpunt dat de rest van het werk mogelijk maakt.

Conclusie

RSA-padding-schema's lijken misschien een specialistisch onderwerp, maar ze vormen de kern van hoe publieke sleutelcryptografie in de praktijk werkt. Het correct implementeren ervan is essentieel. De keuze voor PKCS#1 v1.5 voor een nieuwe encryptie-implementatie is geen kleine fout; het opent de deur naar een type aanvallen dat al meer dan twintig jaar bekend is en actief wordt misbruikt.

De aanpak is eenvoudig: gebruik OAEP voor RSA-encryptie en PSS voor RSA-digitale handtekeningen. Controleer uw bestaande systemen op PKCS#1 v1.5. Zorg voor cryptografische flexibiliteit, zodat toekomstige migraties geen volledig nieuwe aanpak vereisen.