Aller au contenu principal
Retour au lexique

SSL

Technique

Définition courte

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.

Définition complète

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.

Pensée simple

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.

Les 3 piliers du SSL/TLS

Chiffrement asymétrique et symétrique (Cryptographic Layer)

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.

Authentification par Autorité de Certification (CA Trust)

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).

Intégrité des données (Data Integrity)

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.

Le cycle de gestion SSL

  1. Choix du certificat : Let's Encrypt (gratuit, DV, renewal 90j) ou DigiCert (OV/EV, $200-1000/an).
  2. Génération CSR : openssl req -new -newkey rsa:2048 -nodes -keyout key.pem -out csr.pem.
  3. Validation : Email DNS ou HTTP challenge pour vérifier le contrôle du domaine.
  4. Installation : Configurer Nginx/Apache avec certificate + private key + CA bundle.
  5. Test : SSL Labs A+ rating. Vérifier que TLS 1.3 est activé, TLS 1.0/1.1 désactivé.
  6. Monitoring renewal : Auto-renewal avec certbot (Let's Encrypt). Alertes 30j avant expiration.

Exemple concret

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.

Applications

  • E-commerce : HTTPS obligatoire pour accepter les paiements. PCI-DSS exige TLS 1.2+.
  • SaaS B2B : SSO/SAML exige HTTPS. HSTS avec preloading pour protéger les cookies.
  • Site vitrine : Let's Encrypt gratuit. HSTS recommended pour protéger les formulaires.
  • API : TLS obligatoire pour API publiques. mTLS (mutual TLS) pour APIs privées avec certificats clients.

Métriques clés

MétriqueDescriptionBenchmark
SSL Labs GradeScore de sécurité A+ à FA+ = excellent
TLS VersionVersion supportée la plus hauteTLS 1.3 = moderne
Certificate ValidityDurée avant expiration> 60 jours
HSTS PreloadDomaine dans la liste ChromeOui = +security
Cipher SuiteAlgorithmes utilisésAES-128+ ou ChaCha20 uniquement