TLS
| Fiche express | |
|---|---|
| Domaine | Sécurisation des communications (chiffrement + authentification) |
| Couche OSI | 4/5, au-dessus de TCP |
| Versions actuelles | TLS 1.2 (2008) · TLS 1.3 (2018, recommandée) |
| Voir aussi | HTTPS · CSR |
TLS (Transport Layer Security) fournit la confidentialité et lintégrité des données échangées entre deux applications, ainsi que lauthentification d'au moins l'une des parties (le serveur, via son certificat — voir CSR). TLS a succédé à SSL, dont la dernière version (SSLv3) est aujourd'hui considérée non sûre et abandonnée par tous les navigateurs et serveurs à jour.
Le handshake (établissement de session)
Avant tout échange chiffré, client et serveur négocient la version du protocole, la suite cryptographique et les clés de session :
Client Serveur
|------ ClientHello -------------------->| versions/suites supportées, aléa client
|<----- ServerHello ----------------------| version/suite choisie, aléa serveur
|<----- Certificate -----------------------| certificat du serveur (issu d'un CSR)
|<----- ServerHelloDone -------------------|
|------ ClientKeyExchange ---------------->| échange de clé (DHE/ECDHE en TLS 1.3)
|------ ChangeCipherSpec, Finished ------->|
|<----- ChangeCipherSpec, Finished --------|
|<===== données chiffrées ================>|
TLS 1.3 simplifie ce déroulé (poignée de main en un seul aller-retour, 1-RTT, contre deux en TLS 1.2) et impose des échanges de clé offrant la Perfect Forward Secrecy (PFS) : même si la clé privée du serveur est compromise plus tard, les sessions passées ne peuvent pas être déchiffrées rétroactivement.
En authentification mutuelle (mTLS), le client présente également un certificat, validé par le serveur — utilisé par exemple entre microservices ou pour des API à accès restreint.
TLS Record Protocol
Une fois le handshake terminé, chaque message applicatif est découpé en fragments, éventuellement compressés, authentifié (MAC) et chiffré avec les clés de session négociées, avant d'être remis à la couche transport (TCP le plus souvent).
Bonnes pratiques
- TLS 1.2 minimum, TLS 1.3 recommandé ; désactiver SSLv3/TLS 1.0/1.1.
- Suites de chiffrement modernes (ECDHE + AES-GCM ou ChaCha20-Poly1305), clé serveur RSA 2048+ ou
ECDSA P-256/P-384.
- Renouvellement automatisé des certificats (ex. ACME/Let's Encrypt) plutôt que manuel.