• Aucun résultat trouvé

Automates d’arbres pour les protocoles r´ecursifs (K¨ usters)

3.4 Etat de l’art : r´esultats th´eoriques ´

3.4.1 Automates d’arbres pour les protocoles r´ecursifs (K¨ usters)

[60] introduit les automates d’arbres (TTAC) afin de mod´eliser la r´ecursion et permettre aux participants du groupe de construire des messages structur´es. Les automates d’arbres sont utilis´es dans ce mod`ele pour deux caract´eristiques. En effet, ils permettent tout d’abord l’application de tout un ensemble de r`egles de r´e´ecriture r´ecursivement `a un terme. En outre, Ils permettent de g´en´erer de nouvelles constantes. Dans ce qui suit, nous pr´esentons le mod`ele utilis´e ainsi qu’un r´esum´e des r´esultats obtenus et de quelques limites de ce mod`ele.

Mod`ele

Les messages dans ce mod`ele sont construites sur une signature contenant les op´erateurs classiques sans op´erateurs alg´ebriques. Plus pr´ecis´ement, la signature consid´er´ee comprend les variables, les constantes et les symboles de fonctions tels que la fonction de hachage, les paires,

3.4. ´Etat de l’art : r´esultats th´eoriques 53 les encryptions sym´etriques et asym´etriques. Les clefs utilis´ees sont des clefs atomiques. Cette signature est ´etendue par un ensemble non born´e de constantes appel´ees constantes anonymes. Cependant, ces constantes anonymes ne sont pas `a utiliser en position de clefs.

Protocole.

Un protocole est un tuple de famille finie de participants et un ensemble fini de connaissances initiales de l’intrus. Un participant est d´efini comme une s´equence finie d’actions r eceive-send. Une action receive-send n’est plus consid´er´ee comme une simple r`egle de r´e´ecriture mais elle est plutˆot repr´esent´ee par un automate d’arbre (transducer). La derni`ere action de ce transducer est une action de sortie de d´efit (challenge output action). L’utilisation de ce type d’actions permet de d´eterminer les secrets dynamiquement, d´ependant de l’ex´ecution du protocole. Ce cas est n´ecessaire par exemple en demandant `a l’intrus de d´eriver une clef de session g´en´er´ee par un serveur et qui est nouvelle pour chaque session du protocole. Ce cas est pr´esent pour l’exemple du protocole RA dans l’Exemple 3.4.1.1.

Exemple 3.4.1.1 le protocole RA, mod´elis´e dans [60].

Pour le protocole RA [23] impliquant trois participants A, B et C, le message re¸cu par le ser- veur S est sous la forme m = hKc(C, S, Nc, hKb(B, C, Nb, hKa(A, B, Na, −)))), expliqu´e en Sec-

tion 3.2. Le serveur doit manipuler r´ecursivement cette liste de requˆetes. Cette action r´ecursive du serveur est simul´ee par un transducer, dont les transitions sont sp´ecifi´ees comme suit :

start(∗, hKi(Pi, S, x0, x1)) −→ read(vN, hKi(Pi, S, x0, x1)) (1)

read(vR, hKi(Pi, Pj, x0, −) −→ {vR, Pj, x0}Ki (2)

read(vR, hKi(Pi, Pj, x0, hKl(Pl, Pi, x1, x2))) −→ read(vN, hKl(Pl, Pi, x1, x2)), (3)

{vR, Pj, x0}Ki,

{vN, Pl, x0}Ki

Dans cette sp´ecification, x0, x1 et x2 sont des variables. vN est une variable pour des constantes anonymes qui sert par exemple pour la r`egle (1) `a mod´eliser la g´en´eration d’une clef de session qui sera stock´ee dans cette variable. vR est une variable de registres qui sert `a stocker une clef de session en passant d’une requˆete `a une autre. Le transducer repr´esentant l’action du serveur admet deux ´etats : start et read. Dans l’´etat start, le transducer v´erifie si la premi`ere requˆete est destin´ee `a S et initialise le processus de lecture des requˆetes en g´en´erant une clef de session qui sera stock´ee dans le registre. Dans l’´etat read, les requˆetes sont trait´ees. Tout au long de cette phase, le registre (repr´esent´e par la variable vR) est utilis´e pour stocker une clef de session en passant d’une requˆete `a une autre.

