Le SSL (Secure Sockets Layer), aujourd'hui remplacé par TLS (Transport Layer Security), est le protocole cryptographique qui chiffre les données échangées entre un navigateur et un serveur web.
Le SSL/TLS établit un tunnel sécurisé entre le client (navigateur) et le serveur via une poignée de main cryptographique (handshake). Cette handshake vérifie l'identité du serveur via un certificat numérique signé par une Autorité de Certification (CA : DigiCert, Sectigo, Let's Encrypt) et établit une clé de session symétrique pour chiffrer les données. TLS 1.3 (2018) est la version actuelle : handshake en 1 aller-retour (vs 2 avec TLS 1.2), supprimant les algorithmes dépréciés (3DES, RC4). Le certificat contient le domaine, la clé publique, la signature CA, et la date d'expiration.
SSL/TLS, c'est comme envoyer une lettre scellée par la poste. Sans scellés, n'importe qui peut lire la lettre en cours de route. Avec un scellé certifié par la poste, seul le destinataire peut l'ouvrir. Le facteur (navigateur) vérifie que le cachet est authentique avant de livrer.
Le handshake TLS utilise l'asymétrique (RSA 2048-bit ou ECDSA) pour échanger une clé de session, puis le symétrique (AES-128 ou ChaCha20) pour chiffrer les données. L'asymétrique est lent mais permet l'échange initial de clés sans encounter préalable. Le symétrique est rapide (10× plus que l'asymétrique) et utilisé pour les données réelles. TLS 1.3 supprime les cipher suites dépréciées (3DES, RC4, SHA-1) et rend la forward secrecy obligatoire — même si une clé privée est volée, les sessions passées restent protégées.
Le navigateur maintient un trust store (liste de CA racine de confiance : DigiCert, Sectigo, ISRG Root X1 pour Let's Encrypt). Le certificat serveur est signé par une CA intermédiaire, elle-même signée par une CA racine. DV (Domain Validation) : seul le domaine est vérifié (email ou DNS record) — émission en 5 min, gratuit (Let's Encrypt). OV (Organization Validation) : vérifie aussi l'identité de l'entreprise — émission en 1-3 jours. EV (Extended Validation) : vérification approfondie, affiche le nom de l'entreprise dans la barre URL (supprimé par Chrome en 2022).
Chaque message inclut un MAC (Message Authentication Code) HMAC basé sur SHA-256 ou SHA-3, garantissant que les données n'ont pas été modifiées en transit. TLS 1.3 inclut aussi l'encrypted handshake — même les métadonnées de la connexion (domaine demandé) sont chiffrées, empêchant les attaques de surveillance sur le SNI (Server Name Indication). L'HSTS (HTTP Strict Transport Security) force le navigateur à toujours utiliser HTTPS pendant une durée donnée (max-age = 1 an), empêchant les attaques de downgrade HTTP→HTTPS.
E-commerce avec certificat SSL expiré depuis 2h. Impact : barre rouge Chrome Non sécurisé + avertissement dans la console. Perte estimée : -18% de conversions immédiatement, -12% de traffic pendant 48h (les utilisateurs ne reviennent pas). Solution : (1) renouvellement Let's Encrypt via certbot (5 min), (2) redirect HTTP→HTTPS forcé, (3) test SSL Labs A+. Coût : $0, 0h de maintenance mensuelle. Résultat : certificat renouvelé avant damage permanent, SSL Labs score B → A+ en 30 min.
| Métrique | Description | Benchmark |
|---|---|---|
| SSL Labs Grade | Score de sécurité A+ à F | A+ = excellent |
| TLS Version | Version supportée la plus haute | TLS 1.3 = moderne |
| Certificate Validity | Durée avant expiration | > 60 jours |
| HSTS Preload | Domaine dans la liste Chrome | Oui = +security |
| Cipher Suite | Algorithmes utilisés | AES-128+ ou ChaCha20 uniquement |