📜 Certificats numériques et PKI

Bloc 3 Module 3.2 BTS SIO SISR
FormationBTS SIO option SISR — IRIS Mediaschool
BlocB3 — Cybersécurité des services informatiques
ModuleM3.2 — Identité numérique et authentification
Durée3,5 heures
PrérequisNotions de cryptographie (symétrique/asymétrique), protocole TLS

🎯 Objectifs

  • Comprendre les principes de la cryptographie asymétrique appliquée aux certificats
  • Maîtriser la structure d'un certificat X.509
  • Comprendre l'architecture d'une PKI (CA racine, CA intermédiaire, RA)
  • Gérer le cycle de vie des certificats (émission, renouvellement, révocation)
  • Déployer une PKI interne avec Windows Server (AD CS) ou OpenSSL
  • Comprendre TLS/SSL et la chaîne de confiance

📖 Cryptographie asymétrique — rappel

La cryptographie asymétrique utilise une paire de clés mathématiquement liées :

  • Clé publique : peut être distribuée librement, utilisée pour chiffrer ou vérifier une signature
  • Clé privée : secrète, utilisée pour déchiffrer ou signer

Le problème fondamental : comment être sûr que la clé publique appartient bien à qui elle prétend ? → C'est là qu'intervient le certificat numérique.

📖 Le certificat X.509

Structure d'un certificat

Un certificat numérique (standard X.509 v3) est un fichier signé numériquement par une Autorité de Certification (CA) qui atteste qu'une clé publique appartient bien à une entité donnée :

ChampDescriptionExemple
VersionVersion X.509v3
Serial NumberNuméro unique attribué par la CA0x4A2F...
IssuerIdentité de la CA émettriceCN=IRIS-CA, O=IRIS, C=FR
SubjectIdentité du titulaireCN=www.iris.fr, O=IRIS Mediaschool
ValidityPériode de validité (Not Before / Not After)2026-01-01 → 2027-01-01
Public KeyClé publique du titulaireRSA 2048 bits ou EC P-256
ExtensionsSAN, Key Usage, Extended Key Usage, CDP, AIA…DNS:www.iris.fr, IP:203.0.113.1
SignatureSignature numérique de la CASHA-256 with RSA Encryption
# Inspecter un certificat avec OpenSSL
openssl x509 -in certificat.crt -text -noout

# Exemple de sortie partielle :
# Subject: CN = www.iris.fr, O = IRIS Mediaschool, C = FR
# Validity
#     Not Before: Jan  1 00:00:00 2026 GMT
#     Not After : Jan  1 00:00:00 2027 GMT
# Subject Alternative Name:
#     DNS:www.iris.fr, DNS:iris.fr, IP Address:203.0.113.1
# X509v3 Key Usage: Digital Signature, Key Encipherment

📖 Architecture PKI

Composants d'une PKI

  • CA Racine (Root CA) : sommet de la chaîne de confiance, auto-signé, généralement hors ligne
  • CA Intermédiaire (Issuing CA) : signée par la CA racine, émet les certificats utilisateurs/serveurs
  • RA (Registration Authority) : vérifie l'identité des demandeurs avant soumission à la CA
  • Dépôt de certificats : annuaire LDAP ou serveur HTTP publiant les certificats et LCR
  • OCSP (Online Certificate Status Protocol) : vérification de révocation en temps réel
  • LCR (Liste de Révocation de Certificats / CRL) : liste périodique des certificats révoqués

Chaîne de confiance

CA Racine IRIS (auto-signé, hors ligne)
    └── CA Intermédiaire IRIS-Issuing (signée par Root CA)
            ├── Certificat serveur: www.iris.fr
            ├── Certificat serveur: vpn.iris.fr
            └── Certificat utilisateur: jdupont@iris.fr

📖 Déploiement PKI — OpenSSL

# 1. Créer la CA Racine (à faire hors ligne)
openssl genrsa -aes256 -out ca-root.key 4096
openssl req -new -x509 -days 3650 -key ca-root.key -out ca-root.crt \
  -subj "/CN=IRIS Root CA/O=IRIS Mediaschool/C=FR"

# 2. Créer la CA Intermédiaire
openssl genrsa -out ca-inter.key 4096
openssl req -new -key ca-inter.key -out ca-inter.csr \
  -subj "/CN=IRIS Issuing CA/O=IRIS Mediaschool/C=FR"
# Signer avec la CA Racine
openssl x509 -req -days 1825 -in ca-inter.csr -CA ca-root.crt \
  -CAkey ca-root.key -CAcreateserial -out ca-inter.crt \
  -extensions v3_ca

# 3. Émettre un certificat serveur
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr \
  -subj "/CN=www.iris.fr/O=IRIS Mediaschool/C=FR"

