Cryptographie à clé publique et signature numérique : Principes de fonctionnement

Page 1 sur 16Lecteur de document UniversityLib

Cryptographie à clé publique et signature numérique : Principes de fonctionnement

Cryptography · notes

Voir tous les documents en sécurité informatique

Étude technique Cryptographie à clé publique et signature numérique Principes de fonctionnement Étude technique réalisée par CGI Septembre 2002 © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 1 sur 15 Introduction L'un des principaux défis auxquels nous devons faire face en tant que conseiller consiste à maintenir un niveau de connaissance des technologies nouvelles et émergentes allant au-delà du superficiel ou de la jargonnerie. Nous devons atteindre un niveau de compréhension qui nous permette de communiquer efficacement tant avec les fournisseurs qu'avec les clients, de façon à pouvoir faire valoir : - notre connaissance des enjeux commerciaux en cause; - le rôle que peut jouer la technologie dans l'apport de solutions; - les avantages commerciaux que le client en retirera; - les contraintes qui demeureront et qu'il faudra pallier d'autres façons. La cryptographie à clé publique existe depuis un certain temps déjà. Un grand nombre de travaux intéressants ont été menés par différents comités (tels IETF/PKIX et PKCS [1] ) pour définir des normes et techniques en matière de cryptographie à clé publique. Mais savons-nous au juste de quoi il en retourne? En comprenons-nous le fonctionnement? Regardons donc sous le capot pour examiner le moteur et comprendre enfin le véritable fonctionnement de la cryptographie à clé publique et de la signature numérique. Cet article constitue un point de départ pour se faire une idée du vaste domaine qu'est l' ICP ou infrastructure à clé publique. Ce domaine englobe les mécanismes décrits dans cet article, ainsi qu'un ensemble de logiciels, matériel et processus régis par des règles et normes convergeant vers le haut niveau de confiance exigé et attendu de l'industrie. 1 IETF/PKIX correspond à Internet Engineering Task Force/Public-Key Infrastructure (X509). PKCS correspond à Public Key Cryptography Standards, normes qui ont été élaborées par RSA conjointement avec des fournisseurs tels que Microsoft, Apple, Sun, etc. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 2 sur 15 1. Qu’est-ce que la cryptographie à clé publique? La cryptographie à clé publique désigne un mécanisme de chiffrement et de déchiffrement. Elle porte le nom de clé publique pour la différencier du mécanisme cryptographique classique et plus intuitif connu sous le nom de cryptographie à clé secrète, à clé partagée, à clé symétrique , ou encore, à clé privée . La cryptographie à clé symétrique est un mécanisme selon lequel la même clé est utilisée pour le chiffrement et le déchiffrement; elle est plus intuitive à cause de sa similarité avec ce que l'on s'attend à utiliser pour verrouiller et déverrouiller une porte : la même clé. Cette caractéristique requiert des mécanismes sophistiqués pour distribuer en toute sûreté la clé symétrique aux deux parties [2] . La cryptographie à clé publique, quant à elle, repose sur un autre concept faisant intervenir une paire de clés : l'une pour le chiffrement et l'autre pour le déchiffrement. Ce concept, comme vous le verrez ci-dessous, est ingénieux et fort attrayant, en plus d'offrir un grand nombre d'avantages par rapport à la cryptographie symétrique : - distribution simplifiée des clés; - signature numérique; - chiffrement de longue durée. Il est toutefois important de signaler que la cryptographie à clé symétrique joue encore un rôle prépondérant dans la mise en œuvre d'une infrastructure à clé publique ou ICP . 1.1 Définition L'expression «cryptographie à clé publique» est couramment utilisée pour désigner une méthode cryptographique faisant intervenir une paire de clés asymétriques [3] : une clé publique et une clé privée [4] . La cryptographie à clé publique utilise cette paire de clés pour le chiffrement et le déchiffrement. La clé publique est rendue publique et distribuée librement. La clé privée n'est jamais distribuée et doit être gardée secrète. Étant donnée une paire de clés, les données chiffrées à l'aide de la clé publique ne peuvent être déchiffrées qu'avec la clé privée correspondante; inversement, les données chiffrées à l'aide de la clé privée ne peuvent être déchiffrées qu'avec la clé publique correspondante. Cette caractéristique est utilisée pour mettre en œuvre les principes de la cryptographie et de la signature numérique, comme le montrent les figures 1 et 2. 1.2 Chiffrement et déchiffrement Le chiffrement est un mécanisme selon lequel un message est transformé de sorte que seul l'expéditeur et le destinataire peuvent le voir. Supposons, par exemple, qu'Alice veut envoyer un message privé à Bob. Pour ce faire, elle doit d'abord connaître la clé publique de Bob; étant donné que tout le monde peut voir sa clé publique, Bob peut l'envoyer en clair sur le réseau sans s'inquiéter. Une fois qu'Alice possède la clé publique de Bob, elle chiffre le message à l'aide de la 2 Des infrastructures comme Kerberos assurent la distribution et la gestion des clés symétriques. 3 L'expression «cryptographie asymétrique» par rapport à «cryptographie symétrique» constitue une autre façon de différencier les deux mécanismes. 4 Prenez garde de ne pas confondre le mécanisme à clé privée et la clé privée. Pour éviter toute confusion, l'expression «cryptographie à clé symétrique» sera utilisée dans cet article chaque fois qu'il est question du mécanisme. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 3 sur 15 clé publique de Bob et l'envoie à Bob. Bob reçoit le message d'Alice et, à l'aide de sa clé privée, le déchiffre. Figure 1 : Principes de chiffrement et de déchiffrement 1.3 Signature numérique et vérification La signature numérique est un mécanisme qui permet d'authentifier un message, autrement dit de prouver qu'un message provient bien d'un expéditeur donné, à l'instar d'une signature sur un document papier. Supposons, par exemple, qu'Alice veut signer numériquement un message destiné à Bob. Pour ce faire, elle utilise sa clé privée pour chiffrer le message, puis elle envoie le message accompagné de sa clé publique (habituellement, la clé publique est jointe au message signé). Étant donné que la clé publique d'Alice est la seule clé qui puisse déchiffrer ce message, le déchiffrement constitue une vérification de signature numérique, ce qui signifie qu'il n'y a aucun doute que le message ait été chiffré à l'aide de la clé privée d'Alice. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 4 sur 15 Figure 2 : Principes de signature numérique et de vérification 1.4 Au-delà des principes Les deux paragraphes qui précèdent illustrent les principes de chiffrement/déchiffrement et de signature/vérification. Il est possible de combiner chiffrement et signature numérique et, par conséquent, d'assurer confidentialité et authentification. Comme nous l'avons mentionné plus tôt, la cryptographie à clé symétrique joue un rôle important dans la mise en œuvre des systèmes à clé publique. Cela est dû au fait que les algorithmes de chiffrement à clé asymétrique [5] sont plus lents que ceux à clé symétrique [6] . Pour la signature numérique, une autre technique utilisée est le hachage . Cette technique permet de produire un condensé de message qui est une représentation réduite et unique [7] (qui s'apparente à une somme de contrôle sophistiquée) du message complet. Les algorithmes de hachage [8] sont des algorithmes de chiffrement unidirectionnels; il est donc impossible de retrouver le message d'origine à partir du condensé. Les raisons principales pour lesquelles on produit un condensé de message sont : l'intégrité du message envoyé est préservée; toute altération du message sera aussitôt détectée; la signature numérique sera appliquée au condensé dont la taille est habituellement beaucoup plus petite que le message lui-même; 5 Exemples d'algorithme à clé asymétrique : RSA, DSA et ECDSA. 6 Exemples d'algorithme à clé symétrique : RC2, RC4, DES et triple DES. 7 En fait, le condensé de message est fort probablement unique dans le sens où il est presque impossible de trouver deux messages significatifs qui produiront simultanément le même condensé. Par conséquent, la probabilité qu'un message trafiqué produise le même condensé que l'original est quasiment nulle. 8 Exemples d'algorithme de hachage : SHA-1 et MD5. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 5 sur 15 les algorithmes de hachage sont bien plus rapides que n'importe quel algorithme de chiffrement (que ce soit à clé publique ou à clé symétrique). Les sections suivantes expliquent ce qui se produit réellement au chiffrement et à la signature d'un message d'une part, et au déchiffrement d'un message et à la vérification de sa signature d'autre part. 1.4.1 Étapes de signature et de chiffrement d'un message La Figure 3 ci-dessous montre la série d'opérations qu'Alice doit exécuter pour envoyer un message signé et chiffré à Bob. Alice envoie un message signé et chiffré à Bob Alice 1 : Signature Condensé= Message Hach en clair 1a : Calculer condensé 1b : Signer condensé Message+ + CPuA CPrA Légende : CPrA Clé privée d'Alice CPuA Clé publique d'Alice 2a : Évaluer CSym CPuB Clé publique de Bob CSym Clé symétrique unique Hach Algorithme de hachage +CPuA] + CPrA CSym CSym eessage CPuB air m Bob dE en sv ti o ny ae tr 2b : Chiffrer à l'aide au 2c : Chiffrer de CSym clé symétrique Message signé et +CPuA] +CSym CPrA CSym chiffré 2 : Chiffrement Col2 Col3 Alice 2 : Chiffrement 1 : Signature Message en clair Condensé= Hach Message+ CPrA+ CPuA CPrA+CPuA]CSym+CSym CPrA+CPuA]CSym+ CPuB 1a : Calculer condensé 1b : Signer condensé 2b : Chiffrer à l'aide de CSym 2c : Chiffrer clé symétrique Légende : CPrA Clé privée d'Alice CPuA Clé publique d'Alice CPuB Clé publique de Bob CSym Clé symétrique unique Hach Algorithme de hachage CSym 2a : Évaluer CSym Bob Message signé et chiffré Envoyer message au destinataire Alice envoie un message signé et chiffré à Bob Alice 2 : Chiffrement 1 : Signature Message en clair Condensé= Hach Message+ CPrA+ CPuA CPrA+CPuA]CSym+CSym CPrA+CPuA]CSym+ CPuB 1a : Calculer condensé 1b : Signer condensé 2b : Chiffrer à l'aide de CSym 2c : Chiffrer clé symétrique Légende : CPrA Clé privée d'Alice CPuA Clé publique d'Alice CPuB Clé publique de Bob CSym Clé symétrique unique Hach Algorithme de hachage CSym 2a : Évaluer CSym Bob Message signé et chiffré Envoyer message au destinataire Alice 2 : Chiffrement 1 : Signature Message en clair Condensé= Hach Message+ CPrA+ CPuA CPrA+CPuA]CSym+CSym CPrA+CPuA]CSym+ CPuB 1a : Calculer condensé 1b : Signer condensé 2b : Chiffrer à l'aide de CSym 2c : Chiffrer clé symétrique Légende : CPrA Clé privée d'Alice CPuA Clé publique d'Alice CPuB Clé publique de Bob CSym Clé symétrique unique Hach Algorithme de hachage CSym 2a : Évaluer CSym Bob Message signé et chiffré Envoyer message au destinataire Bob Message signé et chiffré Bob Message signé et chiffré Bob Message signé et chiffré Bob Message signé et chiffré Bob Message signé et chiffré Figure 3 : Processus détaillé de signature et de chiffrement à l'aide de clés 1) Signature du message . La signature numérique comprend deux étapes : a) Évaluation du condensé de message . Le but principal de l'évaluation d'un condensé est de s'assurer que le message ne sera pas altéré; c'est ce qu'on entend par intégrité du message. b) Signature du condensé . Une signature est en fait un chiffrement à l'aide de la clé privée de l'émetteur (Alice dans le cas présent). On retrouve également dans cette © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 6 sur 15 signature le nom de l'algorithme de hachage utilisé par l'émetteur. La clé publique de l'émetteur est aussi annexée à la signature. Grâce à ces informations, n'importe qui peut déchiffrer et vérifier la signature à l'aide de la clé publique et de l'algorithme de hachage de l'émetteur. Étant donné les propriétés du chiffrement à clé publique et des algorithmes de hachage, le destinataire a la preuve que : i) Le condensé a été chiffré à l'aide de la clé privée de l'émetteur; ii) Le message est protégé contre toute altération. 2) Chiffrement du message. Le chiffrement comprend les trois étapes suivantes : a) Création d'une clé de chiffrement/déchiffrement unique . Rappelons que les algorithmes de chiffrement et de déchiffrement qui utilisent des clés asymétriques sont trop lents pour être utilisés pour de longs messages; les algorithmes à clé symétrique sont très efficaces et sont donc utilisés. b) Chiffrement du message . La totalité du message (le message proprement dit et la signature) est chiffrée à l'aide de CSym, la clé symétrique évaluée ci-dessus. c) Chiffrement de la clé symétrique . CSym est également utilisée par le destinataire pour déchiffrer le message. Elle ne doit donc être accessible qu’au destinataire (Bob). Pour dissimuler CSym à tous sauf au destinataire, il suffit de la chiffrer à l'aide de la clé publique du destinataire. Étant donné que CSym représente un très petit élément d'information comparé au message (qui pourrait être très long), l'inefficacité relative des algorithmes à clé asymétrique devient acceptable. Il est intéressant de souligner que si Alice voulait envoyer le même message à plusieurs destinataires, Bob et John par exemple, la seule opération supplémentaire qu'elle aurait à exécuter serait de répéter l'étape 2) c) pour John. Par conséquent, le message que Bob et John recevraient prendrait la forme suivante : CPrA+CPuA]CSym+ CPuB+ CPuJ . Notez que Bob et John utiliseront exactement la même CSym pour déchiffrer le message. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 7 sur 15 1.4.2 Étapes de déchiffrement et de vérification de la signature d'un message La Figure 4 ci-dessous montre la série d'opérations que Bob doit exécuter pour déchiffrer et vérifier le message envoyé par Alice. Bob déchiffre et vérifie le message envoyé par Alice Alice 1 : Déchiffrement +CPuA] + CPrA CSym CSym +CPuA] + CPrA CSym CPuB 1a : Déchiffrer CSym 1b : Déchiffrer message à l'aide de CPrB à l'aide de CSym Message+ +CPuA CPrA Légende : CPrA Clé privée d'Alice 2a : Déchiffrer condensé CPuA Clé publique d'Alice à l'aide de CPuA CPrB Clé privée de Bob 2b : Évaluer condensé CPuB Clé publique de Bob CSym Clé symétrique unique Hach Algorithme de hachage Condensé = Condensé Hach 2c : Comparer condensés Message en clair L e s la mes ignature déchiffré est sage e t vérifiée = 2 : Vérification Bob Col2 Alice Alice Alice Alice [ [ Message+ CPrA+CPuA]CSym+ CSym]CPuB Figure 4 : Processus détaillé de déchiffrement et de vérification à l'aide de clés 1) Déchiffrement du message . Le déchiffrement comprend les étapes suivantes : a) Déchiffrement de la clé symétrique. La clé symétrique unique a été utilisée pour chiffrer le message. Cette clé (CSym) a été chiffrée à l'aide de la clé publique du destinataire (Bob). Seul Bob peut déchiffrer CSym et l'utiliser pour déchiffrer le message [9] . b) Déchiffrement du message. Le message (qui comprend le message proprement dit et la signature) est déchiffré à l'aide de CSym. 2) Vérification de la signature. La vérification de signature comprend les trois étapes suivantes : 9 En fait, tous les destinataires seraient en mesure de déchiffrer leur propre copie de CSym. Les opérations qui suivent peuvent donc être exécutées par chaque destinataire. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 8 sur 15 a) Déchiffrement du condensé de message. Le condensé a été chiffré à l'aide de la clé privée de l'émetteur (Alice). Le condensé est maintenant déchiffré à l'aide de la clé publique de l’émetteur incluse dans le message. b) Évaluation du condensé. Étant donné que le hachage est un processus unidirectionnel, autrement dit qu'il est impossible de retrouver le message d'origine à partir du condensé, le destinataire doit réévaluer le condensé en utilisant exactement le même algorithme de hachage que l'émetteur. c) Comparaison des condensés. Le condensé déchiffré en a) et le condensé évalué en b) sont comparés. S'ils concordent, la signature est de ce fait vérifiée et le destinataire peut alors avoir la certitude que le message a été envoyé par l'émetteur et n'a pas été altéré. S'ils ne concordent pas, il est possible que : (i) le message n'ait pas été signé par l'émetteur ou que (ii) le message ait été altéré. Dans les deux cas, le message doit être rejeté. 1.5 Identité et clés Jusqu'à présent, nous avons pris pour acquit que les clés utilisées pour le chiffrement et le déchiffrement ainsi que pour la signature numérique et la vérification appartiennent à Bob et Alice. Comment pouvons-nous être certains qu'Alice est bien Alice? Et comment Alice peut-elle s'assurer que seul Bob verra ce qu'elle a chiffré? La seule certitude que nous avons est que l'utilisateur d'une paire de clés donnée a signé et chiffré le message. Mais s'agit-il réellement de son propriétaire? George, par exemple, a pu envoyer un message à Bob en se faisant passer pour Alice; Bob ne peut dire si c'est Alice ou George qui lui a envoyé le message. Les mêmes incertitudes s'appliquent à la clé publique de Bob. L'utilisation de certificats permet de résoudre ce problème. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 9 sur 15 2. Qu'est-ce qu'un certificat? Un certificat est un élément d'information qui prouve l'identité du propriétaire d'une clé publique. À l'instar d'un passeport, un certificat est une preuve reconnue de l'identité d'une personne. Les certificats sont signés et transmis de façon sécuritaire par un tiers de confiance appelé autorité de certification (AC). Tant que Bob et Alice ont confiance en ce tiers, ils peuvent être assurés que les utilisateurs de ces clés en sont bel et bien les propriétaires. Un certificat contient notamment : 1) l'identité de l'AC; 2) L’identité du propriétaire; 3) la clé publique du propriétaire; 4) la date d'expiration du certificat; 5) la signature de l'AC qui a délivré le certificat; 6) d'autres informations qui n'entrent pas dans la portée de cet article. En disposant d'un certificat au lieu d'une clé publique, le destinataire peut maintenant vérifier un certain nombre d'aspects au sujet de l'émetteur pour s'assurer que le certificat est valide et qu'il appartient bien à la personne à qui il est censé appartenir. Il peut notamment : 1) comparer l'identité du propriétaire; 2) vérifier que le certificat est toujours valide; 3) vérifier que le certificat a été signé par un AC de confiance; 4) vérifier la signature du certificat de l'émetteur pour s'assurer que ce dernier n'a pas été altéré. Bob peut maintenant vérifier le certificat d'Alice et avoir la certitude que c'est bien la clé privée d'Alice qui a servi à signer le message. Alice doit prendre des précautions avec sa clé privée et ne pas révéler comment y accéder; ce faisant, elle met en pratique une partie de la non-répudiation, une caractéristique associée à la signature numérique. Comme nous le verrons à la section 3.2, d’autres conditions sont essentielles au maintien de la non-répudiation. Notez que les certificats sont signés par une AC, ce qui signifie qu'ils ne peuvent être altérés. La signature de l'AC peut, à son tour, être vérifiée à l'aide du certificat de cette AC. 2.1 Validation de certificat ajoutée au processus Quand Alice chiffre un message destiné à Bob, elle utilise le certificat de Bob. Avant d'utiliser la clé publique incluse dans le certificat de Bob, des étapes supplémentaires sont nécessaires pour valider le certificat de Bob. Il faut vérifier : 1) la période de validité du certificat de Bob; 2) que le certificat appartient bien à Bob; 3) que le certificat n'a pas été altéré; 4) que le certificat de Bob a été signé par une AC de confiance. De plus, si Alice doute de l'authenticité de l'AC de Bob, d'autres étapes seraient nécessaires pour valider le certificat de cette AC. Ces étapes sont identiques à celles requises pour valider le certificat de Bob. Dans l'exemple ci-dessous, il est présumé que Bob et Alice ont tous deux confiance en l'AC. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 10 sur 15 CertA C Validité+CPuAC+IdSi+ PrSi IdAC+ IdAC+ Alice envoie un message signé et chiffré à Bob à l’aide d’un certificat Alice 1 : Signature Condensé= 1b : Signer condensé Message Hach en clair 1a : Calculer condensé Message+ + CertA CPrA Légende : CPrA Clé privée d'Alice CertDB PrAC Clé privée de l'AC PrSi Clé privée du signataire du CertAC Vérifier CertB CertAC CertB CPuB Clé publique de Bob CPuAC Clé publique de l'AC IdBob+Validité+CPuB+IdAC+ CertAC PrAC CertA Certificat d'Alice CertB Certificat de Bob IdAC+Validité+CPuAC+IdSi+ OK CertAC Certificat de l'AC PrSi CSym Clé symétrique unique Hach Algorithme de hachage CertB 2 : Validation du IdBob Identité de Bob valide certificat IdAC Identité de l'AC IdSi Ident. du signataire du CertAC Validité Période de validité du certificat +CertA] + 3a : Évaluer CSym CPrA CSym Bob CPuB CSym essag e 3c : Chiffrer yer m clé symétrique E n estin atair v eo Message 3b : Chiffrer avec au d signé et CSym chiffré +CertA] +CSym CPrA CSym 3 : Chiffrement Col2 Col3 Col4 Alice Message en clair Alice envoie un message signé et chiffré à Bob à l’aide d’un certificat 1 : Signature Condensé= Hach Message+ CPrA+ CertA 1a : Calculer condensé 1b : Signer condensé 3 : Chiffrement CPrA+CertA]CSym+CSym 3b : Chiffrer avec CSym 3c : Chiffrer clé symétrique CSym 2 : Validation du certificat Légende : CPrA Clé privée d'Alice PrAC Clé privée de l'AC PrSi Clé privée du signataire du CertAC CPuB Clé publique de Bob CPuAC Clé publique de l'AC CertA Certificat d'Alice CertB Certificat de Bob CertAC Certificat de l'AC CSym Clé symétrique unique Hach Algorithme de hachage IdBob Identité de Bob IdAC Identité de l'AC IdSi Ident. du signataire du CertAC Validité Période de validité du certificat 3a : Évaluer CSym Bob Message signé et chiffré Envoyer message au destinataire Vérifier CertB CertB valide OK CertDB CertAC CertAC IdAC+Validité+CPuAC+IdSi+ PrSi CertB IdBob+Validité+CPuB+IdAC+ PrAC CPrA+CertA]CSym+ CPuB Alice Message en clair Alice envoie un message signé et chiffré à Bob à l’aide d’un certificat 1 : Signature Condensé= Hach Message+ CPrA+ CertA 1a : Calculer condensé 1b : Signer condensé 3 : Chiffrement CPrA+CertA]CSym+CSym 3b : Chiffrer avec CSym 3c : Chiffrer clé symétrique CSym 2 : Validation du certificat Légende : CPrA Clé privée d'Alice PrAC Clé privée de l'AC PrSi Clé privée du signataire du CertAC CPuB Clé publique de Bob CPuAC Clé publique de l'AC CertA Certificat d'Alice CertB Certificat de Bob CertAC Certificat de l'AC CSym Clé symétrique unique Hach Algorithme de hachage IdBob Identité de Bob IdAC Identité de l'AC IdSi Ident. du signataire du CertAC Validité Période de validité du certificat 3a : Évaluer CSym Bob Message signé et chiffré Envoyer message au destinataire Vérifier CertB CertB valide OK CertDB CertAC CertAC IdAC+Validité+CPuAC+IdSi+ PrSi CertB IdBob+Validité+CPuB+IdAC+ PrAC CPrA+CertA]CSym+ CPuB Alice Message en clair 1 : Signature Condensé= Hach Message+ CPrA+ CertA 1a : Calculer condensé 1b : Signer condensé 3 : Chiffrement CPrA+CertA]CSym+CSym 3b : Chiffrer avec CSym 3c : Chiffrer clé symétrique CSym 2 : Validation du certificat e : Clé privée d'Alice Clé privée de l'AC Clé privée du signataire du CertAC Clé publique de Bob Clé publique de l'AC Certificat d'Alice Certificat de Bob Certificat de l'AC Clé symétrique unique Algorithme de hachage Identité de Bob Identité de l'AC Ident. du signataire du CertAC Période de validité du t 3a : Évaluer CSym ob Message signé et chiffré Envoyer message au destinataire Vérifier CertB CertB valide OK CertDB CertAC CertAC IdAC+Validité+CPuAC+IdSi+ PrSi CertB IdBob+Validité+CPuB+IdAC+ PrAC CPrA+CertA]CSym+ CPuB Alice Message en clair 1 : Signature Condensé= Hach Message+ CPrA+ CertA 1a : Calculer condensé 1b : Signer condensé 3 : Chiffrement CPrA+CertA]CSym+CSym 3b : Chiffrer avec CSym 3c : Chiffrer clé symétrique CSym 2 : Validation du certificat e : Clé privée d'Alice Clé privée de l'AC Clé privée du signataire du CertAC Clé publique de Bob Clé publique de l'AC Certificat d'Alice Certificat de Bob Certificat de l'AC Clé symétrique unique Algorithme de hachage Identité de Bob Identité de l'AC Ident. du signataire du CertAC Période de validité du t 3a : Évaluer CSym ob Message signé et chiffré Envoyer message au destinataire Vérifier CertB CertB valide OK CertDB CertAC CertAC IdAC+Validité+CPuAC+IdSi+ PrSi CertB IdBob+Validité+CPuB+IdAC+ PrAC CPrA+CertA]CSym+ CPuB Alice Message en clair Alice envoie un message signé et chiffré à Bob à l’aide d’un certificat 1 : Signature Condensé= Hach Message+ CPrA+ CertA 1a : Calculer condensé 1b : Signer condensé 3 : Chiffrement CPrA+CertA]CSym+CSym 3b : Chiffrer avec CSym 3c : Chiffrer clé symétrique CSym 2 : Validation du certificat Légende : CPrA Clé privée d'Alice PrAC Clé privée de l'AC PrSi Clé privée du signataire du CertAC CPuB Clé publique de Bob CPuAC Clé publique de l'AC CertA Certificat d'Alice CertB Certificat de Bob CertAC Certificat de l'AC CSym Clé symétrique unique Hach Algorithme de hachage IdBob Identité de Bob IdAC Identité de l'AC IdSi Ident. du signataire du CertAC Validité Période de validité du certificat 3a : Évaluer CSym Bob Message signé et chiffré Envoyer message au destinataire Vérifier CertB CertB valide OK CertDB CertAC CertAC IdAC+Validité+CPuAC+IdSi+ PrSi CertB IdBob+Validité+CPuB+IdAC+ PrAC CPrA+CertA]CSym+ CPuB Bob Message signé et chiffré ob Message signé et chiffré ob Message signé et chiffré Alice Message en clair Alice envoie un message signé et chiffré à Bob à l’aide d’un certificat 1 : Signature Condensé= Hach Message+ CPrA+ CertA 1a : Calculer condensé 1b : Signer condensé 3 : Chiffrement CPrA+CertA]CSym+CSym 3b : Chiffrer avec CSym 3c : Chiffrer clé symétrique CSym 2 : Validation du certificat Légende : CPrA Clé privée d'Alice PrAC Clé privée de l'AC PrSi Clé privée du signataire du CertAC CPuB Clé publique de Bob CPuAC Clé publique de l'AC CertA Certificat d'Alice CertB Certificat de Bob CertAC Certificat de l'AC CSym Clé symétrique unique Hach Algorithme de hachage IdBob Identité de Bob IdAC Identité de l'AC IdSi Ident. du signataire du CertAC Validité Période de validité du certificat 3a : Évaluer CSym Bob Message signé et chiffré Envoyer message au destinataire Vérifier CertB CertB valide OK CertDB CertAC CertAC IdAC+Validité+CPuAC+IdSi+ PrSi CertB IdBob+Validité+CPuB+IdAC+ PrAC CPrA+CertA]CSym+ CPuB Bob Message signé et chiffré ob Message signé et chiffré Figure 5 : Processus détaillé de signature et de chiffrement à l'aide de certificats Dans la figure 5 ci-dessus, une étape de validation de certificat a été ajoutée par rapport aux étapes illustrées à la figure 3. Seuls les champs requis pour la validation d'un certificat sont affichés. Alice veut s'assurer que la CPuB incluse dans le CertB appartient bien à Bob et qu'elle est toujours valide. - Elle vérifie le champ Id et trouve IdBob, qui représente l'identité de Bob. En fait, la seule chose qu'elle sait réellement est que ce certificat semble appartenir à Bob. - Elle vérifie ensuite les champs de validité et constate que la date et l'heure actuelles entrent dans la période de validité. Jusque-là, le certificat semble bien appartenir à Bob et être valide. - La dernière vérification consiste à vérifier la signature du CertB à l'aide de la clé publique de l'AC (CPuAC incluse dans le CertAC) [10] . Si la signature du CertB est valide, cela signifie que : 10 Rappelons qu'une signature est le condensé d'un message (dans le cas présent, le message est CertB) chiffré à l'aide de la clé privée de l'émetteur (il s'agit ici de la clé privée de l'AC). Le processus de vérification de la signature de l'AC est identique à celui illustré à la figure 4 où Bob vérifie la signature d'Alice. © Groupe CGI inc., 2002. Tous droits réservés. Aucune partie de cette publication ne peut être reproduite par quelque procédé que ce soit sans l'accord préalable de CGI. Page 11 sur 15 a) Le certificat de Bob a été signé par l'AC en laquelle Alice et Bob ont pleinement confiance. b) L'intégrité du certificat de Bob est prouvée et il n'y a donc eu aucune altération. c) L'identité de Bob est assurée et la clé publique incluse dans le certificat est toujours valide et appartient bien à Bob. Par conséquent, Alice peut chiffrer le message et avoir la certitude que seul Bob pourra le lire. Bob exécutera les mêmes étapes pour le certificat d'Alice avant de vérifier la signature d'Alice. 2.2 Au-delà de la mécanique Jusqu'à présent, nous avons examiné principalement les mécanismes de clé publique associés au chiffrement et à la signature numérique. Dans la section 2, la notion d'autorité de certification est apparue. L'AC constitue le noyau de l'infrastructure à clé publique (ICP). 3. Qu'est-ce qu'une ICP? Une ICP est une combinaison de logiciels et de méthodes offrant un moyen de gérer...