• Aucun résultat trouvé

V´erification des protocoles bien tagu´es avec clefs autonomes

Nous introduisons dans cette section une proc´edure de v´erification de protocoles cryptogra- phiques qui se base essentiellement sur le syst`eme de r`egles d’inf´erence d´efinies dans la Sec- tion 5.8.2 du Chapitre 5. Nous ´enoncerons ensuite le r´esultat de d´ecidabilit´e pour la classe de protocoles bien tagu´es avec clefs autonomes. Ce r´esultat est le fruit de diff´erents r´esultats in- term´ediaires qui seront aussi ´enonc´es dans cette section. Nous justifierons aussi le fait que notre mod`ele est une extension des mod`eles classiques de v´erification de protocoles grˆace `a un r´esultat de terminaison pour les protocoles sans indices et sans mpair pouvant g´en´erer ces indices.

´

Etant donn´e un ensemble R de r`egles d’inf´erence et une formule F , R(F ) est une clˆoture de F par R si elle est d´eriv´ee par un nombre fini d’applications des r`egles de R et aucune r`egle ne peut ˆetre appliqu´ee `a R(F ). Avant de pr´esenter notre proc´edure, nous introduisons quelques d´efinitions telles que celle de la clˆoture de l’environnement utilis´e dans l’algorithme de v´erification d´efinie par la D´efinition 6.2.0.3, la notion de niveau de variable d´efinie en D´efinition 6.2.0.4, ou encore la d´efinition de la fonction de normalisation (D´efinition 6.2.0.5).

Nous commen¸cons tout d’abord par la d´efinition d’une r´eduction de chaˆıne d’´egalit´es au sein de l’environnement E, ´etant donn´e un ensemble de variables d’indices quantifi´ees universellement Q. L’id´ee de cette clˆoture de l’environnement par des r`egles est d’utiliser une valeur (un terme) au lieu d’une variable lors du remplacement d’une autre variable. Cette clˆoture est d´efinie comme suit :

6.2. V´erification des protocoles bien tagu´es avec clefs autonomes 157 Notation 6.2.0.3 ⌈E⌉.

Nous notons ⌈E⌉ la clˆoture de l’environnement E par les r`egles suivantes : X = Y ∧ Y = u −→ X = u ∧ Y = u

Xi = Yi∧ Yj = u −→ ∃k′Xi = uδk

Q,i∧ Yj = u pour X, Y ∈ X ∪ XI, Xi, Yj ∈ XI, u /∈ X ∪ XI et k’ frais.

Ensuite, nous avons besoin d’une autre notion appel´ee niveau de variable. Cette notion est essentielle pour d´eceler les propri´et´es de notre syst`eme de contraintes qui seront utilis´ees ensuite pour les preuves de correction et compl´etude.

Cette notion de niveau de variable et autres est donn´ee par la D´efinition 6.2.0.4. D´efinition 6.2.0.4 Niveau de variable, niveau de vecteur de variable.

Supposons que P , Sec et S0 sont comme dans la D´efinition 5.4.4.2 et π un ordre d’ex´ecution correct pour le protocole, nous notons Ei = S0, S1, .., Si pour tout i ∈ 1..k. Soit A ∈ X ∪ XI. Alors, L(A) est le plus petit ensemble Ei pour i = 1 . . . k tel que A ≤ Ri+1. Nous ´etendons la notion de niveau au vecteur de variable de la mani`ere suivante : Soit −→X ∈−→X . Alors, L(−→X ) est le plus petit ensemble Ei pour i = 1 . . . k tel que ∃m ∈ I avec Ei= L(Xm).

Ensuite, nous d´efinissons la fonction de normalisation d’un syst`eme de contraintes S, not´e par S 7→ (S)y. La normalisation d’un syst`eme de contraintes peut ˆetre d´efinie comme ´etant les clˆotures successives du syst`eme de contraintes en utilisant diff´erents ensembles de r`egles parmi les r`egles d’inf´erence d´efinies dans la Section 5.8.2 du Chapitre 5. Cette normalisation proc`ede par deux phases principales s´epar´ees par une troisi`eme phase d’´etiquetage :

D´efinition 6.2.0.5 La fonction de normalisation.

Soit S un syst`eme de contraintes sous forme de blocs de contraintes. Nous d´esignons par SR l’ensemble de r`egles d’inf´erence except´e la R`egle [5.4]. Nous calculons les trois syst`emes de contraintes S1, S2 et S3.

Phase 1 : S1, la clˆoture de S par SR except´e les R`egles [5.26] et [5.27] ; Phase d’´etiquetage : S2, la clˆoture de S1 par les R`egles [5.4] et [5.5] uniquement ; Phase 2 : S3, la clˆoture de S2 par SR. Cette clˆoture est not´ee (S)

 y.

