Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 618 minAvancé

Chiffrement, certificats SSL/TLS et PKI

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • choisir entre chiffrement symétrique, asymétrique et hachage ;
  • lire un certificat et diagnostiquer une erreur de nom ou de chaîne ;
  • créer une AC interne et signer un certificat avec OpenSSL ;
  • appliquer les nouvelles durées de validité et configurer TLS.

5 exercices corrigés1 schéma

Un certificat SSL/TLS est un fichier signé par une autorité de certification qui associe une clé publique à une identité, par exemple le nom intranet.sorbier.lan : il permet à un navigateur de vérifier qu'il parle au bon serveur avant de chiffrer les échanges. Une PKI (infrastructure à clés publiques) est l'organisation qui émet, distribue et révoque ces certificats. Ce chapitre explique d'abord les trois outils de la cryptographie (chiffrement symétrique, asymétrique, hachage), puis les certificats, la chaîne de confiance, la création d'une autorité interne, les nouvelles durées de validité et la configuration de TLS.

Trois outils, trois garanties

OutilPrincipeExemples actuelsCe qu'il garantit
Chiffrement symétriqueLa même clé secrète chiffre et déchiffreAES-GCM, ChaCha20-Poly1305Confidentialité (et intégrité pour les modes authentifiés comme GCM)
Chiffrement asymétriqueUne paire de clés : ce que la clé publique chiffre, seule la clé privée le déchiffre ; ce que la clé privée signe, la clé publique le vérifieRSA, courbes elliptiques (ECDSA, Ed25519, échange ECDHE)Échange de clés, signature, authentification
HachageUne fonction à sens unique calcule une empreinte de taille fixe ; le moindre changement des données change toute l'empreinteSHA-256, SHA-384, SHA-3Intégrité (détecter une modification)

Le chiffrement symétrique est très rapide mais pose un problème : comment partager la clé secrète sans qu'elle soit interceptée ? Le chiffrement asymétrique résout ce problème mais il est lent. On combine donc les deux (chiffrement hybride) : l'asymétrique sert à se mettre d'accord sur une clé de session, le symétrique chiffre ensuite les données. C'est ce que font TLS, les VPN et SSH.

