• Aucun résultat trouvé

4.6 Recherche d’attaques sur les protocoles de groupe

4.6.2 Donn´ees de la m´ethode

Notre m´ethode a pour objectif de rechercher d’´eventuelles attaques sur les protocoles de groupe. Comme tout protocole de communication, un protocole de groupe peut ˆetre vu comme un ´echange de messages entre diff´erents participants. Cet ´echange est g´en´eralement d´ecrit par un ensemble d’actions ex´ecut´ees par chacun des participants dans une ex´ecution normale du proto- cole. Nous d´esignons par ex´ecution normale du protocole une ex´ecution o`u l’intrus n’intervient pas. Nous commen¸cons donc par d´efinir le mod`ele de protocole( [101]) que nous suivons. Mod`ele du protocole

Nous d´efinissons dans cette section le mod`ele de protocole suivi, i.e. ce qu’on appelle un pas de protocole, un protocole, un ordre d’ex´ecution et une ex´ecution.

D´efinition 4.6.2.1 Pas de protocole.

Un pas de protocole est une paire de termes R et S, not´e R ⇒ S.

L’ex´ecution de ce pas de protocole par un participant A, modulo une substitution close σ d´ecrivant les connaissances de A avant le pas consid´er´e, se traduit par ces deux faits :

1. la r´eception par A d’un message t tel que ∃σ′ compatible avec σ, telle que t = Rσ′; 2. la r´eponse de A en envoyant le message Sσ′.

σ′ traduit la mise `a jour des connaissances de A suite `a l’acquisition de nouvelles connaissances `

a la r´eception de t.

Une fois qu’un pas de protocole est d´efini, nous pouvons alors d´efinir un protocole en r´eunissant un ensemble de pas de protocoles et des connaissances initiales de l’intrus :

D´efinition 4.6.2.2 Protocole.

Un protocole P est un triplet ({Rp⇒ Sp | p ∈ P}P, <P, CI0) avec,

– P un ensemble d’indices permettant d’identifier tous les pas de protocole ; – <P est un ordre partiel sur P ;

– Rp⇒ Sp est un pas de protocole. Parmi les messages utilis´es dans les pas d’un protocole, il existe deux messages fix´es qui sont Init et End qui sont utilis´es pour initier et fermer une session ;

– CI0 est un ensemble fini de messages repr´esentant l’ensemble de connaissances initiales de l’intrus.

et avec la condition suivante :

(C) : ∀p ∈ P, ∀ x ∈ V ar(Sp), ∃p′≤Pp tel que x ∈ V ar(Rp′)

4.6. Recherche d’attaques sur les protocoles de groupe 97 La condition C exprime que toute variable utilis´ee dans un envoi de message par un partici- pant A `a un pas p doit exister dans un message re¸cu d’un pas ant´erieur `a p et donc A connaˆıt sa valeur au moment de l’envoi. Intuitivement, un participant n’a pas le droit d’envoyer un message contenant une variable s’il ne connaˆıt pas sa valeur et donc s’il n’y a pas de pas pr´ec´edent o`u cette variable a ´et´e instanci´ee.

