D´ epartement de formation doctorale en informatique UFR STMIA
´ Ecole doctorale IAEM Lorraine
R´ esolution de probl` emes d’accessibilit´ e pour la compilation et la validation de protocoles cryptographiques ` THESE pr´esent´ee et soutenue publiquement le 9 d´ecembre 2003 pour l’obtention du
Doctorat de l’universit´ e Henri Poincar´ e – Nancy 1 (sp´ ecialit´ e informatique) par
Yannick Chevalier
Composition du jury Rapporteurs :
Ahmed Bouajjani Denis Lugiez
Professeur a` l’Universit´e Paris VII Professeur `a l’Universit´e de Provence Marseille
Examinateurs :
Nacer Boudjlida Michael Rusinowitch Peter Ryan Laurent Vigneron
Professeur `a l’Universit´e Henri Poincar´e Nancy 1 Directeur de Recherche INRIA, Nancy Professeur `a l’Universit´e de Newcastle upon Tyne Maˆıtre de Conf´erences `a l’Universit´e Nancy 2
Laboratoire Lorrain de Recherche en Informatique et ses Applications — UMR 7503
Mis en page avec la classe thloria.
R´ esum´ e La g´en´eralisation de transactions commerciales et des services sur des supports non-s´ecuris´es a rendu n´ecessaire l’utilisation de protocoles permettant de garantir aux participants la confidentialit´e des donn´ees aussi bien que l’identification des correspondants. De nombreux protocoles propos´es se sont r´ev´el´es incorrects. Leur importance ´economique a motiv´e l’introduction de m´ethodes formelles pour la d´etection d’erreurs. Dans cette th`ese, nous nous int´eressons aux probl`emes li´es `a l’analyse automatique de ces protocoles. Nous donnons une s´emantique op´erationnelle aux sp´ecifications de haut niveau habituellement utilis´ees, ´etendons le cadre standard de l’analyse pour prendre en compte les propri´et´es des op´erateurs alg´ebriques pour la recherche de failles et consid´erons le probl`eme de la v´erification de protocoles. Nous r´eduisons ces probl`emes `a des probl`emes d’accessibilit´e pour des syst`emes de transitions d´efinis par des r`egles de r´e´ecriture sur des ensembles. Cette r´eduction permet de donner la complexit´e de ces probl`emes, et est une premi`ere ´etape vers une r´esolution par des outils enti`erement automatiques. Mots-cl´ es: Protocole cryptographique, probl`eme d’accessibilit´e, proc´edure de d´ecision, complexit´e, validation symbolique de mod`eles, s´emantique op´erationnelle.
Abstract Commercial transactions and services over insecure networks have lead to the use of security protocols. These protocols ought to provide both data confidentiality and participants authentication, but many of those proposed up to date have turned out to be flawed. Their economical importance has motivated the introduction of formal verification. In this dissertation, we investigate the problems raised by the automatic analysis of such protocols. We give an operationnal semantics to high-level protocol specifications, extend the standard Dolev-Yao framework to algebraic operators and finally consider the problem of protocol verification. We reduce these problems to reachability problems. This reduction is a first step toward the implementation of an automatic analysis tool. Keywords: Cryptographic protocol, reachability problem, decision procedure, complexity, symbolic model-checking, operationnal semantics.
iii
Remerciements Je tiens tout d’abord ` a remercier mes deux directeurs de Th`ese, Laurent Vigneron et Mi` Michael d’abord, pour chael Rusinowitch, qui m’ont accueilli dans l’´equipe Protheo, puis Cassis. A m’avoir accept´e en th`ese. Mais surtout `a tous les deux pour m’avoir pendant quatre ans guid´e, lu, corrig´e, aid´e. Pour faire court, je les remercie pour m’avoir fait d´ecouvrir la recherche, pour leur humour et pour leur disponibilit´e. Je remercie aussi Denis Lugiez et Ahmed Bouajjani pour avoir accept´e d’ˆetre rapporteurs de ma th`ese, et pour le temps consacr´e `a ce travail. Je suis aussi tr`es honor´e que Peter Y. Ryan ait accept´e de faire partie du jury et de lire avec s´erieux ce document dans une langue qui n’est pas la sienne. Je remercie aussi Nacer Boudjlida qui m’a fait l’honneur de pr´esider ce jury. Je remercie aussi les les personnes avec lesquelles j’ai collabor´e au cours de ces presques quatre ann´ees. Mathieu Turuani, tout d’abord, avec qui j’ai ´echang´e des points de vue pendant plus de trois ans. Je remercie aussi Ralf K¨ usters, avec qui les discussions ont ´et´e parfois longues, mais tr`es fructueuses, Medhi Bouallagui, dont l’aide a ´et´e tr`es pr´ecieuse pendant les phases de codage, Sophie ` a la patience in´egal´ee, Silvio, Tarek, Judson, Imine, Huy, Alakesh et V´eronique. Je remercie aussi les membres des projets AVISS et AVISPA, et tout particuli`erement Luca Vigan` o, qui a souvent su trouver les mots justes pour me motiver dans le long travail impliqu´e par ces projets. Je tiens aussi ` a remercier les membres de l’Universit´e Henri Poincar´e et de l’Universit´e Nancy 2, et en premier lieu Jean-Pierre Jacquot qui n’a pas h´esit´e `a soutenir ma candidature sur un poste d’ATER, me permettant ainsi de faire ma th`ese `a Nancy. Je remercie aussi Jeanine Souqui`eres, Marie-Jo Vigneron, Claude Millot qui m’ont suffisamment fait confiance pour me laisser la responsabilit´e de modules. Je remercie aussi les personnes avec lesquelles j’ai travaill´e, en particulier Jean Lieber et Didier Gemmerl´e qui m’ont beaucoup apport´e dans la pr´eparation de mes cours et TDs, et Noelle Carbonell et Didier Galmiche pour m’avoir permis de faire des enseignements tr`es int´eressants en maˆıtrise et en DEA. Je remercie aussi Marie-France Mailhos, `a l’IUFM de Rennes, pour m’avoir permis de d´ecouvrir la p´edagogie en Allemagne. Je remercie aussi Yvonne Kanzo, et plus g´en´eralement l’´equipe p´edagogique du coll`ege des ormeaux, pour son indulgence et tous les conseils p´edagogiques qu’elle m’a donn´es et qui m’ont ´et´e indispensables par la suite. Je remercie aussi tous ceux avec qui je partage r´eguli`erement un caf´e ou un th´e et qui n’ont jamais h´esit´e ` a me donner une macro LATEX, `a me remplacer en TD, `a me faire confiance pour des enseignements, ` a partager des repas au Perfection sous la protection de Sri Chinmoy, et j’en oublie... Je parle bien sˆ ur d’Olivier et Johanne. Je n’oublie pas Miki Je n’oublie pas de remercier tous les dinoistes sans lesquels ma th`ese aurait certainement progress´ee ` a une vitesse diff´erente :Alfred, qui a su pr´eserver la puret´e de sa vocation scientifique malgr´e les tentations multiples de sa vie londonienne, Nahamuf et son approche toute particuli`ere du tennis, Cabud (et Juliette, mais ¸ca n’a plus rien `a voir), Rrose, et lapin qui apportent leur antique sagesse ` a ce forum, et en vrac Vince, Lory, Alvin, pignolo, VV, Tom-Tom, jolow, et `a tous ceux sans qui dino pourrait ˆetre un forum `a la fois public et inint´eressant. Je remercie aussi ceux que j’ai rencontr´e, que je vois et que je rencontrerai un jour quelque part pour tout ce qu’ils m’ont apport´e et m’apporteront. Ceux du SCI, Hannes, Ursula, Sayaka, ceux de ATPUB, R´emi en particulier, ... Je n’oublie surtout pas de remercier ceux qui m’ont support´e pendant... Ouah ! tant que ¸ca !, Bertrand, Christophe et Marie-Caroline et aux bonnes soir´ees qu’on a pass´e ensemble. Und Thomas, Sandra und Ralf, die Bremen eine sch¨one Stadt machen. Je remercie enfin ma maman en particulier, Christelle, Olivier, Honorine et Roman, Pierre et Virginie, et toute ma famille en g´en´eral pour ce qu’ils m’ont apport´e et que je ne compte plus.
iv
v
« ...das ist ein zu weites Feld. »1 Theodor Fontane, Effi Briest (1895).
1 Le
sujet est trop riche (traduction libre).
vi
Table des mati` eres R´ esum´ e
i
Abstract
i
1 Analyse de protocoles cryptographiques 1.1
Protocoles cryptographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1
1.1.2
1.1.3
1.1.4
1.2
1 2
Quelques primitives cryptographiques et leur utilisation pour assurer la s´ecurit´e des communications . . . . . . . . . . . . . . . . . . . . . . . .
2
1.1.1.i
Un exemple historique . . . . . . . . . . . . . . . . . . . . . .
2
1.1.1.ii
Algorithmes de chiffrement . . . . . . . . . . . . . . . . . . .
2
1.1.1.iii L’hypoth`ese de chiffrement parfait et au-del`a . . . . . . . . .
3
Communication par ´echange de messages . . . . . . . . . . . . . . . . .
3
Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Rˆ oles et acteurs. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Un acteur malhonnˆete, l’intrus . . . . . . . . . . . . . . . . . . . . . . .
4
1.1.3.i
Contrˆole du r´eseau . . . . . . . . . . . . . . . . . . . . . . . .
4
1.1.3.ii
Capacit´es de d´eduction . . . . . . . . . . . . . . . . . . . . . .
4
Propri´et´es de s´ecurit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.1.4.i
Confidentialit´e des donn´ees ´echang´ees . . . . . . . . . . . . .
4
1.1.4.ii
Identification de l’interlocuteur . . . . . . . . . . . . . . . . .
5
M´ethodes pour l’analyse de protocoles
. . . . . . . . . . . . . . . . . . . . . .
5
1.2.1
Compilation de protocoles cryptographiques . . . . . . . . . . . . . . .
5
1.2.2
M´ethodes interactives . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
L’analyseur NRL. . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Application du prouveur Isabelle `a la v´erification de protocoles
1.2.3
cryptographiques. . . . . . . . . . . . . . . . . . . . .
6
Alg`ebre de processus et ´equivalence observationnelle. . . . . . .
7
M´ethodes automatiques . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.2.3.i
But de nos travaux . . . . . . . . . . . . . . . . . . . . . . . .
7
1.2.3.ii
La recherche de failles comme probl`eme d’accessibilit´e . . . .
7
M´ethodes approch´ees. . . . . . . . . . . . . . . . . . . . . . . . .
8
M´ethodes exactes dans un cadre restreint. . . . . . . . . . . . .
8
1.2.3.iii Traitement de la correction de protocoles . . . . . . . . . . .
8
M´ethodes semi-automatiques. . . . . . . . . . . . . . . . . . . .
8
vii
viii
Table des mati`eres
1.3
M´ethodes dont la terminaison est assur´ee. . . . . . . . . . . . .
9
Contenu de la th`ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3.1
Apports du travail pr´esent´e . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3.1.i
Compilation de protocoles . . . . . . . . . . . . . . . . . . . .
9
Expressivit´e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
Fondations th´eoriques. . . . . . . . . . . . . . . . . . . . . . . .
9
Recherche de failles . . . . . . . . . . . . . . . . . . . . . . . .
10
Recherche efficace de failles. . . . . . . . . . . . . . . . . . . . .
10
1.3.1.ii
Recherche de failles lorsque des op´erateurs alg´ebriques sont consid´er´es. 10
1.3.2
I
1.3.1.iii V´erification de protocoles cryptographiques . . . . . . . . . .
10
V´erification pratique de protocoles. . . . . . . . . . . . . . . . .
10
Preuve dans un cadre th´eorique. . . . . . . . . . . . . . . . . . .
10
Plan de la th`ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.3.2.i
Fondations (chapitres 2, 3 et 4) . . . . . . . . . . . . . . . . .
10
1.3.2.ii
Compilation (chapitre 5) . . . . . . . . . . . . . . . . . . . . .
11
1.3.2.iii Recherche de failles (chapitres 6 et 7) . . . . . . . . . . . . . .
11
1.3.2.iv V´erification de protocoles (chapitre 8) . . . . . . . . . . . . .
11
Fondements
13
2 Primitives cryptographiques
15
2.1
2.2
Modes de chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.1.1
Chiffrement parfait . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.1.2
Chiffrement par blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.1.2.i
Chiffrement par blocs sans chaˆınage des blocs . . . . . . . . .
16
2.1.2.ii
Chiffrement par blocs avec chaˆınage . . . . . . . . . . . . . .
16
Chiffrement par blocs en mode chaˆın´e (mode CBC). . . . . . . .
16
Chiffrement ` a r´etroaction, sur le texte cod´e. . . . . . . . . . . .
16
Propri´et´es du mode chaˆın´e. . . . . . . . . . . . . . . . . . . . . .
17
Op´erations de chiffrement 2.2.1
2.2.2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
Chiffrement par clefs asym´etriques . . . . . . . . . . . . . . . . . . . .
18
2.2.1.i
D´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
2.2.1.ii
Probl`eme du sac-`a-dos . . . . . . . . . . . . . . . . . . . . . .
18
2.2.1.iii Factorisation de grands entiers . . . . . . . . . . . . . . . . .
19
2.2.1.iv Calcul du logarithme discret . . . . . . . . . . . . . . . . . . .
19
2.2.1.v
Cas du chiffrement commutatif . . . . . . . . . . . . . . . . .
20
2.2.1.vi Algorithmes de signature . . . . . . . . . . . . . . . . . . . . .
20
Chiffrement par clefs sym´etriques . . . . . . . . . . . . . . . . . . . . .
20
2.2.2.i
Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.2.2.ii
Un exemple, l’algorithme DES . . . . . . . . . . . . . . . . . .
21
2.2.2.iii Le protocole de W. Diffie et M. Hellman pour une construction distribu´ee de clefs sym´etriques . . . . . . . . . . . . . . . . . . 2.2.3
Un chiffrement asym´etrique faible : le ou exclusif bit ` a bit
. . . . . . .
21 21
ix
2.3
Fonctions ` a adressage dispers´e . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.3.1
R´esistance ` a la collision . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.3.1.i
Attaques d’anniversaire . . . . . . . . . . . . . . . . . . . . .
22
2.3.1.ii
Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
Exemples de fonctions `a adressage dispers´e . . . . . . . . . . . . . . . .
23
MD5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
SHA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.3.2
3 Termes, classes d’´ equivalence et repr´ esentations
25
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.2
Multi-ensembles et multi-ensembles g´en´eralis´es . . . . . . . . . . . . . . . . . .
26
3.2.1
Support d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.2.2
Op´erations sur les ensembles . . . . . . . . . . . . . . . . . . . . . . . .
26
3.2.3
Multi-ensembles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.2.4
Multi-ensembles g´en´eralis´es
. . . . . . . . . . . . . . . . . . . . . . . .
27
Termes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.3.1.i
Les messages comme suite d’op´erations . . . . . . . . . . . . .
27
3.3.1.ii
Les messages comme valeur . . . . . . . . . . . . . . . . . . .
28
G´en´eralit´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
3.3.2.i
Signature et termes standards . . . . . . . . . . . . . . . . . .
28
3.3.2.ii
Sous-terme d’un terme . . . . . . . . . . . . . . . . . . . . . .
29
3.3.2.iii Position dans un terme . . . . . . . . . . . . . . . . . . . . . .
29
3.3.2.iv Remplacement, variable et substitution . . . . . . . . . . . . .
29
3.3
3.3.2
3.3.3
3.3.4
3.3.5
0
Termes op´erations, Fproto et T0 ( Fproto ) . . . . . . . . . . . . . . . . .
30
3.3.3.i
Signature 0 Fproto d´ecrivant les op´erations permises . . . . . .
30
3.3.3.ii
Termes op´erations . . . . . . . . . . . . . . . . . . . . . . . .
30
Th´eorie ´equationnelle sur les messages . . . . . . . . . . . . . . . . . .
30
3.3.4.i
Th´eorie du ou exclusif bit ` a bit . . . . . . . . . . . . . . . . .
31
3.3.4.ii
Th´eorie du chiffrement de type RSA . . . . . . . . . . . . . .
31
3.3.4.iii Th´eorie de l’exponentiation . . . . . . . . . . . . . . . . . . .
31
3.3.4.iv Relation d’´equivalence sur les termes . . . . . . . . . . . . . .
32
Ensemble des termes valeurs, Fproto et T(Fproto ) . . . . . . . . . . . .
32
3.3.5.i
Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.3.5.ii
Op´erateurs libres Fl . . . . . . . . . . . . . . . . . . . . . . .
33
3.3.5.iii Op´erateur { }
p,rsa
. . . . . . . . . . . . . . . . . . . . . . . .
33
3.3.5.iv Op´erateur Exp( , ) . . . . . . . . . . . . . . . . . . . . . . . .
34
Op´erateur ⊕({ }) . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.3.5.vi D´efinition de Fproto et T(Fproto ) . . . . . . . . . . . . . . . .
35
Normalisation des termes valeurs . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.3.5.v 3.4
0
3.4.1
Fonction de normalisation sur les termes op´erations et les termes valeurs 35 3.4.1.i
Normalisation des constantes . . . . . . . . . . . . . . . . . .
35
3.4.1.ii
Normalisation des constructeurs libres . . . . . . . . . . . . .
36
x
Table des mati`eres
3.4.1.iii Normalisation pour l’op´erateur ⊕({ }) . . . . . . . . . . . . .
36
3.4.1.iv Normalisation pour l’op´erateur Exp( , ) . . . . . . . . . . . .
36
3.4.1.v
3.4.2
Normalisation pour l’op´erateur { }
p,rsa
. . . . . . . . . . . . .
37
Addition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
Oppos´e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.4.1.vi Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
Unicit´e de la forme normale pour une classe de termes op´erations . . .
38
3.4.2.i
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.4.2.ii
Unicit´e de la classe repr´esent´ee par une forme normale . . . .
39
3.4.2.iii Cas de deux termes ´egaux modulo Θproto
3.5
. . . . . . . . . . .
40
3.4.2.iv Cas g´en´eral . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.4.2.v
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Repr´esentation des termes valeurs et op´erations de base . . . . . . . . . . . . .
41
3.5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.5.2
Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.5.3
Repr´esentations et taille des probl`emes . . . . . . . . . . . . . . . . . .
42
3.5.3.i
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.5.3.ii
Relations sur l’ensemble des sous-termes d’un terme valeur . .
43
Les ensembles. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Multi-ensembles et multi-ensembles g´en´eralis´es. . . . . . . . . .
43
Taille dag d’un terme valeur. . . . . . . . . . . . . . . . . . . . .
44
Op´erations sur les termes et complexit´e . . . . . . . . . . . . . . . . . .
44
3.5.4.i
Ordre total sur les termes valeurs et repr´esentation canonique
44
Sur L0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
Li → Li+1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
3.5.4
3.5.5 3.6
Insertion d’un terme dans un graphe orient´e acyclique
. . . . . . . . .
45
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
4 Accessibilit´ e dans le cas clos 4.1
47
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Traitement de l’op´erateur
−1
47
. . . . . . . . . . . . . . . . . . .
47
4.2
R`egles de r´e´ecriture sur des ensembles de termes . . . . . . . . . . . . . . . . .
48
4.3
Syst`emes locaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
4.3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.3.2
D´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
4.3.3
Combinaison de syst`emes canoniques . . . . . . . . . . . . . . . . . . .
51
Probl`eme d’accessibilit´e close . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
4.4.1
Probl`emes de d´ecision . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
Taille de probl`emes en entr´ee. . . . . . . . . . . . . . . . . . . .
53
Complexit´e relative de ces probl`emes . . . . . . . . . . . . . . . . . . .
53
Symboles et syst`emes dans le cadre de l’´etude de protocoles . . . . . . . . . .
54
Op´erateur h , i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.4
4.4.2 4.5
4.5.1 4.5.2
s
Op´erateurs { } , { }
s,ebc
et { }
s,cbc
. . . . . . . . . . . . . . . . . . . .
55
xi
4.5.2.i 4.5.2.ii
Cas du chiffrement parfait, op´erateur { }
s
. . . . . . . . . . .
55
s,ebc
. . . . . . . .
55
Cas ρ = Ld,{ }s,ebc . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
Cas ρ = Lc,{ }s,ebc . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
Test de l’application d’une r`egle de d´ecomposition.
. . . . . . .
57
Test de l’application d’une r`egle de composition. . . . . . . . . .
57
Cas du chiffrement par blocs, op´erateur { }
4.5.2.iii Cas du chiffrement par blocs en mode chaˆın´e, op´erateur { } 4.5.3
p
Op´erateurs { } et { } 4.5.3.i 4.5.3.ii
II
p,rsa
s,cbc
. . . . . . . . . . . . . . . . . . . . . . . . .
Cas du chiffrement parfait, op´erateur { }
p
. . . . . . . . . . . p,rsa
Cas du chiffrement commutatif, op´erateur { }
57 58 58
. . . . . . .
59
4.5.4
Op´erateur H( , ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
4.5.5
Op´erateur Exp( , ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.5.6
Op´erateur ⊕({ }) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
4.6
Probl`eme d’accessibilit´e close dans le cadre des protocoles . . . . . . . . . . .
63
4.7
R`egles d’oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.8
Travaux reli´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
4.9
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
Compilation
67
5 Compilation de protocoles cryptographiques 5.1
5.2
69
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.1.1
Analyse formelle de protocoles cryptographiques . . . . . . . . . . . . .
69
5.1.2
Cadre de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
5.1.3
Plan du chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
Langage Haut Niveau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
5.2.1
Description par un sc´enario et hypoth`eses . . . . . . . . . . . . . . . .
70
5.2.1.i
Ind´ependance de contrˆole. . . . . . . . . . . . . . . . . . . . .
71
Ind´ependance des acteurs entre eux. . . . . . . . . . . . . . . . .
71
Ind´ependance de contrˆole des rˆoles par rapport aux acteurs. . .
71
Ind´ependance de donn´ees. . . . . . . . . . . . . . . . . . . . .
71
Ind´ependance de donn´ees des acteurs entre eux. . . . . . . . . .
71
5.2.1.ii
Ind´ependance des donn´ees dans des rˆoles jou´es par un mˆeme acteur. 71 5.2.1.iii Compilation des rˆoles et intrus. . . . . . . . . . . . . . . . . .
71
5.2.1.iv Sc´enario s´equentiel . . . . . . . . . . . . . . . . . . . . . . . .
71
Compilation d’un protocole . . . . . . . . . . . . . . . . . . .
71
5.2.2
5.2.1.v
Sp´ecification de la connaissance des rˆoles . . . . . . . . . . . . . . . . .
72
5.2.3
Description des messages ´echang´es . . . . . . . . . . . . . . . . . . . . .
73
5.2.4
Description des instances des rˆoles . . . . . . . . . . . . . . . . . . . . .
73
5.2.5
Description de l’intrus . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
5.2.5.i
Capacit´es de l’intrus . . . . . . . . . . . . . . . . . . . . . . .
73
5.2.5.ii
Connaissances initiales de l’intrus . . . . . . . . . . . . . . . .
74
Sp´ecification des propri´et´es du protocole . . . . . . . . . . . . . . . . .
74
5.2.6
xii
Table des mati`eres
5.3
S´emantique Op´erationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.3.1
Description du syst`eme de transition final . . . . . . . . . . . . . . . .
75
5.3.2
Description des ´etats du syst`eme (Σ, T )
. . . . . . . . . . . . . . . . .
75
Description des termes . . . . . . . . . . . . . . . . . . . . . .
75
Les m-termes. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
Les w-termes. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
Les i-termes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
L’´etat initial . . . . . . . . . . . . . . . . . . . . . . . . . . . . ´ 5.3.2.iii Etats critiques . . . . . . . . . . . . . . . . . . . . . . . . . .
76
S´emantique op´erationnelle en sortie du compilateur . . . . . . . . . . .
76
5.3.3.i
Traitement des actions des acteurs honnˆetes . . . . . . . . . .
76
5.3.3.ii
Traitement des actions de l’intrus . . . . . . . . . . . . . . . .
77
Interception d’un message. . . . . . . . . . . . . . . . . . . . . . ´ Ecoute d’un message. . . . . . . . . . . . . . . . . . . . . . . . .
77
5.3.2.i
5.3.2.ii 5.3.3
76
77
Composition de messages et d´ecomposition des connaissances, le mod`ele statique. . . . . . . . . . . . . . . . . . . . .
77
Une autre voie, le mod`ele paresseux. . . . . . . . . . . . . . . . .
78
R`egles optimis´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
Ex´ecutabilit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.4.1
Probl`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.4.2
Traitement des nonces . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
5.4.3
D´efinition de l’ex´ecutabilit´e . . . . . . . . . . . . . . . . . . . . . . . .
80
5.4.4
D´efinition et complexit´e du probl`eme
. . . . . . .
80
Gestion des Connaissances . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
5.5.1
Mod`ele pour la gestion des connaissances . . . . . . . . . . . . . . . . .
81
5.5.2
Construction d’une repr´esentation des connaissances . . . . . . . . . .
81
5.5.2.i
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
Hypoth`ese d’analyse compl`ete. . . . . . . . . . . . . . . . . . . .
81
Construction des relations entre les termes de Cloture(E). . . .
82
5.3.4 5.4
5.5
5.5.2.ii
Executabilite(P )
Probl`eme de la construction d’une relation et op´erateurs non syntaxiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple introductif.
. . . . . . . . . . . . . . . . . . . . . . . .
82
Construction de la repr´esentation pour les ⊕-termes. . . . . . .
82
Construction de la repr´esentation pour les Exp( , )-termes. . . .
82
p,rsa
Construction de la repr´esentation pour les { }
5.5.3
82
termes. . . .
83
5.5.2.iii Construction de la repr´esentation des termes syntaxiques. . .
83
5.5.2.iv Repr´esentation d’un ensemble E `a partir d’un ensemble F . .
84
Hypoth`ese de monotonie. . . . . . . . . . . . . . . . . . . . . . .
86
Construction des R`egles . . . . . . . . . . . . . . . . . . . . . . . . . .
86
5.5.3.i
86
D´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sur les ´emetteurs de messages attendus et destinataires de mes-
5.5.4
sages envoy´es. . . . . . . . . . . . . . . . . . . . . . .
87
R`egles de r´eception/envoi de message . . . . . . . . . . . . . . . . . . .
87
xiii
5.5.4.i
5.5.4.ii
5.5.5
5.5.6
Exemple de compilation d’un protocole . . . . . . . . . . . . .
87
Connaissances. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
Messages attendus. . . . . . . . . . . . . . . . . . . . . . . . . .
88
Messages envoy´es. . . . . . . . . . . . . . . . . . . . . . . . . . .
88
R`egles produites par le compilateur. . . . . . . . . . . . . . .
88
Remarques sur les r`egles g´en´erales. . . . . . . . . . . . . . . . .
89
5.5.4.iii R`egles sp´ecialis´ees pour l’intrus de D. Dolev et A. Yao . . . .
90
Hypoth`eses sur les protocoles ´etudi´es . . . . . . . . . . . . . . . . . . .
90
5.5.5.i
D´ecomposition de connaissances ant´erieures . . . . . . . . . .
90
5.5.5.ii
Ordre de d´ecomposition des messages attendus . . . . . . . .
91
Variables dans les r`egles de messages . . . . . . . . . . . . . . . . . . .
94
5.5.6.i
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
5.5.6.ii
Cas des op´erateurs de chiffrement . . . . . . . . . . . . . . . .
94
5.5.6.iii Cas du ou exclusif bit ` a bit 5.6
III
. . . . . . . . . . . . . . . . . . .
94
Travaux Reli´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
5.6.1
Le compilateur CasRul . . . . . . . . . . . . . . . . . . . . . . . . . .
95
5.6.2
Autres compilateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
Recherche d’attaques
97
6 Recherche efficace d’attaques
99
6.1
Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
6.2
Cadre de l’´etude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100
6.3
Mod´elisation de l’intrus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
100
6.4
Pr´efixe d’une substitution, ensemble complet de pr´efixes . . . . . . . . . . . .
101
6.5
Probl`emes de construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102
6.5.1
D´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
102
6.5.2
Probl`emes li´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
6.5.3
Transformation de probl`emes de construction simultan´ee . . . . . . . .
103
6.5.3.i
Syst`eme de transformation de probl`emes de construction simultan´ee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des r`egles.
6.6
103
. . . . . . . . . . . . . . . . . . . . . . .
104
Restrictions `a l’application des r`egles de L. . . . . . . . . . . . .
104
6.5.3.ii Correction du syst`eme L . . . . . . . . . . . . . . . . . . . . . ´ Equivalences sur les ´equations de constructions . . . . . . . . . . . . . . . . . .
104 104
6.6.1
G´en´eralit´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
105
6.6.2
Ordre sur les probl`emes de construction simultan´ee . . . . . . . . . . .
106
6.6.3
Normalisation d’un probl`eme de construction simultan´ee . . . . . . . . ´ 6.6.3.i Elimination des couples . . . . . . . . . . . . . . . . . . . . . ´ 6.6.3.ii Elimination des variables . . . . . . . . . . . . . . . . . . . . .
106
6.6.3.iii Simplification pour le chiffrement sym´etrique . . . . . . . . .
108
6.6.3.iv Simplification pour le chiffrement asym´etrique . . . . . . . . .
109
6.6.3.v
110
Normalisation de probl`emes de construction simultan´ee
. . .
107 107
xiv
Table des mati`eres
6.7
6.8
Compl´etude de L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
110
6.7.1
Cas sans d´ecomposition des connaissances . . . . . . . . . . . . . . . .
110
6.7.2
Cas avec d´ecomposition des connaissances . . . . . . . . . . . . . . . .
111
6.7.3
Cas g´en´eral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112
Recherche d’attaques sur un protocole
. . . . . . . . . . . . . . . . . . . . . .
112
6.8.1
Mod`ele de protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
112
6.8.2
Codage des attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113
6.8.2.i
Attaques de secret . . . . . . . . . . . . . . . . . . . . . . . .
113
6.8.2.ii
Attaques d’authentification . . . . . . . . . . . . . . . . . . .
113
6.8.3
Recherche paresseuse d’un ordre d’ex´ecution . . . . . . . . . . . . . . .
114
6.8.4
Algorithme de recherche d’attaques . . . . . . . . . . . . . . . . . . . .
114
6.8.4.i
Notations et Algorithme . . . . . . . . . . . . . . . . . . . . .
114
6.8.4.ii
Correction et compl´etude de cet algorithme pour la recherche d’attaques pour un nombre fini de sessions . . . . . . . . . . .
115
Tous les ordre d’ex´ecutions possibles sont explor´es. . . . . . . .
115
Pour un ordre d’ex´ecution π, toutes les substitutions satisfaisant
6.9
Cπ sont prises en compte. . . . . . . . . . . . . . . .
115
Les attaques trouv´ees sont r´eelles. . . . . . . . . . . . . . . . . .
115
6.8.4.iii Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115
R´esultats obtenus avec le prouveur de th´eor`emes daTac . . . . . . . . . . . . .
115
6.9.1
Introduction - Corpus de protocoles ´etudi´es . . . . . . . . . . . . . . .
115
6.9.2
R´esultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115
6.9.2.i
Protocole exp´erimental . . . . . . . . . . . . . . . . . . . . . .
115
6.9.2.ii
Explication du tableau 6.3 . . . . . . . . . . . . . . . . . . . .
116
6.9.3
Cas du protocole de D. Denning et G. Sacco
. . . . . . . . . . . . . .
117
6.9.4
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
118
6.10 Travaux reli´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
119
6.10.1 Compl´etude de la strat´egie de r´esolution de contraintes . . . . . . . . .
119
6.10.2 Implantation de la strat´egie paresseuse de l’intrus . . . . . . . . . . . .
119
7 Probl` emes d’accessibilit´ e non clos
121
7.1
Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
7.2
D´efinition du probl`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
7.2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
7.2.2
Protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122
7.2.3
Probl`eme de la recherche d’attaques . . . . . . . . . . . . . . . . . . . .
122
7.2.4
Cas du ou exclusif bit ` a bit . . . . . . . . . . . . . . . . . . . . . . . . .
123
7.2.5
Cas de l’exponentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
7.2.6
Cas du chiffrement asym´etrique de type RSA . . . . . . . . . . . . . .
123
7.3
Th´eor`eme de complexit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
124
7.4
Borne sur le nombre de sous-termes d’une attaque normale . . . . . . . . . . .
125
7.4.1
Mise en place . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
7.4.2
D´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
xv
7.4.3
Les signatures F⊕ , Fexp et Frsa sont r´eguli`eres . . . . . . . . . . . . . .
126
7.4.4
Les signatures F⊕ , Fexp et Frsa permettent le remplacement . . . . . .
128
7.4.4.i
Cas des signatures Fexp et Frsa . . . . . . . . . . . . . . . . .
128
7.4.4.ii
Cas de la signature F⊕ . . . . . . . . . . . . . . . . . . . . . .
129
Termes li´es dans une attaque minimale . . . . . . . . . . . . . . . . . .
129
Terme d´ecompos´e par une r`egle. . . . . . . . . . . . . . . . . . .
130
7.4.5 7.4.6
7.4.7 7.5
Borne sur la taille de la repr´esentation des sous-termes d’une substitution dans une attaque normale . . . . . . . . . . . . . . . . . . . . . . . . .
131
Affirmation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
133
Complexit´e du probl`eme de d´ecision
. . . . . . . . .
133
Borne sur la taille des coefficients dans une attaque normale . . . . . . . . . .
133
7.5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
134
7.5.2
Relation d’´equivalence modulo les coefficients . . . . . . . . . . . . . .
134
7.5.3
Termes ´equivalents et d´erivations . . . . . . . . . . . . . . . . . . . . .
134
7.5.4
G´en´eralisation d’une attaque . . . . . . . . . . . . . . . . . . . . . . . .
135
7.5.4.i
Recherche de substitutions ´equivalentes . . . . . . . . . . . .
135
Premi`ere condition. . . . . . . . . . . . . . . . . . . . . . . . . .
136
Deuxi`eme condition. . . . . . . . . . . . . . . . . . . . . . . . . .
136
Troisi`eme condition. . . . . . . . . . . . . . . . . . . . . . . . . .
137
Termes ´equivalents et accessibilit´e . . . . . . . . . . . . . . .
137
7.5.4.ii
IV
Attaque(P, R⊕ )
V´ erification
139
8 Cas non-born´ e
141
8.1
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
8.2
Cadre de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
8.3
8.4
8.2.1
Termes et capacit´es de l’intrus . . . . . . . . . . . . . . . . . . . . . . .
142
8.2.2
Protocoles consid´er´es . . . . . . . . . . . . . . . . . . . . . . . . . . . .
143
8.2.3
Mod`ele d’ex´ecution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
144
8.2.4
Le probl`eme de d´ecision
. . . . . . . .
144
Ajout de r`egles d’Oracle `a Rproto . . . . . . . . . . . . . . . . . . . . . . . . .
144
8.3.1
R´esultat principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
144
8.3.2
D´efinition de Lo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
145
8.3.3
Probl`eme d’accessibilit´e close . . . . . . . . . . . . . . . . . . . . . . .
146
8.3.4
Borne sur les attaques . . . . . . . . . . . . . . . . . . . . . . . . . . .
147
R`egles parall`eles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
149
8.4.1
Situation de la preuve
. . . . . . . . . . . . . . . . . . . . . . . . . . .
149
8.4.2
R`egles agr´eg´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
149
8.4.3
R`egles d’Oracle pour les acteurs . . . . . . . . . . . . . . . . . . . . . .
150
8.4.4 8.5
Attaque Parallele(Pnb , t, L)
Les r`egles de
AoD
sont des r`egles d’Oracle . . . . . . . . . . . . . . . . .
152
Implantation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
153
8.5.1
Une proc´edure inefficace . . . . . . . . . . . . . . . . . . . . . . . . . .
153
8.5.2
D´eclaration des acteurs de AD . . . . . . . . . . . . . . . . . . . . . . .
153
xvi
Table des mati`eres
Compilation des acteurs de AD : construction des r`egles d’Oracle . . .
154
8.5.3.i
Construction des r`egles agr´eg´ees. . . . . . . . . . . . . . . . .
154
8.5.3.ii
Construction de r`egles ´etendues. . . . . . . . . . . . . . . . .
154
8.5.3.iii Phase de d´ecomposition. . . . . . . . . . . . . . . . . . . . . .
154
8.5.3.iv Calcul des r`egles d’Oracle. . . . . . . . . . . . . . . . . . . . .
154
Phase de d´ecomposition . . . . . . . . . . . . . . . . . . . . . . . . . .
155
8.5.4.i
Explication de cette phase. . . . . . . . . . . . . . . . . . . .
155
8.5.4.ii
R`egles pour la d´ecomposition . . . . . . . . . . . . . . . . . .
155
8.5.5
Calcul des r`egles d’Oracle . . . . . . . . . . . . . . . . . . . . . . . . .
156
8.5.6
Combinaison des r`egles d’Oracle et de la strat´egie de recherche d’attaque
8.5.3
8.5.4
8.6
par r´esolution de contraintes . . . . . . . . . . . . . . . . . . . . . . . .
157
R´esultats exp´erimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
158
8.6.1
Outils
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
158
8.6.2
Acc´el´eration pour la recherche d’attaques . . . . . . . . . . . . . . . . .
158
8.6.2.i
8.6.2.ii 8.6.3
Un exemple, le protocole d’´echange de clefs Encrypted Key Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
158
Sp´ecification en LHNSP. . . . . . . . . . . . . . . . . . . . . .
158
R`egles d’Oracle en sortie du compilateur. . . . . . . . . . . . . .
158
Trace de la recherche d’attaque. . . . . . . . . . . . . . . . . . .
158
R´esultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . .
160
Notes sur les exp´eriences. . . . . . . . . . . . . . . . . . . . . . .
160
V´erification de protocoles . . . . . . . . . . . . . . . . . . . . . . . . . .
161
8.6.3.i
Description des tests . . . . . . . . . . . . . . . . . . . . . . .
161
8.6.3.ii
Commentaires sur le tableau 8.2 . . . . . . . . . . . . . . . .
161
Carlsen Secret Key Initiator Protocol. . . . . . . . . . . . . . . .
161
Amended Needham-Schroeder Protocol. . . . . . . . . . . . . . .
161
8.6.3.iii Conclusion sur la v´erification de protocoles . . . . . . . . . .
162
9 Bilan et Perspectives
Bibliographie
163
Compilation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
163
Recherche d’attaques. . . . . . . . . . . . . . . . . . . . . . . . .
163
V´erification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
164 165
Table des figures 1.1
Messages ´echang´es dans le protocole `a clefs publiques de R. Needham et M. Schroeder
2.1 2.2 2.3
Chiffrement par blocs sans chaˆınage . . . . . . . . . . . . . . . . . . . . . . . . . . Chiffrement par blocs en mode chaˆın´e (mode CBC) . . . . . . . . . . . . . . . . . . Chiffrement par blocs par r´etroaction (mode CFB) . . . . . . . . . . . . . . . . . .
16 17 17
3.1 3.2 3.3 3.4
Relation entre termes op´erations, termes valeurs et fonction de normalisation p Repr´esentation du terme {ha, ha, bii}c par un arbre . . . . . . . . . . . . . . . p Repr´esentation du terme {ha, ha, bii}c par un graphe orient´e acyclique (DAG) Algorithme d’insertion d’un terme dans un ensemble. . . . . . . . . . . . . . .
. . . .
38 42 42 46
4.1
Propri´et´e de Church-Rosser pour les syst`emes de r´e´ecriture sur des ensembles de termes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.1 6.3 6.2
. . . .
. . . .
Protocole de R. Needham et M. Schroeder `a clefs publiques (Needham-Schroeder Public Key) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple de sp´ecification LHNSP : le protocole de R. Needham et M. Schroeder (Needham-Schroeder Public Key) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple de d´ecomposition de connaissances ant´erieures . . . . . . . . . . . . . . . Algorithme de construction de la fonction δ pour les ⊕-termes. . . . . . . . . . . . Algorithme de construction de la fonction δ pour les Exp-termes. . . . . . . . . . . p,rsa Algorithme de construction de la fonction δ pour les { } -termes. . . . . . . . . Algorithme de construction de la fonction δ pour les op´erateurs syntaxiques. . . . . Protocole jouet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R`egles en sortie du compilateur CasRul . . . . . . . . . . . . . . . . . . . . . . . .
3
70 72 79 83 84 85 85 87 89
Algorithme de recherche d’attaque sur un protocole . . . . . . . . . . . . . . . . . . Protocole de D. Denning et G. Sacco (Denning-Sacco (symmetric)) . . . . . . . . . Protocole de R. Needham et M. Schroeder `a clefs sym´etriques (Needham-Schroeder Conventional Key) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
118
7.1
Algorithme de recherche d’attaque sur un protocole . . . . . . . . . . . . . . . . . .
124
8.1 8.2 8.3
Algorithme de recherche d’attaque sur un protocole . . . . . . . . . . . . . . . . . . Sp´ecification du protocole Encrypted Key Exchange en LHNSP. . . . . . . . . . . Les deux derniers messages du protocole de Carlsen. . . . . . . . . . . . . . . . . .
145 159 161
xvii
114 117
xviii
Table des figures
1
Analyse de protocoles cryptographiques Chapitre
S´ ecurisation des ´ echanges Une sc`ene classique des films d’espionnage est l’´echange de deux personnes au checkpoint Charlie. Le protocole est bien ´etabli : de chaque cˆot´e du pont (embrum´e), les repr´esentants de chaque partie, et sous leurs yeux les personnes ´echang´ees, dont l’identit´e est v´erifi´ee au moyen de jumelles, se croisent au milieu du pont. Ce protocole bien ´etabli est suffisant pour un ´echange dans lequel les deux parties peuvent contrˆ oler `a tout moment le d´eroulement. Entre autres, les actions des participants sont synchronis´ees les unes sur les autres. Ce protocole, ou celui suivi lors de l’achat d’un objet dans un magasin, refl`ete l’id´ee qu’on se fait d’un ´echange s´ecuris´e : l’interlocuteur est bien identifi´e, et il n’y a pas d’interm´ediaire entre les participants pouvant changer le contenu du mat´eriel ´echang´e. L’´echange de donn´ees sur un r´eseau comme Internet est d’une toute autre nature. Des personnes situ´ees sur deux points distants du r´eseau doivent s’accorder sur l’identit´e l’une de l’autre, ´echanger des informations qu’elles d´esirent ˆetre les seules `a connaˆıtre, et cela m´ediatement un r´eseau dont le protocole de transport de messages ne permet pas l’authentification de l’´emetteur du message, et donne la possibilit´e `a tous les interm´ediaires, l´egitimes ou non, de connaˆıtre le contenu du message. Le challenge `a relever consiste `a construire des protocoles permettant l’identification de l’interlocuteur et la transmission de donn´ees confidentielles sur un tel m´edia. La solution au second probl`eme remonte, selon la l´egende, `a Jules C´esar. Si un message contenant des donn´ees secr`etes doit ˆetre transmis, il faut le chiffrer, c’est-`a-dire l’alt´erer d’une fa¸con pr´ed´etermin´ee avec le receveur pr´evu pour que seul ce dernier puisse retrouver le message initial. De mani`ere plus g´en´erale, une primitive cryptographique est une op´eration permettant une alt´eration, r´eversible ou non, d’un message. Le premier point peut ˆetre r´esolu grˆace `a une suite de messages de type challenge r´eponse : chaque participant envoie un ou plusieurs messages, et suppose que la r´eponse ne peut ˆetre donn´ee que par son interlocuteur. Cette suite de messages d´etermin´ee par avance est un protocole, et lorsque ce protocole d´epend de primitives cryptographiques pour assurer l’int´egrit´e des messages, leur origine ou leur secret, nous parlons de protocole cryptographique. La possibilit´e pour une tierce personne d’alt´erer et de copier les messages, et le fait qu’une personne ne soit pas au courant d’un ´echange auquel elle ne participe pas rendent ces protocoles d’apparence simple complexes `a analyser et `a sp´ecifier. La mise en œuvre de m´ecanismes assurant l’´echange s´ecuris´e de donn´ees est pourtant une condition indispensable pour le commerce ´electronique, et plus g´en´eralement pour permettre au r´eseau Internet de devenir un support sˆ ur pour le d´eveloppement d’activit´es professionnelles, commerciales ou administratives. Ces erreurs ont abouti `a l’emploi de m´ethodes formelles dans le but d’assurer la s´ecurit´e des protocoles mis en œuvre ou en cours d’´elaboration. Notre travail se situe dans ce cadre de recherche de failles ou, au contraire, de preuve de s´ecurit´e de protocoles ´elabor´es par ailleurs. 1
2
1.1
Chapitre 1. Analyse de protocoles cryptographiques
Protocoles cryptographiques
L’existence mˆeme de l’existence de protocoles permettant la s´ecurisation des ´echanges repose sur la possibilit´e de g´erer l’information divulgu´ee sur le m´edia. Si toutes les donn´ees ´echang´ees peuvent ˆetre connues de tous, il est impossible de pr´eserver la confidentialit´e de quelque mani`ere que ce soit. Cette gestion est bas´ee sur des primitives cryptographiques qui permettent d’assurer que seules certaines personnes seront en mesure d’extraire l’information utile d’un message.
1.1.1
Quelques primitives cryptographiques et leur utilisation pour assurer la s´ ecurit´ e des communications
1.1.1.i
Un exemple historique
La condition n´ecessaire de l’existence de protocoles cryptographiques est l’existence de primitives cryptographiques, c’est-` a-dire de proc´edures permettant l’´emission de messages ne pouvant pas ˆetre construits ou d´echiffr´es par une personne autre que l’´emetteur ou le r´ecepteur attendu du message. Le code utilis´e par Jules C´esar, par exemple, consistait en un d´ecalage de trois lettres dans l’ordre alphab´etique. La suite de lettres : Fg wgawg gvw gq fodlu est la traduction chiffr´ee de : Ce texte est en clair Si ce code permet de tromper un adversaire n’ayant aucune connaissance en chiffrement, il ne peut pas ˆetre raisonnablement utilis´e pour prot´eger une donn´ee quelconque. 1.1.1.ii
Algorithmes de chiffrement
Nous appelons algorithme de chiffrement une primitive cryptographique r´eversible. Le code utilis´e par Jules C´esar est donc un algorithme de chiffrement : il est possible d’obtenir le texte en clair `a partir du texte chiffr´e en appliquant un d´ecalage de trois lettres vers le d´ebut de l’alphabet. La s´ecurit´e de cet algorithme repose largement sur le secret de la m´ethode utilis´ee. Pour une personne connaissant la m´ethode mais pas le d´ecalage utilis´e, c’est un jeu d’enfant que de retrouver le texte clair `a partir du texte chiffr´e. Une proposition de bon sens, tr`es largement accept´ee, est que ce type d’algorithme de chiffrement ne devrait pas ˆetre utilis´e. Il est pr´ef´erable d’utiliser une m´ethode g´en´erale dont le r´esultat d´epend d’un param`etre, la clef. Les algorithmes de chiffrement sont class´es en deux grandes familles, suivant que les clefs servant au chiffrement et d´echiffrement d’un messages sont facilement calculables l’une `a partir de l’autre ou non. Dans le premier cas, nous parlerons d’algorithme de chiffrement ` a clefs sym´etriques, et dans le second d’algorithme de chiffrement ` a clefs asym´etriques. Dans la premi`ere cat´egorie sont class´ees les m´ethodes pour lesquelles les clefs de chiffrement et de d´echiffrement sont identiques, par exemple. Dans la seconde cat´egorie, la clef permettant de d´echiffrer un message chiffr´e par une clef a est appel´ee la clef inverse de a. Notons que la notion d’inverse est `a prendre ici au sens alg´ebrique du terme d`es que les algorithmes de chiffrement et de d´echiffrement sont identiques, ce qui est le cas le plus courant. Si la primitive cryptographique utilis´ee n’est pas r´eversible, nous parlons de fonction ` a adressage dispers´e. Ce type de fonctions peut servir `a assurer l’int´egrit´e d’un message ou `a t´emoigner de la connaissance d’une certaine valeur. Par exemple, en France, les deux derniers chiffres du num´ero de s´ecurit´e sociale sont ´egaux au compl´ement `a 97 (entre 1 et 97) du reste de la division des 13 premiers chiffres par 97 [32]. Ces deux derniers chiffres permettent de v´erifier qu’il n’y a pas eu d’erreur lors d’une transmission, mais l’algorithme utilis´e ne permet pas d’´eviter qu’une personne malintentionn´ee cr´ee un faux num´ero de s´ecurit´e sociale, car aucune donn´ee n´ecessaire pour le calcul de la clef est secr`ete. Nous verrons au chapitre 2 d’autres fonctions `a adressage dispers´e.
1.1. Protocoles cryptographiques
1.1.1.iii
3
L’hypoth` ese de chiffrement parfait et au-del` a
L’exemple du code de C´esar montre que l’analyse d’un protocole doit prendre en compte les propri´et´es du chiffrement. Une hypoth`ese usuelle, pour l’´etude de protocoles cryptographiques, est celle du tout ou rien : soit une primitive de chiffrement est sˆ ure et il n’est pas possible d’extraire d’information d’un ou plusieurs messages chiffr´es, soit il est possible de faire abstraction du chiffrement et de consid´erer que le message est envoy´e en clair. Sous cette hypoth`ese, il n’est pas possible d’extraire d’information d’un message chiffr´e sans poss´eder la clef permettant de le d´echiffrer, ce qui a donn´e le nom d’hypoth`ese de chiffrement parfait. Dans notre travail, nous essayons de pousser les limites de l’analyse de protocoles au-del`a de cette hypoth`ese. Il y a plusieurs raisons `a cela. La premi`ere raison est un probl`eme d’expressivit´e. Certains protocoles sont bas´es sur les propri´et´es d’algorithmes de chiffrement, et en faire abstraction nous empˆeche de raisonner sur ces protocoles. La seconde raison est que les failles de certains protocoles sont bas´ees sur l’utilisation par un adversaire de propri´et´es sp´ecifiques des primitives cryptographiques utilis´ees ou pouvant l’ˆetre. Un cas symptomatique est celui du protocole de gestion de clefs dans un groupe d´efini par Bull et Ottway [16]. L. Paulson montre [81] que ce protocole est correct sous l’hypoth`ese de chiffrement parfait, alors que P. Ryan et S. Schneider montrent [92] que l’implantation de ce protocole utilisant le ou exclusif bit ` a bit n’est pas correcte. Les propri´et´es ` a prendre en compte d´ependent a priori de la puissance de calcul suppos´ee de l’adversaire. Il serait donc souhaitable de mesurer la s´ecurit´e offerte par un protocole en fonction de la puissance de calcul qui serait requise pour le mettre en faute. Notre approche est diff´erente, et beaucoup plus simple. Nous prenons en compte uniquement les propri´et´es de primitives cryptographiques pouvant ˆetre utilis´ees par un adversaire ayant une puissance de calcul faible.
1.1.2
Communication par ´ echange de messages
Un protocole cryptographique est d´efini par une suite de messages envoy´es et re¸cus par deux (ou plus) points d’un r´eseau. Afin d’en simplifier la lecture, cette suite de message est souvent organis´ee en un sc´enario lin´eaire repr´esentant l’ex´ecution attendue du protocole. Par exemple, l’un des protocoles les plus connus est celui de R. Needham et M. Schroeder dans [77] : 1. 2. 3.
A B A
→ → →
B A B
: : :
{N a, A}Kb {N b, N a}Ka {N b}Kb
Fig. 1.1 – Messages ´echang´es dans le protocole `a clefs publiques de R. Needham et M. Schroeder Nous expliquons cette sp´ecification dans la suite de cette section. Messages. Les messages ´echang´es, dans la figure 1.1, sont d´eclar´es sur chaque ligne `a droite des deux-points. Ils sont construits par concat´enation (Na, A) ou par chiffrement ({Na, A}Kb) d’autres messages, ou sont des messages atomiques (A ou Na, par exemple). Le message utilis´e pour le chiffrement (Kb, dans le cas du message {Na, A}Kb) est appel´e une clef. Le type du chiffrement, sym´etrique ou asym´etrique, est d´etermin´e par le type de la clef. Dans le cas du protocole de la figure 1.1, toutes les clefs utilis´ees sont les clefs publiques de couples de clefs asym´etriques. Rˆ oles et acteurs. Un sc´enario d’´echange de messages peut ˆetre pris soit de mani`ere d´eclarative, soit de mani`ere op´eratoire. Dans le premier cas, l’´echange d´ecrit se fait entre deux personnes abstraites se distinguant uniquement par le rˆole qu’elles jouent dans le sc´enario. Dans le second cas, le sc´enario d´ecrit une suite d’´echanges de messages entre des personnes d´etermin´ees, chacune jouant un (ou plusieurs) des rˆ oles du sc´enario. Pour distinguer ces deux niveaux, nous parlons de rˆ ole pour d´esigner un participant `a l’identit´e non pr´ecis´ee, et d’acteurs pour des participants effectifs au protocole. Les premiers sont d´esign´es par des lettres majuscules, g´en´eralement A, B,... ou S pour un serveur, tandis que nous donnons des pr´enoms aux seconds (alice, bob,...). Un acteur joue un rˆ ole sp´ecial, l’intrus. Nous le notons par la lettre I, et il repr´esente un adversaire essayant
4
Chapitre 1. Analyse de protocoles cryptographiques
de profiter d’une ´eventuelle faille du protocole. Notons que prendre en compte un seul intrus n’est pas restrictif vis-` a-vis de la recherche d’attaques [101].
1.1.3
Un acteur malhonnˆ ete, l’intrus
Afin de tester la s´ecurit´e qu’offre un protocole, nous consid´erons les ex´ecutions possibles de ce protocole en pr´esence d’un intrus essayant de le mettre en faute. 1.1.3.i
Contrˆ ole du r´ eseau
Nous exprimons le pouvoir de l’intrus en fonction du contrˆole qu’il poss`ede sur le r´eseau par lequel passent les messages ´echang´es par les acteurs honnˆetes. Les capacit´es de contrˆole que nous consid´erons sont les trois suivantes : – interception : permet ` a l’intrus d’intercepter tous les messages. Il peut ainsi empˆecher un message envoy´e d’arriver ` a destination et connaˆıtre le contenu de ce message. Cette propri´et´e doit ˆetre envisag´ee d`es que des personnes inconnues ont un acc`es physique `a un r´eseau par cˆable. C’est le cas, par exemple, pour des communications via internet entre deux sites distants ; – ´ ecoute : n’autorise pas l’intrus ` a empˆecher un message d’arriver `a destination, mais lui permet de prendre connaissance du contenu des messages envoy´es. Il faut noter que n’importe qui peut ´ecouter tous les messages envoy´es sur des r´eseaux Wifi, mais qu’il est impossible d’empˆecher un message d’arriver ` a destination ; – d´ eguisement : est une propri´et´e d’intrus dans tous les r´eseaux o` u il n’y a pas de m´ecanisme implicite d’authentification. Dans le cas d’envoi de messages sur internet, par exemple, il est possible de falsifier l’en-tˆete d’un message pour lui donner une adresse d’origine diff´erente de l’adresse r´eelle d’envoi. La difficult´e pour l’intrus, dans ce cas, est de parvenir `a r´ecup´erer la r´eponse qui ne lui est plus envoy´ee directement. Lorsque l’intrus envoie un message en falsifiant l’en-tˆete pour faire croire que ce message vient d’un acteur a, on note l’envoyeur I(a) : il s’agit de l’intrus I, mais avec l’identit´e a. 1.1.3.ii
Capacit´ es de d´ eduction
Avant de faire l’´etude d’un protocole, nous fixons un certain nombre d’op´erations disponibles pour la construction des messages. Nous supposons que l’intrus maˆıtrise toujours parfaitement ces op´erations, et qu’il peut ´eventuellement utiliser les propri´et´es alg´ebriques de ces op´erations afin de fa¸conner de nouveaux messages soit par composition `a partir de messages d´ej`a connus, soit par d´ecomposition, en extrayant un sous-message d’un message d´ej` a connu. Nous n’imposons aucune limite – telle qu’une taille de message maximale, par exemple – aux capacit´es de d´eduction de l’intrus `a l’int´erieur de ce cadre.
1.1.4
Propri´ et´ es de s´ ecurit´ e
Nous pr´esentons maintenant les deux propri´et´es de s´ecurit´es que nous ´etudierons dans le reste de ce document. 1.1.4.i
Confidentialit´ e des donn´ ees ´ echang´ ees
Une propri´et´e souvent demand´ee ` a un protocole est de prot´eger la confidentialit´e de donn´ees transmises. Nous parlons alors de propri´et´e de secret, et nous formalisons cette propri´et´e sous la forme d’un probl`eme d’accessibilit´e. Soit (Σ, T ) un syst`eme de transition tel que Σ mod´elise tous les ´etats possibles des acteurs honnˆetes et de l’intrus, T une relation de transition entre les ´etats de Σ repr´esentant les actions possibles des acteurs honnˆetes et de l’intrus, et Σinit un ´etat initial. Nous disons qu’il y a une faille de secret s’il existe une suite d’´etats (Σi )i∈{0,...,n} telle que : Σ0 = Σinit Σi T Σi+1 pour tout i ∈ {0, . . . , n − 1} et Σn repr´esente un ´etat dans lequel l’intrus connait le secret.
1.2. M´ethodes pour l’analyse de protocoles
1.1.4.ii
5
Identification de l’interlocuteur
Une autre condition demand´ee aux protocoles cryptographiques est de permettre la v´erification de l’identit´e de l’interlocuteur. Nous traitons le probl`eme plus particulier de l’authentification en fonction des donn´ees ´echang´ees. Un rˆole A authentifie un rˆole B sur un message M si, pour tout acteur a jouant le rˆ ole A et tout acteur b jouant le rˆole B, chaque fois que a re¸coit la valeur m d’un acteur pr´etendant ˆetre b, l’acteur b a effectivement envoy´e une valeur m `a l’acteur a, et le message contenant m n’a pas ´et´e re¸cu par un autre acteur jouant le rˆole A. Cette propri´et´e correspond ` a l’authentification forte d´efinie par G. Lowe [62]. Nous la mod´elisation en imposant des ´egalit´es sur les messages envoy´es et re¸cus par les acteurs jouant les rˆoles A et B. Il y a une faille d’authentification dans l’exemple pr´ec´edent si `a la fin d’une session de a, il n’y a pas de messages envoy´es par b pouvant ˆetre mis en correspondance avec le message re¸cu par a.
1.2
M´ ethodes pour l’analyse de protocoles
Le d´eveloppement d’un protocole cryptographique, ou plus g´en´eralement d’un programme, peut ˆetre grossi`erement divis´e en trois ´etapes : 1. tout d’abord, il est n´ecessaire de d´efinir ce que doit assurer le protocole ; 2. cette premi`ere ´etape est suivie d’une ´etape durant laquelle un protocole v´erifiant ces crit`eres est recherch´e ; 3. a` la fin de cette seconde ´etape, un ou plusieurs candidats possibles sont d´egag´es, et leur implantation est ensuite formellement valid´ee. La troisi`eme ´etape de validation repose sur des outils g´en´eraux d’analyse de programmes, et est hors du cadre que nous nous sommes fix´es. Nous nous int´eressons `a l’´etape de recherche d’un protocole. Nous supposons qu’` a ce stade, les utilisateurs des m´ethodes formelles n’ont pas de comp´etence technique particuli`ere dans ce domaine. La premi`ere difficult´e consiste donc `a proposer un ensemble d’hypoth`eses par d´efaut acceptables, et `a permettre une analyse compl`ete sous ces hypoth`eses. Pour qu’un tel outil puisse ˆetre accept´e dans la communaut´e industrielle, la sp´ecification et l’analyse d’un protocole doit pouvoir ˆetre termin´ee rapidement. Il faut donc proposer un langage de sp´ecification de haut niveau ` a la syntaxe simple et concise, et `a la s´emantique claire. Dans la soussection 1.2.1, nous d´ecrivons des langages de ce type ayant d´ej`a ´et´e propos´es, ainsi que le compilateur leur associant une s´emantique op´erationnelle via un syst`eme de transitions de bas niveau. Les deux sous-sections suivantes seront respectivement consacr´ees `a la description de m´ethodes de validation interactives (sous-section 1.2.2) ou automatiques (sous-section 1.2.3) bas´ees sur un tel syst`eme de transition.
1.2.1
Compilation de protocoles cryptographiques
Une ´etape n´ecessaire, pour l’adoption des m´ethodes formelles par une large communaut´e, est de permettre des sp´ecifications en un langage de haut niveau ayant une syntaxe simple et une s´emantique clairement d´efinie [103]. Cependant, les outils existants demandent encore souvent une bonne connaissance d’un langage de sp´ecification complexe, tel que CSP [15, 94] ou autre (langage de sp´ecification des outils de validation de mod`ele ASTRAL [31], SPIN [4], . . . ). Le d´efaut majeur de telles sp´ecifications est qu’il est possible d’introduire des erreurs lors du processus de sp´ecification. Les auteurs de CVS motivent ainsi la cr´eation d’un compilateur de protocoles [43] : « [SPA] has been used to define non-interference-like security properties whose verification has been automatized by means of the tool CoSeC. [...] Even if it has been useful in analyzing small security protocols, this method has shown to be error-prone as it requires the description by hand of the protocol and of the environment in which it will execute. » Parmi les compilateurs de protocoles, on peut citer Casper [63], qui a ´et´e utilis´e par G. Lowe [42] sur la biblioth`eque de protocoles donn´ee par J. Clark et J. Jacob [26]. Ce compilateur transforme une suite d’envoi et de r´eception de messages, pour chaque acteur, en un processus CSP. Le processus CSP peut ensuite ˆetre v´erifi´e par un v´erificateur de mod`eles comme FDR [88, 61, 42].
6
Chapitre 1. Analyse de protocoles cryptographiques
L’analyse des connaissances des rˆ oles est r´eduite, et se r´esume `a un message d’erreur lorsqu’un rˆole n’a pas les connaissances n´ecessaires pour d´ecrypter imm´ediatement un message re¸cu. Il nous semble que cette analyse r´eduite des connaissances des rˆoles confine cet outil `a l’´etude de protocoles simples. Un autre langage de description de protocoles, Capsl [35], a ´et´e d´efini au SRI. Les descriptions en Capsl sont compil´ees dans un format interm´ediaire, CIL [36]. Le but est de permettre l’interfa¸cage d’un plus grand nombre possible d’outils de v´erification, tel que l’outil de validation de mod`eles Maude [34], par exemple. Capsl, dans son ´evolution µCAPSL [37], permet aussi la description de protocoles de groupes. Un troisi`eme compilateur, CVS [43, 44], a ´et´e implant´e pour permettre la sp´ecification de protocoles dans un langage plus compr´ehensible que SPA (CSPA, dans [50]). La sp´ecification est ensuite traduite en SPA, et analys´ee par CoSeC. Le langage de haut niveau reste encore complexe, mais semble plus pr´ecis que Capsl, par exemple. Contrairement aux trois outils pr´ec´edents, pour lesquels les ´etapes de compilation et de v´erification sont distinctes, Murϕ [74] int`egre un compilateur et un v´erificateur de mod`eles. Le langage haut niveau de d´efinition est comparable au langage Unity [18]. La suite de messages est sp´ecifi´ee par un ensemble de commandes gard´ees, et permet l’emploi de types structur´es. Ce langage est beaucoup plus expressif que les langages pr´ec´edemment d´ecrits. Il est par exemple possible d’exprimer des protocoles de groupes tels que Enclaves. Son d´esavantage majeur est qu’il n’est pas sp´ecialis´e pour la sp´ecification de protocoles cryptographiques, ce qui laisse `a l’utilisateur un travail de mod´elisation long et source d’erreurs.
1.2.2
M´ ethodes interactives
Le probl`eme de la v´erification de protocoles peut s’´enoncer comme suit : soit P un protocole et A un ensemble de propri´et´es que le protocole doit garantir. Est-ce que A est effectivement garanti quelque soit l’utilisation qui est faite de P ? Si la r´eponse `a cette question est oui, le protocole est d´eclar´e correct. Sinon, nous disons qu’il a une faille ou qu’il est fautif. Ce probl`eme, une fois formalis´e, est connu comme ´etant ind´ecidable : pour une large classe de protocoles, il n’existe pas d’algorithme permettant de savoir si un protocole est correct ou non. L’ind´ecidabilit´e de ce probl`eme a conduit `a l’introduction de m´ethodes semi-automatiques : une personne qualifi´ee contrˆ ole le d´eroulement d’un algorithme tentant de valider un protocole, et l’aide `a mesure de sa comp´etence. Ces m´ethodes ont l’avantage d’ˆetre plus simples et plus rapides `a mettre en œuvre, leur principal inconv´enient ´etant que le jugement de la personne qualifi´ee est biais´e vers la recherche d’erreurs d´ej` a trouv´ees sur de pr´ec´edents protocoles, et l’introduction de propri´et´es non prouv´ees pouvant ˆetre fausses. Dans cette cat´egorie, il est possible de classer des outils tels que NRL [69], Isabelle [80, 82, 84], en utilisant la logique BAN [17] ou des notions d’´equivalence, voir [30] par exemple pour une vue d’ensemble sur ce dernier sujet. Leur principal avantage est qu’il est possible de prouver la correction de protocoles complexes, l’inconv´enient ´etant que le processus de v´erification, en dehors de la mod´elisation du protocole dans un formalisme ad hoc, est long, complexe et parfois lui-mˆeme source d’erreurs. L’analyseur NRL. Cet outil, d´evelopp´e par C. Meadows, est un outil de recherche en arri`ere d’attaques. L’ensemble des ´etats critiques est initialis´e `a une repr´esentation de l’ensemble des ´etats fautifs par un ensemble fini d’´etats symboliques. Durant l’analyse, si une transition m`ene d’un ´etat s `a un ´etat critique, alors s est ajout´e ` a l’ensemble des ´etats critiques. L’utilisateur guide l’analyse choisissant les transitions ` a consid´erer, et un protocole a une faille si au bout d’un nombre fini d’´etapes, il existe un ´etat initial du protocole repr´esent´e par un ´etat symbolique de l’ensemble des ´etats critiques [69, 68, 67]. L’avantage de la recherche en arri`ere est que le nombre d’acteurs n’est pas limit´e. Si la recherche en arri`ere converge en un temps fini vers un ensemble d’´etats critiques C ne repr´esentant pas d’´etat initial, il est th´eoriquement possible de valider un protocole. Cependant, le nombre de transitions possibles est tr`es important `a chaque ´etape. L’utilisation de cet outil exige donc un utilisateur connaissant d´ej`a des failles possibles du protocole. Application du prouveur Isabelle ` a la v´ erification de protocoles cryptographiques. L’outil Isabelle [80] est un prouveur de th´eor`emes par induction. Il a ´et´e utilis´e `a plusieurs reprises
1.2. M´ethodes pour l’analyse de protocoles
7
pour l’analyse de protocoles cryptographiques [82, 83, 79]. C’est par l’utilisation de cet outil qu’il a ´et´e possible de prouver la s´ecurit´e du protocole SET [9, 7, 8]. Il s’agit de l’exemple le plus complexe, `a notre connaissance, de protocole ayant pu ˆetre trait´e par des m´ethodes formelles. Cependant, d’apr`es les auteurs, le processus de sp´ecification fut long (en partie par la faute des sp´ecification d´ej`a existantes qui ´etaient parfois contradictoires). Et on peut remarquer que certaines erreurs possibles n’ont pas ´et´e trait´ees, comme l’existence d’une faille permettant de monter une attaque de type d´eni de service dans le sous-protocole Cardholder Registration. L’existence possible d’une telle faille avait ´et´e admise par les auteurs dans [9] : « While stressing that each authority certifies a specific key for a single cardholder, the theorem does not prevent different authorities to certify the same key for the same cardholder. » mais elle a ´et´e mise en ´evidence par les outils d´evelopp´es dans le cadre du projet AVISS2 , en se basant sur la sp´ecification donn´ee dans [9]. Notons que la faille trouv´ee consiste `a faire certifier une mˆeme clef plusieurs fois par la mˆeme autorit´e de certification. Alg` ebre de processus et ´ equivalence observationnelle. Les m´ethodes reposant sur l’´equivalence observationnelle peuvent essentiellement se d´ecrire de la mani`ere suivante. On consid`ere deux syst`emes de transitions Π1 et Π2 . La propri´et´e `a montrer est exprim´ee comme une relation entre ces deux syst`emes. Elle est prouv´ee si elle est une congruence. Le rˆole d’un outil est donc de v´erifier que la relation est une relation d’´equivalence qui est pr´eserv´ee par les transitions des syst`emes. Par exemple, le secret d’un message s peut ˆetre exprim´e par l’´equivalence entre deux ex´ecutions du protocole, l’une o` u l’adversaire n’agit pas, et l’autre o` u l’adversaire tente de modifier les messages. L’avantage de l’´equivalence observationnelle est qu’il est possible d’exprimer un grand nombre de propri´et´es. La difficult´e, dans l’utilisation de ces m´ethodes, est que la propri´et´e `a prouver d´epend de la relation d’´equivalence choisie, qui n’est pas toujours d´ecidable. Des travaux sont en cours [30] pour automatiser cette approche, qui reste cependant pour l’instant essentiellement limit´ee `a des « preuves ` a la main ».
1.2.3
M´ ethodes automatiques
1.2.3.i
But de nos travaux
Notre but est de construire un outil pouvant ˆetre utilis´e dans la phase d’´elaboration d’un protocole. Il est donc n´ecessaire qu’il soit utilisable simplement, et qu’un r´esultat soit rapidement disponible. Pour ces raisons, nous nous sommes orient´es vers des m´ethodes automatiques d’ana` terme, nous visons le d´eveloppement d’un syst`eme complet partant d’une lyse de protocoles. A sp´ecification de protocole dans un langage ais´ement compr´ehensible et le moins ambigu¨e possible, et indiquant si le protocole sp´ecifi´e est valide, incorrect ou s’il y a un risque d’existence d’erreur. Nous pr´esentons maintenant divers travaux d’analyse automatique de protocoles, en commen¸cant par les m´ethodes de recherche de failles, et en d´ecrivant ensuite des m´ethodes de validation existantes. 1.2.3.ii
La recherche de failles comme probl` eme d’accessibilit´ e
Le probl`eme de la v´erification de protocoles est ind´ecidable, donc rechercher s’il y a une faille sur un protocole est aussi ind´ecidable. Ce deuxi`eme probl`eme est cependant plus simple, dans le sens o` u s’il y a une faille sur un protocole P , elle n’implique qu’un nombre fini de participants. La plupart des syst`emes de recherche de failles se basent sur cette remarque, et se bornent `a ´etudier le cas d’un nombre fini de participants. L’un des articles fondateurs de l’analyse des protocoles cryptographiques est celui de D. Dolev et A. Yao [41], dans lequel les auteurs consid`erent une classe tr`es restreinte de protocoles, et donnent un algorithme permettant la recherche de failles ou la preuve de correction. Dans cet article sont aussi d´efinies les capacit´es de l’adversaire qui sont maintenant consid´er´ees comme standard. Singuli`erement, dans ce mod`ele, et pour un nombre fini de participants, il y a un nombre infini de 2 Automated
Verification of Infinite State Systems, FET Open Assessment Project IST 2000-26410, (AVISS)
8
Chapitre 1. Analyse de protocoles cryptographiques
suites de transitions possibles. Deux voies ont depuis ´et´e suivies pour la recherche de failles. D’un cˆot´e, il est recherch´e une sur-approximation des capacit´es de l’adversaire qui permet de se ramener `a un cas fini. De l’autre, le cadre d´efini dans [41] est restreint pour se ramener au cas de l’´etude d’un syst`eme fini. M´ ethodes approch´ ees. Une premi`ere approche a ´et´e de mod´eliser l’ensemble des ´etats par des automates d’arbres. Cette approche, initi´ee dans la cadre d’un nombre non-born´e de sessions par T. Genet et F. Klay dans [51], a ´et´e reprise et am´elior´ee dans le cadre d’un nombre born´e de sessions par D. Monniaux d’abord [75], et ensuite par J. Goubault-Larrecq dans [53]. Dans ces deux derniers cas, des automates d’arbres permettent de repr´esenter les ensembles de messages acceptables par les participants. M´ ethodes exactes dans un cadre restreint. P. Ryan, S. Schneider, M. Goldsmith, G. Lowe et B. Roscoe d´ecrivent [93] comment il est possible de borner le syst`eme `a ´etudier en typant les messages. Ce typage permet d’assurer que l’ensemble des messages que l’adversaire a `a prendre en compte est fini, et peut ˆetre calcul´e. La description est reprise par B. Roscoe [88] sous le nom de lazy intruder technique. Elle est appliqu´ee avec succ`es pour l’´etude [42] des protocoles d´ecrits dans [26] et peut ˆetre consid´er´ee comme ´etant l’´etat de l’art au d´ebut du travail pr´esent´e dans cette th`ese. D’autres travaux ont ouvert la voie vers une r´esolution symbolique exacte de la recherche d’attaques dans le cadre d’un nombre born´e de sessions, tels que ceux de R. Amadio et D. Lugiez [1] ou de M. Boreale [13]. Ces travaux seront pr´esent´es en d´etail dans le chapitre 6. 1.2.3.iii
Traitement de la correction de protocoles
Le handicap majeur des m´ethodes bas´ees sur les probl`emes d’accessibilit´e est que la question pos´ee concerne l’existence d’une suite de transitions, alors que la correction d’un protocole est une propri´et´e d´ependante de toutes les suites de transitions. Pour que le r´esultat de l’analyse ait un sens, il est raisonnable de demander, au moins, que si un outil d´eclare un protocole comme correct, ce protocole le soit. L’ind´ecidabilit´e du probl`eme de la v´erification de protocoles cryptographiques implique alors que si les protocoles d´eclar´es corrects par l’outil le sont bien, des protocoles corrects pourront ˆetre d´eclar´es comme fautif ou aucune r´eponse ne sera donn´ee pour certains protocoles. M´ ethodes semi-automatiques. Une m´ethode dont toutes les r´eponses sont exactes ne peut pas toujours rendre de r´eponse en un temps fini. Dans cette cat´egorie, il est possible de citer les travaux de M. Debbabi et al. [33]. Un outil reposant sur la r´esolution symbolique de contraintes est donn´e. Un protocole est transform´e en un syst`eme de r`egles d’inf´erence ne terminant pas, et un algorithme g´en´erique permet de transformer ce syst`eme en un syst`eme de r`egles terminant. La terminaison de l’algorithme de transformation n’est pas assur´ee. Le handicap de cette m´ethode est que mˆeme en cas de terminaison de l’algorithme de transformation, seul un certain type de failles peut ˆetre analys´e. Une m´ethode tr`es similaire est implant´ee dans l’outil Athena [98, 99]. Cet outil construit r´ecursivement des ensembles d’ex´ecutions possibles du protocole tout en consid´erant un nombre infini de participants. Le nombre de suites de transitions est infini. Le principal avantage de cet outil est que l’utilisateur peut sp´ecifier des conditions d’arrˆet, qui sont `a prouver par ailleurs. Il semble de plus, d’apr`es [98, 99], que les performances de l’outil, sur les protocoles ´etudi´es, d´epend fortement de la strat´egie d’exploration de l’ensemble des suites de transitions, qui doit ˆetre sp´ecifi´ee par l’utilisateur. Certains auteurs ont propos´e l’utilisation de syst`emes semi-automatiques, c’est-`a-dire dont la terminaison, n’est pas assur´ee, et d´eclarant parfois comme fautif un protocole correct. La principale motivation est la recherche d’outils efficaces. Dans [10], par exemple, B. Blanchet d´ecrit la construction d’un syst`eme de r`egles Prolog d´ecrivant toutes les actions possibles d’un adversaire en pr´esence d’un nombre infini de participants. Si cette construction termine, il est possible de v´erifier un protocole. Cette construction a ´et´e raffin´ee dans [11, 12] pour prendre en compte les propri´et´es d’authentification.
1.3. Contenu de la th`ese
9
M´ ethodes dont la terminaison est assur´ ee. Pour assurer la terminaison dans le cas d’un nombre non-born´e de participants, il est n´ecessaire de pouvoir repr´esenter le nombre infini de suites de transitions possibles par un nombre fini de transitions symboliques. Plusieurs approches sont possibles dans ce cadre. Le premier type d’approche consiste `a calculer un sur-ensemble de l’ensemble des connaissances possibles de l’adversaire. Par exemple, T. Genet et F. Klay sur-approchent les connaissances de l’intrus ` a travers une repr´esentation des d´eductions possibles de l’intrus par des automates d’arbres [51]. L’avantage de cette m´ethode est de permettre la preuve de la correction de certains protocoles. J. Goubault-Larrecq affine l’utilisation des automates d’arbre en consid´erant des ∨PTA automates [53]. Les r´esultats donn´es ne prennent actuellement en compte que des cas o` u c’est un participant sp´ecial qui participe ` a un nombre non-born´e de sessions. Le second type d’approche consiste `a projeter l’ensemble des ´etats (infini) d’une ex´ecution de protocole ayant un nombre non-born´e de participants sur un ensemble d’´etats fini. Si la projection respecte la relation de transition, on parle alors d’abstraction. Une telle projection respecte les attaques de secrets [27]. L. Bozga, Y. Lakhnech et M. Perin [59], par exemple, fusionnent les donn´ees ´echang´ees lors de diff´erentes sessions du protocole et `a ne consid´erent qu’un nombre fini de participants pour se ramener au cas d’un nombre fini de donn´ees atomiques. Les auteurs traitent ´egalement le cas de messages de taille non-born´ee en ´eliminant les possibilit´es de divergence grˆ ace `a une notion de chapeaux. C’est ` a notre connaissance l’un des rares travaux sur la v´erification de protocoles o` u un outil terminant permet de v´erifier des protocoles dont les messages sont de taille non-born´ee.
1.3 1.3.1
Contenu de la th` ese Apports du travail pr´ esent´ e
Le travail pr´esent´e dans ce document vise `a l’implantation d’un outil automatique d’analyse d’une sp´ecification de protocoles donn´ee dans un langage de haut niveau. Le travail d’implantation r´ealis´e ne satisfait que tr`es partiellement ce but. Pour cette raison, une grande partie des travaux expos´es ici sont encore de nature th´eorique, et portent sur la complexit´e des algorithmes `a mettre en œuvre pour atteindre ce but. Il est possible de classer les apports de ce travail selon trois axes principaux. 1.3.1.i
Compilation de protocoles
Il existe actuellement peu d’outils qui permettent de sp´ecifier un protocole dans un langage de haut niveau accessible ` a un non-sp´ecialiste et malgr´e tout expressif. Nous pr´esentons le compilateur de protocoles CasRul qui r´epond ` a ces deux crit`eres. Par rapport `a la pr´esentation faite dans [56], notre contribution au d´eveloppement du processus de compilation suit deux axes. Expressivit´ e. Nous avons, en collaboration avec M. Bouallagui, ´etendu l’ensemble des op´erations disponibles pour sp´ecifier un protocole. Nous avons aussi chang´e la gestion des connaissances des participants pour tenir compte de l’utilisation de clefs non atomiques. Fondations th´ eoriques. Le deuxi`eme axe de travail sur le compilateur CasRul a ´et´e de fonder le processus de compilation sur des bases th´eoriques solides. Nous avons d´efini formellement la notion d’ex´ecutabilit´e d’un protocole. Le r´esultat sur les probl`emes d’accessibilit´e clos permet de montrer qu’il est possible de savoir si un protocole est ex´ecutable ou non en temps polynomial. Nous d´efinissons ensuite la repr´esentation de ses connaissances par un participant cherchant `a les analyser au maximum. Cette repr´esentation se base sur un ensemble minimal de connaissances qu’il n’est pas possible d’inf´erer les unes `a partir des autres, et tel que tous les autres messages ou parties de messages connus peuvent ˆetre exprim´es comme des termes sur cet ensemble. Cette repr´esentation minimale permet de prouver certaines propri´et´es sur les r`egles de r´eception/envoi de messages par les participants qui sont utilis´ees dans la suite de ce document, ainsi que dans plusieurs articles [19, 20].
10
1.3.1.ii
Chapitre 1. Analyse de protocoles cryptographiques
Recherche de failles
Recherche efficace de failles. Nous avons, d`es novembre 2000 [24], r´ealis´e l’implantation d’une strat´egie de d´eduction par r´esolution de contraintes. Cette strat´egie est aussi appel´ee lazy intruder strategy, bien qu’elle soit ind´ependante des techniques pr´esent´ees dans [88, 93]. La complexit´e (le probl`eme est NPTIME-complet pour la recherche de failles) de cette strat´egie a ensuite ´et´e prouv´ee dans [90]. Nous donnons une preuve de compl´etude et de correction pour la recherche d’attaques qui nous semble plus simple que celles pr´esent´ees `a ce jour.
Recherche de failles lorsque des op´ erateurs alg´ ebriques sont consid´ er´ es. Nous avons ´etendu la recherche de failles dans le cadre d’un nombre born´e de sessions aux cas o` u des op´erateurs alg´ebriques, tels que le ou exclusif bit ` a bit [19] ou l’exponentiation [20], sont consid´er´es. Nous avons tent´e, dans ce document, de simplifier les preuves des algorithmes donn´es. Le lecteur pourra se r´ef´erer aux rapports de recherche correspondants pour comparaison.
1.3.1.iii
V´ erification de protocoles cryptographiques
V´ erification pratique de protocoles. Le dernier apport de cette th`ese concerne la v´erification de protocoles cryptographiques. Nous avons commenc´e par montrer comment un nombre nonborn´e de participants pouvait ˆetre pris en compte dans le cadre de la strat´egie paresseuse de l’intrus via une abstraction sur les constantes ´echang´ees au cours d’une session et en bornant la taille des messages accept´es par les participants `a un nombre non-born´e de session [25], et [23] pour l’implantation pr´eliminaire.
Preuve dans un cadre th´ eorique. Nous avons ensuite montr´e que l’algorithme implant´e est EXPTIME-complet dans [22]. L` a encore, nous esp´erons que la pr´esentation de la preuve de correction et de compl´etude dans ce document est plus simple que celle du rapport de recherche.
1.3.2
Plan de la th` ese
1.3.2.i
Fondations (chapitres 2, 3 et 4)
Nous commen¸cons par d´ecrire dans le chapitre 2 les protocoles cryptographiques que nous consid´erons. Nous donnons les d´efinitions des termes relatifs utilis´es dans le reste de ce document. Nous pr´ecisons aussi les primitives cryptographiques que nous consid´erons comme importantes, et d´ecrivons leurs propri´et´es. Enfin, nous d´ecrivons les diff´erents types de failles que nous recherchons, ainsi que l’adversaire visant ` a exploiter ces failles. Nous consid´erons, tout au long de ce document, des constructeurs de messages v´erifiant certaines propri´et´es alg´ebriques. Nous d´efinissons dans le chapitre 3 des termes op´erations repr´esentant les messages pouvant ˆetre construits avec ces op´erateurs, et des termes valeurs repr´esentant les valeurs de ces messages, ainsi qu’une fonction de normalisation sur les termes valeurs. Nous montrons qu’il existe un isomorphisme entre les classes d’´equivalences des termes op´erations et les formes normales des termes valeurs. Cette forme normale sera utilis´ee dans le reste de ce document pour d´ecrire les messages ´echang´es par les participants ou connus de l’adversaire. Tous les probl`emes que nous avons pr´esent´es peuvent se formuler comme des probl`emes d’accessibilit´e pour un syst`eme de transitions d´efini par des r`egles de r´e´ecritures sur des ensembles. Dans le chapitre 4, nous d´efinissons ces syst`emes de r´e´ecritures, et donnons une propri´et´e de combinaison permettant de construire des syst`emes de r´e´ecritures sur des ensembles locaux. Nous montrons que les r`egles de r´e´ecritures sur les ensembles associ´ees aux op´erateurs que nous consid´erons peuvent toujours ˆetre combin´ees pour former un syst`eme local. Ce r´esultat permet de montrer que pour tout syst`eme de r´e´ecriture L form´e par combinaison de r`egles associ´ees aux op´erateurs, savoir si un terme peut ˆetre obtenu ` a partir d’un ensemble de termes en utilisant les r`egles de L peut ˆetre r´esolu en temps polynomial.
1.3. Contenu de la th`ese
1.3.2.ii
11
Compilation (chapitre 5)
Ce chapitre traite du traitement que font les rˆoles de leurs connaissances, ainsi que de la possibilit´e ou non, pour un protocole, d’ˆetre implant´e (notion d’ex´ecutabilit´e). Nous donnons aussi quelques propri´et´es sur les occurrences des variables dans les r`egles d’envoi/r´eception de messages par les rˆ oles. 1.3.2.iii
Recherche de failles (chapitres 6 et 7)
Dans les deux chapitres suivants, nous pr´esentons des m´ethodes de recherche de failles. Dans le chapitre 6, nous d´ecrivons la recherche de failles par une strat´egie de r´esolution de contraintes. Une preuve ´el´ementaire, se basant sur les r´esultats des probl`emes d’accessibilit´e clos, de la correction, de la compl´etude et de la terminaison est donn´ee. Nous pr´esentons aussi les r´esultats pratiques obtenus au moyen de cette strat´egie avec le prouveur daTac. Dans le chapitre 7, nous nous int´eressons de mani`ere th´eorique au probl`eme de la recherche d’attaques lorsque des op´erateurs alg´ebriques sont impliqu´es. Nous montrons que ce probl`eme est NPTIME-complet lorsque les op´erateurs alg´ebriques pr´esent´es au chapitre 3 sont consid´er´es ind´ependamment les uns des autres. La technique utilis´ee ne nous a pas permis de traiter les cas o` u plusieurs de ces op´erateurs sont consid´er´es simultan´ement. 1.3.2.iv
V´ erification de protocoles (chapitre 8)
Enfin, nous pr´esentons dans le chapitre 8 les r´esultats th´eoriques aussi bien que pratiques obtenus lorsqu’un nombre non-born´e de participants est consid´er´e. Ce chapitre est scind´e en deux parties, la premi`ere reprenant le r´esultat de complexit´e, et la seconde traitant de l’implantation de l’Oracle dans CasRul.
12
Chapitre 1. Analyse de protocoles cryptographiques
Premi` ere partie
Fondements
13
2
Primitives cryptographiques Ce chapitre, tr`es largement inspir´e de [95], d´ecrit des modes de chiffrement et des primitives cryptographiques utilis´es en pratique. Si sa lecture, nous l’esp´erons, permet de mieux d´ecrire les syst`emes ´etudi´es, il n’y a pas ici de contenu technique relatif au reste de ce document.
2.1
Modes de chiffrement
Dans cette section, nous d´ecrivons les possibilit´es, ´etant donn´e un algorithme de chiffrement et un message, de calculer l’image de ce message par cet algorithme.
2.1.1
Chiffrement parfait
Le chiffrement parfait est r´ealisable `a condition supposer que les parties communiquant entre elles connaissent d´ej` a une clef de longueur infinie. Chaque fois qu’une des parties enverra un message de n bits, les n premiers bits de la clef seront utilis´es pour le chiffrement (ou le d´echiffrement, `a la r´eception du message), et seront ensuite jet´es. En pratique, un tel syst`eme est coupl´e `a une m´ethode physique de transfert de la clef secr`ete par morceaux de taille finie. Dans le cadre de ce document, le chiffrement parfait sera plutˆot une hypoth`ese de travail. Nous supposerons que le chiffrement est parfait lorsque nous ne chercherons pas `a exploiter les propri´et´es d’homomorphisme ou de pr´efixe des algorithmes de chiffrement utilis´es en pratique.
Chiffrement parfait : Le chiffrement est dit parfait si : – pour deux messages M et M 0 et deux clefs K et K 0 , le chiffrement de M par K est ´egal au chiffrement de M 0 par K 0 si, et seulement si, M est ´egal `a M 0 et K est ´egale ` a K0 ; – il n’est pas possible de composer le chiffrement d’un message M par une clef K sans connaˆıtre M et K ; – pour connaˆıtre un message M `a partir du chiffrement de M par une clef K, il est n´ecessaire de connaˆıtre la clef K 0 permettant de d´echiffrer les messages chiffr´es par K ;
2.1.2
Chiffrement par blocs
La plupart des algorithmes de chiffrement commun´ement utilis´es op`erent par blocs. Le message a` chiffrer est scind´e en blocs de taille fix´ee. L’algorithme de chiffrement est appliqu´e une fois pour chaque bloc. 15
16
2.1.2.i
Chapitre 2. Primitives cryptographiques
Chiffrement par blocs sans chaˆınage des blocs
Dans le chiffrement par blocs sans chaˆınage, les blocs ne sont pas reli´es entre eux au cours du chiffrement (voir figure 2.1).
message en clair chiffrement
...
f
f
f
message chiffré
...
Fig. 2.1 – Chiffrement par blocs sans chaˆınage Ce type de chiffrement n’offre pas de garanties sur l’ordre des blocs. Il est de plus possible d’extraire des blocs de diff´erents messages chiffr´es par une mˆeme clef K et de composer un nouveau message chiffr´e par K.
Propri´ et´ e d’homomorphisme : Un message C1 · . . . · Cn est le r´esultat du chiffrement d’un message M1 · . . . · Mn par une clef K si et seulement si Ci est le r´esultat du chiffrement de Mi par cette clef K, pour i ∈ {1, . . . , n}.
Dans la suite de ce document, nous ne consid´ererons la propri´et´e d’homomorphisme que dans le cas d’algorithmes de chiffrement ` a clef sym´etrique. Le but de cette restriction est d’´eviter la redondance, les techniques utilis´ees pour prendre en compte ce cas se g´en´eralisant sans difficult´e au cas du chiffrement asym´etrique. 2.1.2.ii
Chiffrement par blocs avec chaˆınage
Un algorithme de chiffrement est appliqu´e avec chaˆınage si le r´esultat du chiffrement d’un bloc d´epend des blocs pr´ec´edents. Cette relation est exprim´ee par une fonction de chaˆınage qui est g´en´eralement le ou exclusif bit ` a bit (not´e ⊕). Formellement, il existe deux possibilit´es pour r´ealiser un chaˆınage. Notons f (M ) le r´esultat de l’application de l’algorithme de chiffrement pour un bloc M . Le chaˆınage peut se faire soit sur le texte en clair, soit sur le texte cod´e. Dans les deux cas que nous allons consid´erer, il est n´ecessaire d’initialiser le chaˆınage par un bloc arbitraire. Ce bloc, appel´e vecteur d’initialisation, sera la valeur de C0 . Chiffrement par blocs en mode chaˆın´ e (mode CBC). Dans ce mode de chiffrement, le chaˆınage se fait sur les blocs du message en clair. Notons M1 , . . . , Mn les blocs `a chiffrer. Les blocs du message chiffr´e seront C1 , . . . , Cn , avec : Ci = f (Ci−1 ⊕ Mi )) pour i ∈ {1, . . . , n}. Graphiquement, l’op´eration de chiffrement d’un message est repr´esent´ee dans la figure 2.2. Chiffrement ` a r´ etroaction, sur le texte cod´ e. L’un des inconv´enients du chiffrement par blocs en mode chaˆın´e est qu’il est n´ecessaire de disposer d’un bloc entier avant d’´emettre un
2.1. Modes de chiffrement
17
message en clair
...
f
f
f
message chiffré
...
Fig. 2.2 – Chiffrement par blocs en mode chaˆın´e (mode CBC) message. Le chiffrement ` a r´etroaction se fait sur le texte chiffr´e, `a partir d’un bloc initial al´eatoire. Notons M1 , . . . , Mn les blocs ` a chiffrer. Les blocs du message chiffr´e seront C1 , . . . , Cn , avec : Ci = Mi ⊕ f (Ci−1 ) pour i ∈ {1, . . . , n}. Graphiquement, l’op´eration de chiffrement d’un message est repr´esent´ee dans la figure 2.3. Ce chiffrement est utilis´e lorsque la taille des messages `a envoyer est petite. Cela peut ˆetre la transmission s´ecuris´ee d’un caract`ere d’un terminal vers un serveur, par exemple.
message en clair
...
f
f
f
message chiffré
...
Fig. 2.3 – Chiffrement par blocs par r´etroaction (mode CFB)
Propri´ et´ es du mode chaˆın´ e. Un vecteur d’initialisation est utilis´e pour le premier bloc. Si le chaˆınage empˆeche une reconstitution arbitraire d’un message `a partir de blocs, il permet toutefois l’extraction de pr´efixes. En effet, dans les deux modes (chaˆın´e et `a r´etroaction), le pr´efixe d’un message chiffr´e est un message chiffr´e. Dans la suite de ce document, nous prendrons en compte cette propri´et´e de pr´efixe :
18
Chapitre 2. Primitives cryptographiques
1. uniquement sur le chiffrement en bloc chaˆın´e. L’autre mode de chiffrement, ayant des propri´et´es identiques, n’est pas consid´er´e ; 2. uniquement pour le chiffrement sym´etrique. Les techniques utilis´ees permettraient cependant d’´elargir sans difficult´e l’analyse `a tout op´erateur de chiffrement sym´etrique ou asym´etrique ayant la propri´et´e de pr´efixe, c’est-`a-dire : Propri´ et´ e de pr´ efixe : Si C1 · . . . · Cn est un message chiffrant M1 · . . . · Mn par une clef K, alors pour tout i ∈ {1, . . . , n}, le message C1 · . . . · Ci est ´egal au chiffrement du message M1 · . . . · Mi par la mˆeme clef K.
2.2
Op´ erations de chiffrement
2.2.1
Chiffrement par clefs asym´ etriques
2.2.1.i
D´ efinition
Le principe du chiffrement avec clefs asym´etriques a ´et´e pour la premi`ere fois ´enonc´e par W. Diffie et M. Hellman [40] et Merkle [70]. Pour reprendre leur d´efinition, un syst`eme de chiffrement ` a clefs publiques est un couple de familles {EK }K∈K et {DK }K∈K de fonctions : EK : M → M DK : M → M sur un ensemble fini de messages M tel que : 1. pour tout K ∈ K, EK est l’inverse de DK ; 2. pour tout K ∈ K et M ∈ M, les valeurs EK (M ) et DK (M ) sont facilement calculables `a partir de la connaissance de EK , de DK et de M ; 3. pour tout K ∈ K, il est difficile de trouver un calcul facile de DK `a partir de la connaissance de EK ; 4. pour tout K ∈ K, il est facile de calculer les fonctions EK et DK . Un syst`eme de chiffrement ` a clefs publiques ne repose donc pas sur la possibilit´e th´eorique ou non d’un calcul, mais sur le rapport en termes de temps de calcul entre deux op´erations inverses l’une de l’autre. Plusieurs algorithmes ont ´et´e propos´es en ce sens, que nous classons selon le probl`eme difficile ` a r´esoudre. 2.2.1.ii
Probl` eme du sac-` a-dos
L’asym´etrie demand´ee par un syst`eme de chiffrement `a clefs publiques est naturellement pr´esente pour tous les probl`emes dont la complexit´e est non-d´eterministe. La classe des calculs faciles peut ˆetre d´efinie comme ´etant la classe des calculs pouvant ˆetre men´es en temps polynomial en la taille de leur entr´ee (classe PTIME). Avec cette d´efinition, la classe des calculs difficiles recherch´ee est la classe NPTIME des probl`emes dont, intuitivement, il est possible de v´erifier une solution en temps polynomial. Cette approche est sugg´er´ee par W. Diffie et M. Hellman dans leur article fondateur du chiffrement asym´etrique [40], mais ils remarquent aussi que la difficult´e d’un probl`eme est celle de ses instances les plus complexes, alors que le point 3. demande une difficult´e uniforme sur presque toutes les instances. M. Hellman et R. Merkle ont propos´e [71] d’utiliser des instances particuli`eres du probl`eme du sac `a dos. Ce probl`eme peut se r´esumer de la mani`ere suivante. Soient E = {M1 , . . . , Mn } un ensemble de n valeurs enti`eres diff´erentes, et S un nombre. Trouver s’il existe un sous-ensembe F de E tel que : S = Σm∈F m Ce probl`eme est NP-complet, ce qui signifie que tout probl`eme dans NPTIME peut ˆetre ramen´e `a ce probl`eme et que ce probl`eme est lui-mˆeme dans NPTIME. L’int´erˆet est qu’il existe une m´ethode
2.2. Op´erations de chiffrement
19
de construction de l’ensemble E telle que, en connaissant la construction d’une instance E, et ´etant donn´e un nombre S, le probl`eme puisse se r´esoudre en temps polynomial. Cette m´ethode consiste `a construire une instance E 0 pour laquelle le probl`eme est solvable en temps polynomial, et `a choisir une instance E ayant les mˆemes solutions que E 0 . La clef publique est l’ensemble E, et la clef priv´ee est l’ensemble E 0 . Cette m´ethode n’est pas utilis´ee en pratique car il a ´et´e montr´e [96] qu’il est possible, pour une clef publique E construite ` a partir de E 0 , de retrouver E 0 . 2.2.1.iii
Factorisation de grands entiers
L’un des algorithmes de chiffrement asym´etrique les plus populaires est sans conteste celui propos´e par R. Rivest, A. Shamir et L. Adleman [87] (voir aussi [89]). Cet algorithme, appel´e algorithme de chiffrement RSA en r´ef´erence aux auteurs, repose sur le calcul pour un entier n du nombre ϕ(n) de nombres entiers plus petits que n et premiers avec n. Calculer ϕ(n) est tr`es simple si la d´ecomposition de n en facteurs premiers est connue, et il n’y a pas de meilleure m´ethode connue pour effectuer ce calcul. L’asym´etrie r´eside donc ici dans la connaissance ou non de la factorisation de n. Par le petit th´eor`eme de Fermat, le nombre ϕ(n) v´erifie la propri´et´e suivante. Pour tout entier m premier avec n, on a : mϕ(n)+1 ≡ m mod n Au contraire du cas du probl`eme du sac-`a-dos, les clefs publiques et priv´ees sont ici ´equivalentes lors de la construction. Connaissant ϕ(n), on choisit deux entiers e et d tels que : d·e≡1
mod ϕ(n)
Le calcul de d en fonction de e (et r´eciproquement) est tr`es facile d`es que ϕ(n) est connnu. L’un de ces entiers, e par exemple, est choisi comme ´etant la clef publique, l’autre ´etant la clef priv´ee. L’entier n est mis ` a la disposition de tous en mˆeme temps que e. Un message M `a chiffrer est d’abord scind´e en blocs repr´esentant des entiers mi inf´erieurs `a n. Le chiffrement de chaque bloc m est l’entier : c = me mod n Pour d´echiffrer, en utilisant le petit th´eor`eme de Fermat, il suffit de calculer : m = cd
mod n
Il n’existe pas actuellement de r´esultat de complexit´e donnant une borne inf´erieure difficile sur le temps de calcul de la factorisation d’un entier n. Le meilleur algorithme connu permet la 1 factorisation d’un entier n en environ n 3 ´etapes. Autrement dit, pour un nombre premier de 1024 bits, il faut compter sur environ 2341 ´etapes de calcul. 2.2.1.iv
Calcul du logarithme discret
L’algorithme de chiffrement propos´e par T. El Gamal [47] est bas´e sur la difficult´e du calcul du logarithme discret, d´ej` a utilis´ee dans [40]. Le calcul du logarithme discret consiste `a calculer un entier x en fonction de g, g x mod n et n. Le sch´ema est ici plus simple que pour l’algorithme de chiffrement RSA. Deux entiers n et g sont mis `a la disposition de tous, et peuvent ˆetre partag´es par un groupe d’utilisateurs. Chaque utilisateur dans ce groupe choisit un entier x, et pose g x comme ´etant sa clef publique. Cette clef est elle aussi mise `a disposition de tous. L’asym´etrie est donc, dans ce cas, uniquement dans la connaissance ou non de la clef priv´ee x, et dans le fait que cette clef est difficile ` a calculer en fonction de g, g x et n. Un message M ` a chiffrer est d’abord scind´e en blocs repr´esentant des entiers inf´erieurs `a n. Pour chaque bloc, soit m le nombre entier repr´
esent´e. L’´emetteur choisit un entier k al´eatoire, et envoie la paire g k mod n, (g x )k · m mod n . Connaissant x et g k , le receveur peut calculer g xk mod n. Connaissant g xk mod n, (g x )k · m mod n et n, il peut alors calculer m. Notons que les choix de x et k ne sont pas totalement al´eatoires. Pour assurer une bonne s´ecurit´e, il est n´ecessaire que le sous-groupe multiplicatif de ( n )∗ engendr´e par g x (resp. g k ) soit
20
Chapitre 2. Primitives cryptographiques
« grand ». Une possibilit´e, pour assurer cette condition, est de choisir un entier x (resp. k) tel que g x (resp. g k ) soit g´en´erateur de ( n )∗ , c’est-`a-dire x (resp. k) premier avec ϕ(n). De mˆeme que dans le cas du chiffrement RSA, il n’existe pas actuellement de borne inf´erieure difficile connue ` a la complexit´e du calcul du logarithme discret. Pour des clefs de mˆeme longueur, ce second est toutefois consid´er´e comme ´etant plus sˆ ur. Le meilleur algorithme connu permet en 1 effet de trouver le r´esultat en environ n 2 ´etapes. Pour un entier n `a 1024 bits, cel`a signifie que le temps de calcul pour trouver la clef priv´ee en fonction des param`etres publiques sera 2171 (en notation d´ecimale, un 1 suivi d’une cinquantaine de 0) fois plus lent dans le cas du chiffrement El Gamal que dans le cas du chiffrement RSA. 2.2.1.v
Cas du chiffrement commutatif
L’utilisation de clefs publiques n´ecessite en g´en´eral une infrastructure permettant de relier une clef publique ` a son possesseur l´egitime, la personne l’ayant cr´e´ee et connaissant la clef priv´ee. Une autre possibilit´e a ´et´e propos´ee par A. Shamir, et consiste `a supposer que les op´erations de chiffrement sont commutatives. Notons provisoirement {M }K le chiffrement d’un message M par une clef asym´etrique K. La commutativit´ e signifie dans ce cas que pour deux clefs asym´etriques K1 et K2 quelconques, les messages {M }K1 K et {M }K2 K sont ´egaux. 2 1 La premi`ere implantation propos´ee fut une variante du chiffrement RSA dans laquelle n est un nombre premier (et non le produit de deux nombres premiers). Dans cette implantation, les chiffrements par une clef publique K puis par son inverse K −1 s’annulent. Pour cette raison, nous parlerons d’algorithmes de chiffrement de type RSA pour d´esigner les algorithmes de chiffrement asym´etrique commutatifs o` u les clefs s’annulent.
Commutation de clefs : Nous appelons chiffrement de type RSA un algorithme de chiffrement `a clefs asym´etriques tel que, pour tout couple (K1 , K2 ) de clefs, et pour tout message M : ( {M }K1 K = {M }K2 K 2 1 {M }K1 K −1 = M 1
2.2.1.vi
Algorithmes de signature
Les clefs asym´etrique ne sont pas limit´ees au chiffrement de messages. Elles permettent aussi de signer des messages. Dans le cas de l’algorithme de signature de El Gamal, par exemple, la signature se fait ` a travers l’utilisation du th´eor`eme de Bezout. Le m´ecanisme de signature est dans ce cas diff´erent du m´ecanisme de chiffrement. Au contraire, la signature par des clefs RSA se d´eroule exactement de la mˆeme mani`ere que le chiffrement, la clef priv´ee de l’´emetteur ´etant utilis´ee dans l’exposant `a la place de la clef publique du r´ecipiendaire. Afin de simplifier les notations, nous nous placerons dans le cas d’un mˆeme algorithme pour le chiffrement et la signature.
Signature : Nous utilisons les mˆemes op´erateurs pour d´ecrire les op´erations de signature et de chiffrement. La diff´erence entre ces deux op´erations r´eside dans l’utilisation de la clef priv´ee dans le premier cas, et de la clef publique dans le second.
2.2.2
Chiffrement par clefs sym´ etriques
2.2.2.i
Utilisation
Le chiffrement par clefs sym´etriques a ´et´e historiquement le premier utilis´e. Son principal d´efaut est que les parties communiquant entre elles doivent partager un secret, la clef, avant que les communications ne commencent. Le chiffrement sym´etrique est pr´ef´er´e au chiffrement asym´etrique
2.2. Op´erations de chiffrement
21
d`es que les deux parties partagent un secret, la clef. Il est en effet beaucoup plus rapide que le chiffrement asym´etrique, et certains algorithmes tels que DES peuvent mˆeme faire l’objet d’une implantation sur circuits imprim´es. 2.2.2.ii
Un exemple, l’algorithme DES
L’algorithme DES est une version r´evis´ee par la NSA3 d’un algorithme initialement propos´e par les chercheurs d’IBM. Cet algorithme de chiffrement a ´et´e ´etudi´e pendant deux d´ecennies sans ´ qu’une faille s´erieuse n’ait ´et´e d´ecouverte. Etonnamment, il ´etait mˆeme r´esistant `a des techniques d’analyses apparues une dizaine d’ann´ees apr`es sa conception. Il est cependant aujourd’hui remplac´e par AES, qui entre autres a l’avantage de permettre l’utilisation de clefs de tailles variables. DES est un algorithme de chiffrement par blocs. La taille utile des clefs est fix´ee et est de 56 bits. L’algorithme de chiffrement repose sur un enchaˆınement de permutations expensives, d’application de fonctions et de ou exclusif bit ` a bit entre des parties de la clef et des parties de messages. Cet enchaˆınement a ´et´e ´etudi´e pour que l’ensemble des clefs ne forme pas un groupe, que le chiffrement par diff´erentes clefs ne soit pas commutatif et pour qu’il n’y ait pas de meilleur algorithme, pour trouver une clef, que d’essayer toutes les clefs possibles. 2.2.2.iii
Le protocole de W. Diffie et M. Hellman pour une construction distribu´ ee de clefs sym´ etriques
Dans le cas de personnes communiquant entre elles `a travers un r´eseau, il se peut que les acteurs communiquant n’aient pas confiance les uns en les autres pour garder un secret. Dans leur article fondateur [40], W. Diffie et M. Hellman proposent une m´ethode reposant sur la difficult´e du calcul du logarithme discret pour que chaque partie contribue au calcul de la clef. Soient deux rˆ oles A et B, qui se sont entendus sur un entier n et une base g. Le rˆole A choisit ` la r´eception du message, B choisit une clef un entier x, sa clef priv´ee, et envoie g x mod n `a B. A y ` priv´ee y, et renvoie g mod n. A la fin de cet ´echange, A et B peuvent calculer g x·y mod n, mais des t´emoins de l’´echange ne le peuvent pas, sauf `a calculer x `a partir de g x mod n, g et n (ou y `a partir de g y mod n, g et n). ` la diff´erence de l’algorithme de chiffrement asym´etrique propos´e par T. El Gamal o` A u les propri´et´es de l’exponentielle discr`ete peuvent ˆetre abstraites via l’utilisation de clefs publiques et priv´ees, ce protocole n´ecessite la mod´elisation des propri´et´es de l’exponentielle pour exprimer qu’`a la fin de l’´echange A et B connaissent la clef (g x )y mod n. C. Meadows et P. Narendran ont montr´e [76], que prendre en compte toutes les propri´et´es de l’exponentielle rend le probl`eme de l’unification ind´ecidable. Pour cette raison, nous nous limitons aux propri´et´es suivantes, suffisantes pour exprimer l’´egalit´e finale dans le protocole de W. Diffie et M. Hellman. Exponentielle discr` ete : nous mod´elisons les propri´et´es suivantes de l’exponentielle modulaire, pour tous les messages g, x et y consid´er´es comme des entiers : (g x )y −1 (g x )x
≡ ≡
(g y )x g
mod n mod n
Dans la suite de ce document, l’op´erateur −1 d´enotera la clef priv´ee associ´ee `a une clef publique. Afin d’´eviter toute confusion, nous noterons l’inverse de x en notation additive, c’est-`a-dire −x.
2.2.3
Un chiffrement asym´ etrique faible : le ou exclusif bit ` a bit
Que ce soit pour des raisons de rapidit´e ou pour utiliser directement ses propri´et´es alg´ebriques, le ou exclusif bit ` a bit est parfois utilis´e pour r´ealiser un chiffrement sym´etrique associatif et commutatif. Pour chiffrer un message M par une clef K, on met en correspondance les bits mi de 3 National Security Agency, une agence f´ ´ ed´ erale des Etats-Unis dont le rˆ ole est de rassembler des renseignements a travers l’´ ` ecoute de communications dans le monde.
22
Chapitre 2. Primitives cryptographiques
M et ki de K. Le i-`eme bit ci du message chiffr´e C sera ´egal `a 1 si mi et ki sont diff´erents, et `a 0 sinon. Nous notons : C =M ⊕K On v´erifie facilement que l’op´eration ⊕ est bien associative et commutative, et que :
M ⊕0 M ⊕M
= M = 0
La premi`ere ´equation correspond ` a l’existence d’un ´el´ement neutre pour l’op´erateur ⊕, et la seconde `a la nilpotence de l’op´erateur ⊕.
2.3
Fonctions ` a adressage dispers´ e
Une fonction ` a adressage dispers´e (fonction de hachage, dans [95]), est une fonction h dont l’application sur un message M poss`ede les deux propri´et´es suivantes : – connaissant M et h, il est tr`es facile de calculer h(M ) ; – ´etant donn´e M , il est tr`es difficile de trouver un message M 0 6= M tel que h(M ) = h(M 0 ). Notons que la seconde propri´et´e implique qu’il est tr`es difficile de calculer M connaissant h(M ) et h. Les fonctions `a adressage dispers´e permettent de pouvoir « prouver » qu’un message M est connu sans avoir ` a l’envoyer. Il est possible de les comparer `a des t´emoins qui assurent du contenu d’une transaction ou d’une connaissance, mais ne r´ev`elent pas cette transaction ou cette connaissance. Ces fonctions peuvent ˆetre bijectives, mais leur image est le plus souvent un message de longueur fixe. Nous parlons alors d’empreintes ` a N bits.
2.3.1
R´ esistance ` a la collision
Pour servir de t´emoins fiables, il est n´ecessaire qu’il n’y ait pas deux messages « proches » de mˆeme image. Si ce n’est pas le cas, il est possible de monter une attaque d’anniversaire. 2.3.1.i
Attaques d’anniversaire
On se place dans le cas d’un ensemble fini `a n ´el´ements, et on tire k ´el´ements parmi les n au hasard et avec remise. Nous notons ωk,n l’´ev´enement : Les k ´el´ements tir´es sont distincts. Si on suppose que chaque ´el´ement est choisi avec la mˆeme probabilit´e, alors un calcul facile montre que la probabilit´e de ωk+1,n , not´ee pk+1,n , est : pk+1,n =
n! (n − k)! · nk
Pour k de l’ordre de grandeur de la racine carr´ee de n et n grand, cette probabilit´e est nonn´egligeable (proche de 1e ). L’attaque d’anniversaire consiste `a choisir des messages au hasard, `a en calculer l’empreinte par toutes les clefs possibles, et ` a s’arrˆeter lorsque deux messsages distincts ont la mˆeme empreinte. Si les messages chiffr´es sont longs de n bits, on peut esp´erer trouver deux messages de mˆeme empreinte n au bout de 2 2 essais. Le nom de cette attaque tient son origine de l’utilisation qui peut en ˆetre faite dans une salle d’une vingtaine de personne : il y a environ une chance sur deux que deux personnes aient la mˆeme date anniversaire.
2.3. Fonctions ` a adressage dispers´e
2.3.1.ii
23
Exemple
L’exemple suivant est tir´e de [95]. Supposons que deux personnes, Alice et Bob, d´esirent signer un contrat. Alice peut monter une attaque d’anniversaire pour duper Bob de la mani`ere suivante. 1. Alice commence par pr´eparer deux versions du contrat, une en sa faveur, et l’autre favorable `a Bob ; 2. ensuite, elle apporte des modifications aux deux contrats, dans le but d’obtenir deux versions diff´erentes ayant la mˆeme empreinte. Si les rˆ oles d’Alice et Bob sont sym´etriques, le contrat sera probablement nul, car chacun poss´edera un t´emoin de sa version. Mais si Alice est une notaire et garde seule le t´emoin, Bob n’a plus aucun moyen de prouver que sa version du contrat est celle qu’il a accept´e de signer. L’utilisation de fonctions ` a adressage dispers´e rend in´evitables les attaques d’anniversaire. La bonne nouvelle est que pour avoir une bonne chance de trouver deux contrats de mˆeme image, et si le t´emoin est de longueur n, l’esp´erance du nombre de modifications qu’Alice doit essayer est de n a l’heure actuelle que choisir des t´emoins de longueur sup´erieure ou l’ordre de 2 2 . On consid`ere ` ´egale `a 128 bits est suffisant pour ´eviter de telles attaques en pratique.
2.3.2
Exemples de fonctions ` a adressage dispers´ e
Deux fonctions ` a adressage dispers´e sont r´eguli`erement utilis´ees, les fonctions MD5 et SHA. MD5. La fonction MD5 est une version s´ecuris´ee d’une version pr´ec´edente, MD4. Elle produit des empreintes de 128 bits de long pour des messages de taille quelconque. Le principe adopt´e est de commencer par scinder le message en blocs de 512 bits, de traiter chaque bloc en fonction du r´esultat sur le bloc pr´ec´edent. La longueur totale du message est cod´ee dans le dernier bloc, ce qui empˆeche a priori toute relation entre la valeur pour un message M et un pr´efixe de M . Une ´etape pr´eliminaire de l’algorithme MD5 est l’´etape de compression. Une constante de 128 bits de long est concat´en´ee ` a un bloc de 512 bits, et le message de 640 bits est r´eduit `a un message de longueur 128 bits. La fonction permettant de passer des messages de 640 bits `a ceux de 128 est appel´ee fonction de compression. Une attaque a ´et´e mont´ee [14] permettant de trouver des collisions sur cette fonction. Cette attaque ne permet cependant pas de cr´eer des collisions au niveau des empreintes ` a cause de la constante de 128 bits concat´en´ee. Bien qu’aucune attaque r´eelle n’ait ´et´e trouv´ee, cette faiblesse conduit [95] ` a conseiller de lui pr´ef´erer l’algorithme SHA. SHA. Il s’agit d’une autre ´evolution de l’algorithme MD5. Les empreintes produites sont longues de 160 bits, et cette fonction ` a adressage dispers´e semble plus sˆ ure que MD5. Aucune faiblesse n’a ´et´e trouv´ee jusqu’ici. On peut donc provisoirement consid´erer que cet algorithme est une fonction `a adressage dispers´e parfaite.
24
Chapitre 2. Primitives cryptographiques
3
Termes, classes d’´ equivalence et repr´ esentations 3.1
Introduction
Dans ce chapitre, nous donnons un cadre formel pour l’´etude des messages. Apr`es avoir rappel´e des notions de base sur les ensembles et les multi-ensembles dans le reste de cette introduction, nous allons traiter le probl`eme des ´egalit´es entre messages. Dans le cadre classique d’´etude de protocoles cryptographiques, le chiffrement est suppos´e parfait, et des op´erations telles que le ou exclusif bit ` a bit ne sont pas consid´er´ees. Ces hypoth`eses permettent de traiter les messages ´echang´es comme des termes sur une signature comprenant les constantes et les op´erations de chiffrement, concat´enation,. . . Cette repr´esentation des messages sera d´efinie `a la section 3.3.3. Nous nommons ces termes des termes op´erations pour souligner qu’ils repr´esentent la suite des op´erations aboutissant ` a un message. Pour prendre en compte les ´egalit´es possibles entre messages construits diff´eremment, deux possibilit´es s’offrent ` a nous. La premi`ere, utilis´ee classiquement en d´eduction automatique, est d’utiliser des r`egles de d´eduction modulo la th´eorie d´ecrivant les ´egalit´es possibles. Ce raisonnement modulo peut ˆetre fait soit de mani`ere syntaxique, en ajoutant des r`egles de d´eduction pour mod´eliser les ´egalit´es, soit de mani`ere s´emantique, en testant l’´egalit´e modulo lors de l’application d’une r`egle de d´eduction. L’inconv´enient de cette solution est qu’elle se prˆete mal `a l’analyse de complexit´e, et qu’il est difficile de raisonner sur les suites de d´eductions. Cela nous am`ene `a la deuxi`eme possibilit´e, qui est de consid´erer des repr´esentants des classes d’´equivalences des termes op´erations. Afin de simplifier l’´ecriture, pour les constructeurs associatifs et commutatifs, nous utiliserons des ensembles ou des multi-ensembles dans l’´ecriture de ces termes. Afin de bien les diff´erencier des termes op´erations, nous les nommons termes valeurs. Ils sont d´efinis dans la section 3.3.5. Une fonction de normalisation est d´efinie sur ces termes valeurs (section 3.4), et nous montrons que les termes valeurs en forme normale repr´esentent de mani`ere unique les classes d’´equivalence sur les termes op´erations. Dans la suite de ce document, nous utiliserons toujours des r`egles de d´eduction sur des termes valeurs en forme normale, qui seront plus simplement appel´es termes. Enfin, nous donnons dans la section 3.5 une repr´esentation possible des termes valeurs, et donnons la complexit´e d’op´erations usuelles sur les termes (´egalit´e, sous-terme,...) Cette section sera utilis´ee implicitement dans le reste de ce document pour donner la complexit´e de probl`emes de d´ecisions li´es ` a l’´etude de protocoles cryptographiques.
25
26
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
3.2
Multi-ensembles et multi-ensembles g´ en´ eralis´ es
Pour la suite de cette section, on se donne un ensemble T . L’ensemble des parties de T est not´e P(T ). L’ensemble des parties finies de T est not´e Pfini (T ). Nous supposons que les op´erations d’union (∪), d’intersection (∩), de compl´ementaire (T \ E) sont connues du lecteur. Il en va de mˆeme pour les relations d’appartenance (∈) et d’inclusion (⊆). Nous notons E ⊂ T pour E ⊆ T et E 6= T , E 6⊆ T pour dire que E n’est pas un sous-ensemble de T . Nous notons |E| le cardinal de l’ensemble E, et nous ´ecrivons E ⊂fini T pour dire que E ⊂ T et |E| < ∞.
3.2.1
Support d’une fonction
Soit A = {α : T → T 0 } l’ensemble des fonctions de T vers T 0 , et × une loi sur A telle que (A, ×, e) soit un mono¨ıde d’´el´ement neutre e ∈ A. Le support d’une fonction α ∈ A, not´e (α), est le sous-ensemble de T suivant : (α) = {t ∈ T | α(t) 6= e(t)} Dans ce document, nous consid´ererons deux cas d’ensembles de fonctions : 1. les fonctions de termes vers des termes, avec la loi de composition de fonctions et comme ´el´ement neutre l’identit´e ; 2. les fonctions vers , , etc., avec comme loi l’addition de fonctions, et comme ´el´ement neutre la fonction d’image partout ´egale ` a 0. D´ efinition 1 (Support d’une fonction ` a valeur dans ou ) Soit α : T → T 0 une fonction, avec T 0 ∈ { , }. Le support de α, not´e
(α), est d´efini par :
(α) = { t ∈ T | α(t) 6= 0} D´ efinition 2 (Support d’une fonction ` a image dans un ensemble de termes) Soit α : T → T 0 une fonction, avec T ⊆ T 0 un ensemble de termes. Le support de α, not´e est d´efini par : (α) = { t ∈ T | α(t) 6= t}
(α),
Dans la suite, pour deux ensembles A et B, nous notons B A l’ensemble des fonctions de A vers B, et BA l’ensemble des fonctions de A vers B dont le support est dans Pfini (A).
3.2.2
Op´ erations sur les ensembles
Soient E et F deux sous-ensembles de T . D´ efinition 3 La diff´erence sym´etrique de deux ensembles E et F , not´ee E∆F , est l’ensemble d´efini par : E∆F = (E ∪ F ) \ (E ∩ F ) Proposition 1 Il existe un isomorphisme de groupe ψ entre (Pfini (T ), ∆, ∅) et (( /2 )T , +, 0). Preuve. Soit E ∈ Pfini (T ). La fonction indicatrice de E est la fonction 1E : T → {0, 1} d´efinie par : 1 si t ∈ E 1E (t) = 0 sinon Par d´efinition, on a (1E ) = E et E ∈ Pfini (T ), donc 1E ∈ /2 T . Soit ψ : Pfini (T ) → ( /2 )T qui associe ` a E la fonction 1E . Il est imm´ediat que ψ est un isomorphisme de groupe de (Pfini (T ), ∆, ∅) vers (( /2 )T , +, 0).
3.3. Termes
3.2.3
27
Multi-ensembles
D´ efinition 4 (Multi-ensemble) Un multi-ensemble M sur T est une fonction de T vers . Le support de M, not´e l’ensemble : (M) = { t ∈ T | M(t) > 0}
(M), est
Un multi-ensemble est fini si son support est de cardinal fini. D´ efinition 5 (Op´erations sur les multi-ensembles) Si M et N sont deux multi-ensembles, on d´efinit : – l’addition de M et N : ∀t ∈ T, (M + N )(t) = M(t) + N (t) – la soustraction de N ` aM: ∀t ∈ T, (M − N )(t) =
M(t) − N (t) si M(t) ≥ N (t) 0 sinon
Nous utilisons les multi-ensembles pour mod´eliser le chiffrement de type RSA. La soustraction de multi-ensembles sera d´efinie dans ce cadre sera d´efinie en fonction de l’op´erateur −1 .
3.2.4
Multi-ensembles g´ en´ eralis´ es
D´ efinition 6 (Multi-ensemble g´en´eralis´e) Un multi-ensemble g´en´eralis´e M sur T est une fonction de T vers (M), est l’ensemble : (M) = { t ∈ T | M(t) 6= 0}
. Le support de M, not´e
Un multi-ensemble g´en´eralis´e est fini si son support est de cardinal fini. D´ efinition 7 (Op´erations sur les multi-ensembles g´en´eralis´es) Si M et N sont deux multi-ensembles g´en´eralis´es, on d´efinit : – l’addition de M et N : ∀t ∈ T, (M + N )(t) = M(t) + N (t) – la soustraction de N ` aM: ∀t ∈ T, (M − N )(t) = M(t) − N (t) Les multi-ensembles g´en´eralis´es seront utilis´es pour mod´eliser les exposants d’une exponentielle.
3.3
Termes
3.3.1
Introduction
3.3.1.i
Les messages comme suite d’op´ erations
Le but de cette section est de parvenir `a d´ecrire les messages ´echang´es durant l’ex´ecution d’un protocole cryptographique. Ces messages sont construits `a partir de valeurs de base (une adresse, un nom, une date,...) en utilisant les op´erations (concat´enation, chiffrement,...) d´ecrites au chapitre 2, section 2.2. La possibilit´e la plus simple, pour repr´esenter ces messages, serait de les d´efinir par la suite d’op´erations aboutissant ` a leur cr´eation. Par exemple, un message construit en faisant le ou exclusif bit ` a bit de deux sous-messages a et b, puis en faisant un ou exclusif bit ` a bit du r´esultat avec un sous message c, pourrait ˆetre d´ecrit par l’expression : ⊕(⊕(a, b), c)
28
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
En nommant signature F l’ensemble des op´erations autoris´ees et des messages ´el´ementaires, cette repr´esentation est un terme sur F au sens d´efini dans la sous-section 3.3.2. La d´efinition 9 est cependant trop g´en´erale. En utilisant le symbole −1 pour repr´esenter la clef priv´ee associ´ee `a −1 une clef publique, elle autorise des messages de la forme t−1 , qui pourraient ˆetre compris comme « la clef priv´ee associ´ee ` a la clef priv´ee associ´ee `a la clef publique t ». Ce cas est explicitement exclu dans la d´efinition des termes op´erations, c’est-`a-dire de la repr´esentation de messages par des termes d´ecrivant la suite d’op´erations permettant de les construire. Les termes op´erations sur une signature F sont donc les termes de cette signature repr´esentant des messages valides. 3.3.1.ii
Les messages comme valeur
La repr´esentation d’un message comme une suite d’op´erations est simple et uniforme, mais ne prend pas en compte directement le fait que deux messages construits diff´eremment peuvent ne pas pouvoir ˆetre distingu´es. Par exemple, par d´efinition de l’op´eration de ou exclusif bit ` a bit, il n’est pas possible de distinguer les messages ⊕(⊕(a, b), c) et ⊕(a, ⊕(b, c)). Outre le fait que certains protocoles sont bas´es sur ce type d’´egalit´e (protocole RSA d’´echange de secret, protocole W. Diffie-M. Hellman de construction de clef,...), il est n´ecessaire, dans le cadre de la recherche de faille, de supposer qu’un individu hostile tentera d’utiliser ces propri´et´es pour acqu´erir un secret ou se faire passer pour un autre. Une mani`ere classique de traiter ce probl`eme est de raisonner modulo une th´eorie ´equationnelle. Une th´eorie ´equationnelle d´efinit des classes d’´equivalence sur des termes, deux termes dans la mˆeme classe ´etant suppos´es ˆetre de mˆeme valeur. Le raisonnement se fait alors non plus sur un terme t, mais sur l’ensemble des termes dans la mˆeme classe que t. La th´eorie ´equationnelle consid´er´ee dans ce travail est d´efinie dans la sous-section 3.3.4. Dans cette th´eorie, les classes sont de cardinal infini, donc il n’est pas question de consid´erer explicitement tous les termes op´erations ´equivalents. Raisonner sur les termes op´erations impose donc de pr´evoir un m´ecanisme pour prendre en compte toutes les d´eductions possibles sur les membres d’une classe. L’approche choisie, dans le cadre de cette th`ese, est de consid´erer un repr´esentant d’une classe de terme. Afin de simplifier l’´ecriture, nous autoriserons les arguments d’un tel repr´esentant `a ne plus ˆetre uniquement des termes, mais ` a pouvoir ˆetre des ensembles ou des multi-ensembles de termes. Ces termes, d´efinis en 3.3.5, repr´esentent une classe modulo une th´eorie ´equationnelle, et sont appel´es des termes valeurs. Nous d´efinissons sur ces termes valeurs une fonction de normalisation permettant d’assurer l’unicit´e d’un repr´esentant d’une classe de termes op´erations.
3.3.2
G´ en´ eralit´ es
3.3.2.i
Signature et termes standards
Rappelons la d´efinition d’un signature. D´ efinition 8 (Signature) Une signature est un couple (A, α) avec A un ensemble de symboles, et α : A → ∪ {∗} une fonction d’arit´e. Un symbole a ∈ A est une constante si α(a) = 0. Un symbole a est d’arit´e variable si α(a) = ∗. Si a est un symbole d’arit´e non nulle, on note aussi : a( , . . . , ) | {z } α(a) fois o` u α(a) n’est pas pr´ecis´e pour les symboles d’arit´e variable. Cette notation permet d’´ecrire de mani`ere concise une signature comme un ensemble de symboles. Par exemple, l’ensemble {a( , ), b} d´esigne la signature ({a, b} , {a 7→ 2, b 7→ 0}). Les signatures sont not´ees par le symbole F accompagn´e des d´ecorations habituelles. D´ efinition 9 ( Termes standards sur une signature) Soit F = (A, α) une signature. L’ensemble T (F) des termes standards sur la signature F est le plus petit ensemble contenant {a ∈ A | α(a) = 0} et tel que
3.3. Termes
29
Si t1 , . . . , tn ∈ T (F) et si α(a) = n ou α(n) = ∗, alors a(t1 , . . . , tn ) appartient a T (F). ` L’ensemble T (F) des termes standards sur une signature F est aussi appel´e Univers de Herbrand de cette signature. Cet ensemble contient cependant des termes ne repr´esentant pas de messages. Aussi, apr`es avoir d´efini la notion de sous-terme (en 3.3.2.ii), nous d´efinirons la signature 0 Fproto contenant les symboles d’arit´e non nulle utilis´es pour construire les messages, et le sousensemble T0 ( 0Fproto ) de T ( 0Fproto ) contenant les termes repr´esentant les messages d’apr`es leur construction. 3.3.2.ii
Sous-terme d’un terme
D´ efinition 10 (Ensemble des sous-termes) Soit F une signature, et t ∈ T (F). L’ensemble des sous-termes de t, not´e t = f (t1 , . . . , tn ) par : n [ (t) = {t} ∪ (ti )
(t), est d´efini pour
i=1
Un sous-terme de t est un ´el´ement de (t). Si n = 0, t est une constante, et Sinon, par exemple, l’ensemble des sous-termes de f (a, f (a, b)) est :
(t) = {t}.
(f (a, f (a, b))) = {f (a, f (a, b)), a, f (a, b), b} 3.3.2.iii
Position dans un terme
Pour exprimer plus efficacement les sous-termes et les substitutions, nous d´efinissons une notion de position dans un terme. Un terme peut ˆetre repr´esent´e graphiquement par un arbre. Une position indique un nœud d’un tel arbre. Elle est d´efinie par une suite (´eventuellement vide) d’entiers naturels i1 · . . . · in o` u, partant de la racine du terme (`a la position , la suite vide) chaque ij repr´esente la branche ` a emprunter pour passer du j-`eme sommet au j + 1-`eme sommet. Soit p une position ; nous notons t|p le sous-terme de t en position p. Plus pr´ecis´ement, t| = t et f (t1 , . . . , tn )|i·p = ti|p . Soient u et t deux termes. Nous notons Pos(u, t) l’ensemble des positions p de t telles que t|p = u. Enfin, si a est un sous-terme de t, nous notons t = t0 [a]. Un terme t est un f -terme si le symbole `a la racine de t est f . C’est un f -terme pur si, pour chaque position p dans t, t|p est soit un f -terme, soit une constante. Nous dirons que wf [t1 , . . . , tn ] est une f -partition de t si : a) wf [a, . . . , a] est un f -terme pur, avec a constante ; b) pour tout i ∈ {1, . . . , n}, ti n’est pas un f -terme. 3.3.2.iv
Remplacement, variable et substitution
Soient a et b deux termes. Nous notons [a ← b] la fonction de remplacement de a par b, et son application ` a un terme t est not´ee t[a ← b]. Si a est sous-terme de t, t[a ← b] est le terme dans lequel toutes les occurrences du terme a ont ´et´e remplac´ees par le terme b. Nous notons X un sous-ensemble des constantes appel´e ensemble des variables. Une substitution est d´efinie par la composition des remplacements [a1 ← b1 ], . . . , [an ← bn ] sous les conditions : ∀i ∈ {1, . . . , n} , ai ∈ X ∀i, j ∈ {1, . . . , n} , ai = bi ∨ ai ∈ /
(bj )
(3.1) (3.2)
La premi`ere condition indique qu’une substitution est une fonction des variables X vers les termes, ´egale ` a l’identit´e sur X \ {a1 , . . . , an }. La seconde condition implique : a) si σ est une substitution et t un terme, alors (tσ)σ = tσ ; b) l’ordre d’application des remplacements [ai ← bi ] n’affecte pas la valeur du r´esultat. Le support d’une substitution σ est l’ensemble {x ∈ X | xσ 6= x}. Une substitution σ = ([ai ← bi ])i∈{1,...,n} est close si (∪ni=1 (bi )) ∩ X = ∅.
30
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
3.3.3
Termes op´ erations, 0 Fproto et T0 (0 Fproto )
3.3.3.i
Signature 0 Fproto d´ ecrivant les op´ erations permises
0
Dans le cadre de l’´etude des protocoles cryptographiques, nous consid´erons une signature Fproto dont l’ensemble des symboles d’arit´e non nulle est : s
0
s,ebc
s,cbc
p
{ 0h , i, 0{ } , 0 { , . . . , } , 0{ ,..., } , 0{ } , p,rsa 0 + − 0 0 0 {} , H( , ), Exp ( , ), Exp ( , ), ⊕ ( , ), −1 }
Ces diff´erents symboles correspondent aux op´erations suivantes : 0 h , i : concat´enation de deux messages ; s 0 { } : cr´eation d’un nouveau message par un algorithme de chiffrement sym´etrique parfait `a partir du premier argument par la clef donn´ee en deuxi`eme argument ; s,ebc 0 {} : idem, en supposant cette fois que le chiffrement est fait par bloc (voir chapitre 2, paragraphe 2.1.2.i pour plus de d´etail). Nous supposons qu’il y a toujours au moins n ≥ 2 arguments. Le dernier est la clef utilis´ee pour le chiffrement, et les n−1 premiers correspondent aux blocs ; s,cbc 0 {} : idem, en supposant cette fois que le chiffrement est fait par bloc en mode chaˆın´e (voir chapitre 2, paragraphe 2.1.2.ii pour plus de d´etail) ; p 0 { } : cr´eation d’un nouveau message par un algorithme de chiffrement asym´etrique parfait `a partir du premier argument par la clef donn´ee en deuxi`eme argument ; p,rsa 0 {} : idem, en supposant cette fois que le chiffrement est de type RSA (voir chapitre 2, paragraphe 2.2.1.v pour plus de d´etail) ; −1 : clef priv´ee associ´ee ` a la clef publique donn´ee en premier argument ; 0 H( , ) : cr´eation d’un nouveau message comme valeur par la fonction d’adressage dispers´e donn´ee en premier argument du message donn´e en second argument. La fonction est a priori un terme quelconque ; 0 Exp+ ( , ), 0Exp− ( , ) : cr´eation d’un nouveau message en calculant, apr`es interpr´etation en tant qu’entier, le premier argument `a la puissance le deuxi`eme pour 0Exp+ ( , ), ou le premier argument ` a la puissance de l’inverse du deuxi`eme pour 0Exp− ( , ) (voir le chapitre 2, paragraphe 2.2.2.iii pour plus de d´etails). Si le contexte ne justifie pas de faire la distinction entre 0Exp− ( , ) et 0Exp+ ( , ), nous noterons l’op´erateur simplement 0Exp( , ) ; 0 ⊕ ( , ) : cr´eation d’un nouveau message en calculant le ou exclusif bit ` a bit des deux messages donn´es en argument. L’exposant 0 permet de diff´erencier un symbole de 0Fproto , utilis´e pour construire des termes op´erations, du symbole correspondant de Fproto , utilis´e pour construire des termes valeurs. La distinction s’impose car les symboles n’ont pas la mˆeme arit´e. 3.3.3.ii
Termes op´ erations
Nous d´efinissons dans cette partie un ensemble T0 ( 0Fproto ) de termes op´erations qui mod´elise tous les messages pouvant ˆetre obtenus en un nombre fini d’op´erations `a partir d’un certain nombre de messages de base, les constantes. D´ efinition 11 (Terme op´eration) Soit S ⊆ 0Fproto . L’ensemble des termes op´erations sur S, not´e T0 (S), est l’ensemble : n o −1 t ∈ T (S) | ∀u, v ∈ (t), u 6= v −1
3.3.4
Th´ eorie ´ equationnelle sur les messages
Parmi les op´erations permettant de construire des messages, quatre permettent d’obtenir des messages de mˆeme valeur ` a partir de suites d’op´erations diff´erentes. Ce sont la concat´enation, le ou exclusif, l’exponentiation et le chiffrement de type RSA. Dans le cadre de cette th`ese, nous ne prenons pas en compte les propri´et´es de la concat´enation, car celles-ci soul`event de nombreux et difficiles probl`emes th´eoriques. Nous consid´erons donc, sur les termes op´erations, une th´eorie ´equationnelle Θproto form´ee de l’union des th´eories pour le ou exclusif (Θxor ), l’exponentielle (Θexp )
3.3. Termes
31
et le chiffrement de type RSA (ΘRSA ). Ces th´eories sont d´efinies par des relations d’´equivalences entre termes op´erations, not´ees ≡Θproto (resp. ≡Θxor , ≡Θexp et ≡ΘRSA ). Remarque : un op´erateur associatif aurait forc´e `a r´esoudre des ´equations sur des mots lors de la recherche d’attaques sur un protocole. Ces ´equations ont en g´en´eral un nombre infini de solutions plus g´en´erales, et s’il est conjectur´e que trouver la solution la plus courte d’une ´equation de mots est dans NPTIME par W. Plandowski et W. Rytter [86], et montr´e que le probl`eme de la satisfaisabilit´e est dans PSPACE par Plandowski [85], l’algorithme propos´e ne semble pas raisonnable `a utiliser. Pour une ´equation a = b, il consiste essentiellement ` a deviner une repr´esentation compress´ee z (resp. z 0 ) d’une instance de a (resp. de b), et ` a chercher si z et z 0 repr´esentent le mˆeme mot. 3.3.4.i
Th´ eorie du ou exclusif bit ` a bit
Le r´esultat d’applications successives du ou exclusif bit ` a bit (ou xor ) ne d´epend ni de l’ordre d’application, ni de la d´ecomposition en applications deux `a deux. La premi`ere propri´et´e est traduite en disant que c’est un op´erateur commutatif, et la seconde en disant que c’est un op´erateur associatif. Formellement, pour tous les termes op´erations a, b et c : 0
⊕ (a, b) =Θxor 0 0 ⊕ (a, ⊕ (b, c)) =Θxor
0 0
⊕ (b, a) ⊕ ( 0 ⊕ (a, b), c)
(3.3) (3.4)
De plus, il existe une constante 0 telle que, pour tous les termes op´erations a, on a : 0 0
⊕ (a, a) =Θxor ⊕ (a, 0) =Θxor
0 a
(3.5) (3.6)
Pour deux termes op´erations a et b, on note a ↔Θxor b s’il existe un sous-terme a1 de a et b1 de b tels que : – a1 =Θxor b1 ; – a = t[a1 ] et b = t[b1 ]. Il est ´evident que ↔Θxor est une relation r´eflexive et sym´etrique. 3.3.4.ii
Th´ eorie du chiffrement de type RSA
Rappelons (voir chapitre 2, paragraphe 2.2.1.v) que dans le chiffrement de type RSA : – le chiffrement est commutatif ; – chiffrer par une clef puis par la clef inverse revient `a ne pas chiffrer. Les ´equations de cette th´eorie, pour tous les termes op´erations a, b et c, sont : p,rsa p,rsa c p,rsa p,rsa 0 0 {a}b b−1 0
0
{a}b
=ΘRSA
0
=ΘRSA
a
0
p,rsa p,rsa b
{a}c
(3.7) (3.8)
Pour deux termes op´erations a et b, nous notons a ↔ΘRSA b s’il existe un sous-terme a1 de a et b1 de b tels que : – a1 =ΘRSA b1 ; – on a a = t[a1 ] et b = t[b1 ]. Il est ´evident que ↔ΘRSA est une relation r´eflexive et sym´etrique. 3.3.4.iii
Th´ eorie de l’exponentiation
Les propri´et´es de l’exponentiation sont bien connues, mais il n’est pas possible de toutes les consid´erer. En effet, dans une th´eorie compl`ete de l’exponentielle, le probl`eme de la recherche d’attaques sur un protocole, mˆeme avec un nombre fini de participants, deviendrait ind´ecidable. Les sous-th´eories permettant de pouvoir d´ecider l’´egalit´e entre deux termes sont d´ecrites dans [76]. Dans le cadre de cette th`ese, nous consid´erons uniquement les propri´et´es suivantes :
32
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
– l’exponentiation est commutative ; – l’exponentiation par un terme puis par son inverse revient `a ne pas exponentier. Les ´equations de cette th´eorie, pour tous les termes op´erations a, b et c, sont :
0 0
Exp( 0 Exp(a, b), c) =Θexp − 0
+
Exp ( Exp (a, b), b)
=Θexp
0
Exp( 0 Exp(a, c), b)
(3.9)
a
(3.10)
Les op´erateurs 0Exp− ( , ) et 0Exp+ ( , ) ne sont pas distingu´es dans la premi`ere ´equation. Pour deux termes op´erations a et b, nous notons a ↔Θexp b s’il existe un sous-terme a1 de a et b1 de b tels que : – a1 =Θexp b1 ; – en rempla¸cant a1 par b1 dans a, on obtient b. Il est ´evident que ↔Θexp est une relation r´eflexive et sym´etrique. 3.3.4.iv
Relation d’´ equivalence sur les termes
Nous notons ↔proto =(↔Θxor ∪ ↔ΘRSA ∪ ↔Θexp ) la relation entre termes op´erations telle que pour tous les termes a et b, on a a ↔proto b si, et seulement si, on a a ↔Θxor b ou a ↔ΘRSA b ou a ↔Θexp b. Enfin, nous notons ≡Θproto (resp. ≡Θxor , ≡ΘRSA , ≡Θexp ) la clˆoture transitive de ↔proto (resp. ↔Θxor , ↔ΘRSA , ↔Θexp ).
3.3.5
Ensemble des termes valeurs, Fproto et T(Fproto )
En section 3.3.3, nous avons d´efini une repr´esentation des messages associant `a chaque message son algorithme de construction sous la forme d’un terme op´eration. Cette repr´esentation n’est pas satisfaisante, car des messages construits diff´eremment pouvent avoir la mˆeme valeur. Par exemple, pour un algorithme de chiffrement de type RSA (voir chapitre 2, paragraphe 2.2.1.v) on a, pour des constantes ka, kb et m :
0
n 0 0
p,rsa p,rsa ka
{m}kb
op,rsa kb−1
↔ΘRSA
0
n 0 0
↔ΘRSA
0
{m}ka
p,rsa p,rsa kb−1
{m}kb
op,rsa ka
p,rsa
Cette ´egalit´e est utilis´ee dans la d´efinition du protocole RSA d’´echange de secret, et doit donc ˆetre prise en compte. Dans cette section, on d´efinit inductivement un ensemble T(Fproto ) de termes valeurs, ainsi qu’une relation Rψ entre termes op´erations et termes valeurs. Pour d´ecrire ces termes valeurs, on utilise les mˆemes symboles qu’en section 3.3.3, l’indice 0 en moins, et on ne diff´erencie pas Exp− ( , ) et Exp+ ( , ). Nous montrons par induction que le terme valeur tv associ´e `a un terme op´eration to est d´efini de mani`ere non ambigu¨e. La relation Rψ sera donc une fonction ψ. Nous prouverons enfin, dans la section 3.4.2.ii, que deux termes op´erations ayant la mˆeme image par ψ sont dans la mˆeme classe d’´equivalence. 3.3.5.i
Constantes
Tout symbole d’arit´e 0 est une valeur. Deux constantes diff´erentes correspondent `a 2 valeurs diff´erentes. Suppose qu’en plus des constantes d´efinies dans la signature, il y ait deux constantes 0 et 1 dont la valeur est fix´ee. Ces valeurs seront repr´esent´ees par un ensemble vide (cas du 0 pour l’op´erateur ⊕({ })) ou un multi-ensemble g´en´eralis´e de support vide (cas du 1 pour l’op´erateur Exp( , )). Nous d´efinissons Rψ , sur les constantes, comme ´egale `a la fonction identit´e.
3.3. Termes
3.3.5.ii
33
Op´ erateurs libres Fl
Posons :
n p Fl = h , i , { } ,
−1
s
s,ebc
,{ } ,{ }
,{ }
s,cbc
o , H( , )
Ces symboles sont dits libres car, pour des termes valeurs a, a0 , b, b0 , on a : f (a1 , ..., an ) ≡Θproto f 0 (b1 , . . . , bm ) implique n = m, pour tout i ∈ {1, . . . , n} , ai ≡Θproto bi , et f = f 0 , pour f, f 0 ∈ Fl \ −1 Enfin, pour l’op´erateur −1 , on impose que t−1 est un terme valeur si, et seulement si, il n’existe pas de terme valeur u tel que t = u−1 . Soit 0 f (a1 , . . . , an ) un terme op´eration, avec 0f ∈ 0Fl . Par induction, supposons que Rψ soit une fonction ψ sur a1 , . . . , an . Rψ est alors ´etendue sur 0 f (a1 , . . . , an ) par : 0
f (a1 , . . . , an )
Rψ
f (ψ(a1 ), . . . , ψ(an ))
Le symbole 0f ´etant donn´e, f est unique, donc : ψ( 0 f (a1 , . . . , an )) 3.3.5.iii
Op´ erateur { }
= f (ψ(a1 ), . . . , ψ(an ))
p,rsa
Nous cherchons ` a mod´eliser l’´egalit´e des valeurs ≡ΘRSA pour un algorithme de chiffrement asym´etrique commutatif et pour lequel les algorithmes de chiffrement et de d´echiffrement sont p,rsa identiques. Soit m un terme qui n’est pas de la forme {a}b 0 , et soit : n p,rsa o p,rsa E(m) = t ∈ T0 (F0 ) | ∃t1 , . . . , tn ∈ T0 (F0 ), t = . . . {m}t1 . . . t n
Proposition 2 Soit T 0 = T0 (F0 ) \ t−1 | t ∈ T(F0 ) . Il existe une bijection ψ entre E(m)/≡ΘRSA et
T0.
Preuve. Pour cela, pour t ∈ T 0 , soit ϕt : T0 (F0 ) → d´efinie par : si u = t 1 −1 si u = t−1 ϕt (u) = 0 sinon Le support de ϕt est t, t−1 , donc ϕt est dans ψ:
pour tout t ∈ T 0 .
T0
E(m)/≡ΘRSA p,rsa p,rsa . . . {m}t1 . . . t n
→
T0
7→ Σni=1 ϕti
Pour que ψ soit bien d´efinie, il faut que les images des ´el´ements d’une classe co¨ıncident. Supposons que m, t1 , . . . , tn , t01 , . . . , t0m sont des repr´esentants canoniques de classes d’´equivalences pour ≡Θproto , et que : 0
p,rsa
. . . 0 {m}t1
p,rsa ... t ↔ΘRSA n
0
n op,rsa p,rsa . . . 0 {m}t0 . . . 0 1
tm
Soient M et M0 les multi-ensembles {t1 , . . . , tn } et {t1 , . . . , tm }. Par d´efinition de =ΘRSA , et pour tout terme op´eration t 6= u−1 : M(t) − M(t−1 ) = M0 (t) − M0 (t−1 ) Cette d´efinition pos´ee, il est possible de v´erifier que deux ´el´ements de T0 (F0 ) sont dans la mˆeme classe si et seulement si leur image par ψ est ´egale, et donc que ψ est une bijection.
34
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
Cette proposition servira ` a montrer que ψ respecte les classes d’´equivalence. La fonction ψ de la proposition 2 servira `a d´efinir la repr´esentation d’une classe d’´equivalence pour ≡ΘRSA par un terme valeur. Une possibilit´e de mod´elisation des valeurs obtenues par un chiffrement par un op´erateur de p,rsa chiffrement de type RSA serait un op´erateur { } ayant comme premier argument le message `a chiffrer, et comme deuxi`eme argument le multi-ensemble g´en´eralis´e des clefs utilis´ees pour le chiffrement. Cependant, pour garder la notation k −1 pour la clef priv´ee li´ee `a la clef publique k, p,rsa nous mod´elisons un algorithme de chiffrement de type RSA par un op´erateur { } dont : – le premier argument est un terme valeur ; – le second argument est un multi-ensemble M de termes valeurs. p,rsa Montrons maintenant que pour un 0{ } -terme to , il existe un seul terme valeur tv tel que to Rψ tv . Soit : to
=
0
p,rsa
. . . 0 {m}t1
p,rsa ... t n
Par induction, il existe une fonction ψ telle que : ∀i ∈ {1, . . . , n} , ti Rψ ψ(ti ) mRψ ψ(m) Le multi-ensemble des ψ(ti ), i ∈ {1, . . . , n} compt´es avec multiplicit´e est unique, et ψ(m) est unique. Donc tv est unique, et on peut noter tv = ψ(to ). 3.3.5.iv
Op´ erateur Exp( , )
Les propri´et´es alg´ebriques de l’exponentielle sont exactement les mˆemes que celles d’un algorithme de chiffrement de type RSA. L’op´erateur −1 ne joue pas de rˆole particulier dans l’exposant. Nous mod´elisons donc les propri´et´es de l’exponentielle directement par un op´erateur Exp( , ) dont : – le premier argument est un terme valeur, servant de base `a l’exponentielle ; – le second argument est un multi-ensemble g´en´eralis´e de termes valeurs. Dans le cas de l’op´erateur 0Exp( , ), la constante 1 est l’´el´ement neutre dans l’exposant. Pour tout m, on a : 0 Exp(m, 1) =Θexp m p,rsa
L’unicit´e de l’image se montre de la mˆeme mani`ere que pour l’op´erateur 0{ } 3.3.5.v
.
Op´ erateur ⊕({ })
Soit t un 0 ⊕ -terme, et w0 ⊕ [t1 , . . . , tn ] une 0 ⊕ -partition de t. Sans perte de g´en´eralit´e, on suppose que les ti (i ∈ {1, . . . , n}) sont donn´es avec multiplicit´e : si |Pos(t1 , t)| = k, t1 apparaˆıt k fois dans la suite t1 , . . . , tn . Avec ces notations, on a : Proposition 3
a) w0 ⊕ [t1 , t2 , . . . , tn ] ≡Θxor w0 ⊕ [t2 , t1 , . . . , tn ] ;
b) w0 ⊕ [t1 , . . . , tn−1 , tn ] ≡Θxor w0 ⊕ [tn , t1 , . . . , tn−1 ]. Preuve. w0 ⊕ ;
a) il suffit d’utiliser la commutativit´e sur le sous-terme
b) en utilisant l’associativit´e, il est possible de trouver un
0
0
⊕ le plus `a gauche dans
⊕ -terme pur w00 ⊕ tel que :
w0 ⊕ [t1 , t2 , . . . , tn ] ≡Θxor
0
⊕ (w00 ⊕ [t1 , . . . , tn−1 ], tn )
=Θxor
0
⊕ (tn , w00 ⊕ [t1 , . . . , tn−1 ])
En utilisant l’associativit´e, il est possible de faire descendre tn , et ainsi de montrer le point b.
3.4. Normalisation des termes valeurs
35
La proposition 3 implique que pour toute permutation σ de {1, . . . , n}, w0 ⊕ [t1 , . . . , tn ] ≡Θxor w0 ⊕ [tσ(1) , . . . , tσ(n) ] En reprenant les mˆemes notations, notons Gt le multi-ensemble des termes t1 , . . . , tn d’une partition de t. Pour deux 0 ⊕ -termes r et s, on a Gr = Gs implique r ≡Θxor s. D’autre part, d’apr`es les ´equations 3.5, la condition plus faible Gr = Gs mod 2 implique r ≡Θxor s. Il suffit donc de repr´esenter t1 , . . . , tn par le sous-ensemble du support du multi-ensemble {t1 , . . . , tn } form´e des termes t 6= 0 dont le nombre d’occurrences est impair. La proposition 1 donne alors un isomorphisme entre l’addition de multi-ensembles modulo 2 et la diff´erence sym´etrique d’ensembles. Elle implique donc, entre autres, ⊕({⊕(E), ⊕(F )}) ≡Θxor ⊕ (E∆F ). Soit to un 0⊕-terme op´eration. Pour mod´eliser les valeurs obtenues par l’op´eration de ou exclusif bit ` a bit, nous utilisons un op´erateur ⊕({ }) prenant comme argument un ensemble de termes valeurs. L’unicit´e se montre d’abord avec le multi-ensemble des t1 , . . . , tn de la mˆeme mani`ere que p,rsa pour l’op´erateur 0{ } . L’unicit´e de ce multi-ensemble implique alors l’unicit´e de l’ensemble M tel que to Rψ ⊕ (M ) . 3.3.5.vi
D´ efinition de Fproto et T(Fproto )
Nous notons Fproto une signature dont l’ensemble des symboles d’arit´e non nulle est : n s s,ebc s,cbc p p,rsa h , i,{ } ,{ } ,{ } ,{ } ,{ } , H( , ), Exp( , ), ⊕({ }), s,ebc
−1
o
s,cbc
Les constructeurs { } et { } sont d’arit´e variables et ont toujours au moins deux arguments. Le dernier argument est la clef, et est not´e `a l’ext´erieur des accolades. D´ efinition 12 (termes valeurs) L’ensemble des termes valeurs sur Fproto , not´e T(Fproto ), est l’ensemble des termes qu’il est possible de construire ` a partir des r`egles donn´ees dans les sous-sections 3.3.5.i ` a 3.3.5.v.
3.4 3.4.1
Normalisation des termes valeurs Fonction de normalisation sur les termes op´ erations et les termes valeurs
Nous rappelons que le but de la section 3.3 est de parvenir `a associer `a chaque valeur pouvant ˆetre d´efinie dans un protocole cryptographique une repr´esentation bas´ee sur la construction de cette valeur. L’ensemble des termes valeurs r´epond partiellement seulement `a ce probl`eme, car la repr´esentation d’une classe de termes op´erations n’est pas forc´ement unique. Par exemple, p,rsa les termes valeurs ⊕({m, ⊕({m}), ⊕({m, 0})}), {m}{k,k−1 } , . . .. repr´esentent la mˆeme classe de la relation d’´equivalence ≡Θproto . Dans la suite de cette section, et pour chaque constructeur f ∈ Fproto , nous d´efinissons une fonction de normalisation p qf dont le support est inclus dans l’ensemble des f -termes. La compos´ee de ces fonctions de normalisation est not´ee p q. Un terme t est en forme normale si ptq = t. 3.4.1.i
Normalisation des constantes
Les constantes repr´esentent des valeurs de base `a partir desquelles les messages sont compos´es. Les fonctions de normalisation sont donc d´efinies comme ´egales `a l’identit´e sur les constantes. Si c ∈ Fproto est une constante, on a, pour tout f ∈ Fproto : pcq = pcqf = c
36
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
3.4.1.ii
Normalisation des constructeurs libres
Nous commen¸cons par d´efinir une premi`ere fonction de normalisation p qf sur T(Fproto ). Cette fonction sert ` a propager la normalisation aux sous-termes d’un f -terme, avec f constructeur libre (la liste des constructeurs libres est donn´ee dans la sous-section 3.3.5, paragraphe 3.3.5.ii.) – si t = f (a, b), avec f ∈ S ∩ Fl , ptqf = f (paq, pbq) ; −1 – si t = a−1 , alors ptq = ptq = paq −1 ; f – sinon, ptq = t. 3.4.1.iii
Normalisation pour l’op´ erateur ⊕({ })
En vue de d´efinir p qxor sur T(Fproto ), nous d´efinissons les ⊕-facteurs d’un terme t. D´ efinition 13 (⊕-facteurs) – Si t = ⊕({t1 , . . . , tn }), alors l’ensemble des ⊕-facteurs de t est : Facteur⊕ (t) = (∆ni=1 Facteur⊕ (pti q)) \ {0} – sinon Facteur⊕ (t) = {ptq} La notation ∆ni=1 Ei est bien d´efinie, car ∆ est associative et commutative. Nous d´efinissons maintenant p q sur T(Fproto ). D´ efinition 14 (p qxor ) Si t ∈ T(Fproto ), alors : – si t = ⊕({t1 , . . . , tn }), ptqxor
⊕({Facteur⊕ (t)}) si |Facteur⊕ (t)| ≥ 2 u si Facteur⊕ (t) = {u} = 0 si Facteur⊕ (t) = ∅
– sinon, ptqxor = t. 3.4.1.iv
Normalisation pour l’op´ erateur Exp( , )
Pour d´efinir p qexp sur T(Fproto ), nous commen¸cons par d´efinir les Exp-facteurs et la Exp-base d’un terme t. D´ efinition 15 (Exp-facteurs et Exp-base) – Exp-facteurs : – Si t = Exp(b, M), alors l’ensemble des Exp-facteurs de t est : FacteurExp (t) = pMq + FacteurExp (pbq) – sinon FacteurExp (t) = ∅ – Exp-base : – Si t = Exp(b, M), alors la Exp-base de t est : BaseExp (t) = BaseExp (pbq) – sinon BaseExp (t) = t Cette d´efinition implique que s’il existe t et u normalis´es tels que u = BaseExp (t), alors u n’est pas un Exp-terme. Un ´equivalent de la proposition 2 pour l’exponentielle pourra donc ˆetre appliqu´e. Mais d’abord, choisissons comme fonction de normalisation celle qui envoie un terme t sur le terme Exp(BaseExp (t), FacteurExp (t)).
3.4. Normalisation des termes valeurs
37
D´ efinition 16 (p qexp ) Si t ∈ T(Fproto ), alors : – si t = Exp(b, M), Exp(BaseExp (t), FacteurExp (t)) si exp ptq = BaseExp (t) si
(FacteurExp (t)) 6= ∅ (FacteurExp (t)) = ∅
– sinon, ptqexp = t. 3.4.1.v
p,rsa
Normalisation pour l’op´ erateur { }
p,rsa
La fonction de normalisation pour l’op´erateur { } est similaire `a celle de l’op´erateur Exp( , ), p,rsa p,rsa et utilise aussi les notions de { } -facteurs et la { } -base d’un terme t. Addition. L’utilisation de multi-ensembles `a la place de multi-ensembles g´en´eralis´es contraint `a utiliser une fonction sp´eciale, Add, pour l’addition des multi-ensembles de facteurs. Posons, pour des multi-ensembles M1 , M2 et M3 : Add(M1 , M2 ) = M3 si pour tout terme en forme normale t qui n’est pas de la forme u−1 : : a) M1 (t) + M2 (t) − (M1 (t−1 ) + M2 (t−1 )) = M3 (t) − M3 (t−1 ) b) soit M3 (t) = 0, soit M3 (t−1 ) = 0. Oppos´ e. Nous d´efinissons aussi l’oppos´e d’un multi-ensemble M comme ´etant le multi-ensemble M0 tel que Add(M, M0 ) = 0. Nous notons Opp(M) l’oppos´e d’un multi-ensemble M. Nous d´efinissons maintenant les facteurs et la base pour un op´erateur de chiffrement de type RSA. p,rsa
p,rsa
D´ efinition 17 ({ } -facteurs et { } -base) p,rsa – {} -facteurs : p,rsa p,rsa – Si t = {b}M , alors l’ensemble des { } -facteurs de t est : Facteurrsa (t) = Add(pMq, Facteurrsa (pbq)) – sinon Facteurrsa (t) = ∅ p,rsa
– {} -base : p,rsa p,rsa – Si t = {b}M , alors la { } -base de t est : Basersa (t) = Basersa (pbq) – sinon Basersa (t) = t Cette d´efinition implique que s’il existe t et u normalis´es tels que u = Basersa (t), alors u n’est pas p,rsa un { } -terme. La proposition 2 pourra donc ˆetre appliqu´ee. Mais d’abord, choisissons comme p,rsa fonction de normalisation celle qui envoie un terme t sur le terme {Basersa (t)}Facteurrsa (t) . D´ efinition 18 (p qrsa ) Si t ∈ T(S), alors : p,rsa – si t = {b}M , ptqrsa = – sinon, ptqrsa = t.
p,rsa
{Basersa (t)}Facteurrsa (t) Basersa (t)
si si
(Facteurrsa (t)) 6= ∅ (Facteurrsa (t)) = ∅
38
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
3.4.1.vi
Exemple
Prenons comme exemple le terme : ⊕({a, Exp(Exp(⊕({a, c}), {a}), {−a}), c}) et calculons sa forme normale. Tout d’abord, a, c, ⊕({a, c}) et Exp(⊕({a, c}), a) sont en forme normale. Calculons la forme normale de Exp(Exp(⊕({a, c}), {a}), {−a}). On a : – BaseExp (Exp(Exp(⊕({a, c}), {a}), {−a})) = ⊕({a, c}) ; – FacteurExp (Exp(Exp(⊕({a, c}), {a}), {−a})) = {a} + {−a} = 0 ; On en conclut : exp pExp(Exp(⊕({a, c}), {a}), {−a})q = ⊕({a, c}) Les facteurs du terme ` a normaliser sont donc :
Facteur⊕ (⊕({a, Exp(Exp(⊕({a, c}), {a}), {−a}), c})) = {a} ∆Facteur⊕ (⊕({a, c}))∆ {c} = {a} ∆ {a, c} ∆ {c} = ∅ Les sous-termes du terme ` a normaliser sont tous en forme normale, et l’ensemble des ⊕-facteurs est vide, donc :
p⊕({a, Exp(Exp(⊕({a, c}), {a}), {−a}), c})q
= p⊕({a, Exp(Exp(⊕({a, c}), {a}), {−a}), c})q = 0
xor
3.4.2
Unicit´ e de la forme normale pour une classe de termes op´ erations
3.4.2.i
Introduction
Pour le reste de cette sous-section, nous notons ψ la fonction qui associe `a un terme op´eration t un terme valeur tv tel que d´efini en section 3.3.5. Nous rappelons que les messages compos´es `a partir des op´erations d´ecrites dans le chapitre 2, section 2.2, et formalis´ees dans la section 3.3.3 de ce chapitre, peuvent avoir une mˆeme valeur. La notion de valeur identique est formalis´ee par une relation d’´equivalence ≡Θproto sur les termes op´erations. Dans la section 3.3.5 de ce chapitre, nous avons donn´e une repr´esentation d’une classe d’´equivalence de la relation ≡Θproto . Cette repr´esentation n’est pas unique, et nous avons affirm´e que la fonction de normalisation permettait d’assurer que deux termes op´erations t et t0 sont dans la mˆeme classe (t ≡Θproto t0 ) si et seulement si, pψ(t)q = pψ(t0 )q. La situation peut ˆetre r´esum´ee par le diagramme 3.1.
t
ψ
ψ(t)
p q
≡Θproto
pψ(t)q =
t0
ψ
ψ(t0 )
p q
pψ(t0 )q
Fig. 3.1 – Relation entre termes op´erations, termes valeurs et fonction de normalisation Dans la sous-section 3.4.2.ii, nous montrons que la fl`eche verticale de droite implique celle de gauche, et dans la sous-section 3.4.2.iii, nous montrons que la fl`eche verticale de gauche implique celle de droite.
3.4. Normalisation des termes valeurs
3.4.2.ii
39
Unicit´ e de la classe repr´ esent´ ee par une forme normale
Lemme 1 ψ(t) = ψ(t0 ) implique t ≡Θproto t0 Preuve. Par construction, ψ(t) = ψ(t0 ) et t f -terme implique t0 f -terme. Montrons par induction sur les sous-termes que, pour chaque constructeur f et pour tous f -termes t et t0 , ψ(t) = ψ(t0 ) implique t ≡Θproto t0 . – si f est un constructeur libre ou une constante, t ≡Θproto t0 par d´efinition de ≡Θproto et par induction sur les sous-termes ; p,rsa – si f = 0{ } , soit : p,rsa p,rsa t = 0 . . . {m}t1 . . . t n onp,rsa 0 0 0 p,rsa t = . . . {m }t0 . . . 0 1
tl
Par d´efinition de ϕ, en notant M1 (resp. M2 ) le multi-ensemble des t1 , . . . , tn (resp. t01 , . . . , t0l ) compt´es avec multiplicit´es, on a : Add(M1 , −M2 ) = 0 et m = m0 . Par la proposition 2, on a donc t ≡Θproto t0 ; – le cas de l’op´erateur 0Exp( , ) se traite de la mˆeme mani`ere, en utilisant l’´equivalent de la proposition 2 pour traiter la simplification 0Exp− ( 0Exp+ (m, a), a) = m ; – De mˆeme, le cas de l’op´erateur 0⊕ se traite en utilisant la proposition 3 et une induction sur les sous-termes. Lemme 2 Pour tout terme op´eration t, il existe un terme op´eration t0 tel que pψ(t)q = ψ(t0 ). On a alors t ≡Θproto t0 . Preuve. Tout d’abord, montrons l’existence de t0 par induction sur les sous-termes de ptq. L’existence est triviale pour les constantes, et est d´eduite par induction pour les constructeurs libres. L’utilisation d’ensembles ou de multi-ensembles ne pose pas de probl`eme. L’implication est alors prouv´ee en montrant que chaque ´etape de normalisation pr´eserve l’appartenance ` a une classe de ≡Θproto , par induction sur les sous-termes de ψ(t). La proposition suivante se d´eduit alors du diagramme 3.1 et des lemmes 1 et 2. Soient deux termes op´erations t1 et t2 tels que pψ(t1 )q = pψ(t2 )q D’apr`es le lemme 2, il existe un terme op´eration t0 tel que : pψ(t1 )q = ψ(t0 ) pψ(t2 )q = pψ(t0 )q 0 t ≡Θproto t1 t0 ≡Θproto t2 Donc, par transitivit´e, nous avons la proposition suivante. Proposition 4 pψ(t)q = pψ(t0 )q
implique
t ≡Θproto t0
Dans le reste de cette section, nous montrons la r´eciproque de cette proposition, c’est-`a-dire : t ≡Θproto t0 ⇒ pψ(t)q = pψ(t0 )q
40
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
3.4.2.iii
Cas de deux termes ´ egaux modulo Θproto
Notons t =Θproto t0 si t = t0 ou t =ΘRSA t0 ou t =exp t0 ou t =Θxor t0 . Le lemme suivant montre que t =Θproto t0 implique ψ(t) = ψ(t0 ), et donc pψ(t)q = pψ(t0 )q. Lemme 3 Pour tout t, t0 dans T0 (0 Fproto ), t =Θproto t0
implique
ψ(t) = ψ(t0 )
Preuve. La preuve consiste ` a consid´erer tous les cas possibles d’´egalit´e, et `a montrer que pour chaque cas, l’´egalit´e de droite est v´erifi´ee. 3.4.2.iv
Cas g´ en´ eral
Pour montrer que ψ est constante sur chaque classe d’´equivalence, la proposition suivante ram`ene le probl`eme ` a celui de deux termes ´egaux modulo Θproto . Proposition 5 Pour tout t, t0 dans T0 (0 Fproto ), t ≡Θproto t0
implique
pψ(t)q = pψ(t0 )q
Preuve. Par contradiction, supposons qu’il existe deux termes t et t0 de T0 (0 Fproto ) tels que :
t pψ(t)q
≡Θproto 6=
t0 pψ(t0 )q
Par d´efinition, il existe une suite (ti )i∈{0,...,n} de termes telle que : a) t0 = t et tn = t0 ; b) ∀i ∈ {1, . . . , n} , ti−1 ↔Θproto ti . Soit i ∈ {1, . . . , n} minimal tel que : pψ(ti−1 )q 6= pψ(ti )q Par minimalit´e de i, pψ(ti−1 )q = pψ(t0 )q, donc l’hypoth`ese t ≡Θproto t0 et pψ(t)q 6= pψ(t0 )q implique qu’il existe deux termes u et v tels que :
u pψ(u)q
↔Θproto 6=
v pψ(v)q
Par d´efinition de ↔Θproto , il existe deux termes a et b tels que : = u v = a =Θproto
w0 [a] w0 [b] b
La fonction de normalisation p q est d´efinie inductivement, donc pψ(u)q 6= pψ(v)q implique pψ(a)q 6= pψ(b)q. Pour r´esumer, l’hypoth`ese initiale implique qu’il existe deux termes a et b tels que : a =Θproto b pψ(a)q 6= pψ(b)q Cela est impossible par le lemme 3, ce qui prouve la proposition.
3.5. Repr´esentation des termes valeurs et op´erations de base
3.4.2.v
41
Conclusion
Nous venons de d´emontrer le th´eor`eme suivant : Th´ eor` eme 1 pψ(t)q = pψ(t0 )q si, et seulement si, t ≡Θproto t0 . En d’autres termes, il existe une bijection ϕ = p q ◦ ψ de T0 ( 0Fproto )/ ≡Θproto vers l’ensemble des termes en forme normale de T(Fproto ). Donc raisonner modulo la th´eorie Θproto sur les termes de T0 ( 0Fproto ) est ´equivalent ` a raisonner sur les termes en forme normale de T(Fproto ). Nous utilisons ce r´esultat de la fa¸con suivante :
Dans la suite de ce document, nous consid´ ererons toujours des termes valeurs en forme normale.
3.5 3.5.1
Repr´ esentation des termes valeurs et op´ erations de base Introduction
Nous nous int´eressons ` a la complexit´e de probl`emes li´es `a l’´etude de protocoles cryptographiques. Ces probl`emes s’´enoncent et se r´esolvent souvent en consid´erant des termes valeurs ou des ensembles de termes valeurs. Pour connaˆıtre la complexit´e d’un tel probl`eme, il est donc n´ecessaire de connaˆıtre la complexit´e d’op´erations de base, telles que savoir si deux termes valeurs en forme normale sont ´egaux, savoir si un terme appartient `a un ensemble de termes, etc. Dans cette section, nous d´ecrivons une repr´esentation possible des termes et ensembles de termes (sous-section) 3.5.3). Nous nous int´eressons aussi, dans cette section, `a la taille d’une repr´esentation d’un terme ou d’un ensemble de termes. Cette taille servira de param`etre pour exprimer la complexit´e des op´erations sur les termes et ensembles de termes (sous-section 3.5.4).
3.5.2
Graphes
Nous consid´erons que les termes valeurs sont repr´esent´es par des graphes finis. D´ efinition 19 (Graphes) Un graphe G est un couple (V, E) o` u V est un ensemble fini, et E une relation sur V . Les ´el´ements de E sont nomm´es des sommets. Pour v et v 0 dans V , si vEv 0 , nous disons que le couple (v, v 0 ) est une arˆete de G. Si dans un graphe (V, E) la relation E est sym´etrique, nous disons que le graphe est non-orient´e. Sinon, le graphe est dit orient´e. Dans un graphe orient´e, un sommet v est le fils d’un sommet s0 s’il existe une arˆete (v 0 , v). Un graphe (V, E) est un arbre s’il existe un sommet de V qui n’est le fils d’aucun autre, et si tous les autres sommets v sont fils d’exactement un sommet. D´ efinition 20 (Graphes avec labels) Un triplet G = (V, E, ϕ) est un graphe avec labels dans A si G0 = (V, E) est un graphe et si ϕ est une fonction de l’ensemble des arˆetes de G0 vers A. Une classe particuli`erement importante de graphes pour repr´esenter les termes est celle des graphes orient´es acyclique (dag, acronyme anglais de Directed Acyclic Graph). D´ efinition 21 (Graphes acycliques) Un graphe G = (V, E) est acyclique s’il n’existe pas de suite v1 , . . . , vn d’´el´ements de V telle que : – pour tout i ∈ {1, . . . , n − 1}, le couple (vi , vi+1 ) est une arˆete de G ; – vn = v1 .
42
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
Pour repr´esenter des termes valeurs, nous utilisons des graphes orient´es acycliques avec labels ´ dans . Etant donn´e un terme valeur t, nous construisons le graphe ( (t), E), o` u E est la relation de sous-terme strict maximal. Les labels servent `a coder soit la position d’un sous-terme dans les arguments d’un op´erateur, soit la valeur d’un terme par un multi-ensemble ou un multi-ensemble g´en´eralis´e. Nous d´etaillons dans la sous-section 3.5.3 cette repr´esentation, et donnons la complexit´e d’op´erations simples sur les termes dans la sous-section 3.5.4.
3.5.3
Repr´ esentations et taille des probl` emes
3.5.3.i
Introduction
Les termes sont souvent repr´esent´es par des arbres dont les feuilles sont des constantes et les p sommets des constructeurs. Par exemple, le terme {ha, ha, bii}c peut ˆetre repr´esent´e par l’arbre de la figure 3.2. Dans cette repr´esentation, on suppose implicitement qu’il existe un m´ecanisme permettant de distinguer les deux arˆetes sortantes. p
{}
h, i
c
h, i
a
a
b p
Fig. 3.2 – Repr´esentation du terme {ha, ha, bii}c par un arbre L’inconv´enient de cette repr´esentation est que de l’information est dupliqu´ee : dans la figure 3.2, la constante a est dupliqu´ee. Afin d’´eviter cette duplication, une repr´esentation alternative du terme est d’utiliser un graphe orient´e acyclique (DAG). Cette repr´esentation permet d’associer `a chaque sous-terme d’un terme un seul sommet d’un graphe. En reprenant l’exemple pr´ec´edent, le terme p {ha, ha, bii}c peut ˆetre repr´esent´e par le DAG de la figure 3.3. p
{}
h, i
c
h, i
a
b p
Fig. 3.3 – Repr´esentation du terme {ha, ha, bii}c par un graphe orient´e acyclique (DAG) Pour un terme op´eration t, un graphe acyclique orient´e Gt est une repr´esentation graphique de la relation Rsub de sous-terme direct sur (t) :
3.5. Repr´esentation des termes valeurs et op´erations de base
Et = {(s, s0 ) ∈ avec, pour tout s, s0 ∈ s
Risub
0
s
Rsub
⇐⇒ =
43
(t) | s Rsub s0 }
(t), 0
0
0
∃ f ∈ Fproto , ∃ a1 , . . . , an ∈ T0 ( Fproto ), [ Rnsub
s = f (a1 , . . . , an ) s0 = ai
n∈ \{0}
Remarquons que la taille d’une telle repr´esentation n’est pas lin´eaire en le nombre de soustermes distincts. Par exemple, consid´erons le terme : {}
a
s,cbc
n copies de a
a k
Le nombre des sous-termes de ce terme est 3, et est ind´ependant de n. Cependant, la taille de la repr´esentation varie en fonction de n. En utilisant une liste de sommets fils, la taille de la repr´esentation est en O(n). L’espace n´ecessaire pour repr´esenter un terme est donc diff´erent du nombre de ses sous-termes. D´ efinition 22 (Taille dag d’un terme) Soit t un terme, et Gt la repr´esentation de ce terme par un graphe orient´e acyclique. La taille dag de t, not´ee |t|dag , est la taille de Gt . En repr´esentant les fils d’un sommet d’un graphe par une liste de sommets, on a la proposition suivante. Proposition 6 Soit t un terme op´eration, n1 , . . . , nk les arit´es des op´erateurs et constantes de t. Sous ces notations : |t|dag = O((k + Σki=1 ni ) · log k) Preuve. On repr´esente le graphe Gt par une liste de couples (s, l) o` u s est un sommet, et l la liste des sommets fils de s. Il y a k sommets dans le graphe, donc chaque sommet peut ˆetre repr´esent´e en log k. Donc le sommet i est repr´esent´e en O((1 + ni ) · log k). 3.5.3.ii
Relations sur l’ensemble des sous-termes d’un terme valeur
La repr´esentation des termes valeurs est plus d´elicate `a mettre en œuvre, car il faut pouvoir repr´esenter efficacement des ensembles et des multi-ensembles de termes. Les ensembles. La repr´esentation d’un ensemble peut se faire par une liste de sommets. Sans perte de g´en´eralit´e, il est possible de supposer que cette liste est de cardinal inf´erieur ou ´egal au nombre total de sommets du graphe. Multi-ensembles et multi-ensembles g´ en´ eralis´ es. L’utilisation de listes, pour les multiensembles, n’est pas efficace. Par exemple, le terme : p,rsa
{}
a ka
ka
ka ka
44
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
est repr´esent´e de mani`ere plus succincte par le graphe orient´e acyclique avec labels : 0
p,rsa
{}
4
a
ka
Il est donc possible de repr´esenter un multi-ensemble (g´en´eralis´e) M par une liste de couples (s, n), avec s ∈ (M) et n = M(s). Taille dag d’un terme valeur. Soit t un terme valeur, k le nombre de sous-termes distincts de t, m la valeur absolue maximale de l’image d’un terme par un multi-ensemble (g´en´eralis´e) de t, et a l’arit´e maximale d’un op´erateur. D’apr`es ce qui pr´ec`ede, on a la proposition suivante. Proposition 7 Avec les notations pr´ec´edentes, t peut ˆetre repr´esent´e en espace O(k 3 · (a + log m)). Preuve. Un multi-ensemble peut ˆetre repr´esent´e en O(k · (1 + log m + log k)), un ensemble peut ˆetre repr´esent´e en O(k · log k) et une liste peut ˆetre repr´esent´ee en O(a · log k). En utilisant des marqueurs pour distinguer les ensembles des multi-ensembles et des listes, un terme peut ˆetre repr´esent´e en : O(k 2 · (1 + log m + log k) + k · a · log k) Soit, pour prendre une ´ecriture plus simple mais moins pr´ecise : O(k 3 · (a + log m)) Un ensemble ou multi-ensemble est consid´er´e comme ´etant un seul argument. Par exemple, p,rsa l’op´erateur ⊕({ }) est d’arit´e 1, et l’op´erateur { } est d’arit´e 2.
3.5.4
Op´ erations sur les termes et complexit´ e
Un ensemble E de termes peut ˆetre repr´esent´e par un couple (g, l), o` u g est un graphe et l est la liste des sommets du graphe appartenant `a E. 3.5.4.i
Ordre total sur les termes valeurs et repr´ esentation canonique
La repr´esentation d’un terme valeur par un graphe n’est pas unique, car dans le cas d’ensembles ou de multi-ensembles, l’ordre dans la liste des fils d’un sommet n’affecte pas le terme repr´esent´e par ce sommet. Afin de ne pas avoir ` a consid´erer tous les ordres possibles des sommets, nous allons trier les sommets apparaissant dans les listes repr´esentant des ensembles ou des multi-ensembles. De cette mani`ere, deux termes seront ´egaux si, et seulement si, les graphes les repr´esentant sont identiques. Pour trier les sommets, nous avons besoin d’une relation d’ordre totale sur les termes valeurs. Pour cela, on se donne une relation d’ordre >Fproto sur Fproto , arbitraire sur les constantes et sur les constructeurs d’arit´e non nulle, et telle que, en notant α(f ) l’arit´e du symbole f ∈ Fproto , alors pour tout f, f 0 constructeurs de Fproto , si α(f ) = 0 et α(f 0 ) 6= 0, alors f 0 >Fproto f D’autre part, la relation Rsub est une relation d’ordre partiel sur les sommets du graphe. Il est donc possible d’organiser les sommets d’un graphe repr´esentant un terme t en niveaux L0 , . . . , Lk , tels que : a) ∀i ∈ {1, . . . , k} , ∀x ∈ Li , ∃y ∈ Li−1 , xRsub y b) ∀i ∈ {0, . . . , k} , ∀x, y ∈ Li , ¬(xRsub y ∨ yRsub x)
3.5. Repr´esentation des termes valeurs et op´erations de base
45
La premi`ere propri´et´e exprime que si un sommet s est au niveau Li , il existe un sommet s0 au niveau Li−1 tel que s0 repr´esente un sous-terme strict de s. Elle implique que toutes les constantes sont dans le niveau L0 . La seconde propri´et´e signifie que deux sommets au mˆeme niveau sont incomparables pour Rsub . Elle implique que le niveau L0 ne contient que des constantes. Il est maintenant possible d’´etendre Rsub en un ordre total Fproto sur les sommets, en utilisant >Fproto et par r´ecurrence sur les niveaux. Sur L0 . Par la contrainte d’ordonnancement entre les termes et leurs sous-termes, un terme est dans L0 si et seulement si c’est une constante. Posons O comme ´etant l’ordre total sur les constantes. Cet ordre ´etend bien l’ordre induit par la relation de sous-terme. Li → Li+1 Supposons qu’il existe un ordre total i sur ∪ij=0 Lj , et ´etendons le en i+1 sur ∪i+1 etre tri´es en temps O(|Li+1 |) en fonction de j=0 Lj . Tout d’abord, les sommets de Li+1 peuvent ˆ l’ordre >Fproto sur les constructeurs. Le probl`eme se r´eduit alors au tri de sommets ayant le mˆeme constructeur de tˆete f . Deux cas sont possibles : a) si f ∈ Fproto l , l’ordre i est ´etendu en un ordre total (lexicographique, par exemple) sur les suites finies de sommets. Cet ordre permet d’ordonner totalement tous les f -termes ; b) sinon, afin de simplifier le propos, on commence par consid´erer les ensembles et les multiensembles comme des cas particuliers de multi-ensembles g´en´eralis´es. En utilisant si n´ecessaire un ordre lexicographique sur les arguments, nous nous ramenons au probl`eme de trouver un ordre total sur des multi-ensembles g´en´eralis´es. Les ´el´ements de ces multi-ensembles sont totalement ordonn´es par i . Les multi-ensembles peuvent donc ˆetre ordonn´es par M N si : ∀x ∈ ∪ij=0 Lj , N (x) > M(x) ⇒ ∃y ∈ ∪ij=0 Lj , y i x et M(y) > N (y) avec, pour tout n, m ∈ , n > m si |n| > |m| ou |n| = |m| et n > 0 > m. Les ordres > et i sont totaux, donc l’ordre est total sur les multi-ensembles g´en´eralis´es, ce qui permet de conclure. L’algorithme utilis´e pour ordonner totalement les sommets est d´eterministe et son r´esultat ne d´epend que de la relation de sous-terme et de l’ordre sur les symboles. Donc son r´esultat ne d´epend que du terme ou de l’ensemble de termes repr´esent´e, et pas du graphe initial. On a donc une repr´esentation canonique d’un terme ou d’un ensemble de termes. L’algorithme est en PTIME du nombre d’arˆetes.
3.5.5
Insertion d’un terme dans un graphe orient´ e acyclique
Beaucoup de probl`emes qui se posent `a nous se ram`enent `a celui de l’insertion d’un terme t repr´esent´e par un graphe orient´e acyclique dans un graphe repr´esentant un ensemble de termes valeurs V . Par exemple, tester si t0 est un sous-terme de t peut ˆetre fait en deux ´etapes : 1. construire le graphe canonique repr´esentant t, et en d´eduire une repr´esentation Gt de {t} ; 2. ins´erer t0 dans Gt . Si un sommet doit ˆetre ajout´e, alors t0 n’est pas sous-terme de t. Cette op´eration est polynomiale. La proc´edure Insertion, d´ecrite dans la figure 3.4, consiste a` ins´erer les sous-termes de t les uns apr`es les autres dans l’ordre d´efini dans la section 3.5.4.i. Si le terme ` a ins´erer n’est pas dans le graphe, alors il faut ajouter un sommet le repr´esentant, et des arˆetes pointant vers ses fils (qui ont d´ej`a ´et´e ins´er´es). La proc´edure ins´ erer ins`ere dans un graphe G un terme dont tous les sous-termes stricts sont d´ej`a repr´esent´es dans G. Cette proc´edure est polynomiale, donc le probl`eme d’insertion d’un terme dans un ensemble peut ˆetre r´esolue en temps polynomiale en la taille de la repr´esentation du terme et de l’ensemble. D’autre part, l’unicit´e de la repr´esentation par un graphe implique que le test d’´egalit´e de deux graphes peut se faire en temps polynomial en la taille de ces graphes. Les probl`emes suivants peuvent ˆetre donc ˆetre r´esolus en temps polynomial en la taille des donn´ees en entr´ee : – Est-ce que deux termes t et t0 sont ´egaux ? – Est-ce que le terme t appartient `a l’ensemble E ?
46
Chapitre 3. Termes, classes d’´equivalence et repr´esentations
Insertion(Gt , GV ) : Soit Gt = ((ti )i∈{1,...,n} , At ) et GV = ((vi )i∈{1,...,m} , AE ) les graphes repr´esentant t et E avec les listes de sommets tri´ees pour l’ordre Fproto G = GE Pour i de 1 ` a n faire G=ins´ erer(ti , G) finfaire Fig. 3.4 – Algorithme d’insertion d’un terme dans un ensemble. – Est-ce que le terme t est dans (E) ? La repr´esentation des termes par des graphes orient´es acycliques permet d’obtenir une complexit´e polynomiale en la taille du graphe pour les op´erations que nous consid´ererons dans la suite de ce document. Nous n’avons pas trait´e l’unification parmi ces op´erations. Lorsque des termes op´erations sont consid´er´es sans th´eorie ´equationnelle, la repr´esentation de termes par des graphes orient´es acycliques permet d’obtenir un algorithme polynomial en la taille de la repr´esentation par un dag de ce terme. Ce r´esultat sera utilis´e dans le chapitre 6.
3.6
Conclusion
Lors de l’analyse d’un protocole, seule la valeur des messages ´echang´es doit ˆetre prise en compte pour d´efinir les actions possibles des acteurs et de l’intrus. Ces valeurs sont d´efinies par une relation d’´equivalence sur les termes. Nous avons donn´e dans ce chapitre une repr´esentation simple des classes d’´equivalences par des termes valeurs. Cette repr´esentation est non ambigu¨e si ces termes valeurs sont en forme normale. L’´ecriture de ces termes repose sur l’utilisation d’ensembles et de multi-ensembles. Les op´erations sont donc plus coˆ uteuses que sur des termes op´erations, mais nous retiendrons que toutes les op´erations que nous consid´ererons dans la suite de ce document peuvent ˆetre effectu´ees en un temps polynomiale en la taille de la repr´esentation d’un terme valeur ou d’un ensemble de termes.
4
Accessibilit´ e dans le cas clos 4.1
Introduction
Ce chapitre peut ˆetre divis´e en trois parties distinctes. Une premi`ere partie g´en´erale, tout d’abord, dans laquelle est introduite la notion de d´eduction par des r`egles de r´e´ecriture. Une seconde partie, o` u nous pr´esentons les r`egles de r´e´ecritures utilis´ees dans le cadre de l’´etude de protocoles cryptographiques. Enfin, nous pr´esentons d’autres approches possibles. Tout d’abord, donc, nous consid´erons des termes sur une signature quelconque, et d´efinissons des syst`emes de r´e´ecritures sur des ensembles de termes dans la section 4.2. Une particularit´e de ces syst`emes est qu’ils n’enl`event jamais un terme d’un ensemble, ce qui permet de prouver facilement diverses propri´et´es. Nous consid´erons ensuite, dans la section 4.3, des syst`emes de r´e´ecritures particuliers, que nous appelons canoniques, et dont toute combinaison permet d’avoir un syst`eme de r´e´ecriture local. Nous d´efinissons ensuite les probl`emes d’accessibilit´e close dans la section 4.4. Informellement, un probl`eme d’accessibilit´e close pour un ensemble de termes E et un terme t consiste ` a chercher si il est possible, partant de E, de d´eduire un ensemble F contenant le terme t. Nous donnons la complexit´e de ce probl`eme, dans le cas de syst`emes locaux, en fonction de la complexit´e du probl`eme consistant `a savoir si, ´etant donn´es deux ensembles E et F , il est possible de passer en faisant une seule d´eduction de l’un `a l’autre. Ensuite, nous pr´esentons un syst`eme de r`egles de d´eductions dans le cadre des protocoles cryptographiques dans la section 4.5. Ce syst`eme est uniquement bas´e sur les propri´et´es des op´erations d´ecrites dans le chapitre 3. Nous montrons, op´erateur par op´erateur, que le syst`eme de d´eduction associ´e ` a un constructeur f est canonique. Nous en concluons, dans la section 4.6, que les probl`emes d’accessibilit´e close, dans le cadre des protocoles cryptographiques, sont polynomiaux pour toute combinaison des syst`emes de r`egles associ´es aux constructeurs pr´esent´es dans le chapitre 3. Enfin, nous pr´esentons d’autres approches permettant de traiter les probl`emes d’accessibilit´e close. Nous commen¸cons par pr´esenter le formalisme des r`egles d’Oracle, qui est le pr´ecurseur des syst`emes canoniques, dans la section 4.7. Nous avons utilis´e ce formalisme avec beaucoup de succ`es pour ajouter un op´erateur en sus des op´erateurs de chiffrement parfait. Nous expliquons aussi pourquoi, bien que les syst`emes canoniques sont plus restrictifs, nous avons pr´ef´er´e les pr´esenter dans ce document. Nous pr´esentons enfin, dans la section 4.8, les travaux d’autres auteurs s’´etant int´eress´es aux probl`emes d’accessibilit´e close. Dans le cadre de ce chapitre, nous d´esignons par terme les termes valeurs en forme normale, et nous notons T(F) = pT(Fproto )q. Traitement de l’op´ erateur −1 Lorsque la signature F contient l’op´erateur unaire −1 dont le rˆole sera d´ecrit dans la sous-section 4.5.3, on d´efinit une relation d’´equivalence ≡ −1 sur les termes de T(F) : −1 ∀t, t0 ∈ T(F), t ≡ −1 t0 ⇐⇒ (t = t0 ∨ t0 = t−1 ∨ t = t0 ) Nous notons ∈≡ −1 (resp. ⊂≡ −1 ) l’appartenance `a un ensemble (resp. l’inclusion dans un ensemble) dans T(F)/≡ −1 . Par exemple, on a : −1 a , b ⊂≡ −1 a, b−1 , c 47
48
Chapitre 4. Accessibilit´e dans le cas clos
4.2
R` egles de r´ e´ ecriture sur des ensembles de termes
Soit F une signature, T(F) l’ensemble des termes sur F. Pour E ⊆ T(F) et t ∈ T(F), on note E, t l’ensemble E ∪ {t} et E \ t l’ensemble E \ {t}. D´ efinition 23 (R`egles de r´e´ecriture sur des ensembles) Une r`egle de r´e´ecriture sur des ensembles est un couple (l, r) avec l ⊂fini T(F) et r ∈ T(F) \ l, not´ee l → r. Dans la suite, les ensembles de r`egles de r´e´ecriture sur des ensembles seront not´es R avec les d´ecorations usuelles. Par abus de langage, on parlera parfois simplement de syst`emes de r´e´ecriture. Pour d´esigner des syst`emes utilis´es dans le cadre de l’´etude de protocoles cryptographiques, nous emploierons aussi L et les d´ecorations usuelles. Les r`egles elles-mˆemes seront not´ees R, avec les d´ecorations habituelles. D´ efinition 24 (Relation de transition) Soient E et F deux sous-ensembles finis de T(F), et R un ensemble de r`egles de r´e´ecriture sur des ensembles. Nous notons E →R F si il existe l → r ∈ R telle que : 1. l ⊆ E 2. F = E, r La d´efinition de la relation de transition implique que ces r`egles ne peuvent qu’augmenter la taille de l’ensemble sur lequel elles sont appliqu´ees. Dans la suite, on utilisera ce type de r`egles pour mod´eliser les d´eductions possibles ` a partir d’un ensemble de connaissances. La croissance pour l’inclusion des ensembles correspond alors au fait que les connaissances d´eduites ne sont jamais oubli´ees. ´ Etant donn´e un syst`eme R, on note aussi E ↔R F si E →R F ou E ←R F , et →∗R (respectivement ≡R ) la clˆ oture r´eflexive et transitive de →R (respectivement ↔R ). Si R = {R}, nous notons E →R F (resp. E ↔R F et E ←R F ) la relation E →{R} F (resp. E ↔{R} F et E ←{R} F ). Proposition 8 (Confluence) E ∗
∗
E2
E1 ∗∗
F Dans ce sch´ema, les fl`eches continues repr´esentent les hypoth`eses, et les fl`eches discontinues repr´esentent la conclusion. Preuve. Si D1 : E →d1 . . . →dk E1 et D2 : E →d01 . . . →d0l E2 , on remarque que les concat´enations D = D1 D2 et D0 = D2 D1 sont aussi des suites de transitions par croissance des ensembles, et qu’elles aboutissent au mˆeme ensemble F . Proposition 9 (Church-Rosser) Pour tout syst`eme de r´e´ecriture sur des ensembles R, si E ≡R F , alors il existe E 0 tel que E →∗R E 0 et F →∗R E 0 . Il s’agit de l’analogue de la propri´et´e de Church-Rosser pour les syst`emes de r´e´ecriture sur des termes. Elle peut ˆetre d´ecrite par la figure 4.1 : La preuve est bas´ee sur la proposition 8. Preuve. Par hypoth`ese, on a : E = E0 ←∗R E1 →∗R E2 . . . →∗R En = F et par la proposition 8, on peut remplacer E0 ←∗R E1 →∗R E2 par E0 →∗R E10 ←∗R E2 . En it´erant, on obtient le r´esultat annonc´e.
4.3. Syst`emes locaux
49
E
R
En−1
E1
∗ R
E0
R
F
∗ R
Fig. 4.1 – Propri´et´e de Church-Rosser pour les syst`emes de r´e´ecriture sur des ensembles de termes. D´ efinition 25 (clˆ oture par R) Soit E ⊆ T(F) et R un syst`eme de r´e´ecriture sur des ensembles. R La clˆoture de E par R, not´ee E , est d´efinie par : E
R
= {t | ∃F ⊆ T(F), t ∈ F et E →∗R F }
´ Proposition 10 (Equivalence de ≡R et de la clˆ oture) R R Pour tous les ensembles E et F , on a E = F si, et seulement si, E ≡R F R
Preuve. Dans le sens direct, comme E ⊆ E pour tout ensemble E et tout syst`eme de r´e´ecriture R R R R sur des ensembles de termes R, E = F implique E ⊆ F et F ⊆ E . donc : ∃F 0 , F →∗R F, E, F 0 et : ∃E 0 , E →∗R F, E, E 0 donc : F →∗R F, E, F 0 , E 0 et : E →∗R F, E, F 0 , E 0 soit : F ≡R E La r´eciproque correspond ` a l’utilisation de la proposition 9 et `a la remarque, que la clˆoture est une fonction croissante des ensembles de termes vers les ensembles de termes : il existe E 0 tel que R R R E →∗R E 0 et F →∗R E 0 . L’inclusion E ⊆ E 0 implique E ⊆ E 0 . D’autre part, E 0 ⊆ F , donc R R R R E 0 ⊆ F , et donc E ⊆ F . L’inclusion inverse se montre de la mˆeme fa¸con, ce qui conclut la preuve. D´ efinition 26 (D´erivation) Une d´erivation D dans un syst`eme de r´e´ecriture R est une suite d’ensembles (Ei )i∈{0,...,n} telle que : 1. ∀i ∈ {1, . . . , n} , ∃ti ∈ T(F),
Ei \ Ei−1 = ti
2. ∀i ∈ {1, . . . , n} , Ei−1 →R Ei Dans ce cas, nous disons que D part de E0 , arrive en En , et a pour but tn . Lorsque le syst`eme de r´e´ecriture sur les ensembles R est clairement sp´ecifi´e par le contexte, nous parlerons plus simplement de d´erivation. Dans cette d´efinition, la premi`ere condition exprime que les ensembles de termes sont strictement croissants, la seconde permet d’avoir, pour une d´erivation R (Ei )i∈{0,...,n} , En ⊆ E0 . Par d´efinition, si (Ei )i∈{0,...,n} est une d´erivation de but t, alors t ∈ / Ej R
pour j ∈ {0, . . . , n − 1} et t ∈ E0 . D´ efinition 27 (D´erivation bien form´ee) Une d´erivation (Ei )i∈{0,...,n} partant de E de but t est bien form´ee si : ∀i ∈ {1, . . . , n} , Ei \ Ei−1 ∈
4.3
(E, t)
Syst` emes locaux
Nous introduisons maintenant des syst`emes de r´e´ecriture sur des ensembles de termes ayant de bonnes propri´et´es permettant de d´ecider efficacement si un terme est dans la clˆoture d’un ensemble de termes.
50
4.3.1
Chapitre 4. Accessibilit´e dans le cas clos
Introduction
On consid`ere des termes sur une signature F, un constructeur f ∈ F d’arit´e non nulle et des fonctions α : → servant ` a r´eindicer des termes. Dans cette section, l’´egalit´e des termes est l’´egalit´e syntaxique. Pour simplifier les notations, nous notons f (t1 , . . . , tn ) un f -terme dont les sous-termes stricts maximaux pour la relation de sous-terme sont t1 , . . . , tn . Par exemple, si un constructeur f a comme premier argument un terme t1 et comme second argument un ensemble {t2 , . . . , tn } ou un multi-ensemble (g´en´eralis´e ou non) de support {t2 , . . . , tn }, nous le notons simplement f (t1 , . . . , tn ).
4.3.2
D´ efinitions
D´ efinition 28 (R`egles de f -composition pures) Une r`egle de r´e´ecriture sur des ensembles de termes est une r`egle de f -composition si elle est de la forme : ∃f 0 ∈ F, ∀i ∈ {1, . . . , n} , ∀ti ∈ Fi , f (t1 , . . . , tk1 ), . . . , f (tkl−1 +1 , . . . , tkl ), tkl +1 , . . . , tn → f (tα(1) , . . . , tα(m) ) avec : 0 – F i = T(F) \ {t | t f -terme} i = T(F) ou F – tα(1) , . . . , tα(m) ⊆ {t1 , . . . , tn } – {tkl +1 , . . . , tn } ⊆ {t1 , . . . , tkl } ∪ tα(1) , . . . , tα(m) . La quantification sur tkl +1 , . . . , tn implique qu’un de ces terme peut ˆetre un f -terme. Dans une f -r`egle pure, un f -terme u est dit ˆetre utilis´e en tant que f -terme si il est ´egal `a un des termes f (tj , . . . , tj 0 ). La condition sur les Fi sera utilis´ee pour l’application aux r`egles de r´e´ecriture de Fproto , qui sont d´efinies sur des ensembles de termes en forme normale. Elle indique que ti est un g-terme en forme normale avec g 6= f 0 . La quantification est utilis´ee pour avoir des r`egles uniformes par rapport aux termes et permettra de remplacer des termes par d’autres. D´ efinition 29 (R`egles de f -d´ecomposition pures) Une r`egle de r´e´ecriture sur des ensembles de termes est une r`egle de f -d´ecomposition pure si elle est de la forme : ∃f 0 ∈ F, ∀i ∈ {1, . . . , n} , ∀ti ∈ Fi , f (t1 , . . . , tk1 ), . . . , f (tkl−1 +1 , . . . , tkl ), tkl +1 , . . . , tn → t avec : – Fi = T(F) ou Fi = T(F) \ {t | t f 0 -terme} – {tkl +1 , . . . , tn } ⊆≡ −1 {t1 , . . . , tkl } et t ∈ {t1 , . . . , tkl }. Dans une telle r`egle, le terme f (t1 , . . . , tk1 ) (choisi arbitrairement parmi ceux ayant t comme sous-terme strict maximal) est le terme d´ecompos´e. Soit R un syst`eme de r`egles de r´e´ecriture. Pour deux ensembles de termes E et F et pour un terme t, on note E →R(t) F pour abr´eger E →R F et F = E, t. D´ efinition 30 (f -syst`eme canonique) Soit f ∈ F un constructeur, Rf = Rc,f ∪ Rd,f un syst`eme de r`egles de f -composition et de f d´ecomposition tels que Rc,f ∩Rd,f = ∅ et ρ ∈ {Rc,f , Rd,f }. Rf est canonique si pour tout ensemble de termes E ⊆ T(F), et pour tous termes u, t ∈ T(F) \ E, tels que : E →Rc,f E, t →ρ E, t, u on a E →ρ E, u ou t ∈≡ −1
(E, u).
La condition de cette d´efinition porte sur les r`egles de composition. Elle indique que si un terme t produit `a partir de E est utilis´e pour produire ensuite un terme u (la premi`ere alternative est fausse), alors ce terme est dans l’ensemble (E, u).
4.3. Syst`emes locaux
51
D´ efinition 31 (Syst`eme local) Un syst`eme R de r´e´ecriture sur des ensembles est dit local si pour tout ensemble de termes E et R pour tout terme t ∈ E , il existe dans R une d´erivation bien form´ee partant de E et de but t. Dans la sous-section suivante, nous allons montrer que toute combinaison de syst`emes canoniques est un syst`eme local.
4.3.3
Combinaison de syst` emes canoniques
Dans la suite de cette section, soit F une signature arbitraire, f1 , . . . , fk des constructeurs tous distincts d’arit´e non nulle dans F, et Rf1 , . . . , Rfk tels que Rfi soit un fi -syst`eme canonique. Soit R = ∪i∈{1,...,k} Rfi . Nous notons Rc = ∪i∈{1,...,k} Rc,fi et Rd = ∪i∈{1,...,k} Rd,fi . Soit enfin une d´erivation D = (Ei )i∈{0,...,n} partant d’un ensemble E de but b. Les r´esultats suivants sont ´enonc´es avec ces notations. Lemme 4 Si F →R(t) F 0 et – F →Rc (t) F 0 – (F 0 ) =
(F 0 ) 6=
(F ), alors :
(F ) ∪ {t}
Preuve. Par d´efinition d’un r`egle de d´ecomposition, si F →Rd F 0 , alors (F 0 ) = (F ). Donc l’hypoth`ese implique que la transition est faite par une r`egle de composition. Le deuxi`eme point est alors une cons´equence de la d´efinition des r`egles de composition. Lemme 5 Si F →Rd F, t est dans D, alors t est sous-terme de E. Preuve. Soit i l’indice minimal tel que t soit sous-terme de Ei . Si i 6= 0, alors (Ei−1 ) 6= (Ei ), donc, par le lemme 4, t ∈ Ei et Ei−1 →Rc Ei−1 , t. L’hypoth`ese F →Rd F, t contredit alors la d´efinition d’une d´erivation. Lemme 6 Supposons qu’il n’y ait pas de r`egle F →Rc t−1 dans R. Si D est de longueur minimale parmi les d´erivations partant de E de but b et Ei →Rc t, Ei est dans D, alors t ∈ (E, b). Preuve. L’hypoth`ese implique que pour tout terme t, si il y a une transition F →R F, t−1 dans D, c’est une d´ecomposition, et par le lemme 5, t−1 est un sous-terme de E, et donc t−1 et t sont dans (E). Soit : Ω = {Ei−1 →Ri Ei−1 , ti ∈ D | ∃f, Ri ∈ Rc,f et ti 6∈ (E, b)} Montrons par contradiction que Ω = ∅. Si Ω 6= ∅, soit : k = max(i | Ei−1 →Ri Ei−1 , ti ∈ Ω) Par la remarque pr´eliminaire, tk n’est pas un −1 -terme. Par d´efinition de Ω, on a k < n. Soit f tel que Rk ∈ Rc,f . Par minimalit´e de D, l’ensemble : Θ = {j | Ej−1 →l→r Ej−1 , tj et tk ∈ l} est non vide. Soit j le minimum de Θ. Par d´efinition d’une d´erivation, on a k < j. Par minimalit´e de j, tk n’est dans le membre gauche d’aucune r`egle entre Ri+1 et Rj−1 (inclus), donc il existe une d´erivation : E0 →R1 . . . →Ri−1 Ei−1 →Ri+1 Ei+1 \ tk → . . . →Rj−1 Ej−1 \ tk Posons F = Ej−1 \ tk . On a donc : F →Rc,f F, tk →R F, tk , tj Affirmation 1. tk ∈ /
(F ).
52
Chapitre 4. Accessibilit´e dans le cas clos
Preuve. Par d´efinition de tk , on a tk ∈ / (E0 ). Il n’y a pas de r`egle ajoutant tk dans la d´erivation partant de E0 et arrivant en F . Par le lemme 4, on a donc tk ∈ / (F ). Affirmation 2. tk ∈ /
(tj ).
Preuve. Par contradiction, si tk ∈ (tj ), alors l’affirmation 1. implique tj ∈ / (F, tk ). Par le lemme 4, la r`egle appliqu´ee est donc une r`egle de composition. Mais alors tk ∈ (tj ) implique, par d´efinition de tk , que tj ∈ / (E0 , b), ce qui contredit la maximalit´e de k. Affirmation 3. tk ∈
(F, tj ).
Preuve. Par minimalit´e de D, supposons que F 6→R F, tj . Par la d´efinition d’un syst`eme canonique et par les affirmations 1. et 2., on a alors R ∈ / Rf . Mais alors, par d´efinition des r`egles de composition et de d´ecomposition, tk ∈≡ −1 (F, tj ). Par la remarque pr´eliminaire, tk n’est pas un −1 -terme, donc tk ∈ (F, tj ). Pour une d´erivation de longueur minimale, supposer Ω non vide entraˆıne Θ non vide, ce qui implique les affirmations contradictoires 1., 2. et 3. Donc par contradiction, Ω est n´ecessairement vide, et donc D est bien form´ee. Avec les notations pr´ec´edentes, nous pouvons maintenant ´enoncer le th´eor`eme de combinaison suivant : Th´ eor` eme 2 (Th´eor`eme de combinaison) S’il n’y a pas de r`egle F →Rc t−1 dans R, alors R est un syst`eme local. R
Preuve. Soit E un ensemble de termes sur la signature F, t ∈ E et D une d´erivation de longueur minimale partant de E de but t. Par les lemmes 5 et 6, D est une d´erivation bien form´ee, donc R est un syst`eme local. Ce th´eor`eme est tr`es important, car il permet de combiner des r`egles de d´eductions portant sur des constructeurs diff´erents. Dans la section 4.5, nous donnons les r`egles de r´e´ecritures sur les formes normales de termes valeurs pour les constructeurs de Fproto . Nous montrons que les syst`emes de r´e´ecriture de chacun de ces constructeurs sont canoniques. Cela implique que tout syst`eme de r´e´ecriture obtenu par combinaison des r`egles de d´eduction de ces diff´erents op´erateurs est local.
4.4
Probl` eme d’accessibilit´ e close
Dans cette section, nous consid´erons le cadre plus g´en´eral d’une signature F, dont les constructeurs peuvent avoir des termes, des ensembles de termes et des multi-ensembles (g´en´eralis´es ou non) de termes comme argument. Cela permet d’utiliser les r´esultats du chapitre 3, section 3.5 sur les tailles de repr´esentation des termes et ensembles de termes. Soient E, F, F 0 ⊂fini T(F) et t ∈ T(F), et un syst`eme de r´e´ecriture sur les ensembles R.
4.4.1
Probl` emes de d´ ecision
Soit le probl`eme de d´ecision suivant :
Accessibilite Close(E, t, R) : Est-ce que t ∈ E R ? Pour trouver la complexit´e d’un probl`eme Accessibilite Close(E, t, R), il est possible de
commencer par borner la complexit´e du probl`eme de d´ecision suivant :
Transition(E, F, R) : Est-ce que E →R F ?
4.4. Probl`eme d’accessibilit´e close
53
Taille de probl` emes en entr´ ee. Nous prenons comme taille d’un probl`eme en entr´ee la taille de la repr´esentation par des graphes (voir chapitre 3, section 3.5) : – pour le probl`eme (F, F 0 , R), la taille de l’entr´ee est la somme des tailles des repr´esentations des ensembles F et F 0 ; – pour le probl`eme (E, t, R), la taille de l’entr´ee du probl`eme est la somme des tailles des graphes repr´esentant E et t.
Transition Accessibilite Close
4.4.2
Complexit´ e relative de ces probl` emes
Dans le th´eor`eme suivant, nous consid´erons une classe de complexit´e C avec : C ∈ {PTIME, NPTIME, EXPTIME}
Accessibilite Close Transition
Th´ eor` eme 3 (Complexit´e du probl`eme (E, t, R)) Si R est un syst`eme local et (F, F 0 , R) est dans la classe de complexit´e C, alors (E, t, R) est dans la classe C.
Accessibilite Close
R
Preuve. Nous allons donner un algorithme en max (PTIME, C) calculant E ∩ (E, t). R local implique que cet algorithme est correct et complet. Une fois ce calcul effectu´e, on peut trouver, en R R R temps O(n2 ), si t ∈ E ∩ (E, t). D’autre part, t ∈ E si et seulement si t ∈ E ∩ (E, t), ce qui prouve le th´eor`eme.
Accessibilite Close
´cidant Algorithme de (E, t, R) : G := (E, F ) ∪ t−1 | t ∈ (E, F ) ∪ t | t−1 ∈ (E, F ) K := E faire H := K pour tout t ∈ G si (H, (H, t), R) K := K, t refaire tant que H 6= K si F ⊆ H r´ epondre sinon r´ epondre
Transition oui non
On a |G| ≤ 2| (E, t)| ≤ n d’apr`es le chapitre 3, section 3.5. La boucle faire...refaire sera ex´ecut´ee au plus |G| fois. La boucle pour tout est `a chaque fois ex´ecut´ee |G| fois. Le probl`eme (H, (H, t), R) est donc test´e O(n2 ) fois. Le graphe repr´esentant H et t a une taille born´ee par 2n, ce qui implique le th´eor`eme.
Transition
Transition
Ce th´eor`eme sera surtout utilis´e, dans la suite, avec un probl`eme (E, F, R) dans PTIME ou dans EXPTIME. Le th´eor`eme sera utilis´e dans le cadre de la combinaison de diff´erents syst`emes de r´e´ecriture sur des ensembles. Nous ´enon¸cons tout de suite la proposition suivante, qui permet de trouver la complexit´e du probl`eme (E, F, R) lorsque R est une union finie (non n´ecessairement disjointe) de syst`emes de r´e´ecritures sur des ensembles.
Transition
Proposition 11 Soient R1 , . . . , Rk des syst`emes de r´e´ecriture sur les ensembles de T(F), C1 , . . . , Ck les classes de complexit´e (dans {PTIME, NPTIME, EXPTIME}) des probl`emes (E, F, Ri ), i ∈ {1, . . . , n} et soit : n [ R= Ri
Transition
i=1
Alors
Transition(E, F, R) est dans i∈{1,...,n} max (Ci ) Preuve. La r´eponse au probl`eme Transition(E, F, R) est la disjonction des r´eponses aux probl`emes Transition(E, F, Ri ).
54
Chapitre 4. Accessibilit´e dans le cas clos
4.5
Symboles et syst` emes dans le cadre de l’´ etude de protocoles
Dans la cadre de l’´etude de protocoles cryptographiques, nous consid´erons une signature F dont les symboles d’arit´e non nulle sont parmi Fproto (voir chapitre 3, section 3.3.5 pour une description de Fproto ). Dans la suite de cette section, nous donnons les r`egles de d´eduction associ´ees `a chacun de ces op´erateurs, montrons que chaque syst`eme est canonique et prouvons, pour chaque op´erateur f ∈ Fproto , que (E, F, Rf ) est dans PTIME. Dans les syst`emes de r`egles que nous donnons, la condition Rc,f ∩ Rd,f = ∅ sera toujours vraie.
Transition
4.5.1
Op´ erateur h , i
Informellement, l’op´erateur h , i est utilis´e pour faire la concat´enation de deux messages. Les r`egles de h , i-composition sont de la forme : Lc,h , i : ∀a, b ∈ T(F),
a, b → ha, bi
D’autre part, ´etant donn´e un message ha, bi, il est possible d’en d´eduire les valeurs de a et de b, ce qu’on mod´elise par les r`egles de h , i-d´ecomposition suivantes : Ld,h , i : ∀a, b ∈ T(F), ∀a, b ∈ T(F),
ha, bi → a ha, bi → b
Proposition 12 – Lc,h , i est un ensemble de r`egles de composition ; – Ld,h , i est un ensemble de r`egles de d´ecomposition. Preuve. La proposition est vraie par d´efinition pour les r`egles de composition. Il n’y a pas de h , i-fonction de normalisation, donc a et b sont des sous-termes de ha, bi. Donc Ld,h , i est bien un ensemble de r`egles de d´ecomposition. D’autre part, la condition sur les syst`eme canoniques de la d´efinition 30 est satisfaite. Proposition 13 En posant Lh , i = Ld,h
, i
∪ Lc,h
, i,
Lh
, i
est canonique.
Preuve. Soient E ⊂ T(F) et t, u deux termes de T(F) \ E tels que : E →R1 E, t →R2 E, t, u avec R1 ∈ Lc,h , i et R2 ∈ Lh , i . Soit R1 : a, b → ha, bi et R2 : E2 → u. Si t ∈ / E2 , le r´esultat est imm´ediat. Supposons t ∈ E2 . Si R2 ∈ Ld,h , i , alors E2 = ha, bi, et u ∈ {a, b} ⊆ E, ce qui contredit l’hypoth`ese u ∈ / E. Donc R2 ∈ Lc,h , i et on a : R2 : t, t0 → ht, t0 i ou R2 : t, t0 → ht0 , ti. Donc t∈ (u). Malgr´e le nombre infini de r`egles ` a consid´erer, il est possible de d´ecider le probl`eme :
Transition(E, F, RL
h , i
)
en temps polynomial.
Transition
Proposition 14 (Complexit´e du probl`eme (E, F, Lh Le probl`eme (E, F, Lh , i ) est dans PTIME.
Transition
, i ))
4.5. Symboles et syst`emes dans le cadre de l’´etude de protocoles
55
Preuve. Soit n la taille du probl`eme d’entr´ee. D’abord, on peut v´erifier en temps O(n3 ) que F = E, t avec t ∈ / E. Si cette ´egalit´e n’est pas v´erifi´ee, la r´eponse au probl`eme (E, F, RLh , i ) est . Si cette ´egalit´e est vraie, il faut tester si une r`egle de composition ou de d´ecomposition peut ˆetre appliqu´ee pour « construire » t ` a partir de E. Si t = ht1 , t2 i, on peut tester en temps O(n2 ) si t1 et t2 appartiennent ` a E (application d’une r`egle de composition). Enfin, l’existence d’un terme ht, t0 i 0 ou ht , ti dans E peut ˆetre test´ee en temps O(n2 ) (application d’une r`egle de d´ecomposition).
Transition
non
Enfin, si une r`egle l → r ∈ Rh , i est appliqu´ee sur un ensemble E de termes en forme normale, soit E →l→r E, r, alors E, r est aussi un ensemble de termes en forme normale.
4.5.2
Op´ erateurs { }s , { }s,ebc et { }s,cbc s
L’op´erateur { } est utilis´e pour simuler le chiffrement sym´etrique. Le premier argument est le texte clair du message, et le second est la clef sym´etrique. On ne restreint pas les clefs sym´etriques aux clefs atomiques, donc la clef peut ˆetre n’importe quel message. 4.5.2.i
Cas du chiffrement parfait, op´ erateur { }
s
s
Les r`egles de { } -composition sont de la forme : Lc,{ }s : ∀a, b ∈ T(F),
s
a, b → {a}b
Pour d´ecomposer un message chiffr´e par une clef sym´etrique b, et sous l’hypoth`ese de chiffrement parfait, il faut connaˆıtre la clef b. Toujours sous cette hypoth`ese, il n’est pas possible de d´eduire la s s clef b d’un message {a}b . Les r`egles de { } -d´ecomposition sont donc de la forme : Ld,{ }s : ∀a, b ∈ T(F),
s
{a}b , b → a
L`a encore, toutes les conditions sur les r`egles de composition et de d´ecomposition des d´efinitions 28 et 29 sont v´erifi´ees, et on v´erifie sans peine que l’ensemble L{ }s = Lc,{ }s ∪ Ld,{ }s des r`egles est un syst`eme canonique. Soit : Proposition 15 Le syst`eme L{ }s est canonique. De mˆeme que dans le cas de l’op´erateur h , i, et malgr´e le nombre infini de r`egles `a consid´erer, le probl`eme (E, F, RL{ }s ) peut ˆetre d´ecid´e en temps polynomial. La preuve est omise, car tr`es similaire ` a celle de la proposition 14.
Transition
Transition
Proposition 16 (Complexit´e du probl`eme (E, F, L{ Le probl`eme (E, F, L{ }s ) est dans PTIME.
Transition
}s ))
Enfin, si E →R{ }s F et E est un ensemble de termes en forme normale, alors F est aussi un ensemble de termes en forme normale. 4.5.2.ii
s,ebc
Cas du chiffrement par blocs, op´ erateur { }
Si un algorithme de chiffrement par bloc est utilis´e, il est possible d’extraire individuellement chaque bloc chiffr´e d’un message chiffr´e. On parle alors de propri´et´e d’homomorphisme (voir le chapitre 2, section 2.1.2.i) du chiffrement par rapport aux blocs, qui peut ˆetre mod´elis´ee par l’´egalit´e : D E s,ebc s,ebc s,ebc {a, b}k = {a}k , {b}k Le message repr´esentant le chiffrement de la concat´enation des blocs t1 , . . . , tn par une clef s,ebc s,ebc K est repr´esent´e par le terme {t1 , . . . , tn }K . Les r`egles de compositions de l’op´erateur { } peuvent ˆetre divis´ees en deux types :
56
Chapitre 4. Accessibilit´e dans le cas clos
– des r`egles de composition correspondant au chiffrement d’un texte clair par une clef ; – des r`egles de composition utilisant la propri´et´e d’homomorphisme pour cr´eer un nouveau message chiffr´e ` a partir de messages chiffr´es par une mˆeme clef. Le probl`eme est que le syst`eme de r´e´ecriture sur les ensembles ayant ces r`egles pour r`egles de composition n’est pas canonique. Nous ajoutons donc un troisi`eme type de r`egles, dont les deux s,ebc premiers sont des cas sp´eciaux. Le syst`eme des { } -r`egles de composition que nous consid´erons est : Lc,{ }s,ebc : • ∀n ∈ ∗ , ∀t1 , . . . , tn ∈ T(F), ∀K ∈ T(F), s,ebc t1 , . . . , tn , K → {t1 , . . . , tn }K ∗ 0 0 • ∀l, kl , m ∈ , ∀t1 , . . . , tkl ∈ T(F), ∀t1 , . . . , tm ∈ T(F), s,ebc s,ebc s,ebc {t1 , . . . , tk1 }K , . . . , tkl−1 +1 , . . . , tkl K → {t01 , . . . , t0m }K 0 avec {t1 , . . . , t0m } ⊆ {t1 , . . . , tkl } ∗ 0 • ∀l, kl , n, m ∈ , ∀t1 , . . . , tn ∈ T(F), ∀t1 , . . . , t0m ∈ T(F), s,ebc s,ebc s,ebc {t1 , . . . , tk1 }K , . . . , tkl−1 +1 , . . . , tkl K , tkl +1 , . . . , tn , K → {t01 , . . . , t0m }K avec {t01 , . . . , t0m } ⊆ {t1 , . . . , tn } et {tkl +1 , . . . , tn } ⊆ {t01 , . . . , t0m } Pour ne pas avoir ` a utiliser l’op´erateur de couple dans les op´erations de d´ecryption, nous s,ebc afin de d´eduire changeons les r`egles de d´echiffrement par rapport `a celles de l’op´erateur { } ind´ependamment chaque bloc du message chiffr´e. Ld,{ }s,ebc : ∀n ∈
∗
, ∀i ∈ {1, . . . , n} , ∀t1 , . . . , tn ∈ T 0 , ∀K ∈ T(F), s,ebc {t1 , . . . , tn }K , K → ti
Notons que le troisi`eme type de r`egles de composition est inutile vis-`a-vis de la clˆoture d’un ensemble E : si K est dans E, alors il est toujours possible d’appliquer des r`egles de d´ecompositions, puis de composer le terme d´esir´e par une r`egle de composition du premier type. Cette d´erivation serait bien form´ee, mais ne serait pas de longueur minimale. Plus pr´ecis´ement, le syst`eme L{ }s,ebc ne serait pas canonique. La proposition suivante est une cons´equence directe de la d´efinition des r`egles de composition et de d´ecomposition. Proposition 17 s,ebc -composition ; – Lc,{ }s,ebc est un ensemble de r`egles de { } – Ld,{
s,ebc
}s,ebc
est un ensemble de r`egles de { }
-d´ecomposition ;
Il est l´eg`erement plus d´elicat de montrer que L{ }s,ebc est un syst`eme canonique. Proposition 18 L{ }s,ebc est un syst`eme canonique. o n / E. Tout Preuve. Soit ρ ∈ Lc,{ }s,ebc , Ld,{ }s,ebc , et E →Lc,{ }s,ebc E, t →ρ E, t, u avec t, u ∈ d’abord, remarquons qu’il est possible d’associer `a chaque r`egle de composition ou de d´ecomposition une clef K. Nous parlerons de clef d’une r`egle l → r. Cas ρ = Ld,{
}s,ebc .
Soit K la clef de la deuxi`eme r`egle, et supposons que E 6→ρ u. L’alternative s,ebc
est alors soit t = K, soit t est un { } -terme dont la clef de chiffrement est K. Dans le premier / E implique qu’une cas, t ∈ (E) par d´efinition des r`egles de Ld,{ }s,ebc . Dans le second, u ∈ r`egle de composition du deuxi`eme ou du troisi`eme type a ´et´e utilis´ee. Et u ∈ / E implique alors s,ebc qu’il existe un terme {t1 , . . . , tn }K et i ∈ {1, . . . , n} tel que ti = u. En utilisant t 6= K, on peut d´eduire que K ∈ E, et donc E →Ld,{ }s,ebc u, ce qui contredit l’hypoth`ese. Donc dans tous les cas, soit t ∈ (E), soit E →Ld,{ }s,ebc E, u.
4.5. Symboles et syst`emes dans le cadre de l’´etude de protocoles
57
Cas ρ = Lc,{ }s,ebc . Si la deuxi`eme r`egle est une r`egle de composition du premier type, alors soit t∈ (u), soit E →Lc,{ }s,ebc u. Sinon, soit K1 la clef de la premi`ere r`egle, et K2 la clef de la seconde. Si K1 = K2 , alors par d´efinition des r`egles de composition de deuxi`eme (cas pour deux r`egles du deuxi`eme type) ou troisi`eme (autres cas) type, on a E →Lc,{ }s,ebc u. Sinon, alors soit E →Lc,{ }s,ebc u, soit la deuxi`eme r`egle est du troisi`eme type, et t ∈ (u). Il nous reste ` a donner la complexit´e du probl`eme Proposition 19 (E, F, L{
Transition
}s,ebc )
Transition(E, F, L{ }
).
s,ebc
est dans PTIME.
Preuve. Comme dans le cas h , i, commen¸cons par v´erifier F \ E = t. Test de l’application d’une r` egle de d´ ecomposition. Une r`egle de d´ecomposition peut ˆetre s,ebc appliqu´ee pour obtenir t si, et seulement si, il existe un terme {t1 , . . . , tn }K dans E tel qu’il existe s,ebc i ∈ {1, . . . , n} avec ti = t et K ∈ E. La recherche des termes {t1 , . . . , tn }K peut ˆetre conduite en temps polynomial, et il y en a un nombre inf´erieur ou ´egal `a la taille de l’entr´ee, et il est possible pour chaque terme de tester en temps polynomial si la clef est dans E. Test de l’application d’une r` egle de composition. Si t est le r´esultat de l’application d’une s,ebc r`egle de composition, alors t = {t1 , . . . , tn }K . Pour une r`egle de composition du premier type, il suffit de tester t1 , . . . , tn , K ∈ E, ce qui peut ˆetre fait en temps polynomial. Pour une r`egle de composition du deuxi`eme type, soit : o n s,ebc P = ui | ∃ {u1 , . . . , um }K ∈ E Le terme t est le r´esultat de l’application d’une r`egle du deuxi`eme type si {t1 , . . . , tn } ⊆ P . L’inclusion peut se tester en temps polynomial, donc l’application d’une r`egle de composition du deuxi`eme type peut ˆetre test´ee en temps polynomial. Avec les mˆemes notations, tester l’application d’une r`egle de composition du troisi`eme type revient `a tester K ∈ E et {t1 , . . . , tn } ⊆ E ∪ P . s,ebc
Pour conclure le cas de l’op´erateur { } , remarquons que si une r`egle de L{ }s,ebc est appliqu´ee sur un ensemble de termes en forme normale, alors le r´esultat sera aussi un ensemble de termes en forme normale. 4.5.2.iii
s,cbc
Cas du chiffrement par blocs en mode chaˆın´ e, op´ erateur { }
Nous renvoyons au chapitre 2, paragraphe 2.1.2.ii pour la description des propri´et´es du chiffrement par bloc, et au chapitre 3, paragraphe 3.3.3.i pour une description de l’op´erateur. Les r`egles sont les suivantes : Lc,{ }s,cbc : ∀n ∈ ∗ , ∀t1 , . . . , tn ∈ T 0 , ∀K ∈ T(F), s,cbc t1 , . . . , tn , K → {t1 , . . . , tn }K ∗ ∀n ∈ , ∀i ∈ {1, . . . , n − 1} , ∀t1 , . . . , tn ∈ T 0 , ∀K ∈ T(F), s,cbc s,cbc {t1 , . . . , tn }K → {t1 , . . . , ti }K s,ebc
De la mˆeme mani`ere que pour l’op´erateur { } , nous mod´elisons le d´echiffrage en permettant de d´echiffrer ind´ependamment chaque bloc du message chiffr´e. Ld,{ }s,cbc : ∀n ∈ ∗ , ∀i ∈ {1, . . . , n} , ∀t1 , . . . , tn ∈ T 0 , ∀K ∈ T(F), s,cbc {t1 , . . . , tn }K , K → ti
58
Chapitre 4. Accessibilit´e dans le cas clos
Ces r`egles sont des r`egles de composition et de d´ecomposition. La proposition suivante se prouve en remarquant que : s,cbc
{t1 , . . . , tn }K
s,cbc
s,cbc
→ {t1 , . . . , ti }K
→ {t1 , . . . , tj }K
avec j < i < n peut se faire en une ´etape : s,cbc
{t1 , . . . , tn }K Proposition 20 En notant L{ }s,cbc = Ld,{
}s,cbc
∪ Lc,{
}s,cbc ,
s,cbc
→ {t1 , . . . , tj }K
le syst`eme L{
}s,cbc
est un syst`eme canonique.
En s’inspirant de la preuve pour l’op´erateur h , i, nous montrons que l’application du premier type de r`egles de composition ou d’une r`egle de d´ecomposition peut ˆetre test´ee en temps polynomial. s,cbc Pour tester si un terme {t1 , . . . , tn }K est le r´esultat d’une r`egle de composition du deuxi`eme type, s,cbc il suffit de consid´erer tous les termes {u1 , . . . , um }K de E (il y en a au plus un nombre lin´eaire en la taille de l’entr´ee) et de tester si ui = ti . Le nombre de tests `a faire est au plus lin´eaire en la taille de l’entr´ee, ce qui prouve la proposition suivante Proposition 21 Le probl`eme
Transition(E, F, L{ }
s,cbc
) est dans PTIME.
Enfin, par d´efinition, si une r`egle de L{ }s,cbc est appliqu´ee sur un ensemble de termes en forme normale, le r´esultat sera un ensemble de termes en forme normale.
4.5.3
Op´ erateurs { }p et { }p,rsa
4.5.3.i
Cas du chiffrement parfait, op´ erateur { }
p
p
L’op´erateur { } est utilis´e pour mod´eliser le chiffrement par clefs publiques/priv´ees. Les r`egles de composition sont similaires ` a celles du couple ou du chiffrement par clef sym´etrique sans r`egle pr´efixe : Lc,{ }p : ∀a, b ∈ T(F),
p
a, b → {a}b
Pour d´ecomposer un message chiffr´e par une clef sym´etrique b, et sous l’hypoth`ese du chiffrement parfait, il faut connaˆıtre la clef inverse b−1 . Si l’op´erateur −1 n’est pas dans la signature, on p n’autorise pas de r`egles de d´ecomposition. Sinon, les r`egles de { } -d´ecomposition sont de la forme : Ld,{ }p : ∀a, b ∈ T(F), ∀a, b ∈ T(F),
p
{a}b , b−1 → a p {a}b−1 , b → a
Les r`egles de Lc,{ }p sont des r`egles de composition par d´efinition. Pour montrer que les r`egles Ld,{ }p sont des r`egles de d´ecomposition, il faut utiliser que dans la d´efinition de ces r`egles, l’inclusion des ensembles de termes est d´efinie modulo la relation d’´equivalence ≡ −1 . On v´erifie alors facilement que les r`egles de Ld,{ }p sont des r`egles de d´ecomposition. Enfin, l’ensemble L{ }p = Lc,{ }p ∪ Ld,{ }p des r`egles est un syst`eme canonique. La preuve est omise car tr`es proche de celle de la proposition ´equivalente pour l’op´erateur h , i. Proposition 22 L{ }p est canonique.
Transition
Le probl`eme (E, F, RL{ }p ) peut ˆetre d´ecid´e en temps polynomial. L`a encore, la preuve est omise, car tr`es similaire ` a celle de la proposition 14. Proposition 23 Le probl`eme
Transition(E, F, L{ } ) est dans PTIME. p
Enfin, il est ´evident que si une r`egle R de L{ }p est appliqu´ee sur un ensemble E de termes en forme normale, soit E →R F , alors F est aussi un ensemble de termes en forme normale.
4.5. Symboles et syst`emes dans le cadre de l’´etude de protocoles
4.5.3.ii
59
p,rsa
Cas du chiffrement commutatif, op´ erateur { }
Dans le but de simplifier la pr´esentation, nous supposons que le symbole −1 , d’arit´e 1, est aussi dans la signature. Nous utilisons les op´erations standards sur les multi-ensembles et multi-ensembles g´en´eralis´es telles qu’elles sont d´efinies dans le chapitre 3, section 3.2. Nous rappelons que pour mod´eliser les propri´et´es d’un op´erateur de chiffrement asym´etrique de p,rsa type RSA, nous avons d´efini un op´erateur { } (voir chapitre 3, section 3.3.5) dont le deuxi`eme argument est le multi-ensemble des clefs chiffrant le message. p,rsa Nous rappelons aussi (voir chapitre 3, section 3.4) que si les { } -termes sont en forme p,rsa normale, alors pour t = {t0 }K , on a : p,rsa – t0 n’est pas un { } -terme ; – pour tout k ∈ T(F), K(k) = 0 ou K(k −1 ) = 0. Le premier point vient directement de la d´efinition de la fonction de normalisation, et le second indique que si t est normalis´e, il n’est pas chiffr´e `a la fois par une clef K et son inverse. p,rsa Notons T 0 = T(F) \ {t | t { } -terme}. Les r`egles de L{ }p,rsa sont de la forme : L{ }p,rsa : ∀n ∈
∗
, ∀t, t1 , . . . , tn ∈ T(F),
p,rsa
rsa
t, t1 , . . . , tn → p{t} tc1 ,...,tcn q {1 n } avec ∀i ∈ {1, . . . , n} , ci ≥ 1
Ces r`egles sont d´efinies sur les termes valeurs en forme normale. En notant : rsa
p,rsa
e = p{t} tx1 ,...,txn q {1 n } p,rsa
une telle r`egle est dans Lc,{ }p,rsa si e est un { } -terme, et dans Ld,{ }p,rsa sinon. Commen¸cons par montrer que les r`egles ainsi d´efinies sont bien des r`egles de composition et de d´ecomposition. Proposition 24 p,rsa -composition ; – Lc,{ }p,rsa est un ensemble de r`egles de { } p,rsa – Ld,{ }p,rsa est un ensemble de r`egles de { } -d´ecomposition. p,rsa
Preuve. Soit une { } ∀n ∈
∗
r`egle :
, ∀t, t1 , . . . , tn ∈ T(F),
t, t1 , . . . , tn → p{t}
rsa p,rsa q {tc11 ,...,tcnn }
avec ∀i ∈ {1, . . . , n} , ci ≥ 1 p,rsa
rsa
et notons e = p{t} tc1 ,...,tcn q son r´esultat. {1 n } Pour les r`egles de Ld,{ }p,rsa , on remarque que la condition ∀i ∈ {1, . . . , n} , ci > 0 et e non p,rsa p,rsa p,rsa {} -terme impliquent t { } -terme de la forme {e}Kt , et t1 −1 , . . . , tn −1 = (Kt ) par d´efinition de la fonction de normalisation. L’op´erateur −1 est dans la signature, donc la r`egle est bien une r`egle de d´ecomposition. p,rsa Pour les r`egles de Lc,{ }p,rsa , les deux cas t { } -terme ou non se traitent sans difficult´e, ce qui conclut la preuve de la proposition. Il faut maintenant prouver que L{ }p,rsa est un syst`eme canonique. Proposition 25 L{ }p,rsa est un syst`eme canonique. Preuve. Soit ρ ∈ Lc,{ }p,rsa , Ld,{ }p,rsa . Consid´erons les r`egles utilis´ees pour construire t et u `a partir d’un ensemble E de termes en forme normale : rsa p,rsa q {sc11 ,...,scnm } p,rsa n o rsa
a, s1 , . . . , sm
→Lc,{ }p,rsa
t = p{a}
b, t1 , . . . , tn
→ρ
u = p{b}
d
dn t1 1 ,...,tn
q
Supposons t ∈ {b, t1 , . . . , tn }, le r´esultat ´etant imm´ediat sinon. Il y a deux cas :
60
Chapitre 4. Accessibilit´e dans le cas clos
– si t = b, alors la r`egle : a, s1 , . . . , sm , t1 , . . . , tn → u = p{a}
n d1
p,rsa
{sc11 ,...,scnm }+
n t1 ,...,td n
o qrsa
est aussi une r`egle de ρ, car l’appartenance `a Lc,{ }p,rsa ou Ld,{ }p,rsa ne d´epend que de u. Elle peut ˆetre appliqu´ee sur E ; – sinon, soit t = t1 sans perte de g´en´eralit´e. Par d´efinition de p qrsa , par la condition c1 > 0, et le membre gauche ´etant en forme normale, on a t ∈ (b, u). On a b ∈ E, donc t ∈ (E, u). Ce qui prouve la proposition.
Transition
Proposition 26 (Complexit´e du probl`eme (E, F, L{ Le probl`eme (E, F, L{ }p,rsa ) est dans PTIME.
Transition
}p,rsa ))
Preuve. Soit n la taille du probl`eme d’entr´ee. Tout d’abord, F = E, t avec t ∈ / E peut ˆetre v´erifi´e en temps O(n3 ). Si cette ´egalit´e n’est pas . v´erifi´ee, la r´eponse au probl`eme (E, F, RL{ }p,rsa ) est Supposons que la r`egle appliqu´ee soit la suivante :
Transition
non
b, t1 , . . . , tn → t Avec les fonctions Add et Opp d´efinies dans le chapitre 3, section 3.4, la d´efinition des r`egles de L{ }p,rsa implique Basersa (t) = Basersa (b) et : (Add(Facteurrsa (t), Opp(Facteurrsa (b)))) = {t1 , . . . , tn } Pour tester si une telle r`egle a pu ˆetre appliqu´ee, nous consid´erons l’ensemble des termes de E qui ont la mˆeme base que t, et pour chaque terme b de cet ensemble testons si le support de la diff´erence des facteurs de t et b est inclus dans E. Cet algorithme est ex´ecut´e en temps polynomial en la taille des entr´ees. Enfin, il est ´evident qu’appliquer sur un ensemble E de termes en forme normale, le r´esultat d’une r`egle de L{ }p,rsa sera un terme en forme normale.
4.5.4
Op´ erateur H( , )
Cet op´erateur repr´esente l’image par une fonction d’adressage dispers´e, donn´ee comme premier argument, du message donn´e en second argument. On pose Ld,H( , ) = ∅ et les r`egles de Lc,H( , ) sont de la forme : Lc,H( , ) : ∀a, b ∈ T(F),
a, b → H(a, b)
Ces r`egles satisfont les conditions des r`egles de composition de la d´efinition 28. D’autre part, la condition sur les syst`eme canoniques est trivialement satisfaite. On a donc la proposition suivante : Proposition 27 En posant Lh , i = Lc,H(
, ),
LH(
, )
est canonique.
L`a encore, le probl`eme de transition peut ˆetre d´ecid´e en temps polynomial. La preuve est omise, car similaire ` a celle de la proposition 14.
Transition
Proposition 28 (Complexit´e du probl`eme (E, F, LH( Le probl`eme (E, F, LH( , ) ) est dans PTIME.
Transition
, ) ))
4.5. Symboles et syst`emes dans le cadre de l’´etude de protocoles
4.5.5
61
Op´ erateur Exp( , )
Ce cas se traite de la mˆeme mani`ere que le cas d’un op´erateur de chiffrement asym´etrique commutatif. La seule diff´erence est dans la d´efinition des r`egles LExp( , ) o` u les coefficients des exposants peuvent ˆetre positifs ou n´egatifs : LExp( , ) : ∀n ∈
∗
, ∀t, t1 , . . . , tn ∈ T(F),
exp
t, t1 , . . . , tn → pExp(t, {tc11 , . . . , tcnn })q avec ∀i ∈ {1, . . . , n} , ci 6= 0
Les r`egles de composition et de d´ecomposition LExp( , ) syst`eme canonique sont d´efinies de la p,rsa mˆeme mani`ere que pour l’op´erateur { } .
Transition
Proposition 29 (Complexit´e du probl`eme (E, F, LExp( Le probl`eme (E, F, LExp( , ) ) est dans PTIME.
Transition
, ) ))
Preuve. Soit n la taille du probl`eme d’entr´ee. D’abord, on peut v´erifier en temps O(n3 ) que F = E, t avec t ∈ / E. Si cette ´egalit´e n’est pas v´erifi´ee, la r´eponse au probl`eme (E, F, LExp( , ) ) est . Supposons que la r`egle appliqu´ee soit la suivante :
Transition
non
b, t1 , . . . , tn → t La d´efinition des r`egles de LExp( , ) implique BaseExp (t) = BaseExp (b) et : (FacteurExp (t) − FacteurExp (b)) = {t1 , . . . , tn } Pour tester si une telle r`egle a pu ˆetre appliqu´ee, nous consid´erons l’ensemble des termes de E qui ont la mˆeme base que t, et pour chaque terme b de cet ensemble testons si le support de la diff´erence des facteurs de t et b est inclus dans E. Cet algorithme permet de tester en temps polynomial si une r`egle a pu ˆetre appliqu´ee pour construire t.
4.5.6
Op´ erateur ⊕({ })
Nous consid´erons dans cette section le symbole ⊕({ }) repr´esentant le ou exclusif bit ` a bit (voir le chapitre 3, section 3.3 pour une description plus pr´ecise). Rappelons seulement que ce constructeur est associatif et commutatif, et qu’il suffit de consid´erer des termes en forme normale. Par exemple : p⊕({e, ⊕({⊕({a, ⊕({b, c}), ⊕({a, b, d})})})})q = ⊕({c, d, e}) Les r`egles sont d´efinies sur des termes valeurs en forme normale, donc aucun terme t dans un ensemble argument d’un ⊕({ })-terme n’est un ⊕({ })-terme. L’ensemble L⊕({ }) des r`egles de r´e´ecriture sur l’op´erateur ⊕({ }) est l’ensemble des r`egles de la forme : L⊕({ }) : ∀n ∈
∗
xor
, ∀t1 , . . . , tn ∈ T(F), t1 , . . . , tn → p⊕({t1 , . . . , tn })q xor et p⊕({t1 , . . . , tn })q ∈ / {t1 , . . . , tn }
De la mˆeme mani`ere que pour les r`egles de L{ }p,rsa ou LExp( , ) , on d´efinit les r`egles de compoxor sitions et de d´ecomposition en fonction du r´esultat e = p⊕({t, t1 , . . . , tn })q d’une r`egle : L:
xor
t1 , . . . , tn → p⊕({t1 , . . . , tn })q
– si e est un ⊕({ })-terme, la r`egle L est dans Lc,⊕({ }) ; – sinon, L est dans Ld,⊕({ }) . La proposition suivante ´enonce que les r`egles de Lc,⊕({ }) (resp. Ld,⊕({ }) ) sont bien des r`egles de composition (resp. d´ecomposition).
62
Chapitre 4. Accessibilit´e dans le cas clos
Proposition 30 Soit L une r`egle de L⊕({ }) . On a : – L ∈ Lc,⊕({ }) implique L est une r`egle de ⊕({ })-composition ; – L ∈ Ld,⊕({ }) implique L est une r`egle de ⊕({ })-d´ecomposition. Preuve. Soit L une r`egle de L⊕({ }) . Le membre gauche est en forme normale, donc il existe t1 , . . . , tn des termes qui ne sont pas des ⊕({ })-termes et I1 , . . . , Ik des sous-ensembles de {1, . . . , n} de cardinal ≥ 2, et α : {1, . . . , l} → {1, . . . , n} une fonction injective. Une r`egle L est de la forme : ⊕({∪i∈I1 {ti }}), . . . , ⊕({∪i∈Ik {ti }}), tα(1) , . . . , tα(l) → e On a : xor e = p⊕(⊕({I1 }), . . . , ⊕({Ik }), ⊕( tα(1) , . . . , tα(l) ) )q xor = p⊕( (∆ki=1 Ii )∆ tα(1) , . . . , tα(l) )q
(d´efinition de L⊕({ }) ) (d´efinition de p qxor )
Par d´efinition des r`egles L⊕({ }) , i 6= j implique tα(i) 6=α(j) , donc tα(i) ∈ / ∪ki=1 Ii , implique tα(i) ∈ (e). D’autre part, si e = ⊕({u1 , . . . , um }), alors toujours par d´efinition de la fonction de normalisation, pour tout i ∈ {1, . . . , m}, on a ui ∈ {t1 , . . . , tn }. Donc si L ∈ Lc,⊕({ }) , L est une r`egle de composition. Enfin, si L est dans Ld,⊕({ }) , d’apr`es la deuxi`eme condition sur les r`egles de L⊕({ }) , et pour tout i ∈ {1, . . . , k}, on a e 6= tα(i) . Donc, par d´efinition de la fonction de normalisation, e ∈ ∪ki=1 ∪j∈Ik tj . Donc L est bien une r`egle de d´ecomposition. Le syst`eme L⊕({ }) est canonique par cons´equence de la proposition suivante. Proposition 31 Si E →L⊕({ }) E, t →L⊕({ }) E, t, u, alors E →L⊕({ }) u. Preuve. Consid´erons les deux r`egles utilis´ees : Et Eu
→ t → u
Si t ∈ / Eu , la proposition est triviale. Sinon, on v´erifie facilement, en notant Eu0 = Et ∆(Eu \ {t}), que la r`egle suivante : Eu0 → u est une r`egle de L⊕({ }) , et que Eu0 ⊆ E.
Transition(E, F, L⊕({ }) ) est dans PTIME. Proposition 32 (Complexit´e du probl`eme Transition(E, F, L⊕({ }) )) Le probl`eme Transition(E, F, L⊕({ }) ) est dans PTIME. Enfin, il reste ` a montrer que le probl`eme
Preuve. Soit n la taille du probl`eme d’entr´ee. On a toujours n ≥ | (E, t)|. Comme pour les cas pr´ec´edents, nous nous ramenons au cas F = E, t avec t ∈ / E. Soit : B = {b | ∃u ∈ E, t avec b ∈ Facteur⊕ (u)} B peut se construire en temps polynomial. Soit m = |B|. On a n´ecessairement m ≤ n. Posons B = {b1 , . . . , bm }, et (ei )i∈{1,...,m} la base canonique de IF m etant le corps `a deux ´el´ements. 2 , IF 2 ´ On d´efinit une fonction ψ : E, t ∪ B → IF m de la mani` e re suivante : 2 – si x ∈ B, soit x = bi , on pose ψ(x) = ei ; – si x est un ⊕({ })-terme, soit x = ⊕({t1 , . . . , tl }), on pose : ψ(x) = Σli=1 ψ(ti )
4.6. Probl`eme d’accessibilit´e close dans le cadre des protocoles
63
Cette fonction est bien d´efinie par d´efinition des facteurs. On note A la matrice |E| × m d´efinie par les images des termes de E, b l’image du terme t. Par d´efinition de l’addition sur IF 2 , il existe une ⊕({ })-transition de E vers E, t si et seulement si le syst`eme lin´eaire A.X = b |E|
a une solution X ∈ IF 2 . R´esoudre un tel syst`eme lin´eaire peut se faire en un nombre polynomial d’op´erations. Les coefficients sont 0 ou 1, donc chaque op´eration a un coˆ ut constant. On a |E| ≤ n, donc la taille de ce syst`eme est polynomiale en fonction de n, et ce syst`eme peut se r´esoudre en temps polynomial en fonction de la taille n du probl`eme d’entr´ee. Donc le probl`eme (E, F, L⊕({ }) ) est dans PTIME.
Transition
4.6
Probl` eme d’accessibilit´ e close dans le cadre des protocoles
Rappelons que T(F) est l’ensemble des termes valeur en forme normale sur la signature Fproto . Soient E ⊂fini T(F) et t ∈ T(F) et soit le syst`eme de r´e´ecriture sur des ensembles de termes : [ Rproto = Lf f ∈Fproto
Les r´esultats de la section 4.5 et le th´eor`eme 2 impliquent le th´eor`eme suivant.
Accessibilite Close(E, t, R)) Accessibilite Close(E, t, Rproto ) est dans PTIME.
Th´ eor` eme 4 (Complexit´e du probl`eme Avec les notations pr´ec´edentes,
Preuve. Dans R, il n’y a pas de r`egles de composition ayant un terme t−1 en membre droit, donc la premi`ere hypoth`ese du th´eor`eme 2 est v´erifi´ee. D’apr`es le th´eor`eme 2 et les propositions de la section 4.5, R est donc un syst`eme local. D’apr`es la proposition 11 et les propositions de la section 4.5, le probl`eme (E, F, R) est dans PTIME. R est local et (E, F, R) est dans PTIME, donc d’apr`es le th´eor`eme 3, le probl`eme (E, t, R) est dans PTIME.
Transition
Transition Accessibilite Close
Ce r´esultat ´etend divers r´esultats obtenus en ajoutant un seul op´erateur aux op´erateurs p
s
{h , i , { } , { } } voir par exemple [28, 19, 20].
4.7
R` egles d’oracle
Les protocoles cryptographiques sont en g´en´eral ´etudi´es dans le cadre du chiffrement parfait, dit cadre de D. Dolev-A. Yao en r´ef´erence aux auteurs l’ayant d´efini. Le syst`eme de r´e´ecriture sur des ensembles consid´er´e est alors le syst`eme : R
= Lh , i ∪ L{ }p ∪ L{ }s
Les outils et syst`emes sont souvent pr´esent´es dans ce cadre, que ce soit au niveau du processus de compilation [63, 72] ou au niveau de l’analyse [88, 75, 4], les auteurs indiquant que leur travail peut ˆetre ´etendu pour prendre en compte les fonctions d’adressage dispers´e. La notion de syst`eme canonique permet de formaliser cette extension. Une autre approche, l’utilisation de r`egles d’oracle a ´et´e d´evelopp´ee durant cette th`ese. Dans cette approche, des r`egles de d´eductions sont ajout´ees `a celles du syst`eme R . Elles ont ´et´e introduites lors d’un travail publi´e dans [25] pour permettre l’´etude d’un nombre non born´e de sessions d’un protocole. Elles ont ensuite ´et´e reprises formellement pour permettre l’´etude d’un protocole au-del` a de l’hypoth`ese de chiffrement parfait. Le premier travail portait sur l’ajout d’un
64
Chapitre 4. Accessibilit´e dans le cas clos
op´erateur ⊕({ }) [19]. Il a ´et´e suivi par d’autres travaux donnant la complexit´e de l’´etude de protocoles cryptographiques dans diff´erents cas (ajout d’un op´erateur exponentiel [20], complexit´e de la validation de protocoles [22] dans le mod`ele pr´esent´e l’ann´ee pr´ec´edente [25]). La d´efinition des r`egle d’Oracle repose sur une notion de d´erivation bien form´ee semblable `a celle d´efinie en section 4.2. Des r`egles E → a, avec E et a en forme normale, sont ajout´ees au syst`eme R . Une r`egle est dite de d´ecomposition si a est un sous-terme de E, et de composition sinon. Les conditions sur les r`egles ajout´ees au syst`eme R pour que ces r`egles soient des r`egles d’oracles sont donn´ees par la d´efinition suivante : D´ efinition 32 (R`egles d’oracle) Soit Lo = Loc ∪ Lod un ensemble (fini ou infini) de r`egles de d´eduction, o` u Loc et Lod d´esignent des ensembles disjoints de r`egles de composition et de d´ecomposition. Lo est un ensemble de r`egles d’oracle (par rapport ` a R ) si et seulement si il existe une fonction des termes vers les termes telle que : 1. pour tout terme t et tout ensemble de termes E, t ∈ E d´erivation bien form´ee partant de E de but t ;
R
∪Lo
implique qu’il existe une
2. si F →Loc F, t et F, t →Ld F, t, a, alors il existe une d´erivation D partant de F de but a telle que Ld (t) 6∈ D. 3. pour toute r`egle F → s ∈ Loc , tout sous-terme propre de s est un sous-terme de F ; 4. pour tout terme non atomique u, il existe un terme en forme normale ; (u) avec |
((u))| < |
(puq)|
tel que : Pour tout ensemble fini de termes F avec I, u ∈ F , si F \u →Lc (u) F , i.e., u peut ˆetre compos´e ` a partir de F en une ´etape, alors R F →Lo F, t implique pt[u ← (u)]q ∈ pF [u ← (u)]q et (u) ∈ R F pour tout message t. Les conditions 2. et 3. sont tr`es proches de celles donn´ees pour avoir un syst`eme canonique. La condition 1. est moins restrictive, puisque des r`egles d’une forme arbitraire sont autoris´ees. L’inconv´enient de cette d´efinition est que les conditions 1. et 4. ne sont pas locales aux r`egles ajout´ees. Il faut refaire toutes les preuves pour ajouter un nouvel op´erateur. Par exemple, dans s,cbc [19], les op´erateurs ⊕({ }) et { } sont consid´er´es, mais ind´ependamment l’un de l’autre. De mˆeme, dans [28], H. Comon-Lundh et V. Shmatikov consid`erent les op´erateurs ×({ }) (un op´erateur de groupe ab´elien, utilis´e pour l’exponentiation et le chiffrement de type RSA) et ⊕({ }) sont consid´er´es, mais l` a encore ind´ependamment les uns des autres. En conclusion, les syst`emes canoniques permettent a priori de traiter moins de cas, car les conditions impos´ees aux r`egles impliquent celles portant sur les r`egles d’oracle. Cependant, le gain en modularit´e justifie, ` a nos yeux, leur introduction et leur utilisation.
4.8
Travaux reli´ es
Le r´esultat principal de ce chapitre est que, sous une hypoth`ese relativement faible (l’impossibilit´e de construire l’inverse d’un terme), il est possible de combiner des syst`emes de r´e´ecriture sur des ensembles canoniques pour obtenir un syst`eme local. La notion de localit´e a ´et´e introduite par D. McAllester [66] pour l’´etude de probl`emes d’accessibilit´e close en g´en´eralisant des techniques de raisonnement modulo pour des th´eories ayant un nombre fini d’´equations closes consid´er´ees par D. Kozen [58] et R. Shostack [97]. McAllester donne, dans cet article, une proc´edure permettant de d´ecider, pour une classe particuli`ere de syst`emes de r´e´ecritures et un param`etre donn´es, si un syst`eme est local ou non. Notre d´emarche est diff´erente. Nous cherchons des propri´et´es sur des syst`emes de r´e´ecritures sur des ensembles assurant que leur combinaison est un syst`eme local.
4.9. Conclusion
65
Cette notion de syst`eme local a ´et´e reprise pour l’´etude de probl`emes d’accessibilit´e par H. ComonLundh et V. Shmatikov [28]. Dans cet article, il est montr´e, entre autres, que le probl`eme d’accessibilit´e close pour le syst`eme : Lh , i ∪ L{ }s ∪ L{ }p ∪ L⊕({ }) est dans NPTIME. Nous avons am´elior´e une premi`ere fois ce r´esultat dans [19], o` u nous montrons que ce probl`eme est dans PTIME. Les techniques utilis´ees dans cet article permettent d’´etendre le syst`eme de r`egles : Lh , i ∪ L{ }s ∪ L{ }p par un syst`eme de r`egles li´e ` a un autre op´erateur. Nous avons ainsi montr´e que les probl`emes d’accessibilit´e close sont d´ecidables en temps polynomial lorsque : s,cbc est ajout´e [19] ; – l’op´erateur { } – l’op´erateur Exp( , ) est ajout´e [20] ; p,rsa – l’op´erateur { } est ajout´e (non publi´e).
4.9
Conclusion
Les ensembles de messages jouent un rˆole central dans l’´etude des protocoles cryptographiques. D’une part, ils permettent de savoir si un protocole peut ˆetre implant´e, en analysant les connaissances des rˆ oles pour savoir si la suite d’envois de messages d´efinie par le protocole peut ˆetre r´ealis´ee. D’autre part, ils sont utilis´es pour mod´eliser les connaissances d’un intrus essayant de faire ´echouer un protocole. Dans ce chapitre, nous avons d´efini les r`egles de d´eduction sur les ensembles de messages. Ces r`egles peuvent ˆetre utilis´ees par l’intrus ou par un principal jouant un rˆole, suivant le probl`eme consid´er´e. Nous avons montr´e que dans le cas clos, c’est-`a-dire dans le cas o` u aucune substitution n’est appliqu´ee, il est possible de d´ecider en temps polynomial si un terme t peut ˆetre d´eduit `a partir de l’ensemble de connaissances E (th´eor`eme 4). Ce r´esultat am´eliore ceux pr´esent´es dans [28] et, pour la partie sur le cas clos, ceux de [19, 20] en consid´erant toute combinaison d’op´erateurs en plus des op´erateurs habituels du cadre du chiffrement parfait.
66
Chapitre 4. Accessibilit´e dans le cas clos
Deuxi` eme partie
Compilation
67
5
Compilation de protocoles cryptographiques 5.1 5.1.1
Introduction Analyse formelle de protocoles cryptographiques
Nous avons vu dans le chapitre 1, section 1.1.2 une sp´ecification de protocole par un sc´enario d’ex´ecution. Ce type de sp´ecification en notation Alice et Bob est facilement compr´ehensible pour un lecteur humain, mais n’est pas op´eratoire, car d’importantes questions n’ont pas de r´eponse dans cette sp´ecification : Quels sont les ordres de r´eception/envoi de messages possibles ? Quels messages peuvent ˆetre accept´es par les acteurs ? L’analyse des protocoles passe par une premi`ere ´etape de compilation d’une description d´eclarative du protocole vers un syst`eme de transitions (Σ, T ), o` u Σ est un ensemble (infini) d’´etats, et T une relation de transitions entre ´etats. Deux ´etats E et E 0 sont en relation par T , ce qui est not´e T (E, E 0 ), s’il existe une transition de E vers E 0 , avec E, E 0 ∈ Σ. Les syst`emes de transitions consid´er´es sont tr`es vari´es, et vont des processus CSP [88, 64], aux automates d’arbres [75, 53], en passant par des r`egles de r´e´ecriture [38]. Notre travail est dans cette derni`ere ligne. Nous exprimons les actions des acteurs honnˆetes et de l’intrus dans le formalisme des r`egles de r´e´ecriture. Dans ce chapitre, nous d´ecrivons la r´eponse que nous apportons au deux pr´ec´edentes questions. La r´eponse ` a la premi`ere des deux questions, largement accept´ee, est de consid´erer que chaque rˆole est un processus qui attend et envoie des messages dans l’ordre pr´evu par le sc´enario. La seconde question est plus probl´ematique, car elle en soul`eve d’autres : – existe-t-il un m´ecanisme sous-jacent de contrˆole des champs d’un message ? G. Lowe a propos´e [54] un m´ecanisme de marquage des messages pour assurer que des messages diff´erents ne soient pas confondus. Cependant, il nous semble pr´ef´erable d’avoir un m´ecanisme explicite, et d’´eviter de donner ` a un message une structure plus complexe que celle d’une suite de bits ; – quelles parties d’un message re¸cu sont analys´ees par un rˆole ? Il est tentant, dans le cadre de l’implantation d’un protocole, de chercher `a ´economiser du temps de calcul en ne faisant pas toutes les v´erifications possibles. Dans le cadre de la recherche d’attaques, il nous semble cependant pr´ef´erable de supposer que toutes les v´erifications possibles seront faites.
5.1.2
Cadre de travail
Contrairement aux chapitre pr´ec´edents, nous ne consid´erons pas, dans ce chapitre, tous les op´erateurs possibles. Les op´erateurs de chiffrement sym´etrique par blocs posent en effet des probl`emes d’interpr´etation. Par exemple, consid´erons le protocole suivant : 1. A → B : 2. B → A :
s
{Na, A, B }K s {B , A, Na}K
dans lequel le rˆ ole B n’est pas sens´e connaˆıtre la clef K. Ce protocole est parfaitement implantable si le chiffrement utilis´e est un chiffrement par bloc sans chaˆınage : le rˆole B r´epond en r´eordonnant des 69
70
Chapitre 5. Compilation de protocoles cryptographiques
parties du message qu’il a re¸cu. Le probl`eme est que cela signifie qu’un acteur jouant le rˆole B peut connaˆıtre (partiellement) la structure d’un message chiffr´e qu’il attend alors qu’il n’en connaˆıt pas s,cbc la clef. Nous avons pr´ef´er´e ´eviter ces cas sp´eciaux, ainsi que le cas similaire avec l’op´erateur { } , en supposant que le chiffrement sym´etrique ´etait, du point de vue des rˆoles, parfait. Dans le reste de ce chapitre, nous consid´erons donc une signature F contenant tous les constructeurs de Fproto s,ebc s,cbc desquels nous avons enlev´e les constructeurs { } et { } . Nous notons Rproto le syst`eme de r`egles de d´eductions d´efini ` a partir de ces constructeurs. Avec les notations du chapitre 4 : Rproto =
[
Lf
f ∈F
De mˆeme, nous notons :
5.1.3
S Rc,proto = f ∈F Lc,f S Rd,proto = f ∈F Ld,f
Plan du chapitre
Ce chapitre est centr´e sur le processus de compilation d’un protocole cryptographique, c’est-`adire sur le passage d’une sp´ecification d´eclarative `a un syst`eme de transitions d´ecrivant toutes les actions des participants. Nous essayons de mettre en ´evidence, `a chaque ´etape, les hypoth`eses et les choix faits pour permettre la compilation. Nous pr´esentons le langage de haut niveau de description de protocoles dans la section 5.2. Nous d´ecrivons ensuite les syst`emes de transition sur lesquels les protocoles sont ´etudi´es en section 5.3. Le premier, dit g´en´eral, est celui utilis´e dans le cadre du projet AVISS. Il est bas´e sur la s´emantique intrins`eque des r`egles de r´e´ecritures. En dehors de ce chapitre, nous raisonnons sur un syst`eme de transitions optimis´e pour le cas d’un intrus ayant le contrˆole des communications. Ce syst`eme est d´ecrit dans la sous-section 5.3.4. La notion d’ex´ecutabilit´e d’un protocole est introduite et trait´ee en section 5.4. Nous d´ecrivons aussi en d´etail la compilation d’une sp´ecification d´eclarative d’un protocole en un syst`eme de transitions. En section 5.5, nous donnons un mod`ele de gestion des connaissances des rˆoles. Ce mod`ele est directement mis en œuvre pour la cr´eation des r`egles de r´eception et envoi de messages par les rˆ oles, cr´eation d´ecrite dans la sous-section 5.5.3. Dans cette mˆeme section, nous donnerons des propri´et´es de ces r`egles relatives `a l’occurrence des variables. Enfin, nous pr´esentons d’autres compilateurs de protocoles en section 5.6.
5.2 5.2.1
Langage haut niveau de description de protocoles Description par un sc´ enario et hypoth` eses
Nous nous int´eressons aux sp´ecifications de haut niveau de type Alice et Bob. Dans une telle sp´ecification, un protocole est d´efini par un sc´enario type d´ecrivant une ex´ecution correcte. Par exemple, prenons le cas du protocole propos´e par R. Needham et M. Schroeder de la figure 5.1. 1. 2. 3.
p
A → B : {Na, A}Kb p B → A : {Nb, Na}Ka p A → B : {Nb}Kb
Fig. 5.1 – Protocole de R. Needham et M. Schroeder `a clefs publiques (Needham-Schroeder Public Key) Plusieurs hypoth`eses sont implicites dans ce sc´enario. Soient a et b deux acteurs honnˆetes, et I un acteur malhonnˆete.
5.2. Langage Haut Niveau
5.2.1.i
71
Ind´ ependance de contrˆ ole.
Ind´ ependance des acteurs entre eux. Si les rˆoles A et B sont jou´es par deux acteurs a et b, nous supposerons que les actions de a sont ind´ependantes des actions de b. Plus pr´ecis´ement, les actions de a jouant le rˆ ole A d´ependront des messages qu’il pense provenir d’un acteur b jouant le rˆole B, mais pas de l’´etat de l’acteur b. Ainsi, un acteur jouant le rˆole B peut recevoir le premier message sans que a l’ait envoy´e, par exemple. Ind´ ependance de contrˆ ole des rˆ oles par rapport aux acteurs. Supposons qu’un mˆeme acteur a joue les rˆ oles A et B de ce protocole. Nous supposons que les actions de cet acteur jouant le rˆole A sont ind´ependantes de celles qu’il effectue en jouant le rˆole B. Les actions du rˆ ole A n’affectent pas les actions du rˆole B. Donc, dans une s´emantique op´erationnelle de ce protocole, les transitions li´ees au rˆole B, par exemple, ne doivent d´ependre ni de l’´etat du rˆole A avec qui il communique, ni de l’instance (acteur et connaissances initiales) de ce rˆole. 5.2.1.ii
Ind´ ependance de donn´ ees.
Ind´ ependance de donn´ ees des acteurs entre eux. Une autre hypoth`ese est qu’il n’y a pas de m´ecanisme implicite de partage de connaissances entre les acteurs. Le nonce Na envoy´e par un acteur a jouant le rˆ ole A dans le premier message n’a pas n´ecessairement la mˆeme valeur que le nonce re¸cu par un acteur b jouant le rˆole B. Donc les connaissances d’un acteur, `a un moment donn´e, ne d´ependent que de ses connaissances initiales et des messages qu’il a re¸cus et envoy´es. Ind´ ependance des donn´ ees dans des rˆ oles jou´ es par un mˆ eme acteur. Nous faisons l’hypoth`ese que les connaissances d’un acteur ne sont pas partag´ees entre les diff´erents rˆoles qu’il joue. Donc si un acteur a joue les rˆ oles A et B du protocole de la figure 5.1, il ne v´erifiera pas si le nonce Na qu’il a envoy´e a la mˆeme valeur que celui re¸cu en jouant le rˆole B. 5.2.1.iii
Compilation des rˆ oles et intrus.
Nous supposons que si a est un acteur honnˆete jouant un rˆole A ou B, il suivra la mˆeme suite d’actions, d´ependante de ses connaissances initiales et des messages re¸cus, selon que son interlocuteur soit un acteur honnˆete b ou malhonnˆete I. Par contre, pour l’intrus, jouer un rˆole A ou B signifie uniquement avoir les connaissances initiales de ce rˆole et pouvoir communiquer sous son vrai nom avec les acteurs honnˆetes. Ses actions ne d´ependent pas de celles pr´evues par le protocole, et ses connaissances initiales peuvent ˆetre plus importantes que celles pr´evues pour jouer un rˆole. Il n’est pas astreint, par exemple, `a cr´eer une nouvelle valeur si le protocole pr´evoit qu’il envoie un nonce ou ` a ´emettre un message suivant le sch´ema pr´evu par la sp´ecification du protocole. 5.2.1.iv
Sc´ enario s´ equentiel
Nous supposons enfin que pour un protocole donn´e dans la notation Alice et Bob, chaque message (sauf le premier) est une r´eponse `a un message re¸cu. Autrement dit, en notant Ri le receveur du message i et Si l’´emetteur du message i (avec i ∈ {1, . . . , n}, pour un protocole `a n messages), on suppose que pour i ≥ 2, Si est ´egal `a Ri−1 . La classe des protocoles v´erifiant cette hypoth`ese est tr`es large. Elle ne contient cependant pas des protocoles dans lesquels, par exemple, un rˆole doit attendre deux messages (dans un ordre non sp´ecifi´e) de deux rˆoles diff´erents. 5.2.1.v
Compilation d’un protocole
Sous ces hypoth`eses, il est possible de compiler (donner une s´emantique op´erationnelle `a) un protocole en consid´erant la suite de messages ´echang´es ind´ependamment de l’´etat initial ou des caract´eristiques de l’intrus. Dans la suite de cette section, nous allons d’abord voir la sp´ecification des rˆoles ` a travers les connaissances initiales qu’il doit avoir (sous-section 5.2.2) et la description des messages ´echang´es (sous-section 5.2.3). Nous d´ecrivons la sp´ecification d’une ex´ecution du protocole en commen¸cant par la sp´ecification des acteurs jouant les diff´erents rˆoles (sous-section 5.2.4),
72
Chapitre 5. Compilation de protocoles cryptographiques
description compl´et´ee par la sp´ecification de l’intrus (sous-section 5.2.5) et de l’´etat initial du protocole. Enfin, les propri´et´es que doit assurer ce protocole sont d´ecrites en sous-section 5.2.6. Afin de guider le lecteur dans ces diff´erentes partie, nous donnons en figure 5.2 comme exemple de sp´ecification compl`ete en LHNSP celle du protocole `a clefs publiques propos´e par R. Needham et M. Schroeder [78]. La suite des messages de ce protocole est celle de la figure 5.1. NSPK ; A, B : Na, Nb : Ka, Kb :
; ; ;
A : B , Ka, Ka0 , Kb ; B : A, Ka, Kb, Kb0 ; 1 . A → B : {Na, A}Kb 2 . B → A : {Nb, Na}Ka 3 . A → B : {Nb}Kb : B [A : a, B : b, Ka : ka, Kb : kb], B [A : a, B : I , Ka : ka, Kb : ki ], A [A : a, B : I , Ka : ka, Kb : ki ] ; divert, impersonate ; b, kb ; B authenticates A on N a ;
Fig. 5.2 – Exemple de sp´ecification LHNSP : le protocole de R. Needham et M. Schroeder (Needham-Schroeder Public Key)
5.2.2
Sp´ ecification de la connaissance des rˆ oles
La connaissance des rˆ oles est sp´ecifi´ee par des termes op´erations sur des variables de rˆole. Nous notons V (avec les d´ecorations usuelles) l’ensemble de ces variables. Les termes op´erations sont construits, par d´efaut, avec les mˆemes symboles que ceux d´ecrits dans le chapitre 3, section 3.3. Ils sont directement traduits, par le compilateur, en termes valeurs sur T(F, X ). Les variables de rˆ ole sont des identificateurs permettant d’exprimer `a la fois des connaissances des rˆoles et les messages que les rˆ oles ´echangent entre eux. Afin de faciliter la d´etection d’erreurs dans la sp´ecification, ces variables sont typ´ees. Les types accessibles dans l’implantation actuelle du compilateur CasRul sont : : les variables de ce type d´ecrivent des rˆoles ; : ce type est le plus g´en´eral. Les variables de type n’ont aucune propri´et´e sp´eciale, et peuvent repr´esenter un texte `a chiffrer, le pr´eambule d’un message, un num´ero de compte bancaire, cette liste n’´etant pas exhaustive ; : les variables de ce type sont des clefs publiques. Afin de simplifier la sp´ecification, l’op´erateur −1 est not´e 0 dans la syntaxe du langage de haut niveau ; : les variables de ce type sont des clefs sym´etriques. Il faut noter que dans ce cas et dans le cas de clefs publiques, le nom d’une variable est ind´ependant, pour le processus de compilation, des rˆ oles connaissant cette variable. Appeler Kab la clef sym´etrique partag´ee par les rˆ oles A et B, ou Ka la clef publique de A est une convention destin´ee `a rendre la sp´ecification plus lisible ; : les variables de ce type sont des fonctions `a adressage dispers´e. Dans la syntaxe de haut niveau, le terme op´eration H(F, M ) est not´e F (M ). Dans la figure 5.2, la d´eclaration des variables de rˆole est faite dans la section :
5.2. Langage Haut Niveau
73
A, B : N a, N b : Ka, Kb :
; ; ;
Ces variables sont ensuite utilis´ees pour d´eclarer les connaissances initiales des rˆoles. Tout terme op´eration construit ` a partir des variables est une connaissance initiale valide. La d´eclaration se fait rˆole par rˆ ole. Pour le protocole de la figure 5.2, les connaissances d´eclar´ees sont : A : B, Ka, Ka0 , Kb ; B : A, Ka, Kb, Kb0 ; Notons que les variables de rˆ ole Na et Nb ne sont dans les connaissances initiales d’aucun rˆ ole. Cela permet, dans le cadre des r`egles g´en´eriques, d’autoriser un acteur `a participer `a un nombre non born´e de sessions. Dans ce cadre, les connaissances initiales sont les mˆemes d’une session `a l’autre. Les nonces de deux sessions d’un acteur devant ˆetre diff´erents, le compilateur devra retrouver les variables correspondant ` a des nonces, et les traiter `a part.
5.2.3
Description des messages ´ echang´ es
La description des messages ´echang´es par les rˆoles lors d’une session normale du protocole est sp´ecifi´ee dans la notation Alice et Bob habituelle. Il n’est pas n´ecessaire de sp´ecifier, pour un op´erateur de chiffrement, si il correspond `a un chiffrement par clef sym´etrique ou asym´etrique. Le compilateur inf`ere le type du chiffrement en fonction de la clef utilis´ee : chiffrement asym´etrique pour une clef publique ou priv´ee, chiffrement sym´etrique pour une clef sym´etrique ou un message. Pour le protocole de la figure 5.2, la suite des messages est sp´ecifi´ee dans la section : 1. A → B : {N a, A}Kb 2. B → A : {N a, N b}Ka 3. A → B : {N b}Kb
5.2.4
Description des instances des rˆ oles
L’´etat initial d’une instance du protocole occupe le reste de la sp´ecification. Dans le cas de la figure 5.2, les instances des rˆ oles sont : : B [A : a, B : b, Ka : ka, Kb : kb], B [A : a, B : I, Ka : ka, Kb : ki], A [A : a, B : I, Ka : ka, Kb : ki] ; Un acteur diff´erent de I est suppos´e ˆetre honnˆete. Dans cet ´etat initial du protocole, il y a donc deux acteurs honnˆetes, l’acteur b jouant le rˆole B (premi`ere ligne), et l’acteur a jouant le rˆole A (troisi`eme ligne). L’acteur b s’attend `a une session avec l’acteur a jouant le rˆole de A, tandis que l’acteur a est prˆet ` a initier une session avec l’intrus. La seconde ligne sp´ecifie que l’intrus doit ˆetre prˆet `a jouer le rˆole B en r´eponse `a l’acteur a. Contrairement aux autres lignes, aucun terme n’indiquera cette instance dans l’´etat initial du protocole. Le seul effet de cette d´eclaration est de verser les connaissances instanci´ees du rˆole B, dans ce cas : a, I , ka, ki , ki 0 dans les connaissances initiales de l’intrus.
5.2.5
Description de l’intrus
5.2.5.i
Capacit´ es de l’intrus
Informellement, les capacit´es de d´eduction de l’intrus, ´etant donn´e un ensemble de connaissances E, sont toujours les mˆemes. La seule partie de l’intrus que l’utilisateur peut sp´ecifier est le contrˆole
74
Chapitre 5. Compilation de protocoles cryptographiques
qu’un attaquant peut avoir sur le syst`eme de communication. Trois capacit´es sont d´efinies, et l’utilisateur peut en donner ` a l’intrus de z´eros `a trois parmi les suivantes : – divert permet ` a l’intrus d’intercepter tous les messages. Il peut ainsi empˆecher un message envoy´e d’arriver ` a destination et connaˆıtre le contenu de ce message. Cette propri´et´e doit ˆetre envisag´ee d`es que des personnes inconnues ont un acc`es physique `a un r´eseau par cˆable. C’est le cas, par exemple, pour des communications via internet entre deux sites distants ; – eaves dropping n’autorise pas l’intrus `a empˆecher un message d’arriver `a destination, mais lui permet de prendre connaissance du contenu des messages envoy´es. Il faut noter que n’importe qui peut ´ecouter tous les messages envoy´es sur des r´eseaux Wifi, mais qu’il est impossible d’empˆecher un message d’arriver `a destination. Pour ce type de r´eseaux, la propri´et´e a divert ; d’eaves dropping sera pr´ef´er´ee ` – impersonate est une propri´et´e d’intrus dans tous les r´eseaux o` u il n’y a pas de m´ecanisme implicite d’authentification. Dans le cas d’envoi de messages sur internet, par exemple, il est possible de falsifier l’en-tˆete d’un message pour lui donner une adresse IP d’origine diff´erente de l’adresse r´eelle d’envoi. La difficult´e pour l’intrus, dans ce cas, est de parvenir `a r´ecup´erer la r´eponse, qui ne lui est plus envoy´ee directement. Pour cela, il a besoin soit de la propri´et´e divert, soit, ` a d´efaut, de la propri´et´e eaves dropping. Lorsque l’intrus envoie un message en falsifiant l’en-tˆete pour faire croire que ce message vient d’un acteur a, l’envoyeur est not´e I(a) : il s’agit de l’intrus I, mais avec l’identit´e a. Nous remarquons, sans le prouver formellement, qu’un intrus poss´edant les capacit´es divert et impersonate a aussi la capacit´e eaves dropping : il peut toujours intercepter un message, mettre le contenu de ce message dans ses connaissances (propri´et´e divert) et le renvoyer sous l’identit´e de l’´emetteur initial. Dans le cas de la figure 5.2, l’intrus a les capacit´es d’interception et d’envoi sous une fausse identit´e : divert, impersonate ; D. Dolev et A. Yao ont formalis´e, dans [41], la notion d’un intrus ayant un contrˆole total sur le r´eseau, ainsi que ses capacit´es de d´eduction dans le cadre du chiffrement parfait. Un attaquant de ce type sera dit de D. Dolev-A. Yao, en r´ef´erence `a ces deux auteurs. 5.2.5.ii
Connaissances initiales de l’intrus
Les connaissances initiales de l’intrus viennent de deux sources : a) des instances des rˆ oles qu’il joue de mani`ere l´egitime, tel que sp´ecifi´e dans la partie sur les instances initiales des rˆ oles ; b) d’une liste d’identificateurs ` a la discr´etion de l’utilisateur. Les identificateurs de cette liste doivent avoir ´et´e d´ej`a d´efinis dans la partie d’instanciation des rˆoles. Sans cela, il serait impossible, pour le compilateur, de d´eterminer leur type. Dans l’exemple de la figure 5.2, les connaissances suppl´ementaires de l’intrus sont le nom de l’acteur b ainsi que sa clef publique : b, kb ;
5.2.6
Sp´ ecification des propri´ et´ es du protocole
Le but de l’intrus est de parvenir ` a violer au moins une des propri´et´es de s´ecurit´e du protocole. Actuellement, deux propri´et´es peuvent ˆetre d´eclar´ees : – secrecy of M1 , . . . , Mn signifie que les messages M1 , . . . , Mn doivent rester ignor´es de l’intrus. Une variante, Short Term Secret, donne le terme secret `a l’intrus `a la fin de l’ex´ecution du protocole. Ce but sert pour les protocoles d’´echanges de clefs, lorsqu’on veut garantir qu’une clef de session n’est pas r´eutilis´ee. Dans la version actuelle, les propri´et´es de secret ne portent que sur des messages atomiques. L’extension `a des messages non atomiques n’a pas ´et´e jug´ee utile ;
5.3. S´emantique Op´erationnelle
75
– A authenticates B on M1 , . . . , Mn signifie que B va r´eussir `a authentifier son interlocuteur A en se basant sur les messages M1 , . . . , Mn . L`a encore, et pour les mˆemes raisons, seuls des messages atomiques sont accept´es. Plusieurs types d’authentification sont donn´es par G. Lowe [62]. Pour faciliter la sp´ecification du protocole, nous n’en avons retenu qu’une seule. Ainsi, lorsqu’un acteur b jouant le rˆ ole de B envoie une valeur ti pour Mi , i ∈ {1, . . . , n} `a un acteur a jouant le rˆ ole A, un ´ev´enement (b, a, Mi , ti ) est m´emoris´e. D`es qu’un acteur a0 jouant le rˆole A termine une session en pensant : a) avoir communiqu´e avec b0 jouant le rˆole B ; b) avoir re¸cu de b0 les valeurs ui pour les messages Mi , i ∈ {1, . . . , n}, tous les ´ev´enements (b0 , a0 , Mi , ui ) doivent s’ˆetre produits. Avec cette d´efinition, une authentification r´eussie exclut les attaques par r´ep´etition (o` u B participe `a moins d’ex´ecutions du protocole que A). Cela a permis, par exemple, de trouver une attaque sur une partie du protocole SET . Seules ces deux propri´et´es de protocoles peuvent ˆetre d´efinies dans le langage LHNSP. Dans la sp´ecification de la figure 5.2, seule l’authentification est demand´ee : B authenticates A on N a ;
5.3 5.3.1
S´ emantique op´ erationnelle pour les protocoles cryptographiques Description du syst` eme de transition final
Nous rappelons que le but de la compilation est d’associer `a la sp´ecification d´eclarative d’un protocole dans le langage LHNSP un syst`eme de transitions (Σ, T ), o` u Σ est un ensemble (infini) d’´etats, et T une relation, dite relation de transition, entre les ´etats. Les ´etats de Σ sont des multi-ensembles de termes repr´esentant, `a un moment donn´e, l’ensemble du r´eseau, les agents honnˆetes participant et l’intrus. Nous distinguons les termes suivant le symbole de tˆete. Il y a principalement : – Les m-termes repr´esentent les messages qui ont ´et´e envoy´es par un acteur ou l’intrus, et qui n’ont pas encore ´et´e re¸cus ; – les w-termes repr´esentent des acteurs en attente d’un message ; – les i-termes repr´esentent des connaissances de l’intrus. Des termes auxiliaires seront introduits au moment de leur utilisation. Afin de simplifier la pr´esentation, [t1 , . . . , tn ] d´enote une liste de termes, ht1 , t2 i le constructeur de couples, et on garde les notations des messages pour les autres constructeurs. Le constructeur de multi-ensembles est not´e · : t1 · t2 · t2 est le multi-ensemble M tel que M (t1 ) = 1, M (t2 ) = 2 et M (t) = 0 si t 6= t1 , t2 . Les termes sont construits ` a partir de variables et de constantes. Parmi ces derni`eres, la constante I a la signification sp´eciale de repr´esenter l’intrus.
5.3.2
Description des ´ etats du syst` eme (Σ, T )
5.3.2.i
Description des termes
Les m-termes. Les termes de messages sont d’arit´e 4. Les arguments sont, dans l’ordre : – l’envoyeur r´eel du message. Il s’agit de l’agent honnˆete ou de l’intrus ayant envoy´e ce message ; – l’envoyeur officiel, dont le nom peut ˆetre d´eduit d’un message par son receveur ; – le receveur attendu du message ; – le message lui-mˆeme. Ainsi, par exemple, le terme m(I, a, b, {N b}Kb) repr´esente le message {N b}Kb envoy´e par l’intrus `a l’acteur b en pr´etendant ˆetre l’acteur a. Les w-termes. Les termes des participants, acteurs dans un ´etat ou rˆole dans une transition, sont d’arit´e 2. Leurs arguments sont : ´ – le num´ero du message que le participant attend. Etant donn´e un protocole, ce num´ero identifie aussi le rˆ ole jou´e par cet agent [56]. Un acteur prˆet `a initier un protocole est marqu´e comme ´etant ` a l’´etape 0 ;
76
Chapitre 5. Compilation de protocoles cryptographiques
– la liste des connaissances de l’acteur attendant le message. Dans cette liste se trouvent entre autres le nom de l’acteur. Par exemple, le terme w(0, [a, I , ka, ka 0 , ki ]) repr´esente l’acteur a jouant le rˆole A dans la figure 5.2. Ces termes sont d´evolus aux agent honnˆetes. Lorsque l’intrus joue officiellement un rˆole, les connaissances initiales de ce rˆ ole sont vers´ees dans les connaissances initiales de l’intrus. Les i-termes. 5.3.2.ii
Les termes de l’intrus sont d’arit´e 1. Un terme i(t) signifie que l’intrus connaˆıt t.
L’´ etat initial
Le compilateur d´eduit l’´etat initial du protocole en fonction de l’instance du protocole. Par exemple, l’´etat initial de la sp´ecification 5.2 est : w(0, [a, I , ka, ka 0 , ki ]) · w(1, [b, a, kb, kb 0 , ka]) ·i(I) · i(a) · i(b) · i(ka) · i(kb) · i(ki) · i(ki0 ) 5.3.2.iii
´ Etats critiques
Lorsqu’un terme t suppos´e rester secret est envoy´e par un agent honnˆete et n’est pas suppos´e ˆetre re¸cu par l’intrus, un terme secret(t) est ajout´e `a l’´etat courant du protocole. Un ´etat viole la propri´et´e de secret s’il contient les deux termes secret(xs ) et i(xs ) pour une valeur de xs . Pour la propri´et´e A authenticates B on N a, un terme : witness(xB , xA , N a, xN a ) est ajout´e `a l’´etat du protocole d`es qu’un acteur xB jouant le rˆole B envoie `a un acteur xA jouant le rˆole A la valeur xN a pour N a pour la premi`ere fois de sa session. Avec les mˆemes notations, lorsque xA termine sa partie du protocole, un terme : request(xA , xB , N a, xN a ) est ajout´e avec les valeurs que xA attribue `a xB et xN b . Un m´ecanisme de simplification enl`eve de l’´etat les deux termes witness et request si les valeurs correspondent. Un ´etat du protocole violant la propri´et´e d’authentification est un ´etat contenant un terme request apr`es simplification.
5.3.3
S´ emantique op´ erationnelle en sortie du compilateur
Nous d´ecrivons, dans cette section, le syst`eme de transitions (Σ, T ) donnant une s´emantique op´erationnelle au protocole. Les r`egles d´ecrites dans cette section sont, sauf pour le dernier paragraphe, directement issue d’un travail ant´erieur au nˆotre et sont d´ecrites avec pr´ecision dans [56]. 5.3.3.i
Traitement des actions des acteurs honnˆ etes
Tout d’abord, nous consid´erons un ensemble de variables X index´e par les termes de T(F, V), ainsi que les termes construits sur ces variables et sur les constantes T(F, X ). Les ´etats de Σ sont des ensembles de termes de T(F, X ). Nous d´ecrivons maintenant la relation de transition T entre deux ´etats E et E 0 de Σ lors d’une action d’un acteur. Un ´etat E contient des termes m correspondant ` a des messages envoy´es et pas encore re¸cus, des termes w correspondant `a des acteurs dans un certain ´etat, et des termes i repr´esentant les connaissances de l’intrus. La s´eparation entre rˆ oles et acteurs permet d’associer `a chaque ´etape d’un rˆ ole une r`egle de transition correspond ` a une r´eception de message et `a l’envoi imm´ediat de la r´eponse. Ces r`egles sont de la forme : m(xReal , xOff , xRecv , R) · w(j, K) → m(xSend , xSend , xRecv 2 , S) · w(j 0 , K 0 ) Dans cette r`egle, j est l’´etape de r´eception du message courant et j 0 est l’´etape de r´eception du message suivant. R, S, K et K 0 sont des termes repr´esentant respectivement le message attendu par le rˆole `a l’´etape j, le message envoy´e en r´eponse, les connaissances du rˆole `a l’´etape j, et les
5.3. S´emantique Op´erationnelle
77
connaissances du rˆ ole apr`es l’envoi de la r´eponse. Nous d´ecrirons dans la suite de ce chapitre la construction de ces termes. Pour le syst`eme de transition (Σ, T ), et pour E, E 0 ∈ Σ, on a T (E, E 0 ) s’il existe une r`egle l → r et une substitution σ telles que lσ ⊆ E et E 0 = E \ lσ ∪ rσ. Par exemple, en se basant sur la p sp´ecification de protocole de la figure 5.2, supposons que l’intrus ait envoy´e le message {I, a}kb en pr´etendant ˆetre l’acteur a jouant le rˆole A `a un acteur b jouant le rˆole B. L’´etat du protocole est alors : p m(I, a, b, {I, a}kb ) · w(0, [a, I , ka, ka 0 , ki , na]) · w(1, [b, a, kb, kb 0 , ka, nb]) ·i(I) · i(a) · i(b) · i(ka) · i(kb) · i(ki) · i(ki0 ) La r`egle de r´eception du premier message pour le rˆole B est : p
0 m(xinc , xA , xB , {xNa , xA }xKb ) · w(1 , [xB , xA , xKb , xKb , xKa , xNb ]) ⇒ p 0 m(xB , xB , xA , {xNb , xNa }xKa ) · w(3 , [xB , xA , xKb , xKb , xKa , xNb , xNa ])
Elle peut ˆetre appliqu´ee sur l’´etat courant du protocole avec la substitution σ suivante : - xinc σ = I - xN a σ = I - xN b σ = nb
- xA σ = a - xKb σ = kb
- xB σ = b - xKa σ = ka
Le nouvel ´etat E 0 obtenu est alors : p
m(b, b, a, {nb, I }ka ) · w(0, [a, I , ka, ka0 , ki , na]) · w(3, [b, a, kb, kb0 , ka, nb, na])·i(I ) · i(a) · i(b) · i(ka) · i(kb) · i(ki ) · i(ki 0 ) 5.3.3.ii
Traitement des actions de l’intrus
Interception d’un message. L’interception d’un message quelconque se code tr`es simplement dans notre formalisme : m(x1 , x2 , x3 , x4 ) → i(x2 ) · i(x3 ) · i(x4 ) L’intrus a toujours la possibilit´e d’intercepter les messages qui lui sont adress´es, donc la sortie du compilateur contient une r`egle de ce type dans laquelle la variable x3 est remplac´ee par I. Si l’intrus poss`ede la propri´et´e divert, nous supposons qu’il n’intercepte pas les messages qu’il a envoy´es. Il y a donc, en sortie du compilateur, une r`egle de ce type pour chaque acteur honnˆete a du protocole, dans laquelle la variable x1 est remplac´ee par a. ´ Ecoute d’un message. Lorsque l’intrus poss`ede la capacit´e eaves dropping, il a la possibilit´e d’´ecouter les messages en transit. L’´ecoute d’un message quelconque est mod´elis´ee par la r`egle : m(x1 , x2 , x3 , x4 ) → m(x1 , x2 , x3 , x4 ) · i(x2 ) · i(x3 ) · i(x4 ) Dans l’implantation effective du compilateur, un marqueur est ajout´e dans les arguments du constructeur m pour assurer que l’intrus n’´ecoute pas plusieurs fois le mˆeme message [56]. Les messages envoy´es par l’intrus sont marqu´es comme ayant d´ej`a ´et´e ´ecout´es. Composition de messages et d´ ecomposition des connaissances, le mod` ele statique. L’intrus, dans le mod`ele de D. Dolev-A. Yao, peut cr´eer un nombre infini de messages. Dans le but de pouvoir ´etudier des protocoles dans le cadre de la validation de mod`ele, il est habituel de restreindre les protocoles pour se ramener au cas d’un nombre fini d’´etats. L’hypoth`ese usuelle, d´ecrite dans [88], consiste ` a borner la taille des messages ´echang´es en utilisant un m´ecanisme de typage. Ce m´ecanisme assure qu’une variable, dans les r`egles produites, ne pourra ˆetre instanci´ee que par une constante. Sous cette hypoth`ese de typage, il est possible de calculer, connaissant les messages du protocole, toutes les possibilit´es que peut avoir l’intrus pour composer un message. Des
78
Chapitre 5. Compilation de protocoles cryptographiques
r`egles de simplification sont g´en´er´ees pour permettre `a l’intrus de d´ecomposer ses connaissances. Dans la version actuelle de CasRul, ces r`egles sont : (h , i)
i(hx1 , x2 i) → i(x1 ) · i(x2 )
s
i({x1 }x2 ) · i(x2 ) → i(x1 ) · i(x2 )
p
i({x1 }x2 ) · i(x02 ) → i(x1 ) · i({x1 }x2 ) · i(x02 )
p
i({x1 }x0 ) · i(x2 ) → i(x1 ) · i({x1 }x0 ) · i(x2 )
({ } ) ({ } ) ({ } )
s
p
p p
p
2
2
Ces r`egles, d´ecrites dans [56], pr´esentent cependant l’inconv´enient de ne pas permettre le traitement de clefs compos´ees. Une autre voie, le mod` ele paresseux. Nous avons introduit dans [24] un mod`ele paresseux de l’intrus reposant sur la r´esolution de contraintes. Ce syst`eme, d´ecrit au chapitre 6, permet une analyse `a la fois plus performante et plus compl`ete d’un protocole. Il n’est plus n´ecessaire de pr´ecalculer les diff´erentes mani`eres possibles de composer ou d´ecomposer un message, ce qui a rendu obsol`etes les calculs pr´esent´es au paragraphe pr´ec´edent.
5.3.4
R` egles optimis´ ees
Les termes des principaux combinent plusieurs aspects par ailleurs ind´ependants : – l’ordre d’application des r`egles est sous-tendu par les r`egles de r´eception/envoi de messages. Le contenu d’un terme w d´etermine quel message est attendu par un principal dans son ´etat actuel ; – les principaux se « souviennent » des messages qu’ils ont re¸cu en stockant leur valeur dans le terme w. Cette valeur est m´emoris´ee pour ˆetre compar´ee aux messages re¸cus et utilis´ee dans les messages envoy´es. Dans ces deux cas, le terme w peut ˆetre qualifi´e de « d´etail d’implantation » du syst`eme de transition (Σ, T ). Nous utilisons, en dehors de ce chapitre, un mod`ele plus direct pour exprimer l’ordre d’application des r`egles et le partage des connaissances. Pour cela, nous supposons que l’intrus a les capacit´es du mod`ele de D. Dolev et A. Yao, c’est-`a-dire qu’il peut intercepter les messages et en envoyer sous une fausse identit´e. Dans ce cadre, nous supposons en plus que l’intrus intercepte tous les messages, et donc que tous les messages re¸cus par les principaux honnˆetes ont ´et´e envoy´es par l’intrus. Pour chaque rˆ ole X, nous consid´erons un ensemble de r`egles : {Rι ⇒ Sι }ι∈I o` u I est un ensemble fini ordonn´e. Nous imposons que l’ordre sur I soit total. Cela correspond au fait que les actions d’un rˆ ole sont s´equentielles et effectu´ees dans un ordre d´etermin´e par le protocole. Le partage des connaissances est simul´e par un partage des variables entre toutes les r`egles du rˆole. Une instance du rˆ ole X par un acteur honnˆete x est mod´elis´ee par une substitution σ sur les variables de {Rι ⇒ Sι }ι∈I . Cette substitution envoie les variables correspondant aux connaissances initiales sur les termes clos donn´es par la sp´ecification de l’instance, et les autres variables sur un sous-ensemble Xσ des variables. Les connaissances ne sont pas partag´ees d’une instance d’un rˆole `a une autre, donc nous imposons aux substitutions σ1 , . . . , σk utilis´ees pour instancier un protocole de v´erifier : ∀i, j ∈ {1, . . . , k} , i 6= j ⇒ Xσi ∩ Xσj = ∅ Une instance d’un protocole est d´efinie par une union d’instances de rˆoles et par les connaissances initiales de l’intrus, donc en dehors de ce chapitre, et `a moins qu’il en soit pr´ecis´e autrement, nous appelons protocole un triplet ({Rι ⇒ Sι }i∈I ,
5.4. Ex´ecutabilit´e
5.4 5.4.1
79
Ex´ ecutabilit´ e d’un protocole Probl` eme
Le protocole de R. Needham et M. Schroeder, pr´esent´e dans la figure 5.2, ne pose pas de probl`eme d’implantation. Dans cette section, nous consid´ererons donc un protocole jouet, plus simple, et des variations autour de ce protocole. Consid´erons l’´echange de messages de la figure 5.3, et supposons qu’initialement, le rˆ ole B ne connaisse ni la clef sym´etrique K, ni le message M . 1. ... n. n + 1.
A
→
B
:
{M }K
A B
→ →
B A
: :
K M
Fig. 5.3 – Exemple de d´ecomposition de connaissances ant´erieures Apr`es avoir re¸cu le premier message, et en consid´erant le chiffrement comme parfait, B ne connaˆıt ni la valeur de M , ni celle de K. Et pourtant, il a re¸cu B et M ! Supposons maintenant qu’un acteur jouant le rˆ ole B doive r´epondre en ´emettant le message M : 1. 2.
A B
→ →
B A
: :
{M }K M
Un tel protocole ne peut pas ˆetre ex´ecut´e. Il ne pourra pas ˆetre ex´ecut´e non plus si M d´esigne un rˆole (est de type ). Enfin, nous remarquons que si M n’est pas envoy´e dans le premier message : 1. 2.
A B
→ →
B A
: :
{A}K M
le protocole devient ex´ecutable : M est une nouvelle valeur cr´e´ee par l’acteur jouant le rˆole B. Dans la suite de cette section, nous allons voir comment retrouver les nonces `a partir d’une sp´ecification de protocoles en sous-section 5.4.2. Ensuite, disposant des nonces cr´e´es par un rˆ ole, de ses connaissances initiales et de la suite des messages du protocole, nous ´etudierons le probl`eme de l’ex´ecutabilit´e d’un protocole.
5.4.2
Traitement des nonces
Soit V l’ensemble des variables de rˆole apparaissant dans la suite de messages d’un protocole, Vinit l’ensemble des variables de rˆ oles dans les connaissances initiales des rˆoles, et Vnonce l’ensemble des variables de rˆ oles qui sont des nonces. Pour que la sp´ecification du protocole soit correcte, il est n´ecessaire d’avoir : V = Vinit ∪ Vnonce Vinit ∩ Vnonce = ∅ Si une variable de rˆ ole N apparaˆıt dans les connaissances initiales d’un rˆole, elle ne sera pas trait´ee comme un nonce. Il suffit donc de v´erifier que si une variable de rˆole N n’apparaˆıt pas dans les connaissances initiales des rˆ oles, alors c’est un nonce. Il y a pour cela deux contraintes `a v´erifier. En l’absence de m´ecanisme de communication autre que l’envoi de messages, un nonce ne peut ˆetre cr´e´e que par un seul rˆole. Donc une variable qui n’est dans les connaissances initiales d’aucun rˆole est un nonce si : – elle a ´et´e cr´e´ee par le rˆ ole l’envoyant en premier ; – elle n’est cr´e´ee par aucun autre rˆole lors d’une ex´ecution normale du protocole. Pour les clefs publiques/priv´ees, nous supposons aussi qu’un rˆole cr´eant une clef publique (ou priv´ee) cr´ee en mˆeme temps la clef priv´ee (publique) correspondante. Il faudra alors v´erifier que le protocole est ex´ecutable sous ces hypoth`eses. Pour la suite de cette section, notons Nonce(A) l’ensemble des nonces qu’on pense ˆetre cr´e´es par le rˆole A.
80
Chapitre 5. Compilation de protocoles cryptographiques
5.4.3
D´ efinition de l’ex´ ecutabilit´ e
Dans cette partie, un protocole est donn´e par un ensemble de rˆoles, par des connaissances initiales pour chaque rˆ ole, et par une suite de messages en notation Alice et Bob. Notons Si l’envoyeur du message i, et Ri le receveur de ce message, pour i ∈ {1, . . . , n}. Pour simplifier les notations, supposons que les nonces cr´e´es par un rˆole le sont avant le d´ebut des ´echanges de messages, et pour un rˆ ole A, notons Init(A) l’ensemble des connaissances initiales de A. D´ efinition 33 (Connaissance d’un rˆ ole) Dans un protocole dont la suite de messages est (i. Si → Ri : Mi )i∈{1,...,n} , La connaissance d’un rˆ ole A apr`es la r´eception du message i, not´ee Mem(A, i), est : si i = 0 Init(A) ∪ Nonce(A) Mem(A, i − 1) si A 6= Ri Mem(A, i) = Mem(A, i − 1) ∪ {Si } ∪ {Mi } si A = Ri Par d´efinition, Mem(A, i) est un sous-ensemble de T(F, V). Il est maintenant possible de d´efinir ce que signifie, pour un protocole, ˆetre ex´ecutable. D´ efinition 34 (Protocole ex´ecutable) Un protocole P dont la suite de messages est (i. Si → Ri : Mi )i∈{1,...,n} est ex´ecutable si : ∀i ∈ {1, . . . , n} ,
5.4.4
Rproto
Mi ∈ Mem(Si , i − 1)
D´ efinition et complexit´ e du probl` eme
Executabilite(P )
Soit P un protocole donn´e par une liste de variables de rˆoles V, un ensemble de connaissances initiales pour chaque rˆ ole, un ensemble de connaissances initiales : Init : VR ⊆ V → P( 0T( 0F, V)) et une liste de messages dans la notation Alice et Bob {(i. Si → Ri : Mi )}i∈{1,...,n} . Consid´erons le probl`eme de d´ecision :
Executabilite(P ) : Le protocole P est-il ex´ecutable ? Tout d’abord, remarquons qu’il est possible de construire en temps polynomial en la taille de P , pour chaque rˆ ole A, la liste de nonces devant ˆetre cr´e´es par A : il suffit de lire la liste des messages Mi . Si une variable apparaˆıt dans Mi mais pas dans Mj , 1 ≤ j < i ni dans les connaissances initiales, alors cette variable doit ˆetre un nonce cr´e´e par Si . Pour tout i, l’ensemble Mem(Si , i−1) peut ˆetre calcul´e en temps polynomial, donc par d´efinition, le probl`eme (P ) se r´eduit en n probl`emes :
Executabilite Accessibilite Close(Mem(Si , i − 1), Mi , Rproto ),
i ∈ {1, . . . , n}
Le th´eor`eme suivant est alors une cons´equence du th´eor`eme 4 du chapitre 4. Th´ eor` eme 5 (Complexit´e du probl`eme d’ex´ecutabilit´e) Pour un protocole P en notation Alice et Bob, le probl`eme de d´ecision
Executabilite(P ) est dans PTIME.
5.5. Gestion des Connaissances
5.5 5.5.1
81
Gestion des connaissances Mod` ele pour la gestion des connaissances
Pour tester l’ex´ecutabilit´e d’un protocole, nous avons consid´er´e une ex´ecution du protocole suivant le sc´enario donn´e par la notation Alice et Bob. Pour ´etudier les diff´erentes ex´ecutions possibles d’un protocole en pr´esence de l’intrus, il est n´ecessaire d’analyser plus pr´ecis´ement les connaissances des rˆ oles. Rappelons l’exemple de protocole de la figure 5.3, en supposant que B ne connaisse pas la clef sym´etrique K : 1. ... n. n + 1.
A
→
B
:
{M }K
A B
→ →
B A
: :
K M
` la r´eception du premier message, un acteur jouant le rˆole B, ne connaissant pas K, ne peut pas A v´erifier la structure du premier message. L’intrus peut donc substituer n’importe quelle valeur au message envoy´e par A, ce message sera toujours accept´e par un acteur jouant le rˆole B. Dans le but de mod´eliser les substitutions que l’intrus peut appliquer sur un message attendu par un rˆ ole B, nous allons : a) donner, pour chaque rˆ ole, une repr´esentation des connaissances par un ensemble de termes valeurs ; b) exprimer les messages attendus et envoy´es par un rˆole par des filtres sur les termes valeurs. Pour cela, nous avons besoin de deux op´erations sur les ensembles de termes. La premi`ere, Rproto Cloture(E), donne les sous-termes de E qui sont dans E . D´ efinition 35 (Cloture(E))) Soit E un ensemble de termes. Nous notons : Cloture(E) =
(E) ∩ E
Rproto
Nous d´efinissons aussi, pour un ensemble de termes valeurs E, les termes dont la valeur ne peut pas ˆetre inf´er´ee ` a partir d’autres termes de E. D´ efinition 36 (termes testables dans E) Soit E un ensemble de termes valeurs, et t ∈ (E). Le terme t est dit testable dans E si t ∈≡ −1 Cloture(E). L’ensemble des termes testables dans E est not´e Test(E). Les sous-termes t testables d’un ensemble E sont donc ceux qui peuvent ou dont l’inverse peut ˆetre d´eduit de E. Cette deuxi`eme condition peut ˆetre remplie en chiffrant une constante a par t puis en d´echiffrant le r´esultat en utilisant l’inverse suppos´e s de t. Si cette proc´edure permet de retrouver a, alors s est bien l’inverse de t.
5.5.2
Construction d’une repr´ esentation des connaissances
5.5.2.i
Motivation
Hypoth` ese d’analyse compl` ete. Le traitement des connaissances par un rˆole n’est pas sp´ecifi´ee par un sc´enario de r´eception/envoi de messages. Il nous faut donc faire des hypoth`eses sur la mani`ere dont les rˆ oles relient les connaissances qu’ils ont apprises au cours d’une ex´ecution. Nous supposons que les rˆ oles essayent toujours d’analyser au maximum les connaissances. Autrement dit, nous consid´erons qu’un rˆ ole connaissant un ensemble E de termes calcule toujours Cloture(E) et v´erifie autant que possible les relations possibles entre les termes de Cloture(E).
82
Chapitre 5. Compilation de protocoles cryptographiques
Construction des relations entre les termes de Cloture(E). Nous allons construire un ensemble de relations liant les termes de Cloture(E) par le biais d’une proc´edure non d´eterministe. Sch´ematiquement, cette proc´edure consiste `a partir d’un ensemble vide de relation, et `a construire, pour chaque terme t de Cloture(E), une relation non triviale avec les autres termes de Cloture(E). Nous donnons quatre sous-proc´edures, une pour chacun des constructeurs ⊕({ }),Exp( , ) et p,rsa {} , et la quatri`eme pour les constructeurs libres. Chaque proc´edure ne modifie la relation que pour les f -termes de Cloture(E). Soit X E un ensemble de variables index´ees par les ´el´ements testables dans E. L’absence de relation entre les termes de Cloture(E) est mod´elis´ee par une fonction : δ0 : Test(E) → X E t 7→ xt La fonction δ construisant un ensemble de relations entre les termes est construite au moyen de l’algorithme des figures 5.4 ` a 5.7. 5.5.2.ii
Probl` eme de la construction d’une relation et op´ erateurs non syntaxiques
Exemple introductif. Les op´erateurs dont la th´eorie est non vide, par exemple le ⊕({ }), posent un probl`eme lors de la construction d’une relation entre les donn´ees, qui est l’absence de repr´esentation canonique a priori des valeurs possibles. Consid´erons l’exemple : E = Cloture(E) = {a, b, c, d, ⊕({a, b}), ⊕({c, d}), ⊕({a, c}), ⊕({b, d}), ⊕({b, c, d}), ⊕({a, b, c, d})} La repr´esentation la plus simple de cet ensemble est : δE (E)
= {xa , xb , xc , xd , ⊕({xa , xb }), ⊕({xc , xd }), ⊕({xa , xc }), ⊕({xb , xd }), ⊕({xb , xc , xd }), ⊕({xa , xb , xc , xd })}
Cependant, le r´esultat de la premi`ere boucle de l’algorithme de la figure 5.7 appliqu´ee aux ⊕-termes pourrait ˆetre : δE (E)
= {xa , xb , xc , xd , ⊕({xa , xb }), ⊕({xc , xd }), x⊕({a,c}) , x⊕({b,d}) , ⊕( xc , x⊕({b,d}) ), ⊕( x⊕({a,c}) , x⊕({b,d}) )}
Dans cette repr´esentation, par exemple, nous avons perdu qu’il ´etait possible d’obtenir a `a partir de ⊕({b, c, d}) et ⊕({a, b, c, d}). Le mˆeme type de probl`eme se pose pour les op´erateurs Exp( , ) et p,rsa {} . Dans la suite, nous donnons quatre algorithmes permettant de repr´esenter des f -termes de p,rsa Cloture(E ∪F ), un pour f constructeur libre, et un pour chaque cas g ∈ {⊕({ }), Exp( , ), { } }. Le cas des termes testables est trait´e dans l’algorithme 5.7 via la traitement de l’op´erateur −1 . Construction de la repr´ esentation pour les ⊕-termes. L’ensemble E est fini. Dans l’algorithme de la figure 5.4, nous simplifions les notations en assimilant un terme t `a sa repr´esentation dans l’espace vectoriel IF F 2. La base B peut ˆetre construite en utilisant le th´eor`eme de la base incompl`ete `a partir de Mb . L’inclusion B ⊆ M est possible car M est un ensemble g´en´erateur de hM i par construction. Elle implique que tout ´el´ement de la base B est dans Cloture(E), et est donc un sous-terme de E. Notons enfin que δ⊕ (t) 6= δ0 (t) implique que t est un ⊕-terme par le choix de la base. Construction de la repr´ esentation pour les Exp( , )-termes. Nous avons vu dans le chapitre 3 que les Exp( , )-termes d’une mˆeme base ont une structure de module sur . La difficult´e r´eside ici dans le fait que les facteurs des Exp( , )-termes (l’´equivalent de M⊕ dans le cas de l’op´erateur ⊕) et les termes de Cloture(E) servant `a les simplifier (les termes de Mb dans le cas de l’op´erateur ⊕) ne jouent pas les mˆemes rˆoles. Il n’est pas possible de faire la somme de deux facteurs, par exemple. Pour chaque terme u qui est base d’un Exp( , )-terme t, nous consid´erons :
5.5. Gestion des Connaissances
soit F =
83
[
Facteur⊕ (t)
t ⊕−terme de Cloture(E)
M⊕ = {t ∈ Cloture(E) | t ⊕ −terme} Mb = {t ∈ Cloture(E) | t ∈ F } soit M = M ⊕ ∪ Mb soit hM i le sous-espace vectoriel de IF F e par M . 2 engendr´ soit B une base de hM i avec Mb ⊆ B ⊆ M . pour tout t ∈ M⊕ faire si t ∈ B, alors δ⊕ (t) = δ0 (t) sinon, soit t = p⊕({b1 , . . . , bk })q l’´ecriture de t dans la base B (k > 1) alors δ⊕ (t) = ⊕({δ0 (b1 ), . . . , δ0 (bk )}) finsi finfaire Fig. 5.4 – Algorithme de construction de la fonction δ pour les ⊕-termes. – l’ensemble Fu des facteurs (multi-ensembles g´en´eralis´es) des termes de Cloture(E) de base u. Par convention, si u ∈ Cloture(E), Fu contient le multi-ensemble g´en´eralis´e O de support vide ; – l’ensemble : Mu = {t ∈ Cloture(E) | ∃M ∈ Fu , t ∈ (M)} et la relation d’´equivalence ≡Mu sur Fu : M ≡Mu M0 si et seulement si
(M − M0 ) ⊆ Mu
L’algorithme de repr´esentation des Exp( , ) termes est expos´e dans la figure 5.5. Il est plus complexe que dans le cas de l’op´erateur ⊕ car les facteurs peuvent aussi ˆetre des Exp( , )-termes. Notons que δExp (t) 6= δ0 (t) implique, l`a encore, que t est un Exp( , )-terme. p,rsa
Construction de la repr´ esentation pour les { } termes. La construction de la repr´esentation p,rsa des connaissances dans le cas de l’op´erateur { } est tr`es proche de celle dans le cas de l’op´erateur Exp( , ). Les deux seules diff´erences sont : – les termes de Mu sont choisis modulo la relation d’´equivalence ≡ −1 ; – pour les termes de base u, la relation ≡Mu n’est pas, en g´en´eral, une relation d’´equivalence. Elle est r´eflexive et transitive, mais pas sym´etrique, car seules des combinaisons lin´eaires positives peuvent ˆetre prises en compte. p,rsa Soit u une base de { } -termes fix´ee. Nous consid´erons donc, pour un facteur M de Fu , l’ensemble H(M) des facteurs M’ de Mu tels que le support de Add(M0 , Opp(M)) soit inclus dans Mu . Nous disons qu’un multi-ensemble M est maximal si M ∈ H(M0 ) implique M0 ∈ H(M). Nous notons enfin Hu,max un ensemble de cardinal minimal de maximaux parmi Fu tel que, pour tout M0 dans Mu , il existe M dans Hu,max tel que M0 ∈ H(M). L’algorithme de construction de la repr´esentation p,rsa pour les { } -termes est donn´e dans la figure 5.6. Notons que δRsa (t) 6= δ0 (t) implique, l`a encore, que t est un Exp( , )-terme.
5.5.2.iii
Construction de la repr´ esentation des termes syntaxiques.
La repr´esentation des termes dont l’op´erateur de tˆete est syntaxique est beaucoup plus simple et d´eterministe. Nous ordonnons arbitrairement les f -termes de Cloture(E), avec : f∈ / {⊕({ }), Exp( , ), { } La proc´edure est donn´ee dans la figure 5.7.
p,rsa
}
84
Chapitre 5. Compilation de protocoles cryptographiques
soit δ0 la fonction de repr´esentation des connaissances avant le traitement des Exp( , )-termes. soit B = ∅ pour tout t Exp( , )-terme dans Cloture(E ∪ F ) faire B = B ∪ BaseExp( , ) (t) finfaire pour tout u ∈ B faire Calculer Fu , Mu et les classes d’´equivalences de ≡Mu . finfaire pour tout R classe d’´equivalence faire si 0 ∈ R alors pour tout M ∈ R faire σ = [xExp(u,M) ← Exp(δi (u), M ◦ δi )] δi+1 = δi σ i=i+1 finfaire sinon choisir M ∈ R. soit x = xExp(u,M) . pour tout M0 ∈ R faire M00 = M0 − M σ = [xExp(u,M0 ) ← Exp(x, M00 δi )] δi+1 = δi σ i=i+1 finfaire finsi finfaire δExp = δi Fig. 5.5 – Algorithme de construction de la fonction δ pour les Exp-termes. 5.5.2.iv
Repr´ esentation d’un ensemble E ` a partir d’un ensemble F
Pour un ensemble E, la fonction d´efinie sur Test(E) obtenue en composant les fonctions δ⊕ , δExp , δRsa et δLibre calcul´ees par les algorithmes des figures 5.4, 5.5, 5.6 et 5.7 est not´ee δE . Notons les propri´et´es suivantes : – le syst`eme de r`egles a ´et´e limit´e pour que les r`egles de composition aient la forme demand´ee ; – s’il n’y a pas de r`egles de composition permettant de construire un terme ti , et si ti est p d´ecomposable, alors ti est n´ecessairement un { } -terme ; D´ efinition 37 (Repr´esentation) Soient E et F deux ensembles de termes. Avec les notations pr´ec´edentes, la repr´esentation de E a partir de F , not´ee Repres(E, F ), est l’ensemble : ` Repres(E, F ) = δE∪F (E) Les deux lemmes suivants permettent de caract´eriser les variables dans les repr´esentations. Lemme 7 Rproto Soient E et F deux ensembles de termes, δE∪F , et soit t ∈ Cloture(E ∪ F ) tel que t ∈ F . Alors : Var(δE∪F (t)) ⊆ Var(δE∪F (F )) Preuve. Soit D une d´erivation bien form´ee partant de F de but t : D : F = F0 → . . . → Fn 3 t
5.5. Gestion des Connaissances
85
soit δ0 la fonction de repr´esentation des connaissances avant le traip,rsa tement des { } -termes. soit B = ∅ p,rsa pour tout t { } -terme dans Cloture(E ∪ F ) faire B = B ∪ Base{ }p,rsa (t) finfaire pour tout u ∈ B faire Calculer Fu , Mu et Hu,max finfaire pour tout M ∈ Hu,max faire si 0 ∈ H(M) alors pour tout M0 ∈ H(M) faire p,rsa σ = [x{u}p,rsa ← {δi (u)}M◦δi ] M δi+1 = δi σ i=i+1 finfaire sinon soit x = x{u}p,rsa . M pour tout M0 ∈ H(M) \ {M} faire M00 = M0 − M p,rsa σ = [x{u}p,rsa ← {x}M00 δi ] M0 δi+1 = δi σ i=i+1 finfaire finsi finfaire δRsa = δi Fig. 5.6 – Algorithme de construction de la fonction δ pour les { }
p,rsa
-termes.
soit t1 , . . . , tn les termes de Cloture(E) dont le symbole de tˆete est syntaxique. pour i de 1 ` a n faire cas pour ti −1 – si ti = t0 : −1 σi = [xti ← δi−1 (t0 ) ] – s’il existe Fi → Rc,proto ti avec Fi ⊆ Cloture(E) : on a Fi = u1 , . . . , uk et t = f (u1 , . . . , uk ) σi = [xti ← f (δi−1 (u1 ), . . . , δi−1 (uk ))] p – sinon, et si ti = {a}b et ti d´ ecomposable : p σi = [xti ← {δi−1 (a)}δi−1 (b) ] fincas pour tout t ∈ Cloture(E) : δi (t) = pδi−1 (t)σi q finfaire δLibre = δn Fig. 5.7 – Algorithme de construction de la fonction δ pour les op´erateurs syntaxiques. Montrons par r´ecurrence sur i que pour tout i ∈ {0, . . . , n} : Var(δE∪F (Fi )) = Var(δE∪F (F )) C’est vrai par d´efinition pour i = 0. Supposons que Var(δE∪F (Fi )) = Var(δE∪F (F )), et soit ti+1 = Fi+1 \ Fi . Soit f le constructeur tel que la transition Li → ti+1 appliqu´ee est une f -r`egle.
86
Chapitre 5. Compilation de protocoles cryptographiques
Il suffit de montrer : Var(δE∪F (ti+1 )) ⊆ Var(δE∪F (Li ))
(A)
Raisonnons par cas sur f : – si f est un constructeur libre, alors si la r`egle est une r`egle de composition, le r´esultat vient de la construction de δE∪F (ti+1 ), et si c’est une r`egle de d´ecomposition, alors : – si le terme d´ecompos´e di peut ˆetre compos´e, δE∪F (ti+1 ) est un sous-terme de δE∪F (di ), p – sinon, alors n´ecessairement f = { } , et le r´esultat vient de la construction de δE∪F (di ) ; – si f = ⊕, la construction ` a partir d’une base implique que les facteurs de δE∪F (ti+1 ) sont inclus dans l’union des facteurs de δE∪F (Li ), ce qui implique (A) ; – si f = Exp( , ), et que la r`egle est une r`egle de composition, alors soit la base di de ti+1 est dans Li , soit il existe dans Li un terme di dans la mˆeme classe que ti+1 . Dans les deux cas, l’inclusion (A) est bien v´erifi´ee. Si la r`egle est une r`egle de d´ecomposition, alors ti+1 est la base du terme di = Exp(ti+1 , Mi ) de Li et dans ce cas la r`egle s’´ecrit : di ,
(Mi ) → ti+1
L’inclusion (A) est alors vraie par d´efinition de δE∪F (di ) dans ce cas ; p,rsa – le mˆeme raisonnement vaut pour f = { } . Donc (A) est vraie pour tout i, ce qui prouve le lemme.
Le lemme suivant est une cons´equence directe du lemme 7. Lemme 8 Soient E et F deux ensembles de termes, δE∪F , et soit t ∈ Cloture(E ∪ F ) tel que : xt ∈ Var(δE∪F (E)) \ Var(δE∪F (F )) Alors, t ∈ /F
Rproto
.
Preuve. Si t ∈ F
Rproto
, alors le lemme 7 peut ˆetre appliqu´e : xt ∈ Var(δE∪F (F )).
Hypoth` ese de monotonie. toujours que :
Soient E un ensemble et t un terme. Si t ∈ E
Rproto
, nous supposons
δE∪{t} (E) = δE (E) Notons que par le lemme 7, cette hypoth`ese ne perd pas en g´en´eralit´e.
5.5.3
Construction des r` egles de r´ eception/envoi
5.5.3.i
D´ efinition
Dans cette section, nous consid´erons un protocole P ´ecrit en notation Alice et Bob, avec une suite de messages (i. Si → Ri : Mi )i∈{1,...,n} . Tout d’abord, d´efinissons la repr´esentation de ses connaissances par un rˆ ole ` a l’´etape i. Cette repr´esentation correspond D´ efinition 38 (M´emoire d’un rˆ ole) Soit P un protocole, et A un rˆ ole de P . L’´etat de la m´emoire de A ` a l’´etape i, not´e Conn(A, i), est d´efini par : Repres(Mem(A, i − 1), {Si , Mi }) si A = Ri Conn(A, i) = Repres(Mem(A, i), ∅) sinon Le filtre pour accepter le message Attendu(i) attendu par le rˆole Ri `a l’´etape i s’´ecrit alors : D´ efinition 39 (Filtre pour le message attendu) Nous d´efinissons le message attendu par le rˆ ole Ri ` a l’´etape i par : Attendu(i) = Repres(Mi , Mem(A, i − 1))
5.5. Gestion des Connaissances
87
Remarquons que, par d´efinition, pour toute ´etape i : Var(Conn(Si , i)) = Var(Conn(Si , i − 1)) ∪ Var(Attendu(i − 1)) Le message envoy´e par le rˆ ole Si `a l’´etape i est d´efini de la fa¸con suivante. D´ efinition 40 (Filtre pour le message envoy´e) Nous d´efinissons le message ´emis par le rˆ ole Si ` a l’´etape i par : Composer(i) = Repres(Mi , Mem(Si , i)) Le lemme suivant porte sur les r´esultats de deux calculs ind´ependants, et repose donc sur l’hypoth`ese de monotonie. Il permet de caract´eriser les occurrences des variables dans les r`egles de r´eception/envoi de messages. Lemme 9 Avec les notations pr´ec´edentes, si P est ex´ecutable, alors pour tout i ∈ {1, . . . , n} : Var(Composer(i)) ⊆ Var(Conn(Si , i)) Preuve. P est ex´ecutable, donc pour tout i ∈ {1, . . . , n} : Rproto
Mi ∈ Mem(Si , i)
Par contradiction, soit xt ∈ Var(Composer(i)) \ Var(Conn(Si , i)). Par l’hypoth`ese de monotonie, xt ∈ / Var(Conn(Si , i)) implique : xt ∈ / Var(δMem(Si ,i)∪{Mi } (Mem(Si , i))) et donc : Var(δM emoire(Si ,i)∪{Mi } (Mi )) 6⊆ Var(δM emoire(Si ,i)∪{Mi } (Mem(Si , i))) Rproto
Le lemme 7 implique alors Mi ∈ / M emoire(Si , i)
, ce qui contredit l’ex´ecutabilit´e du protocole.
Sur les ´ emetteurs de messages attendus et destinataires de messages envoy´ es. Formellement, les ´emetteurs des messages devraient aussi ˆetre pris en compte dans le calcul de la fonction Attendu, et le destinataire devrait l’ˆetre dans celui de la fonction Composer. Nous ne les avons pas d´efinies ainsi uniquement dans le but de simplifier la pr´esentation, les noms des ´emetteurs et destinataires pouvant ˆetre ajout´es dans le corps des messages. Notons que ne pas prendre en compte ces noms peut aboutir ` a la « d´ecouverte » d’erreurs artificielles, par exemple celle sur la correction du protocole de R. Needham et M. Schroeder par G. Lowe [67].
5.5.4
R` egles de r´ eception/envoi de message
5.5.4.i
Exemple de compilation d’un protocole
Prenons l’exemple du protocole suivant : 1.
A
→
B
:
{M }K
2.
B
→
C
:
Exp(B, {N b})
3.
C
→
B
:
{K}(Exp(B, {N b, C}))
4.
B
→
A
:
M
Fig. 5.8 – Protocole jouet
88
Chapitre 5. Compilation de protocoles cryptographiques
Connaissances.
Les ensembles de connaissances des rˆoles, `a chaque ´etape, sont les suivants :
a) Conn(A, i) = {xM , xK , xA , xB } pour i ∈ {0, . . . , 4} ; b) – Conn(B, 0) = Conn(B, 1) = {xB , xA , xC , xNb } , – Conn(B, 2) = xB , xA , xC , xNb , x{M }K s – Conn(B, 3) = xB , xA , xC , xNb , {xM }xK , n o s s – Conn(B, 4) = xB , xA , xC , xNb , {xM }xK , {xK }Exp(xB ,{xN b ,xC }) ; c) – Conn(C, 0) = Conn(C, 1) =Conn(C2 ) = {xC , xB , xK }, – Conn(C, 3) = Conn(C4 ) = xC , xB , xK , xExp(B,{N b}) . Messages attendus. rˆole :
Les messages attendus sont d´eduit de la liste des connaissances de chaque
1. Attendu(1) = x{M }K ; 2. Attendu(2) = xExp(B,{N b}) ; s
3. Attendu(3) = {xK }Exp(xB ,{xN b ,xC }) ; 4. Attendu(4) = xM . Messages envoy´ es.
Enfin, les valeurs de la fonction Composer sont : s
1. Composer(1) = {xM }xK ; 2. Composer(2) = Exp(xB , {xNb }) ; s
3. Composer(3) = {xK }Exp(xExp(B,{N b}) ,{xC }) ; 4. Composer(4) = xM . 5.5.4.ii
R` egles produites par le compilateur.
Nous appelons r`egles g´en´erales les r`egles en sortie du compilateur CasRul. Ces r`egles mod´elisent les actions de r´eception et d’envoi de messages des acteurs participant au protocole ind´ependamment de l’environnement d’ex´ecution, c’est-` a-dire du mod`ele de l’intrus. Les hypoth`eses d’ind´ependance de contrˆole impliquent que ces r`egles ne d´ependent que des connaissances symboliques des rˆ oles et de l’´etape courante. Ces r`egles g´en´erales sont bas´ees sur les fonctions Attendu, Composer et Conn. Nous rappelons que ce sont les r`egles g´en´er´ees par le compilateur CasRul. Elles sont de la forme : m(xinc , xSi , xRi , Attendu(i)) · w(i, [Conn(Ri , i)]) ⇒ m(xRi , xRi , xRi+1 , Composer(i)) · w(i0 , [Conn(Ri , i + 1)]) pour les r`egles de r´eception/envoi de message. Si la r`egle est celle initiant une session, il n’y a pas de m-terme dans le membre gauche, et si il s’agit de celle concluant une session, il n’y a pas de m-terme dans le membre droit. La constante i0 correspond `a l’´etape suivante de r´eception d’un message pour ce rˆ ole si elle existe, et ` a l’´etape de premi`ere r´eception d’un message sinon. Par convention, l’´etape de premi`ere r´eception d’un message est, pour le rˆole initiateur du protocole, l’´etape 0. La liste [Conn(Ri , i)] contient les termes de l’ensemble Conn(Ri , i). En rassemblant le r´esultat du lemme 9 et la remarque suivant la d´efinition de Attendu, nous avons la proposition suivante. Proposition 33 Pour toute r`egle g´en´erale R ⇒ S, on a Var(S) ⊆ Var(R) Plus pr´ecis´ement, l’´egalit´e est v´erifi´ee au sein d’une ex´ecution du protocole, et est en g´en´eral stricte lors du passage d’une session ` a la suivante `a cause de l’oubli des connaissances de la session courante. Pour le protocole de la figure 5.8, les r`egles des rˆoles en sortie du compilateur CasRul sont donn´ees dans la figure 5.9.
5.5. Gestion des Connaissances
89
Message 0 : w(0, [xM , xK , xA , xB ]) ⇒ s
m(xA , xA , xB , {xM }xK ) · w(4, [xM , xK , xA , xB ]) Message 1 : m(xinc , xA , xB , x{M }K ) · w(1, [xB , xA , xC , xNb ]) ⇒ m(xB , xB , xC , Exp(xB , {xNb })) · w(3, [xB , xA , xC , xNb , x{M }K ]) Message 2 : m(xB , xB , xC , xExp(B,{N b}) ) · w(2, [xinc , xB , xK ]) ⇒ s
m(xC , xC , xB , {xK }Exp(xExp(B,{N b}) ,{xC }) ) · w(2, [xC , xB , xK ]) Message 3 : s
s
m(xinc , xC , xB , {xK }Exp(xB ,{xN b ,xC }) ) · w(3, [xB , xA , xC , xNb , {xM }xK ]) ⇒ m(xB , xB , xA , xM ) · w(1, [xB , xA , x0Nb ]) Message 4 : m(xinc , xB , xA , xM ) · w(4, [xM , xK , xA , xB ]) ⇒ w(0, [x0M , xK , xA , xB ])
Fig. 5.9 – R`egles en sortie du compilateur CasRul
Remarques sur les r` egles g´ en´ erales. a) Tout d’abord, les termes w en partie droite de la r`egle du message 1. et en partie gauche du message 3. sont diff´erents. Lorsque la premi`ere est utilis´ee, un acteur jouant le rˆole B accepte n’importe quel message m tel qu’il existe une substitution σ1 avec x{M }K σ1 = m, c’est-` a-dire n’importe quel message. Le message re¸cu est « stock´e » dans les connaissances de B. La r`egle du message 3. ne pourra ˆetre appliqu´ee que s’il existe une substitution σ2 telle que m = ({xM }xK )σ2 ; b) la valeur de la variable xinc d´epend des capacit´es de l’intrus. Si celui-ci a la capacit´e eaves dropping, c’est une variable ayant une seule occurrence dans la r`egle. Sinon, il s’agit d’une nouvelle occurrence de la variable en deuxi`eme position du terme m : le receveur peut v´erifier que l’´emetteur officiel est l’´emetteur r´eel du message ; c) il y a des diff´erences mineures entre les r`egles donn´ees plus haut et celles en sortie du compilateur CasRul : – la premi`ere est la pr´esence, dans le terme w, d’un argument suppl´ementaire repr´esentant un num´ero de session. Cet identifiant sert `a diff´erencier des ex´ecutions diff´erentes d’un mˆeme rˆole par un mˆeme acteur, – une autre diff´erence est l’ajout d’un terme permettant d’assurer la fraˆıcheur des nonces utilis´es par les principaux. Lorsqu’un acteur se pr´epare `a commencer une nouvelle session, nous avons not´e dans ses connaissances x0 une variable prenant une valeur diff´erente de toutes celles apparues jusque l`a dans l’ex´ecution du protocole, – enfin, les nonces ne sont pas pr´esents dans l’´etat d’un rˆole se pr´eparant `a ex´ecuter une session du protocole ; ils sont ajout´es au fur et `a mesure de leur utilisation. Le lecteur peut se r´ef´erer ` a [56] et [23] pour une description plus pr´ecise de ces r`egles ;
90
Chapitre 5. Compilation de protocoles cryptographiques
5.5.4.iii
R` egles sp´ ecialis´ ees pour l’intrus de D. Dolev et A. Yao
Soit (Xi , σi )i∈{1,...,k},Xi ∈{A,B,C} une instance du protocole. Les r`egles optimis´ees pour l’intrus de D. Dolev et A. Yao, pour le receveur Xi du message j, sont de la forme : Attendu(j)σi ⇒ Composer(j)σi Ces r`egles ne permettent pas d’exprimer la d´ecomposition de connaissances acquises ant´erieurement, pour la variable x{M }K , par exemple. En effet, rien ne relie, a priori, cette variable aux variables xM et xK . Il est donc n´ecessaire soit de supposer qu’un m´ecanisme, lors de l’application de ces r`egles, va permettre de faire cette connexion, soit qu’un autre m´ecanisme permet de se passer de la d´ecomposition des connaissances acquises avant le dernier message. Cette deuxi`eme solution, plus simple `a nos yeux, a ´et´e choisie, et est d´etaill´ee dans la partie 5.5.5.ii. de la sous-section suivante.
5.5.5
Hypoth` eses sur les protocoles ´ etudi´ es
En dehors de ce chapitre, nous ´etudions des instances de protocoles sp´ecifi´ees par un ensemble de r`egles sp´ecialis´ees. Afin de simplifier l’´etude de ces protocoles, nous allons faire des hypoth`eses sur la sp´ecification haut niveau d’un protocole pour assurer que les ensembles de r`egles que nous ´etudierons auront de « bonnes » propri´et´es. Nous donnons ces hypoth`eses dans le reste de cette sous-section, en indiquant pourquoi elles conservent les ex´ecutions d’un protocole et les attaques en pr´esence d’un intrus ayant les capacit´es d’un intrus de D. Dolev et A. Yao. 5.5.5.i
D´ ecomposition de connaissances ant´ erieures
Reprenons l’exemple, en le compl´etant, du protocole de la figure 5.3. 1. 2. 3. 4.
A B A B
→ → → →
B A B A
: : : :
{M }K B K M
En supposant que les connaissances initiales de B sont A et B, la repr´esentation de ses connaissances par ce rˆole est : – Conn(B, 1) = Conn(B, 0) = {x A , xB } – Conn(B, 3) = Conn(B, 2) = xA , xB , x{M }sK – Conn(B, 4) = {xA , xB , xM , xK } Remarquons que dans ce protocole, la propri´et´e : ∀i, j ∈ {1, . . . , n} , i < j ⇒ Var(Conn(B, i)) ⊆ Var(Conn(B, j)) n’est pas v´erifi´ee. En effet, ` a chaque ´etape, un rˆole red´ecompose toutes ses anciennes connaissances. Cependant, quitte ` a transformer le protocole, il est possible de supposer que les anciennes connaissances ne sont pas d´ecompos´ees par le rˆole. Pour cela, consid´erons une nouvelle version de ce protocole, dans laquelle une clef sym´etrique Kd est ajout´ee dans les connaissances initiales du rˆole B : 1. 2. 3. 4.
A B A B
→ → → →
B A B A
: : : :
{M }K B, {{M }K}Kd {{M }K}Kd , K M
Si le rˆole B ne d´ecompose pas ses anciennes connaissances on a, dans ce protocole : – Conn(B, 1) = Conn(B, 0) = {x A , xB , xKd } – Conn(B, 3) = Conn(B, 2) = xA , xB , x{M }sK , xKd – Conn(B, 4) = xA , xB , xM , xK , x{M }sK , {{xM }xK }xKd , xKd L’ensemble des variables dans les ensembles de connaissances devient donc croissant. Dans le cas de r`egles g´en´erales, la d´ecomposition de connaissances ant´erieures ne pose pas de probl`emes : si le message envoy´e par l’intrus ` a l’´etape 1. n’est pas de la forme {xM }xK , il ne sera pas possible
5.5. Gestion des Connaissances
91
d’appliquer la r`egle de r´eception du message 4. Dans le cas des r`egles sp´ecialis´ees pour l’intrus de D. Dolev et A. Yao, la d´ecomposition des messages ant´erieurs pose probl`eme car il faudra alors pr´evoir plusieurs r`egles, exclusives les unes des autres, pour le cas o` u l’intrus envoie le message 1. puis le message 4., ou uniquement le message 1. Afin de ne pas avoir `a consid´erer ces diff´erents cas, nous supposons que les r`egles du protocole sont telles qu’un rˆole n’a jamais besoin de d´ecomposer ses connaissances ant´erieures :
Hypoth` ese de non d´ ecomposition : ` toute ´etape du protocole, les connaissances d’un rˆole sont form´ees de ses A connaissances ant´erieures et de la d´ecomposition maximale du message qu’il vient de recevoir.
Sous cette hypoth`ese, l’ensemble des connaissances d’un rˆ ole est d´efini par : Conn(A, i) = Conn(A, i − 1) si A 6= Si Conn(A, i − 1) ∪ Repres({Si−1 , Mi−1 } , Mem(A, i − 1)) si A = Si Avec cette d´efinition, et par d´efinition de Attendu(i) : Var(Conn(A, i)) = Var(Conn(A, i − 1)) ∪ Var(Attendu(i − 1)) Cette hypoth`ese permet donc d’« importer » une propri´et´e des r`egles g´en´erales dans les r`egles optimis´ees, ce qu’indique la proposition suivante. Elle joue le mˆeme rˆole vis-`a-vis de la fonction Attendu que l’hypoth`ese de monotonie vis-`a-vis de la fonction Composer. Remarquons enfin que cette hypoth`ese ne perd pas en g´en´eralit´e vis-`a-vis des protocoles ´etudi´es tant qu’il est accept´e d’ajouter de nouvelles r`egles permettant la d´ecomposition de connaissances ant´erieures. Proposition 34 Soit ({Rι ⇒ Sι }ι∈I ,
Ordre de d´ ecomposition des messages attendus
Informellement, le calcul par un rˆole de Cloture(E) `a partir d’un ensemble E peut se mod´eliser par une d´erivation bien form´ee partant de E et arrivant en Cloture(E). Cette d´erivation induit un ordre sur les termes appris et donc, dans la repr´esentation des connaissances δE (E), sur les variables. Pour prendre en compte cet ordre, l’approche directe serait de choisir une d´erivation D parmi celles possibles, et de donner, en mˆeme temps que les r`egles de r´eception/composition de messages, un ordre total sur les variables. Cette approche est techniquement sˆ ure, mais lourde `a mettre en œuvre. Nous d´ecrivons maintenant une autre mani`ere d’ordonner les variables, qui est d’ajouter de nouveaux messages de type : Ri ⇒ Si a` la sp´ecification du protocole, et de prendre comme ordre sur les variables l’ordre de premi`ere « apparition » d’une variable dans le membre gauche d’une r`egle. Notre but est de transformer les r`egles d’un protocole pour que la restriction suivante soit vraie :
92
Chapitre 5. Compilation de protocoles cryptographiques
Hypoth` ese de bon ordre de d´ ecomposition : Soit Gi = Mem(Ri , i) ∪ {Mi }, la fonction de repr´esentation δ = δGi et F ∪ {d, t} ⊆ Test(Gi ). Pour toute r`egle de d´ecomposition δ(d), δ(F ) → δ(t) d´ecomposant un terme δ(d) qui n’est pas une ⊕({ })-r`egle ou telle que Var(ti ) 6⊆ Var(Conn(Ri , i)) : Var(δMem(Ri ,i)∪Mi (F )) ⊆ Var(Conn(Ri , i))
Nous indiquons une m´ethode pour construire une version d’un protocole ayant des r`egles de cette forme en partant de la sp´ecification du protocole. Pour un rˆole ayant les connaissances K, recevant un message M et dont la fonction de repr´esentation des connaissances est δ : – soit d1 , . . . , dn les sous-termes de δ(M ) qui sont d´ecompos´es par une r`egle di , Fi → ti avec Var(δ(Fi )) 6⊆ Var(δ(K)) ; – choisir de nouvelles variables z1 , . . . , zn et de nouvelles clefs sym´etriques K1 , . . . , Kn ; – Soit m le message δ(M ) dans lequel les di sont remplac´es par des zi et, pour i ∈ {1, . . . , n}, soit d0i le terme di dans lequel les termes di+1 , . . . , dn sont remplac´es par les variables zi+1 , . . . , zn . En utilisant ces notations, nous rempla¸cons la r`egle : δ(M ) ⇒ S par les r`egles : s
s
m ⇒ {z1 }xK , . . . , {zn }xK
n
1
s
{d01 }xK
⇒ ... ⇒
1
s
{d0n }xK
n
∅ S
L’op´erateur ⊕({ }) est trait´e ` a part, car d`es qu’un ⊕({ })-terme t contient une variable nouvelle, le terme ne v´erifie plus l’hypoth`ese standard. Cela implique que le remplacement progressif n’est plus possible. Consid´erons par exemple un rˆole connaissant A et recevant A ⊕ B. Apr`es calcul, le message attendu est : ⊕({xA , xB }) et il existe une r`egle de d´ecomposition : ⊕({A, B}), B → A Essayons d’appliquer la construction pr´ec´edente. Apr`es calcul, on trouve : xX1
⇒
{⊕({xA , xB })}xK & ⇒
...
s
s
{xX1 }xK
1
1
Le deuxi`eme message ne v´erifie toujours pas l’hypoth`ese de bon ordre de d´ecomposition. Le probl`eme vient du fait que le r´esultat d’une r`egle de d´ecomposition peut toujours servir de clef. Le relˆachement sur l’hypoth`ese dans le cas de l’op´erateur ⊕({ }) a ´et´e choisi car il est suffisant pour qu’un protocole v´erifiant l’hypoth`ese de bon ordre de d´ecomposition puisse ˆetre construit. Donnons un exemple de cette construction sur le protocole suivant, avec comme connaissances initiales de A et B leur nom respectif, et X un nonce cr´e´e par A : 1. 2. 3.
A B A
→ → →
B A B
: : :
s
⊕({hX, Bi , A}), {X}⊕({hX,Bi,A}) B A
5.5. Gestion des Connaissances
93
Les connaissances de B sont : – initialement : F0 = {A, B} – au moment de la r´eception du premier message : n o s F1 = A, B, ⊕({hX, Bi , A}), {X}⊕({hX,Bi,A}) Apr`es calcul, la clˆ oture de F1 est : n o s Cloture(F1 ) = A, B, ⊕({hX, Bi , A}), {X}⊕({hX,Bi,A}) , hX, Bi , X Les r`egles de d´ecomposition applicables sont : ⊕({hX, Bi , A}), hX, Bi → ⊕({hX, Bi , A}), A → s {X}⊕({hX,Bi,A}) , ⊕({hX, Bi , A}) →
A hX, Bi X
hX, Bi → hX, Bi →
X B
Calculons maintenant la repr´esentation de ses connaissances et du message attendu par B : ( Conn(B, 1)n= δF1 (F0 ) = {xA , xB } o s δF1 (F1 ) = xA , xB , ⊕({hxX , xB i , xA }), {xX }⊕({hxX ,xB i,xA }) Parmi ces r`egles de d´ecompositions, celles ne v´erifiant pas l’hypoth`ese de bon ordre de d´ecomposition sont : ⊕({hX, Bi , A}), hX, Bi → , ⊕({hX, Bi , A}) →
s {X}⊕({hX,Bi,A})
Posons alors :
A X
X1 = ⊕({hX, Bi , A}) s X2 = {X}⊕({hX,Bi,A})
S’il est d´ecid´e que X1 doit ˆetre envoy´e avant X2 , les r`egles du protocole deviennent : xX1 , xX2 s
⇒
s
s
{xX1 }xK , {xX1 }xK 1
{⊕({hxX , xB i , xA })}xK n os 1 s {xX }⊕({hxX ,xB i,xA })
⇒
∅
⇒
xB
xA
⇒
∅
xK2
2
Si au contraire il est d´ecid´e que X2 doit ˆetre envoy´e avant X1 , le protocole devient :
xX1 , xX2 s s {xX }X1 x
⇒
s
s
{xX1 }xK , {xX1 }xK 1
⇒
∅
⇒
xB
⇒
∅
2
K2
s
{⊕({hxX , xB i , xA })}xK
1
xA
Intuitivement, l’hypoth`ese de bon ordre de composition consiste `a r´ev´eler au rˆole le message qu’il attend morceau par morceau. Nous ne le montrons pas (les attaques ne sont pas encore formellement d´efinies), mais la construction donn´ee permet d’assurer que les messages que peut recevoir le rˆ ole ne d´ependent pas de cette hypoth`ese.
94
Chapitre 5. Compilation de protocoles cryptographiques
5.5.6
Variables dans les r` egles de messages
5.5.6.i
Motivation
Pour une instance de protocole ({Rι ⇒ Sι }ι∈I ,
Cas des op´ erateurs de chiffrement
Nous commen¸cons par nous int´eresser au cas des constructeurs de chiffrement : s
s,cbc
{ } ,{ }
s,ebc
,{ }
,{ }
p
pour lesquels une seule clef est utilis´ee. La proposition suivante indique qu’une variable nouvelle dans un message M ne peut pas ˆetre dans un sous-terme de la clef d’un sous-terme chiffr´e de M . Proposition 35 p s Si f (u1 , u2 ) ∈ (Attendu(i)) et f ∈ {{ } , { } }, alors : Var(u2 ) ⊆ Var(Conn(Ri , i)) Preuve. Soit G = Mem(Ri , i−1)∪{Mi }, et soit f (t1 , t2 ) le sous-terme de Mi tel que δG (f (t1 , t2 )) = f (u1 , u2 ). Par construction de δG : t1 , t2 ∈ Cloture(G) s
Si f = { } , il existe une r`egle de d´ecomposition de f (t1 , t2 ), donc Var(u2 ) ⊆ Var(Conn(Ri , i)) par −1 p l’hypoth`ese de bon ordre de d´ecomposition. Si f = { } , alors t2 ∈ Cloture(G), et donc t2 = t02 −1 0 0 a encore, par l’hypoth`ese de bon ordre de d´ecomposition, ou t2 = t2 , t2 est testable dans G. L` l’inclusion Var(u2 ) ⊆ Var(Conn(Ri , i − 1)) est v´erifi´ee. Cette proposition se g´en´eralise imm´ediatement aux op´erateurs de chiffrement de type RSA et d’exponentiation en remarquant que par construction, il existe toujours une r`egle d´ecomposant un de ces termes. La preuve, ´etant identique, est omise. Proposition 36 p,rsa Si f (u1 , M) ∈ (Attendu(i)), f ∈ {{ } , Exp( , )}, et M multi-ensemble ou multi-ensemble g´en´eralis´e de termes en forme normale, alors pour tout u2 ∈ (M) : Var(u2 ) ⊆ Var(Conn(Ri , i)) 5.5.6.iii
Cas du ou exclusif bit ` a bit
Le cas du ou exclusif bit ` a bit se traite de mani`ere similaire. La principale diff´erence est que, dans le cas d’un terme ⊕({t1 , . . . , tn }), les termes utilis´es pour le d´echiffrement ne sont pas connus a priori. Proposition 37 Soit Mi le message attendu ` a l’´etape i. Si ⊕({u1 , . . . , un }) ∈ (Attendu(i)), alors il existe au plus un j ∈ {1, . . . , n} tel que Var(uj ) 6⊆ Var(Conn(Ri , i)). De plus, il existe un Facteur⊕ t de Mi tel que : uj = δCloture({Mi }∪Mem(Ri ,i−1)) (t)
5.6. Travaux Reli´es
95
Preuve. Afin d’all´eger les notations, commen¸cons par poser : Gi = Cloture({Mi } ∪ Mem(Ri , i − 1)) Soient t1 , . . . , tn les termes de Gi tels que, pour tout j ∈ {1, . . . , n}, δGi (tj ) = uj , et soit Ik ⊆ {1, . . . , n} l’ensemble des indices j tels que Var(δGi (tj )) 6⊆ Var(Conn(Ri , i − 1)). Supposons Ik 6= ∅. Tout d’abord, notons que par construction de δi , pour tout j ∈ {1, . . . , n}, on a tj ∈ Gi . Supposons sans perte de g´en´eralit´e que t1 ∈ Ik . Il existe donc une r`egle : p⊕({t1 , . . . , tk })q, t2 , . . . , tk → t1 Lors de la construction de δGi , si l’image d’un ⊕-terme n’est pas une variable, il s’agit d’une combinaison d’´el´ements de la base choisie. Par construction, les ´el´ements de cette base ne peuvent pas ˆetre des ⊕-termes, et donc δGi (t1 ) n’est pas un ⊕-terme. Donc la r`egle : p⊕({δGi (t1 ), . . . , δGi (tk )})q, δGi (t2 ), . . . , δGi (tk ) → δGi (t1 ) est une r`egle de d´ecomposition, donc par l’hypoth`ese de bon ordre de d´ecomposition : Var(δGi (t2 ), . . . , δGi (tk )) ⊆ Var(Conn(Ri , i − 1)) et donc Ik = {t1 }.
5.6 5.6.1
Travaux reli´ es Le compilateur CasRul
Le processus de compilation d´ecrit dans ce chapitre et dans [56] est partiellement implant´e dans le compilateur CasRul. L’implantation a ´et´e faite par l’auteur, en collaboration avec M. Bouallagui, sur la base d’une premi`ere version d´evelopp´ee dans l’´equipe CASSIS. L’analyse des connaissances des rˆoles est faite au travers de fonctions de composition et de d´ecomposition. Une description d´etaill´ee et proche de l’implantation peut ˆetre trouv´ee dans [23] pour la gestion des connaissances ou dans [56] pour la d´efinition des termes w et m. Ce compilateur, utilis´e dans le cadre du projet AVISS, n’est plus actuellement en cours de d´eveloppement. Suite ` a son succ`es, le projet AVISS a ´et´e reconduit en un projet de 30 mois par l’Union Europ´eenne, le projet AVISPA4 . Dans le cadre de ce nouveau projet, un nouveau langage de haut niveau, plus expressif, est utilis´e. Le compilateur pour ce langage est en cours de d´eveloppement, et une premi`ere version stable devrait ˆetre disponible en d´ecembre 2003.
5.6.2
Autres compilateurs
Parmi les compilateurs de protocoles, on peut citer Casper [63], qui a ´et´e utilis´e par G. Lowe [42] pour l’analyse de la biblioth`eque de protocoles donn´ee par J. Clark et J. Jacob [26]. Ce compilateur transforme une suite d’envoi et de r´eception de messages, pour chaque acteur, en un processus CSP. Le processus CSP peut ensuite ˆetre v´erifi´e par un v´erificateur de mod`eles comme FDR. L’analyse des connaissances des rˆoles est r´eduite, et se r´esume `a un message d’erreur lorsqu’un rˆole n’a pas les connaissances n´ecessaires pour d´echiffrer imm´ediatement un message re¸cu. Un autre langage de description de protocoles, Capsl [35], a ´et´e d´efini au (SRI). Les descriptions en Capsl sont compil´ees dans un format interm´ediaire, CIL [36]. Le but, comme dans le cas du compilateur CasRul, est de permettre l’interfa¸cage d’un plus grand nombre possible d’outils de v´erification. Bien qu’ant´erieur, le compilateur fourni semble cependant moins avanc´e que CasRul, puisqu’il ne g`ere pas : 1. le typage possible du protocole ; 2. le chiffrement par xor ; 4 http ://www.avispa-project.org/
96
Chapitre 5. Compilation de protocoles cryptographiques
3. les connaissances des rˆ oles ; 4. les clefs compos´ees. Cependant, Capsl, dans son ´evolution µCAPSL [37], permet la description de protocoles de groupes, ce qui n’est pas encore possible avec CasRul. Contrairement aux deux outils pr´ec´edents, pour lesquels les ´etapes de compilation et de v´erification sont distinctes, Murϕ [74] int`egre un compilateur et un v´erificateur de mod`eles. Le langage haut niveau de d´efinition est comparable au langage Unity [18]. La suite de messages est sp´ecifi´ee par un ensemble de commandes gard´ees, et permet l’emploi de types structur´es. Ce langage est beaucoup plus expressif que les langages pr´ec´edemment d´ecrits. Il est par exemple possible d’exprimer des protocoles de groupes tels que Enclaves [52] et de v´erifier des propri´et´es complexes [60].
Troisi` eme partie
Recherche d’attaques
97
6
Strat´ egie paresseuse de l’intrus pour la recherche d’attaques sur un protocole 6.1
Motivations
Dans le cadre de nos travaux, nous avons implant´e un algorithme de recherche d’attaques sur les protocoles cryptographiques qui s’est r´ev´el´e tr`es efficace en comparaison des autres outils existant. Contrairement aux outils classiques de validation de mod`ele, il s’appuie sur une repr´esentation symbolique des connaissances de l’intrus et des messages que celui-ci a `a envoyer. Dans ce mod`ele, des contraintes repr´esentant les messages attendus par les principaux sont construites dynamiquement, et doivent ˆetre r´esolues par l’intrus. Cette r´esolution ` a la demande nous a conduit ` a qualifier cette strat´egie de paresseuse [24]. Elle est beaucoup plus efficace, dans ce cadre, que la validation de mod`ele classique car les parties de messages attendus qui peuvent ˆetre remplac´ees par n’importe quel terme ne sont pas touch´ees. Les outils de validation de mod`ele classiques, tels FDR [42], cherchent, dans ce cas, tous les termes acceptables. Consid´erons le protocole suivant : 1 . A → B : Na Un acteur jouant le rˆ ole B accepte a priori n’importe quel message. Un outil comme FDR remplacera donc N a par tous les messages que peut composer l’intrus. Comme il y en a un nombre infini, un typage assure que B peut v´erifier, par exemple, qu’il a re¸cu une constante. Dans ce cas, Na sera remplac´e par toutes les constantes que connaˆıt l’intrus. Le branchement que cette strat´egie implique dans l’algorithme d’exploration des ´etats oblige l’utilisateur `a d’abord simplifier le protocole ´etudi´e. Ce processus de simplification est long et laborieux, avec le risque de commettre des erreurs. Dans notre strat´egie paresseuse, le message attendu par B est une variable. Tant qu’un message attendu est une variable, nous consid´erons que l’intrus a pu l’envoyer avec succ`es. Si, au cours de l’ex´ecution du protocole, une contrainte implique que cette variable doit ˆetre, par exemple, le nom a d’un acteur, il faudra v´erifier qu’au moment de l’envoi du message `a l’acteur jouant le rˆole B, l’intrus connait d´ej` a ce nom. Dans ce chapitre, nous montrons que cette r´esolution retard´ee des contraintes est compl`ete vis-`a-vis de la recherche d’attaques sur une instance d’un protocole P. Nous montrons aussi qu’elle permet de construire, pour toute attaque sur le protocole, une attaque plus g´en´erale. Cette derni`ere propri´et´e permet de chercher de mani`ere paresseuse un ordre d’ex´ecution du protocole pour lequel il y a une attaque. Apr`es avoir d´ecrit le cadre de cette ´etude, restreint par rapport au cas clos, dans les sections 6.2 et 6.3, nous d´efinissons une notion de substitution plus g´en´erale (substitution pr´efixe), et celui d’ensemble complet de pr´efixes dans la section 6.4. Nous d´efinissons ensuite un syst`eme pour la repr´esentation symbolique des connaissances de l’intrus et pour les messages qu’il doit envoyer. 99
100
Chapitre 6. Recherche efficace d’attaques
L’intrus devant g´erer ses connaissances pour pouvoir effectivement envoyer tous les messages que l’ordre d’ex´ecution lui impose d’avoir ´emis, nous appelons ces syst`emes des probl`eme de construction simultan´ee. Ils sont d´efinis dans la section 6.5. Ensuite, nous commen¸cons par montrer des ´equivalences sur les probl`emes de constructions simultan´ees dans la section 6.6. Celles-ci permettent de d´efinir une fonction de normalisation et de r´eduire le non d´eterminisme des choix de l’intrus. En particulier, il est montr´e que sous certaines hypoth`eses, il est toujours possible de supposer qu’un ensemble de connaissances ne contient pas de variables. Cette propri´et´e est utilis´ee pour montrer la terminaison de notre algorithme de r´esolution de contraintes dans la section 6.7. Nous montrons ensuite dans la section 6.8 comment ces syst`emes peuvent ˆetre utilis´es en pratique pour la recherche d’attaques de secret ou d’authentification sur un protocole. Les exp´eriences que nous avons men´ees avec le prouveur de th´eor`emes daTac sont d´ecrites et discut´ees dans la section 6.9. Enfin, avant de conclure, nous pr´esentons d’autres travaux reli´es au probl`eme de la r´esolution de contraintes symboliques dans le cadre de l’´etude de protocoles cryptographiques en section 6.10.
6.2
Cadre de l’´ etude
Nous nous pla¸cons dans le cadre de la recherche d’attaques sous l’hypoth`ese de chiffrement parfait, et supposons qu’il n’y a qu’un nombre fini de sessions du protocole. Les symboles d’arit´e non nulle de la signature F consid´er´ee sont dans l’ensemble : p
s
{h , i , { } , { } , H( , )} Les substitutions jouent un grand rˆ ole dans ce chapitre. Rappelons qu’elles sont des remplacements dont le support est inclus dans le sous-ensemble des variables X de l’ensemble des symboles de F d’arit´e nulle. Afin de distinguer les termes contenant des variables de ceux n’en contenant pas, nous appelons : – T(F) l’ensemble des termes t sur la signature F tels que (t) ∩ X = ∅ ; – T(F, X ) l’ensemble des termes t sur la signature F ; Pour un terme t (resp. un ensemble de termes E), on note Var(t) (resp. Var(E)) l’ensemble (t)∩ X (resp. l’ensemble (E) ∩ X ). Sur cette signature, les termes op´erations sont ´egaux (modulo un renommage des symboles) aux termes valeurs. Prenons le point de vue de l’intrus. Ses connaissances sont mod´elis´ees par un sous-ensemble fini E ⊂fini T(F, X ). Il peut d´eduire de nouveaux faits de ses connaissances en utilisant le syst`eme de r`egles de r´e´ecriture sur des ensembles : LDY = Lh , i ∪ L{ }s ∪ L{ }p ∪ LH( , ) Nous distinguons les r`egles de composition des r`egles de d´ecomposition en posant : Lc,DY = Lc,h , i ∪ Lc,{ }s ∪ Lc,{ }p ∪ Lc,H( , ) Ld,DY = Ld,h , i ∪ Ld,{ }s ∪ Ld,{ }p Par le th´eor`eme 2 et les propositions, pour chaque op´erateur, du chapitre 4, LDY est un syst`eme LDY local, et donc que pour tout terme t et tout ensemble de connaissances E, t ∈ E implique qu’il existe une d´erivation bien form´ee partant de E et de but t. Cela est aussi vrai si seul le syst`eme Lc,DY est consid´er´e.
6.3
Mod´ elisation de l’intrus
Suivant le mod`ele de Dolev et Yao [41], l’intrus peut intercepter les messages envoy´es par les ` partir de acteurs honnˆetes du protocole, et leur envoyer des messages sous une fausse identit´e. A ses connaissances, il peut en d´eduire de nouvelles en composant ou d´ecomposant des messages. L’intrus augmente ses capacit´es de d´eduction en interceptant des messages et, pour envoyer un message, doit pouvoir le composer ` a partir des connaissances acquises au moment de l’envoi du message. Cette situation est mod´elis´ee par des ensembles de termes repr´esentant les connaissances
6.4. Pr´efixe d’une substitution, ensemble complet de pr´efixes
R`egle de d´eduction a, b → ha, bi s a, b → {a}b p a, b → {a}b a, b → H(a, b)
101
R´esultat ha, bi s {a}b p {a}b H(a, b)
Tab. 6.1 – R`egles de composition R`egle de d´eduction ha, bi → a ha, bi → b s {a}b , b → a p {a}b , b−1 → a p {a}b−1 , b → a
R´esultat a b a a a
Terme d´ecompos´e ha, bi ha, bi s {a}b p {a}b p {a}b−1
Condition ∅ ∅ b b−1 b
Tab. 6.2 – R`egles de d´ecomposition de l’intrus, et par des contraintes repr´esentant les messages que l’intrus doit pouvoir composer ´ `a partir de ses connaissances. Etant donn´e un ordre de r´eception/envoi de messages par les acteurs honnˆetes, ce syst`eme de contraintes est appel´e un probl`eme de construction simultan´ee. Ces probl`emes sont d´efinis formellement en section 6.5. Afin d’´eviter les p´eriphrases et de simplifier le propos, nous d´efinissons pour le syst`eme de r´e´ecriture le r´esultat d’une r`egle. Pour les r`egles de d´ecomposition (celles de Ld,DY ), nous d´efinissons aussi le terme d´ecompos´e par une r`egle, et la condition de cette r`egle. Les termes d´esign´es par ces notations sont d´ecrits dans les tableaux 6.1 et 6.2 Une r`egle R ∈ Lc,DY de r´esultat t est not´ee Lc,DY (t). Une r`egle R ∈ Ld,DY d´ecomposant un terme t est not´ee Ld,DY (t). Pour un terme t, nous notons Res(t) le r´esultat de la r`egle (unique) d´ecomposant t si t n’est pas un couple, et {t1 , t2 } si t = ht1 , t2 i. Nous notons aussi Cond(t) la condition d’une r`egle d´ecomposant t.
6.4
Pr´ efixe d’une substitution, ensemble complet de pr´ efixes
Soient r et s deux termes unifiables syntaxiquement, c’est-`a-dire pour lesquels il existe une substitution σ telle que rσ = sσ. Dans le cas de l’unification syntaxique, il existe une substitution στ , appel´ee unificateur le plus g´en´eral de r et s, ce qu’on note στ = mgu(r, s), telle que : – rστ = sστ ; – il existe une substitution τ telle que σ = στ τ . Cet unificateur le plus g´en´eral peut ˆetre calcul´e en temps lin´eaire [65, 46]. L’unificateur le plus g´en´eral entre deux termes est unique modulo le renommage des variables. Cette notion se g´en´eralise ` a certaines th´eories ´equationnelles Θ pour lesquelles il existe un ensemble fini (modulo renommage) de substitutions plus g´en´erales Σ v´erifiant rσ ≡Θ sσ. Elle est cependant trop contraignante pour l’´etude de protocoles. La d´efinition d’unificateur plus g´en´eral impose en effet que si στ est un unificateur plus g´en´eral, alors pour toute substitution τ , στ τ est un unificateur. Nous introduisons dans cette section une notion de pr´efixe, similaire `a celle d’unificateur plus g´en´eral, mais sans cette contrainte. Nous renvoyons le lecteur `a [5] pour un expos´e clair et complet sur l’unification dans les th´eories ´equationnelles. D´ efinition 41 (Pr´efixe d’une substitution) Soit στ , σ deux substitutions. Une substitution στ est un pr´efixe de σ si il existe une substitution τ telle que σ = στ τ . Il est maintenant possible de d´efinir la notion d’un ensemble pr´efixe d’un ensemble de substitutions.
102
Chapitre 6. Recherche efficace d’attaques
D´ efinition 42 (Ensemble complet de pr´efixes) Soit Θ un ensemble de substitutions. Un ensemble Σ de substitutions est un ensemble complet de pr´efixes de Θ si : ∀σ ∈ Θ, ∃στ ∈ Σ, ∃τ, σ = στ τ L’existence d’un ensemble pr´efixe est triviale : Θ est un ensemble pr´efixe de Θ. Cette notion est utile si, ´etant donn´e un ensemble Θ de substitutions, il existe un ensemble de substitutions Σ de cardinal fini qui est aussi un ensemble complet de pr´efixes de Θ.
6.5 6.5.1
Probl` emes de construction D´ efinition
Dans la suite, les termes consid´er´es sont dans T(F, X ), et nous consid´erons des sous-ensembles finis E de T(F, X ). Les substitutions sont not´ees σ, τ avec les d´ecorations habituelles. Une substitution σ est close si : ∪x∈ (σ) Var(xσ) = ∅ Rappelons qu’un terme t est clos si Var(t) = ∅. La notion d’´equation de constructibilit´e est similaire `a un probl`eme d’unification modulo le syst`eme de r´e´ecriture sur les ensembles LDY . ´ D´ efinition 43 (Equation de constructibilit´e) Une ´equation de constructibilit´e est un couple (E, t), avec E ⊂fini T(F, X ) et t ∈ T(F, X ). Elles LDY . sont not´ees E BLDY t. Une substitution σ satisfait une ´equation de constructibilit´e si tσ ∈ Eσ On note alors σ |= E BLDY t. Dans la suite de ce chapitre, nous noterons σ |= E B
Lc,DY t
la propri´et´e σ |= E B
LDY t
et
Lc,DY
. Cette notation permet donc d’imposer qu’une ´equation E B t soit r´esoluble avec tσ ∈ Eσ uniquement les r`egles de composition. D´ efinition 44 (Probl`emes de construction simultan´ee) On appelle probl`eme de construction simultan´ee une suite (Eqi )i∈{1,...,n} d’´equations de constructibilit´e telle que, avec Eqi : Ei BLDY ti : – ∀i ∈ {1, . . . , n} , ∀x ∈ Var(Ei ), ∃j < i, x ∈ Var(tj ) LDY
LDY
– ∀i, j ∈ {1, . . . , n} , i < j ⇒ ∃Fj ⊆ Ej , Ei = Fj Un probl`eme de construction simultan´ee C est σ-satisfaisable si : ∀Eq ∈ C, σ |= Eq et il est dit satisfaisable si il existe σ telle que C soit σ-satisfaisable. Par d´efinition, on a toujours Var(E1 ) = ∅. On note C (avec les d´ecorations usuelles) les probl`emes de construction simultan´ee. Les ´equations de constructions peuvent ˆetre vues comme des probl`emes d’unification modulo la th´eorie de l’intrus et une r`egle extrayant un ´el´ement d’un ensemble. Montrons que ce probl`eme d’unification peut admettre une infinit´e de solutions plus g´en´erales. Proposition 38 Le probl`eme {a} B x a une infinit´e de solutions plus g´en´erales qui sont toutes closes. Preuve. Remarquons tout d’abord que pour tout probl`eme de construction simultan´ee, les solutions plus g´en´erales sont toujours closes : supposons qu’une substitution σ non close soit une solution plus g´en´erale d’un probl`eme de construction simultan´ee C. Soit E B t la premi`ere ´equation de Cσ telle que E soit clos, mais pas t. Soit enfin x ∈ Var(t), et une constante a telle que a ∈ / (E),
6.5. Probl`emes de construction
103
et τ la substitution [x ← a]. D’apr`es le lemme 4 du chapitre 4, a ∈ / (E) implique que a est le r´esultat d’une r`egle de composition, ce qui contredit a est une constante. Donc toutes les solutions les plus g´en´erales d’un probl`eme de construction simultan´ee sont des substitutions closes. D’apr`es ce qui pr´ec`ede, le probl`eme {a} B x a une infinit´e de solutions closes, donc il a une infinit´e de solutions plus g´en´erales. Notre strat´egie ne sera donc pas de chercher toutes les solutions, mais de rechercher un ensemble fini de substitutions Σ qui sont les pr´efixes des solutions du syst`eme.
6.5.2
Probl` emes li´ es
Soit C = (Ei BLi ti )i∈{1,...,n} un probl`eme de construction simultan´ee. Deux types de questions peuvent se poser : a) un probl`eme de d´ecision, qui consiste `a savoir si C est satisfaisable :
Accessibilite(C) : Existe-t-il σ telle que σ |= C ?
b) soit Θ l’ensemble des substitutions satisfaisant C : ∀σ ∈ Θ, σ |= C Lors de la recherche d’attaques sur les protocoles cryptographiques, il est naturel de chercher `a repr´esenter Θ. Le probl`eme d’´enum´eration qui se pose est alors :
Prefixe(C) : Si Θ est l’ensemble des substitutions σ telles que σ |= C, trouver un ensemble fini et complet de pr´efixes de Θ.
D´ efinition 45 (Forme r´esolue) Un probl`eme de construction simultan´ee C est en forme r´esolue si pour toute ´equation E BR t de C, t est une variable. Le th´eor`eme suivant implique qu’il suffit de pouvoir transformer un probl`eme de construction simultan´ee C en un probl`eme C 0 sous forme r´esolue ayant le mˆeme ensemble de solutions closes pour trouver une substitution σ solution de C. La preuve, simple, consiste `a unifier chaque variable dans le membre droit d’une ´equation de constructibilit´e avec un terme clos du membre gauche de cette ´equation. Th´ eor` eme 6 Un probl`eme de construction simultan´ee en forme r´esolue est satisfaisable.
6.5.3
Transformation de probl` emes de construction simultan´ ee
Une technique classique, dans le cadre des probl`emes d’unification, est de transformer un syst`eme d’´equations jusqu’` a obtenir un syst`eme d’´equations en forme r´esolue. Nous allons adapter cette technique au cadre des probl`emes de construction simultan´ee. Nous allons transformer un probl`eme g´en´eral en un probl`eme en forme r´esolue. On consid`ere dans cette section l’ensemble LDY de r`egles de d´eductions d´efini en section 4.5. En vue de l’implantation d’un outil de recherche d’attaques sur un protocole, nous nous int´eressons plus particuli`erement au probl`eme , car il permet une recherche incr´ementale vis-`a-vis de l’ordre d’ex´ecution et permet l’´etude de probl`emes d’authentification. La notion d’ordre d’ex´ecution est formalis´ee dans la section 6.8.
Prefixe
6.5.3.i
Syst` eme de transformation de probl` emes de construction simultan´ ee
On pose le syst`eme L de transformation de probl`emes de construction simultan´ee.
Unif :
Cα , E ∪ {u} B t, Cβ σ=mgu(u,t) u, t ∈ /X (Cα , Cβ )σ
Dec :
Cα , E B t, Cβ u∈E Cα , E B Cond(u), E ∪ Res(u) B t, Cβ
Comp :
Cα , E B f (t1 , t2 ), Cβ Cα , E B t1 , E B t2 , Cβ
104
Chapitre 6. Recherche efficace d’attaques
Description des r` egles. La r`egle Comp permet de r´eduire le probl`eme de la construction d’un terme t au probl`eme de la construction de ses deux sous-termes maximaux. La r`egle Dec permet de d´ecomposer un terme dans les connaissances de l’intrus. La r`egle Unif permet enfin de simplifier une contrainte lorsque le terme ` a construire est dans les connaissances de l’intrus. Dans ce dernier cas, un unificateur plus g´en´eral est calcul´e entre une des connaissances de l’intrus et le terme `a construire. Cet unificateur est appliqu´e sur l’ensemble du probl`eme de construction simultan´ee. Il peut bien sˆ ur ˆetre ´egal ` a l’identit´e. Restrictions ` a l’application des r` egles de L. l’application des r`egles de L :
Nous imposons les restrictions suivantes `a
1. Cα doit ˆetre en forme r´esolue ; 2. La r`egle n’est jamais appliqu´ee sur E B Cond(u) ou sur une ´equation d´eduite de E B Cond(u), et n’est pas appliqu´ee sur le terme u de E ∪ Res(u) B t On verra dans la section 6.7 que le syst`eme reste complet malgr´e la restriction 1. Intuitivement, la restriction 2 ne perd pas de g´en´eralit´e : si une r`egle interdite est appliqu´ee sur E ∪ Res(u) B t, elle n’augmente les connaissances dont dispose l’intrus pour r´esoudre la constrainte initiale. La premi`ere restriction, sur E B Cond(u) est moins ´evidente. On verra cependant, dans le lemme 20, qu’elle permet d’avoir un syst`eme complet. Nous notons C C 0 si il y a une transformation de C vers C 0 dans L, et C n C 0 une suite ∗ de transformations de longueur n, et C C 0 une suite de transformations de longueur quel∗ 0 conque. Si C C , la substitution σ qui est la compos´ee des substitutions appliqu´ees est not´ee Subst(C ∗ C 0 ). 6.5.3.ii
Correction du syst` eme L
Il est tout de suite possible d’´enoncer et de prouver la correction du syst`eme L de transformations. Th´ eor` eme 7 (Correction de L) Si C ∗ C 0 , τ = Subst(C ∗ C 0 ) et σ |= C 0 , alors τ σ |= C. n Preuve. Par contradiction, soit n ≥ 0 minimal tel qu’il existe C, C 0 , σ et τ avec C C0, ∗ 0 τ = Subst(C C), σ |= C et τ σ 6|= C. On a n´ecessairement n ≥ 1. Soit C 00 C 0 la derni`ere inf´erence. Par minimalit´e de n, en posant 0 ∗ 00 τ = Subst(C C ), on a : ∀σ 0 , σ 0 |= C 00 ⇒ τ 0 σ 0 |= C
Raisonnons par cas sur la derni`ere r`egle appliqu´ee. : soit σ 00 la substitution appliqu´ee et σ 0 telle que σ 0 |= C 0 . On a donc : 00 0 σ σ |= Cα , Cβ tσ 00 σ 0 ∈ Eσ 00 σ 0 donc, par d´efinition d’une ´equation de construction : σ 00 σ 0 |= Cα , E B t, Cβ Soit τ 0 σ 00 σ 0 |= C. Or, τ = τ 0 σ 00 , ce qui contredit le choix de C, C 0 ; : correction ´evidente par d´efinition d’une ´equation de construction ; : on a E B t implique E ∪ Res(u) B t, donc la correction est ´evidente.
6.6
´ Equivalences sur les ´ equations de constructions
Dans cette section, nous consid´erons un syst`eme de r´e´ecriture sur les ensembles R avec R ∈ {Lc,DY , LDY }, des sous-ensembles finis E, F et T de T(F, X ), et des termes t et u de T(F, X ).
´ 6.6. Equivalences sur les ´equations de constructions
6.6.1
105
G´ en´ eralit´ es
Proposition 39 Pour tous les ensembles finis E et F , on a : (E
R
R
= F ) ⇔ (∀σ, Eσ
R
R
= Fσ )
Preuve. Par les propositions 10 et 9 du chapitre 4, et sous l’hypoth`ese E ensemble fini de termes G tel que : E →∗R G (1) F →∗R G (2)
R
R
= F , il existe un
Par (1) et (2), par la quantification sur les termes dans les r`egles de composition et de d´ecomposition, et pour toute substitution σ, on a : Eσ →∗R Gσ F σ →∗R Gσ et donc : Eσ ≡R F σ Soit, par la proposition 10 du chapitre 4 : Eσ
R
= Fσ
R
La r´eciproque est triviale en consid´erant la substitution identit´e.
La proposition 39 et la d´efinition des probl`emes de construction simultan´ee impliquent la proposition suivante. Proposition 40 Pour tous les ensembles finis E et F , pour tout terme t, pour tout probl`eme de construction simultan´ee Cα , E BR t, Cβ et pour toute substitution σ, l’´egalit´e : (E
R
R
=F )
implique : σ |= Cα , E BR t, Cβ si et seulement si σ |= Cα , F BR t, Cβ La proposition suivante ´enonce que deux ensembles ´equivalents ont le mˆeme ensemble de variables. La preuve s’applique pour tous les symboles d’arit´e nulle. Proposition 41 R R Pour tous les ensembles E et F , E = F implique Var(E) = Var(F ). Preuve. Par contradiction, et sans perte de g´en´eralit´e, soit x ∈ Var(E) \ Var(F ). Par hypoth`ese, R on a E ⊆ F . Soit : D : F →R F1 →R . . . →R Fn avec E ⊆ Fn , et soit i ∈ {1, . . . , n} minimal tel que x ∈ Var(Fi ). Par le lemme 4 appliqu´e sur R, x est obtenu par une r`egle de composition, donc x est un f -terme, avec f symbole d’arit´e non nulle, ce qui contredit l’hypoth`ese que x est une variable. Enfin, cette derni`ere proposition permet de construire des ensembles ´equivalents. Proposition 42 Soient E et F deux ensembles de termes, et T ⊆ E tel que : – F ⊆E\T ; R – T ⊆F . alors E ≡R E \ T .
106
Chapitre 6. Recherche efficace d’attaques
R
Preuve. On a, par hypoth`ese, F ⊆ E \ T et T ⊆ F , donc T ⊆F
R
⊆E\T
R
R
D’autre part, E \ T ⊆ E \ T , donc : E ⊆E\T
R
Soit, en calculant la clˆ oture de ces deux ensembles : E
R
⊆E\T
R
L’inclusion r´eciproque est triviale, et on conclut avec la proposition 10, page 49 : deux ensembles ´equivalents pour un syst`eme de r´e´ecriture L ont la mˆeme clˆoture.
6.6.2
Ordre sur les probl` emes de construction simultan´ ee
Nous commen¸cons par ordonner les probl`emes de construction simultan´ee afin d’introduire une notion de probl`eme plus simple. Pour cela, nous consid´erons un ordre ≺ total sur les termes, respectant la relation de sous-terme et bien-fond´e (voir le chapitre 3, section 3.5 pour un exemple d’un tel ordre.) Cet ordre peut ˆetre ´etendu en un ordre ≺M bien fond´e sur les multi-ensembles de termes. Associons `a un probl`eme de construction simultan´ee C un quadruplet Π(C) = (v, Md , Mc , e) avec : – v est le nombre de variables dans C ; – Md est le multi-ensemble des sous-termes (avec multiplicit´e) sur lesquels il est possible d’appliquer ; – Mc est le multi-ensemble des membres droits des ´equations de constructibilit´e de C ; – e est le nombre d’´equations dans C. Soit pcs l’ordre lexicographique sur ces quadruplets. C’est un ordre bien-fond´e par construction. D´ efinition 46 (Probl`eme plus simple) Soient C et C 0 deux probl`emes de construction simultan´ee. Nous dirons que C est plus simple que C 0 si : Π(C) ≺pcs Π(C 0 ) Proposition 43 (Terminaison du syst`eme L) Soit C un probl`eme de construction simultan´ee. Il n’y a qu’un nombre fini de suites de transformations partant de C. Preuve. L’ordre pcs est bien fond´e. Pour montrer la terminaison du syst`eme L, il suffit donc de montrer que chaque r`egle de L est d´ecroissante pour pcs . Montrons que chaque application d’une r`egle , ou est d´ecroissante pour cet ordre. : si la substitution appliqu´ee est l’identit´e, la r`egle r´eduit le nombre d’´equations et n’augmente ni le nombre de variables, ni les multi-ensembles Md et Mc . Sinon, la r`egle fait diminuer le nombre total de variables ; : cette r`egle fait d´ecroˆıtre le multi-ensemble Md des termes d´ecomposables, et n’augmente pas le nombre des variables ; : cette r`egle fait d´ecroˆıtre le multi-ensemble Mc . Par la restriction sur les r`egles de d´ecomposition, elle n’augmente pas Md ni le nombre des variables.
6.6.3
Normalisation d’un probl` eme de construction simultan´ ee
La r´esolution de probl`emes de construction simultan´ee est intrins`equement non d´eterministe : l’intrus doit faire des choix en fonction d’une ex´ecution qui n’est pas totalement sp´ecifi´ee tant qu’il reste des variables. Une technique classique de limitation du non d´eterminisme est l’utilisation de simplifications. Un probl`eme de construction simultan´ee est remplac´e par un autre plus simple. Nous d´ecrivons dans cette section une fonction de normalisation Norm(), c’est-`a-dire appliquant toutes les simplifications possibles et telle que, pour tout probl`eme de construction simultan´ee C, pour toute substitution σ, on a : σ |= C si et seulement si σ |= Norm(C)
´ 6.6. Equivalences sur les ´equations de constructions
6.6.3.i
107
´ Elimination des couples
Lemme 10 LDY LDY = E, t1 , t2 . Pour tout E ⊂fini T(F, X ), pour tout t = ht1 , t2 i, on a E, t Preuve. On a E, t →∗Ld,DY E, t1 , t2 , t et E, t1 , t2 →Lc,DY E, t1 , t2 , t, donc : E, t ≡LDY E, t1 , t2 et on conclut avec la proposition 10 du chapitre 4.
D´efinissons une fonction Simplif h , i sur les termes : Simplif h , i (t) =
Simplif h , i (t1 ) ∪ Simplif h , i (t2 ) {t}
si t = ht1 , t2 i sinon
On ´etend la fonction Simplif h , i sur les ensembles de termes en d´efinissant, pour un ensemble de termes E : Simplif h , i (E) = ∪t∈E Simplif h , i (t) En utilisant le lemme 10, il vient imm´ediatement : Lemme 11 Pour tout ensemble fini E, E
LDY
= Simplif h
LDY , i (E)
Le lemme suivant est trivial. Lemme 12 Pour tout terme t = ht1 , t2 i, pour tout ensemble E, pour toute substitution σ, on a : tσ ∈ Eσ
LDY
si et seulement si t1 σ ∈ Eσ
LDY
et t2 σ ∈ Eσ
LDY
En combinant les lemmes 11 et 12, et en utilisant la proposition 40, nous obtenons le lemme suivant : Lemme 13 Pour toute ´equation de constructibilit´e E BLDY t, pour toute substitution σ, on a σ |= E BLDY t si, et seulement si, ∀u ∈ Simplif h , i (t), σ |= Simplif h , i (E) BLDY u 6.6.3.ii
´ Elimination des variables
L’´elimination des variables est tr`es importante en vue d’une implantation d’un algorithme de recherche d’attaques sur un protocole. En effet, une variable est unifiable avec tout terme ne la contenant pas. Lemme 14 Soit
C = Cα , Ex B x, Cβ , E ∪ {x} B t, Cγ C 0 = Cα , Ex B x, Cβ , E B t, Cγ
Si x ∈ / Var(Ex ), alors pour toute substitution σ, (σ |= C) ⇔ (σ |= C 0 ) LDY
Preuve. Par hypoth`ese, σ |= C, donc xσ ∈ Ex σ . Par d´efinition, il existe F ⊆ E tel que LDY LDY Lc,DY Ex =F . Donc xσ ∈ F σ . Par la proposition 41 et par l’hypoth`ese x ∈ / Var(Ex ), on a x∈ / Var(F ) et donc x ∈ / F . Par la proposition 42, E \x ≡LDY E, et on conclut avec la proposition 40. La r´eciproque est imm´ediate.
108
Chapitre 6. Recherche efficace d’attaques
Ce lemme pourra ˆetre appliqu´e ` a travers le corollaire suivant. Corollaire 1 Soit Cα = (Ei B ti )i∈{1,...,n} , et soit C = Cα , E B t un probl`eme de construction simultan´ee avec Cα en forme r´esolue. Alors pour toute substitution σ, (σ |= C) ⇔ (σ |= Cα , (E \ X ) B t) Preuve. Le sens r´eciproque est trivial. Montrons le sens direct. Soit x ∈ E ∩ X . Par d´efinition des ensembles de construction simultan´ee, x ∈ Var(Cα ). Soit i minimal tel que x ∈ Var(Ei B ti ). Par minimalit´e de i et par d´efinition des ensembles de constructions simultan´ees, x ∈ Var(ti ) \ Var(Ei ). Cα est en forme r´esolue, donc ti = x, et on conclut par le lemme 14. On note Simplif var la fonction qui, dans un probl`eme de construction simultan´ee, ´elimine toutes les variables inutiles d’apr`es le lemme 14. On a bien sˆ ur, pour tout probl`eme de construction simultan´ee C et toute substitution σ : (σ |= C) ⇔ (σ |= Simplif var (C)) 6.6.3.iii
Simplification pour le chiffrement sym´ etrique
Les deux lemmes suivants expriment que si, `a partir d’un ensemble de connaissances E, il est possible de construire un terme t2 servant de clef sym´etrique, alors il n’est pas n´ecessaire de se souvenir des messages chiffr´es par cette clef, il suffit de garder le texte clair. Lemme 15 (Normalisation du chiffrement sym´etrique dans les connaissances) s Rproto
s
Si t2 ∈ E, {t1 }t2 , alors E, {t1 }t2 ≡Θproto E, t1 , t2 . s Rproto Preuve. Par hypoth`ese, E, t1 , t2 ⊆ E, {t1 }t2 . Donc : E, t1 , t2
Rproto
s
D’autre part, on a toujours E, {t1 }t2 ⊆ E, t1 , t2
s Rproto
⊆ E, {t1 }t2 Rproto
s Rproto E, {t1 }t2
, et donc :
⊆ E, t1 , t2
Rproto
Lemme 16 (Normalisation du chiffrement sym´etrique dans les contraintes) Rproto Rproto Rproto s Si t2 ∈ E , alors {t1 }t2 ∈ E si, et seulement si, t1 ∈ E . Rproto Rproto s Preuve. Par d´efinition, t2 , {t1 }t2 ∈ E implique t1 ∈ E par une r`egle de d´ecomposition, et t1 , t2 ∈ E
Rproto
s
implique {t1 }t2 ∈ E
Rproto
par une r`egle de composition. s {v}t ,
a un terme u associe v si u = Soit Simplif { }s ,t la fonction qui ` sur les ensembles de termes : [ Simplif { }s ,t (E) = Simplif { }s ,t (u)
et u sinon. On la prolonge
u∈E
De ces deux lemmes, nous tirons le corollaire suivant. Corollaire 2 Soit Cα = (Ei B ti )i∈{1,...,n} , et soit C = Cα , E B t un probl`eme de construction simultan´ee avec Cα en forme r´esolue. Supposons enfin : Rproto
u ∈ E, Var(Cα ) Alors pour toute substitution σ,
(σ |= C) ⇔ (σ |= Cα , Simplif { }s ,u (E) ∪ {u} B Simplif { Preuve. Par hypoth`ese, pour toute substitution σ, on a : (σ |= Cα ) implique ((E, Var(Cα ))σ Rproto
Rproto
= Eσ
Rproto
}s ,u (t))
)
donc, sous cette hypoth`ese, u ∈ E, Var(Cα ) est ´equivalent `a uσ ∈ Eσ r´esulte alors des ´equivalences dans les lemmes 15 et 16.
Rproto
. L’´equivalence
´ 6.6. Equivalences sur les ´equations de constructions
6.6.3.iv
109
Simplification pour le chiffrement asym´ etrique
Les deux lemmes suivants expriment que si, `a partir d’un ensemble de connaissances E, il est possible de construire les clefs publiques et priv´ees t2 et t2 −1 , alors il n’est pas n´ecessaire de se souvenir des messages chiffr´es par ces clefs, il suffit de garder le texte clair. Lemme 17 (Normalisation du chiffrement asym´etrique dans les connaissances) p Rproto
Si t2 , t2 −1 ∈ E, {t1 }t2
p
, alors E, {t1 }t2 ≡Θproto E, t1 , t2 , t2 −1 . p Rproto
Preuve. Par hypoth`ese, E, t1 , t2 , t2 −1 ⊆ E, {t1 }t2 E, t1 , t2 , t2 −1
Rproto
p Rproto
⊆ E, {t1 }t2
p
D’autre part, on a toujours E, {t1 }t2 ⊆ E, t1 , t2 , t2 −1 s Rproto
E, {t1 }t2
. Donc :
Rproto
, et donc :
⊆ E, t1 , t2 , t2 −1
Rproto
p
Le mˆeme lemme vaut, ´evidement, si {t1 }t2 −1 est dans les connaissances. Le lemme suivant aussi p p est valide si {t1 }t2 est remplac´e, dans l’´enonc´e, par {t1 }t2 −1 . Lemme 18 (Normalisation du chiffrement asym´etrique dans les contraintes) Rproto Rproto Rproto p Si t2 , t2 −1 ∈ E , alors {t1 }t2 ∈ E si, et seulement si, t1 ∈ E . p
Preuve. Par d´efinition, t2 −1 , {t1 }t2 ∈ E et t1 , t2 ∈ E
Rproto
implique
p {t1 }t2
∈E
Rproto
Rproto
implique t1 ∈ E
Rproto
par une r`egle de d´ecomposition,
par une r`egle de composition.
p
p
Soit Simplif { }p ,t la fonction qui `a un terme u associe v si u = {v}t ou u = {v}t−1 , et u sinon. On la prolonge sur les ensembles de termes : Simplif { }p ,t (E) =
[
Simplif { }p ,t (u)
u∈E
Des deux lemmes pr´ec´edents, nous tirons le corollaire suivant. Corollaire 3 Soit Cα = (Ei B ti )i∈{1,...,n} , et soit C = Cα , E B t un probl`eme de construction simultan´ee avec Cα en forme r´esolue. Supposons enfin : Rproto
u, u−1 ∈ E, Var(Cα ) Alors pour toute substitution σ, (σ |= C) ⇔ (σ |= Cα , Simplif {
}p ,u (E)
∪ {u} B Simplif {
}p ,u (t))
Preuve. Par hypoth`ese, pour toute substitution σ, on a : (σ |= Cα ) ⇒ ((E, Var(Cα ))σ
Rproto
Rproto
= Eσ
Rproto
)
donc, sous cette hypoth`ese, u, u−1 ∈ E, Var(Cα ) est ´equivalent `a uσ, u−1 σ ∈ Eσ L’´equivalence r´esulte alors des ´equivalences dans les lemmes 17 et 18.
Rproto
.
110
6.6.3.v
Chapitre 6. Recherche efficace d’attaques
Normalisation de probl` emes de construction simultan´ ee
Remarquons que par d´efinition de l’ordre pcs , toutes les fonctions de simplification sont d´ecroissantes pour cet ordre. Il est bien fond´e, donc partant d’un probl`eme de construction simultan´ee C, les fonctions de simplification ne pourront ˆetre appliqu´ees qu’un nombre fini de fois. Soit (Ci )i∈{0,...,n} une suite finie de probl`emes de construction simultan´ee telle que C0 = C, et pour tout i ∈ {1, . . . , n}, le probl`eme Ci est obtenu `a partir de Ci−1 par application d’une fonction de simplification. D´ efinition 47 (Normalisation de probl`emes de construction simultan´ee) Avec les notations pr´ec´edentes, nous disons que Cn est la forme normale de C, et nous le notons Norm(C), si toute fonction de simplification appliqu´ee sur Cn a pour image Cn . Le th´eor`eme suivant est une cons´equence directe des lemmes des sous-sections pr´ec´edentes et de la d´efinition de Norm(C). Th´ eor` eme 8 (Normalisation de probl`emes de construction simultan´ee) Soit C un probl`eme de construction simultan´ee. Alors, pour toute substitution σ, (σ |= C) ⇔ (σ |= Norm(C))
6.7
Compl´ etude de L
Dans cette section, nous montrons que pour un probl`eme de construction simultan´ee C et une substitution σ, si σ |= C, alors il existe un probl`eme de construction simultan´ee C 0 en forme r´esolue tel que C ∗ C 0 et Subst(C ∗ C 0 ) est un pr´efixe de σ. D’apr`es le th´eor`eme 8, nous supposerons que les probl`emes de construction simultan´ee sur lesquels les r`egles de L sont appliqu´ees sont en forme normale. La restriction 1 de la d´efinition de L et l’hypoth`ese C en forme normale impliquent que pour toute ´equation E B t de C sur laquelle une r`egle est appliqu´ee, on a E ∩ X = ∅.
6.7.1
Cas sans d´ ecomposition des connaissances
Dans cette sous-section, nous consid´erons un probl`eme de construction simultan´ee C = (Ei BLc,DY ti )i∈{1,...,n} On appelle ce type particulier de probl`eme des probl`emes de construction simultan´ee par composition. On cherche ` a ramener, par transformations successives, un tel probl`eme `a un probl`eme de construction simultan´ee en forme r´esolue. Lemme 19 Soit C = Cα , E BLc,DY t, Cβ σ-satisfaisable tel que t ∈ / X . Il existe C 0 tel que C C 0 par application d’une r`egle ou avec une substitution στ pr´efixe de σ, telle que σ = στ τ et τ |= C 0 Preuve. Par hypoth`ese, σ |= E BLc,DY t, donc soit tσ ∈ Eσ, soit il existe une d´erivation D partant de Eσ de but tσ utilisant uniquement les r`egles de Lc,DY . Si tσ ∈ Eσ, il existe u ∈ E tel que uσ = tσ. Soit σu l’unificateur le plus g´en´eral entre u et t, et τu tel que σ = σu τu . On est alors dans le cas d’une r`egle . Lc,DY Sinon, soit F →Lc,DY F, t la derni`ere transition dans D. D est une d´erivation, donc F ⊆ Eσ . La derni`ere transition est une r`egle de composition, donc avec les notations de l’´enonc´e, t1 σ et t2 σ sont dans F . On est alors dans le cas d’une r`egle . Dans les deux cas, l’ensemble de contraintes obtenu est encore un probl`eme de construction simultan´ee par composition. Par la proposition 43, il n’y a qu’un nombre fini de suites de transformations partant de C. Soient C1 , . . . , Cn les probl`emes de construction simultan´ee par composition obtenus par des suites de transformation de longueur maximale, et σ1 , . . . , σn les substitutions appliqu´ees pour passer de C `a ces probl`emes. La suite de transformations est de longueur maximale, donc il n’est plus possible
6.7. Compl´etude de L
111
d’appliquer la r`egle Comp. Donc si E B t est une ´equation de Ci , alors t est un symbole d’arit´e 0. Si t n’est pas une variable, alors par maximalit´e, il n’est pas possible d’appliquer la r`egle Unif, et donc t ∈ / E. C est un probl`eme de construction simultan´ee par composition, E ne contient pas de variables, donc pour toute substitution τ , t ∈ / Eτ . Donc un probl`eme Ci obtenu par une suite de transformations de longueur maximale est satisfaisable si, et seulement si, il est en forme r´esolue. S’il existe une substitution σ telle que σ |= C, alors par le lemme 19 et par r´ecurrence, il existe au moins un i tel que σi soit pr´efixe de σ, et en posant σi τ = σ, toujours par le lemme 19, τ |= Ci et donc Ci est en forme r´esolue. On a donc la proposition suivante. Proposition 44 Soit C un probl`eme de construction simultan´ee par composition σ-satisfaisable. Alors il existe C 0 en forme r´esolue, et deux substitutions τ et στ , tels que : – C ∗ C 0 avec les r`egles et ; – σ = στ τ avec στ = Subst(C ∗ C 0 ) et τ |= C 0 .
6.7.2
Cas avec d´ ecomposition des connaissances
Avant de traiter le cas g´en´eral, nous nous int´eressons `a un autre cas particulier, celui de probl`emes C = Cα , E BLDY t avec Cα = E1 BLc,DY t1 , . . . , En BLc,DY tn en forme r´esolue et C σ-satisfaisable. Si l’´equation de constructibilit´e E BLDY t est satisfaisable uniquement avec des r`egles de composition, la proposition 44 permet de ramener C `a un probl`eme de construction simultan´ee en forme r´esolue. Sinon, le lemme 20 permettra de faire le lien entre les probl`emes de construction simultan´ee g´en´eraux et ceux par composition. Avec les notations de ce lemme, on remarque que la r`egle de L permet de passer du probl`eme C au probl`eme en conclusion du lemme. Lemme 20 Avec les notations pr´ec´edentes, et si σ 6|= E BLc,DY t, il existe u = f (u1 , u2 ) dans E tel que : σ |= Cα , E BLc,DY Cond(u), E ∪ Res(u) BLDY t Preuve. Par d´efinition des probl`emes de construction simultan´ee, il existe une d´erivation bien form´ee sur LDY partant de Eσ et de but tσ. Soit : D : Eσ = F0 →R0 F1 →R1 . . . →Rn−1 Fn avec tσ ∈ Fn . L’hypoth`ese σ 6|= E BLc,DY t implique Ld,DY ∩ D 6= ∅. Soit i l’indice minimal tel que Fi →Ri Fi , ri+1 avec Ri ∈ Ld,DY et soit di ∈ Fi le terme d´ecompos´e par Ri . Par d´efinition d’une d´erivation, Lc,DY (di ) ∈ / D. Par minimalit´e de i, on a donc di ∈ Eσ. Donc il existe u ∈ E tel que uσ = di . Par le lemme 14, on peut supposer que u ∈ / X . Soient v = Cond(u) et r = Res(u) les termes (d´eduits des sous-termes de u) tels que vσ soit la condition de Ri et rσ soit le r´esultat de Ri . Alors : σ |= Cα , E BLc v, E ∪ r BL t Ce lemme justifie formellement la premi`ere partie de la restriction 2 de la d´efinition de L. Si le choix (non d´eterministe) du terme u `a d´ecomposer est le bon, il n’est pas n´ecessaire d’utiliser une transformation de type pour composer Cond(u). Le lemme suivant permet de passer d’un probl`eme de construction simultan´ee ayant au plus une ´equation de constructibilit´e (la derni`ere) qui peut ne pas ˆetre r´esoluble dans Lc,DY `a un probl`eme de construction simultan´ee par composition. Lemme 21 Avec les notations pr´ec´edentes, il existe un probl`eme de construction simultan´ee par composition C (c) en forme r´esolue et τ -satisfaisable tels que : – C ∗ C (c) et στ = Subst(C ∗ C (c) ) ; – στ τ = σ.
112
Chapitre 6. Recherche efficace d’attaques
Preuve. D’apr`es le lemme 20, il existe u ∈ E et des termes v, r d´eduits des sous-termes de u tels que : σ |= C1 avec C1 = Cα , E BLc v, E ∪ {r} BL t On a : C C1 . Par la proposition 44, il existe un probl`eme de construction par composition en forme r´esolue (1) C2 et στ , τ (1) tels que : n o τ (1) |= C2 , Eστ(1) ∪ rστ(1) BL tστ(1) (1)
avec C1 ∗ C2 et στ pr´efixe de σ. It´erons cette construction. Par la proposition 43, cette it´eration termine. Soit C (c) le probl`eme finalement obtenu. Par r´ecurrence, il existe τ et στ deux substitutions telles que τ |= C (c) , στ τ = σ et στ = Subst(C C (c) ). Il n’est pas possible d’appliquer le lemme 20 sur C (c) , donc C (c) est un probl`eme de construction simultan´ee par composition. Il n’est pas possible d’appliquer une r`egle ou , donc il est en forme r´esolue. Le cas g´en´eral peut maintenant facilement se d´eduire du lemme 21.
6.7.3
Cas g´ en´ eral
Nous nous pla¸cons maintenant dans le cas d’un probl`eme de construction simultan´ee g´en´eral : C = (Ei BLDY ti )i∈{1,...,n} Th´ eor` eme 9 Pour tout probl`eme de construction simultan´ee C, pour toute substitution σ telle que σ |= C, il existe un probl`eme de construction simultan´ee par composition en forme r´esolue C (c) et deux substitutions στ et τ telles que C ∗ C (c) , στ = Subst(C ∗ C (c) ), σ = στ τ et τ |= C (c) . Preuve. Pour C et un indice i ∈ {1, . . . , n}, on note : (pre)
Ci
= E1 BLDY t1 , . . . , Ei−1 BLDY ti−1
Par contradiction, soient C un probl`eme de construction simultan´ee et σ une substitution tels que (pre) (pre) σ |= C et soit i minimal tel que Ci v´erifie le th´eor`eme, mais pas Ci+1 . Par hypoth`ese, il existe un probl`eme de construction simultan´ee par composition C 0 en forme r´esolue et στ tel que : – στ est un pr´efixe de σ, et στ τ = σ ; – Var(C 0 ) = Var(Cτ ) ⊆ Var(C) ; – τ |= C 0 , Ei τ BL ti τ . Ce qui entraˆıne une contradiction par le lemme 21.
6.8 6.8.1
Recherche d’attaques sur un protocole Mod` ele de protocole
Soit P = ({Rι ⇒ Sι }I ,
6.8. Recherche d’attaques sur un protocole
113
´ Etant donn´e un ordre d’ex´ecution π, notons Ri ⇒ Si la r`egle Rπ−1 (i) ⇒ Sπ−1 (i) , et d´efinissons les ensembles (Ei )i∈{0,...,k} par : Ei =
S0 Ei−1 , Si
si i = 0 sinon
Un ordre d’ex´ecution π est satisfaisable si le probl`eme de construction simultan´ee : Cπ = E0 B R1 , . . . , Ek−1 B Rk est satisfaisable. Par abus de langage, nous dirons que π est σ-satisfaisable si σ |= Cπ . Dans la suite de cette section, nous commen¸cons par montrer qu’il est possible de r´eduire la recherche d’attaque de secret ou d’authentification au probl`eme de savoir si une ex´ecution est satisfaisable.
6.8.2
Codage des attaques
6.8.2.i
Attaques de secret
Soit le probl`eme de d´ecision :
Secret(P, t) : Existe-t-il L Ek σ
DY
π et σ tels que π soit σ-satisfaisable et tσ ∈
?
Soit t le terme devant rester secret dans toute ex´ecution du protocole. Nous codons cette propri´et´e en ajoutant une r`egle : t⇒t incomparable aux autres pour l’ordre
Secret(P, t) est
Accessibilite(Cπ ) soit satisfaisable avec Rk = t ?
On sait d´ej` a r´esoudre les probl`emes de construction simultan´ee, donc le probl`eme de recherche d’attaques de secret se r´eduit au probl`eme de la recherche d’un ordre d’ex´ecution. Le probl`eme est donc d´ecidable (il y a un nombre fini d’ordres d’ex´ecution possibles). 6.8.2.ii
Attaques d’authentification
Soit le probl`eme de d´ecision
Authentification(P, t1 , t2 ) : Existe-t-il π et σ tels que π soit σ-satisfaisable et t1 σ 6= t2 σ ? Soit Σ un ensemble complet de pr´efixe des substitutions satisfaisant Cπ . L’intrus peut composer une infinit´e de termes ` a partir de ses connaissances, donc le probl`eme se r´eduit `a :
Authentification(P, t1 , t2 ) : Existe-t-il π et σ ∈ Σ tels que π soit σ-satisfaisable et t1 σ 6= t2 σ ?
Par les th´eor`emes 9 et 7, il est possible de construire un ensemble complet de pr´efixes des solutions de Cπ . Par la proposition 43, cet ensemble complet de pr´efixes des solutions de Cπ est fini. Donc le probl`eme (P, t1 , t2 ) est d´ecidable.
Authentification
114
6.8.3
Chapitre 6. Recherche efficace d’attaques
Recherche paresseuse d’un ordre d’ex´ ecution
Soit P un protocole. Il y a un nombre fini d’ex´ecutions possibles de P, donc les probl`emes
Secret(P, t) et Authentification(P, t1 , t2 ) sont d´ecidables. Cependant, commencer par deviner un ordre d’ex´ecution et chercher ensuite s’il correspond `a une attaque n’est pas efficace. Dans cette sous-section, nous montrons qu’il est possible de chercher les ordres d’ex´ecution incr´ementalement. Soit C = Cα , E BLDY t un probl`eme de construction simultan´ee. Notons Σ(C) (resp. Σ(Cα )) l’ensemble complet de pr´efixes trouv´e en utilisant le syst`eme L. Proposition 45 Pour toute substitution σ ∈ Σ(C), il existe une substitution σ 0 dans Σ(Cα ) qui est un pr´efixe de σ. Preuve. Par d´efinition, il existe un probl`eme de construction simultan´ee en forme r´esolue C 0 tel que C ∗ C 0 et σ = Subst(C ∗ C 0 ). D’apr`es la restriction 1 sur l’application des r`egles de L, il existe un probl`eme de construction simultan´ee Cα0 en forme r´esolue tel que : C Soit σ 0 = Subst(C
∗
∗
Cα0 , E BLDY t
∗
C0
Cα0 , E BLDY t). Par d´efinition, on a σ 0 ∈ Σ(Cα ).
6.8.4
Algorithme de recherche d’attaques
6.8.4.i
Notations et Algorithme
Soit P = ({Rι ⇒ Sι }ι∈I ,
6.9. R´esultats obtenus avec le prouveur de th´eor`emes daTac
6.8.4.ii
115
Correction et compl´ etude de cet algorithme pour la recherche d’attaques pour un nombre fini de sessions
Tous les ordre d’ex´ ecutions possibles sont explor´ es. Soient π et π 0 deux ordres d’ex´ecution 0 tels que π soit une extension de π. D’apr`es la proposition 45 et par induction, si pour un ordre d’ex´ecution π, le probl`eme de construction simultan´ee Cπ n’est pas satisfaisable, et si π 0 est une extension de l’ordre d’ex´ecution π 0 , alors Cπ0 n’est pas satisfaisable. Il suffit donc, comme le fait cet algorithme, de n’explorer que les ordres d’ex´ecution π 0 qui n’´etendent que des ordres d’ex´ecution π satisfaisables. Pour un ordre d’ex´ ecution π, toutes les substitutions satisfaisant Cπ sont prises en compte. Il s’agit de la propri´et´e de compl´etude du syst`eme L ´enonc´ee dans le th´eor`eme 9. La prise en compte de l’ensemble des substitutions satisfaisant Cπ est symbolique, et se fait `a travers un ensemble complet de pr´efixes. Les attaques trouv´ ees sont r´ eelles. Par « r´eelles », nous entendons que si une attaque avec un ordre d’ex´ecution π et une substitution σ est trouv´ee, alors le probl`eme de construction simultan´ee Cπ est satisfaisable : la substitution σ est pr´efixe d’une substitution close τ telle que τ |= Cπ . Il s’agit d’une cons´equence du th´eor`eme 7. 6.8.4.iii
Conclusion
On remarque que l’algorithme pr´esent´e dans la figure 6.1 est aussi une proc´edure de semid´ecision pour la recherche d’attaques si les acteurs ne sont pas limit´es dans le nombre de sessions auxquelles ils peuvent participer les unes ` a la suite des autres. L’implantation dans daTac suit ce mod`ele : d`es qu’un acteur a termin´e une session, il peut en recommencer une nouvelle. L’ensemble I des r`egles est infini, mais n’a ` a chaque ´etape qu’un nombre fini d’´el´ements minimaux. Il est donc possible de faire une exploration en largeur et paresseuse de tous les ordres d’ex´ecution possibles. Dans le cadre du projet AVISS, les protocoles sont compil´es pour qu’`a la fin d’une session, un principal puisse toujours en commencer une nouvelle. Les r´esultats que nous pr´esentons dans la section 6.9 ne sont donc jamais des r´esultats de correction : en l’absence de faille sur un protocole, notre outil continue ind´efiniment.
6.9 6.9.1
R´ esultats obtenus avec le prouveur de th´ eor` emes daTac Introduction - Corpus de protocoles ´ etudi´ es
J. Clark et J. Jacob ont rassembl´e, dans un rapport datant de 1997 [26], un grand nombre de protocoles cryptographiques qui avaient ´et´e propos´es au cours du temps par divers auteurs. Bien que ce rapport ne contienne pas de protocoles r´ecent, la liste des protocoles recens´es a fini par faire office de banc de test non officiel de la plupart des outils d’analyse de protocoles. Nous avons vu que l’algorithme 6.1 ne termine pas si un protocole ´etudi´e est correct. Aussi, nous nous sommes focalis´es sur les protocoles qui ´etaient d´ej`a rapport´es comme erron´es dans de pr´ec´edents articles. C’est lors d’exp´eriences sur la validation de protocoles (voir le chapitre 8) que nous nous sommes int´eress´es ` a des protocoles simples et pr´esum´es corrects. L’´etude du protocole propos´e par D. Denning et G. Sacco [39] a indiqu´e qu’il pouvait ˆetre erron´e. La faille possible a ´et´e confirm´ee par l’analyse d’un nombre fini de sessions. Cette attaque n’ayant pas ´et´e rapport´ee, `a notre connaissance, avant notre travail, nous la d´ecrivons plus pr´ecis´ement, et discutons des conditions dans lesquelles elle peut se produire dans la sous-section 6.9.3.
6.9.2
R´ esultats obtenus
6.9.2.i
Protocole exp´ erimental
Nous n’avons pas men´e directement les exp´eriences d´ecrites dans cette section. Elles ont ´et´e r´ealis´ees par les participants du groupe gˆenois du projet AVISS [3] dans le but de comparer les
116
Chapitre 6. Recherche efficace d’attaques
diff´erents outils d’analyses de protocoles. Certains des outils ne pouvant pas prendre en compte l’instanciation de protocoles rˆ ole par rˆ ole, les ´etats initiaux des protocoles consid´er´es dans cette s´erie de tests ne sont pas minimaux, en terme de nombre d’acteurs, pour trouver une faille. Nous avons d´ej`a signal´e que le nombre de participants diff´erents ´etait, plus que la complexit´e des messages, la principale limitation de notre strat´egie. Le fait d’utiliser ou non des ´etats initiaux minimaux en terme de nombre de participants explique la diff´erence entre les r´esultats pr´esent´es dans cette section et ceux, par exemple, de [23]. L’implantation n’a pas chang´e depuis novembre 2000, sauf pour l’ajout de nouveaux op´erateurs (table d’adressage dispers´e, ou exclusif bit `a bit). L’ordinateur utilis´e ´etait un Pentium III sous le syst`eme d’exploitation Linux, ayant une fr´equence d’horloge de 1.4 GHz, et disposant de 512 Mo de m´emoire vive. 6.9.2.ii
Explication du tableau 6.3
L’ordre et le nom des protocoles du tableau 6.3 sont ceux qui peuvent ˆetre trouv´es dans le rapport de J. Clark et J. Jacob [26]. La deuxi`eme colonne contient l’attaque trouv´ee par notre outil. La plupart des attaques ´etant des failles d’authentification, nous avons jug´e utile de d´ecrire plus pr´ecis´ement l’erreur. Re-jeu : dans une attaque de Re-jeu, l’intrus envoie sans le modifier un message qui avait d´ej`a ´et´e envoy´e par un principal honnˆete et d´ej`a re¸cu par un autre principal honnˆete ; Erreur de typage : les attaques reposant sur des erreurs de typage sont toutes des attaques d’authentification, celle sur le protocole Shamir Rivest Adelman Three Pass Protocol mise `a part ; Re-jeu : dans ce type d’attaque, si l’intrus parvient `a casser une clef qui a ´et´e ´echang´ee, il peut la faire r´e-accepter par des acteurs honnˆetes lorsque ceux-ci cherchent `a la renouveler ; Authentification : une attaque est dite Authentification si l’intrus parvient `a faire un mˆeme message (une clef ou un nonce) dans deux sessions se d´eroulant en parall`ele ; interm´ ediaire : dans les attaques « interm´ediaire », l’intrus est consid´er´e comme un partenaire honnˆete par un acteur a. Il utilise alors cet acteur pour se faire passer pour a vis-`a-vis d’un autre acteur b. Pour qu’il y ait erreur, il ne faut pas que a pense communiquer avec b.
6.9. R´esultats obtenus avec le prouveur de th´eor`emes daTac
Protocole ISO symmetric key 1-pass unilateral authentication ISO symmetric key 2-pass mutual authentication Andrew Secure RPC Protocol ISO CCF 1-pass unilateral authentication ISO CCF 2-pass mutual authentication Needham-Schroeder Conventional Key Denning-Sacco (symmetric) Otway-Rees Otway-Rees simplified Yahalom with Lowe’s alteration Woo-Lam Π1 Woo-Lam Π2 Woo-Lam Π3 Woo-Lam Π Woo-Lam Mutual Authentication Needham-Schroeder Signature protocol Neuman Stubblebine initial part Neuman Stubblebine repeated part Neuman Stubblebine (complete) Kehne Langendorfer Schoenwalder (repeated part) Kao Chow Repeated Authentication, 1 Kao Chow Repeated Authentication, 2 Kao Chow Repeated Authentication, 3 ISO public key 1-pass unilateral authentication ISO public key 2-pass mutual authentication Needham-Schroeder Public Key Needham-Schroeder with Lowe’s fix SPLICE/AS Authentication Protocol Hwang and Chen’s modified SPLICE Denning Sacco Key Distribution with Public Key Shamir Rivest Adelman Three Pass Protocol Encrypted Key Exchange Davis Swick Private Key Certificates, protocol 1 Davis Swick Private Key Certificates, protocol 2 Davis Swick Private Key Certificates, protocol 3 Davis Swick Private Key Certificates, protocol 4
Attaque Re-jeu Re-jeu Erreur de typage Re-jeu Re-jeu Re-jeu Re-jeu Erreur de typage Erreur de typage Erreur de typage Erreur de typage Erreur de typage Erreur de typage Erreur de typage Authentification Authentification interm´ediaire Erreur de typage Re-jeu Erreur de typage Authentification Re-jeu Re-jeu Re-jeu Re-jeu Re-jeu interm´ediaire Erreur de typage Re-jeu interm´ediaire interm´ediaire Erreur de typage Authentification Erreur de typage Erreur de typage Re-jeu Re-jeu
117
Temps (s) 1.98 3.86 4.26 32.74 2.23 4.55 63.43 15.98 10.71 111.55 44.08 0.81 0.80 0.82 1074.95 245.56 53.88 6.19 3.54 46.78 199.43 76.82 45.25 50.09 4.23 11.06 12.91 31.12 352.42 13.10 936.90 0.70 240.77 106.15 348.49 2.68 35.97
Tab. 6.3 – R´esultats des exp´eriences men´ees dans le cadre du projet AVISS. 1. 2. 3.
A → S : A, B s s S → A : {B , Kab, T , {A, Kab, T }Kbs }Kas s A → B : {A, Kab, T }Kbs
Fig. 6.3 – Protocole de D. Denning et G. Sacco (Denning-Sacco (symmetric))
6.9.3
Cas du protocole de D. Denning et G. Sacco
Dans un article datant de 1981, D. Denning et G. Sacco analysent le protocole propos´e par R. Needham et M. Schroeder et reposant sur des clefs sym´etriques (protocole 6.3.1 de [26], « Needham-Schroeder Conventional Key » dans la table 6.3). En utilisant une notation de haut niveau, les messages ´echang´es dans ce protocole sont d´ecrits dans la figure 6.2.
118
Chapitre 6. Recherche efficace d’attaques
1. 2. 3. 4. 5.
A S A B A
→ → → → →
S A B A B
: : : : :
A, B , Na s s {Na, B , Kab, {Kab, A}Kbs }Kas s {Kab, A}Kbs s {Nb}Kab s {Nb − 1 }Kab
Fig. 6.2 – Protocole de R. Needham et M. Schroeder `a clefs sym´etriques (Needham-Schroeder Conventional Key) Les auteurs analysent que ce protocole souffre d’une attaque de r´ep´etition si la clef Kab est compromise : un acteur jouant le rˆ ole de B, au message 3, n’a pas les moyens de savoir si la clef Kab est fraˆıche. Ils proposent, dans le mˆeme article, une correction `a cette faille. La suite des messages du protocole amend´e est d´ecrite dans la figure 6.3. Dans la figure 6.3, T est une date permettant `a B de s’assurer que la clef Kab a ´et´e cr´e´ee r´ecemment. Notre outil a permis de trouver une attaque sur ce protocole en d´epit de cette correction. Notons par une minuscule correspondante un acteur jouant un rˆole A, B ou S. L’attaque trouv´ee correspond `a la suite de messages : 4. 5. 6.
I → s : b, a s s s → I : {a, kab, t, {b, kab, t}kas }kbs s s I → b : {a, kab, t, {b, kab, t}kas }kbs
L’acteur b accepte ce dernier message, car il le compare au message attendu : s
{a, xkab , xt }kbs et que dans l’implantation dans daTac, l’op´erateur de couple est associatif `a gauche. Donc la s variable xt est unifi´ee avec le message t, {b, kab, t}kas . Cette attaque a peu de chance de pouvoir ˆetre reproduite dans une implantation du protocole avec des primitives cryptographiques parfaites. Cependant, si le chiffrement est fait par bloc, par s,cbc s,ebc s un op´erateur de type { } ou { } , l’intrus peut d´eduire exactement le message {a, kab, t}kbs attendu par b. Cette attaque, si elle est r´ealisable sur une implantation du protocole, la rend inutilisable : un individu malhonnˆete disposant de peu de moyens peut distribuer des clefs diff´erentes `a tous les acteurs, les empˆechant ainsi de communiquer entre eux. Notons cependant que l’intrus ne parvient pas `a r´ecup´erer la clef kab elle-mˆeme. Il parvient donc `a bloquer les communications entre les acteurs, mais ne parvient pas ` a d´ecoder les messages envoy´es.
6.9.4
Conclusion
Le prouveur de th´eor`eme daTac est sp´ecialis´e pour la d´eduction dans les th´eories associatives et commutatives (AC). Plusieurs types de r`egles d’inf´erences utilisent l’unification modulo AC. Cette caract´eristique en fait un outil tr`es souple, mais aussi relativement peu performant. De fait, des implantations ult´erieures de l’algorithme 6.1 en Prolog ou dans un programme Haskell (Ofmc, un autre outil d´evelopp´e dans le cadre du projet AVISS) sont beaucoup plus performantes (d’un facteur entre 100 et 1000) que celle que nous avons r´ealis´ee. Mis `a part la derni`ere version d’Ofmc [6], il s’agit cependant essentiellement d’optimisation de l’implantation, et pas d’am´elioration de l’algorithme pr´esent´e. Au passage, notons que sous les mˆemes hypoth`eses sur le chiffrement, le protocole original de R. Needham et M. Schroeder a aussi une faille de ce type. Elle n’a pas ´et´e d´etect´ee dans ce premier s,ebc s,cbc cas par notre outil car les op´erateurs { } et { } ne sont pas compl`etement pris en compte par notre outil. Cet exemple nous pousse donc `a ´etendre l’implantation actuelle pour prendre en compte de mani`ere compl`ete les propri´et´es du chiffrement par blocs.
6.10. Travaux reli´es
6.10
Travaux reli´ es
6.10.1
Compl´ etude de la strat´ egie de r´ esolution de contraintes
119
` notre connaissance, la mod´elisation des actions de l’intrus par un syst`eme de r´esolution de A contraintes a ´et´e introduite par R. Amadio et D. Lugiez [1], dans un cadre plus restreint que celui que nous avons consid´er´e. Ils consid`erent le cas o` u les variables ne peuvent ˆetre remplac´ees que par des constantes, avec uniquement le chiffrement par clefs sym´etriques atomiques. Les acteurs honnˆetes sont mod´elis´es par des processus CSP, et l’intrus par un environnement contenant, pour chaque message re¸cu par un acteur honnˆete, ses connaissances au moment de la r´eception de ce message et le message re¸cu comme contrainte sur ces connaissances. Les auteurs associent, `a chaque action d’un des processus CSP, une substitution qui affecte l’ensemble des contraintes par le biais de substitutions explicites. Ces contraintes sont simplifi´ees au fur et `a mesure. Un ordre sur les variables permet de montrer la compl´etude de la r´esolution de contraintes symboliques sur la recherche d’attaques. Ce cadre a ensuite ´et´e ´etendu par les mˆemes auteurs et V. Vanack`ere pour prendre en compte le chiffrement asym´etrique [2]. Dans notre syst`eme, l’ordre sur les variables se r´eduit ` a la condition Var(Ei ) ⊆ ∪ij=1 Var(tj ). De plus, l’intrus ne suit pas exactement les actions de d´ecodage d’un message des acteurs honnˆetes, ce qui permet de traiter les erreurs de typage. Enfin, notre mod`ele permet de traiter le cas de clefs compos´ees, ce qui serait plus d´elicat en utilisant des substitutions explicites. La preuve de compl´etude, dans le cadre trait´e dans ce chapitre, de la strat´egie paresseuse de l’intrus pour la recherche d’attaques a ´et´e l’objet de plusieurs articles. M. Fiore et M. Abadi d’une part [49], et M. Boreale d’autre part [13], ont pr´esent´e dans le formalisme des strand-space des algorithmes pour calculer des traces symboliques d’ex´ecutions. Dans le premier de ces articles, seul le cas des clefs atomiques est trait´e. De plus, les algorithmes pr´esent´es sont complexes. J. Millen et V. Shmatikov ont clarifi´e certaines notions li´ees aux probl`emes de construction simultan´ee [73]. Ils commencent aussi par montrer qu’il est possible d’´eliminer les variables des ensembles de connaissances. Mais la preuve pr´esent´ee diverge rapidement de celle propos´ee dans ce chapitre. En effet, comme dans tous les syst`emes de r´esolution de contraintes symboliques dont nous avons connaissance, les mˆemes r`egles servent ` a exprimer les possibilit´es de d´eduction de l’intrus (le syst`eme LDY dans ce chapitre), et la r´esolution de contraintes (le syst`eme L de ce chapitre). Il en r´esulte une preuve qui semble plus complexe que celle pr´esent´ee dans ce chapitre, et un syst`eme de r´esolution de contraintes plus complexe.
6.10.2
Implantation de la strat´ egie paresseuse de l’intrus
La plupart des nouveaux outils pr´esent´es depuis 2001 int`egrent une forme de strat´egie paresseuse de r´esolution de contraintes pour mod´eliser l’intrus. La strat´egie pr´esent´ee dans [1] a ´et´e raffin´ee [2] pour prendre en compte les clefs publiques et priv´ees. Enfin, les mˆemes auteurs ont pr´esent´e un r´esultat de r´eduction d’ordre permettant de ne pas avoir `a prendre en compte tous les entrelacements des actions des acteurs honnˆetes [2]. D’autres articles se sont bas´es sur ces travaux pour implanter un algorithme efficace de recherche d’attaques sur les protocoles. R. Corin et S. Etalle pr´esentent une am´elioration du syst`eme propos´e par J. Millen et V. Shmatikov prenant en compte des sessions partielles [29] : ils proposent de faire une recherche paresseuse de l’ordre d’ex´ecution. D. Basin, S. M¨odersheim et L. Vigan`o pr´esentent [6] une am´elioration plus substantielle. Les auteurs se proposent d’´etendre le syst`eme de r´esolution de contraintes pour pouvoir consid´erer de mani`ere semi-ind´ependante des principaux diff´erents. Cette technique permet de r´eduire grandement le temps de calcul pris par l’exploration paresseuse de tous les ordres d’ex´ecution satisfaisables.
120
Chapitre 6. Recherche efficace d’attaques
7
Probl` emes d’accessibilit´ e non clos 7.1
Motivations
Dans ce chapitre, nous nous int´eressons au probl`eme de la complexit´e de la recherche d’attaques sur des instances de protocoles ayant un nombre fini de participants, chaque participant ne pouvant jouer qu’une session. Notre but est d’´etendre le cadre pour la recherche d’attaques mis en place par D. Dolev et A. Yao au-del` a de l’hypoth`ese de chiffrement parfait. Autrement dit, nous consid´erons le probl`eme de la recherche d’attaques sur une instance d’un protocole lorsque les messages ´echang´es sont construits sur une signature Fproto comprenant certains des constructeurs suivants : s,cbc
{}
s,ebc
,{ }
p,rsa
, ⊕({ }), { }
, Exp( , )
en plus des constructeurs standards : p
s
h , i , { } , { } , H( , ) Les messages sont donc, dans tous les cas, des termes valeurs. Nous rappelons que ces termes, lorsqu’ils sont en forme normale, repr´esentent les classes d’´equivalences des termes qu’il est possible de construire, voir le chapitre 3, section 3.4 pour plus de d´etails. La m´ethode g´en´erale que nous utiliserons, pour la recherche d’attaque, peut s’´enoncer ainsi : 1. consid´erer des attaques minimales dans un sens qui sera d´efini en 7.3 ; 2. montrer que la repr´esentation d’une attaque minimale est born´ee polynomialement en la taille de l’instance du protocole consid´er´ee ; 3. en d´eduire un algorithme de recherche d’attaque minimale.
7.2 7.2.1
D´ efinition du probl` eme Introduction
Dans ce chapitre, nous consid´erons diff´erents syst`emes de r`egles de d´eduction pour l’intrus ind´ependamment les uns des autres. La raison est que la fonction de normalisation fait « disparaˆıtre » des sous-termes lors de son application. Nous cherchons `a limiter le nombre de soustermes d’une substitution σ susceptibles de ne pas apparaˆıtre dans ptσq, avec t un terme valeur. Pour cela, la solution adopt´ee est de ne consid´erer les op´erateurs pouvant ˆetre normalis´es qu’ind´ependamment les uns des autres. Dans le reste de cette section, nous commen¸cons, en sous-section 7.2.2, par rappeler la description d’une instance de protocole, que nous appellerons ensuite simplement protocole, par un ensemble ordonn´e de r`egles optimis´ees (voir le chapitre 5, section 5.3.4 pour plus de d´etails). Nous ´enon¸cons ensuite le probl`eme de d´ecision que nous consid´erons, qui est dans ce chapitre celui de la recherche d’attaques de secret, et le formulons comme un probl`eme d’accessibilit´e. Enfin, dans les trois derni`eres sous-sections 7.2.4, 7.2.5 et 7.2.6, nous donnons les trois alg`ebres de termes que nous consid´erons, et les syst`emes de d´eductions de l’intrus respectifs. 121
122
7.2.2
Chapitre 7. Probl`emes d’accessibilit´e non clos
Protocole
Soit F une signature ayant un nombre fini de constantes, et dont l’ensemble des constructeurs (symboles d’arit´e non nulle) est inclus dans Fproto . Soit aussi X un ensemble (fini) de variables. Nous notons T(F) l’ensemble des termes valeur sur la signature F, et T(F, X ) l’ensemble des termes valeur sur la signature F ∪ X . Nous appelons protocole un triplet P = ({Rι ⇒ Sι }ι∈I ,
on a les propri´et´es suivantes : 1. pour tout sous-terme ⊕({t1 , . . . , tn }) d’un Rι , pour tout i, j ∈ {1, . . . , n}, si i 6= j et si Var(ti ) 6⊆ Xι , alors Var(tj ) ⊆ Xι ; p,rsa αn 1 2. pour tout sous-terme {t} tα1 ,...,tαn ou Exp(t, {tα 1 , . . . , tn }) de Rι , on a : {1 n } ∀i ∈ {1, . . . , n} , Var(ti ) ⊆ Xι La premi`ere propri´et´e indique que dans un sous-terme ⊕({t1 , . . . , tn }) du protocole, il existe au plus un indice i tel que les variables de ti n’apparaissent pas dans un message re¸cu p,rsa pr´ec´edemment. Informellement, la seconde indique que si un sous-terme Exp(t, M) ou {t}M est attendu par un acteur, alors cet acteur connaˆıt tous les termes de (M) avant la r´eception du message. Plus formellement, toutes les variables des termes de (M) apparaissent dans les messages pr´ec´edemment re¸cus. Dans le cadre propos´e dans [20], un op´erateur sp´ecial de multiplication avait ´et´e pr´ef´er´e aux multi-ensembles g´en´eralis´es, et la condition suivante avait ´et´e impos´ee aux termes : l’op´erateur de produit doit n´ecessairement ˆetre sous-terme d’un autre op´erateur de produit ou le second argument du constructeur de l’exponentielle. Cette restriction est implicite dans notre formalisme, car l’utilisation de multi-ensembles de termes est restreinte au second argument d’un op´erateur p,rsa {} ou Exp( , ). Par ailleurs, cette restriction est justifi´ee par la d´efinition de l’exponentielle : les op´erations de produit n’ont de sens que dans le groupe multiplicatif donn´e par la base de l’exponentielle. Nous invitons le lecteur ` a se reporter au chapitre 2 pour une description plus pr´ecise des op´erations de chiffrement par un algorithme `a clefs publiques/priv´ees commutatif (dit de type RSA) et de l’exponentiation.
7.2.3
Probl` eme de la recherche d’attaques
Nous d´efinissons une attaque par un ordre d’ex´ecution π et une substitution σ. Un ordre d’ex´ecution est une bijection croissante entre une section inf´erieure I 0 de I (pour tout ι, ι0 ∈ I, on a ι ∈ I 0 et ι0
L
7.2. D´efinition du probl`eme
123
Soit L un syst`eme de r´e´ecriture sur les ensembles utilis´e par l’intrus pour ses d´eductions. Nous disons qu’un couple (π, σ) est une attaque pour L, avec π un ordre d’ex´ecution et σ une substitution, L si π est σ-satisfaisable pour L et si la constante sp´eciale Secret est dans Ek . Dans le cadre de l’´etude de la s´ecurit´e de protocoles cryptographiques, nous nous int´eressons au probl`eme de d´ecision suivant.
Attaque(P, L) : Existe-t-il une attaque (π, σ) pour L sur P ? 7.2.4
Cas du ou exclusif bit ` a bit
Nous commen¸cons par consid´erer des protocoles sur une signature F dont les constructeurs sont : n o s,cbc s,ebc p s F⊕ = h , i , { } ,{ } , { } , −1 , { } , H( , ), ⊕({ }) Le syst`eme de d´eduction de l’intrus R⊕ , dans ce cas, est donn´e comme l’union des syst`emes de r`egles de composition et d´ecomposition donn´es pour chaque constructeur dans le chapitre 4, section 4.5. On d´efinit : S Rc,⊕ = Sf ∈F⊕ Lc,f Rd,⊕ = f ∈F⊕ Ld,f R⊕ = Rc,⊕ ∪ Rd,⊕ Par le th´eor`eme 2 du chapitre 4, R⊕ est un syst`eme local. Par le th´eor`eme 3 du chapitre 4, pour tout ensemble E et pour tout terme t, le probl`eme :
Accessibilite Close(E, t, R⊕ ) est d´ecidable en temps polynomial en la somme des tailles de repr´esentation de E et de t.
7.2.5
Cas de l’exponentielle
Dans un deuxi`eme temps, nous consid´erons des protocoles sur une signature F dont les constructeurs sont : n o s,cbc s,ebc p s Fexp = h , i , { } ,{ } , { } , −1 , { } , H( , ), Exp( , ) De la mˆeme mani`ere, nous d´efinissons le syst`eme Rexp de r`egles de d´eduction de l’intrus en combinant les syst`emes de r`egles de composition et d´ecomposition pour chaque symbole de Fexp . Rc,exp Rd,exp Rexp
S = L Sf ∈Fexp c,f = f ∈Fexp Ld,f = Rc,exp ∪ Rd,exp
Les th´eor`emes 2 et 3 du chapitre 4 peuvent ˆetre appliqu´es. On montre ainsi que Rexp est un syst`eme local, et que les probl`emes d’accessibilit´e close :
Accessibilite Close(E, t, Rexp ) pour un ensemble de termes E et un terme t sont d´ecidables en temps polynomial en la somme des tailles des repr´esentations de E et de t.
7.2.6
Cas du chiffrement asym´ etrique de type RSA
Enfin, nous traitons le cas du chiffrement asym´etrique commutatif de type RSA en consid´erant des protocoles sur une signature F dont les constructeurs sont : n o s,cbc s,ebc p s p,rsa Frsa = h , i , { } ,{ } , { } , −1 , { } , H( , ), { }
124
Chapitre 7. Probl`emes d’accessibilit´e non clos
De la mˆeme mani`ere, nous d´efinissons le syst`eme Rrsa de r`egles de d´eduction de l’intrus en combinant les syst`emes de r`egles de composition et d´ecomposition pour chaque symbole de Frsa . S Rc,rsa = Sf ∈Frsa Lc,f Rd,rsa = f ∈Frsa Ld,f Rrsa = Rc,rsa ∪ Rd,rsa Les th´eor`emes 2 et 3 du chapitre 4 peuvent toujours ˆetre appliqu´es. On montre ainsi que Rrsa est un syst`eme local, et que les probl`emes d’accessibilit´e close :
Accessibilite Close(E, t, Rrsa ) pour un ensemble de termes E et un terme t sont d´ecidables en temps polynomial en la somme des tailles des repr´esentations de E et de t.
7.3
Th´ eor` eme de complexit´ e
` La suite de ce chapitre est consacr´ee ` a la d´emonstration du th´eor`eme 10 ´enonc´e ci-dessous. A noter que la taille d’une substitution σ, not´ee |σ|, est la somme des tailles des termes |xσ|dag , pour x∈ (σ). La taille d’un protocole P, not´ee |P|, est la somme des tailles des repr´esentations des r`egles de P et des connaissances initiales de l’intrus. Th´ eor` eme 10 (Complexit´e de la recherche d’attaques sur un protocole) Soit L un syst`eme de r`egles de r´e´ecriture tel que : – pour tout ensemble de termes E et pour tout terme t, (E, t, L) est dans PTIME ; – il existe un polynˆ ome pL tel que pour tout protocole P, il existe une attaque (π, σ) sur P pour L si et seulement si il en existe une avec |σ| ≤ pL (|P|). Sous ces conditions, le probl`eme (P, L) est dans NPTIME.
Accessibilite Close
Attaque
La preuve de ce th´eor`eme r´eside dans l’algorithme de la figure 7.1. Si les hypoth`eses sont satisfaites, il suffit de rechercher une attaque (π, σ) avec |σ| ≤ pL (|P|). On a, par d´efinition d’un ordre d’ex´ecution, |π| ≤ |P|. Donc deviner une attaque (π, σ) peut se faire en temps polynomial en la taille de P. La taille de σ est born´ee polynomialement en fonction de la taille de P, donc les tailles des repr´esentations des termes Ri σ, Si σ sont elles aussi born´ees polynomialement en fonction de la taille de P. Pour tout terme t, on a |ptq|dag ≤ |t|dag , donc d’apr`es la seconde hypoth`ese, les probl`emes d’accessibilit´e close :
Accessibilite Close(pS0 σ, . . . , Si−1 σq, pRi σq, L) sont r´esolubles en temps polynomial en la taille de P, donc l’algorithme non d´eterministe de la figure 7.1 a un temps d’ex´ecution polynomial. Cela prouve donc le th´eor`eme.
Attaque(P, L)
Algorithme r´esolvant le probl`eme Soit P = ({Rι ⇒ Sι }ι∈I ,
Accessibilite Close(pS0 σ, . . . , Si−1 σq, pRi σq, L) Accessibilite Close(pS0 σ, . . . , Sk σq, Secret, L)
R´ epondre
Fig. 7.1 – Algorithme de recherche d’attaque sur un protocole Nous savons d´ej` a (voir le chapitre 4, th´eor`eme 3) que pour les syst`emes R⊕ , Rexp et Rrsa , la premi`ere condition du th´eor`eme 10 sur les probl`emes d’accessibilit´e close est satisfaite. Afin de montrer que ce th´eor`eme s’applique ` a ces syst`emes pour la recherche d’attaques, il suffit donc de
7.4. Borne sur le nombre de sous-termes d’une attaque normale
125
montrer que, pour ces syst`emes, la seconde condition est v´erifi´ee. Nous allons le faire en deux temps. Tout d’abord, en section 7.4, nous montrons qu’il existe un polynˆome p1 tel que, s’il existe une attaque (π, σ) sur un protocole P, alors il en existe une (π, σ 0 ) telle que la taille de la repr´esentation des sous-termes de σ 0 soit inf´erieure ou ´egale `a p1 (|P|). Ensuite, nous montrerons dans la section 7.5 que s’il existe une attaque (π, σ) sur P, il en existe une dont les valeurs des multi-ensembles (les coefficients) sont descriptibles en un espace polynomial en la taille du protocole d’entr´ee. Notons que cette seconde ´etape n’est pas n´ecessaire pour le cas des r`egles R⊕ . Dans la suite de ce chapitre, nous utilisons la notion d’attaque normale. Soit : ΘP = {(π, σ) | (π, σ) attaque sur P} Une attaque (π, σ) est normale si :
7.4 7.4.1
(π, σ) ∈ ΘP |σ| = min(π0 ,σ0 )∈ΘP (|σ 0 |)
Borne sur le nombre de sous-termes d’une attaque normale Mise en place
Soit un protocole P = ({Rι ⇒ Sι }ι∈I ,
(S0 ) ∪ (∪ki=1 (
(Ri ) ∪
(Si ))) ∪ Secret
Afin d’avoir S0 6= ∅, nous supposons que la constante I d´esignant le nom de l’intrus est toujours dans S0 . Nous notons : S0 si i = 0 Ei = Ei−1 ∪ pSi σq sinon Si les constructeurs de F sont F⊕ , Fexp , ou Frsa , nous d´esignons simplement par Facteur la fonction qui ` a un terme t associe ses Facteur⊕ , Facteurexp ou Facteurrsa . Si s ∈ Facteur(t), nous dirons simplement que s est un facteur de t. De mˆeme, nous d´efinissons, dans les cas Fexp et Frsa , la fonction Base qui associe ` a un terme sa base comme ´etant la fonction Baseexp ou la fonction Basersa . Nous renvoyons le lecteur au chapitre 3, section 3.4 pour la description compl`ete de la base et des facteurs d’un terme et du lien avec la fonction de normalisation p q. Afin d’harmoniser les notations, et suivant les cas, nous notons f (t1 , . . . , tn ) soit un terme p,rsa ⊕({t1 , . . . , tn }), soit un terme Exp(t1 , M) ou {t1 }M avec (M) = {t2 , . . . , tn }. Pour deux multi-ensembles M1 et M2 , nous notons simplement M1 + M2 et −M1 les r´esultats respectifs des fonctions Add(M1 , M2 ) et Opp(M1 ) d´efinies dans le chapitre 3, section 3.4. Enfin, nous d´efinissons les termes filtrants : ´etant donn´e une substitution σ, un terme t est un σ-filtre d’un terme s si t n’est pas une variable et ptσq = s. Nous notons t vσ s si t est un σ-filtre de s.
7.4.2
D´ efinitions
Dans la d´efinition suivante, si la fonction Basef n’est pas d´efinie, l’union est `a prendre uniquement sur les facteurs. D´ efinition 48 (Terme r´egulier) Soient P un protocole sur une signature F, f un constructeur de F, (π, σ) une attaque sur ce protocole. Un terme s est dit f -r´egulier si : 1. pour tout x ∈ Var(P), si xσ = s, alors s n’est pas un f -terme ; 2. il existe x ∈ Var(P) tel que s soit dans l’ensemble : Facteurf (xσ) ∪ {Basef (xσ)}
126
Chapitre 7. Probl`emes d’accessibilit´e non clos
D´ efinition 49 (Terme libre) Soient P un protocole et (π, σ) une attaque sur ce protocole. Un terme s est dit libre si, pour tout terme t, on a t vσ s implique t ∈ / (SP \ X ). Un terme s qui n’est pas libre est dit li´e. D´ efinition 50 (Signature permettant le remplacement) Soient F ∈ {F⊕ , Fexp , Frsa }, P un protocole sur F et soit (π, σ) une attaque sur P. Pour un terme s, notons δs le remplacement [s ← I], et soit σs = σδs . Si pour tout terme libre et r´egulier s on a, pour tout terme t ∈ SP : pptσqδs q = ptσs q nous disons que F permet le remplacement. D´ efinition 51 (Signature r´eguli`ere) Une signature F ⊆ Fproto est r´eguli`ere si pour tout protocole P d´efini sur T(F, X ), pour toute attaque (π, σ) sur P, on a : Pour tout s r´egulier et libre, pour toute variable x, on a s ∈ Var(Ri ) implique qu’il existe j ≤ i tel que s ∈ (pRj σq).
7.4.3
(xσ) et x ∈
Les signatures F⊕ , Fexp et Frsa sont r´ eguli` eres
Montrons que les signatures F⊕ , Fexp et Frsa sont r´eguli`eres. Fixons p,rsa
(f, F, L) ∈ {(⊕({ }), F⊕ , R⊕ ), (Exp( , ), Fexp , Rexp ), ({ }
, Frsa , Rrsa ), }
Si la fonction Base est d´efinie et s’il existe t tel que s = Base(t), alors s n’est pas un f -terme. Nous utilisons cette remarque pour montrer le lemme 23. Lemme 22 Si f = ⊕({ }), alors l’ensemble des termes r´eguliers est : [ Facteur(xσ) x∈Var(P)
Preuve. Par d´efinition, l’ensemble des termes r´eguliers est inclus dans : [ F = Facteur(xσ) x∈Var(P)
Montrons qu’il y a ´egalit´e. Soit s ∈ F . Par d´efinition de la fonction de normalisation pour l’op´erateur ⊕, s n’est pas un ⊕-terme. Donc s est r´egulier. Lemme 23 Soient s un terme f -r´egulier, y ∈ X tel que s ∈
(yσ) et :
Sy = {t ∈ SP | y ∈ Var(t) et s ∈
(ptσq)}
Pour tout r ∈ Sy , soit s est un sous-terme strict de prσq, soit s n’est pas un f -terme. Preuve. Il s’agit d’une cons´equence de s r´egulier et du lemme 22 pour le cas F = F⊕ . Sinon, supposons que s soit un f -terme. L’hypoth`ese s r´egulier implique s 6= yσ. Donc yσ normalis´e et s 6= yσ implique s 6= Base(yσ). Donc par d´efinition de la fonction de normalisation et de la base, pour tout r ∈ Sy , s 6= Base(prσq). Ce qui implique, entre autres, s 6= prσq. Lemme 24 Soient s et t deux termes, et σ une substitution telle que s ∈ 1. soit il existe x ∈ Var(t) telle que s ∈ 2. soit s est li´e.
(xσ) ;
(ptσq). Alors :
7.4. Borne sur le nombre de sous-termes d’une attaque normale
127
Preuve. Supposons 1. faux. Soit : Θ = {r ∈
(t) | s ∈
(prσq)}
Θ n’est pas vide car cet ensemble contient t. Soit t0 ∈ Θ minimal pour la relation de sous-terme. Si t0 est une constante, on a t0 = pt0 σq = s et t0 ∈ SP, ce qui prouve le lemme. Le premier cas faux implique que t0 n’est pas une variable. Si t0 = g(t1 , . . . , tn ), avec g 6= f , on a directement pt0 σq = s par minimalit´e de t0 . Si t = f (t1 , . . . , tn ), alors : f (Base(pbσq), Facteur(pbσq) + pMσq) si Facteur(pbσq) + pMσq 6= 0 0 pt σq = Base(pbσq) sinon donc s 6= pt0 σq implique soit s ∈ (pbσq), soit il existe t00 ∈ deux cas contredisent la minimalit´e de t0 , donc pt0 σq = s.
(M ) tel que pt00 σq = s. Ces
Notons que si s n’est pas un f -terme, il existe un terme ts ∈ (SP \ X ) tel que pts σq = s et tel que ts ne soit pas un f -terme. Lemme 25 Soit s r´egulier et x ∈ Var(Rk ) tel que : s ∈ Facteur(xσ) ∪ {Base(xσ)} Alors soit il existe j ≤ i tel que soit s ∈
(pRj σq), soit s est li´e.
Preuve. Si s est une constante, alors s ∈ SP, ce qui prouve le lemme. Supposons dans la suite que s n’est pas une constante. Soit : Xs = {x ∈ Var(P) | s ∈
(xσ)}
Et soit i minimal tel que Vi = Var(Ri ) ∩ Xs 6= ∅. Pour y ∈ Vi , soit : Sy = {t ∈
(Ri ) | y ∈ Var(t) et s ∈
(ptσq)}
et soit ry maximal dans Sy pour la relation de sous-terme. S’il existe y ∈ Vi tel que ry = Ri , par minimalit´e de i, le lemme est vrai pour toute variable x telle que s ∈ (xσ) et pour tout j tel que x ∈ Var(Rj ). Sinon, fixons un y parmi ceux possibles, soit : Θy = {t ∈
(Ri ) | ry ∈
(t) \ {t}}
Soit t minimal pour la relation de sous-terme dans Θy . Par maximalit´e de r, on a s ∈ / (ptσq), et donc t = f (t1 , . . . , tn ). Si f = ⊕, et s’il existe i tel que Var(ti ) 6⊆ Var(R1 , . . . , Ri−1 ), alors quitte `a r´eordonner les termes, supposons i = 1. Par hypoth`ese sur les protocole, on a donc dans tous les cas Var(t2 , . . . , tn ) ⊆ Var(R1 , . . . , Ri−1 ), donc par minimalit´e de i, on a n´ecessairement ry = t1 . D’apr`es le lemme 23, si pt1 σq = s, alors s r´egulier implique que s n’est pas un f -terme, et donc s p,rsa est un sous-terme de pt1 σq, ce qui contredit la maximalit´e de r. Dans les cas f ∈ {Exp( , ), { } }, on ne peut pas avoir s ∈ (Base(pt1 σq)), car alors, par d´efinition des fonctions de normalisation, on aurait s ∈ (ptσq). Donc, dans tous les cas : s∈
(Facteur(pt1 σq))
Soit ts le facteur contenant s. Par d´efinition des fonctions de normalisation, s ∈ / (ptσq) implique qu’il existe t0 ∈ {t2 , . . . , tn } tel que pt0 σq = ts . On a Var(t0 ) ⊆ Var(R1 , . . . , Ri−1 ), le terme s est dans (pt0 σq) et pour tout z ∈ Var(t0 ), le terme s n’est pas sous-terme de zσ par minimalit´e de i. Par le lemme 24, il existe t00 ∈ ( (t) \ X ) tel que t00 vσ s. Ce qu’il fallait d´emontrer. Remarquons que dans le cas de la signature F⊕ , s est r´egulier implique s n’est pas un ⊕-terme. Donc par d´efinition de la fonction de normalisation, dans la preuve du lemme pr´ec´edent, v minimal pour la relation de sous-terme implique que v n’est pas un ⊕-terme. Corollaire 4 Les signatures F⊕ , Fexp et Frsa sont r´eguli`eres.
128
7.4.4
Chapitre 7. Probl`emes d’accessibilit´e non clos
Les signatures F⊕ , Fexp et Frsa permettent le remplacement
Le fait, pour une signature, de permettre le remplacement est d´ependant de la fonction de normalisation associ´ee ` a cette signature. Les diff´erences entre les propri´et´es de la fonction de normalisation pour la signature F⊕ d’un cˆot´e, et des fonctions de normalisation pour les signatures Fexp et Frsa de l’autre justifient, ` a nos yeux, un traitement s´epar´e. Nous commen¸cons par traiter le cas des signatures Fexp et Frsa et traitons ensuite, et s´epar´ement, du cas de la signature F⊕ . ´ Enon¸ cons tout de suite la proposition suivante, qui est une cons´equence directe des lemmes 26 et 27. Proposition 46 Les signatures F⊕ , Fexp et Frsa permettent le remplacement. 7.4.4.i
Cas des signatures Fexp et Frsa p,rsa
Pour le reste de cette sous-section, fixons f ∈ {Exp( , ), { } }. La fonction Base est donc bien d´efinie, et on note que dans ces deux cas, s’il existe t tel que s = Base(t), alors s n’est pas un f -terme. Nous utilisons cette remarque pour montrer le lemme suivant. Lemme 26 Si F ∈ {Fexp , Frsa }, alors F permet le remplacement. Preuve. Soit s libre et r´egulier et δs , σs comme dans la d´efinition 50. Le terme s est libre et en forme normale, donc : (tσ)δs = tσs et donc ptσs q = p(tσ)δq. Montrons par induction que pour tout t : pptσqδs q = p(tσ)δs q Si t est une constante, alors t ∈ SP, donc t 6= s, et donc t = tσ = (tσ)δ. Si t est une variable, alors tσ = ptσq, et donc tσs = p(tσ)δq. Si t = g(t1 , . . . , tn ), avec g constructeur libre, alors par d´efinition de la normalisation, on a : ptσq = g(pt1 σq, . . . , ptn σq) On a s libre, donc s 6= ptσq et donc, par induction : ptσs q
= = = =
g(pt1 σs q, . . . , ptn σs q) g(ppt1 σqδq, . . . , pptn σs qδq) pg(pt1 σq, . . . , ptn σq)δq pptσqδq
Si t = f (u, M). Notons tout d’abord que s libre implique ptσq 6= s. De plus, s est en forme normale, donc f (puσq, pMσq) 6= s. Enfin, par r´ecurrence, on a ppuσqδq = puσs q et ppMσqδq = pMσs q. Donc : = = = = =
ptσs q
Si puσq n’est pas un f -terme, ou si s ∈ /
pf (uσs , Mσs )q pf (puσs q, pMσs q)q pf (ppuσqδq, ppMσqδq)q pf (puσqδ, pMσqδ)q pf (puσq, pMσq)δq
({puσq} ∪
(pMσq)), on peut conclure imm´ediatement :
ptσs q = ppf (uσ, Mσ)qδq
7.4. Borne sur le nombre de sous-termes d’une attaque normale
129
Sinon, s libre implique qu’il existe y ∈ Var(t) tel que s ∈ (yσ). Par le lemme 23, et par s libre et r´egulier, si s est un f -terme, alors s est soit un sous-terme strict de Base(puσq), soit un sous-terme de t0 ∈ (pMσq) ∪ Facteur(puσq). Donc, que s soit un f -terme ou non, on a : f (puσq, pMσq)δ = pf (uσ, Mσ)qδ Dans tous les cas, on a donc : ptσs q = pptσqδq ce qu’il fallait d´emontrer. 7.4.4.ii
Cas de la signature F⊕
Il est possible de montrer directement que la signature F⊕ permet le remplacement. Lemme 27 Soit un terme s libre et r´egulier et δs , σs comme dans la d´efinition 50. Pour tout t dans SP, on a : pptσqδs q = ptσs q Preuve. Le terme s est libre, donc pour tout t ∈ SP, on a (tσ)δs = t(σδs ) et donc ptσs q = p(tσ)δs q. Montrons par induction sur la structure des termes que pour tout t ∈ SP, on a ptσs q = pptσqδs q. – Si t est une constante, alors t 6= s par hypoth`ese, et donc pptσqδq = t = ptσs q ; – si t ∈ X , alors ptσq = tσ, et donc ptσs q
= p(tσ)δq = pptσqδq
– si t = g(t1 , . . . , tn ) avec g 6= ⊕, on a s libre et ptσq = g(pt1 σq, . . . , ptn σq) impliquent s 6= g(pt1 σq, . . . , ptn σq). Par induction, on a donc ptσs q = g(ppt1 σqδq, . . . , pptn σqδq), et par cons´equent : ptσs q
= ppg(t1 σ, . . . , tn σ)qδq = pptσqδq
car s 6= ptσq ; – si t = ⊕({t1 , . . . , tn }), nous remarquons que s r´egulier implique s n’est pas un ⊕-terme, et donc ptσq = s implique qu’il existe i tel que pti σq = s. Le terme s est libre, donc pour tout i ∈ {1, . . . , n}, on a pti σq 6= s et ptσq 6= s. On a donc : ptσs q
= = = = = =
p⊕({t1 σs , . . . , tn σs })q p⊕({pt1 σs q, . . . , ptn σs q})q p⊕({ppt1 σqδq, . . . , pptn σqδq})q p⊕({pt1 σqδ, . . . , ptn σqδ})q p⊕({pt1 σq, . . . , ptn σq})δq pptσqδq
(Par induction) (car ⊕ ({pt1 σq, . . . , ptn σq}) 6= s)
Ce qui conclut la preuve du lemme.
7.4.5
Termes li´ es dans une attaque minimale
Dans cette sous-section, nous consid´erons une signature r´eguli`ere F ´egale `a F⊕ , Fexp ou Frsa , et le syst`eme de r`egles de r´e´ecritures sur les ensembles L ´egal `a R⊕ , Rexp ou Rrsa .
130
Chapitre 7. Probl`emes d’accessibilit´e non clos
Terme d´ ecompos´ e par une r` egle. Nous appelons une g-r`egle une r`egle de g-composition ou de g-d´ecomposition. Pour une g-r`egle de r´e´ecriture sur les ensembles R : l1 , . . . , l n → r nous disons que l1 est le terme d´ecompos´e par R si l1 est un g-terme et r est un sous-terme de l1 maximal pour la relation de sous-terme dans (l1 ) \ {l1 }. Lemme 28 L Soient E et F deux ensembles avec I ∈ E. Soient s et t deux termes avec s ∈ E \ L t ∈ E ∪ F . Soit enfin δ le remplacement de [s ← I]. Alors on a : ptδs q ∈ p(E ∪ F )δs q
(E), et
L
Preuve. Pour commencer, si s ∈ / (F, t), le r´esultat est trivial : δs est ´egal `a l’identit´e sur (E, F, t). Supposons maintenant s ∈ (F, t). Tous les syst`emes de r´e´ecriture consid´er´es sont locaux, ce qui assure l’existence de d´erivations bien form´ees. L Par hypoth`ese, on a s ∈ E . Donc par le lemme 4, la derni`ere ´etape d’une d´erivation bien form´ee partant de E de but s est une r`egle de composition. Soit s1 , . . . , sn →Lc s cette r`egle, L (E ∪ {s}). Soit f un constructeur tel que cette r`egle avec {s1 , . . . , sn } ⊆ E et {s1 , . . . , sn } ⊆ soit une f -r`egle de composition. Par la proposition 9, il existe des d´erivations D1 , . . . , Dn et Dt , ´eventuellement de longueur 0, telles que : E, F →∗D1 F, E1 →∗ . . . →∗Dn F, En →∗Dt G avec Di bien form´ee de but si , pour i ∈ {1, . . . , n}, et Dt bien form´ee de but t. Par l’hypoth`ese s∈ (F, t), la concat´enation de ces d´erivations est une d´erivation bien form´ee. Notons-la D : D : G0 = E, F → G0 , t1 = G1 → . . . → G0 , t1 , . . . , tm = Gm Consid´erons la suite d’ensembles (pGi δs q)i∈{0,...,m} et montrons qu’il existe une d´erivation : Dδs : pG0 δs q → . . . → pGm δs q Tout d’abord, quitte ` a raccourcir la suite d’ensembles, supposons pGi δs q 6= pGi+1 δs q. Affirmation 1. Si s ∈ / l ∪ {r} et l → r est une g-r`egle, alors plδs q → prδs q est encore une g-r`egle. Preuve. La quantification dans la d´efinition des r`egles de composition et de d´ecomposition implique que si l → r est une g-r`egle de L et si s ∈ / l ∪ {r}, alors plδs q → prδs q est encore une g-r`egle. Notons encore que si r = s, alors rδs = I. Par l’hypoth`ese I ∈ E, on a I ∈ pG0 δs q, et donc la transition est ´elimin´ee. Pour montrer le lemme, il suffit donc de montrer que pour toute g-r`egle l → r avec s ∈ l et s 6= r, plδs q → prδs q est encore une g-r`egle. Le terme s n’est sous-terme d’aucun si ni de E, donc si cette r`egle est appliqu´ee sur un ensemble Gj , on a si ∈ Gj pour tout i ∈ {1, . . . , n}. Affirmation 2. Si g 6= f , alors plδs q → prδs q est encore une g-r`egle. Preuve. Par d´efinition des r`egles de composition, s n’est pas un g-terme. La constante I n’est jamais exclue par les quantifications dans la d´efinition des r`egles de composition et de d´ecomposition. Il est donc possible de remplacer s par I dans le membre gauche d’une g-r`egle. Le r´esultat sera alors prδs q. Affirmation 3. Si g = f , alors plδs q → prδs q est encore une g-r`egle.
7.4. Borne sur le nombre de sous-termes d’une attaque normale
131
Preuve. Si f est un constructeur libre, la d´erivation est bien form´ee, donc l → r n’est pas une r`egle d´ecomposant s. L’affirmation est alors facilement v´erifi´ee. Soit G l’ensemble sur lequel l → r est appliqu´e, et G0 = G \ {s}. On a : G0 →Lc,f G0 , s →l→r G0 , s, r Si G0 → G0 , r, alors le r´esultat est une cons´equence de l’affirmation 1. Le syst`eme Lf est canonique, donc s ∈ (G0 , r). Plus pr´ecis´ement (voir le chapitre 4), on peut supposer que p,rsa f 6= ⊕ et que pour f ∈ {{ } , Exp( , )}, la r`egle est de la forme : b, l1 , . . . , lk → pf (b, M)q avec b 6= s, (M) = {l1 , . . . , lk } et s ∈ encore une f -r`egle.
(M). On v´erifie alors que plδs q → prδs q est
Les affirmations 2. et 3. entraˆınent que pour toute r`egle l → r de L avec s dans l ∪ {r}, plδs q → prδs q est encore une r`egle de L. Par l’affirmation 1., c’est vrai pour toute r`egle, donc par r´ecurrence, la suite (pGi δs q)i∈{1,...,m} forme une d´erivation. Quitte `a la tronquer, on peut supposer qu’elle est de but ptδs q. Le lemme suivant est le lemme fondamental permettant de borner le nombre de sous-termes d’une substitution. Lemme 29 Tout terme s r´egulier est li´e. Preuve. Par contradiction, supposons : (*) il existe s r´egulier et libre Les constantes sont dans SP, donc s n’est pas une constante. Par (*) et F r´eguli`ere, l’ensemble des j tel que s ∈ (pRj σq) est non vide. Soit Ns le minimum de cet ensemble. D’apr`es (*), il existe y ∈ Var(RNs ) tel que s soit un sous-terme de yσ. Commen¸cons par montrer qu’il n’existe pas i < Ns tel que s ∈ (pSi σq). Si s ∈ (pSi σq), alors par (*) et F r´eguli`ere, il existe z ∈ Var(Si ) tel que s ∈ (zσ). Donc par hypoth`ese sur les protocoles, il existe i0 ≤ i tel que z ∈ Var(Ri0 ). Par minimalit´e de Ns , on a donc i > Ns . Posons Ej = pS0 σ, . . . , Sj σq, et r´esumons la situation : le terme s est dans (pRNs σq) \ (ENs −1 ), et n’est dans aucun (Ej ) pour j ≤ Ns − 1. Soit δ = [s ← I], L le syst`eme de r´e´ecriture associ´e ` a la signature F, et consid´erons les probl`emes d’accessibilit´e close :
Accessibilite Close(pEj−1 δq, ppRj σqδq, L) – si j < Ns , alors s n’est sous-terme ni de l’ensemble de d´epart ni du but, donc pEj−1 δq = Ej−1 et ppRj σqδq = pRj σq. Par hypoth`ese, (π, σ) est une attaque, donc ces probl`emes ont une solution affirmative ; – si j ≥ Ns , alors par le lemme 26 et (π, σ) attaque, ces probl`emes ont une solution affirmative. La signature F permet le remplacement, s est suppos´e libre et r´egulier, donc en posant σ 0 = σδ, on vient de montrer que (π, σ 0 ) est aussi une attaque sur P. Le terme s n’est pas atomique, donc l’existence de cette attaque contredit la minimalit´e de (π, σ).
7.4.6
Borne sur la taille de la repr´ esentation des sous-termes d’une substitution dans une attaque normale
D’apr`es le lemme 29, dans ce cadre, tous les sous-termes r´eguliers sont li´es. Montrons que cela suffit pour borner la taille de la repr´esentation des sous-termes dans σ en fonction de la taille de la repr´esentation de SP. L’attaque (π, σ) permet de d´efinir un ordre <σ sur SP en posant, pour t, t0 ∈ SP : t <σ t0 si et seulement si ptσq ∈
(pt0 σq) \ {pt0 σq}
Le lemme 30, bas´e sur le lemme 29, exprime que la substitution d’une attaque (π, σ) est construite de mani`ere « rigide ». Il est ´enonc´e avec les notations pr´ec´edentes.
132
Chapitre 7. Probl`emes d’accessibilit´e non clos
Lemme 30 Pour tout t ∈ SP, il existe un symbole g et des termes t1 , . . . , tn dans SP, avec n ≥ 0, tels que : ptσq = g(pt1 σq, . . . , ptn σq) Preuve. Soit : Θ = {t ∈ SP | ∀g ∈ F, ∀n ∈
, ∀t1 , . . . , tn ∈ SP, ptσq 6= g(pt1 σq, . . . , ptn σq)}
Par contradiction, supposons Θ non vide, et soit t ∈ Θ. Affirmation 1. t n’est pas une constante. Preuve. Si t est une constante, prendre g = t et n = 0.
Affirmation 2. Si t est un g-terme, alors g = f . Preuve. Sinon, soit t = g(t1 , . . . , tn ). Par d´efinition de la fonction de normalisation, on a : ptσq = g(pt1 σq, . . . , ptn σq) ce qui contredit t ∈ Θ.
Affirmation 3. t n’est pas une variable. Preuve. Supposons t ∈ X . Le cas ptσq g-terme, avec g 6= f , est exclu par le lemme 29. Donc t ∈ Θ implique ptσq = tσ = f (s1 , . . . , sn ). Par le lemme 29, pour tout i ∈ {1, . . . , n}, si r´egulier implique qu’il existe ti ∈ SP tel que pti σq = si . Sinon, il existe une variable xi dans SP telle que xi σ = si . Donc on peut ´ecrire : ptσq = f (pt1 σq, . . . , ptn σq) ce qui implique que Θ ne peut pas contenir de variables.
Affirmation 4. t n’est pas un f -terme. Preuve. Supposons t = f (t1 , . . . , tn ). Si aucun des ti n’est une variable telle que pti σq soit un f -terme, et quitte ` a r´eordonner les termes, alors t en forme normale implique soit ptσq = pt1 σq, soit ptσq = f (pt1 σq, . . . , pti σq) avec i ≤ n. Le second cas implique t ∈ / Θ par d´efinition de Θ. Pour le premier cas, t en forme normale implique t1 n’est pas un f -terme, et donc t ∈ Θ contredit l’affirmation 2. pour t1 . p,rsa }, le seul cas probl´ematique est celui t1 variable et t1 σ f -terme. Dans Si f ∈ {Exp( , ), { } ce cas, par l’affirmation 3., on a t1 σ = f (pu1 σq, . . . , puk σq) avec uj ∈ SP pour j ∈ {1, . . . , k}. On en conclut : ptσq = f (pu1 σq, pv1 σq, . . . , pvl σq) avec {v1 , . . . , vl } ⊆ {t2 , . . . , tn } ∪ {u2 , . . . , uk }. Donc t est n´ecessairement un ⊕-terme. Il est possible de remplacer toute variable ti par les facteurs de pti σq et de faire une diff´erence sym´etrique. Par l’affirmation 3., tous les facteurs de pti σq sont li´es, et donc tous les facteurs restant dans ptσq sont li´es. Les affirmations 1., 2., 3. et 4. impliquent que Θ est vide, ce qui prouve le lemme.
Soit ψ une fonction qui associe ` a chaque terme t ∈ SP un terme g(t1 , . . . , tn ) tel que ptσq = g(pt1 σq, . . . , ptn σq) et t1 , . . . , tn ∈ SP. Le lemme pr´ec´edent donne une structure pour les substitutions σ dans les attaques normales. Nous allons maintenant utiliser cette structure pour montrer que le nombre de sous-termes d’une attaque normale est born´e lin´eairement en le nombre de sous-termes du protocole, et surtout que la taille de la repr´esentation des sous-termes est born´ee de mani`ere quadratique en fonction de la taille de la repr´esentation de SP comme graphe acyclique dirig´e. La fonction ψ n’introduit pas de s,ebc s,cbc ou { } , donc il suffit de montrer : nouveaux termes { } [ | ( {xσ})| ≤ |SP| x∈X
7.5. Borne sur la taille des coefficients dans une attaque normale
133
Th´ eor` eme 11 Si (π, σ) est une attaque normale, alors : | Preuve. Soit S = Affirmation.
S ( x∈X {xσ}).
(
[
{xσ})| ≤ |SP|
x∈X
Soit t ∈ SP tel que ψ(t) = g(t1 , . . . , tn ). On a : (ptσq) = {ptσq} ∪
n [
(pti σq)
i=1
Preuve. Il s’agit d’une cons´equence triviale du lemme 30.
Montrons qu’on a l’in´egalit´e annonc´ee en construisant explicitement une fonction injective de S vers SP. Pour cela, consid´erons une suite de couples {(Ri , Ti )}i∈{0,...,n} , avec R0 = X et T0 = SP. Le couple (Ri+1 , Ti+1 ) est construit `a partir du couple (Ri , Ti ) de la mani`ere suivante. On choisit r ∈ Ri tel que prσq soit maximal pour la relation de sous-terme dans pRi σq. Par induction, il existe t ∈ SP tel que ptσq = prσq. On pose alors : Ri+1 = Ri \ {r} ∪ {r1 , . . . , rn } si ψ(r) = g(r1 , . . . , rn ) Ti+1 = Ti \ {t} Le terme t est dans Ti par maximalit´e des choix pr´ec´edents, et n’est plus susceptible d’ˆetre choisi par la suite par maximalit´e dans le choix de r. Par l’affirmation, on a n = | (S)|. On a donc bien | (S)| ≤ |SP|. Notons que la taille de la repr´esentation de l’ensemble {xσ | x ∈ X }, sans compter la place n´ecessaire pour coder les coefficients dans les multi-ensembles de termes, est quadratique en la taille de la repr´esentation de SP sans compter les coefficients : `a chaque fois qu’une exponentielle, un ou exclusif ou un chiffrement de type RSA est choisi pour une variable, il peut y avoir O(|SP|) sous-termes directs.
7.4.7
Complexit´ e du probl` eme de d´ ecision
Attaque(P, R⊕)
Dans la signature F⊕ , il n’y a pas de coefficients, donc il est possible d’´enoncer le th´eor`eme suivant. Th´ eor` eme 12 Le probl`eme de d´ecision
Attaque(P, R⊕ ) est dans NPTIME.
Preuve. D’apr`es le th´eor`eme 10, il suffit de montrer : a) pour tout ensemble de termes E et pour tout terme t, (E, t, R⊕ ) est dans PTIME ; b) il existe un polynˆ ome p tel que pour tout protocole P, il existe une attaque (π, σ) sur P pour R⊕ si et seulement si il en existe une avec |σ| ≤ p(|P|). Le premier point est d´ej` a prouv´e dans le chapitre 4. Le second point est une cons´equence directe du th´eor`eme 11.
Accessibilite Close
7.5
Borne sur la taille des coefficients dans une attaque normale
Attaque
Attaque
Montrons maintenant que les probl`emes de d´ecision (P, Rrsa ) et (P, Rexp ) sont dans NPTIME. D’apr`es les th´eor`emes 10 et 11, il suffit de montrer qu’´etant donn´e une attaque (π, σ) sur un protocole P, il existe une attaque (π, σ 0 ) avec σ = σ 0 aux coefficients des multiensembles pr`es et avec la taille de l’espace utilis´e pour repr´esenter les coefficients de σ 0 born´ee polynomialement en la taille de la repr´esentation du protocole.
134
7.5.1
Chapitre 7. Probl`emes d’accessibilit´e non clos
Introduction
Pour la suite de cette section, nous supposons que (π, σ) est une attaque normale sur P d´efini sur une signature F ∈ {Fexp , Frsa }. La d´efinition d’une attaque implique, pour tout i ∈ {1, . . . , k} : pRi σq ∈ Ei−1
L
Pour i ∈ {1, . . . , k}, soit Di une d´erivation bien form´ee partant de Ei−1 et de but pRi σq, et posons : ni 0 Di : Ei−1 = E(i−1) → . . . → E(i−1) 3 pRi σq
Dans le cadre de la signature Fexp (resp. Frsa ), nous d´esignons par le symbole f l’op´erateur p,rsa Exp( , ) (resp. { } ). L’´ecriture f (t1 , . . . , tn ) d´esigne un terme f (u, M) avec u = t1 et M un multi-ensemble g´en´eralis´e (resp. un multi-ensemble) de support {t2 , . . . , tn }. Enfin, nous consid´erons un ensemble Xent de variables qu’il est possible de substituer par des entiers relatifs (resp. naturels). Soient T1 et T2 deux ensembles de termes sur la mˆeme signature, et h : p (T1 )q → p (T2 )q une fonction. Nous disons que h est un homomorphisme de p (T1 )q vers p (T2 )q si, pour tout g(t1 , . . . , tn ) ∈ p (T1 )q, on a : h(g(t1 , . . . , tn )) = g(h(t1 ), . . . , h(tn )) La fonction h est un isomorphisme si h est un homomorphisme bijectif. Plus simplement, nous disons que h est un homomorphisme (resp. un isomorphisme) de T1 vers T2 si h est un homomorphisme de p (T1 )q vers p (T2 )q.
7.5.2
Relation d’´ equivalence modulo les coefficients
Nous commen¸cons par introduire une relation d’´equivalence ≡coef correspondant `a la notion d’´egalit´e sur les termes modulo les coefficients. D´ efinition 52 (relation ≡coef ) La relation ≡coef sur les termes de T(F, X ) est d´efinie par t ≡coef t0 si, et seulement si, il existe un isomorphisme ϕ entre p (t)q et p (t0 )q. Proposition 47 La relation ≡coef est une relation d’´equivalence. Preuve. En consid´erant la fonction identit´e, la relation ≡coef est r´eflexive. Elle est sym´etrique en consid´erant la fonction inverse, et transitive par composition des fonctions. Notons que par d´efinition d’un isomorphisme, si ϕ est un isomorphisme entre deux termes t et t0 , on a ϕ(ptq) = pt0 q.
7.5.3
Termes ´ equivalents et d´ erivations
Soit E, E 0 deux ensembles normalis´es de termes, t, t0 deux termes en forme normale et D une d´erivation bien form´ee partant de E de but t. Supposons qu’il existe un isomorphisme ϕ entre E ∪ {t} et E 0 ∪ {t0 } tel que : – ϕ(E) = E 0 ; – ϕ(t) = t0 . Proposition 48 Sous les hypoth`eses pr´ec´edentes, et si pour toute f -r`egle F → u dans D il existe une f -r`egle ϕ(F ) → ϕ(u), alors il existe une d´erivation bien form´ee D0 partant de E 0 et de but t0 . Preuve. Posons D : E = E0 → . . . → En 3 t, et montrons la proposition en montrant, par r´ecurrence sur i, qu’il existe une d´erivation : D0 : E 0 = E00 → . . . → En0 3 ϕ(t)
7.5. Borne sur la taille des coefficients dans une attaque normale
135
telle que pour tout i ∈ {0, . . . , n}, la fonction ϕ est une bijection de p (Ei )q vers p (Ei0 )q qui 0 envoie Ei sur Ei . C’est vrai par hypoth`ese pour i = 0 Supposons donc i > 0 et qu’il existe une bijection entre 0 (Ei−1 ) et (Ei−1 ) qui est une bijection entre Ei et Ei0 . Soit F → u la r`egle appliqu´ee pour passer de Ei−1 ` a Ei . La d´erivation est bien form´ee et tous les termes sont normalis´es, donc la 0 fonction ϕ est d´efinie sur (Ei ), et en posant Ei0 = Ei−1 ∪ {ϕ(u)}, elle est une bijection entre 0 Ei et Ei . Il suffit donc de montrer que ϕ(F ) → ϕ(u) est une r`egle du syst`eme Lf . – si F → u est une f -r`egle, c’est vrai par hypoth`ese ; – sinon, par d´efinition de ϕ, l’image d’un g-terme est un g-terme et deux sous-termes ´egaux ont la mˆeme image. En examinant les diff´erents cas possibles, on conclut que si F → u est une g-r`egles, alors ϕ(F ) → ϕ(u) est aussi une g-r`egle.
7.5.4
G´ en´ eralisation d’une attaque
´ Etant donn´ee (π, σ), nous consid´erons une substitution σ ∗ dans laquelle les coefficients des multi-ensembles (resp. multi-ensembles g´en´eralis´es) sont les ´el´ements d’un ensemble fini Xent de variables pouvant ˆetre substitu´ees par des valeur de (resp. ). Une valuation est une fonction de Xent dans (ou ). L’application d’une valuation β `a un terme t est not´ee β(t). Le r´esultat est le terme t dans lequel toutes les variables x de Xent ont ´et´e remplac´ees par β(x). L’application d’une valuation ` a un multi-ensemble (g´en´eralis´e) M est not´ee β(M). Les multi-ensembles g´en´eralis´es M et β(M) sont reli´es par : ∀t ∈ T(F),
X
β(M)(β(t)) =
β(M(u))
u,β(u)=β(t)
Nous recherchons un ensemble de valuations β telles que (π, β(σ ∗ )) soit une attaque et telles que les images de β soient « petites ». Arbitrairement, nous limitons notre recherche `a des valuations β telles que, pour tous termes t, t0 ∈ SP, on a : SPσ ≡coef β(SPσ ∗ ) Dans la sous-section suivante, nous d´ecrivons l’ensemble des valuations β v´erifiant cette propri´et´e comme un ensemble de solutions d’un syst`eme d’´equations et d’in´equations affines. Dans la sous-section 7.5.4.ii, nous donnerons des conditions suppl´ementaires permettant d’assurer que le couple (π, β(σ ∗ )) est une attaque. 7.5.4.i
Recherche de substitutions ´ equivalentes
Soit E un syst`eme d’´equations et d’in´equations. Nous notons D(E) l’ensembe des valuations β qui sont solution de E. Nous cherchons un syst`eme E d´ependant du protocole tel que, pour toute valuation β ∈ D(E), il existe un isomorphime ϕ entre pSPσq et pβ(SPσ ∗ )q. Soit βσ la valuation telle que βσ (σ ∗ ) = σ. Cette valuation permet de d´efinir une fonction surjective ψ0 : ψ0 :
Pour tout t ∈ implique :
(SPσ ∗ ) → p (SPσ)q t 7→ pβσ (t)q
(SPσ ∗ ), pour toute valuation β, la d´efinition des fonctions de normalisation pβ(t)q = pβ(ptq)q
Donc il existe une fonction surjective ψ : ψ:p
(SPσ ∗ )q t
→ p (SPσ)q 7 → pβσ (t)q
136
Pour t ∈ p
Chapitre 7. Probl`emes d’accessibilit´e non clos
(SPσ)q, soit Tt l’ensemble : Tt = {u ∈ p
(SPσ ∗ )q | pβσ (u)q = t}
Soient u, v ∈ p (SPσ ∗ )q, et Tt1 , Tt2 telles que u ∈ Tt1 et v ∈ Tt2 . Nous cherchons les valuations β telles qu’il existe un isomorphisme ϕ de p (β(SPσ ∗ ))q vers p (SPσ)q avec −1 −1 ϕ (t) = pβ(ψ (t))q. Pour assurer l’existence d’un tel isomorphisme ϕ, il suffit que : Condition 1. si t1 = t2 , alors pβ(u)q = pβ(v)q ; Condition 2. si t1 6= t2 , alors pβ(u)q 6= pβ(v)q ; Condition 3. si pβ(u)q = g(u1 , . . . , un ), alors ϕ(pβ(u)q) = g(ϕ(u1 ), . . . , ϕ(un )). Par d´efinition de la fonction de normalisation, on a : Base(pβ(u)q) = Base(pβ(v)q) pβ(u)q = pβ(v)q ⇐⇒ Facteur(pβ(u)q) = Facteur(pβ(v)q) Par d´efinition de β, on a :
Posons :
Base(pβ(u)q) = pβ(Base(u))q Facteur(pβ(u)q) = pβ(Facteur(v))q Mu = Facteur(u) Mσu = Facteur(βσ (u)) Mv = Facteur(v) Mσv = Facteur(βσ (v)) F = (Mu ) ∪ (Mv ) 0 F = {pβ (s)q | s ∈ F } σ σ Fu = (Mσu )
Nous pouvons maintenant donner les ´equations et in´equations que doit v´erifier β pour que les deux premi`eres conditions soient vraies. Premi` ere condition.
Pour tout t ∈ p X
(SPσ)q et pour tout u, v ∈ Tt et pour tout r ∈ F 0 : Mu (s) =
s∈Tr
X
Mv (s)
s∈Tr
Notons E1 l’ensemble des ´equations ci-dessus. Rappelons que si u (resp. v) n’est pas un f -terme, le multi-ensemble (g´en´eralis´e ) Mu (resp. Mv ) est pris ´egal `a la fonction partout nulle. Notons que la base de pβσ (u)q est aussi dans p (SPσ)q, et donc que l’´egalit´e des bases de deux termes de Tt est v´erifi´ee par induction pour toute valuation β v´erifiant E1 . Deuxi` eme condition. Il suffit d’assurer que si pβ(u)q et pβ(v)q ont la mˆeme base, et si pβσ (u)q et pβσ (v)q sont diff´erents, alors on doit avoir : pβ(Facteur(u))q 6= pβ(Facteur(v))q Par la premi`ere condition, si pβ(Base(u))q = pβ(Base(v))q, alors pβσ (Base(u))q = pβσ (Base(v))q. Il existe donc r tel que : pβσ (Facteur(u))q(r) 6= pβσ (Facteur(v))q(r) Pour assurer pβ(u)q 6= pβ(v)q, il suffit donc de poser : X s∈Tr
Soit E2 l’ensemble de ces in´equations.
Mu (s) 6=
X s∈Tr
Mv (s)
7.5. Borne sur la taille des coefficients dans une attaque normale
137
Troisi` eme condition. Soit β une valuation v´erifiant les deux premi`eres conditions. L’ensemble p (β(SPσ ∗ ))q est en bijection avec l’ensemble {Tt | t ∈ p (SPσ)q}, et donc avec p (SPσ)q. Soit ϕ cette bijection. Pour que ϕ soit un isomorphisme, il faut et il suffit d’assurer que pour g(t1 , . . . , tn ) ∈ p (SPσ)q, on a : ϕ−1 (g(t1 , . . . , tn )) = g(ϕ−1 (t1 ), . . . , ϕ−1 (tn )) Si g 6= f , cette ´egalit´e est vraie par la d´efinition de ϕ en fonction de ψ et par d´efinition de la fonction de normalisation. Si g = f , pour tout u ∈ p (SPσ ∗ )q, il suffit d’assurer : ϕ(
(Facteur(β(u)))) =
(Facteur(ϕ(βσ (u))))
Autrement dit, pour tout r ∈ F 0 , on pose : P σ Ps∈Tr Mu (s) = 0 si Mσu (r) = 0 s∈Tr Mu (s) 6= 0 si Mu (r) 6= 0 Soit E3 l’ensemble de ces ´equations et in´equations, et posons finalement : E = E1 ∪ E2 ∪ E3 Par construction du syst`eme E, pour toute valuation β solution de E, il existe un isomorphisme ϕ de p (β(SPσ ∗ ))q vers p (SPσ)q. Notons : 0 Ei = pβ((S0 , . . . , Si )σ ∗ )q pour i ∈ {1, . . . , n} Ri0 = pβ((Ri )σ ∗ )q pour i ∈ {1, . . . , n} Par d´efinition, pour tout i ∈ {1, . . . , n} et pour toute valuation β solution de E, on a : 0 Ei ≡coef Ei Ri0 ≡coef Ri 7.5.4.ii
Termes ´ equivalents et accessibilit´ e
D’apr`es la proposition 48, il reste `a exprimer l’existence des r`egles ϕ(F ) → ϕ(t) pour toute f -r`egle dans une des d´erivations Di . Soit t1 , . . . , tn → pf (t1 , M)q une telle r`egle. On a :
(Facteur(pf (t1 , M)q) − Facteur(t1 )) = {t2 , . . . , tn } Base(pf (t1 , M)q) = Base(t1 )
L’´egalit´e entre ϕ−1 (Base(pf (t1 , M)q)) et ϕ−1 (Base(t1 )) est assur´ee par ϕ isomorphisme. Soient u, u1 , . . . , un tels que pβσ (ui )q = ti et pβσ (u)q = t, M1 = Facteur(u1 ) et M = Facteur(u). Pour assurer l’´egalit´e sur le support de la diff´erence, il suffit que la valuation β v´erifie : – si r ∈ {t2 , . . . , tn } : X X Mu (s) 6= M(s) s∈Tr
s∈Tr
– sinon : X s∈Tr
Mu (s) =
X
M(s)
s∈Tr
Soit E4 l’ensemble de ces ´equations et in´equations pour toutes les r`egles des d´erivations Di . Par construction, si une valuation β est solution de E ∪ E4 , alors (π, β(σ ∗ )) est une attaque sur P. Le nombre de sous-termes de σ, et donc de σ ∗ , est lin´eaire en le nombre de sous-termes de SP par le th´eor`eme 11, donc le nombre de sous-termes de pSPσ ∗ q est lin´eaire en la taille du protocole P. Le nombre d’´equations et d’in´equations dans E ∪ E4 est donc polynomial en la taille de P. Quitte `a ne pas factoriser, chaque membre d’une ´equation ou d’une in´equation `a un nombre de termes au maximum lin´eaire en la taille de P, et chaque terme de cette somme est soit une variable, soit
138
Chapitre 7. Probl`emes d’accessibilit´e non clos
une constante apparaissant dans P. On en conclut que la taille totale de E ∪ E4 est polynomiale en la taille de P. La recherche de solutions de E ∪ E4 se ram`ene au probl`eme , donc il existe des solutions de taille polynomiale en la taille de E ∪ E4 , et donc polynomiale en la taille de P. La taille de la repr´esentation la substitution σ hors coefficients est elle-mˆeme polynomiale en la taille de P, ce qui justifie la limite polynomiale sur la taille totale de la repr´esentation de la substitution σ dans l’agorithme de la figure 7.1. On a donc le th´eor`eme suivant. Th´ eor` eme 13 Les probl`emes de d´ecision
Attaque(P, Rexp ) et Attaque(P, Rrsa ) sont dans NPTIME.
Une preuve plus technique du th´eor`eme 13 est donn´ee dans le rapport technique [21].
Quatri` eme partie
V´ erification
139
8
Analyse dans le cas d’un nombre non-born´ e de sessions
8.1
Motivation
Nous avons vu, dans le chapitre 6, qu’il ´etait possible de faire une recherche d’attaque efficace sur un protocole dans le cas d’un nombre born´e de sessions. Le principal d´efaut de cet algorithme est la d´ependance (exponentielle) en le nombre de participants. Une premi`ere motivation pour ´etudier le cas d’un nombre non-born´e de sessions d’acteurs, est de chercher `a abstraire le nombre de participants au protocole pour ne plus avoir cette d´ependance exponentielle. Il s’agit donc d’un probl`eme d’efficacit´e de la recherche d’attaques. La seconde motivation vient du probl`eme ´etudi´e : Existe-t-il une attaque avec n ex´ecutions du protocole ? 141
142
Chapitre 8. Cas non-born´e
Si la r´eponse est affirmative, il est possible de consid´erer l’´etude du protocole comme close. Sinon, le probl`eme de l’existence d’une attaque reste ouvert. Dans le cadre d’un nombre non born´e de sessions, il existe une classe de protocoles pour lesquels le probl`eme de la recherche d’attaques est ind´ecidable d`es que la taille des messages n’est pas born´ee, ce qui est montr´e en r´eduisant un probl`eme de correspondance de Post quelconque au probl`eme de la recherche d’attaques, voir [55] par exemple, ou d`es qu’un nombre non born´e de nonces sont consid´er´es [45]. L’alternative, pour une ´etude de protocoles dans le cadre d’un nombre non born´e de sessions, est donc soit de se limiter `a des sous-classes plus ou moins expressives, soit de poser une limite `a la pr´ecision de l’´etude. Le cas des protocoles ping-pong, examin´e par D. Dolev et A. Yao dans leur article fondateur [41], forme une classe de protocoles d´ecidables. Il s’agit cependant d’un r´esultat purement th´eoriqe, les rˆoles de ces protocoles n’ayant aucune m´emoire et les op´erateurs de concat´enation n’´etant pas autoris´es. L’approche suivie par Stoller est dans la mˆeme ligne [100]. Il donne un ensemble de restrictions statiques (un texte chiffr´e n’est pas un sous-message d’un message qui est `a son tour chiffr´e) et dynamiques. Ces derni`eres sont v´erifi´ees au cours de l’ex´ecution d’un algorithme calculant, pour un protocole donn´e, un nombre n de sessions tel que, s’il y a une attaque sur le protocole, alors il y en a une en n sessions ou moins. Les restrictions impos´ees aux protocoles sont cependant trop fortes, et le r´esultat ne semble pas applicable `a une large classe. L’approche suivi par G. Lowe [64] est similaire, mais semble plus pertinente. L’auteur part de principes portant sur l’´ecriture de protocoles, et montre que si un protocole P est ´ecrit selon ces principes et v´erifie certaines hypoth`eses suppl´ementaires, alors il existe un nombre n, calcul´e par un algorithme donn´e par l’auteur, tel que si ce protocole a une attaque, il en a une en moins de n sessions. Parmi les hypoth`eses suppl´ementaires, il est impos´e qu’un secret n’est jamais envoy´e dans un message, mˆeme chiffr´e. Cette restriction permet de prendre en compte un grand nombre de protocoles d’´echange de clefs, mais ne s’applique plus pour les protocoles permettant une transaction. Une partie de notre travail dans le cadre du projet AVISS, et plus encore dans le cadre du projet AVISPA, consiste en l’´etude de protocoles d´ej`a d´efinis et le plus souvent complexes. De tels protocoles ne rentrent que rarement dans le cadre des sous-classes d´ecidables consid´er´ees dans le paragraphe pr´ec´edent. Ne consid´erant pas le fait de savoir qu’un protocole n’a pas de failles dans un cadre limit´e comme une r´eponse satisfaisante, l’utilisation de m´ethodes automatiques implique donc de limiter la pr´ecision de l’´etude. Afin de se ramener `a un cadre d´ecidable, les deux r´esultats d’ind´ecidabilit´e ´enonc´es plus haut impliquent que les acteurs participant `a un nombre non born´e de sessions doivent : – accepter des messages dont les composantes inconnues ne peuvent ˆetre remplac´ees que par des constantes ou, dans le meilleur des cas, par des termes de taille born´ee ; – r´eutiliser les mˆemes nonces d’une session sur l’autre. Dans ce chapitre, nous verrons que ces deux conditions sont suffisantes. Dans une premi`ere partie, nous verrons que la recherche d’attaques dans la cadre d’un nombre non born´e de sessions est dans EXPTIME. Ce r´esultat a ´et´e publi´e dans [22], et repose sur l’existence de r`egles d’Oracle. La notion de r`egles d’Oracle pour ´etendre le pouvoir de d´eduction de l’intrus `a initialement ´et´e introduite dans [25] pour d´ecrire une implantation de cet algorithme dans laquelle les r`egles d’Oracle peuvent ˆetre calcul´ees une fois pour toute au moment de la compilation du protocole, et non `a chaque application. Cette implantation est d´ecrite dans la deuxi`eme partie de ce chapitre, dans la section 8.5.
8.2 8.2.1
Cadre de travail Termes et capacit´ es de l’intrus
Dans ce chapitre, nous consid´erons un intrus ayant un contrˆole total sur les communications (intrus d´efini par D. Dolev et A. Yao, voir [41] et le chapitre 2). Les protocoles sont donn´es sous la forme de r`egles optimis´ees (voir le chapitre 5 pour la construction de ces r`egles). Afin de simplifier le cadre d’´etude, nous faisons l’hypoth`ese de chiffrement parfait des messages. Cela signifie que, parmi les constructeurs d´efinis au chapitre 3, seuls sont consid´er´es : s
p
h , i,{ } ,{ } ,
−1
8.2. Cadre de travail
143
Pour ces constructeurs, les termes valeurs et les termes op´erations co¨ıncident `a un isomorphisme de signature pr`es. Pour un ensemble C de constantes et X de variables, nous notons : s p F = C ∪ h , i , { } , { } , −1 la signature, T(F) l’ensemble des termes clos, et T(F, X ) l’ensemble des termes sur la signature F ∪ X . Nous notons : Rproto = Lh , i ∪ L{ }s ∪ L{ }p Rc,proto = Lc,h , i ∪ Lc,{ }s ∪ Lc,{ }p l’ensemble des r`egles de d´eduction de l’intrus. Le lecteur se reportera au chapitre 4, section 4.5 pour une description pr´ecise de ces syst`emes de r´e´ecriture sur des ensembles. D’apr`es le th´eor`eme 2 du chapitre 4, le syst`eme Rproto est local. On remarque que pour cette signature, la taille de la repr´esentation d’un terme par un graphe acyclique est proportionnelle au nombre de ses sous-termes. On d´efinit donc la taille |t| (resp. |E|) d’un terme t (resp. d’un ensemble de termes E) comme ´etant le cardinal de l’ensemble des sous-termes de t (resp. de E) : |t| = | (t)|
8.2.2
Protocoles consid´ er´ es
Un acteur est une instance d’un rˆole, et est sp´ecifi´e par un couple ({Rι ⇒ Sι }ι∈I ,
144
8.2.3
Chapitre 8. Cas non-born´e
Mod` ele d’ex´ ecution
Soit Pnb = (Aqcq , AD , S0 , D) un probl`eme non-born´e. Pour d´efinir une ex´ecution de Pnb , nous commen¸cons par choisir un nombre d’ex´ecutions des acteurs pour se ramener au cas d’un protocole habituel : – pour chaque acteur A(D),i dans AD , choisir le nombre ni d’ex´ecutions de cet acteur ; – soit P = ({Rι ⇒ Sι }ι∈I ,
8.2.4
Le probl` eme de d´ ecision
Attaque Parallele(Pnb, t, L)
Nous nous restreignons, pour l’´etude th´eorique, au cas de la recherche d’attaques de secret. Pour un protocole Pnb et un terme t, ce type d’attaques peut se d´efinir de la mani`ere suivante. D´ efinition 54 (Attaque sur un protocole non-born´e) Soit Pnb = (Aqcq , AD , S0 , D) un protocole non-born´e, t un terme et L un syst`eme de r´e´ecriture sur les ensembles. Une attaque sur Pnb pour le secret t et pour L est une ex´ecution valide (M, π, σ) de k ´etapes (Ri ⇒ Si )i∈{1,...,k} avec : tσ ∈
k [
L
Si σ
i=0
Le probl`eme de d´ecision que nous consid´erons dans la partie th´eorique de ce chapitre est le suivant :
Attaque Parallele(Pnb , t, Rproto ) : Existe-t-il
une attaque de secret pour t dans Pnb ?
La taille du probl`eme d’entr´ee est la taille de la repr´esentation de Pnb et t. La taille de Rproto n’est pas compt´ee, mais les r`egles de L seront born´ees par d´efinition en fonction de la taille de la repr´esentation de Pnb . On note qu’il y a un nombre infini de multi-ensembles M possibles, donc l’ensemble des ´etats ` a explorer est a priori infini. Nous allons cependant montrer que le probl`eme (Pnb , t, Rproto ) est d´ecidable en temps exponentiel en ajoutant un nombre fini de r`egles ` a Rproto . Ces r`egles suppl´ementaires permettent de simuler toutes les possibilit´es d’interaction entre l’intrus et les acteurs de AD .
Attaque Parallele
8.3 8.3.1
Ajout de r` egles d’Oracle ` a Rproto R´ esultat principal
Le r´esultat th´eorique principal de ce chapitre, que nous prouvons dans cette section et dans la section 8.4, est le th´eor`eme suivant.
8.3. Ajout de r`egles d’Oracle ` a Rproto
145
Attaque Parallele
Th´ eor` eme 14 (Complexit´e du probl`eme (Pnb , t, Rproto )) Pour un protocole non-born´e Pnb = (Aqcq , AD , S0 , D) et un terme t, le probl`eme :
Attaque Parallele(Pnb , t, Rproto ) est EXPTIME-complet.
Attaque Parallele
Pour r´esoudre le probl`eme (Pnb , t, Rproto ), nous utilisons l’algorithme de la figure 8.1. Nous d´eduisons d’un protocole non-born´e Pnb donn´e en entr´ee de l’algorithme un 0 protocole born´e Pnb et un ensemble L0 de r`egles de d´eductions suppl´ementaires pour l’intrus. Nous posons ensuite Ro,proto = Rproto ∪ Lo . Si pour tout ensemble de termes E et pour tout terme t le probl`eme (E, t, Ro,proto ) est dans EXPTIME, alors cet algorithme est dans EXPTIME. Il reste ` a en montrer la correction.
Accessibilite Close
Attaque Parallele(Pnb , t, Rproto )
Soit Pnb = (Aqcq , AD , S0 , D), n = |Pnb | et X = Var(Aqcq ). Soit Lo = Regles Oracle(Pnb ). 0 Soit Pnb = (Aqcq , ∅, S0 , D). Soit Π l’ensemble des ordres d’ex´ecution possibles, et Σ l’ensemble des substitutions closes σ de support X et telles que : ∀x ∈ (σ), |xσ| ≤ n3 + n Pour tout (π, σ) ∈ Π × Σ, 1. tester que (π, σ) est une ex´ecution valide pour Ro,proto du protocole (Aqcq , ∅, S0 , t) ; 2. si l’ordre d’ex´ecution a k ´etapes, et en notant Ri = Rπ−1 (i) (resp. Si = Sπ−1 (i) ), tester si : tσ ∈ (S0 , . . . , Sk )σ
Ro,proto
Fig. 8.1 – Algorithme de recherche d’attaque sur un protocole La preuve se d´eroule de la mani`ere suivante. Tout d’abord, nous montrons que le probl`eme :
Attaque Parallele(Pnb , t, Rproto ) est ´equivalent au probl`eme :
Attaque Parallele(Pnb0 , t, Rproto ∪ Lo ) Ensuite, nous montrons que pour un syst`eme Lo de r`egles de r´e´ecriture sur les ensembles, d´efini et 0 born´e en fonction de Pnb , le probl`eme de la recherche d’attaque sur le protocole Pnb = (Aqcq , ∅, S0 , D) est dans EXPTIME si, pour deux ensembles de termes E et F , le probl`eme :
Transition(E, F, Lo ) est dans EXPTIME. Nous appelons les r`egles de Lo des r`egles d’Oracle, en r´ef´erence au fait qu’elles « indiquent » si, ` a partir d’un ensemble de connaissances E, l’intrus peut obtenir un terme u en utilisant ses capacit´es et en interagissant uniquement avec les acteurs de AD .
8.3.2
D´ efinition de Lo
Dans le chapitre 4, nous avons d´efini des syst`emes canoniques dont la combinaison permet d’obtenir un syst`eme local, c’est-` a-dire un syst`eme L tel que pour tout terme t et pour tout L ensemble E, si t ∈ E , alors il existe une d´erivation bien form´ee de but t partant de E. Les syst`emes canoniques ont deux propri´et´es qui permettent cette combinaison : a) ils sont transitifs. Si deux r`egles d’un syst`eme canonique sont appliqu´ees `a la suite, soit on a, localement, une d´erivation bien form´ee, soit les deux transitions peuvent se r´eduire en une seule ;
146
Chapitre 8. Cas non-born´e
b) ils sont homog`enes. Chaque syst`eme traite un constructeur sp´ecifiquement, et la diff´erence entre op´erateurs permet de combiner les d´erivations bien form´ees locales pour construire une d´erivation bien form´ee partant d’un ensemble E et de but t. Dans le syst`eme de r`egles d’Oracle Lo que nous allons ajouter `a Rproto , les termes dans les r`egles de r´e´ecriture sont quelconques. Il n’est donc pas possible d’utiliser un lemme semblable aux lemmes 5 et 6 du chapitre 4 pour combiner Lo et Rproto pour obtenir un syst`eme local. Nous allons donc directement imposer dans la d´efinition des r`egles d’Oracle que leur ajout `a Rproto permet d’obtenir un syst`eme Ro,proto dans lequel, pour tout ensemble de termes E et pour tout terme Ro,proto
, il existe une d´erivation bien form´ee partant de E de but t. Nous imposons aussi une t∈E contrainte en fonction de la taille du protocole non-born´e Pnb . Cette limitation permet de prendre en compte la taille de la repr´esentation de AD . La d´efinition des r`egles d’Oracle que nous proposons est donc la suivante. D´ efinition 55 (Ensemble Lo des r`egles d’Oracle pour un protocole non-born´e Pnb ) Soit Pnb un protocole non-born´e, Lo un ensemble de r`egles de r´e´ecriture sur des ensembles. Le syst`eme Lo est un syst`eme de r`egles d’Oracle pour Pnb si : 1. pour tout terme t et tout ensemble de termes E, si t ∈ E d´erivation bien form´ee partant de E de but t ;
Rproto ∪Lo
2. pour toute r`egle F → t dans Lo et pour tout t0 ∈ E ∪ {t}, on a |
, alors il existe une
(t0 )| ≤ |
2
(Pnb )| .
Le lemme 4 du chapitre 4 peut ˆetre imm´ediatement adapt´e au cadre de syst`emes de r´e´ecriture sur des ensembles avec r`egles d’Oracle. Lemme 31 Pour toute transition E →Rproto F , si (E) 6= r`egle d’Oracle, soit il existe s tel que : – F = E ∪ {s} et (F ) = (E) ∪ {s} ; – la transition est une r`egle de composition.
8.3.3
(F ), alors soit la transition est faite par une
Probl` eme d’accessibilit´ e close
La proposition 11 du chapitre 4 permet tout de suite d’affirmer que pour deux ensembles de termes E et F , si le probl`eme (E, F, Lo ) est dans EXPTIME, alors le probl`eme :
Transition Transition(E, F, Ro,proto )
est lui aussi dans EXPTIME. D’autre part, la correction de l’algorithme donn´e dans la preuve du th´eor`eme 3 du chapitre 4 utilise uniquement que dans le syst`eme de transitions consid´er´e, l’existence d’une d´erivation partant de E et de but t implique l’existence d’une d´erivation bien form´ee partant de E et de but t. Donc en reprenant verbatim cette preuve, le point 1 implique la proposition suivante. Proposition 49 Pour tout ensemble de termes E et pour tout terme t, si le probl`eme
Transition(E, F, Lo ) est dans EXPTIME, alors le probl`eme :
Accessibilite Close(E, t, Ro,proto ) est dans EXPTIME.
8.3. Ajout de r`egles d’Oracle ` a Rproto
8.3.4
147
Borne sur les attaques
Nous montrons dans cette sous-section qu’il suffit, pour r´epondre au probl`eme :
Attaque Parallele(Pnb , t, Rproto ) de consid´erer les substitutions dont la taille est inf´erieure ou ´egale `a la borne de |Pnb |3 + 1 donn´ee dans l’algorithme. Pour cela, nous d´efinissons une notion d’attaques normales. La taille d’une substitution σ, not´ee |σ|, est d´efinie par : Σx∈X |xσ| Si l’ensemble des attaques sur un protocole non-born´e Pnb est non vide, alors il existe au moins une attaque (π, σ) telle que |σ| soit minimal. Une attaque normale est une attaque dont la substitution est minimale. Par d´efinition, il existe une attaque sur le protocole si, et seulement si, il existe une attaque normale. Pour justifier la restriction sur le choix des substitutions, il suffit donc de montrer qu’une attaque normale (π, σ) est dans Π × Σ. Utilisons les notations de la figure 8.1 pour Pnb , n, (π, σ), Ri , Si , X et k. Soit : SP =
({S0 } ∪ ∪ki=1 {Ri , Si })
et C l’ensemble des constantes dans SP. Dans le lemme suivant, nous notons I le nom de l’intrus. Nous supposons que I ∈ S0 et nous montrons qu’un terme libre s qui est de taille sup´erieure `a n2 peut ˆetre remplac´e par I. Lemme 32 Ro,proto Ro,proto Soient E et F deux ensembles de messages avec I ∈ E, et soit t ∈ E ∪ F . Soit s ∈ E \ R o,proto 2 (E) tel que |s| > n , et δ le remplacement [s ← I]. Alors tδ ∈ Eδ ∪ F δ . Preuve. Pour commencer, si s ∈ / (F, t), le r´esultat est trivial : δ est ´egal `a l’identit´e sur (E, F, t). Supposons maintenant s ∈ (F, t). La d´efinition des r`egles d’Oracle assure l’existence de d´erivations bien form´ees. Ro,proto Par hypoth`ese, on a s ∈ E et |s| > n2 . Donc par le lemme 31, la derni`ere ´etape d’une d´erivation bien form´ee partant de E de but s est une r`egle de composition. Donc s = f (s1 , s2 ) et Rproto s1 , s2 ∈ E . Par la proposition 9 du chapitre 4, on a : E, F →∗D1 F, E1 →∗D2 F, E2 →∗D3 G avec D1 bien form´ee de but s1 , D2 bien form´ee de but s2 et D3 bien form´ee de but t. Par l’hypoth`ese s∈ (F, t), la concat´enation de ces d´erivations est une d´erivation bien form´ee. Notons-la D : D : G0 = E, F → G0 , t1 = G1 → . . . → G0 , t1 , . . . , tm = Gm et consid´erons la suite d’ensembles (Gi δ)i∈{0,...,m} et montrons qu’il existe une d´erivation : Dδ : G0 δ → . . . → Gm δ Tout d’abord, quitte ` a raccourcir la suite d’ensembles, on suppose Gi δ 6= Gi+1 δ. On note : a) pour une r`egle de composition l → r, la r`egle lδ → rδ est encore une r`egle de d´ecomposition si r 6= s ; b) pour une r`egle de d´ecomposition l → r, la r`egle lδ → rδ est encore une r`egle de d´ecomposition si s n’est pas le terme d´ecompos´e ; c) pour une r`egle d’Oracle l → r, la condition sur la taille de s implique lδ = l et rδ = r. Par d´efinition d’une d´erivation, le cas b) ne peut pas se produire dans D. Le cas a) ne peut pas se produire dans Dδ car I ∈ G0 et donc I ∈ G0 δ. Donc, par r´ecurrence, Dδ est une d´erivation. Rproto Quitte ` a la tronquer, on peut supposer qu’elle est de but tδ. Donc on a bien tδ ∈ Eδ ∪ F δ . Le lemme suivant permet de borner la taille de la substitution σ pour une attaque normale.
148
Chapitre 8. Cas non-born´e
Lemme 33 Si (π, σ) est une attaque normale, alors pour toute variable x ∈ X , on a |xσ| > n2 implique que xσ est li´e. Preuve. Par contradiction, supposons |xσ| > n2 et que pour tout terme t, t vσ xσ implique t∈ / SP. Notons : i [ ∀i ∈ {0, . . . , k} , Ei = Sj σ j=0
Les constantes sont toutes dans SP, donc xσ n’en est pas une. Consid´erons l’ensemble : Θ = {i | xσ ∈
(Si σ)}
On a (S0 ) ⊆ (SP), donc 0 ∈ / Θ. Soit N0 minimal dans Θ, et t minimal pour la relation de sous-terme dans (SN0 ) tel que xσ ∈ (tσ). Si t n’est pas une variable, par minimalit´e, on a tσ = xσ, ce qui contredit l’hypoth`ese xσ libre. Donc il existe une variable y telle que xσ ∈ (yσ). L’ensemble : Θ0 = {i | y ∈ Var(Ri )} n’est pas vide d’apr`es l’hypoth`ese sur les variables dans les r`egles du protocole. Soit Nx minimal dans Θ0 . Toujours par cette hypoth`ese, Nx ≤ N0 , donc xσ ∈ / (ENx −1 ). Par le lemme 31 et Ro,proto l’hypoth`ese sur la taille de xσ, on a xσ ∈ ENx −1 . Donc pour tout i ≥ Nx , on peut appliquer le lemme 32, et montrer : Ro,proto (Ri σ)[xσ ← I] ∈ Ei−1 [xσ ← I] D’autre part, par minimalit´e de Nx , l’in´egalit´e i < Nx implique xσ ∈ /
(Ri σ, Ei−1 ), et donc :
Ro,proto
(Ri σ)[xσ ← I] ∈ Ei−1 [xσ ← I]
L’hypoth`ese t vσ xσ implique enfin qu’il existe une substitution σ 0 = σ[xσ ← I] telle que : ∀i ∈ {1, k} , (Ri σ)[xσ ← I] = Ri σ 0 et (Si σ)[xσ ← I] = Si σ 0 On a donc construit une substitution σ 0 telle que (π, σ 0 ) soit une attaque et |σ 0 | ≤ |σ|, ce qui contredit (π, σ) attaque normale. On peut maintenant montrer que la restriction sur le choix des substitutions, dans l’algorithme de la figure 8.1, n’´ecarte pas les attaques normales. Th´ eor` eme 15 (Borne sur les substitutions dans les attaques normales) Soit Pnb un protocole et (π, σ) une attaque normale sur Pnb . Alors, pour tout x ∈ Var(Pnb ), on a : |xσ| ≤ n3 + n Preuve. Soit :
Θ = x ∈ X | |xσ| ≤ n2
et soit X 0 = X \ Θ. Si X 0 = ∅, le th´eor`eme est prouv´e. Sinon, par le lemme 33, si x ∈ X 0 , alors il existe tx ∈ SP tel que tx vσ xσ. Consid´erons le probl`eme d’unification syntaxique : {x = tx }x∈X 0 Il a une solution σ, donc il a une solution plus g´en´erale unique σ 0 . Par construction de cette solution, on a : ∀x ∈ X 0 , |xσ 0 | ≤ ≤
| ∪x∈X 0 tx | |SP|
et, par d´efinition d’une substitution : ∀x ∈ X 0 , Var(xσ 0 ) ∩ X 0 = ∅
8.4. R`egles parall`eles
149
On en conclut alors facilement : ∀x ∈ X 0 , |xσ| ≤ ≤
|SP| + |Θ| · n2 n3 + n
Ce qu’il fallait d´emontrer.
On remarque incidemment que la borne donn´ee permet de borner, avec exactement la mˆeme construction, | {xσ | x ∈ X } |.
8.4 8.4.1
R` egles parall` eles Situation de la preuve
Soit Pnb = (Aqcq , AD , S0 , D) un protocole non-born´e. Nous venons de prouver que pour un ensemble de r`egles d’Oracles Lo , si le protocole P d´efini par les acteurs de Aqcq et un intrus ayant les connaissances initiales S0 a une attaque (π, σ) dans Ro,proto , alors la substitution σ ´etait born´ee en fonction de la taille de Pnb . Il reste donc ` a montrer que le protocole Pnb a une attaque dans Rproto si et seulement si le protocole P a une attaque dans Ro,proto . Pour cela, nous allons construire explicitement l’ensemble des r`egles de Lo indirectement en montrant que le probl`eme :
Transition(E, F, Lo ) est d´ecidable en temps exponentiel. Nous prouverons ensuite que les r`egles construites v´erifient le d´efinition des r`egles d’Oracle.
8.4.2
R` egles agr´ eg´ ees
On consid`ere un protocole non-born´ee Pnb = (Aqcq , AD , S0 , D) Soit SD l’ensemble des termes d´ecrits par D. Par hypoth`ese sur D, l’ensemble SD est de cardinal fini. Donc l’ensemble des instances e possibles des acteurs de AD par des termes de SD est fini. Soit AD D cet ensemble. Un acteur instanci´ est d´ e crit par une suite finie de r` e gles closes : A de AD D R1 ⇒ S1 , . . . , R m ⇒ Sm L’ensemble des r`egles agr´eg´ees de cet acteur est l’ensemble de r`egles de d´eduction de l’intrus : m [
{R1 , . . . , Ri → Si }
i=1
On appelle Aagg l’ensemble des r`egles agr´eg´ees et instanci´ees des acteurs de AD . Notons tout D de suite que les r`egles de Aagg D permettent de se passer des acteurs de AD . Notons Ragg,proto = . Rproto ∪ Aagg D Lemme 34 Le probl`eme de d´ecision :
Attaque Parallele((Aqcq , AD , S0 , D), t, Rproto ) est ´equivalent au probl`eme de d´ecision
Attaque Parallele((Aqcq , ∅, S0 , ∅), t, Ragg,proto ) Preuve. Montrons d’abord :
Attaque Parallele((Aqcq , AD , S0 , D), t, Rproto ) implique :
Attaque Parallele((Aqcq , ∅, S0 , ∅), t, Ragg,proto )
150
Chapitre 8. Cas non-born´e
Supposons qu’il y ait une attaque (M, π, σ) sur (Aqcq , AD , S0 , D). Par d´efinition, il existe un ordre d’ex´ecution π respectant l’ordre sur les r`egles des acteurs, une substitution σ respectant la restriction sur les instances des variables des acteurs de Aqcq et des des r`egles d’acteurs Ri ⇒ Si telles que : Rproto
R 1 σ ∈ S0 ... Rproto Rk σ ∈ (S0 , . . . , Sk−1 )σ tσ
∈ (S0 , . . . , Sk )σ
Rproto
Soit A un acteur de AD et α une permutation telle que Rα(1) σ ⇒ Sα(1) σ, . . . , Rα(l) σ ⇒ Sα(l) σ soient les r`egles d’une des sessions de A. Par croissance des ensembles de connaissances, on a, pour tout i ∈ {1, . . . , l} ∀j ∈ {1, . . . , i} , Rα(j) σ ∈ (S0 , . . . , Si−1 )σ
Rproto
D’autre part, pour tout i ∈ {1, . . . , l}, pour tout x ∈ Var(Ri ), on a xσ ∈ D. Donc on peut remplacer les r`egles de cette session de cet acteur par des r`egles agr´eg´ees de l’intrus. En r´ep´etant l’op´eration pour tous les acteurs et AD et pour toutes leurs ex´ecutions, on obtient une solution au probl`eme :
Attaque Parallele((Aqcq , ∅, S0 , ∅), t, Ragg,proto ) La r´eciproque se montre de la mˆeme mani`ere, en rempla¸cant chaque r`egle agr´eg´ee par une ex´ecution partielle d’un acteur de AD . Les r`egles agr´eg´ees ne sont qu’une solution partielle du probl`eme. Elles v´erifient le point 2 de la d´efinition de r`egles d’Oracle. Cependant, elles ne v´erifient pas, en g´en´eral, le point 1.
8.4.3
R` egles d’Oracle pour les acteurs
Tout d’abord, notons Hr l’ensemble des sous-termes des membres droits des r`egles agr´eg´ees, et H l’ensemble des sous-termes de ces r`egles. Ces deux ensembles sont finis et, d’apr`es la restriction sur la taille des termes repr´esent´es par D, de taille exponentielle en la taille n du protocole Pnb . Notons aussi que chaque terme de ces ensembles est un sous-terme du protocole non-born´e Pnb dont les variables sont instanci´ees par des termes de D. Sa taille peut donc ˆetre born´ee par : |Pnb | + |X | × |D| On a |Pnb | ≥ |X | + |D|, donc cette in´egalit´e implique : ∀t ∈ H, |t| ≤ n2 Il est maintenant possible de d´efinir les r`egles d’Oracle pour les acteurs. D´ efinition 56 (R`egles d’Oracle pour les acteurs) Une r`egle de r´e´ecriture E → t est une r`egle d’Oracle pour les acteurs de Pnb si : 2 ∀u ∈ E, |u| ≤ n t ∈ Hr Ragg,proto t∈E On note AoD l’ensemble des r`egles d’Oracle pour les acteurs de Pnb . Nous montrons en sous-section 8.4.4 que ces r`egles sont des r`egles d’Oracle au sens de la d´efinition 55. Mais d’abord, commen¸cons par montrer que le probl`eme de transition est exponentiel.
8.4. R`egles parall`eles
151
Proposition 50 Pour tout ensemble de termes E et pour tout terme t, le probl`eme :
Transition(E, E ∪ {t} , AoD ) peut ˆetre d´ecid´e en temps exponentiel en la taille de E, t et Pnb . Preuve. Par d´efinition, ce probl`eme est ´equivalent au probl`eme :
Accessibilite Close(E, t, Ragg,proto ) Ragg,proto
Supposons t ∈ E , et soit D une d´erivation partant de E de but t de longueur minimale. Affirmation. Pour toute r`egle F → u appliqu´ee dans D, on a u ∈ (E, t) ∪ H. Preuve. Par contradiction, supposons que l’ensemble des r`egles Θ = {Fi → ui | ui ∈ /
(E, t) ∪ H}
soit non vide. Par d´efinition de H, il ne contient pas de r`egles de Aagg D . Supposons Θ ∩ Rc,proto 6= ∅. Soit F → u la derni`ere r`egle de Θ ∩ Rc,proto appliqu´ee. Par d´efinition, u 6= t. Par minimalit´e de D, u doit ˆetre dans le membre gauche d’une autre r`egle F 0 , u → r. Ce n’est pas une r`egle de Rc,proto par maximalit´e dans Θ ∩ Rc,proto et par d´efinition des r`egles de Rc,proto . Ce n’est pas une r`egle de AoD par d´efinition. Ce n’est pas une r`egle de d´ecomposition par d´efinition des d´erivations et de Rd,proto . Donc Θ ∩ Rc,proto = ∅. Donc n´ecessairement, Θ ∩ Rd,proto 6= ∅. Soit alors F → u une r`egle de Θ ∩ Rd,proto , et soit v le terme d´ecompos´e par cette r`egle. u∈ / (E, t) ∪ H implique v ∈ / (E, t) ∪ H. Notons : D : E → E1 → . . . → E l et soit i minimal tel que v ∈ (Fi ). On a i > 0 par hypoth`ese. Par le lemme 31, la transition Fi−1 → Fi est soit dans Rc,proto , soit dans Aagg efinition D . Le premier cas est impossible par d´ d’une d´erivation, le second par hypoth`ese sur u. On aboutit ` a une contradiction, donc Θ = ∅. L’ensemble (E, t) ∪ H est de taille exponentielle en la taille du protocole. Le calcul de Ragg,proto (E, t) ∪ H ∩ E peut donc se faire en temps exponentiel en la taille de (E, t) ∪ H. Comme corollaire trivial, le probl`eme de d´ecision :
Transition(E, F, AoD ) peut ˆetre d´ecid´e en temps exponentiel. Par construction et par le lemme 34, on a aussi la proposition suivante : Proposition 51 Le probl`eme de d´ecision :
Attaque Parallele((Aqcq , AD , S0 , D), t, Rproto ) est ´equivalent au probl`eme de d´ecision
Attaque Parallele((Aqcq , ∅, S0 , ∅), t, Rproto ∪ AoD ) Pour conclure, il reste ` a montrer que les r`egles de AoD sont des r`egles d’Oracle.
152
8.4.4
Chapitre 8. Cas non-born´e
Les r` egles de AoD sont des r` egles d’Oracle
Le point 2 de la d´efinition 55 est trivialement satisfait. Il reste donc `a montrer que pour tout Ro,proto ensemble E et tout terme t, on a t ∈ E implique qu’il existe une d´erivation bien form´ee partant de E de but t. Proposition 52 (Les r`egles d’Oracle des acteurs sont des r`egles d’Oracle) Ro,proto implique qu’il existe une d´erivation bien Pour tout ensemble E et tout terme t, on a t ∈ E form´ee partant de E de but t. Preuve. Tout d’abord, commen¸cons par clarifier les liens entre les diff´erents types de r`egles. Affirmation 1. Si E →AoD E, t →Rd,proto E, t, u, alors soit E →Rd,proto u, soit E →AoD u, soit (E). t ∈≡ −1 Preuve. Si t n’est pas dans le membre gauche de la r`egle de d´ecomposition, on est dans le premier cas, si t est le terme d´ecompos´e, on a |u| ≤ |t|, donc on est dans le deuxi`eme cas. Enfin, si t est la condition de la r`egle, on est dans le troisi`eme cas. Affirmation 2. Si E →Rc,proto E, t →AoD E, t, u, alors E →AoD E, u. Preuve. Par d´efinition des r`egles d’Oracle d’acteurs. La condition sur la taille du membre gauche est v´erifi´ee par E, t implique qu’elle est v´erifi´ee par E. Affirmation 3. Si E →AoD E, t →AoD E, t, u, alors E →AoD E, u. Preuve. Trivial, par d´efinition des r`egles d’Oracle des acteurs. Soit t ∈ E
Ro,proto
et soit D une d´erivation minimale partant de E et de but t, soit : D : E = E0 → E1 → . . . → En
avec t ∈ En . Quitte ` a changer D, par l’affirmation 1., supposons qu’aucun terme r´esultat d’une r`egle d’Oracle ne soit d´ecompos´e. D´efinissons : Θ = Fi → u i ∈ D | u ∈ / (E, t) et Ei−1 →{Fi →ui } Ei et soit :
Θd Θc Θo
= Θ ∩ Rd,proto = Θ ∩ Rc,proto = Θ ∩ AoD
Nous allons montrer par contradiction que les trois ensembles Θd , Θc et Θo sont vides en utilisant la minimalit´e de D. Θd : par contradiction, soit Fi → ui ∈ Θd d’indice minimal, et soit v le terme d´ecompos´e. Par d´efinition d’une d´erivation, v n’est pas le r´esultat d’une r`egle de composition. Par minimalit´e dans Θd , ce n’est pas une r`egle de d´ecomposition. Par minimalit´e par le choix de D, ce n’est pas une r`egle d’Oracle. Donc v ∈ E, ce qui contredit ui ∈ / (E) ; Θc : par contradiction, soit Fi → ui ∈ Θc d’indice maximal. Par hypoth`ese, ui 6= t. Par minimalit´e de D, ui est dans le membre gauche d’une autre r`egle F 0 → v. Ce n’est pas une r`egle de composition par maximalit´e dans Θd , et ce n’est pas une r`egle d’Oracle par l’Affirmation 2. Si c’est une r`egle de d´ecomposition, ui n’est pas le terme d´ecompos´e par d´efinition d’une d´erivation. Soit v le terme d´ecompos´e par cette r`egle. Ce terme n’est pas cr´e´e par une r`egle de AoD par l’affirmation 1. et le choix de D, il n’est pas cr´e´e par une r`egle de Rc,proto par d´efinition d’une d´erivation. Donc il est cr´e´e par une r`egle de Rd,proto , mais alors Θd = ∅ implique qu’il est sous-terme de E, t. Donc u ∈≡ −1 (E, t). Il n’y a pas de r`egles de composition F 00 → w−1 , donc u ∈ (E, t) ; Θo : par contradiction, soit Fi → ui ∈ Θo d’indice maximal. Par hypoth`ese, ui 6= t. Par minimalit´e de D, ui est dans le membre gauche d’une autre r`egle F 0 → v. L’affirmation 1. et ui ∈ / (E), on peut supposer que ce n’est pas une r`egle de d´ecomposition. Par Θc = ∅ et par d´efinition des r`egles de composition, ce n’est pas une r`egle de composition. Donc c’est alors une r`egle de AoD , mais alors l’Affirmation 3. contredit la minimalit´e de D. Donc Θo = ∅. On en conclut que Θ = ∅, et donc qu’une d´erivation partant de E et de but t de longueur minimale est bien form´ee.
8.5. Implantation
8.5 8.5.1
153
Implantation dans le cadre de la strat´ egie paresseuse de recherche d’attaques Une proc´ edure inefficace
Les r`egles d’Oracle, telles qu’elle sont d´ecrites dans la section pr´ec´edente, sont incompatibles avec la strat´egie de recherche d’attaques par r´esolution de contraintes. Or, cette strat´egie est `a l’origine de spectaculaires progr`es tant pour la vitesse d’analyse des protocoles que pour le spectre des protocoles analysables automatiquement. Nous cherchons donc `a adapter les r`egles d’Oracle `a cette strat´egie, et non l’inverse. La principale contrainte est que la strat´egie paresseuse de recherche d’attaques repose sur une repr´esentation symbolique des ensembles de connaissances de l’intrus, alors que les r`egles d’Oracle sont d´efinies dans la section 8.4 par un calcul de point fixe `a partir de toutes les connaissances de l’intrus. Une contrainte secondaire est pouvoir pr´e-calculer ces r`egles pour permettre une analyse plus rapide. Pour r´epondre ` a ces deux contraintes, nous avons pr´esent´e dans [25] une implantation possible de ces r`egles. Cette implantation, ant´erieure `a la formalisation pr´esent´ee dans les sections pr´ec´edentes, permet une analyse efficace des protocoles cryptographiques (voir la section 8.6). Dans la suite de cette section, nous pr´esentons : a) les d´eclarations, dans le langage de haut niveau de description de protocoles, associ´ees aux acteurs de AD en sous-section 8.5.2 ; b) la compilation de ces acteurs par CasRul en sous-section 8.5.3. Nous ne montrons qu’informellement la correction, la compl´etude et la terminaison de l’implantation des r`egles d’Oracle pour la recherche d’attaques sur un protocole : (Aqcq , AD , S0 , D) La raison en est que cette preuve recoupe amplement les preuves de correction, compl´etude et terminaison de la recherche d’attaques par r´esolution de contraintes pour le syst`eme d’inf´erence utilis´e, et la preuve de la premi`ere partie de ce chapitre pour ce qui concerne le passage des r`egles de rˆoles ` a celles d’Oracle.
8.5.2
D´ eclaration des acteurs de AD
Dans le cadre de l’implantation des r`egles d’Oracle dans le compilateur CasRul, nous choisissons D pour que seules des constantes puissent ˆetre substitu´ees `a des variables. La d´eclaration des acteurs pouvant participer ` a un nombre non-born´e de sessions se fait donc uniquement avec la d´eclaration des instances des rˆ oles. Par exemple, pour reprendre le cas du protocole de R. Needham et M. Schroeder : : B [A : a, B : b, Ka : ka, Kb : kb, Nb : nb1 ], B [A : a, B : b, Ka : ka, Kb : kb, Nb : nb2 ], A [A : a, B : I , Ka : ka, Kb : ki ] ; Par d´efaut, les nonces cr´e´es par un acteur jouant un nombre non-born´e de sessions sont identiques d’une ex´ecution ` a l’autre du protocole. Dans les d´eclarations de ces acteurs, il est possible de nommer les nonces qu’ils cr´eent. Cela pr´esente deux avantages : a) il est possible de sp´ecifier deux instances d’un acteur utilisant des nonces diff´erents ; b) il est possible de nommer des nonces pour une utilisation ult´erieure. Le premier avantage est limit´e pour la recherche d’attaques. Il est ´evident, via une abstraction, que s’il y a une attaque dans une instance o` u un mˆeme acteur utilise deux nonces diff´erents, il en existe une dans une instance similaire o` u cet acteur utilise deux fois le mˆeme nonce. L’instance d’un nonce peut ˆetre pr´ecis´ee dans le but de sp´ecifier qu’elle est connue de l’intrus ou, au contraire, qu’elle devrait rester secr`ete. Pour sp´ecifier qu’un nonce est connu de l’intrus, il suffit de le mettre dans ses connaissances initiales. Pour sp´ecifier qu’il doit rester secret, une d´eclaration sp´ecifique est utilis´ee :
154
Chapitre 8. Cas non-born´e
: nb1 ; Cette d´eclaration diff`ere de celle de but de l’intrus, car il est utilis´e, durant la construction des r`egles d’Oracle, que l’intrus ne connaˆıtra jamais ces termes. En contrepartie, la sp´ecification du protocole est fautive si l’intrus venait `a connaˆıtre un de ces termes.
8.5.3
Compilation des acteurs de AD : construction des r` egles d’Oracle
La construction des r`egles d’Oracle se fait en cinq ´etapes. Nous d´etaillerons les ´etapes 4. et 5. dans les sous-sections 8.5.4 et 8.5.3.iv. 8.5.3.i
Construction des r` egles agr´ eg´ ees.
` partir de ces r`egles, noud construisons les r`egles agr´eg´ees. Les messages attendus jusqu’`a A l’´etape i sont concat´en´es pour former le message attendu de la i-r`egle agr´eg´ee. Ce message est ensuite analys´e en fonction des connaissances du rˆole `a l’´etape i de mani`ere similaire `a celle d´ecrite ` la diff´erence de la dans le chapitre 5. De mˆeme, le message envoy´e en r´eponse est analys´e. A construction pr´esent´ee dans le chapitre 5, les termes qui ne peuvent pas ˆetre compl`etement analys´es ne sont pas remplac´es par des variables. Toutes les positions de ces termes correspondant `a des variables du protocole sont remplac´ees de mani`ere unique par une nouvelle variable. Par exemple, s s un rˆole devant recevoir les messages {hN a, N ai}K et {N a}K et ne connaissant pas K filtrera les s s messages attendus avec les termes {hxN a,1 , xN a,2 i}xK,1 et {xN a,3 }xK,2 . Cette construction permet d’obtenir des r`egles agr´eg´ees l → r telles que : Var(r) ⊆ Var(l) 8.5.3.ii
Construction de r` egles ´ etendues.
` partir des r`egles agr´eg´ees, construction de r`egles ´etendues de la forme : A G:l→r La signification informelle des diff´erents champs est la suivante : – G contient les termes witness et request correspondant `a chaque r`egle. Seuls les termes witness seront finalement utilis´es dans les r`egles d’Oracle, mais les termes request servent `a connaˆıtre si un message a d´ej` a ´et´e re¸cu ou non par un acteur ; – l → r est initialement une r`egle agr´eg´ee d’acteur. Notons C les connaissances initiales de l’intrus. 8.5.3.iii
Phase de d´ ecomposition.
Toutes les d´ecompositions possibles de l et de r sont pr´e-calcul´ees. Ce pr´e-calcul est possible car une variable ne pourra ˆetre ensuite instanci´ee que par une constante. Le nombre de d´ecompositions possibles est donc born´e par le nombre de sous-termes (avec multiplicit´e). Ce calcul sert `a assurer que les r`egles l → r g´en´er´ees n’auront ` a ˆetre d´ecompos´ees ni `a droite, ni `a gauche. 8.5.3.iv
Calcul des r` egles d’Oracle.
Les r`egles d’Oracle sont ensuite calcul´ees `a partir des r`egles d´ecompos´ees. Ce calcul sert `a assurer qu’il sera inutile pour l’intrus, lors de la phase de recherche d’attaque, d’utiliser le r´esultat d’une r`egle d´ecompos´ee pour simplifier le membre gauche d’une autre r`egle. Un ordre sur les r`egles permet de ne garder que les plus avantageuses pour l’intrus. Par exemple, pour deux r`egles G : l → r et G0 : l0 → r0 , si r = r0 et G = G0 , alors si l ⊂ l0 , il est inutile de garder la r`egle G0 : l0 → r0 .
8.5. Implantation
155
8.5.4
Phase de d´ ecomposition
8.5.4.i
Explication de cette phase.
Dans le mod`ele th´eorique, lorsqu’une r`egle d’Oracle est appliqu´ee, les connaissances de l’intrus au moment de l’application sont enti`erement connues. Il est donc possible de savoir quels termes peuvent ˆetre d´ecompos´es, lesquels doivent se trouver dans les connaissances, etc. Dans le mod`ele implant´e, les connaissances de l’intrus sont ind´etermin´ees. Il faut donc choisir de mani`ere nons d´eterministe si un terme, {t1 }t2 par exemple, va ˆetre pr´esent dans les connaissances de l’intrus, ou s si l’intrus pourra, au moment de l’application de la r`egle, composer t1 et t2 , et donc {t1 }t2 . Initialement, ce qu’on sait sur l’´etat des connaissances de l’intrus au moment de l’application de la r`egle se r´esume ` a: – l’intrus connaˆıt encore toutes ses connaissances initiales ; – on peut supposer qu’il ne connaˆıt aucun secret, car sinon une erreur aurait d´ej`a ´et´e trouv´ee dans le protocole ; – il peut composer tous les termes du membre gauche de la r`egle. Dans la phase de d´ecomposition, nous allons utiliser ces trois propri´et´es, ainsi que les lemmes de normalisation de la sous-section 6.6.3 du chapitre 6 pour minimiser les choix non-d´eterministes. Par exemple, si on a choisi que l’intrus pouvait, au moment de l’application de la r`egle, composer p t2 et t2 −1 , alors il est inutile de garder, dans le membre gauche de la r`egle, le terme {t1 }t2 . Par le lemme 17 du chapitre 6, il suffit de garder le terme t1 . Inversement, s’il est possible d’assurer que le terme t2 ne sera pas connu au moment de l’application de la r`egle, il est inutile de d´ecomposer p {t1 }t2 . 8.5.4.ii
R` egles pour la d´ ecomposition
Les ensembles sur lesquels sont appliqu´ees les r`egles v´erifient certaines contraintes. Notons C les connaissances initiales de l’intrus, et S l’ensemble des termes devant rester secret. Afin d’all´eger les notations, nous disons qu’un ensemble E de termes clos est r´egulier si : – il contient les connaissances initiales de l’intrus au sens : C⊆E
Rproto
– il ne permet pas d’obtenir un secret : S∩E
Rproto
=∅
Soient E et F deux ensembles. Nous appelons : – Normg la composition des fonctions Simplif h , i , Simplif { }s et Simplif { }p d´efinies dans le chapitre 6, section 6.6.3 ; – et nous d´efinissons : N(E : F ) = Norm(E ∪ F ) \ Norm(E) Norm(l → r) = N(C : l) → N(C : r) Proposition 53 Soit E un ensemble r´egulier, l → r une r`egle agr´eg´ee, σ une substitution et : l0 → r0 = Norm(l → r) Sous ces conditions : 1. l0 σ ⊆ E
Rproto
si, et seulement si, lσ ⊆ E
Rproto
;
2. si l’une des inclusions du premier point est vraie, alors E ∪ rσ
Rproto
= E ∪ r0 σ
Rproto
Rproto
Rproto
Preuve. Commen¸cons par montrer le premier point. E est r´egulier, donc E = E∪C . Rproto Rproto On a donc F ∪ C ⊆ E si, et seulement si, F ⊆ E . Donc il suffit de montrer que pour tout
156
Chapitre 8. Cas non-born´e
ensemble de terme l, on a : lσ ⊆ E Rproto 15 et 17, et par C ⊆ E , on a :
Rproto
C ∪ lσ
si, et seulement si, N(l)σ ⊆ E
Rproto
= C ∪ N(l)σ
Rproto
Rproto
. Par les lemmes 11,
Rproto
Rproto
Rproto
On a donc C ∪ lσ ⊆ C ∪ N(l)σ , et donc C ∪ N(l)σ ⊆ E implique C ∪ lσ ⊆ E . L’autre implication est montr´ee en suivant le mˆeme raisonnement. Montrons maintenant le second point. Par construction et par les lemmes 11, 15 et 17 : C ∪ rσ
Rproto
= C ∪ r0 σ
Rproto
Donc l’hypoth`ese E r´egulier et le premier point entraˆınent le second point.
Les r`egles agr´eg´ees sont d’abord mises en forme normale par application de la fonction N( ), puis d´ecompos´ees au moyen du syst`eme d’inf´erence suivant : – d´ecomposition dans le membre gauche : G : f (t1 , t2 ), l → r Rproto =∅ G : Norm(t1 , t2 , l → r) si S ∩ t1 , t2 , l – d´ecomposition dans le membre droit : G : l → f (t1 , t2 ), r Rproto =∅ G : Norm(Cond(f (t1 , t2 )), l → r, f (t1 , t2 ), t1 ) si S ∩ Cond(f (t1 , t2 )), l Toutes les d´ecompositions possibles sont test´ees. Pour assurer la terminaison, la d´ecomposition dans le membre droit n’est pas appliqu´ee plusieurs fois sur le mˆeme terme. Si Lagg est l’ensemble des r`egles agr´eg´ees apr`es normalisation, nous notons L0dec l’ensemble des r`egles que ce syst`eme permet d’engendrer ` a partir de Lagg . L’ensemble Ldec des r`egles d´ecompos´ees est d´efini `a partir de L0dec de la mani`ere suivante : Ldec =
n [
[
{G : l → ri }
G:l→r1 ,...,rn ∈L0dec i=1
8.5.5
Calcul des r` egles d’Oracle
Le r´esultat d’une r`egle de Ldec peut ˆetre utilis´e soit pour simplifier le membre gauche d’une autre r`egle de Ldec , soit pour r´esoudre les contraintes r´esultant de l’interaction entre l’intrus et les acteurs ex´ecutant un nombre born´e de sessions. En consid´erant par exemple une r`egle d´ecompos´ee : s
s
∅ : {hx1 , Nai}K → {hNa, Nai}K il est facile de voir que le premier cas peut entraˆıner une boucle. Le but du calcul que nous pr´esentons maintenant est d’´eliminer ce cas en pr´e-calculant les interactions possibles entre le membre gauche d’une r`egle et son membre droit. Soit E un ensemble clos, et G1 : l1 → r1 et G2 : l2 → r2 deux r`egles d´ecompos´ees. Nous consid´erons les transitions : E →l1 σ1 →r1 σ1 E, r1 σ1 →LDY . . . →LDY F →l2 σ2 →r2 σ2 F, r2 σ LDY
. L’application de la deuxi`eme r`egle implique alors que r1 σ est et supposons que l2 σ2 6⊆ E utilis´e pour d´ecomposer E ou pour composer lσ. Supposons qu’on ne soit pas dans le premier cas. L’application des r`egles d’inf´erences entraˆıne qu’il existe deux r`egles d´ecompos´ees l10 → r10 et l20 → r20 avec : Rproto – l10 σ1 ⊆ E ; – E ∪ {r1 σ, r2 σ2 }
Rproto
Rproto
= E ∪ {r10 σ, r20 σ2 }
;
8.5. Implantation
157
– et surtout : r10 σ1 ∩ l20 σ2 6= ∅ Nous allons maintenant combiner les r`egles d´ecompos´ees pour obtenir des r`egles d’Oracle pour lesquelles nous pouvons assurer qu’il n’est pas n´ecessaire d’utiliser le membre droit d’une r`egle d’Oracle pour simplifier le membre gauche d’une autre r`egle. La r`egle de combinaison est la suivante : G0 : l 0 → r 0 G : l ∪ {t} → r si σ = mgu(r0 , t) 0 Uni(G, G ) : N ([l, l0 → r]σ) La partie Uni(G, G0 ) est d´efinie de la mani`ere suivante pour des ´ev´enements e. Soit E l’ensemble des ´ev´enements e tels que – witness(e) est dans G0 ; – request(e) est dans G. Nous d´efinissons alors : Uni(G, G0 )
= {request(e) | request(e) ∈ G ∪ G0 } ∪ {witness(e) | e ∈ / E et witness(e) ∈ G0 } ∪ {witness(e) | witness(e) ∈ G}
La r`egle de combinaison permet d’engendrer un nombre infini de r`egles d’Oracle. Afin d’assurer la terminaison, nous ordonnons les r`egles cr´e´ees par un ordre
8.5.6
Combinaison des r` egles d’Oracle et de la strat´ egie de recherche d’attaque par r´ esolution de contraintes
Nous consid´erons des probl`emes de construction simultan´ee (Ei B ri )i∈{1,...,n} . Pour chaque r`egle d’Oracle G : l1 , . . . , lm → r construite, nous ajoutons une r`egle d’inf´erence : Oracle(r)
Cα , Ei B ri , Cβ σ = mgu(r, ri ) (Cα , Ei B l1 , . . . , Ei B lm , Cβ )σ
158
Chapitre 8. Cas non-born´e
applicable si Cα est un probl`eme de construction simultan´ee en par composition en forme r´esolue et si ri n’est pas issu du membre gauche d’une r`egle d’Oracle. La preuve de la terminaison de la recherche d’attaques par r´esolution de contraintes se fait de la mˆeme mani`ere avec ou sans r`egles d’Oracle en consid´erant celles-ci comme des r`egles de d´ecomposition. Seules des r`egles de composition peuvent ˆetre utilis´ees pour r´esoudre les contraintes introduites par les r`egles d’Oracle, ce qui assure la terminaison. Pour la compl´etude, il suffit de consid´erer une attaque dans laquelle un nombre minimal de r`egles agr´eg´ees sont utilis´ees.
8.6 8.6.1
R´ esultats exp´ erimentaux Outils
L’algorithme de construction des r`egles d’Oracle pr´esent´e dans la section 8.5 a ´et´e implant´e dans le compilateur de protocoles CasRul. L’outil de r´ef´erence pour l’utilisation du compilateur CasRul est le prouveur de th´eor`emes daTac. Ce programme a ´et´e d´evelopp´e par L. Vigneron et est d´ecrit dans [91, 102]. Il permet les preuves par r´efutation dans les th´eories associatives et commutatives en utilisant diff´erentes techniques, comme la r´esolution ou la paramodulation. Dans le cadre de l’analyse de protocoles, nous utilisons uniquement la r´esolution combin´ee avec des r`egles de simplification et de subsomption. La d´eduction modulo AC est le principal inconv´enient de cet outil, mais est aussi sa principale qualit´e. Inconv´enient, tout d’abord, car l’algorithme d’unification modulo AC est intrins`equement tr`es complexe [57], ce qui rend difficile une mise en œuvre efficace. Mais nous retiendrons surtout l’avantage de la d´eduction modulo AC. Elle permet d’interpr´eter les r`egles en sortie du compilateur CasRul dans le formalisme naturel de ces r`egles, et donc de ne pas changer la s´emantique entre la sortie du compilateur et l’analyse. Un autre avantage est qu’il est tr`es facile de d´evelopper de nouvelles strat´egies d’analyse de protocole. Actuellement, daTac est le seul outil prenant en compte les r`egles d’Oracle en sortie du compilateur CasRul.
8.6.2
Acc´ el´ eration pour la recherche d’attaques
8.6.2.i
Un exemple, le protocole d’´ echange de clefs Encrypted Key Exchange
Nous d´ecrivons d’abord la sp´ecification en LHNSP du protocole Encrypted Key Exchange, puis donnons les r`egles d’Oracle en sortie du compilateur CasRul, et enfin d´ecrivons pas `a pas la recherche d’attaque par daTac. Sp´ ecification en LHNSP. Nous commen¸cons par donner comme exemple l’´etude du protocole Encrypted Key Exchange, connu pour avoir une erreur d’authentification lorsque plusieurs sessions se d´eroulent concurremment [26]. La sp´ecification de ce protocole est donn´ee dans la figure 8.2. R` egles d’Oracle en sortie du compilateur. Le cas de ce protocole est tr`es simple, et il n’y a pas de composition possible entre les r`egles du rˆole B. Les deux r`egles en sortie du compilateur sont : s
p
s
i({xKa11}p ) ⇒ i({{re}xKa11 }p ) s
s
s
i({xN a22}re ) · i({xKa22}p ) · witness(a, b, N b, xN b22) ⇒ i({hxN a22, N bi}re ) La dur´ee totale de la phase de compilation est inf´erieure `a 0.01s. Trace de la recherche d’attaque. Nous notons a(seq) l’acteur a jouant un nombre born´e de sessions et a(seq) l’acteur a jouant un nombre non born´e de sessions. Nous allons suivre en parall`ele la recherche d’attaque incr´ementale par daTac et sa traduction en terme de probl`eme de construction simultan´ee. Dans la suite de r´esolutions menant `a la faille, la premi`ere r`egle appliqu´ee est celle d’envoi de message par a(seq) : a(seq) →
s
: {Ka}p
8.6. R´esultats exp´erimentaux
159
Encrypted Key Exchange ; A, B : Na, Nb : Ka : P, R :
; ; ; ;
A : B, P ; B : P; 1. 2. 3. 4. 5.
A B A B A
→ → → → →
B A B A B
: : : : :
{Ka}P {{R} Ka}P {Na} R {Na, Nb} R {Nb} R
B[A : b; B : a; P : p; Re : re] ; p, re ; A[A : a; B : b; P : p] ; divert, impersonate ; a, b ; A authenticates B on N a ; Fig. 8.2 – Sp´ecification du protocole Encrypted Key Exchange en LHNSP. Aucune contrainte ne repose sur les connaissances de l’intrus. La r`egle suivante est la r´eception du message de l’´etape 2. par a(seq) : a(seq) → → a(seq) a(seq) →
s
: {Ka}p s p : {{x1 }Ka }p s : {N a}x1
L’intrus doit maintenant composer un message de la forme {{x1 } Ka} p. Le probl`eme de construction simultan´ee est, ` a ce moment : s
s
p
a, b, {Ka}p B {{x1 }Ka }p
Dans daTac, la r´esolution suivante est l’application de la premi`ere r`egle d’Oracle. Dans le probl`eme de construction simultan´ee, cette inf´erence se traduit par l’application de la r`egle : Cα , Ei B ri , Cβ s p Oracle({{re}xKa11 }p )
p
s
(Cα , Ei B {xKa11}p , Cβ )σ
Le probl`eme de construction simultan´ee devient alors : s
s
a, b, {Ka}p B {Ka}p
et la suite de messages ´echang´es, telle que trouv´ee par daTac, est : a(seq) → → a(//) a(//) → → a(seq) a(seq) →
: : : : :
s
{Ka}p s {Ka}p s p {{re}Ka }p s p {{re}Ka }p s {N a}re
s
σ = mgu({{re}xKa11 }p , ri )
160
Chapitre 8. Cas non-born´e
Le protocole se poursuit jusqu’` a aboutir ` a la suite de messages : a(seq) → → a(//) a(//) → → a(seq) a(seq) → → a(//) a(//) → → a(seq) a(seq) →
: : : : : : : : :
s
{Ka}p s {Ka}p s p {{re}Ka }p s p {{re}Ka }p s {N a}re s {N a}re s {hN a, N bi}re s {hN a, N bi}re s {N b}re
` ce moment, l’acteur a(seq) ajoute un terme request(a, b, N b, B) `a l’´etat du protocole. Le seul A terme witness dans l’´etat est, ` a ce moment, le terme ajout´e lors de l’utilisation de la seconde r`egle d’Oracle, soit witness(a, b, N a, N a). La r`egle de simplification : request(x1 , x2 , x3 , x4 ) · witness(x2 , x1 , x3 , x4 ) ⇒ ∅ ne peut pas ˆetre appliqu´ee, donc le terme request(a, b, N b, B) n’est pas simplifi´e : il y a une attaque. En faisant une recherche en largeur dans l’ensemble des clauses pouvant ˆetre atteintes `a partir de la clause d´ecrivant l’´etat initial du protocole, daTac trouve l’erreur en quelques secondes, apr`es avoir explor´e 7 clauses. Il n’y a aucune heuristique de recherche d’attaque mise en œuvre autre que celles d´ecrites dans ce chapitre et celles du chapitre 6. 8.6.2.ii
R´ esultats obtenus
Parmi les protocoles de la table 6.3, nous avons repris dans la table 8.1 ceux dont les temps d’´etudes ´etaient les plus longs (sup´erieurs `a une minute) et dans les failles desquels des acteurs de plusieurs sessions sont impliqu´es.
Protocole
Attaque
Woo-Lam Π Woo-Lam Mutual Authentication Needham-Schroeder Public Key Kao Chow Repeated Authentication, 1 SPLICE/AS Authentication Protocol Denning Sacco Key Distribution with Public Key Encrypted Key Exchange Davis Swick Private Key Certificates, protocol 1 Davis Swick Private Key Certificates, protocol 2
Authentification Authentification interm´ediaire Re-jeu Re-jeu interm´ediaire Authentification Erreur de typage Erreur de typage
Temps (s) sans avec Oracle Oracle 20 0.5 1024 81 1230 234 77 1.5 352.42 AF 937 32 241 24 106 AF 348 AF
Tab. 8.1 – Comparaison des r´esultats avec et sans utilisation de d’acteurs pouvant participer `a un nombre non born´e de sessions.
Notes sur les exp´ eriences. – la version du protocole Needham-Schroeder Public Key test´ee est la version compl`ete dans laquelle un serveur de clefs intervient ; – l’erreur trouv´ee dans le protocole Woo-Lam Π est diff´erente de celle pr´esent´ee au chapitre 6. Il s’agit dans ce tableau d’une erreur de typage. Le temps mis pour l’´etude sans r`egle d’Oracle correspond au temps n´ecessaire pour trouver la mˆeme erreur ; – l’´etat initial pour l’´etude du protocole Encrypted Key Exchange n’est pas minimal. Il est possible de trouver une attaque en 6 s ;
8.6. R´esultats exp´erimentaux
8.6.3
161
V´ erification de protocoles
L’abstraction sur les nonces permet de v´erifier des protocoles dans le cadre restreint des tailles de messages born´es. Nous avons cherch´e `a v´erifier les protocoles d´ecrits par J. Clark et J. Jacob [26] et qui ne sont pas consid´er´es comme fautifs par G. Lowe [42]. 8.6.3.i
Description des tests
Nous avons recherch´e, pour les protocoles du tableau 8.2, s’ils ´etaient corrects lorsque des sessions impliquant des acteurs honnˆetes ´etaient consid´er´ees. Pour cela, nous prenons pour Aqcq une session dans laquelle chaque rˆole est instanci´e par un acteur honnˆete, et dupliquons cette session dans AD . Nous avons limit´e le nombre de sessions auxquelles pouvaient prendre part les acteurs de Aqcq ` a une seule. Cette restriction permet d’assurer la terminaison de la v´erification. Le temps donn´e dans le tableau 8.2 correspond au temps d’ex´ecution du syst`eme sur un Pentium IV `a 2.4 GHz sous Linux. Protocole Amended Needham-Schroeder Protocol Bilateral Key Exchange Carlsen’s Secret Key Initiator ISO 2 Pass Parallel Mutual Authentication ISO 4 pass ISO 5 pass ISO 2 pass Unilateral Authentication with Asymmetric keys ISO 3 pass Mutual Authentication with Asymmetric keys ISO 2 pass Unilateral Authentication with CCFs ISO 3 pass Mutual Authentication with CCFs ISO 2 pass Unilateral Authentication with Symmetric Keys ISO 3 pass Mutual Authentication with Symmetric keys Using Non-reversible Functions WooLam-pi (final) Yahalom
V´ erifi´ e NA oui non oui oui oui oui oui oui oui oui oui oui oui oui
Temps (s) 21 6 4 8 25 1 2 1 2 1 1 5 887 10
Tab. 8.2 – Protocoles v´erifi´es.
8.6.3.ii
Commentaires sur le tableau 8.2
Carlsen Secret Key Initiator Protocol. derniers messages ´echang´es : 1. 2.
Le probl`eme, dans ce protocole, r´eside dans les deux s
s
B → A : {Na, B , Kab}Kas , {Na}Kab , Nc s A → B : {Nc }Kab
Fig. 8.3 – Les deux derniers messages du protocole de Carlsen. L’intrus profite de la r´eutilisation des nonces d’une session sur l’autre pour cr´eer une fausse attaque en envoyant ` a B une valeur pour Na ´egale `a la valeur du nonce qu’envoie B `a l’avant-dernier s message. L’intrus peut alors r´epondre directement `a B en utilisant le sous-message {N a}Kab = s {N c}Kab . Amended Needham-Schroeder Protocol. Dans ce protocole, il existe un message qui est re¸cu par un rˆ ole et est renvoy´e sans analyse. Le probl`eme, dans le cas de ce protocole, est que contrairement au cas de protocole Π de Woo et Lam, le message inconnu est re¸cu chiffr´e et envoy´e en clair. Cela entraˆıne un manque d’information sur les parties de ce message que l’intrus connaˆıt ou, au contraire, ne parvient pas ` a d´ecomposer, et conduit a` la cr´eation d’un grand nombre de r`egles. Nous avons arrˆet´e le processus de v´erification `a ce stade.
162
8.6.3.iii
Chapitre 8. Cas non-born´e
Conclusion sur la v´ erification de protocoles
Nous consid´erons que la m´ethode d´evelopp´ee dans ce chapitre est un succ`es partiel pour ce qui est de la v´erification de protocoles. En comparaison de l’analyse faite par B. Donovan, G. Lowe et P. Norris [42], nous avons r´eussi ` a analyser avec succ`es 12 des 14 protocoles pour lesquels aucune attaque n’avait ´et´e trouv´ee5 . Parmi les deux derniers protocoles, la r´eponse erron´ee pour le protocole de Carlsen ne nous semble pas trop gˆenante car la trace de l’attaque trouv´ee peut ˆetre analys´ee. Mˆeme si ce processus est long, le fait de pouvoir ´ecarter d’embl´ee environ 85 % des protocoles nous semble justifier l’utilisation de notre m´ethode. Le cas du protocole Amended Needham-Schroeder Protocol est plus probl´ematique car il semble courant, pour des protocoles de commerce ´electronique, d’envoyer ` a un destinataire un message qu’il ne peut pas d´echiffrer et qu’il devra envoyer ` a une troisi`eme personne. L’analyse de ce type de protocole est pr´evue dans le cadre du projet AVISPA. Il nous semble que la technique pr´esent´ee devra ˆetre raffin´ee pour permettre l’analyse de ces protocoles « industriels ».
5 Le cas du protocole de Denning et Sacco ´ etant ` a part, une erreur, d´ ecrite dans le chapitre 6 et dans [25] ayant ´ et´ e trouv´ ee.
9
Bilan et Perspectives L’analyse des protocoles cryptographiques soul`eve trois grands probl`emes : – le probl`eme de la compilation, pour lequel nous cherchons `a donner une s´emantique op´erationnelle a une sp´ecification d´eclarative d’un protocole ; ` – le probl`eme de la recherche d’attaques, pour lequel nous cherchons `a ´eliminer le plus rapidement possible les protocoles mal sp´ecifi´es ; – et finalement le probl`eme de la v´erification, pour lequel nous recherchons si un protocole est correctement sp´ecifi´e et peut ˆetre utilis´e en pratique. Nous tentons de faire une synth`ese de nos contributions, d’en cerner les limites mais aussi de d´egager des pistes de travail, selon ces trois grands axes. Compilation. Sur le plan th´eorique, la mod´elisation de l’ex´ecution d’une instance d’un protocole par des syst`emes de r´e´ecriture ´etait acquise avant le d´ebut de notre travail. Les probl`emes d’ex´ecutabilit´e d’une sp´ecification et de gestion des connaissances ´etaient r´esolus dans le cas des op´erateurs libres. Nous avons ´etendu ces deux derniers r´esultats `a certains op´erateurs alg´ebriques. Il nous semble que les m´ethodes utilis´ees sont tr`es g´en´erales, et permettent une extension rapide `a tout op´erateur susceptible d’ˆetre utilis´e. Nous avons propos´e un mod`ele « prudent » des rˆoles : ceux-ci cherchent toujours ` a extraire le maximum d’information des connaissances qu’ils poss`edent et en v´erifient la coh´erence. Parmi les challenges encore ` a relever, l’un des plus importants nous semble ˆetre la prise en compte du coˆ ut des ressources d’une ex´ecution d’un protocole pour un rˆole. Le but est double. Tout d’abord, il doit nous permettre d’analyser la vuln´erabilit´e d’un protocole `a une attaque de type d´eni de service. Ensuite, une partie des protocoles cryptographiques en cours de d´eveloppement seront ` a terme implant´es dans des r´eseaux o` u les postes auront une faible puissance de calcul, des t´el´ephones portables, par exemple. Une direction d’´etude qui nous semble int´eressante serait de rechercher une repr´esentation des connaissances minimisant l’espace m´emoire utilis´e et/ou le temps de calcul pour la composition d’un message et telle qu’un protocole reste sˆ ur. Une autre possibilit´e, qui peut ˆetre explor´ee de conserve, est l’implantation automatique d’un protocole ` a partir de sa sp´ecification. Nous avons donn´e dans le chapitre 5 une repr´esentation des connaissances, des messages attendus et envoy´es par un rˆole. Enfin, et plus concr`etement, nous aurons `a implanter le processus de compilation dans les mois `a venir dans la nouvelle version du compilateur CasRul au sein du projet AVISPA. Nous aurons alors ` a montrer la correction de la compilation par rapport `a une s´emantique du langage de haut niveau donn´ee dans un langage proche de TLA. Recherche d’attaques. Nous consid´erons que le probl`eme de la recherche d’attaques dans le cas d’un intrus passif est en grande partie clos par le chapitre 4. Nous avons montr´e que ce probl`eme est polynomial pour toute combinaison des op´erateurs que nous avons consid´er´es dans ce document. De plus, pour ´etendre ce r´esultat ` a un syst`eme ayant en plus un op´erateur, il suffit de montrer que le syst`eme de r`egles de d´eductions pour cet op´erateur est canonique et que le probl`eme de l’existence d’une transition entre deux ensembles peut ˆetre r´esolu en temps polynomial. 163
164
Chapitre 9. Bilan et Perspectives
Le travail pr´esent´e sur la recherche d’attaques dans le cas d’un intrus actif peut ˆetre poursuivi selon deux directions. La premi`ere consiste `a proposer une implantation efficace des algorithmes de recherche d’attaques pr´esent´es dans le chapitre 7 ou, selon le point de vue, ´etendre l’algorithme pr´esent´e dans le chapitre 6 pour la prise en compte des op´erateurs alg´ebriques. La deuxi`eme direction consiste ` a rechercher un r´esultat de combinaison analogue `a celui que nous avons donn´e pour le cas clos. V´ erification. Nous avons montr´e dans le chapitre 8 que le probl`eme de la v´erification ´etait de complexit´e exponentielle dans le cas o` u seuls des op´erateurs libres sont consid´er´es. Nous conjecturons que ce r´esultat s’´etend verbatim ` a toute signature r´eguli`ere et permettant le remplacement. Les r´esultats de l’agorithme de calcul des r`egles d’Oracle pr´esent´e nous semblent tr`es encourageants. La principale difficult´e est de r´eussir `a ´eliminer le plus de r`egles redondantes possibles tout en gardant un syst`eme correct pour la v´erification de protocoles. Nous avons d´ej`a progress´e par rapport ` a l’algorithme pr´esent´e dans [25], mais avant de nous attaquer `a des protocoles plus complexes, il nous faudra notamment r´eussir `a mieux prendre en compte les cas o` u des donn´ees sont transmises sans ˆetre analys´ees.
Bibliographie [1] R. Amadio and D. Lugiez. On the reachability problem in cryptographic protocols. In CONCUR00, number 1877 in LNCS. Springer, 2000. Also available as INRIA Research Report 3915, Marseille (France) (2000). [2] R. Amadio, D. Lugiez, and V. Vanack`ere. On the symbolic reduction of processes with cryptographic functions. TCS, 1(290) :695–740, 2003. Also available as Technical Report 4147, INRIA, March 2001. [3] A. Armando, D. Basin, M. Bouallagui, Y. Chevalier, L. Compagna, S. M¨odersheim, M. Rusinowitch, M. Turuani, L. Vigano, and L. Vigneron. The AVISS Security Protocol Analysis Tool. In 14th International Conference on Computer Aided Verification, CAV’2002, LNCS 2404, pages 349–353, Copenhaguen (Denmark), 2002. Springer. [4] J. Audun. Security Protocol Verification using SPIN, 1995. [5] F. Baader and W. Snyder. Handbook of Automated Reasoning, chapter Chapter 8 : Unification Theory. Springer, 1999. [6] D. Basin, S. M¨ odersheim, and L. Vigan`o. An On-The-Fly Model-Checker for Security Protocol Analysis. In Proceedings of the 8th European Symposium On Research In Computer Security (ESORICS’03), LNCS. springer, 2003. (To appear). [7] G. Bella, F. Massacci, and L. Paulson. The Verification of an Industrial Payment Protocol : The SET Purchase Phase. In Proceedings of the 9th ACM Conference on Computer and Communications Security, pages 12–20. ACM Press, 2002. [8] G. Bella, F. Massacci, and L. Paulson. Verifying the SET Registration Protocols. IEEE Journal on Selected Areas in Communications, 1(21) :77–87, 2003. [9] G. Bella, F. Massacci, L. Paulson, and P. Tramontano. Formal Verification of Cardholder Registration in SET. In Proceedings of the Sixth European Symposium on Research in Computer Security (ESORICS), LNCS 1895, pages 159–174. Springer, 2000. [10] B. Blanchet. An Efficient Cryptographic Protocol Verifier Based on Prolog Rules. In Proceedings of the 14th IEEE Computer Security Foundations Workshop (CSFW-14), pages 82–96. IEEE Computer Society, june 2001. [11] B. Blanchet. From Secrecy to Authenticity in Security Protocols. Lecture Notes on Computer Science, 2477 :342–359, September 2002. [12] B. Blanchet and A. Podelski. Verification of Cryptographic Protocols : Tagging Enforces Termination. Lecture Notes on Computer Science, 2620 :136–152, April 2003. [13] M. Boreale. Symbolic analysis of cryptographic protocols in the spi-calculus. In Fernando Orejas, Paul G. Spirakis, and Jan van Leeuwen, editors, Proceedings of the 28th International Colloqium on Automata, Languages and Programming, volume 2076 of Lecture Notes in Computer Science. Springer, july 2001. [14] A. Bosselaers and B. Den Boer. Collisions for the Compression Function of MD-5. In Proceedings of EUROCRYPT ’93 : Workshop on the Theory and Application of Cryptographic Techniques, volume 765 of LNCS. Springer, May 1993. [15] J. Bryans and S. Schneider. CSP, PVS, and a Recursive Authentication Protocol. In DIMACS Workshop on Design and Verification of Security Protocols, 1997. 165
166
Bibliographie
[16] J. Bull and D. Otway. The Authentication Protocol. Technical Report CIS3/PROJ/CORBA/ SC/1/CSM/436-04/03, Defense Research Agency (DRA), Feb 1997. [17] M. Burrows, M. Abadi, and R. Needham. A Logic of Authentication. ACM Transactions on Computer Systems, 8(1) :18–36, 1990. [18] K. M. Chandy and J. Misra. Parallel Program Design. Addison-Wesley, 1988. [19] Y. Chevalier, R. Kuesters, M. Rusinowitch, and M. Turuani. An NP Decision Procedure for Protocol Insecurity with XOR. In Proceedings of the Logic In Computer Science Conference LICS’03, June 2003. Long version available as Technical Report RR-4697, INRIA, France. [20] Y. Chevalier, R. Kuesters, M. Rusinowitch, and M. Turuani. Deciding the Security of Protocols with Diffie-Hellman Exponentiation and Products in Exponents. In Proceedings of the Foundations of Software Technology and Theoretical Computer Science FSTTCS’03, December 2003. Long version soon available as Christian-Albrecht Universit¨at IFI-Report 0305, Kiel (Germany). [21] Y. Chevalier, R. Kuesters, M. Rusinowitch, and M. Turuani. Deciding the Security of Protocols with Diffie-Hellman Exponentiation and Products in Exponents. Technical Report IFI-Report 0305, Christian-Albrecht Universit¨at, Kiel (Germany), Apr 2003. [22] Y. Chevalier, R. Kuesters, M. Rusinowitch, and M. Turuani. Extending the Dolev-Yao Intruder for Analyzing an Unbounded Number of Sessions. In Proceedings of the Computer Science Logic Conference CSL’03, August 2003. Long version soon available as Technical Report RR-4869, INRIA, France. [23] Y. Chevalier and L. Vigneron. A Tool for Lazy Verification of Security Protocols. In Proceedings of the Automated Software Engineering Conference (ASE’01). IEEE Computer Society Press, 2001. Long version available as INRIA Research Report RR-4368, January 2002. [24] Y. Chevalier and L. Vigneron. Towards Efficient Automated Verification of Security Protocols. In Proceedings of the Verification Workshop (VERIFY’01) (in connection with IJCAR’01), Universit` a degli studi di Siena, TR DII 08/01, pages 19–33, June 2001. [25] Y. Chevalier and L. Vigneron. Automated Unbounded Verification of Security Protocols. In 14th International Conference on Computer Aided Verification, CAV’2002, LNCS 2404, pages 324–337, Copenhaguen (Denmark), 2002. Springer. Long version available as INRIA Research Report 4369, January 2002. [26] J. Clark and J. Jacob. A Survey of Authentication Protocol Literature : Version 1.0, 17. Nov. 1997. http://www.cs.york.ac.uk/~jac/papers/drareview.ps.gz. [27] H. Comon-Lundh and V. Cortier. Security properties : two agents are sufficient. In In Proc. 12th European Symposium on Programming (ESOP’2003), volume 2618 of Lecture Notes in Computer Science, pages 99–113. Springer, Apr 2003. [28] H. Comon-Lundh and V. Shmatikov. Intruder deductions, constraint solving and insecurity decision in presence of exclusive or. In Proceedings of The Symposium on Logic in Computer science (LICS’03) Conference. IEEE, June 2003. [29] R. Corin and S. Etalle. An Improved Constraint-Based System for the Verification of Security Protocols. In M. V. Hermenegildo and G. Puebla, editors, 9th Int. Static Analysis Symposium (SAS), LNCS 2477, pages 326–341, Madrid (Spain), 2002. Springer. ´ [30] V. Cortier. V´erification automatique des protocoles cryptographiques. PhD thesis, Ecole Normale Sup´erieure de Cachan, march 2003. http://www.lsv.ens-cachan.fr/~cortier. [31] Z. Dang and R. Kemmerer. Using the ASTRAL Model Checker for Cryptographic Protocol Analysis. In Proceedings of the DIMACS Workshop on Design and Formal Verification of Security Protocols, September 1997. [32] Centre National de Transfert de Donn´ees Sociales. Structure du num´ero de s´ecurit´e sociale. http://www.dads.cnav.fr/tds/Stru0103.htm. [33] M. Debbabi, M. Mejri, M. Tawbi, and I. Yahmadi. Formal Automatic Verification of Authentication Cryptographic Protocols. In Proceedings of the First IEEE International Conference on Formal Engineering Methods, ICFEM’97, November 1997.
167
[34] G. Denker. Design of a CIL connector to Maude. In H. Veith, N. Heintze, and E. Clarke, editors, Workshop on Formal Methods and Comuter Security. Carnegie Mellon University, July 2000. [35] G. Denker and J. Millen. CAPSL and CIL language design. Technical Report SRI-CSL-99-02, SRI International Computer Science Laboratory, 1999. [36] G. Denker and J. Millen. CAPSL Intermediate Language. In N. Heintze and E. Clarke, editors, Proceedings of Workshop on Formal Methods and Security Protocols (FMSP’99). Available at http://cm.bell-labs.com/cm/cs/who/nch/fmsp99/. URL for CAPSL and CIL : http://www.csl.sri.com/$\sim$millen/capsl/,, 1999. [37] G. Denker and J. Millen. CAPSL and MuCAPSL. Journal of Telecommunications and Information Technology, 4 :16–27, 2002. [38] G. Denker, J. Millen, and H. Ruess. The CAPSL integrated protocol environment. Technical Report SRI-CSL-2000-02, SRI International, 2000. [39] D. Denning and G. Sacco. Timestamps in Key Distribution Protocols. Communications of the ACM, 24(8), August 1981. [40] W. Diffie and M. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, IT-22(6) :644–654, 1976. [41] D. Dolev and A. Yao. On the Security of Public Key Protocols. IEEE Transactions on Information Theory, 29(2) :198–208, march 1983. [42] B. Donovan, G. Lowe, and P. Norris. Analyzing a Library of Security Protocols using Casper and FDR. In Proceedings of the Workshop on Formal Methods and Security Protocols, 1999. [43] A. Durante, R. Focardi, and R. Gorrieri. CVS : A compiler for the analysis of cryptographic protocols. In Proceedings of the 12th Computer Security Foundations Workshop. IEEE Computer Society Press, 1999. [44] A. Durante, R. Focardi, and R. Gorrieri. A Compiler for Analysing Cryptographic Protocols Using Non-Interference. ACM Transactions on Software Engineering and Methodology, 9(4) :489–530, 2000. [45] N. Durgin, P. Lincoln, J. Mitchell, and A. Scedrov. Undecidability of bounded security protocols. In N. Heintze and E. Clarke, editors, Proceedings of the FLOC’99 Workshop on Formal Methods and Security Protocols (FMSP’99), Trento, Italy, July 1999. Available at http://www.cs.bell-labs.com/who/nch/fmsp99/program.html. [46] C. Dwork, P. Kanellakis, and J. Mitchell. On the Sequential Nature of Unification. Journal of Logic Programming, 1 :35–50, 1984. [47] T. El-Gamal. A Public-Key Cryptosystem and a Signature Scheme based on Discrete Logarithms. IEEE transactions on Information Theory, IT-31(4) :469–472, 1985. [48] S. Even and O. Goldreich. On the Security of Multi-party Ping-pong Protocols. In 24th IEEE Symposium on Foundations of Computer Science, 1983. [49] M. Fiore and M. Abadi. Computing Symbolic Models for Verifying Cryptographic Protocols. In 14th IEEE Computer Security Foundations Workshop, pages 160–173. IEEE Computer Society, 2001. [50] R. Focardi and F. Martinelli. A Uniform Approach for the Definition of Security Properties. In World Congress on Formal Methods (1), pages 794–813, 1999. [51] T. Genet and F. Klay. Rewriting for Cryptographic Protocol Verification. In 17th International Conference on Automated Deduction, LNCS 1831, pages 271–290, Pittsburgh (PA, USA), 2000. Springer. [52] L. Gong. Enclaves : Enabling Secure Collaboration over the Internet. IEEE J. of Selected Areas in Communications, 15(3) :567–575, April 1997. [53] J. Goubault-Larrecq. A Method for Automatic Cryptographic Protocol Verification. In Proc. 15 IPDPS 2000 Workshops, Cancun, Mexico, LNCS 1800, pages 977–984. Springer, 2000. [54] J. Heather, G. Lowe, and S. Schneider. How to Prevent Type Flaw Attacks on Security Protocols. In 13th IEEE Computer Security Foundations Workshop, pages 255–268. IEEE Computer Society, 2000.
168
Bibliographie
[55] N. Heintze and J. Tygar. A Model for Secure Protocols and Their Compositions. IEEE Transactions on Software Engineering, 22(1) :16–30, January 1996. [56] F. Jacquemard, M. Rusinowitch, and L. Vigneron. Compiling and Verifying Security Protocols. In M. Parigot and A. Voronkov, editors, Proceedings of LPAR 2000, LNCS 1955, pages 131–160. Springer-Verlag, Heidelberg, 2000. [57] D. Kapur and P. Narendran. Double-Exponential Complexity of Computing a Complete Set of AC-Unifiers. In Proceedings of the Seventh Symposium on Logic in Computer Science (LICS’92), pages 11–21, Santa Cruz, CA, 1992. [58] D. Kozen. On the Complexity of Finitely Presented Algebras. In Proc. 9th Ann. ACM Symposium Theory Computation, pages 164–177, 1977. [59] Y. Lakhnech L. Bozga and M. Perin. Pattern-based Abstraction for verifying Secrecy in Protocols. In H. Garavel and J. Hatcliff, editors, Proceedings of the 9th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, volume 2619 of Lecture Notes in Computer Science. Springer, april 2003. [60] M. Layouni, J. Hooman, , and S. Tahar. On the Correctness of an Intrusion-Tolerant Group Communication Protocol. In Proceedings of the 12th Advanced Research Working Conference on Correct Hardware Design and Verification Methods (CHARME’03). Springer, October 2003. [61] G. Lowe. Breaking and fixing the Needham-Schroeder public-key protocol using FDR. In T. Margaria and B. Steffen, editors, Proceedings of TACAS’96, LNCS 1055, pages 147–166. Springer, Berlin, 1996. [62] G. Lowe. A Hierarchy of Authentication Specifications. In Proceedings of the IEEE Symposium on Security and Privacy, pages 31–43, 1997. [63] G. Lowe. Casper : a Compiler for the Analysis of Security Protocols. Journal of Computer Security, 6(1) :53–84, 1998. http://www.mcs.le.ac.uk/~gl7/Security/Casper/. [64] G. Lowe. Towards a Completeness Result for Model Checking of Security Protocols. In 11th IEEE Computer Security Foundations Workshop, pages 96–105. IEEE Computer Society, 1998. [65] A. Martelli and U. Montanari. An Efficient Unification Algorithm. ACM Journal of Language, 4(23) :733–742, October 1976. [66] D. McAllester. New Results on Local Inference Relations. In Proceedings of the 3rd International Conference on Principles of Knowledge Representation and Reasoning (KR’92), pages 403–412, 1992. [67] C. Meadows. Analyzing the Needham-Schroeder Public-Key Protocol : A Comparison of Two Approaches. In ESORICS : European Symposium on Research in Computer Security. LNCS 1146, Springer-Verlag, 1996. [68] C. Meadows. Language Generation and Verification in the NRL Protocol Analyzer. In 9th IEEE Computer Security Foundations Workshop, pages 48–61. IEEE Computer Society, 1996. [69] C. Meadows. The NRL Protocol Analyzer : an Overview. Journal of Logic Programming, 26(2) :113–131, 1996. [70] R. Merkle. Secure Communications Over Insecure Channels. Communications of the ACM, 21(4) :294–299, 1978. [71] R. Merkle and M. Hellman. Hiding and Signatures in Trapdoor Knapsacks. IEEE transactions on Information Theory, 24(5) :525–530, september 1978. [72] J. Millen. CAPSL : Common Authentication Protocol Specification Language. Technical Report MP 97B48, The MITRE Corporation, 1997. [73] J. Millen and V. Shmatikov. Constraint Solving for Bounded-process Cryptographic Protocol Analysis. In 8th ACM Conference on Computer and Communication Security, pages 166–175. ACM SIGSAC, 2001.
169
[74] J.C. Mitchell, M. Mitchell, and U. Stern. Automated Analysis of Cryptographic Protocols Using Murϕ. In Proceedings of IEEE Symposium on Security and Privacy, pages 141–153, 1997. [75] D. Monniaux. Abstracting Cryptographic Protocols with Tree Automata. In Sixth International Static Analysis Symposium (SAS’99), number 1694 in Lecture Notes in Computer Science, pages 149–163. Springer, 1999. [76] P. Narendran and C. Meadows. A Unification Algorithm for the Group Diffie-Hellman Protocol. In Proceedings of WITS’02, January 2002. [77] R. Needham and M. Schroeder. Using Encryption for Authentication in Large Networks of Computers. Communications of the ACM, 21(12) :993–998, December 1978. [78] R. Needham and M. Schroeder. Using Encryption for Authentication in Large Networks of Computers. Technical Report CSL-78-4, Xerox Palo Alto Research Center, Palo Alto, CA, USA, 1978. Reprinted June 1982. [79] L. Paulson. Verifying security protocols using isabelle. http://www.cl.cam.ac.uk/users/ lcp/papers/protocols.html. [80] L. Paulson. Isabelle : a generic theorem prover ; with contributions by T. Nipkow. LNCS 828. Springer, Berlin, 1994. [81] L. Paulson. Mechanized Proofs for a Recursive Authentication Protocol. In 10th Computer Security Foundations Workshop, pages 84–95. IEEE Computer Society Press, 1997. [82] L. Paulson. The Inductive Approach to Verifying Cryptographic Protocols. Journal of Computer Security, 6(1) :85–128, 1998. [83] L. Paulson. Inductive Analysis of the Internet Protocol TLS. ACM Transactions on Information and System Security, 2(3) :332–351, 1999. [84] L. Paulson. Proving Security Protocols Correct. In Proceedings of the IEEE Symposium on Logic in Computer Science, 1999. [85] W. Plandowski. On the Satisfiability Problem for Word Equations. Technical Report TUCSTR-304, Turku Center for Computer Science, 17, 1999. [86] W. Plandowski and W. Rytter. Application of Lempel-Ziv Encodings to the Solution of Word Equations. Lecture Notes in Computer Science, 1443 :731–742, 1998. [87] R. Rivest, A. Shamir, and L. Adleman. A Method for Obtaining Digital Signatures and Public Key Cryptosystems. Communications of the ACM, 21(2) :120–126, february 1978. [88] A. W. Roscoe. Modelling and Verifying Key-exchange Protocols using CSP and FDR. In 8th IEEE Computer Security Foundations Workshop, pages 98–107. IEEE Computer Society, 1995. [89] PKCS 1 : RSA Encryption 1.5. http://www.ietf.org/rfc/rfc2313.txt. [90] M. Rusinowitch and M. Turuani. Protocol Insecurity with Finite Number of Sessions is NPcomplete. In Proceedings of the 14th IEEE Computer Security Foundations Workshop. IEEE, 2001. [91] M. Rusinowitch and L. Vigneron. Automated Deduction with Associative-Commutative Operators. Applicable Algebra in Engineering, Communication and Computation, 6(1) :23– 56, 1995. [92] P. Ryan and S. Schneider. An Attack on a Recursive Authentication Protocol. Information Processing Letters 65, 1998. [93] P. Ryan, S. Schneider, M. Goldsmith, G. Lowe, and B. Roscoe. Modelling and Analysis of Security Protocols, 2001. [94] S. Schneider. Using CSP for Protocol Analysis : the Needham-Schroeder Public Key Protocol. Technical Report CSD-TR-96-14, Royal Holloway, 1996. [95] B. Schneier. Applied Cryptography. John Wiley & sons, New York, 1996. (Cryptographie Appliqu´ee, traduction par L Viennot).
170
Bibliographie
[96] A. Shamir. A Polynomial Time Algorithm for Breaking the Basic Merkle-Hellman Cryptosystem. In Proceedings of 23rd Symposium on Fondations Of Computer Science (FOCS), pages 145–152. IEEE, 1982. [97] R. Shostack. An Algorithm for Reasoning About Equality. Commmunications of the ACM, 21(7) :583–585, July 1978. [98] D. Song. Athena : a new Efficient Automatic Checker for Security Protocol Analysis. In 12th IEEE Computer Security Foundations Workshop, pages 192–202. IEEE Computer Society, 1999. [99] D. Song, S. Berezin, and A. Perrig. Athena, a Novel Approach to Efficient Automatic Security Protocol Analysis. Journal of Computer Security, 9((1,2)) :47–74, 2001. [100] S. Stoller. A Bound on Attacks on Payment Protocols. In Proccedings of the Symposium on Logic in Computer Science, pages 61–70, 2001. [101] P. Syverson, C. Meadows, and I. Cervesato. Dolev-Yao is no Better than Machiavelli. In Proceedings of WITS 2000, 2000. [102] L. Vigneron. Positive Deduction modulo Regular Theories. In H. Kleine-B¨ uning, editor, Proceedings of Computer Science Logic, LNCS 1092, pages 468–485. Springer-Verlag, 1995. URL : http://www.loria.fr/equipes/cassis/softwares/daTac/. [103] A. Yasinsac and W. Wulf. A Formal Semantics for Evaluating Cryptographic Protocols. Technical Report CS-93-53, U. Virginia, 1993.