La phase d’´etiquetage ajoute des ´etiquettes pour cr´eer les contraintes maˆıtres (R`egle [5.4]), tout en s’assurant que nous favorisons toujours les contraintes d’´egalit´e `a celles de type F orgec (R`egle [5.5]). Bien que les phases 1 et 2 soient similaires vis `a vis des r`egles utilis´ees, leur at- titude diff`ere. En effet, pour une ´etape Ri ⇒ Si, la Phase 1 ne serait jamais utilis´ee pour un entrelacement de contraintes utilisant une contrainte maˆıtre M(−→X ) o`u L(X) = Ei−1. Ceci si- gnifie que, pendant la Phase 1, les variables ayant un niveau maximum (le niveau de variables actuel), ne peuvent pas encore ˆetre remplac´ees d’un bloc `a l’autre, pour la simple raison qu’au- cune contrainte maˆıtre n’a ´et´e d´eclar´ee pour ces variables. Cependant, pour la Phase 2, nous n’avons pas cette limitation puisque celle-ci est pr´ec´ed´ee de la phase d’´etiquetage et donc, mˆeme les variables du niveau courant ont des contraintes maˆıtres.

La normalisation du syst`eme de contrainte est utilis´ee dans notre proc´edure de v´erification. Cette proc´edure commence par choisir une ex´ecution possible du protocole qui est d´eduite du choix de l’ordre d’ex´ecution π. Elle teste `a la fin de l’ex´ecution si le secret Sec est d´erivable par l’intrus pour une certaine longueur e du mpair(, ). Pour ce faire, nous consid´erons l’ex´ecution choisie au d´epart en ayant comme dernier terme `a construire par l’intrus, le secret Sec. Le test

158 Chapitre 6. D´ecidabilit´e pour les protocoles param´etr´es bien tagu´es `a clefs autonomes de d´erivabilit´e du secret est alors ´equivalent au test de satisfaisabilit´e du syst`eme de contraintes normalis´e d´eduit `a la fin de cette ex´ecution. Pour obtenir ce syst`eme de contraintes normalis´e de l’ex´ecution consid´er´ee, nous commen¸cons par initialiser le syst`eme en le mettant `a vide. La normalisation du syst`eme de contrainte est effectu´ee ´etape par ´etape. Chaque contrainte ajout´ee `

a l’une de ces ´etapes est mise en conjonction avec le syst`eme de contraintes normalis´e d´eduit de la normalisation des contraintes des ´etapes pr´ec´edentes. Les contraintes sont ajout´ees selon l’ordre π. Pour chacune de ces ´etapes, nous supposons que les contraintes maˆıtres et sous-maˆıtres ont d´ej`a ´et´e calcul´ees. L’environnement utilis´e au cours de la normalisation est alors celui qui contient toutes les contraintes maˆıtres du syst`eme de contraintes. Puisque l’environnement d´epend aussi des blocs, pour chaque bloc du syst`eme de contraintes, l’environnement contient ´egalement les contraintes sous-maˆıtres du bloc en question `a l’exception des contraintes qui n’ajouterait pas d’informations utiles dans le cas de leurs utilisations, i.e. lors des remplacements des variables. Ces contraintes sont de la forme ”variable ´egale `a une autre variable”. Notons que, que ce soit pour les contraintes maˆıtres ou sous-maˆıtres, ces contraintes concernent uniquement des variables de niveau strictement inf´erieur au niveau courant (celui de l’´etape en cours de traitement). Toute cette proc´edure de v´erification de protocoles bien tagu´es avec clefs autonomes est d´efinie par l’Algorithme 6.2.

Algorithme 6.2 : Algorithme de v´erification des protocoles bien tagu´es avec clefs autonomes. Soit P = {R′ı⇒ S′

ı|ı ∈ J} un protocole bien tagu´e avec clefs autonomes, Sec ∈ T , et S0⊂ Tg. 1. Choisir un ordre d’ex´ecution π : J → 1..k.

2. Soit Ri , R′π−1(i) et Si , Sπ′−1(i) ∀i ∈ 1..k. Soit Rk+1 , Sec.

3. Soit CBS0 , ∀Q ∃R ⊤, avec Q = R = ∅, le syst`eme de contraintes initial. 4. Pour i de 1 `a k + 1 :

(a) Supposons que CBSi−1 , ∀Q∃R (B1, Ei−1,1) ∨ . . . ∨ (Bp, Ei−1,p) ; (b) Soit ctri , Ri ∈ F orge(S0, S1, .., Si−1, ∅) ;

(c) Soit Ei =S−→XM(CBSi−1,−→X ) et pour tout j = 1, ..p, X, Y ∈ X ∪ XI, Ei,j = ⌈Ei∪ SM(Bj, X )⌉\{(X = Y )} ;

(d) Soit CBSi , ( ∀Q∃R (B1∧ ctri, Ei,1) ∨ .. ∨ (Bp∧ ctri, Ei,p) )  y

5. Tester la satisfaisabilit´e de CBSk+1 (r´epondre protocole pas sur ssi satisfaisabilit´e).

Dans l’Algorithme 6.2, les ensembles Ei, Ei,j d´esignent respectivement l’ensemble des contraintes maˆıtres pour les vecteurs des variables et l’ensemble des contraintes sous-maˆıtres pour les va- riables du bloc Bj. Ces deux ensembles concernent des variables d’un niveau strictement inclus dans Ei−1(strictement inf´erieur au niveau de l’´etape courante). La notation ⊤ repr´esente la va- leur vrai. CBS0d´esigne le syst`eme de contraintes initial. CBSi d´esigne le syst`eme de contraintes correspondant `a toutes les ´etapes de 0 `a i. Finalement, ctri correspond `a la contrainte relative `

a l’´etape i de l’ex´ecution choisie.

Nous ´enon¸cons maintenant les r´esultats trouv´es pour cette proc´edure de v´erification. Tout d’abord, quand elle est appliqu´ee `a des protocoles sans indices et sans mpair pouvant g´en´erer des indices, notre proc´edure termine. Ce r´esultat justifie le fait que notre mod`ele est bel et bien une extension des mod`eles classiques tel que [89]. Ce r´esultat est ´enonc´e en Proposition 6.2.0.6.

6.3. Quelques d´efinitions pour les preuves 159