05/12/2023
PKI (Public Key Infrastructure) / ICP (Infrastructure à Clé Publique)
Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
2
Co-Fondateur
Julien YVENAT
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Enjeux de sécurité
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Enjeux de sécurité 4
Inventée en 1977 par trois cryptographes via l’invention de l’algorithme RSA.
Leurs initiales : Ronald Rivest, Adi Shamir et Leonard Alderman.
• Pourquoi les PKI ?
• Résolution des problèmes d’échanges de secret
• Moyen simple d’identification
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Cryptographie
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Les certificats 6
Un certificat électronique (aussi appelé certificat numérique ou certificat de clé publique) peut être vu
comme une carte d'identité numérique. Il est utilisé principalement pour identifier et authentifier une
personne physique ou morale, mais aussi pour chiffrer des échanges.
Un certificat électronique est un ensemble de données contenant :
• au moins une clé publique ;
• des informations d'identification, par exemple : nom, localisation, adresse électronique ;
• au moins une signature (construite à partir de la clé privée) ; de fait quand il n'y en a qu'une,
l'entité signataire est la seule autorité permettant de prêter confiance (ou non) à l'exactitude des
informations du certificat.
Les certificats électroniques et leur cycle de vie peuvent être gérés au sein d'infrastructures à clés
publiques.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Les certificats 7
Les certificats électroniques respectent des standards spécifiant leur contenu de façon rigoureuse. Les
deux formats les plus utilisés aujourd'hui sont :
• X.509, défini dans la RFC 52805 ;
• OpenPGP, défini dans la RFC 48806.
La différence entre ces deux formats est qu'un certificat X.509 ne peut contenir qu'un seul identifiant,
que cet identifiant doit contenir de nombreux champs prédéfinis, et ne peut être signé que par une seule
autorité de certification.
Un certificat OpenPGP peut contenir plusieurs identifiants, lesquels autorisent une certaine souplesse sur
leur contenu, et peuvent être signés par une multitude d'autres certificats OpenPGP, ce qui permet alors
de construire des toiles de confiance.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
X.509 8
Informations généralement contenues dans un certificat x.509 :
• Informations sur le sujet du certificat
• Clé publique correspondant à la clé privée du sujet
• Informations sur l’autorité de certification émettrice
• Algorithmes de chiffrement et/ou de signature numérique pris en charge
• Informations pour déterminer l’état de révocation et de validité du certificat
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
X.509 9
Les champs du certificat :
• Version : valeur (1, 2 ou 3) qui identifie le numéro de version du certificat
• Serial Number (Numéro de série) : numéro unique pour chaque certificat émis par une
autorité de certification
• CA Signature Algorithm (Algorithme de signature de l’autorité de certification) : nom de
l’algorithme utilisé par l’autorité de certification pour signer le contenu du certificat
• Issuer Name (Nom de l’émetteur) : nom unique de l’autorité de certification émettrice du
certificat
• Validity Period (Période de validité) : période pendant laquelle le certificat est considéré
comme valide
• Subject Name (Nom du sujet) : nom de l’entité représentée par le certificat
• Subject Public Key Info (Informations sur la clé publique du sujet) : clé publique appartenant
au sujet du certificat
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
X.509 10
Les champs du certificat :
La version 2 a ajouté les champs suivants contenant des informations sur l’émetteur du certificat.
Toutefois, ces champs sont rarement utilisés.
• Issuer Unique ID (ID unique de l’émetteur) : identificateur unique de l’autorité de certification
émettrice, tel que défini par cette dernière
• Subject Unique ID (ID unique du sujet) : identificateur unique du sujet du certificat tel que défini par
l’autorité de certification émettrice
Les certificats version 3 ont ajouté les extensions suivantes :
• Authority Key Identifier (Identificateur de clé d’autorité) : Deux valeurs sont possibles :
• Le sujet de l’autorité de certification et le numéro de série du certificat de l’autorité de certification qui
a émis ce certificat
• Code de hachage de la clé publique de l’autorité de certification qui a émis ce certificat
• Subject Key Identifier (Identificateur de la clé du sujet) : code de hachage de la clé publique du
certificat actuel
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
X.509 11
• Key Usage (Utilisation de la clé) : définit le service pour lequel un certificat peut être utilisé. Il peut
s’agir de l’une ou plusieurs des valeurs suivantes :
• Signature numérique
• Non-répudiation
• Chiffrement de la clé
• Data Encipherment (Chiffrement des données)
• Key Agreement (Accord d’échange de clé)
• Key Cert Sign (Signature de certificat de clé)
• CRL Sign (Signature de liste de révocation de certificats)
• Encipher Only (Chiffrer uniquement)
• Decipher Only (Déchiffrer uniquement)
• Private Key Usage Period (Période d’utilisation de la clé privée) : période de validité de la partie clé
privée d’une paire de clés
• Certificate Policies (Stratégies de certificat) : stratégies utilisées pour valider le sujet du certificat
• Policy Mappings (Mappages de stratégie) : mappe une stratégie dans une organisation à une stratégie
dans une autre
• Subject Alternative Name (Autre nom du sujet) : liste des noms de remplacement pour le sujet
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
X.509 12
• Issuer Alternative Name (Autre nom de l’émetteur) : liste des noms de remplacement pour
l’autorité de certification émettrice
• Subject Dir Attribute (Attribut d’annuaire du sujet) : attributs d’un annuaire X.500 ou LDAP
• Basic Constraints (Contraintes de base) : permet au certificat d’indiquer s’il est délivré à une
autorité de certification ou à un utilisateur, un ordinateur, un appareil ou un service. Cette
extension comprend également une contrainte de longueur de chemin qui limite le nombre
d’autorités de certification secondaires qui peuvent exister.
• Name Constraints (Contraintes de nom) : désigne les espaces de noms autorisés dans un
certificat émis par une autorité de certification
• Policy Constraints (Contraintes de stratégie) : peuvent être utilisées pour interdire les
mappages de stratégie entre autorités de certification
• Extended Key Usage (Utilisation étendue de la clé) : indique comment la clé publique d’un
certificat peut être utilisée au-delà des finalités identifiées dans l’extension Key Usage.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
X.509 13
• CRL Distribution Points (Points de distribution de liste de révocation de certificats) : contient
une ou plusieurs URL où la liste de révocation de certificats de base est publiée.
• Inhibit anyPolicy (Inhiber toute stratégie) : empêche l’utilisation de l’OID All Issuance Policies
(Toutes les stratégies d’émission) ([Link].0) dans les certificats d’autorité de certification
secondaires.
• Freshest CRL (Liste de révocation de certificats la plus récente) : contient une ou plusieurs
URL où la liste de révocation de certificats delta de l’autorité de certification émettrice est
publiée
• Authority Information Access (Accès aux informations de l’autorité) : contient une ou
plusieurs URL où le certificat de l’autorité de certification émettrice est publié
• Subject Information Access (Accès aux informations du sujet) : contient des informations sur
la façon de récupérer des détails supplémentaires pour un sujet de certificat
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
X.509 14
Formats de certificat
Les certificats peuvent être enregistrés dans différents formats. L’authentification Azure IoT
Hub utilise généralement les formats PEM et PFX.
• Certificat binaire
• Il contient un certificat binaire à l’état brut utilisant l’encodage DER ASN.1.
• Format PEM ASCII
• Un certificat PEM (extension .pem) contient un certificat encodé en base64 qui
commence par -----BEGIN CERTIFICATE----- et se termine par -----END
CERTIFICATE-----. Le format PEM est très courant et est demandé par IoT Hub lors du
chargement de certains certificats.
• Clé ASCII (PEM)
• Contient une clé DER encodée en base64 contenant éventuellement des métadonnées
supplémentaires sur l’algorithme utilisé pour la protection par mot de passe.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
X.509 15
• Certificat PKCS#7
• Format conçu pour le transport des données signées ou chiffrées. Il est défini par la
spécification RFC 2315. Il peut inclure la totalité de la chaîne de certificats.
• Clé PKCS#8
• Format d’un magasin de clés privées défini par la spécification RFC 5208.
• Clé et certificat PKCS#12
• Format complexe qui peut stocker et protéger une clé et la totalité de la chaîne de
certificats. Il est couramment utilisé avec une extension .pfx. PKCS#12 est synonyme du
format PFX.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Système de clés 16
Chiffrement asymétrique
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Signature 17
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
OCSP remplace CRL 18
Plusieurs raisons peuvent amener à préférer le protocole OCSP aux traditionnelles CRL :
• OCSP fournit des informations sur le statut du certificat plus à jour ;
• avec OCSP, le client n'a plus besoin de récupérer lui-même la CRL. Vu la taille parfois
importante de cette CRL, cela allège le trafic réseau ;
• le client n'a plus à traiter lui-même la CRL. Cela permet l'économie d'un traitement
relativement complexe ;
• le répondeur OCSP permet de proposer des mécanismes de facturation au vendeur, et
non pas à l'acheteur ;
• les CRL peuvent être comparées à une « liste de mauvais clients » d'une banque. Cela
constitue une fuite d'information non souhaitable.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
PKI
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
PKI 20
DÉFINITION :
Une infrastructure à clés publiques (ICP) ou infrastructure de gestion de clés (IGC) ou encore
Public Key Infrastructure (PKI), est un ensemble de composants physiques (des ordinateurs,
des équipements cryptographiques logiciels ou matériel type Hardware Security Module
(HSM ou boîte noire transactionnelle) ou encore des cartes à puces), de procédures humaines
(vérifications, validation) et de logiciels (système et application) destiné à gérer les clés
publiques des utilisateurs d'un système.
Une infrastructure de gestion de clés permet de lier des clés publiques à des identités (comme
des noms d'utilisateurs ou d'organisations). Une infrastructure de gestion de clés fournit des
garanties permettant de faire a confiance à une clé publique obtenue par son biais.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Architecture d’une PKI 21
Diagramme de principe d'une autorité de
certification. Exemple d'infrastructure à
clés publiques :
• CA : autorité de certification ;
• VA : autorité de validation ;
• RA : autorité d'enregistrement.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Rôle d’une PKI 22
Une infrastructure à clés publiques assiste les utilisateurs pour obtenir les clés publiques nécessaires. Ces
clés publiques permettent d'effectuer des opérations cryptographiques, comme le chiffrement et la
signature numérique qui offrent les garanties suivantes lors des transactions électroniques :
• confidentialité : elle garantit que seul le destinataire (ou le possesseur) légitime d'un bloc de données ou
d'un message peut en avoir une vision intelligible ;
• authentification : elle garantit à tout destinataire d'un bloc de données ou d'un message ou à tout
système auquel tente de se connecter un utilisateur, l'identité de l'expéditeur ou de l'utilisateur en
question ;
• intégrité : elle garantit qu'un bloc de données ou qu'un message n'a pas été altéré, accidentellement ou
intentionnellement ;
• non-répudiation : elle garantit à quiconque que l'auteur d'un bloc de données ou d'un message ne peut
renier son œuvre, c'est-à-dire prétendre ne pas en être l'auteur.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Modèles d’infrastructures 23
Il existe plusieurs instanciations possibles d'infrastructures de gestion de clés. Chacun de ces modèles
permet d'obtenir une clé publique à partir d'un identifiant, leur mise en œuvre, les garanties apportées et
les risques associés étant différents.
Sans exhaustivité, nous pouvons notamment distinguer :
• les autorités de certification ;
• la toile de confiance ;
• DANE ;
• l'usage de la blockchain.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Autorité de certification 24
En cryptographie, une Autorité de Certification (AC ou CA pour Certificate
Authority en anglais) est un tiers de confiance permettant d'authentifier
l'identité des correspondants. Une autorité de certification délivre des
certificats décrivant des identités numériques et met à disposition les moyens
de vérifier la validité des certificats qu'elle a fournis.
Les services des autorités de certification sont principalement utilisés dans le
cadre de la sécurisation des communications numériques via protocole
Transport Layer Security (TLS) utilisé par exemple pour sécuriser les
communications web (HTTPS) ou email (SMTP, POP3, IMAP... sur TLS), ainsi
que pour la sécurisation des documents numériques (par exemple au moyen
de signatures électroniques avancées telles que PAdES pour des documents
PDF, ou via le protocole S/MIME pour les emails).
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
La toile de confiance 25
En cryptographie, la toile de confiance est un concept utilisé par PGP, GnuPG,
ainsi que d'autres applications compatibles avec OpenPGP. La toile de
confiance permet de vérifier la relation entre une clé publique et une identité
numérique.
Contrairement aux modèles centralisés où la confiance que l'on peut prêter ne
passe que par une autorité de certification (CA ou hiérarchie de CA) dont on
ne sait rien pour la plupart, une toile de confiance est relative à un individu qui
peut choisir lui-même les tiers (en général d'autres personnes physiques) à qui
il fait confiance.
De ce fait, il existe de nombreuses toiles de confiances indépendantes.
N'importe qui peut en faire partie (via son propre certificat), et être un lien
entre différentes toiles.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
DANE - based Authentication of Named Entities 26
L'IETF (Internet Engineering Task Force) a proposé le protocole/mécanisme
DANE (DNS - based Authentication of Named Entities) qui s’appuie sur le DNS
pour authentifier des entités applicatives.
Cette démarche s'enregistre dans une logique de sécurisation des accès clients-
serveurs en :
• Sécurisant les requêtes DNS effectuées depuis les postes clients au
travers des protocoles/mécanismes DNSSEC et TLS
• Mieux sécuriser les accès chiffrés des clients vers les serveurs
Le principe est décrit dans les normes IETF suivantes :
• RFC 63941: Cas d’utilisation DANE
• RFC 66982: Protocole DANE
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Sécurité et Risques liés à une PKI
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Sécurité liée à une PKI 28
• Gestion des CA (Autorité de certification)
• Gestion des relations et approbations
• Droit sur les certificats
• Algorithme choisi pour le chiffrement et le hashage
• Mise à jour des listes de révocation
• Auditer les accès aux certificats
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Risques liés à une PKI 29
• Les attaques par force brute
• Les attaques par rejeu
• Les attaques par substitution
• Les attaques par déni de service
• Les attaques par compromission de clé
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Vulnérabilité de génération 30
• Mauvais nom de certificat
• Mauvais nom de domain
• Nom de domaine trop large
• Certificat auto-signé
• Noms internes
• Le certificat à comme nom alternatif des noms internes (Non routable sur Internet, .local, .int…)
• Touts les noms sans nom de domaine public. Ex : Web1, monsrveur…
• Les IPv4 dans la range privée (RFC 1918).
• Les IPv6 dans la range privée (RFC 4193).
• Hash faible
• Tous les hash non reconnus ou faible (sha1, md5…)
• Chiffrement faible
• RSA 1024 ou moins
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Vulnérabilité de génération 31
• Mauvaise valeurs ou manquantes :
• Pas d’information AIA.
• Pas d’URL OCSP. Permet de vérifier la validité du certificat.
• Pas d’information EKU sur l’authentification du server web.
• Pas de détail sur l’usage de la clé,
• Le certificat à une date de commencement de validité dans le future.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Vulnérabilité de génération 32
• Attaque MITM
• Problème de redirection mal effectuée
• Redirection 302 d’un site non SSL vers un site en SSL
• Compromission d’un CA → Création de certificat par l’attaquant
• Hébergement de faux site
• Si utilisation de wildcard sur un site frontal sur internet, un attaquant peut héberger autant de
site web qu’il veut.
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Utilisation
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
Utilisation des certificats 34
• HTTPS
• S/MIME
• Authentification (pour le réseau par exemple (802.1x/802.11x))
• Partage sécurisé
• Et beaucoup d’autres
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
TP
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
TP - PKI 36
Manipulation de certificat :
• Générer votre propre paire de clé asymétrique
• Distribuer votre clé publique sur des serveurs OpenPGP officiels
• Exportez votre clé publique dans un format standard, comme PEM ou DER. Vérifiez que votre clé
publique est bien conforme au format choisi.
Sécurisation des communication email :
• Envoyer un e-mail signé et chiffré à vos collègues
Suspendre un certificat :
• Révoquez votre certificat.
• Vérifier son invalidité avec vos collègues lors d’envoi de mails signés
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
TP - PKI 37
Mise en place d’une autorité de certification interne :
• Mettre en place un ADCS
• Générer un certificat web pour faire du HTTPS
• Générer un certificat utilisateur pour l’identifier
• Générer un certificat utilisateur pour chiffrer les données (EFS)
• Mise en place d’un partage de fichier chiffré
OpenPGP vs X.509 :
• Chiffrer un fichier et partager le avec un tier
• Signer un fichier et partager le avec un tier
Même chose mais avec EJBCA : EJBCA - The Open-Source Certificate Authority (CA)
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
TP - PKI 38
Sécuriser les communications DNS :
• Mise en place d’un DNSSEC
Automatisation des renouvellements de certificat :
• Automatiser le renouvellement des certificats utilisateurs et ordinateurs
• Automatiser le renouvellement des certificats de votre serveur Web
Authentification :
• Authentifier vous sur votre serveur Web grâce à votre certificat
• Mise en place d’un certificat carte à puce pour authentification Windows
• Mise en place de la SSO sur votre site Web grâce à l’authentification Windows
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation
TP - PKI 39
Même chose mais avec EJBCA : EJBCA - The Open-Source Certificate Authority (CA)
PKI (Public Key Infrastructure) Restreint
Le contenu de ce document est la propriété de Wallack et ne peut être utilisé ou reproduit sans son autorisation