Zum Inhalt springen
ecdsa.com

RSA-OAEP

Die RSA-Verschlüsselung mit Optimal Asymmetric Encryption Padding (RFC 8017 §7.1), in JWE als RSA-OAEP (SHA-1) und RSA-OAEP-256 (SHA-256) zum Verpacken von Inhaltsschlüsseln genutzt; sie ersetzt die angreifbare Verschlüsselung nach PKCS #1 v1.5.
Auch geschrieben alsRSAES-OAEPRSA-OAEP-256OAEP

OAEP hasht und maskiert die Nachricht vor der Exponentiation mit einem zufälligen Seed und ist dadurch im Random-Oracle-Modell sicher gegen Chosen-Ciphertext-Angriffe; ein 2048-Bit-Schlüssel mit SHA-256 kann höchstens 190 Byte verschlüsseln, genug für jeden symmetrischen Schlüssel. In JWE nutzt RSA-OAEP SHA-1 sowohl für den Hash als auch für MGF1, was für OAEP weiterhin als sicher gilt, und RSA-OAEP-256 nutzt SHA-256; RSA1_5 (PKCS #1 v1.5) sollte wegen Padding-Oracle-Angriffen nicht verwendet werden.

Außerdem begegnet dir das Verfahren beim Schlüsseltransport in CMS, in WebCrypto (RSA-OAEP), bei der Envelope-Verschlüsselung in Cloud-KMS und in TPMs. Bibliotheken nutzen standardmäßig unterschiedliche Hashes (OpenSSL und viele APIs SHA-1, WebCrypto verlangt einen expliziten Hash), deshalb sind nicht zueinander passende OAEP-Parameter eine häufige Ursache für fehlgeschlagene Entschlüsselungen. Implementierungen dürfen nicht verraten, warum die Entschlüsselung fehlgeschlagen ist, sonst greift der Angriff von Manger.

Standards und Quellen

Alle Begriffe