Aller au contenu

Bleichenbacher Attack on RSA Encryption

Attaque de Bleichenbacher sur le chiffrement RSA

Description

L'Attaque de Bleichenbacher est une attaque cryptographique sophistiquée ciblant le schéma de chiffrement RSA, en exploitant spécifiquement la méthode de padding RSA PKCS #1 v1.5. Cette attaque tire parti des vulnérabilités des systèmes qui fournissent un retour sur la validité du padding utilisé lors du processus de déchiffrement.

Comment ça fonctionne :

L'attaque utilise un padding oracle (oracle de padding), qui révèle si le padding d'un message chiffré par RSA est correct. En envoyant des textes chiffrés manipulés à l'oracle et en analysant les réponses, un attaquant peut récupérer le message en clair sans avoir besoin d'accéder à la clé privée. Ce processus implique généralement les étapes suivantes :

  1. Crafting Ciphertext : L'attaquant génère une série de textes chiffrés modifiés basés sur le texte chiffré cible.
  2. Querying the Oracle : Chaque texte chiffré modifié est envoyé à l'application, qui retourne si le déchiffrement est valide (c'est-à-dire si le padding est correct).
  3. Inferring Plaintext : En modifiant systématiquement le texte chiffré et en observant les réponses de l'oracle, l'attaquant peut déduire le texte en clair original.

Risques de ne pas corriger l'attaque de Bleichenbacher :

  1. Confidentiality Compromise : Les attaquants peuvent déchiffrer des informations sensibles, exposant ainsi des données confidentielles telles que des informations personnelles et financières.
  2. Data Integrity Issues : Un attaquant peut manipuler le texte chiffré, entraînant des modifications non autorisées des données.
  3. Regulatory Compliance Violations : Ne pas se prémunir contre cette attaque peut entraîner une non-conformité aux réglementations sur la protection des données telles que le GDPR ou HIPAA.

Exemple de scénario :

Imaginez un site de commerce électronique qui chiffre les données sensibles des utilisateurs, comme les informations de paiement, en utilisant le padding RSA PKCS #1 v1.5. Si un attaquant peut interagir avec le site et exploiter l'attaque de Bleichenbacher, il pourrait réussir à déchiffrer ces données sensibles, pouvant mener à une fraude financière ou à un vol d'identité.

Recommandation

Pour atténuer efficacement les risques associés à l'attaque de Bleichenbacher, les organisations doivent adopter les recommandations suivantes :

  • Migrate to Stronger Padding Schemes : La principale vulnérabilité mise en évidence par l'attaque de Bleichenbacher réside dans les mécanismes de transport de clés RSA, en particulier lorsqu'ils sont associés au schéma de padding PKCS#1 v1.5. Les organisations doivent abandonner le chiffrement RSA au profit d'alternatives plus sûres, telles que les échanges de clés Diffie-Hellman ou à courbe elliptique (Elliptic Curve), ou au moins implémenter RSA-OAEP (Optimal Asymmetric Encryption Padding), qui est plus résistant à ce type d'attaques.

  • Upgrade to TLS 1.3 : Le protocole TLS 1.3 intègre des améliorations significatives, notamment la suppression des messages d'erreur qui pourraient agir comme un oracle pour cette attaque. Il intègre également des contre-mesures cryptographiques supplémentaires, telles que de meilleurs schémas de padding. Le NIST exige que les systèmes gouvernementaux américains supportent TLS 1.3 d'ici 2024, ce qui constitue également une forte recommandation pour le secteur privé.

  • Regularly Patch and Audit Systems : Un problème clé dans l'atténuation des attaques de type Bleichenbacher est que de nombreux systèmes restent vulnérables longtemps après la disponibilité des correctifs. Assurer des correctifs rapides pour des bibliothèques comme OpenSSL est essentiel, car de nombreuses entreprises ne sécurisent pas leurs systèmes à temps. Les outils de scan de vulnérabilités et de gestion des correctifs doivent faire partie des audits de sécurité de routine.

Liens

Normes

  • SOC2_CONTROLS:
    • CC_3_4
    • CC_6_7
    • CC_7_1
  • OWASP_MASVS_L1:
    • MSTG_CRYPTO_4
  • OWASP_MASVS_L2:
    • MSTG_CRYPTO_4
  • OWASP_MASVS_v2_1:
    • MASVS_CRYPTO_1
    • MASVS_CRYPTO_2
  • CCPA:
    • CCPA_1798_150
  • GDPR:
    • ART_25
    • ART_32
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_3_7
    • REQ_6_2
    • REQ_6_3
    • REQ_6_4
    • REQ_11_3