Le protocole TLS (Transport Layer Security) permet d'établir une communication sécurisée entre un client et un serveur. Voici les étapes principales du TLS Handshake.
TLS
│
├── 📧 Email sécurisé
│ ├── SMTPS (port 465)
│ ├── IMAPS (port 993)
│ └── POP3S (port 995)
│
├── 🔐 VPN
│ ├── OpenVPN
│ └── WireGuard (clé pré-partagée mais parfois TLS utilisé en amont)
│
├── 🧩 APIs & Microservices
│ ├── REST APIs
│ ├── gRPC
│ └── mTLS (authentification mutuelle)
│
├── 🐳 Cloud / Services managés
│ ├── Connexions aux bases de données (PostgreSQL, MySQL)
│ ├── Services AWS/GCP/Azure (S3, API Gateway, etc.)
│ └── Communications entre services cloud
│
├── 🧪 Protocoles d’entreprise
│ ├── LDAPs (LDAP over TLS)
│ ├── XMPP (chat)
│ └── RDP (Bureau à distance sécurisé)
│
├── 📡 IoT (Internet des Objets)
│ ├── Capteurs / Dispositifs connectés
│ └── TLS ou mTLS vers des services cloud
│
└── 💬 Messagerie & VoIP
├── Signal, WhatsApp
├── Microsoft Teams, Zoom
└── TLS pour chiffrer les communications
Client Serveur
| -------- ClientHello --------> |
| <-------- ServerHello -------- |
| <------ Certificate ---------- |
| |
| ---- [ClientKeyExchange] ---> |
| ---- ChangeCipherSpec ------> |
| ---- Finished ---------------> |
| <--- ChangeCipherSpec --------|
| <--- Finished ----------------|
| <<<<<<< Communication chiffrée >>>>>>> |
Le client vérifie le certificat du serveur : chaîne de confiance, validité, domaine, etc.
TLS 1.2 :
pre-master secretTLS 1.3 : échange Diffie-Hellman (ECDHE) plus sécurisé (aucun secret transmis directement).
Les deux parties utilisent :
client randomserver randompre-master secretPour dériver une clé de session symétrique.
Les deux parties s’échangent un message Finished chiffré pour confirmer que le handshake est réussi.
Les données sont échangées avec la clé de session en toute sécurité.