|
|
 |
|
 |
|
 |
|
 |
|
PKI (Public Key Infrastructure)
|
|
 |
|
 |
Qu'est-ce que c'est ?
PKI (Public Key Infrastructure) est un système de gestion des
clefs publiques qui permet de gérer des listes importantes de clefs publiques et d'en assurer la fiabilité,
pour des entités généralement dans un réseau. Elle offre un cadre global permettant d'installer des éléments
de sécurité tels que la confidentialité, l'authentification, l'intégrité et la non-répudiation tant au sein
de l'entreprise que lors d'échanges d'information avec l'extérieur.
Une infrastructure PKI fournit donc quatre services principaux:
- fabrication de bi-clés.
- certification de clé publique et publication de certificats.
- Révocation de certificats.
- Gestion la fonction de certification.
Techniquement
Une infrastructure à clé publique utilise des mécanismes de signature et certifie des clés publiques qui permettent de chiffrer et de signer des messages ainsi que des flux de données, afin d'assurer la confidentialité, l'authentification, l'intégrité et la non-répudiation.
- Signature :
Dans la signature nous avons une bi-clé : une clé (privé) pour la création de siganture et une clé (publique) pour la vérification de signature, pour signer un message voici comment se passe:
- 1) à l'aide de la clé privée de signature de l'expéditeur, une empreinte connue sous le nom "message digest" est générée par hachage en utilisant l'algorithme SHA-1 ou MD5, le plus utilisé étant SHA-1. Cette empreinte est ensuite cryptée avec cette clé privée de signature.
- 2) on joint au message l'empreinte et le certificat contenant la clé publique de signature.
- 3) le destinataire vérifie la validité du certificat et sa non révocation dans l'annuaire.
- 4) le destinataire transforme l'empreinte avec la clé publique de signature ainsi validée. Cette opération permet de s'assurer de l'identité de l'expéditeur.
- 5) ensuite le destinataire génère une empreinte à partir de message reçu en utilisant le même algorithme de hachage. Si les deux empreintes sont identiques, cela signifie que le message n'a pas été modifié.
Donc la signature vérifie bien l'intégrité du message ainsi que l'identité de l'expéditeur.
Exemples d'algorithme de signature: RSA,DSA
- Défintions :
- Confidentialité : Les informations échangées deviennent illisibles,cette confidentialité est assurée par le chiffrement
- Authentification : identification de l'origine de l'information.
- Non-répudiation : l'émetteur des données ne pourra pas nier être à l'origine du message.
- Intégrité : fonction permettant d'assurer que l'information n'a pas subi de modification .
-Chiffrement :
Il y a deux types de chiffrement possible :
- Chiffrement à clé secrète (symétrique):
L’émetteur utilise une clé pour chiffrer le message et le destinataire utilise la même clé (le même algorithme mais en sens inverse) pour déchiffrer le message.
- Chiffrement à clé publique (asymétrique) :
Un message chiffré avec une clé publique donnée ne peut être déchiffré qu’avec la clé privée correspondante.
Par exemple si A souhaite envoyer un message chiffré à B, il le chiffrera en utilisant la clé publique de B (qui peut être publié dans l'annuaire). La seule personne qui déchiffre le message est le détenteur de la clé privée de B.
Exemples d'algorithme de chiffrement:
- Symétrique: DES;AES
- Asymétrique: RSA
Organisation d'une PKI

Organisation d'une PKI
Dans une infrastructure à clé publique ; pour obtenir un certificat numérique, l'utilisateur fait une demande
auprès de l'autorité d'enregistrement. Celle-ci génère un couple de clé (clé publique, clé privée), envoie la clé
privée au client, applique une procédure et des critères définis par l'autorité de certification qui certifie
la clé publique et appose sa signature sur le certificat, parfois fabriqué par un opérateur de certification.
La Structure d'un Certificat numérique selon la norme X509
- Version : indique à quelle version de X509 correspond ce certificat
- Numéro de série : Numéro de série du certificat
- Algorithme de signature: identifiant du type de signature utilisée
- Emetteur : Distinguished Name (DN) de l'autorité de certification qui a
émis ce certificat.
- Valide à partir de: la date de début de validité de certificat
- Valide jusqu'à : la date de fin de validité de certificat
- Objet: Distinguished Name (DN) de détenteur de la clef publique
- Clé publique : infos sur la clef publique de ce certificat
- Contraintes de base : extensions génériques optionnelles
- Utilisation de la clé : l'objet d'utilisation de la clé
- Algorithme thumbprint : alogrithme de signature
- Thumbprint : signature numérique de l'autorité de certification sur l'ensemble des champs précédents.
Exemple d'un Certificat X509 généré par OPENSSL
Gestion des clefs
L'utilisation de bi-clefs certifiés entraîne la nécessité de la publication en toute confiance de la clef publique.
Cette publication doit assurer la validité de clé et l'appartenance de cette clé à la bonne personne.
La publication des certificats (des clefs publiques) est faite en utilisant les structures d'annuaires de type LDAP
(Lightweight Directory Access Protocol) (RFC 2251), les certificats révoqués sont regroupés dans des listes de
révocations (CRL) qui sont des structures de données signées et dont le format est défini par le protocole X509 V2,
ce format peut permettre une distribution des CRL via les annuaires LDAP comme Netscape Directory Server d'iplanet
ou bien openldap.
Quelques offres commerciales d'infrastructure à clé publique
PKI gratuite ( OpenPKI)
L'utilisation du PKI
Prenons un exemple de l'authentification mutuelle : la partie
cliente d'une application présente un certificat à la partie serveur, qui en
vérifie la validité auprès de l'annuaire des certificats révoqués, à l'inverse, le
serveur peut lui-même envoyer un certificat au client, ce qui permet une
authentification mutuelle, par exemple un web sécurisé.
Une telle procédure est intéressante pour un VPN (Virtual private Network), dans le cas des équipements
réseaux cette intégration est normalisée par le protocole IPSEC IKE (Internet
Key Exchange). Pour les intranets, les éditeurs de PKI s'appuient sur les
protocoles SSL (Secure Socket Layers) que les navigateurs et les serveurs web
supportent nativement.
Conclusion
Une PKI est une infrastructure qui se construit, c'est donc une
structure à la fois technique et administrative, avec 80% d'organisationnelle et
20% de technique. Le domaine des PKI est intéressant : il est possible de les utiliser pour
des applications tels que mail chiffré, web sécurisé VPN (notamment IPSEC),
commerce électronique...
Et comme les PKI intègrent la cryptographie à clef
publique et certificat numérique, elles peuvent se confier à des tiers de confiance
et doivent recevoir l'agrément du DCSSI ( Direction Central de la Sécurité des
Systèmes d'Information), pour avoir une portée nationale. Actuellement
l'absence de standards pour l'implantation des PKI, engendre des problèmes
d'interopérabilité entre les offres du marché.
Lexique
Autorité de certification : entité qui crée
des certificats. C'est une autorité morale qui définit les règles d'entrée des
ressources et des individus dans la PKI. En pratique, il s'agit de définir les
critères et les modalités d'attribution de certificats numériques.
Autorité d'enregistrement : entité chargée de recueillir les
demandes de certificats et de contrôler l'identité de la personne ainsi que les critères d'attribution.
Certificat : Une identité électronique qui est émise par une
tierce partie de confiance pour une personne ou une entité réseau. Chaque
certificat est signé avec la clé privée de signature d'une autorité de
certification. Il garantit l'identité d'un individu, d'une entreprise ou d'une
organisation. En particulier, il contient la clé publique de l'entité et des
informations associées à cette entité.
Certificat Auto signé : un
certificat auto signé contient comme tout certificat une clé publique. Sa
particularité réside dans le fait que ce certificat est signé avec la clé
secrète associée. Dans ce cas précis, l'autorité de certification est donc le
détenteur du certificat.
Certificat X.509 : Il s'agit d'une norme
sur les certificats largement acceptée et conçue pour supporter une gestion
sécurisée et la distribution des certificats numériquement signés sur le réseau
Internet sécurisé. Le certificat X.509 définit des structures de données en
accord avec les procédures pour distribuer les clés publiques qui sont signées
numériquement par des parties tierces.
Certificat X.509v3 : Les
certificats X.509v3 ont des extensions de structures de données pour stocker et
récupérer des informations pour les applications, des informations sur les
points de distribution des certificats, des CRLs et des informations sur les
politiques de certification. Chaque fois qu'un certificat est utilisé, les
capacités de X.509v3 permettent aux applications de vérifier la validité de ce
certificat. Il permet aussi à l'application de vérifier si le certificat est
dans une CRL. Ces certificats et CRLs sont normalisés auprès de l'IETF dans la
RFC 2459.
Clé : Une quantité utilisée en cryptographie pour
chiffrer/déchiffrer et signer/vérifier des données.
CRL :
(Certificat Revocation List) se sont les listes de révocations de certificats.
Clé Publique : quantité numérique, attachée à une
ressource ou un individu, qui la distribue aux autres afin qu'ils puissent lui
envoyer des données chiffrées ou déchiffrer sa signature.
Clé
Privée : quantité numérique secrète attachée à une ressource ou à un individu, lui permettant de
déchiffrer des données chiffrées avec la clé publique correspondante ou d'apposer
une signature au bas de messages envoyés vers des destinataires.
Bi-clé : couple de clés composé d'une clé privée et d'une clé publique
MD5 : Message Digest 5 c'est un algorithme de hachage
RSA : Algorithme de chiffrement à clef publique et de signature inventé par R.Rivest, A.Shamir et l.Adleman
DSA :Digital Signature Algorithm.
AES :Advanced Encryption Standard.
SHA-1 : Secure Hash Algorithm Number 1.SHA est un algorithme de hachage
SSL : (Secure Socket Layer), c'est un protocole de sécurisation
conçu par Netscape qui se situe entre la couche transport (TCP) et les protocoles
de la couche application. Il assure les services de sécurité suivantes :
confidentialité, 'intégrité et 'authentification du serveur et du client.
|
|
 |
|
 |
|
|