Ciphers
| Fiche express | |
|---|---|
| Domaine | Négociation TLS — choix des algorithmes |
| Composants | Échange de clés · authentification · chiffrement · MAC |
| Outils | openssl ciphers, nmap --script ssl-enum-ciphers
|
| Voir aussi | TLS · OpenSSL |
Une suite cryptographique (cipher suite) est la combinaison d'algorithmes négociée au début d'une session TLS pour sécuriser l'échange. Une suite décrit classiquement quatre briques :
- l'échange de clés (ECDHE, DHE, RSA…) ;
- l'authentification du serveur (RSA, ECDSA…) ;
- le chiffrement symétrique des données (AES-GCM, ChaCha20-Poly1305…) ;
- la fonction de hachage / MAC (SHA-256, SHA-384…).
En TLS 1.3, l'échange de clés et l'authentification ont été sortis de la suite : celle-ci ne nomme plus que le chiffrement AEAD et le hachage (ex. TLS_AES_256_GCM_SHA384), et seuls des échanges à confidentialité persistante (ECDHE) sont autorisés.
Lister et tester les suites
# Suites supportées localement par openssl
openssl ciphers -v 'HIGH:!aNULL:!MD5'
# Vérifier la présence d'une famille d'algorithmes
openssl ciphers -v 'ECDHE'
# Tester ce qu'un serveur distant accepte réellement
nmap --script ssl-enum-ciphers -p 443 exemple.example.com
Configuration serveur
Principe : n'autoriser que TLS 1.2 et 1.3, imposer l'ordre du serveur, et ne retenir que des suites ECDHE + AEAD. Bannir SSLv2/SSLv3, RC4, DES/3DES, les suites d'export et MD5.
Apache (mod_ssl)
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
Nginx
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
Pour produire une configuration à jour selon le niveau de compatibilité visé, s'appuyer sur le générateur Mozilla SSL Configuration puis valider le résultat (SSL Labs, testssl.sh).
Voir aussi
- TLS — protocole où ces suites sont négociées
- OpenSSL — commande
openssl ciphers - Chiffrement en transit et cryptographie hybride