Brevet FR2880751A1 — publié le 20060714

L'invention concerne un procédé pour vérifier la validité d'une clé publique d'un titulaire présumé ainsi qu'un module et un dispositif pour la mise en oeuvre de ce procédé. Un système cryptographique à clé publique utilise des bi-clés constituées chacune d'une "clé publique" Kpub et d'une "clé privée" Kpr associées, appartenant toutes deux à un même titulaire (par exemple un individu ou une entreprise). Les clés publiques Kpub sont rendues accessibles au public, alors que les clés privées Kpr sont gardées secrètes par leurs titulaires. Prenons l'exemple d'Alice, titulaire d'une clé publique Kp"b(A) et d'une clé privée Kpr(A) associées. La clé publique Kp b(A) d'Alice permet - à Alice de s'authentifier, par exemple auprès d'un réseau ou d'un serveur, à un tiers, par exemple Bob, de vérifier la signature d'Alice et à un tiers, par exemple Carole, de chiffrer un message pour Alice. La fiabilité d'un système de cryptographique à clé publique tient notamment à la certification des clés publiques, c'est-à-dire à l'attribution de certificats aux clés publiques. Le rôle fondamental d'un certificat est de lier une clé publique et l'identité de son titulaire. Un certificat comprend notamment les éléments suivants: - la clé publique à certifier; - l'identité de son détenteur; - une signature cryptographique des données du certificat par la clé privée d'une Autorité de Certification, ou "AC", ayant émis le certificat. L'Autorité de Certification, également appelée Tiers de Certification "TC", a pour 25 fonction de vérifier l'identité des titulaires des clés publiques qu'elle certifie, généralement en face à face, avant de leur délivrer leurs certificats. Par définition, un certificat est dit auto-signé s'il est signé par la clé privée associée à la clé publique qu'il certifie et racine s'il s'agit d'un certificat émis par une AC et qu'il est auto- signé. Pour reprendre l'exemple ci-dessus, les interlocuteurs d'Alice (réseau/serveur, Bob et Carole) utilisant la clé publique d'Alice pour l'authentifier, vérifier sa signature ou chiffrer un message doivent s'assurer que la clé Kp"b(A) est bien celle d'Alice et non pas celle d'un fraudeur se faisant passer pour Alice. Pour cela, ils vérifient la validité du certificat C(A) associé à la clé Kpub(A). La figure 1 illustre le processus de vérification, par Bob, de la validité du certificat C(A) associé à la clé publique Kpub(A) d'Alice. Bob extrait du certificat d'Alice C(A) la signature de l'autorité de certification intermédiaire IAC, (Intermediate Certification Authority) ayant émis ce certificat C(A). Bob ignorant tout de IAC,, il récupère le certificat de ICA1, en extrait la signature de RCA (Roof Certification Authority), l'autorité de certification ayant émis le certificat de ICA1, et identifie RCA comme une autorité de certification racine de confiance. Bob ayant vérifié que le certificat C(A) d'Alice est bien rattaché à une autorité de certification de confiance, à savoir RCA, par l'intermédiaire d'une chaîne de confiance, il en conclut que la clé publique Kpub(A) d'Alice appartient bien à Alice. La série de certificats comprenant le certificat d'Alice C(A), le certificat intermédiaire de ICA1 et le certificat racine de RCA forme ce que l'on appelle une chaîne de confiance . La validité du certificat d'Alice C(A) dépend de la validité de cette chaîne de confiance . Par définition, une chaîne de confiance doit être telle que: l'autorité de certification ayant émis le certificat Ci de niveau i dans la chaîne (avec 0_ Sur la figure 1, on voit que l'autorité de certification de plus haut niveau (RCA), ici racine, certifie l'autorité de certification intermédiaire ICA1, qui certifient elle-même le certificat de niveau le plus bas C(A). Il s'agit là d'une hiérarchie d'AC simple à deux niveaux. Il pourrait bien entendu y avoir davantage de niveaux d'autorités de certification. Généralement, l'autorité de certification de plus haut niveau est racine (c'est-à-dire une AC ayant un certificat auto-signé) mais cela n'est pas obligatoire. L'essentiel est que la fiabilité de cette AC (RCA dans l'exemple de la figure 1) soit reconnue. On notera ici que pour discriminer les certificats fiables, ou de confiance , et les certificats douteux, une solution connue consiste à disposer d'une base de confiance contenant des certificats reconnus comme fiables par l'utilisateur. De nombreux navigateurs (par exemple Microsoft Internet Explorer, Netscape Navigator et Mozilla) et de nombreuses applications serveurs (Netscape, Microsoft IIS et Apache) contiennent d'origine une base de certificats de confiance, parfois également appelée ancre de confiance (trust anchor). Cette base de confiance contient les clés publiques et les certificats d'un grand nombre d'autorités de certification, le plus souvent racines (root), dont la fiabilité est largement reconnue, et est régulièrement mise à jour. L'utilisateur d'une base de confiance qui lui est propre peut généralement y accéder, y supprimer des certificats qu'il estime douteux ou l'enrichir de nouveaux certificats qu'il considère comme fiables. Sur la figure 1, on voit que la base de confiance de Bob contient les certificats racine de RCA, RRRrr et XY. Bob considère que la clé publique Kp b(A) et le certificat C(A) d'Alice sont fiables si: - le certificat d'Alice C(A) est rattaché au certificat d'une autorité de certification de niveau haut par l'intermédiaire d'une chaîne de certificats, telle que le 10 certificat de niveau i dans la chaîne est signé par l'AC de niveau i+l dans la chaîne et - l'autorité de certification de plus haut niveau (RCA) fait partie de la base de confiance de Bob. Ainsi, Bob accorde implicitement une confiance absolue non seulement à RCA, l'AC de plus haut niveau, mais également à ICA,, l'AC de niveau intermédiaire. Or, cette AC intermédiaire ne fait pas partie de la base de confiance de Bob et il se peut qu'elle ait connu des problèmes (par exemple émission d'un certificat à une mauvaise personne dans 1 cas sur 1000, failles dans le système (par exemple OS - système d'exploitation identifié comme vulnérable et non mis à jour, informations mal protégées sur un serveur telles que des identités d'utilisateurs contenues dans un annuaire), victime d'attaques réseau, renommée douteuse, etc.). Le problème de l'invention consiste donc à proposer un procédé pour vérifier la validité d'une clé publique d'un titulaire présumé, ladite clé publique appartenant à un ensemble de clés publiques, lesquelles ont chacune une clé privée et au moins un certificat associés, qui permette de mieux tenir compte du niveau de fiabilité de chacune des autorités de la chaîne de confiance. Pour atteindre ce but, le procédé de l'invention comprend: une étape de détermination, dans ledit ensemble, d'une chaîne de clés publiques entre la clé publique à vérifier de niveau bas 0 et une clé publique de niveau haut N, chaque clé publique de niveau i dans la chaîne, avec 0 Bien entendu, la clé publique de niveau bas 0 dans la chaîne correspond à la clé publique à vérifier. On notera également que le certificat CN de la clé publique Kp b_N de niveau N est généralement un certificat racine. Toutefois, il pourrait s'agir d'un certificat non racine. L'invention consiste donc à établir une chaîne de clés publiques entre la clé publique à vérifier et une clé publique de niveau haut et à affecter des poids individuels aux liaisons entre clés publiques adjacentes de la chaîne, liaisons qui sont constituées par des certificats, ainsi qu'au certificat de la clé publique de niveau haut. Une opération (par exemple une multiplication ou une addition) effectuée sur ces poids individuels permet d'obtenir un poids total de la chaîne. Une comparaison visant à déterminer si le poids total de la chaîne est supérieur à un seuil prédéfini permet ensuite de détecter si le certificat de la clé publique à vérifier est valable. La comparaison peut s'appliquer au poids total de la chaîne directement ou à une valeur dérivée de ce poids total. La clé publique de niveau haut N dans la chaîne peut également avoir un certificat, et notamment un certificat auto-signé CN s'il s'agit d'une clé publique d'une autorité de certification racine. Dans ce cas, un poids individuel est également affecté au certificat CN de la clé publique de niveau haut N et le poids total de la chaîne en tient compte. Toutefois, il existe des infrastructures PKI (Public Key Infrastructure) dans lesquelles certaines clés publiques, par exemple celles des autorités de certification racines, n'ont pas de certificats. Dans une infrastructure PKI dont les autorités de certification racines ont des clés publiques sans certificat, il n'existe pas de certificats auto-signés. Bien entendu, l'invention s'applique également à ce type d'infrastructures PKI et propose, dans ce cas, d'affecter fictivement des certificats "virtuels" aux clés publiques des autorités de certifications racines. L'invention concerne également un module pour vérifier la validité d'une clé publique d'un titulaire présumé, ladite clé publique appartenant à un ensemble S2 de clés publiques, ayant chacune au moins un certificat et une clé privée associée, comprenant - des moyens pour déterminer, dans l'ensemble Q, une chaîne de clés publiques 5 entre la clé publique à vérifier de niveau bas 0 et une clé publique de niveau haut N, - des moyens d'affectation de poids destinés à affecter des poids individuels respectifs aux certificats de la chaîne, un poids total de la chaîne résultant d'une opération sur les poids individuels des certificats de ladite chaîne, et des moyens de comparaison destinés à effectuer une comparaison visant à déterminer si un poids total de la chaîne, est supérieur au seuil S prédéfini, - des moyens de détection destinés à détecter si la clé publique à vérifier est valable ou non valable en fonction du résultat de la comparaison. L'invention concerne enfin un dispositif comprenant le module pour vérifier la 15 validité d'une clé publique d'un titulaire présumé, tel que défini ci-dessus. L'invention sera mieux comprise à l'aide de la description suivante de deux modes de réalisation du procédé de l'invention et du module correspondant, en référence aux dessins annexés sur lesquels: - la figure 2 représente un organigramme des étapes du procédé, selon un premier 20 mode de réalisation, La figure 3 représente un schéma bloc fonctionnel d'un dispositif apte à mettre en oeuvre le procédé de la figure 2, - La figure 4 représente un organigramme des étapes du procédé selon un second mode de réalisation, - La figure 5 représente un schéma bloc fonctionnel d'un dispositif apte à mettre en oeuvre le procédé de la figure 4. Soient S2 un ensemble de bi-clés, constituées chacune d'une clé publique Kpib et d'une clé privée Kpr, d'une infrastructure PKI, B un ensemble comprenant de certificats attribués aux clés publiques de l'ensemble Q, BR le sous-ensemble de B contenant les certificats racines et BC une base de confiance contenant un ensemble de certificats fiables, également appelés certificats de confiance . On notera que le sous-ensemble BR de certificats racines contient deux types de 5 certificats: des certificats de confiance , appartenant à la base de confiance BC, et des certificats autres , n'appartenant pas à la base de confiance BC. Dans l'exemple particulier de la description, les clés publiques Kp"b de l'ensemble S2 ont un certificat C dont le rôle est de lier la clé Kp b et le titulaire de celle-ci. Un certificat C contient notamment les éléments suivants: - la clé KpUb à certifier, - l'identité du titulaire de la clé Kp b et - une signature cryptographique des données du certificat C par la clé privée d'une Autorité de Certification, que l'on appellera par la suite "AC", ayant émis le certificat. Le procédé de l'invention permet à un tiers B de vérifier la validité d'une clé publique Kpub(A) appartenant à un titulaire présumé A. La vérification de la validité de la clé publique Kpub(A) consiste ici à vérifier que cette clé publique Kpub(A) appartient bien à son titulaire A, et non à un fraudeur se faisant passer pour le véritable titulaire. Dans l'exemple particulier de la description, on appellera A Alice, le titulaire présumé de la clé publique Kpub(A) à valider et B Bob, le tiers souhaitant vérifier la validité de la clé d'Alice Kpub(A). Bob a accès à la base de confiance BC. Dans un premier mode de réalisation du procédé de l'invention, chaque clé publique de l'ensemble 1-2 a un unique certificat. En référence à la figure 2, le procédé comporte une première étape El consistant à déterminer, dans l'ensemble S2, une chaîne de clés publiques H={Kp"b(A), Kpub I,..., Kp b_N} entre la clé publique à vérifier Kpub(A) de niveau bas 0 et une clé publique Kp b_N de niveau haut N. Les clés publiques ayant chacune un unique certificat, il existe une unique chaîne de clés publiques entre la clé publique à vérifier Kpub(A) et la clé publique de niveau haut Kp b_N. Chaque clé publique Kp b i, de niveau i dans la chaîne H, avec 0i Après détermination de la chaîne H (étape El), il est prévu une étape E2 consistant à affecter à chaque certificat (C,;+1 et CN) de la chaîne H un poids individuel, à savoir: un poids individuel p(C;,;+,) à chaque certificat C;,;+1 de la chaîne H et - un poids individuel p(CN) au certificat CN de la clé publique Kp b_N de niveau le plus haut N. L'affectation de poids individuels aux certificats de la chaîne H peut être régie par différentes règles, notamment celles qui seront explicitées dans les variantes décrites plus loin. Toutefois, l'invention n'est pas limitée à ces exemples particuliers. Une opération effectuée sur les poids individuels p(C,;+,) et p(CN) des certificats C,;+1 et CN de la chaîne H permet de calculer un poids total PH de la chaîne H. Plusieurs modes de calcul du poids total PH sont envisagés, notamment ceux qui seront explicités dans les variantes décrites plus loin. Toutefois, l'invention n'est pas limitée à ces exemples particuliers. Dans certaines variantes (n 3 et 4), on calcule une grandeur dérivée du poids total PH et non le poids total PH lui-même. L'étape E2 d'affectation de poids aux certificats de la chaîne H est suivie d'une 20 étape de comparaison E3 visant à déterminer si le poids total PH de la chaîne H est supérieur à un seuil S, prédéfini, afin de détecter si la clé publique Kpub(A) est valable. Dans une étape E4, si le résultat de l'étape E3 est que le poids total PH est supérieur ou, ici, égal au seuil S, on détecte que le certificat C(A) est valable, autrement dit que la clé Kpub(A) appartient bien à Alice. En revanche, s'il résulte de l'étape E3 que le poids total PH est strictement inférieur au seuil S, alors on détecte que le certificat C(A) est douteux et, par conséquence, considérée comme non valable. On va maintenant décrire plusieurs variantes du procédé de l'invention selon le premier mode de réalisation. Par souci de concision, seules les caractéristiques distinctives des variantes seront explicitées. Dans les variantes n 1 à 4, le poids total PH de la chaîne H est le résultat d'une opération de multiplication des poids individuels p(C,;+ i) et p(CN) des certificats de la chaîne H: N 1 PH = [fI p(Ck i+1)] Ép(CN) i=o Variante n 1 Dans la variante n 1, à l'étape E2, il est affecté un poids de 1 aux certificats de confiance de BR et un poids de 0 aux certificats autres de BR, et un poids de x aux certificats de B n'appartenant pas à BR, avec 0 L'étape de comparaison E3 consiste à comparer PH = [fJ p(Cwi+1)] Ép(CN) au i=o seuil S fixé à xd, où "d" est un entier correspondant à une profondeur maximale de portion de chaîne s'étendant en dehors de BR. Selon cette variante n 1, sont considérés comme douteux, et par conséquent non valables: les certificats rattachés à un certificat racine autre et - les certificats rattachés à un certificat racine de confiance par un nombre de certificats intermédiaires strictement supérieur à la valeur d. Cette variante conduit donc à considérer comme douteux les certificats qui sont rattachés à un certificat de confiance par une chaîne de certificats trop longue. Variante n 2 Dans la variante n 2, à l'étape E2, il est attribué à chaque certificat racine CR; de BR un poids individuel p(CR;), dont la valeur est comprise entre 0 et 1 (05 p(CR,) Variante n 3 Dans la variante n 3, à l'étape E2, il est attribué à chaque certificat Ci,i+1 et CN de la chaîne H un poids individuel, p(Ci,i+ 1) et p(CN), tel que p(C)=p'(C).g,,,, où p'(C) est un entier et gn, est un nombre réel, de valeur constante, correspondant à une granularité multiplicative de poids. N-1 A l'étape de comparaison E3, on calcule le produit [fl p' (C,,,,+l) ]. p' (CN) et on r=o compare le résultat de ce calcul à INT S/ N+l \ gm / où INT(x) est la fonction partie entière de N-I x. On notera que [fl p' (G,,+, )]. p' (CN) = N+1. Le produit calculé et comparé est dérivé du poids total PH de la chaîne. Ce mode de calcul permet de calculer un produit d'entiers, ce qui nécessite moins de capacité de calcul que pour calculer un produit de nombres réels. En outre, les valeurs de INT S/ N+1 gm / pour plusieurs valeurs de N peuvent être pré-calculées et mémorisées, ce qui réduit encore la puissance de calcul requise pour l'étape de comparaison E4. Variante n 4 Dans la variante n 4, à l'étape E2, il est attribué à chaque certificat Ci,i+1 et CN de la chaîne un poids individuel p(Ci,i+1) et p(CN) tel que p(C) = gQ n (c) où p'(C) est un entier et ga un nombre réel, de valeur constante, correspondant à une granularité additive de poids. N-1 A l'étape de comparaison E3, on calcule la somme p' (Ci,,+1)] + p' (CN) et on =o compare le résultat de ce calcul à INT Cln S (ga)i où INT(x) est la fonction partie entière de x. N-I N I ln(P) _ ln [n p(C;Fi+I)]Ép(CN) [p' (CiFi+1)j + p (CN) = ln(gQ) ln(ga) i=o La somme calculée et comparée est dérivée du poids total PH de la chaîne. N-I On notera que L'opération additive p' (C1F1+1)j + p' (CN) i=o est dérivée d'une opération de multiplication des poids individuels p(C) = g /" à laquelle on a appliqué la fonction logarithmique ln . Ce mode de calcul permet de calculer une somme d'entiers, ce qui limite encore davantage la capacité de calcul nécessaire. En outre, comme pour la variante n 3, la valeur de INT(1n(S (g) peut être pré-calculée et mémorisée, ce qui réduit encore la capacité de calcul requise pour l'étape de comparaison E3. Dans les variantes N 5 à 7, le poids total PH de la chaîne H est obtenu par addition des poids individuels p(C;,;+1) et p(CN) des certificats C;,1+1 et CN de la chaîne H, et non par multiplication de ces poids individuels. Toutes les règles préalablement décrites pour affecter des poids individuels aux certificats peuvent être utilisées pour ces variantes. Variante n 5 Le poids total de la chaîne H est calculé à l'aide de la formule suivante: N-1 pH = [1 p(C --1+1)]+p(CN) r=o Cette formule correspond à la forme logarithmique de la formule multiplicative 20 des variantes n 1 et n 2. Elle équivaut également à la formule de la variante n 4 (granularité additive des poids), si l'on considère que les poids prennent des valeurs discrètes. Variante n 6 Le poids total de la chaîne H est calculé à l'aide de la formule N-1 1(i +1)p(C,,i+1)+(N+1).p(CN) suivante: PH = '-0 (N + 1)(N + 2/ Selon cette variante, les poids individuels sont pondérés selon leur niveau dans la chaîne H. Cette formule permet d'affecter plus de poids au certificat de la clé publique de niveau le plus haut. Variante n 7 Le poids total de la chaîne H est calculé à l'aide de la formule suivante: N 1 f (i)Ép(C,,,+i) + f (N)ÉCN PH = -0 N, où f(x) est une fonction de pondération, ici f(N) -o une fonction de l'ensemble des entiers sur l'ensemble des nombres réels Le but de cette fonction f(x) est de permettre de donner moduler l'importance des certificats en fonction de leur position dans la chaîne. Par exemple, les certificats proches de la racine pourraient être considérés comme plus importants que les certificats proches de l'utilisateur. On notera que l'inverse aurait également un sens. Par application de la fonction exponentielle, on obtient les formules multiplicatives correspondantes. Bien entendu, on pourrait envisager d'autres formules de calcul du poids total PH ou d'une valeur dérivée de ce poids total. Le premier mode de réalisation du procédé de l'invention est exécuté par un dispositif 2 comportant un module pour vérifier la validité d'une clé publique Kpub(A) d'un titulaire présumé A. Le dispositif 2 est ici un terminal de communication à travers un réseau de communication, en l'espèce l'Internet, utilisé par Bob. Bien entendu, l'invention pourrait s'appliquer à tout réseau autre que l'Internet. Le module 1 comprend: un bloc 10 pour déterminer une chaîne de clés publiques (H=(Kpub(A), KpubJ, ÉÉÉ, KpubN}) entre la clé publique à vérifier (Kpub(A)) de niveau bas 0 et une clé 25 publique (Kpub N) de niveau haut (N), un bloc 11 d'affectation de poids destiné à affecter des poids individuels respectifs (p(C,,,+1), p(CN)) aux certificats (C,,,+1, CN) de la chaîne et, si besoin, à déterminer un poids total (PH) de la chaîne (H) en effectuant une opération sur les poids individuels des certificats de la chaîne (H), un bloc de comparaison 12 destiné à effectuer une comparaison visant à déterminer si le poids total (PH) de la chaîne (H), est supérieur au seuil S prédéfini, - un bloc de détection 13 destiné à détecter si la clé publique à vérifier (Kpub(A)) est valable ou non valable en fonction du résultat de la comparaison. Les blocs 10, 11, 12, 13 sont respectivement agencés pour mettre en oeuvre les étapes El, E2, E3, E4. Dans le mode réalisation préféré de l'invention, le module 1 est un module logiciel comportant des instructions de programme aptes à faire exécuter les différentes étapes du procédé précédemment décrit par le dispositif 2. Le module logiciel 1 est ici stocké sur un disque dur du dispositif 2. Bien entendu, aux différentes variantes de réalisation du procédé, précédemment décrites, correspondent différentes formes de réalisation du module de l'invention. Dans un second mode de réalisation, au moins certaines des clés publiques de l'ensemble S2 ont chacune plusieurs certificats. Supposons qu'au moins l'une des clés publiques de la chaîne H, reliant la clé Kpub(A) et la clé publique Kp b_N de niveau N, possède deux certificats. L'ensemble S2 contient alors une autre chaîne H'={KpUb(A),..., Kpub_M} entre la clé publique à vérifier Kpub(A) et une autre clé publique Kp b m de niveau haut M. En référence à la figure 4, dans le second mode de réalisation, le procédé comprend une étape El' de détermination d'une chaîne de clés publiques par sélection, parmi une pluralité de chaînes existantes reliant la clé publique à vérifier Kpub(A) et une clé publique de niveau haut, de l'une d'entre elles. L'étape El' comprend une sous-étape El1' consistant à déterminer toutes les chaînes existantes dans l'ensemble S2, à savoir H et H' pour reprendre l'exemple ci-dessus, reliant la clé publique à vérifier Kpub(A) et des clés publiques Kp b N et Kpub_M de niveaux hauts, suivie d'une sous-étape E12' consistant à sélectionner l'une des deux chaînes H et H', selon un critère de sélection prédéfini. Parallèlement à l'étape El', une étape E2' d'attribution de poids est mise en oeuvre. Cette étape E2' comprend, pour chacune des chaînes déterminées à l'étape El 1', une sous-étape E21' consistant à affecter des poids individuels (p(Ci+,,i), avec 0 Après sélection de la chaîne H' à l'étape El', il est prévu une étape de comparaison E3' visant à comparer le poids total PH, de la chaîne sélectionnée à un seuil prédéfini S, suivie d'une étape de détection E4' consistant à détecter si la clé publique Kp b(A) est valable ou non valable en fonction du résultat de cette comparaison. Les étapes de comparaison E3' et de détection E4' du second mode de réalisation du procédé, appliquées à la chaîne sélectionnée, sont analogues aux étapes de comparaison E3 et de détection E4 du premier mode de réalisation. Dans une première variante, l'étape de sélection El' consiste à sélectionner, parmi la pluralité de chaînes existantes de l'ensemble S2. reliant la clé publique à vérifier Kpub(A) et une clé publique de niveau haut, la chaîne déterminée en premier. La vérification de la validité d'une clé publique selon cette première variante présente l'avantage d'être rapide. Dans une seconde variante, la sélection consiste à sélectionner la chaîne permettant de valider la clé publique Kp"b(A) déterminée en premier. Dans cette variante, le procédé comprend une étape E1" de détermination, par sélection, d'une chaîne de clés publiques, consistant à sélectionner l'une quelconque des chaînes parmi la pluralité de chaîne de l'ensemble S2 reliant la clé publique à vérifier Kp b(A) et une clé publique de niveau haut. Des poids individuels sont affectés aux certificats de la chaîne sélectionnée, lors d'une étape E2", puis il est prévu une étape de comparaison E3" visant à comparer le poids total de la chaîne sélectionnée à un seuil S prédéfini. En fonction du résultat de cette comparaison, on détecte si la chaîne sélectionnée permet de valider la clé publique Kp b(A), lors d'une étape E4". Si tel est le cas, le procédé est terminé. Sinon, on revient à l'étape El" afin de sélectionner une nouvelle chaîne reliant la clé publique à vérifier Kp b(A) et une clé publique de niveau haut. Le processus de recherche (étapes El", E2", E3" et E4") est relancé jusqu'à obtention d'une première chaîne permettant de valider la clé publique Kp"b(A). Le second mode de réalisation du procédé de l'invention est exécuté par un dispositif 2' comportant un module 1' pour vérifier la validité d'une clé publique Kp b(A) d'un titulaire présumé A. Le dispositif 2' est ici un terminal de communication à travers un réseau de communication, en l'espèce l'Internet. Bien entendu, l'invention pourrait s'appliquer à tout autre réseau. Le module 1' comprend: un bloc de sélection 10' pour sélectionner, parmi une pluralité de chaînes reliant la clé publique à vérifier et une clé publique de niveau haut, l'une d'entre elles, un bloc 11' d'affectation de poids agencé pour affecter des poids individuels respectifs aux certificats d'une chaîne et, si besoin, pour calculer le poids total de 5 cette chaîne en effectuant une opération sur les poids individuels, - un bloc 12' pour effectuer une comparaison visant à déterminer si le poids total de la chaîne sélectionnée est supérieur à un seuil S et un bloc 13' de détection agencé pour détecter, en fonction du résultat de la comparaison, si la clé publique à vérifier est valable. Bien entendu, aux différentes variantes du second mode de réalisation du procédé, telles que précédemment décrites, correspondent différentes variantes de réalisation du module de l'invention. Comme cela a déjà été précédemment explicité, le procédé de l'invention est, de préférence, mis en oeuvre par un module logiciel comportant des instructions de programme aptes à faire exécuter les étapes du procédé décrit par un dispositif informatique. Le module logiciel peut être stocké sur tout type de support matériel (par exemple une mémoire locale, un disque dur, une disquette magnétique ou un CDROM) ou être transporté sur un support transmissible (par exemple par un signal électrique, optique ou radio). Dans la description qui précède, les dispositifs 2 et 2' sont des terminaux de communication à travers un réseau et les modules logiciels 1 et 1' sont implémentés respectivement dans ces terminaux 2 et 2'. En variante, le dispositif 2 pourrait être un serveur d'un réseau de communication dans lequel serait implémenté le module logiciel 2 (ou 2') de l'invention. Le serveur pourrait utiliser ce module logiciel 2 (2') pour vérifier si une clé publique d'un titulaire présumé est valable, soit de sa propre initiative, soit sur requête d'un terminal client requérant. On pourrait également envisager que le procédé de l'invention soit exécuté par un dispositif autre qu'un terminal de communication ou un serveur. Dans les différents exemples précédemment décrits, toutes les clés publiques de l'ensemble S2 ont au moins un certificat. Toutefois, l'invention s'applique également à des infrastructures PKI dans lesquelles les autorités de certification racines ont des clés publiques sans certificat auto-signé, enregistrées directement dans les bases de confiance des utilisateurs. Dans ce type d'infrastructures PKI, les certificats auto-signés n'existent pas. Dans ce cas, le procédé selon l'invention peut comprendre une étape supplémentaire consistant à attribuer fictivement un certificat, par exemple un certificat auto-signé, à une clé publique sans certificat, de niveau haut dans la chaîne H établie et appartenant à une autorité de certification racine, et d'affecter un poids individuel à ce certificat fictif, par exemple de valeur égale à 1. Le poids total de la chaîne H tient alors compte du poids individuel du certificat fictif. 25 16 REVENDICATIONS 1. Procédé pour vérifier la validité d'une clé publique (Kpub(A)) d'un titulaire présumé (A), ladite clé publique (Kpub(A)) appartenant à un ensemble (S2) de clés publiques, lesquelles ont chacune une clé privée et au moins un certificat associés, caractérisé par le fait qu'il comprend: une étape (El; El'; El") de détermination, dans ledit ensemble (Q), d'une chaîne de clés publiques (H={Kpub(A), Kpub_l,É É É, Kpub_N}) entre la clé publique à vérifier (Kpub(A)) de niveau bas 0 et une clé publique (KpubN) de niveau haut N, chaque clé publique (Kpub i) de niveau i dans la chaîne (H), avec 0 2. Procédé selon la revendication 1, dans lequel, É si la clé publique de niveau haut N a un certificat, il est attribué un poids individuel à ce certificat et le poids total de la chaîne prend en compte le poids individuel de ce certificat de niveau N, et É si la clé publique de niveau haut N n'a pas de certificat, il est prévu une étape consistant à lui affecter fictivement un certificat, il est attribué un poids individuel à ce certificat fictif et le poids total de la chaîne prend en compte le poids individuel de ce certificat fictif de niveau N. 3. Procédé selon l'une des revendications 1 et 2, dans lequel le poids total PH de la chaîne (H) résulte d'une multiplication des poids individuels (p(C;,i+1) et p(CN)) de la chaîne (H). 4. Procédé selon la revendication 3, dans lequel, B et BR désignant respectivement l'ensemble des certificats associés aux clés publiques de l'ensemble S2 et le sous-ensemble de B contenant les certificats racines, lors de l'étape d'affectation de poids, il est attribué - un poids de 1 aux certificats de confiance de BR et un poids de 0 aux certificats de BR autres que les certificats de confiance, - un poids de x aux certificats de B n'appartenant pas à BR, avec 0 5. Procédé selon la revendication 3, dans lequel, B et BR désignant respectivement l'ensemble des certificats associés aux clés publiques de l'ensemble S et le sous-ensemble de B contenant les certificats racines, lors de l'étape d'affectation de poids, il est attribué: à chaque certificat CRi de BR un poids individuel p(CRj), dont la valeur est comprise entre 0 et 1 et dépend du niveau de confiance accordé audit certificat, - un poids de x aux certificats de B n'appartenant pas à BR, avec 0 6. Procédé selon la revendication 3, dans lequel, - lors de l'étape d'affectation de poids, on affecte à chaque certificat C de la chaîne (H) un poids p(C) tel que p(C)=p'(C).gn où p'(C) est un entier et est un nombre réel, de valeur constante, correspondant à une granularité multiplicative de poids, et N-1 - lors de l'étape de comparaison, on compare le produit [flp'(C;,i+,)].p'(CN) t-o à INT s N+1, où INT(x) est la fonction partie entière de x afin de. i o m 7. Procédé selon la revendication 3, dans lequel - lors de l'étape d'affectation de poids, on attribue à chaque certificat C un poids p(C) tel que p(C) = gQ p (c) où p'(C) est un entier et ga un nombre réel, de valeur constante, correspondant à une granularité additive de poids, N-1 lors de l'étape de comparaison, on compare p' (C1i+1)] + p' (CN) à =o INZ,(ln(S) (g)) où INT(x) est la fonction partie entière de x. 8. Procédé selon l'une des revendications 1 à 7, dans lequel le poids total PH de la chaîne H résulte d'une opération d'addition des poids individuels p(C) des certificats C. 9. Procédé selon la revendication 8, dans lequel les poids individuels de la chaîne sont pondérés dans l'opération d'addition. 10. Procédé selon l'une des revendications 1 à 9, dans lequel, au moins l'une des clés publiques de la chaîne H ayant au moins deux certificats de sorte qu'il existe une autre chaîne H'={Kpub(A),..., Kpub_M} entre la clé publique à vérifier Kpub(A) et une autre clé publique Kp b_M de niveau haut M, il est prévu une étape consistant à sélectionner l'une des deux chaînes H et H', selon un critère de sélection prédéfini. 11. Module pour vérifier la validité d'une clé publique Kp b(A) d'un titulaire présumé A, ladite clé publique Kp b(A) appartenant à un ensemble SZ de clés publiques, ayant chacune au moins un certificat et une clé privée associée, comprenant - des moyens (10) pour déterminer, dans l'ensemble Q, une chaîne de clés publiques (H={Kpub(A), Kpub_r. KpubN}) entre la clé publique à vérifier (Kpub(A)) de niveau bas 0 et une clé publique (Kpub_N) de niveau haut (N), - des moyens d'affectation de poids (11) destinés à affecter des poids individuels respectifs (p(C i+,), p(CN)) aux certificats (C,,,+,, CN) de la chaîne (H), un poids total de la chaîne (H) résultant d'une opération sur les poids individuels des certificats de ladite chaîne (H), et des moyens de comparaison (12) destinés à effectuer une comparaison visant à déterminer si un poids total (PH) de la chaîne (H), est supérieur au seuil S prédéfini, - des moyens de détection (13) destinés à détecter si la clé publique à vérifier 5 (Kp b(A)) est valable ou non valable en fonction du résultat de la comparaison. 12. Module pour vérifier la validité d'une clé publique Kpub(A) d'un titulaire présumé A, ladite clé publique Kp b(A) appartenant à un ensemble S2 de clés publiques, ayant chacune au moins un certificat et une clé privée associée, comprenant - des moyens de sélection (10') destinés à sélectionner, parmi une pluralité de chaînes reliant la clé publique à vérifier et une clé publique de niveau haut, l'une d'entre elles, - des moyens (11') d'affectation de poids agencés pour affecter des poids individuels respectifs aux certificats d'une chaîne, un poids total de ladite chaîne résultant d'une opération sur les poids individuels de ses certificats, - des moyens de comparaison (12') agencés pour effectuer une comparaison visant à déterminer si le poids total d'une chaîne est supérieur à un seuil S et - des moyens de détection (13') agencés pour détecter, en fonction du résultat de la comparaison, si la clé publique à vérifier est valable. 13. Module selon l'une des revendications 11 et 12, caractérisé en outre par le fait qu'il est logiciel et que les moyens qu'il comprend sont constitués d'instructions logicielles destinées à commander un dispositif informatique. 14. Dispositif comprenant le module pour vérifier la validité d'une clé publique Kp b(A) d'un titulaire présumé A, selon l'une des revendications 1 l à 13. 15