Intrus et attaque.

L’intrus consid´er´e est celui de Dolev Yao. Cependant, dans leur mod`ele, au contraire des partici- pants, l’intrus ne peut pas g´en´erer de nouvelles constantes. Dans une attaque, l’intrus choisit un entrelacement entre les diff´erentes actions receive-send, mod´elis´ees par des TTACs (T0, .., Tl−1), tel que :

1. La derni`ere action Tl−1 est une action de sortie de d´efit (challenge output action). Elle d´etermine le message secret m′l−1 que l’intrus doit d´eriver `a partir de ses connaissances ml−1 acquises `a la fin de l’action Tl−1. Ce message secret est une constante r´eguli`ere ou anonyme. Il est pr´esent´e `a l’intrus comme un d´efit mais qui n’est pas ajout´e `a ses connaissances (m′l−1 n’est pas inclus dans ml−1).

54 Chapitre 3. V´erification de protocoles de groupe 2. L’intrus peut d´eriver l’entr´ee (m′i) de chaque action Ti `a partir des connaissances acquises

des actions pr´ec´edentes (mi). R´esum´e

[60] propose un algorithme de d´ecision pour la v´erification du secret pour les protocoles r´ecursifs dans le mod`ele de Dolev Yao. La preuve de d´ecidabilit´e du probl`eme de secret est effectu´ee en deux ´etapes.

Dans la premi`ere ´etape, l’intrus est simul´e par un TTAC appel´e Tder. Dans une deuxi`eme ´etape, supposons que les actions du protocole sont simul´ees par les TTACs T0,...,Tl−1, les at- taques sont d´ecrites par des compositions successives de TTACs de la forme Tder,Tl−1,...,T0,Tder (application de droite `a gauche). Tl−1 produit une paire (m, m′l−1) o`u m repr´esente l’ensemble des connaissances de l’intrus apr`es cette ´etape. Quant `a m′l−1, il repr´esente le d´efit que l’intrus essaye de d´eriver `a partir de m sans utiliser m′l−1. `A la derni`ere ´etape, Tder essaye de produire une paire ha, ai avec a soit une constante soit une constante anonyme.

Le probl`eme d’ins´ecurit´e du protocole (existence d’une attaque) est r´eduit `a un probl`eme nomm´e IteratedPreImage. Ce probl`eme consiste `a d´ecider, ´etant donn´e un terme t, un TTAC B et une s´equence T0, .., Tl−1, si t peut ˆetre d´eriv´e `a partir du langage reconnu par B en utilisant la s´equence des TTACs T0, .., Tl−1. Ce probl`eme a ´et´e prouv´e d´ecidable au d´ebut du papier [60]. Limites.

Le mod`ele introduit dans [60] admet quelques limites : – Les clefs consid´er´ees sont des clefs atomiques.

– Les r`egles sont lin´eaires `a gauche. Ceci ne permet pas d’avoir de tests d’´egalit´e. Or, plu- sieurs protocoles ne peuvent pas ˆetre mod´elis´es dans ce contexte. D’ailleurs, mˆeme le protocole consid´er´e comme exemple (RA), ne r´epond pas `a cette contrainte.

– La relaxation de ces contraintes, i.e. le test d’´egalit´e entre des messages arbitraires, ou l’ajout des op´erateurs alg´ebriques (exponentiation,..) ou le XOR, ou encore la manipulation des clefs compos´ees, conduit `a l’ind´ecidabilit´e.

Les r´esultats d’ind´ecidabilit´e dˆus `a la relaxation des contraintes ci-dessus sont prouv´es par r´eduction du probl`eme PCP (Post Correspondance Problem).