La signature numérique combine hachage et asymétrique : on calcule l'empreinte du document, puis on la signe avec sa clé privée (avec RSA, cela revient à la chiffrer avec la clé privée). Le destinataire recalcule l'empreinte et vérifie, avec la clé publique de l'émetteur, que la signature correspond bien à cette empreinte. Si elles concordent, le document n'a pas été modifié (intégrité) et il vient bien du détenteur de la clé privée (authenticité, et non-répudiation : il ne peut pas nier l'avoir signé).

Les algorithmes à choisir en 2026

UsageRecommandéÀ bannir
Chiffrement symétriqueAES-128 ou AES-256 en mode GCM, ChaCha20-Poly1305DES, 3DES, RC4
HachageSHA-256, SHA-384, SHA-3MD5, SHA-1 (collisions démontrées)
Signature, clé de serveurECDSA P-256 ou P-384, Ed25519, RSA 2048 bits au minimum (3072 pour un usage au-delà de 2030)RSA 1024 bits
Échange de clésECDHE (X25519, P-256), avec confidentialité persistanteÉchange RSA statique (abandonné par TLS 1.3)
Mots de passe stockésArgon2id, bcrypt, scrypt (fonctions lentes et salées)Hachage rapide seul (MD5, SHA-256 non salé)

Ces tailles suivent le guide de sélection des algorithmes cryptographiques de l'ANSSI. Une évolution est en cours : l'arrivée possible d'ordinateurs quantiques menace RSA et les courbes elliptiques. Le NIST a normalisé en 2024 un premier mécanisme post-quantique d'échange de clés, ML-KEM (FIPS 203). Les navigateurs récents et OpenSSL 3.5 utilisent déjà un échange hybride (X25519 combiné à ML-KEM), l'approche que recommande l'ANSSI pour la transition.

Le certificat X.509

Une clé publique seule ne dit pas à qui elle appartient : un attaquant placé au milieu pourrait présenter la sienne. Le certificat règle ce problème : une autorité de certification (AC, ou CA en anglais) atteste, par sa signature, que telle clé publique appartient à tel nom. Les certificats suivent la norme X.509 version 3.

ChampExempleRôle
Sujet (Subject)CN=intranet.sorbier.lan, O=Sorbier LogistiqueÀ qui appartient le certificat
Noms alternatifs (Subject Alternative Name, SAN)DNS:intranet.sorbier.lanLes noms pour lesquels il est valable. Obligatoire : les navigateurs ignorent le CN et ne regardent que le SAN
Émetteur (Issuer)CN=AC racine SorbierL'autorité qui l'a signé
ValiditénotBefore, notAfterLa période pendant laquelle il est accepté
Clé publiqueEC P-256, RSA 3072 bitsLa clé que le certificat atteste
Usages (Key Usage, Extended Key Usage)serverAuth, clientAuthCe que la clé a le droit de faire
Numéro de série4F:A2:…Identifie le certificat, notamment pour le révoquer
Signature de l'ACECDSA avec SHA-256Prouve que l'AC a bien émis ce certificat

L'empreinte (fingerprint) d'un certificat est le hachage SHA-256 du certificat entier. Elle l'identifie de façon unique : vérifier l'empreinte, c'est vérifier qu'on a exactement le bon certificat. Dans le sujet 2026, le client de sauvegarde mémorise l'empreinte du certificat du serveur Proxmox Backup Server : si un autre serveur se fait passer pour lui, l'empreinte ne correspond pas et la connexion est refusée, ce qui empêche une interception de l'homme du milieu même avec un certificat auto-signé.

La chaîne de confiance

Un navigateur ne connaît pas les milliards de certificats de serveurs. Il connaît une centaine d'AC racines, enregistrées dans le magasin de certificats du système ou du navigateur. La confiance se transmet par une chaîne :

  1. l'AC racine a un certificat auto-signé, gardé hors ligne, qui ne sert qu'à signer des AC intermédiaires ;
  2. l'AC intermédiaire signe les certificats des serveurs au quotidien ; si elle est compromise, on la révoque sans toucher à la racine ;
  3. le certificat du serveur (certificat feuille) est présenté au client, avec le certificat intermédiaire.

Le client vérifie chaque signature en remontant jusqu'à une racine de son magasin, puis contrôle la date de validité, le nom (le SAN doit correspondre au nom tapé dans la barre d'adresse) et la révocation.

AC racine Sorbierauto-signée, gardée hors lignesignée parAC intermédiairesigne les certificats des serveurssigné parintranet.sorbier.lancertificat du serveur (feuille)présentéPoste du salariéMagasin de confiancecontient la racine (par GPO)Le navigateur vérifie :1. les signatures, jusqu'à la racine2. le nom demandé (SAN)3. les dates de validité4. la révocationTout est bon : connexion sécuriséeUn échec : avertissement
La chaîne de confiance : du certificat du serveur jusqu'à une racine connue du poste

AC publique ou AC interne ?

AC publiqueAC interne
ExemplesLet's Encrypt (gratuite, automatisée), AC commercialesActive Directory Certificate Services, gestionnaire de certificats de pfSense ou OPNsense, OpenSSL, step-ca
Reconnue parTous les navigateurs et systèmesSeulement les machines où l'on a installé sa racine (par stratégie de groupe pour un domaine Windows)
PourLes services publiés sur Internet : site de suivi des livraisons, messagerieLes services internes : intranet, interfaces d'administration, 802.1X, VPN, inspection TLS
ConditionProuver qu'on contrôle le nom de domaineProtéger la clé privée de l'AC : qui la détient peut se faire passer pour n'importe quel serveur auprès des postes

Un certificat auto-signé (signé par sa propre clé) n'est vérifiable par personne : il provoque un avertissement, et habitue les utilisateurs à cliquer sur « continuer quand même », exactement le réflexe qu'un attaquant exploite. Dans une entreprise, on le remplace par un certificat de l'AC interne.

Créer une AC interne et un certificat de serveur avec OpenSSL

En TP, OpenSSL 3 permet de monter une petite AC en quelques commandes. Sorbier crée son AC racine, puis le certificat de l'intranet :