L’ordre partiel <P sert `a d´ecrire les diff´erents ordonnancements possibles entre les pas des participants. Le but de notre proc´edure de recherche d’attaques est de rechercher d’´eventuelles attaques pour n’importe quel comportement de participants. En effet, un participant est libre de choisir d’ex´ecuter un pas p avant un autre pas p′ `a condition que p′≮P p. Ainsi, quelque soit l’ordre des ex´ecutions de pas choisi par chacun des participants (`a condition de respecter l’ordre partiel du protocole), notre proc´edure doit chercher des ex´ecutions susceptibles de correspondre `

a des attaques. Nous d´efinissons donc dans ce qui suit la notion d’ordre d’ex´ecution et la notion d’ex´ecution.

D´efinition 4.6.2.3 Ordre d’ex´ecution.

Soit P = ({Rp ⇒ Sp|p ∈ P}P, <P, CI0) un protocole. Un ordre d’ex´ecution <e sur P de domaine P′ est un ordre total sur P′ ⊆ P compatible avec <P et stable par pr´ed´ecesseur, i.e. pour tous p1 ∈ P et p2 ∈ P′, si p1 <P p2 alors si p1 ∈ P′, p1<ep2.

Un ordre d’ex´ecution total <e correspondant `a une ex´ecution (totale) du protocole est un ordre total sur P compatible avec <P, i.e. si p1 <P p2 pour {p1, p2} ∈ P alors p1 <e p2. D´efinition 4.6.2.4 Ex´ecution.

Une ex´ecution d’un protocole P est un couple (π, σ) o`u π d´esigne un ordre d’ex´ecution et σ une substitution close sur V ar.

Retour `a l’exemple de Asokan Ginzboorg

Ayant test´e notre m´ethode sur diff´erents sc´enarii du protocole de Asokan Ginzboorg, nous avons trouv´e d’int´eressants r´esultats pour le cas de deux sessions parall`eles.

Ainsi, nous consid´erons dans ce paragraphe une mod´elisation du sc´enario trouv´e. Nous avons donc deux sessions ex´ecut´ees en parall`ele. Dans la premi`ere session, nous avons deux participants P1 et P2avec le participant P1 qui joue le rˆole de leader et le participant P2 qui joue le rˆole d’un membre normal du groupe. Dans la deuxi`eme session, nous avons toujours les deux participants P1 et P2 sauf que cette fois les rˆoles sont inter-chang´es, i.e., P1 est un membre normal et P2 est le leader.

Tout au long des exemples de ce chapitre, nous adoptons les notations suivantes :

– pasijkrepr´esente la j-i`eme ´etape du protocole jou´ee par le i-i`eme participant dans la k-i`eme session.

– Les termes ´ecrits en minuscules pr´esentent les informations qui sont connues par les par- ticipants englobant des connaissances initiales ou encore des informations acquises durant l’ex´ecution.

– Les termes ´ecrits en lettres majuscules repr´esentent les variables. Ils peuvent ˆetre instanci´es par n’importe quelle valeur `a condition qu’elle soit de mˆeme type.

– sij repr´esente la contribution `a la clef de groupe du i-i`eme participant dans la j-i`eme session.

98 Chapitre 4. D´etection de types d’attaques sur les protocoles de groupe Les deux sessions sont d´ecrites par les pas suivants :

pas111: Init −→ a1, {e1}p pas121: X1, {X2, X3}e1 −→ {X3, s11}X2 pas131: X1, {X3, h(X3, s11)}f (X3,s11) −→ End pas211: X4, {X5}p −→ a2, {r2, s21}X5 pas221: {X6, X7}r2 −→ a2, {s21, h(X6, X7)}f (X6,X7) pas212: Init −→ a2, {e2}p pas222: X8, {X9, X10}e2 −→ {X10, s22}X9 pas232: X8, {X10, h(X10, s22)}f (X10,s22) −→ End pas112: X11, {X12}p −→ a1, {r1, s12}X12 pas122: {X13, X14}r1 −→ a1, {s12, h(X13, X14)}f (X13,X14)

Dans la premi`ere session, P1 a comme vue de la clef de groupe Alg11 = f (X3, s11) et P2 a comme vue de la clef de groupe Alg21 = f (X6, X7). D’une mani`ere similaire, dans la deuxi`eme session, P1 a comme vue de la clef de groupe Alg12 = f (X13, X14) et P2 a comme vue de la clef de groupe Alg22 = f (X10, s22).

L’ensemble P = {pas111, pas121, pas131, pas211, pas221, pas212, pas222, pas232, pas112, pas122} des ´etapes est ordonn´e par l’ordre partiel <P suivant :

pas111<P pas121<P pas131 pas211<P pas221

pas212<P pas222<P pas232 pas112<P pas122.

Une mod´elisation du protocole dans le mod`ele de services `

A partir de l’ensemble de pas {R ⇒ S}P de diff´erents participants, nous mod´elisons le pro- tocole dans le mod`ele de services d´ecrit dans le chapitre 4 afin de construire l’ensemble de contraintes relatives `a la violation de la (des) propri´et´e(s) `a v´erifier. Dans cette mod´elisation, nous sp´ecifions pour chaque participant, les services utiles, les services contribuants, les connais- sances priv´ees ainsi que les connaissances partag´ees.

Puisque les r`egles formant ces pas contiennent des variables, les informations n´ecessaires pour la mod´elisation du protocole dans le mod`ele de services contiennent aussi des variables. Ces variables sont le sujet d’un ensemble de contraintes sp´ecifiant la violation de la ou des propri´et´es `a v´erifier. L’ensemble de contraintes est un syst`eme d’´equations mettant en relation les variables avec d’autres variables ou les variables avec des constantes. Nous notons SCP cet ensemble de contraintes qui mod´elisent la violation de la (des) propri´et´e(s).

Par exemple, si nous consid´erons la propri´et´e d’accord de clefs qui d´ecoule de la caract´eristique de d´eduction de la mˆeme clef de groupe d´ecrite en Section 4.3.3, cette propri´et´e est d´ecrite dans le mod`ele de services comme suit :

∀Pi, Pj | i 6= j Algi(Ki, ∪Pk∈PKik, Si) = Algj(Kj, ∪Pk∈PKjk, Sj).

En consid´erant la sp´ecification du protocole Asokan Ginzboorg, soient – Kil les connaissances priv´ees du participant Pi lors de la l-i`eme session,

4.6. Recherche d’attaques sur les protocoles de groupe 99 – Sil les services n´ecessaires du participant Pi lors de la l-i`eme session,

– Kijlles connaissances partag´ees entre les deux participants Pi et Pidurant le l `eme session, – Algil la vue de la clef de groupe du i-i`eme participant durant le l-i`eme session.

La mod´elisation de ces deux sessions dans le mod`ele de services donne le r´esultat suivant :

Pi Si Sci Ki ∪jKij

P1 X3, {e1}p, {X3, s11}X2, a1, e1, s11, h, f, p

{X13, X14}r1 {r2, s12}X12, {s12, h(X13, X14)}f (X13,X14) r1, s12

P2 {X6, X7}r2 {r1, s21}X7, {s21, h(X6, X7)}f (X6,X7) a2, r2, s21, h, f, p

X10 {e2}p, {X10, s22}X9, e2, s22

La propri´et´e d’accord de clefs pour chacune des sessions consid´er´ee est alors mod´elis´ees comme suit :

Alg11(K11, K121, S11) = Alg21(K21, K211, S21). et

Alg12(K12, K122, S12) = Alg22(K22, K212, S22). Ce qui se traduit par :

f (X3, s11) = f (X6, X7) et f (X13, X14) = f (X10, s22). ce qui donne : X3 = X6 et X7 = s11 et X13= X10et X14= s22.

La propri´et´e d’accord de clefs est alors viol´ee pour une des deux sessions de la sp´ecification donn´ee ci-dessus quand :

X36= X6 ou X7 6= s11 ou

X136= X10 ou X146= s22. Ainsi,

SCP = {X36= X6∨ X7 6= s11∨ X136= X10∨ X146= s22}