CRIME BREACH Attack
hackingDéfinition
CRIME (Compression Ratio Info-leak Made Easy) et BREACH (Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) sont deux attaques connexes qui exploitent les oracles de compression pour déchiffrer des secrets dans des communications TLS, révélant que la compression de données peut créer des vulnérabilités même dans des protocoles de chiffrement correctement implémentés. CRIME (2012, Thai Duong et Juliano Rizzo) exploite la compression TLS/SPDY : lorsque TLS compresse les données avant de les chiffrer, la taille du trafic chiffré varie selon le niveau de compression obtenu. Si l'attaquant peut injecter des données choisies et observer la taille des paquets chiffrés résultants, il peut déduire le contenu des données secrètes (cookie de session) par une attaque oracle : injecter différentes valeurs candidates et observer laquelle produit le paquet le plus petit (car elle correspond au secret et maximise la compression). BREACH (2013, Angelo Prado, Neal Harris, Yoel Gluck) est similaire mais exploite la compression HTTP (Content-Encoding: gzip) plutôt que la compression TLS. HTTP Compression est beaucoup plus couramment utilisée que TLS Compression, ce qui rend BREACH plus impactant en pratique. BREACH permet d'extraire des secrets (CSRF tokens, session IDs) depuis des réponses HTTP compressées si l'attaquant peut injecter des données dans la requête. La mitigation CRIME est simple : désactiver la compression TLS (désormais fait par défaut dans les navigateurs modernes). La mitigation BREACH est plus complexe car elle nécessite soit de désactiver la compression HTTP (coût de performance), soit d'implémenter des protections comme des tokens CSRF randomisés à chaque requête ou du padding aléatoire dans les réponses.
Fonctionnement
CRIME oracle de compression : pour déchiffrer un cookie 'session=ABC123', l'attaquant injecte 'session=A', 'session=B', etc. dans une requête HTTP, la compresse avec TLS et observe la taille du paquet chiffré — le packet le plus court révèle que 'session=A' correspondait (meilleure compression car le string 'session=A' apparaissait deux fois dans les données). En répétant pour chaque position, le cookie est reconstitué caractère par caractère. BREACH fait la même chose avec Content-Encoding: gzip.
Exploitation offensive
CRIME a rendu obsolète l'extension de compression TLS et forcé la désactivation dans tous les navigateurs majeurs. BREACH reste partiellement applicable sur des sites modernes qui utilisent la compression gzip et incluent des secrets dans des corps de réponse compressés. Des PoCs démontrent l'extraction de tokens CSRF depuis des réponses gzip dans des scénarios MitM.
Détection et mitigation
CRIME : désactiver la compression TLS (déjà fait par tous les navigateurs). BREACH : désactiver la compression HTTP pour les réponses contenant des secrets, randomiser les tokens CSRF à chaque requête, ajouter du padding aléatoire, implémenter le header Vary pour les caches, ou activer le mode 'nosniff'. Ces mitigations ont des impacts sur les performances et nécessitent un arbitrage coût/bénéfice.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h