Ahmed Serhrouchni ENST’Paris CNRS

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

Ahmed Serhrouchni ENST’Paris CNRS PKI et Certification Ahmed Serhrouchni ENST’Paris CNRS

Plan La cryptographie asymétrique. Infrastructure à Clé publique (PKI). Modèle de Confiance. Structure du Certificat numérique. Conclusion

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

Distribution des clés publiques 1. Alice envoie sa clé publique à Bob Alice  Bob 2. Mallet intercepte la clé et la remplace avec sa propre clé Alice  Bob  Mallet / 3. Mallet peut décrypter tout le trafic et générer des signatures falsifiées

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

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 Le groupe de travail SPKI a développé un standard pour les certificats numériques focalisant l’autorisation plutôt que l’authentification. Un certificat SPKI relie une autorisation à une clé publique, sans exiger nécessairement l’identité du détenteur de la clé privée correspondante. Néanmoins, un hash de la clé publique peut être utilisé comme un identificateur unique du détenteur de la clé. SPKI offre une simplicité par rapport au standard X.509 en offrant un schéma d’encodage moins riche que la notation ASN.1 utilisée par X.509.

Infrastructure à clé publique (PKI) D’après le standard X.509: CA Répertoire Utilisateur final Publie / Publie la révocation Demande / Émet La méthode la plus utilisée pour gérer la révocation de certificats est de maintenir une liste de révocation de certificats CRL (Certificate Revocation List), qui est une liste de certificats révoqués signée et périodiquement publiée par le CA ou par une autorité autorisée par le CA. Quand un système utilisant un certificat veut vérifier la validité d’un certificat, il ne vérifie pas uniquement la validité de la signature du CA ayant signé le certificat mais saisit également une liste de révocation récente et vérifie que le numéro de série du certificat n’appartient pas à cette liste de révocation [2]. Le mot récent varie avec la politique de sécurité locale : un CA émet une CRL périodiquement (chaque heure, chaque jour ou chaque semaine Mais: Le CA doit vérifier les détails de chaque utilisateur Risques pour la sécurité du CA

Infrastructure à clé publique (suite) CA Répertoire Utilisateurs finaux Publie / Publie la révocation Demande / Émet RA 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

Composants d’une PKI Principaux Complémentaires 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.

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 CA1 1 3 5 2 CA2 CA1 co-certifie CA2 1 3 5 4 2 Du moment qu’une seule autorité de certification ne peut certifier toutes les clés publiques du monde, plusieurs PKIs permettent aux CAs de certifier d’autres CAs. Il en découle des modèles de confiance où des CAs délèguent leur confiance à d’autres CAs. il existe deux types de certificats à clé publique : ·         Certificats pour des utilisateurs finaux : End Entity Certificates ; ·         Certificats pour CAs : CA Certificates. Un certificat pour un utilisateur final est un certificat issu par un CA à un sujet qui n’est pas un émetteur de certificats à clé publique. Un certificat pour CA est un certificat issu par un CA à un sujet qui est lui même un CA et par conséquent est capable d’émettre des certificats à clé publique. Les certificats de CAs Modèle Hiérarchique : Les autorités de certification sont rangées sous forme d’une hiérarchie sous un CA root. Chaque utilisateur devrait connaître la clé publique du CA pour permettre la vérification des certificats en suivant le chemin de certification depuis le CA root. La structure hiérarchique a plusieurs avantages incluant la possibilité de tracer la structure des grandes organisations et d’avoir des stratégies de vérification très simples. 1 CA Utilisateur final

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

Structure d’un certificat X.509 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 Clé privée du CA Génération de la signature

Structure d’un certificat X.509 IssuerUniqueIdentifie identifie 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) SubjectUniqueIdentifier Différencie entre plusieurs clés publiques, issues par le même CA, appartenant à un même détenteur

Structure d’un certificat X.509

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

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

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

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 a)      DigitalSignature : La clé peut être utilisée pour signer des données générales, par exemple pour garantir l’authenticité ; b)      NonRepudation : La clé peut être utilisée pour signer un message qui ne doit pas être répudié plus tard; c)      KeyEncipherment : la clé peut être utilisée pour échanger une clé de session; d)      DataEncipherment : la clé peut être utilisée pour chiffrer des données générales ; e)      KeyAgreement : la clé est utilisée dans un contexte comme Diffie-Hellman pour l’agrément plutôt que l’échange d’une clé de session. Les deux derniers champs encipherOnly et decipherOnly n’ont une signification que si KeyAgreement est TRUE; f)       KeyCertSign : la clé peut être utilisée pour signer des certificats ; g)      CRLSign : la clé peut être utilisée pour signer des CRLs  h)      encipherOnly : Ce bit n’a une signification que si le bit KeyAgreement  est TRUE. Il signifie que la clé sur laquelle les entités se sont mises en accord peut être utilisée uniquement pour chiffrer les données envoyées au détenteur du certificat ; decipherOnly : Ce bit n’a une signification que si le bit KeyAgreement  est TRUE. Il signifie que la clé sur laquelle les entités se sont mises en accord peut être utilisée uniquement pour déchiffrer les données envoyées par le détenteur du certificat.

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 Ce champ indique la période d’utilisation de la clé privée correspondant à la clé publique certifiée. Ceci est applicable seulement pour les clés de signature digitale. Ce champ est utilisé uniquement quand la période d’utilisation de la clé privée est plus courte que celle du certificat contenant la clé publique correspondante.

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 » Une politique de sécurité est un ensemble de règles qui indiquent l’usage accepté du certificat, il peut inclure par exemple : la communauté d’usage, les politiques d’authentification, la fréquence de mise à jour de la CRL…

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 …

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…

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é Basic Constraints: Cette extension indique si le détenteur du certificat peut agir comme un CA. Si c’est le cas, une contrainte sur la longueur du chemin de certification peut être aussi spécifiée. Name Constraints :Ce champ, qui doit être utilisé uniquement dans les certificats de CAs, indique un espace de noms à l’intérieur duquel tous les noms des sujets se trouvant dans les certificats ultérieurs dans un chemin de certification seront localisés. Policy Constraints : Ce champ spécifie des contraintes qui peuvent exiger une identification explicite de la politique de sécurité d’un certificat ou empêcher le mapping des politiques dans le reste du chemin de certification.

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

Expérimentation et mise en œuvre de la cryptographie Travaux Pratiques Expérimentation et mise en œuvre de la cryptographie

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

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

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)

Commandes à utiliser Genrsa Req CA Smime X509 Rsa pkcs12

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)

Générer une clé privé au format pkcs12 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.