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 PDF

Info

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
Application number
PCT/FR2006/000021
Other languages
English (en)
Inventor
Laurent Frish
Loïc HOUSSIER
Julie Loch
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Publication of WO2006072745A1 publication Critical patent/WO2006072745A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
Figure imgf000007_0001
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
Figure imgf000008_0001
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 :
Figure imgf000009_0001
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
Figure imgf000009_0002
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
Figure imgf000009_0003
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
compare le résultat de ce calcul à | , où INT(x) est la fonction partie entière de
Figure imgf000010_0001
x. On notera que . Le produit calculé et comparé est dérivé
Figure imgf000010_0002
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+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
Figure imgf000010_0003
et CN de la chaîne un.px>ids individuel
Figure imgf000010_0004
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
de x. On notera
Figure imgf000011_0001
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
Figure imgf000012_0001
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'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

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 (Ω) 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
Figure imgf000017_0001
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
Figure imgf000017_0002
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
à , où πSTT(x) est la fonction partie entière de x afin de .
Figure imgf000018_0001
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,
N-I lors de l'étape de comparaison, on compare [^T />'(C/4_/+, )] + p' \CN) à ι=0 , où IΝT(X) est la fonction partie entière de x.
Figure imgf000019_0001
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.
PCT/FR2006/000021 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 WO2006072745A1 (fr)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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&#39;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&#39;identite d&#39;un utilisateur au moyen d&#39;une base de donnees publique
EP1807967B1 (fr) Procede de delegation securisee de calcul d&#39;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&#39;identité organisés en ensemble structure
EP3316549B1 (fr) Procédé de contrôle d&#39;identité d&#39;un utilisateur au moyen d&#39;une base de données publique
WO2006072745A1 (fr) Procede pour verifier la validite d&#39;une cle publique d&#39;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&#39;accès anonyme à une plateforme collaborative d&#39;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&#39;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