Aller au contenu

FREAK Attack on Export-Grade RSA

Attaque FREAK sur RSA de qualité exportation

Description

Cette vulnérabilité indique que le serveur est susceptible aux attaques FREAK, qui exploitent la prise en charge d'un chiffrement RSA faible de qualité exportation pour dégrader les connexions TLS et casser le chiffrement par factorisation cryptographique.

FREAK (Factoring RSA Export Keys) se produit lorsque les serveurs acceptent les suites de chiffrement RSA_EXPORT avec des clés de 512 bits, un héritage des restrictions d'exportation américaines des années 1990. Les clients vulnérables acceptent à tort ces clés faibles même lorsqu'elles ne sont pas demandées, ce qui permet aux attaquants de forcer des attaques de dégradation et de factoriser le chiffrement faible.

Fonctionnement :

  1. Un attaquant de type "Man-in-the-middle" intercepte la négociation (handshake) TLS entre le client et le serveur.
  2. Le client demande un chiffrement fort, mais l'attaquant transfère la requête en demandant RSA_EXPORT.
  3. Le serveur répond avec une clé RSA faible de 512 bits au lieu de la clé standard de 2048 bits.
  4. Le client vulnérable accepte la clé faible en raison de bugs d'implémentation.
  5. L'attaquant factorise la clé RSA de 512 bits (ce qui prend des heures/jours) et déchiffre tout le trafic.

Prérequis :

  • Le serveur doit prendre en charge les suites de chiffrement RSA_EXPORT (chiffrement obsolète de qualité exportation).
  • Le client doit avoir une implémentation TLS vulnérable acceptant les clés faibles.
  • Position réseau "Man-in-the-middle" pour intercepter et modifier les négociations (handshakes).
  • Ressources de calcul pour factoriser les clés RSA de 512 bits.

Exemple de scénario : Une application mobile se connecte à une API bancaire sur un réseau WiFi public. Un attaquant intercepte la négociation TLS et trompe le serveur pour qu'il propose une clé RSA de 512 bits de qualité exportation. Le client vulnérable (utilisant un ancien OpenSSL) accepte cette clé faible. L'attaquant passe 8 heures à factoriser la clé à l'aide de ressources de cloud computing, puis déchiffre tout le trafic ultérieur de l'API pour voler des jetons d'authentification et des données financières.

La vulnérabilité exploite les restrictions d'exportation américaines historiques qui limitaient la force cryptographique, affectant les systèmes obsolètes qui prennent toujours en charge ces suites de chiffrement intentionnellement affaiblies pour des raisons de rétrocompatibilité.

Recommandation

Pour atténuer les attaques FREAK :

Défense principale - Désactiver les suites de chiffrement d'exportation :

# Apache - désactiver les chiffrements de niveau exportation
SSLCipherSuite HIGH:!aNULL:!MD5:!EXP:!RC4

# Configuration plus sécurisée
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:!EXP
# Nginx - désactiver les chiffrements d'exportation
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA;

Mettre à jour les bibliothèques TLS :

Assurez-vous que toutes les implémentations TLS sont corrigées : - OpenSSL 1.0.1k+ (CVE-2015-0204 corrigé) - Mettre à jour les applications mobiles utilisant des bibliothèques vulnérables - Corriger les systèmes embarqués et les appareils IoT

Test de la vulnérabilité FREAK :

# Test du serveur pour la prise en charge des chiffrements d'exportation
openssl s_client -connect example.com:443 -cipher EXPORT

# Devrait échouer avec "no cipher match" si configuré correctement
# Tester avec SSL Labs
curl "https://api.ssllabs.com/api/v3/analyze?host=example.com"

Protection côté client :

# Python - désactiver les chiffrements d'exportation
import ssl
context = ssl.create_default_context()
context.set_ciphers('ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:DHE+CHACHA20:!aNULL:!MD5:!DSS:!EXPORT')

Atténuations supplémentaires :

  • Utiliser TLS 1.3 qui supprime complètement la prise en charge des chiffrements d'exportation
  • Implémenter Perfect Forward Secrecy (PFS) avec l'échange de clés ECDHE/DHE
  • Auditer régulièrement les configurations de suites de chiffrement pour détecter les algorithmes faibles
  • Surveiller les schémas de négociation TLS inhabituels indiquant des tentatives de dégradation

Les navigateurs et serveurs modernes ont désactivé les chiffrements d'exportation par défaut, mais les systèmes hérités et les appareils embarqués peuvent toujours être vulnérables.

Liens

Normes

  • SOC2_CONTROLS:
    • CC_6_7
    • CC_7_1
  • CCPA:
    • CCPA_1798_150
  • GDPR:
    • ART_32
  • PCI_STANDARDS:
    • REQ_4_1
    • REQ_6_2
    • REQ_11_3