Aller au contenu
ecdsa.com

RSA-OAEP

Le chiffrement RSA avec le remplissage OAEP (Optimal Asymmetric Encryption Padding, RFC 8017 §7.1), utilisé dans JWE sous les noms RSA-OAEP (SHA-1) et RSA-OAEP-256 (SHA-256) pour envelopper les clés de contenu, en remplacement du chiffrement PKCS #1 v1.5, qui est attaquable.
Autres graphiesRSAES-OAEPRSA-OAEP-256OAEP

OAEP hache et masque le message avec une graine aléatoire avant l’exponentiation, ce qui assure la sécurité contre les attaques à texte chiffré choisi dans le modèle de l’oracle aléatoire ; une clé de 2048 bits avec SHA-256 peut chiffrer au plus 190 octets, ce qui suffit pour n’importe quelle clé symétrique. Dans JWE, RSA-OAEP utilise SHA-1 à la fois pour le hachage et pour MGF1, ce qui reste considéré comme sûr pour OAEP, et RSA-OAEP-256 utilise SHA-256 ; RSA1_5 (PKCS #1 v1.5) ne devrait pas être utilisé en raison des attaques par oracle de remplissage.

Vous le rencontrez aussi dans le transport de clé CMS, dans WebCrypto (RSA-OAEP), dans le chiffrement d’enveloppe des KMS cloud et dans les TPM. Les bibliothèques n’utilisent pas la même fonction de hachage par défaut (SHA-1 pour OpenSSL et de nombreuses API, tandis que WebCrypto exige un hachage explicite) : des paramètres OAEP discordants sont donc une cause fréquente d’échecs de déchiffrement. Les implémentations ne doivent pas révéler pourquoi le déchiffrement a échoué, sinon l’attaque de Manger s’applique.

Normes et références

Tous les termes