bash
# 1. Clé privée de l'AC (courbe P-256), à protéger absolument
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out ac-sorbier.key

# 2. Certificat auto-signé de l'AC, valable 10 ans
openssl req -x509 -new -key ac-sorbier.key -sha256 -days 3650 \
  -subj "/O=Sorbier Logistique/CN=AC racine Sorbier" \
  -addext "basicConstraints=critical,CA:TRUE" \
  -addext "keyUsage=critical,keyCertSign,cRLSign" \
  -out ac-sorbier.crt

# 3. Sur le serveur : clé privée et demande de signature (CSR)
openssl req -new -newkey rsa:3072 -nodes -keyout intranet.key -out intranet.csr \
  -subj "/O=Sorbier Logistique/CN=intranet.sorbier.lan" \
  -addext "subjectAltName=DNS:intranet.sorbier.lan" \
  -addext "extendedKeyUsage=serverAuth" \
  -addext "basicConstraints=CA:FALSE"

# 4. L'AC signe la demande : certificat valable 397 jours
openssl x509 -req -in intranet.csr -CA ac-sorbier.crt -CAkey ac-sorbier.key \
  -CAcreateserial -days 397 -sha256 -copy_extensions copy -out intranet.crt

# 5. Vérifications
openssl x509 -in intranet.crt -noout -subject -issuer -dates -ext subjectAltName
openssl x509 -in intranet.crt -noout -fingerprint -sha256
openssl verify -CAfile ac-sorbier.crt intranet.crt

La dernière commande répond intranet.crt: OK si la signature est valide. Retiens la logique du CSR (Certificate Signing Request) : la clé privée du serveur ne quitte jamais le serveur. Seule la demande, qui contient la clé publique et les noms, part vers l'AC, qui renvoie le certificat signé. L'option -copy_extensions copy recopie dans le certificat les extensions que demande le CSR : l'AC doit donc vérifier ce que la demande contient (noms, usage, CA:FALSE) avant de signer. Il reste à installer la racine ac-sorbier.crt dans le magasin « Autorités de certification racines de confiance » des postes, par une stratégie de groupe.

En production, on ne garde pas la clé de l'AC racine sur un serveur en ligne : elle reste hors ligne, et une AC intermédiaire signe les certificats.

Durée de validité : ce qui a changé en 2026

Les règles des certificats publics sont fixées par le CA/Browser Forum, qui réunit les AC et les éditeurs de navigateurs. Son vote SC-081 réduit la durée maximale des certificats TLS publics par étapes :

Certificat émis à partir duDurée maximale
15 mars 2026200 jours
15 mars 2027100 jours
15 mars 202947 jours

Avec de telles durées, renouveler à la main n'est plus tenable : on automatise avec le protocole ACME, celui de Let's Encrypt (client certbot sous Linux, paquet ACME sur pfSense et OPNsense). Let's Encrypt délivre des certificats de 90 jours, renouvelés automatiquement vers les deux tiers de leur durée. Let's Encrypt passera à 64 jours le 10 février 2027 puis à 45 jours le 16 février 2028 : un renouvellement codé « tous les 60 jours » ne suffira plus.

La révocation

Un certificat dont la clé privée a fui doit être révoqué avant sa date d'expiration. Le client le découvre de deux façons :

  • la liste de révocation (CRL) : un fichier publié par l'AC, qui liste les numéros de série révoqués ;
  • OCSP : une interrogation en direct de l'AC sur un certificat précis.

Let's Encrypt a arrêté son service OCSP en 2025 et ne publie plus que des CRL ; les navigateurs, eux, s'appuient sur des listes de révocation compactes qu'ils téléchargent régulièrement. Les durées de validité courtes limitent d'ailleurs le problème : un certificat compromis expire vite.

TLS : chiffrer les échanges

TLS (Transport Layer Security), successeur de SSL, chiffre et authentifie les échanges au-dessus de TCP : HTTPS, mais aussi LDAPS, SMTP avec STARTTLS, IMAPS, syslog TLS. On dit encore « certificat SSL » par habitude, mais SSL 2.0 et 3.0, puis TLS 1.0 et 1.1, sont interdits (RFC 6176 pour SSL 2.0, RFC 7568 pour SSL 3.0, RFC 8996 en 2021 pour TLS 1.0 et 1.1). Seules TLS 1.2 et TLS 1.3 sont acceptables.

