SWEET32 Attack on 64-bit Block Ciphers
Attaque SWEET32 sur les chiffrements par blocs de 64 bits
Description
Cette vulnérabilité indique que le serveur est vulnérable aux attaques SWEET32, qui exploitent le paradoxe des anniversaires dans les chiffrements par blocs de 64 bits comme 3DES pour récupérer du texte en clair à partir de données chiffrées après avoir collecté environ 32 Go de trafic.
SWEET32 (Birthday attacks on 64-bit block ciphers) se produit lorsque la même clé de chiffrement est utilisée pour chiffrer de grandes quantités de données. En raison du paradoxe des anniversaires, des blocs de texte chiffré identiques sont statistiquement garantis après environ ~2^32 blocs, révélant des relations mathématiques qui permettent la récupération du texte en clair.
Comment ça marche :
- L'attaquant déclenche des millions de requêtes HTTPS contenant les cookies d'authentification de la victime.
- Le trafic réseau est capturé et analysé à la recherche de blocs chiffrés identiques de 8 octets.
- Lorsqu'une collision se produit, les mathématiques du mode CBC permettent la récupération de données secrètes grâce à des opérations XOR.
- Le processus se répète sur plusieurs collisions pour extraire des secrets complets.
Prérequis :
- Utilisation de 3DES ou d'un autre chiffrement par blocs de 64 bits.
- Sessions TLS de longue durée (18+ heures).
- Capacité de générer un volume élevé de requêtes (environ 2 900 requêtes/seconde).
- Capacité de capturer le trafic au niveau du réseau.
Exemple de scénario : Une application bancaire utilise le chiffrement 3DES avec des connexions HTTPS persistantes. Un attaquant injecte du code JavaScript qui effectue des millions de requêtes sur 18 heures, capturant 700 Go de trafic chiffré. L'analyse statistique révèle des collisions de blocs qui exposent le cookie de session de la victime, permettant ainsi la compromission totale du compte.
L'attaque démontre pourquoi les chiffrements par blocs de 64 bits sont fondamentalement non sécurisés pour les applications modernes, conduisant au détournement de session, à l'exposition de données et à des violations de conformité réglementaire.
Recommandation
Pour atténuer les attaques SWEET32 :
Défense principale - Désactiver les chiffrements 64 bits :
# Configuration Nginx
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:!3DES:!DES';
# Configuration Apache
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:!3DES:!DES
Mesures d'atténuation supplémentaires :
- Passer à TLS 1.3, qui supprime entièrement le 3DES.
- Limiter la durée de connexion en forçant le renouvellement de clé (rekeying) de manière agressive (tous les 64 Mo pour 3DES).
- Restreindre le volume de requêtes par connexion (par défaut, 100 requêtes pour Apache/Nginx).
- Surveiller les schémas de trafic excessifs indiquant d'éventuelles attaques.
- Privilégier les algorithmes AES par rapport aux anciennes alternatives 64 bits dans l'ordre de priorité des suites de chiffrement.
Commandes de test :
# Tester la configuration du serveur
openssl s_client -connect example.com:443 -cipher '3DES'
# Vérifier que 3DES est désactivé (devrait échouer)
nmap --script ssl-enum-ciphers -p 443 example.com
Liens
Normes
- SOC2_CONTROLS:
- CC_6_7
- CC_7_1
- CCPA:
- CCPA_1798_150
- GDPR:
- ART_32
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213
- PCI_STANDARDS:
- REQ_4_1
- REQ_6_2
- REQ_11_3