# Fichier d'extensions SAN
cat > san.ext <<EOF
[SAN]
subjectAltName=DNS:www.iris.fr,DNS:iris.fr
keyUsage=digitalSignature,keyEncipherment
extendedKeyUsage=serverAuth
EOF

# Signer avec la CA Intermédiaire
openssl x509 -req -days 365 -in server.csr -CA ca-inter.crt \
  -CAkey ca-inter.key -CAcreateserial -out server.crt \
  -extfile san.ext -extensions SAN

# 4. Vérifier la chaîne
openssl verify -CAfile ca-root.crt -untrusted ca-inter.crt server.crt

📖 Révocation de certificats

Pourquoi révoquer ?

Un certificat doit être révoqué lorsque sa clé privée est compromise, que le titulaire quitte l'organisation, ou que les informations du certificat sont incorrectes. La révocation doit être vérifiée avant d'utiliser un certificat.

CRL vs OCSP

MécanismeFonctionnementAvantagesInconvénients
CRLFichier téléchargé périodiquement listant les certificats révoquésSimple, fonctionne hors ligneLatence de mise à jour, taille croissante
OCSPRequête en temps réel au serveur OCSP de la CAVérification instantanéeDépendance réseau, vie privée (la CA sait quels certificats sont vérifiés)
OCSP StaplingLe serveur TLS embarque la réponse OCSP signée dans la poignée de main TLSPas de requête du client vers la CA, performantLe serveur doit renouveler régulièrement la réponse OCSP

📖 PKI Windows — AD CS

Windows Server inclut les Active Directory Certificate Services (AD CS), permettant de déployer une PKI intégrée à l'AD :

# PowerShell — Installer AD CS
Install-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools

# Configurer comme CA d'entreprise subordonnée
Install-AdcsCertificationAuthority `
  -CAType EnterpriseSubordinateCa `
  -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" `
  -KeyLength 2048 `
  -HashAlgorithmName SHA256 `
  -CACommonName "IRIS-Issuing-CA" `
  -Force

# Émettre un certificat via le modèle "WebServer"
certreq -new -f request.inf request.csr
certreq -submit -config "srv-ca\IRIS-Issuing-CA" request.csr certificate.crt

🛠️ Outils / Ressources

  • OpenSSL : outil incontournable pour gérer les certificats en ligne de commande
  • AD CS (Windows Server) : PKI intégrée à Active Directory
  • Let's Encrypt : CA publique gratuite, automatisation via ACME (certbot)
  • HashiCorp Vault : gestion des secrets et PKI dynamique
  • ssllabs.com : test de configuration TLS des serveurs web
  • crt.sh : recherche dans la Certificate Transparency

📝 QCM — Testez vos connaissances

  1. Qu'est-ce qu'un certificat numérique X.509 et quel problème résout-il ?
  2. Pourquoi la CA Racine doit-elle être maintenue hors ligne ?
  3. Quelle est la différence entre CRL et OCSP ?
  4. Qu'est-ce que le SAN (Subject Alternative Name) dans un certificat ?
  5. Quelle est la différence entre une CA publique et une CA privée (interne) ?
  6. Qu'est-ce que l'OCSP Stapling et quel problème résout-il ?
📝 Afficher les corrections
  1. Un certificat numérique est un fichier signé par une CA attestant qu'une clé publique appartient à une entité. Il résout le problème de confiance : comment être sûr que la clé publique est authentique (et non substituée par un attaquant).
  2. Pour protéger la clé privée racine — Si la CA Racine est compromise, toute la PKI est compromise. La maintenir hors ligne (air-gap) dans un HSM protège la clé racine. Les CA intermédiaires gèrent le quotidien.
  3. CRL = liste téléchargée périodiquement des certificats révoqués (latence possible) ; OCSP = vérification en temps réel par une requête au serveur OCSP de la CA.
  4. Extension permettant de lister tous les noms de domaine et adresses IP couverts par le certificat (en plus du CN). Obligatoire dans les navigateurs modernes pour la validation du nom d'hôte.
  5. CA publique (ex : Let's Encrypt, DigiCert) : reconnue par les navigateurs et OS, utilisée pour les sites web publics. CA privée : interne à l'entreprise, doit être ajoutée manuellement aux stores de confiance, utilisée pour les services internes.
  6. Le serveur TLS embarque la réponse OCSP signée dans la poignée de main TLS, évitant au client d'interroger la CA (gain de performance, protection de la vie privée, pas de dépendance à la disponibilité du serveur OCSP).

📚 Cours détaillés — 1 séance

▶ C3.2.3 Séance 1 — Certificats numériques et PKI
← Cours précédent Module suivant →