La négociation (handshake) de TLS 1.3 se déroule en un aller-retour :

  1. le client envoie les versions et algorithmes qu'il accepte, et sa part d'échange de clés (ECDHE) ;
  2. le serveur choisit, envoie sa part d'échange de clés, son certificat, et une signature qui prouve qu'il détient la clé privée correspondante ;
  3. le client vérifie le certificat (chaîne, nom, dates, révocation) et la signature ; les deux côtés calculent la même clé de session ;
  4. les données sont chiffrées en AES-GCM ou ChaCha20-Poly1305.

Parce que la clé de session vient d'un échange éphémère (ECDHE), une clé privée de serveur volée plus tard ne permet pas de déchiffrer les échanges passés : c'est la confidentialité persistante (forward secrecy), obligatoire en TLS 1.3.

Une configuration TLS correcte, par exemple pour nginx sur le serveur web de la DMZ :

nginx
server {
    listen 443 ssl;
    server_name suivi.sorbier-logistique.fr;
    ssl_certificate     /etc/letsencrypt/live/suivi.sorbier-logistique.fr/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/suivi.sorbier-logistique.fr/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

L'en-tête HSTS (Strict-Transport-Security) dit au navigateur de n'utiliser que HTTPS pour ce site pendant un an : même si l'utilisateur tape http://, aucune requête ne part en clair. Pour vérifier un serveur, openssl s_client -connect suivi.sorbier-logistique.fr:443 -servername suivi.sorbier-logistique.fr affiche la chaîne présentée et la version négociée ; le test en ligne SSL Labs donne une note de A+ à F pour un site public.

Certificats et preuve électronique

Le référentiel demande de « déployer les moyens appropriés de preuve électronique ». Les mêmes outils servent à prouver :

  • la signature électronique d'un document (règlement européen eIDAS) atteste son auteur et son intégrité ;
  • l'horodatage par une autorité de confiance prouve qu'un document ou un journal existait à une date donnée, sans modification depuis ;
  • l'empreinte d'un fichier, notée au moment d'une copie de preuve, permet de démontrer plus tard que la copie n'a pas changé (chapitre 14).

Pour aller plus loin. Le cours Cryptographie détaille le chiffrement asymétrique, les certificats et la PKI et la poignée de main TLS 1.3.

Exercices

Exercice 1 sur 5 Quel outil pour quel besoin ? Réussi À revoir

Pour chaque besoin, choisis le chiffrement symétrique, le chiffrement asymétrique, le hachage ou la signature, et justifie.

  1. Vérifier qu'une image ISO téléchargée n'a pas été modifiée.
  2. Chiffrer rapidement 2 To de sauvegardes.
  3. Prouver qu'un bon de commande vient bien du directeur et n'a pas été modifié.
  4. Se mettre d'accord sur une clé secrète avec un serveur qu'on n'a jamais contacté.
  5. Stocker les mots de passe des utilisateurs d'une application.
Voir la réponseMasquer la réponse de l'exercice 1
  1. Hachage : on compare l'empreinte SHA-256 du fichier à celle publiée par l'éditeur. (Mieux encore, l'éditeur signe la liste d'empreintes, ce qui prouve qu'elle vient de lui.)
  2. Symétrique (AES-256-GCM) : c'est le seul assez rapide pour de gros volumes.
  3. Signature : empreinte du document signée avec la clé privée du directeur, vérifiable avec sa clé publique. Elle garantit intégrité et authenticité.
  4. Asymétrique : un échange de clés (ECDHE), authentifié par le certificat du serveur.
  5. Hachage lent et salé (Argon2id, bcrypt) : on ne stocke jamais le mot de passe, ni chiffré ni en clair, seulement son empreinte ; une fonction lente rend les essais en masse très coûteux.

Tu avais trouvé ?

Exercice 2 sur 5 Chiffrer garantit-il l'intégrité ? Réussi À revoir

Le prestataire de Sorbier affirme : « Vos sauvegardes sont chiffrées, donc leur intégrité est garantie. » Réponds-lui en justifiant, et dis ce qu'il faudrait vérifier.

Voir la réponseMasquer la réponse de l'exercice 2

Pas forcément. Le chiffrement garantit la confidentialité. Un fichier chiffré sans mécanisme d'authentification peut être modifié ou corrompu sans que personne s'en aperçoive avant la restauration. L'intégrité est garantie si le chiffrement est authentifié (AES-GCM, par exemple, vérifie une étiquette à chaque déchiffrement), ou si l'outil calcule et vérifie des empreintes de chaque bloc ou fichier sauvegardé. Il faut donc vérifier quel mode de chiffrement est utilisé, si des empreintes sont contrôlées (Proxmox Backup Server propose une tâche de vérification des sauvegardes), et surtout tester régulièrement une restauration.

Tu avais trouvé ?

Exercice 3 sur 5 Diagnostiquer un certificat Réussi À revoir

Un utilisateur obtient un avertissement en ouvrant https://gestion.sorbier.lan. Le certificat présenté a ces caractéristiques : sujet CN=srv-gestion ; SAN DNS:srv-gestion.sorbier.lan ; émetteur CN=AC racine Sorbier ; valable du 2 novembre 2025 au 3 novembre 2026. Nous sommes le 1er novembre 2026. Quel est le problème ? Comment le corriges-tu ?

Voir la réponseMasquer la réponse de l'exercice 3

Les dates sont bonnes (le certificat expire dans deux jours, il faut d'ailleurs le renouveler), et l'émetteur est l'AC interne, connue des postes du domaine. Le problème est le nom : l'utilisateur a tapé gestion.sorbier.lan, mais le SAN ne contient que srv-gestion.sorbier.lan. Le CN n'est pas pris en compte. Correction : générer un nouveau CSR dont le SAN contient les deux noms (DNS:gestion.sorbier.lan, DNS:srv-gestion.sorbier.lan), le faire signer par l'AC interne, installer le nouveau certificat avec sa chaîne, et profiter de l'occasion pour renouveler avant l'expiration.

Tu avais trouvé ?

Exercice 4 sur 5 Calculer une date d'expiration Réussi À revoir

  1. Un certificat public est émis le 1er avril 2026 pour la durée maximale autorisée. Jusqu'à quelle date au plus est-il valable ?
  2. Le même site renouvelle son certificat le 1er avril 2027. Quelle durée maximale s'applique alors, et jusqu'à quelle date ?
  3. Qu'en conclus-tu sur la façon de renouveler ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. Émis après le 15 mars 2026 : 200 jours au plus, soit jusqu'au 18 octobre 2026.
  2. Émis après le 15 mars 2027 : 100 jours au plus, soit jusqu'au 10 juillet 2027.
  3. Un renouvellement tous les trois mois, puis toutes les quelques semaines à partir de 2029, ne peut plus être manuel : il faut un client ACME qui renouvelle et installe le certificat automatiquement, et une supervision qui alerte si un certificat approche de son expiration.

Tu avais trouvé ?

Exercice 5 sur 5 Pourquoi un CSR ? Réussi À revoir

Un collègue propose de générer la clé privée et le certificat du serveur web directement sur le poste qui héberge l'AC, puis de copier les deux fichiers sur le serveur par clé USB. Explique pourquoi la méthode du CSR est préférable, en décrivant ses étapes.

Voir la réponseMasquer la réponse de l'exercice 5

Avec un CSR, la clé privée du serveur est créée sur le serveur et n'en sort jamais : elle ne transite ni par une clé USB, ni par le poste de l'AC, où elle pourrait être copiée. Étapes : (1) le serveur génère sa paire de clés ; (2) il crée un CSR qui contient sa clé publique et ses noms (SAN), signé par sa clé privée pour prouver qu'il la détient ; (3) le CSR est transmis à l'AC, ce qui ne pose aucun problème car il ne contient rien de secret ; (4) l'AC vérifie la demande et signe le certificat ; (5) le certificat signé revient sur le serveur, qui l'installe avec sa clé privée et la chaîne de l'AC.

Tu avais trouvé ?

Chapitre terminé !

Fais les 5 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : VPN : IPsec, WireGuard et OpenVPNRevoir le sommaire du cours