Infrastructures Principales Cryptographiques

Puisque l'utilisation classique de cryptosystems a partagé des clefs, il n'est pas possible de lier une identité à une clef.

Les cryptosystems principaux publics emploient deux clefs, dont une doit être disponible à tous. L'association entre la clef cryptographique et le principal est critique, parce qu'elle détermine la clef publique employée pour chiffrer des messages pour le secret. Si l'attache est incorrecte, quelqu'un autre que le destinataire prévu pourrait lire le message.

Aux fins de cette discussion, nous supposons que le principal est identifié par un nom d'une certaine sorte acceptable et a été authentifié à l'entité qui produit des clefs cryptographiques. La question est comment un certain (probablement) principal différent peut lier la clef publique à la représentation de l'identité.

Une idée évidente est pour que le créateur signe la clef publique avec sa clef privée, mais ceci pousse simplement le problème à un autre niveau, parce que le destinataire saurait seulement que celui qui a produit de la clef publique l'a également signée. Aucune identité n'est présente.

  

Créant un message contenant une représentation d'identité, de la clef publique correspondante, et d'un horodateur, et ayant un signe de confiance d'autorité il.

CAlice = {eAlice || Alice || T} dCathy

Ce type de structure s'appelle un certificat.

Un certificat est une marque qui lie une identité à une clef cryptographique.

Quand Bob veut communiquer avec Alice, il ont obtenu le certificat CAlice de Alice. Supposant qu'il sait la clef publique de Cathy, il peut déchiffrer le certificat. Il d'abord contrôles l'horodateur T pour voir quand le certificat a été délivré. (à partir de ceci, il peut déterminer si le certificat est trop vieux pour être fait confiance ; voir ci-dessous.) Il regarde l'entité soumise (Alice, à qui le certificat a été délivré). La clef publique dans le certificat appartient à ce sujet, ainsi Bob a maintenant la clef publique de Alice. Il sait que Cathy a signé le certificat et donc ce Cathy garantit à un certain degré que la clef publique appartient à Alice. S'il fait confiance à Cathy pour faire une telle détermination, il accepte la clef publique comme valide et appartenant à Alice.

Un problème immédiat est que Bob doit savoir la clef publique de Cathy pour valider le certificat. Deux approches traitent ce problème. Le premier, par Merkle, élimine la signature de Cathy ; le deuxième structure des certificats dans des chaînes de signature.

Chaînes De Signature De Certificat

La forme habituelle de certification est pour que l'émetteur chiffre des informations parasites de l'identité du sujet (à qui le certificat est publié), de la clef publique, et de l'information telle que la période de l'issue ou de l'expiration en utilisant la clef privée de l'émetteur. Pour valider le certificat, un utilisateur emploie la clef publique de l'émetteur pour déchiffrer les informations parasites et pour vérifier les données dans le certificat. L'utilisateur essayant de valider le certificat doit obtenir la clef publique de l'émetteur. Si l'émetteur a un certificat, l'utilisateur peut obtenir cette clef du certificat de l'émetteur. Ceci pousse le problème à un autre niveau : comment le certificat de l'émetteur peut-il être validé ?

Deux approches à ce problème sont construire a arbre-comme la hiérarchie, avec la clef publique de la racine connue hors de la bande, ou permettre un arrangement arbitraire des certifiers et de compter sur la connaissance de chaque individu des certifiers. D'abord, nous examinons X.509, qui décrit des certificats et la certification en général. Nous regardons alors la structure de certification de PGP.

Chaînes De Signature De Certification

Le cadre d'authentification d'annuaire de X.509the sert de base à beaucoup d'autres protocoles. Il définit des formats de certificat et la validation de certification dans un contexte générique. Peu après son issue originale en 1988, I'Anson et problèmes trouvés par Mitchell avec les protocoles et la structure de certificat. Ces problèmes ont été corrigés dans la version 1993, désignée sous le nom de X.509v3.

