TLS et chiffrements faibles : protocoles obsolètes, suites de chiffrement et SSH
Le chiffrement des communications repose sur deux éléments distincts : le protocole (TLS 1.2, TLS 1.3) et les suites de chiffrement (algorithmes négociés pour chaque connexion). Un certificat valide et un protocole moderne ne suffisent pas si le serveur accepte encore des algorithmes dépréciés. La sécurité d'une connexion TLS est celle de son maillon le plus faible.
Protocoles SSL/TLS obsolètes
SSL 2.0, SSL 3.0, TLS 1.0 et TLS 1.1 sont des protocoles obsolètes avec des vulnérabilités connues et publiées. POODLE (SSL 3.0), BEAST (TLS 1.0), DROWN (SSL 2.0) : ces attaques permettent à un adversaire positionné sur le réseau de déchiffrer des communications ou d'injecter des données. Les navigateurs modernes ont retiré le support de ces protocoles, mais les serveurs les acceptent encore fréquemment.
Le standard minimal aujourd'hui est TLS 1.2, et TLS 1.3 doit être activé. TLS 1.3 simplifie la négociation (moins d'allers-retours), supprime les suites de chiffrement faibles et n'est pas vulnérable aux attaques sur les anciennes versions.
Configuration nginx : désactiver les anciens protocoles
# nginx.conf
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
Suites de chiffrement faibles
Même avec TLS 1.2, certaines suites de chiffrement sont faibles et ne doivent pas être acceptées. RC4 : cassé cryptographiquement, à bannir absolument. Suites en mode CBC (comme AES-CBC) : vulnérables à BEAST et LUCKY13 en TLS 1.2 selon la configuration. Suites sans Perfect Forward Secrecy (RSA seul, sans ECDHE ou DHE) : si la clé privée est compromise, toutes les sessions passées enregistrées peuvent être déchiffrées. Suites d'export (EXPORT, NULL, aNULL) : conçues pour être faibles, exploitées par FREAK et Logjam.
Outil de référence : testez votre configuration avec testssl.sh (ligne de commande) ou SSL Labs (interface web). Ces outils identifient les protocoles acceptés, les suites de chiffrement et les vulnérabilités connues.
Renégociation SSL/TLS non sécurisée
La renégociation TLS permet de renegotier les paramètres d'une connexion en cours. La renégociation non sécurisée (RFC 5746 non implémentée) peut être exploitée pour injecter des données dans une connexion TLS existante. Tous les serveurs modernes doivent supporter la renégociation sécurisée et désactiver la renégociation initiée par le client si elle n'est pas nécessaire.
Configuration SSH : algorithmes dépréciés
SSH souffre des mêmes problèmes que TLS : des algorithmes anciens et faibles acceptés par défaut. Les algorithmes à désactiver : chiffrements en mode CBC (aes128-cbc, 3des-cbc, arcfour...), algorithmes MAC basés sur SHA-1 seul (hmac-sha1, hmac-md5), échange de clés Diffie-Hellman avec des paramètres insuffisants (diffie-hellman-group1-sha1).
Configuration sshd_config sécurisée
# /etc/ssh/sshd_config
KexAlgorithms curve25519-sha256,[email protected],diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
MACs [email protected],[email protected],[email protected]
HostKeyAlgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256
Communications non chiffrées
Certains services internes ou APIs communiquent encore en clair (HTTP, FTP, Telnet, SMTP sans STARTTLS). Même sur un réseau interne considéré comme de confiance, le chiffrement est nécessaire : une compromission d'un équipement interne (switch, poste de travail) permet l'écoute passive du trafic. La segmentation réseau réduit le risque mais ne le supprime pas.
Récapitulatif
- Désactiver SSL et TLS 1.0/1.1 : activer uniquement TLS 1.2 et TLS 1.3
- Suites de chiffrement modernes uniquement : ECDHE + AES-GCM ou ChaCha20, sans RC4, CBC ou NULL
- Perfect Forward Secrecy : utiliser ECDHE ou DHE pour que les sessions passées restent protégées si la clé est compromise
- SSH : algorithmes modernes uniquement : Ed25519, ChaCha20, SHA-2 ; supprimer CBC et SHA-1
- Tester régulièrement : testssl.sh ou SSL Labs pour détecter les régressions et les nouvelles vulnérabilités
Pour aller plus loin
Une question après la lecture ?
Votre configuration TLS ou SSH est-elle à jour ? Envoyez un message.
Ou réservez directement un cadrage de 30 minutes
Réserver un appel →