WO2006072745A1 - Procede pour verifier la validite d'une cle publique d'un titulaire presume, module et dispositif pour sa mise en oeuvre - Google Patents
Procede pour verifier la validite d'une cle publique d'un titulaire presume, module et dispositif pour sa mise en oeuvre Download PDFInfo
- Publication number
- WO2006072745A1 WO2006072745A1 PCT/FR2006/000021 FR2006000021W WO2006072745A1 WO 2006072745 A1 WO2006072745 A1 WO 2006072745A1 FR 2006000021 W FR2006000021 W FR 2006000021W WO 2006072745 A1 WO2006072745 A1 WO 2006072745A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- public key
- chain
- pub
- certificate
- certificates
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Definitions
- PKI Public Key Infrastructure
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
L'invention concerne un 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 Ω de clés publiques, ayant chacune au moins un certificat et une clé privée associée, comprenant i) une étape de détermination, dans l'ensemble Ω, d'une chaîne de clés publiques H={Kpub(A), Kpub_1…, Kpub_N} entre la clé publique à vérifier Kpub(A) de niveau bas 0 et une clé publique Kpub_N niveau haut N, chaque clé publique Kpub_i de niveau i dans la chaîne H, avec 0 ≤ i ≤N- 1, étant reliée à la clé publique Kpub_ i+1 de niveau i+1 dans la chaîne H par un certificat Ci←i+1 associé à la clé publique Kpub_i de niveau i et signé par la clé privée Kpr_i+i de niveau i+1 et la clé publique Kpub_ N ayant un certificat CN, ii) une étape d'affectation de poids individuels respectifs p(Ci←i+1), ρ(CN) aux certificats Ci←i+1, CN de la chaîne H, et iii) une étape de comparaison visant à déterminer si un poids total PH de la chaîne H, résultant d'une opération sur les poids individuels P(Ci←i+1) et ρ(CN) des certificats de la chaîne H, est supérieur à un seuil S afin de détecter si la clé publique Kpub(A) est valable.
Description
Titre: Procédé pour vérifier la validité d'une clé publique d'un titulaire présumé, module et dispositif pour sa mise en oeuvre
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 œuvre 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 KpUb(A) et d'une clé privée Kp1-(A) associées. La clé publique Kpub(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 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é Kpub(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 IACi (Intermediate Certification Authoήty) ayant émis ce certificat C(A). Bob ignorant tout de IAC1, il récupère le certificat de ICA], en extrait la signature de RCA (Root Certification Authority), l'autorité de certification ayant émis le certificat de ICAl3 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 ICAl 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 Q de niveau i dans la chaîne
(avec 0< i <N-1) est l'autorité de certification ACμ-i de niveau i+1 (c'est-à-dire l'AC ayant le certificat Ci+O l'autorité de certification de niveau le plus haut ACN (RCA sur la figure 1) est une autorité de confiance. 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 ICAj, qui certifient elle-même le certificat de niveau le plus bas C(A). H s'agit là d'une hiérarchie d'AC simple à deux niveaux. H 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 US© 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 Kpub(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 certificat de niveau i dans la chaîne est signé par l'AC de niveau i+1 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, PAC de plus haut niveau, mais également à ICAi, l'AC de niveau intermédiaire. Or3 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 O ≤i ≤N-1, étant reliée à la clé publique de niveau i+1 dans la chaîne par un certificat Ci+-i+i associé à la clé publique de niveau i et signé par la clé privée de niveau i+1,
une étape d'affectation de poids individuels respectifs aux certificats de la chaîne, une étape de comparaison visant à déterminer si un poids total de la chaîne, résultant d'une opération sur les poids individuels des certificats de la chaîne, est supérieur à un seuil S afin de détecter si la clé publique à vérifier est valable.
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 Kpub_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 Ω 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 Ω, 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, 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 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 mode de réalisation,
La figure 3 représente un schéma bloc fonctionnel d'un dispositif apte à mettre en œuvre 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 œuvre le procédé de la figure 4. Soient
Ω un ensemble de bi-clés, constituées chacune d'une clé publique Kpub 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 Ω,
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 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 Kpub de l'ensemble Ω ont un certificat C dont le rôle est de lier la clé Kpub 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é Kpub 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 Ω 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 Ω, une chaîne de clés publiques H={Kpub(A), Kpubj,..., Kpub N} entre la clé publique à vérifier Kpub(A) de niveau bas 0 et une clé publique Kpub_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 Kpub N.
Chaque clé publique Kpub_j, de niveau i dans la chaîne H, avec 0 _a;≤N-l, est reliée à une clé publique Kpub_i+i, de niveau i+1 dans la chaîne H, par un certificat
associé à la clé publique Kpub i de niveau i et signé par la clé privée Kpr i+1 de niveau i+1 (Kpub_0 correspondant à Kpub(A)). La clé publique de niveau le plus haut N dans la chaîne H, ici détenue par une autorité de certification racine ACN, a un certificat racine CN. Toutefois, l'autorité de
certification ACN pourrait ne pas être racine et avoir, par conséquent, un certificat émis par une autre autorité de certification. On remarquera que la clé Kpubj , qui a un niveau i dans la chaîne H, pourrait appartenir à une autre chaîne et avoir, dans cette autre chaîne, un niveau j différent de i. Après détermination de la chaîne H (étape El), il est prévu une étape E2 consistant à affecter à chaque certificat (Cκ_j+1 et CN) de la chaîne H un poids individuel, à savoir : un poids individuel p(Cκ_i+i) à chaque certificat Cj<_i+i de la chaîne H et un poids individuel p(CN) au certificat CN de la clé publique Kpub_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
et p(CN) des certificats Ci<_i+i 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 é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°l à 4, le poids total PH de la chaîne H est le résultat d'une opération de multiplication des poids individuels et p(CN) des certificats de la chaîne H :
Variante n°l 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<x<l .
L'étape de comparaison E3 consiste à comparer P11 = au
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°l, 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 CRj de BR un poids individuel p(CRj), dont la valeur est comprise entre 0 et 1 (0< p(CRj)<l) et dépend du niveau de confiance accordé au certificat considéré, - un poids de x aux certificats de B n'appartenant pas à BR, avec 0<x<l,
L'étape de comparaison E3 consiste à comparer PH = )\.p{CN) au
seuil S fixé à y.xd, où "d" est un entier correspondant à une profondeur maximale de portion de chaîne s'étendant en dehors de BR et "y" est un coefficient d'ajustement de seuil réglable, compris strictement entre 0 et 1. Le coefficient « y » permet d'ajuster le seuil afin d'accepter plus ou moins de certificats. Cette variante conduit également à considérer comme douteux les
certificats qui sont rattachés à un certificat « de confiance » par une chaîne de certificats trop longue mais laisse toutefois la possibilité d'ajuster le seuil selon le niveau de fiabilité souhaité.
Variante n°3
Dans la variante n°3, à l'étape E2, il est attribué à chaque certificat CVi+I et CN de la chaîne H un poids individuel, p(Cκ_j+i) et P(CN), tel que p(C)=p'(C).gm, où p'(C) est un entier et gm est un nombre réel, de valeur constante, correspondant à une granularité multiplicative de poids.
N-I
A l'étape de comparaison E3, on calcule le produit [J^J j?1 (C(<_/+1 )]./?' (C^ ) et on
I=O
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+i pour plusieurs valeurs de N peuvent être pré-calculées et mémorisées, ce qui
V/ Sm J 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
et CN de la chaîne un.px>ids individuel
p\C) = g/ où p'(C) est un entier et ga un nombre réel, de valeur constante, correspondant à une granularité additive de poids.
N-I
A l'étape de comparaison E3, on calcule la somme [^T p1 (C^M )] + p'(CN) et on
compare le résultat de ce calcul à Mil y\n( ) » ou INT(x) est la fonction partie entière
La somme calculée et comparée est dérivée du poids total PH de la chaîne.
N-I
L'opération additive [∑P \Ci<r_M )] + p'\CN) est dérivée d'une opération de
(=0 multiplication des poids individuels p\C) = g/ à laquelle on a appliqué la fonction logarithmique « In ».
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\ "1VHj / N. 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(Ci<_i+i) et p(CN) des certificats Ci<_i+i 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 :
PH = (∑P(C^M)] + P(CN)
1=0
Cette formule correspond à la forme « logarithmique » de la formule multiplicative des variantes n°l 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
∑(i + l)p(CM+1)+ (N + l).p(CN) suivante : PH = ^ {N + m + 2)/
/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 :
P11 = , où f(x) est une fonction de pondération, ici
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'appliqμer à 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={Kp,,b(A), Kpub ι, ..., Kpub N}) entre la clé publique à vérifier (Kpub(A)) de niveau bas 0 et une clé publique {Kpub N) de niveau haut (N), un bloc 11 d'affectation de poids destiné à affecter des poids individuels respectifs (p(Cj<-i+i), P(CN)) aux certificats (Q^,+;, 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 œuvre 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 Ω ont chacune plusieurs certificats.
Supposons qu'au moins l'une des clés publiques de la chaîne Η, reliant la clé Kpub(A) et la clé publique Kpub_N de niveau N, possède deux certificats. L'ensemble Ω contient alors une autre chaîne Η'={KpUb(A),..., Kpub_M} entre la clé publique à vérifier KpUb(A) et une autre clé publique Kpub_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 EU' consistant à déterminer toutes les chaînes existantes dans l'ensemble Ω, à savoir H et H' pour reprendre l'exemple ci-dessus, reliant la clé publique à vérifier Kpub(A) et des clés publiques Kput,_N et Kpub M de niveaux hauts, suivie d'une sous-étape El 2' 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 œuvre. Cette étape E2' comprend, pour chacune des chaînes déterminées à l'étape EU1, une sous-étape E21' consistant à affecter des poids individuels (p(Cj+i→i), avec 0 dL ^f ou M, p(CN ou M)) aux certificats de la chaîne considérée (H ou H') suivie d'une étape E22' consistant à calculer le poids total (PH OU PH>) de cette chaîne. Le critère de sélection utilisé à l'étape E 12' consiste ici à sélectionner la chaîne dont le poids total
est le plus faible. Dans l'exemple particulier ici décrit, le poids PH- de la chaîne H1 étant inférieur au poids PH de la chaîne H, la chaîne H' est sélectionnée à l'étape El'.
Après sélection de la chaîne H' à l'étape El', il est prévu une étape de comparaison E31 visant à comparer le poids total Pff 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 Kpub(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 Ω 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 KpUb(A) déterminée en premier. Dans cette variante, le procédé comprend une étape El" 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 Ω reliant la clé publique à vérifier Kpub(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 KpUb(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 KpUb(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 Kpub(A).
Le second mode de réalisation du procédé de l'invention est exécuté par un dispositif 2' comportant un module l' 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. Bien entendu, l'invention pourrait s'appliquer à tout autre réseau. Le module l' 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 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 œuvre 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 I1 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 Ω 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.
Claims
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 (Ω) 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 (Ω), 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 (Kpub N) de niveau haut N, chaque clé publique (Kpub_i) de niveau i dans la chaîne (H), avec 0 ≤i ..N-I, étant reliée à la clé publique (Kpub_i+i) de niveau i+1 dans la chaîne (H) par un certificat associé à la clé publique (Kpubj) de niveau i et signé par la clé privée (Kpr_i+i) de niveau i+1, - une étape (E2; E2'; E2") d'affectation de poids individuels respectifs (P(Ci4-.;+]) et
P(CN)) aux certificats (Q«_i+i, CN) de la chaîne H, une étape (E3; E3'; E3") de comparaison visant à déterminer si un poids total (PH) de la chaîne (H), résultant d'une opération sur les poids individuels P(CN)) des certificats de la chaîne (H), est supérieur à un seuil S afin de détecter si la clé publique à vérifier (Kpub(A)) est valable.
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 ρ(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 Ω 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<x<l, et, pour l'étape de comparaison, le seuil S est fixé à xd, où "d" est un entier correspondant à une profondeur maximale de portion de chaîne s'étendant en dehors de BR.
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 Ω et le sous-ensemble de B contenant les certificats racines, lors de l'étape d'affectation de poids, il est attribué: à chaque certificat CRj 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<x<l, et, pour l'étape de comparaison, le seuil S est fixé à y.xd, où "d" est un entier correspondant à une profondeur maximale de portion de chaîne s'étendant en dehors de BR et "y" est un coefficient réglable compris strictement entre 0 et 1.
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).gm, où p'(C) est un entier et gm est un nombre réel, de valeur constante, correspondant à une granularité multiplicative de poids, et
lors de l'étape de comparaison, on compare le produit [PJ/'l(C/<_/+1)].j»'(Cw)
1=0
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) = g/ où p'(C) est un entier et ga un nombre réel, de valeur constante, correspondant à une granularité additive de poids,
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 Kpub_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 Kpub(A) d'un titulaire présumé A, ladite clé publique Kpub(A) appartenant à un ensemble Ω 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 Ω, une chaîne de clés publiques (H={Kpub(A), KpubJ, ..., Kpub N}) 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(Q+.i+i), p(C^) aux certificats (C,w+/> 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 (KpUb(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 Kpub(A) appartenant à un ensemble Ω 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 (H') 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 Kpub(A) d'un titulaire présumé A, selon l'une des revendications 11 à 13.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0500240 | 2005-01-07 | ||
FR0500240A FR2880751A1 (fr) | 2005-01-07 | 2005-01-07 | Procede pour verifier la validite d'une cle publique d'un titulaire presume, module et dispositif pour sa mise en oeuvre |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006072745A1 true WO2006072745A1 (fr) | 2006-07-13 |
Family
ID=34954832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2006/000021 WO2006072745A1 (fr) | 2005-01-07 | 2006-01-05 | Procede pour verifier la validite d'une cle publique d'un titulaire presume, module et dispositif pour sa mise en oeuvre |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR2880751A1 (fr) |
WO (1) | WO2006072745A1 (fr) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1282289A2 (fr) * | 2001-07-31 | 2003-02-05 | Sun Microsystems, Inc. | Méchanisme d'échanges fiabilisés pour les réseaux décentralisés |
US20030130947A1 (en) * | 2002-01-10 | 2003-07-10 | International Business Machines Corporation | Method and system for computing digital certificate trust paths using transitive closures |
US20040133774A1 (en) * | 2003-01-07 | 2004-07-08 | Callas Jonathan D. | System and method for dynamic data security operations |
-
2005
- 2005-01-07 FR FR0500240A patent/FR2880751A1/fr active Pending
-
2006
- 2006-01-05 WO PCT/FR2006/000021 patent/WO2006072745A1/fr not_active Application Discontinuation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1282289A2 (fr) * | 2001-07-31 | 2003-02-05 | Sun Microsystems, Inc. | Méchanisme d'échanges fiabilisés pour les réseaux décentralisés |
US20030130947A1 (en) * | 2002-01-10 | 2003-07-10 | International Business Machines Corporation | Method and system for computing digital certificate trust paths using transitive closures |
US20040133774A1 (en) * | 2003-01-07 | 2004-07-08 | Callas Jonathan D. | System and method for dynamic data security operations |
Also Published As
Publication number | Publication date |
---|---|
FR2880751A1 (fr) | 2006-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1368930B1 (fr) | Authentification cryptographique par modules ephemeres | |
EP2656538B1 (fr) | Accès anonyme a un service au moyen de certificats agrégés | |
US20060036857A1 (en) | User authentication by linking randomly-generated authentication secret with personalized secret | |
US20110154025A1 (en) | Computer implemented method for authenticating a user | |
FR2759226A1 (fr) | Protocole de verification d'une signature numerique | |
CA2895189C (fr) | Signature de groupe utilisant un pseudonyme | |
FR2754659A1 (fr) | Procede et appareil de generation de valeurs uniques impossibles a predire | |
FR3058243A1 (fr) | Procede de controle d'identite d'un utilisateur au moyen d'une base de donnees publique | |
EP1807967B1 (fr) | Procede de delegation securisee de calcul d'une application bilineaire | |
Shahandashti et al. | Reconciling user privacy and implicit authentication for mobile devices | |
CA2888103C (fr) | Procede de signature electronique a signature ephemere | |
EP2742645B1 (fr) | Procédé de gestion et de contrôle de données de différents domaines d'identité organisés en ensemble structure | |
EP3316549B1 (fr) | Procédé de contrôle d'identité d'un utilisateur au moyen d'une base de données publique | |
WO2006072745A1 (fr) | Procede pour verifier la validite d'une cle publique d'un titulaire presume, module et dispositif pour sa mise en oeuvre | |
EP2348443B1 (fr) | Procédé implémenté informatique pour générer un pseudonyme, support de stockage lisible sur ordinateur et système informatique | |
EP4078893A1 (fr) | Procédé et dispositif de contrôle d'accès anonyme à une plateforme collaborative d'anonymisation | |
FR3118226A1 (fr) | Procédé et dispositif de contrôle de l’accès à un service utilisant une chaîne de blocs | |
Alomari et al. | Enhancing Big Data Auditing. | |
Gupta et al. | BSeVS–A Smart e-Voting System based on Blockchain Technology | |
Khalil et al. | Adaptation du contrôle d’accès pour la sécurité de l’IoT | |
Purushothama et al. | Provable data possession scheme with constant proof size for outsourced data in public cloud | |
FR3134908A1 (fr) | Procédé et système de gestion des droits d’accès dans une transaction équitable de données numériques | |
WO2022153005A1 (fr) | Procede et systeme de controle d'acces | |
FR3111037A1 (fr) | Procédé de dérivation d’une signature partielle avec vérification partielle | |
Balamurugan et al. | Multiple replica based remote data possession checking scheme based on matrix representation of data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06709038 Country of ref document: EP Kind code of ref document: A1 |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 6709038 Country of ref document: EP |