Le certificat X.509v3 a les composants suivants.

  1. Version. Chaque version successive du certificat X.509 a de nouveaux champs supplémentaires. Si les champs 8, 9, et 10 (voir ci-dessous) sont présent, ce champ doit être 3 ; si les champs 8 et 9 sont présents, ce champ est 2 ou 3 ; et si aucun de champs 8, 9, et 10 n'est présent, le nombre de version peut être 1, 2, ou 3.

  2. Numéro de série. Ceci doit être unique parmi les certificats délivrés par cet émetteur. En d'autres termes, la paire (le nom distingué, le numéro de série de l'émetteur) doit être unique.

  3. Marque d'algorithme de signature. Ceci identifie l'algorithme, et tous les paramètres, employés pour signer le certificat.

  4. Le Nom Distingué De l'Émetteur. C'est un nom qui identifie uniquement l'émetteur.

  5. Intervalle de validité. Ceci donne les temps auxquels le certificat devient valide et expire.

  6. Nom Distingué Soumis. C'est un nom sujet au lequel identifie uniquement qui le certificat est publié.

  7. L'information principale publique soumise. Ceci identifie l'algorithme, ses paramètres, et la clef publique du sujet.

  8. La marque unique de l'émetteur (certificats de version 2 et 3 seulement). Dans quelques circonstances, l'émetteur des noms distingués peut être réutilisé (par exemple, quand le nom distingué se rapporte à un rôle, ou quand une compagnie se ferme et une deuxième compagnie avec le même nom distingué s'ouvre). Ce champ permet à l'émetteur de désambiguïser parmi des entités avec le même nom d'émetteur.

  9. Marque unique soumise (certificats de version 2 et 3 seulement). Ce champ est comme le champ 8, mais pour le sujet.

  10. Prolongements (certificats de version 3 seulement). X.509v3 définit certains prolongements dans les secteurs de l'information de clef et de politique, des contraintes de chemin de certification, et l'information d'émetteur et soumise. Par exemple, si un émetteur a des clefs multiples de certification, l'"marque principale d'autorité" permet au certificat d'indiquer quelle clef devrait être employée. La prolongation "de contraintes de base" indique si le support de certificat peut délivrer des certificats.

  11. Signature. Ce champ identifie l'algorithme et les paramètres employés pour signer le certificat, suivi de la signature (des informations parasites chiffrées de champs 1 à 10) elle-même.

Pour valider le certificat, l'utilisateur obtient la clef publique de l'émetteur pour l'algorithme particulier de signature (champ 3) et déchiffrements la signature (champ 11). Elle emploie alors l'information dans le domaine de signature (champ 11) au recompute la valeur d'informations parasites des autres champs. Si elle assortit la signature déchiffrée, la signature est valide si la clef publique de l'émetteur est correcte. L'utilisateur vérifie alors la période de la validité (champ 5) pour s'assurer que le certificat est courant.

Une autorité de certification (CA) est une entité cette des certificats d'issues.

Si tous les certificats ont un émetteur commun, alors la clef publique de l'émetteur peut être distribuée hors de la bande. Cependant, c'est infaisable. Par exemple, il est fortement peu probable que la France et les Etats-Unis pourraient convenir sur un émetteur simple pour leurs organismes et certificats des citoyens. Ceci suggère les émetteurs multiples, qui complique le processus de la validation.

Supposez qu'Alice a un certificat de son CA local, Cathy. Elle veut communiquer avec Bob, dont le CA local est Dan. Le problème est pour qu'Alice et Bob valide les certificats de chacun.

Supposez que X<<Y > > représente le certificat dont X a produit pour le sujet Y (X est le CA qui a délivré le certificat). Le certificat de Bob est Dan<<Bob > >. Si Cathy a délivré un certificat à Dan, Dan a un certificat Cathy<<Dan > > ; pareillement, si Dan a délivré un certificat à Cathy, Cathy a un certificat Dan<<Cathy > >. Dans ce cas-ci, Dan et Cathy seraient croix-certifiés.

Deux CAs croix-sont certifiés si chacun a délivré un certificat pour l'autre.

Puisqu'Alice a la clef publique de Cathy (fait confiance), elle peut obtenir Cathy<<Dan > > et former la chaîne de signature

Cathy<<Dan > > Dan<<Bob > >

Puisqu'Alice peut valider le certificat de Dan, elle peut employer la clef publique du fait certificat pour valider le certificat de Bob. De même, Bob peut acquérir Dan<<Cathy > > et valider le certificat de Alice.

Dan<<Cathy > > Cathy<<Alice > >

Les chaînes de signature peuvent être de longueur arbitraire. La seule condition est que chaque certificat peut être validé par celui avant lui dans la chaîne. (X.509 suggère CAs d'organisation dans une hiérarchie pour réduire au minimum les longueurs des chaînes de signature de certificat, mais ce n'est pas une condition.)

Des certificats peuvent être retirés, ou décommandés. Une liste de tels certificats permet à un utilisateur de détecter, et au rejet, certificats infirmés.

Chaînes De Signature De Certificat de PGP

Le PGP est un programme de chiffrement largement répandu pour fournir l'intimité pour le courrier électronique dans tout l'Internet, et pour signer des dossiers digitalement. Il emploie une infrastructure principale certificat-basée de gestion pour les clefs publiques des utilisateurs. Sa structure de certificat et principale de gestion diffèrent de X.509's de plusieurs manières. Ici, nous décrivons la structure d'OpenPGP ; mais beaucoup de cette discussion s'applique également à d'autres versions de PGP.

Un certificat d'OpenPGP se compose de paquets. Un paquet est un disque avec une étiquette décrivant son but. Un certificat contient un paquet principal public suivi de zéro paquets ou plus de signature. Un paquet principal public d'OpenPGP a la structure suivante.

  1. Version. C'est 3 ou 4. La version 3 est compatible avec toutes les versions de PGP ; La version 4 n'est pas compatible avec de vieilles (version 2.6) versions de PGP.

  2. Période de création. Ceci indique quand le certificat a été créé.

  3. Période de validité (version 3 seulement). Ceci donne le nombre de jours qui le certificat est valide. S'il est 0, le certificat n'expire pas.

  4. Algorithme et paramètres principaux publics. Ceci identifie l'algorithme utilisé et donne les paramètres pour le cryptosystem utilisé. Les paquets de la version 3 contiennent le module pour RSA. Les paquets de la version 4 contiennent les paramètres appropriés pour le cryptosystem utilisé.

  5. Clef publique. Ceci donne la clef publique. Les paquets de la version 3 contiennent l'exposant pour RSA. Les paquets de la version 4 contiennent la clef publique pour le cryptosystem identifié dans le domaine 4.

L'information dans un paquet de signature d'OpenPGP est différente pour les deux versions. La version 3 contient le suivant.

  1. Version. C'est 3.

  2. Type de signature. Ceci décrit le but spécifique de la signature et code un niveau de confiance. Par exemple, le type 0x11 de signature indique que le signataire n'a pas vérifié que la clef publique appartient au sujet appelé.

  3. Temps de création. Ceci indique le temps à l'où ce qui suit de champs a été haché.

  4. Marque principale du signataire. Ceci indique la clef employée pour produire de la signature.

  5. Algorithme principal public. Ceci identifie l'algorithme employé pour produire de la signature.

  6. Algorithme d'informations parasites. Ceci identifie l'algorithme employé pour hacher la signature avant la signature.

  7. Une partie de valeur signée d'informations parasites. Après que les données soient hachées, le champ 2 est donné le temps à l'où les informations parasites ont été calculées, et ce champ est haché et apposé aux informations parasites précédentes. Les deux premiers bytes sont placés dans ce champ. L'idée est que la signature peut être rejetée immédiatement si les deux premiers bytes hachés pendant la validation n'assortissent pas ce champ.

  8. Signature. Ceci contient le chiffrement des informations parasites en utilisant la clef privée du signataire.

Un paquet de signature de la version 4 est considérablement plus complexe, mais comme le fait un paquet de signature de la version 3, il lie une signature à une marque et à des données. Le lecteur intéressé est mentionné les caractéristiques d'OpenPGP.

Les certificats de PGP diffèrent des certificats X.509 de plusieurs manières importantes. À la différence de X.509, une clef simple peut avoir les signatures multiples. (toutes les clefs de PGP de version 4 sont signés par le propriétaire ; ceci s'appelle le art de l'auto-portrait-signing.) En outre à la différence de X.509, une notion de "confiance" est incluse dans chaque signature, et les signatures pour une clef simple peuvent avoir différents niveaux de confiance. Les utilisateurs des certificats peuvent déterminer le niveau de la confiance pour chaque signature et agir en conséquence.

EXEMPLE : Supposez qu'Alice doit communiquer avec Bob. Elle obtient le certificat public de PGP de la clef de Bob, Ellen, Fred, Giselle, Bob<<Bob > > (où la notation X.509 est prolongée de la manière évidente). Alice n'en connaît aucune des signataires, ainsi d'elle obtient le certificat du PGP de Giselle, Henry, Irene, Giselle<<Giselle > >, d'un serveur de certificat. Elle sait Henry vaguement, ainsi elle obtient son certificat, Ellen, Henry<<Henry > >, et vérifie le certificat de Giselle. Elle note que la signature d'Henry est au niveau "occasionnel" de confiance, ainsi elle décide de regarder ailleurs pour la confirmation. Elle obtient le certificat d'Ellen, Jack, Ellen<<Ellen > >, et identifie immédiatement Jack en tant que son mari. Elle a son certificat et l'emploie pour valider le certificat d'Ellen. Elle note que sa signature est au niveau "positif" de confiance, ainsi elle accepte le certificat d'Ellen en tant que valide et l'emploie pour valider Bob. Elle note qu'ellen a signé le certificat avec la confiance "positive" également, ainsi elle conclut que le certificat, et la clef publique qu'elle contient, est digne de confiance.


Dans l'exemple ci-dessus, Alice a suivi deux chaînes de signature :

Henry<<Henry > > Henry<<Giselle > > Giselle<<Bob > >

et

Jack<<Ellen > > Ellen<<Bob > >

(où les signatures non réprimées ont été lâchées). Les niveaux de confiance ont affecté comment Alice a vérifié le certificat.

Une distinction subtile surgit ici entre X.509 et certificats de PGP. Les certificats X.509 incluent un élément de confiance, mais la confiance n'est pas indiquée dans le certificat. Les certificats de PGP indiquent le niveau de la confiance, mais le même niveau de la confiance peut avoir différentes significations à différents signataires.

Sommaire

L'déploiement et la gestion des clefs publiques est complexe en raison des différentes conditions de divers protocoles. La plupart des protocoles emploient une certaine forme des certificats X.509v3, bien que les prolongements changent. L'infrastructure qui contrôle des clefs et des autorités publiques de certification s'appelle une infrastructure principale publique. Plusieurs telles infrastructures sont en place, comme les serveurs de certificat de PGP et les émetteurs commerciaux de certificat pour les navigateurs mondiaux de Web.

c'est un article supplémentaire par Bill Kuriko


Déni : Notre site Web n'est pas responsable de l'information contenue par cet article. Cet article reflète nullement les vues, les avis, les pensées ou la croyance du personnel d'annuaire d'articles.

Notification de traduction : L'article "infrastructures principales cryptographiques" a été traduit en utilisant un service de traduction automatisé. Nous faisons des excuses sincèrement pour toutes les erreurs de traduction qui se sont produites. Merci de l'arrangement.

Online: 693 users browsing the articles directory