pki et certification ahmed serhrouchni enstparis cnrs
TRANSCRIPT
PKIet
Certification
Ahmed Serhrouchni
ENST’Paris
CNRS
2
PlanPlan
La cryptographie asymétrique.
Infrastructure à Clé publique (PKI).
Modèle de Confiance.
Structure du Certificat numérique.
Conclusion
3
Cryptographie asymétrique et gestion des clés
Problèmes:
Distribution des clés• Obtenir la clé publique d’une autre entité
• Distribuer sa propre clé publique
Révocation • Révoquer une clé publiée
• Déterminer si une clé publiée est valide ou non
4
Distribution des clés publiques
1.1. Alice envoie sa clé publique à Bob
2.2. Mallet intercepte la clé et la remplace avec sa propre clé
3.3. Mallet peut décrypter tout le trafic et générer des signatures falsifiées
Alice Bob
Alice Bob Mallet
/
5
Distribution des clés publiques (suite)
Une autorité de certification (CA) résout ce problème:
• Alice envoie sa clé publique au CA
• Alice prouve qu’elle détient la clé privée correspondant à la clé publique envoyée
• Le CA vérifie l’identité d’Alice
• Le CA signe l’ensemble: clé publique et identité d’Alice avec sa clé privée, le document signé est appelé certificat
Quand Bob reçoit le certificat d’Alice, il est sûr que la clé qui y est certifiée est celle d’Alice
6
C’est quoi un certificat numérique ?
Structure de données liant différents éléments au moyen de la signature d’une autorité de confiance
7
Infrastructure à clé publique (PKI)
D’après le standard X.509:
CA Répertoire
Utilisateur final
Publie /
Publie la révocation
Demande / Émet
Mais:•Le CA doit vérifier les détails de chaque utilisateur•Risques pour la sécurité du CA
8
Infrastructure à clé publique (suite)
Autorité d’enregistrement (RA)•Intermédiaire entre détenteur de clé et CA•Vérifie les requêtes des utilisateurs et les transmet au CA•Le niveau de vérification dépend de la politique de certification (CPS) mise en œuvre
CA Répertoire
Utilisateurs finaux
Publie /
Publie la révocation
Demande / Émet
RA
9
Composants d’une PKI
• Principaux– Autorité de certification CA– Autorité d’enregistrement RA– Annuaire de publication– Administrateurs
• Complémentaires– Base de données– Serveur d’horodatage.– Serveur HTTP, SMTP, POP.
10
Modèle de confiance dans X.509
•Infrastructure hiérarchique
•Possibilité de certification entre 2 CAs appartenant à des arbres différents, c’est la co-certification
1
3
54
2
1 CA
Utilisateur final
CA11
3
5
2
CA2CA1 co-certifie CA2
11
Certificats X.509
Principal format utilisé pour les certificats
Norme:• ITU-T X.509, ou ISO/IEC 9594-8
Versions successives:• 1988 : v1• 1993 : v2 = v1 + 2 nouveaux champs• 1996 : v3 = v2 + extensions
12
Version (V1)
Serial Number (V1)
Signature Algorithm Identifier (V1)(pour la signature de l’émetteur du certificat)
Issuer (V1) (Nom X500 du CA)
Validity (V1)(Dates début et fin du certificat)
Subject (V1)(Nom X500 du détenteur)
SubjectPublicKeyInformation (V1)(Identificateur de l’algorithme et clé publique)
IssuerUniqueIdentifier (V2)
SubjectUniqueIdentifier (V2)
Extensions (V3)
Signature digitale du CA
Structure d’un certificat X.509
Génération de la signature
Clé privée du CA
13
Structure d’un certificat X.509
– IssuerUniqueIdentifieidentifie de façon unique la clé utilisée par le CA pour signer le certificat (cas où le CA a utilisé plusieurs clés depuis sa mise en œuvre)
– SubjectUniqueIdentifierDifférencie entre plusieurs clés publiques, issues par le même CA, appartenant à un même détenteur
14
Structure d’un certificat X.509
15
Extensions d’un Certificat X.509
Le concept d’origine des certificats X.509 est de relier l’identité d’une entité à une clé publique
Nouvelles situations: besoin d’avoir d’autres informations que l’identité
Solution: Introduction de blocks de données pouvant supporter n’importe quel type d’informations pour satisfaire des besoins locaux
16
Extensions d’un Certificat X.509 (suite)
Rajout de nouveaux champs sans la modification de la définition ASN.1 d’un certificat
Permettre le rajout d’extensions selon le besoin des implémentations
L’identificateur d’une extension est défini selon ITU-T Rec. X.660 | ISO/IEC 9834-1
Identificateur Extension1 Flag critique (1 ou 0) Valeur Extension1
Identificateur Extension2 Flag critique (1 ou 0) Valeur Extension2
Identificateur Extension3 Flag critique (1 ou 0) Valeur Extension3
17
Extensions d’un Certificat X.509 (suite)
Les extensions sont classées en 4 catégories:
Les extensions d’information sur la clé et la politique de sécurité
Les extensions d’informations sur le détenteur et l’émetteur
Les extensions de contraintes sur le chemin de certification
Les extensions de révocation
18
Extensions d’information sur la clé et la politique de sécurité
Key Usage: définit l’utilisation de la clé certifiée• digitalSignature• nonRepudiation• keyEncipherment• keyAgreement• keyCertSign/cRLSign
Extended Key Usage: autres cas d’utilisation • ServerAuthentication• clientAuthentication• codeSigning• emailProtection• timeStamping
19
Extensions d’information sur la clé et la politique de sécurité (suite)
Private Key usage Period: définit les dates début et fin de validité de la clé privée
• Une signature peut être valide pour 10-20 années, mais la clé privée doit être utilisée uniquement pour 1 ou 2 années
20
Extensions d’information sur la clé et la politique de sécurité (suite)
Certificate Policies
Informations sur la politique du CA sous laquelle le certificat a été émis
X.509 délègue à la politique du CA tout ce qui concerne la sémantique de confiance du certificat
• Plusieurs politiques servent pour protéger le CA de toute responsabilité« Verisign disclaims any warranties … Varisign makes no representation that any CA or user to which it has issued a digital ID is in fact the person or the organisation it claims to be… Verisign makes no assurances of the accuracy, authenticity, integrity, or reliability of information »
21
Extensions d’informations sur le sujet et l’émetteur
Alternative Name (Subject / Issuer) ou General Name
• Nom rfc822 (adresse mail)• Nom DNS (Nom DNS d’une machine)• uniformResourceIdentifier (URL)• Adresse IP• Adresse X.400• Nom EDI• OID• Toute autre forme de nom …
22
Extensions d’informations sur le sujet et l’émetteur (suite)
Subject directory attributes • Transporte une séquence d’attributs concernant le
sujet du certificat: un rôle, une appartenance à un groupe, une autorisation, un numéro de téléphone…
23
Extensions de contraintes sur le chemin de certification
Basic Constraints• Précise si le certificat émis est un certificat de CA ou pas
• Si le certificat émis est un certificat de CA, une « Distance de certification » est définie
Name Constraints• utilisé dans les certificats de CAs• indique un espace de noms où tous les noms des sujets
ultérieurs dans le chemin de certification doivent figurer
Policy Constraints• Identification explicite de la politique de sécurité
24
Extensions de révocation
CRL Distribution Points• identifie les points de distribution de la CRL
Freshest CRL• identifie la CRL qui a les informations les plus récentes
25
Travaux Pratiques
Expérimentation et mise en œuvre de la cryptographie
26
Travaux Pratiques
• Objectifs:– Génération de clés publiques/privés– Génération de certificat– Signature numérique– Chiffrement et signature au format smime– Chiffrement symétrique
27
Outils à utiliser
• Openssl : libraire de cryptographie et de services liés à la signature et chiffrement
• Openssl supporte également un client et serveur SSL
• Développé initialement sous le nom de SSLeay par Eric Young
• Référence et documention:– http://www.openssl.org
28
Comment installer openssl?
• Sur plateforme Unix récupérer la distribution sous format tar après désarchivage, la compiler puis installer
• Sur plateforme Windows aller sur le site de www.opensa.org et récupérer la distribution de apache incluant la librairie openssl (très rapide à installer)
29
Commandes à utiliser
• Genrsa
• Req
• CA
• Smime
• X509
• Rsa
• pkcs12
30
Premier objectif que tout le monde doit atteindre
• Générer une paire de clés• Générer un certificat auto signé• Transmettre la clé publique à son correspondant
(certificat)• Signer un fichier avec sa clé privé, le chiffrer
avec la clé du correspondant et le lui transmettre (le format du fichier est du smime)
31
Deuxième objectif
• Générer un certificat
• Générer une clé privé au format pkcs12
• Importer cette clé au niveau du browser ou de Outlook express.