• Aucun résultat trouvé

Formalisation des propri´et´es de s´ecurit´e

´ev´enements. On d´esigne par ´ev´enement toute op´eration capable de modifier l’un des constituants de l’´etat du syst`eme. Dans le cadre de protocoles de groupe, un ´ev´enement peut ˆetre vu comme un changement de la composition du groupe dˆu `a une op´eration d’ajout ou de suppression d’un membre du groupe, ou un changement de structure du groupe dˆu par exemple `a une mont´ee ou descente de classe ou une mise `a jour des donn´ees du groupe tel que l’expiration d’un d´elai (par exemple pour un rafraˆıchissement de cl´e). Dans le cadre de notre mod`ele, un ´ev´enement peut affecter l’ensemble des agents P (ajout ou ´elimination de participants), ou le sous-ensemble des connaissances priv´ees d’au moins un agent ou le sous-ensemble des connaissances partag´ees d’au moins un agent. Cette propri´et´e peut s’exprimer comme suit :

<P, K, S>τ −→event<P, K, S>τ ′ . si on a : (Pτ 6= Pτ′) ∨ (Pτ = Pτ′ ∧ ∃Pi∈ P, Kiτ 6= Kτ ′ i ) ∨ (Pτ = Pτ ′ ∧ ∃Pi, Pj ∈ P, Kijτ 6= Kτ ′ ij) . ce qui revient `a la condition suivante :

(Pτ 6= Pτ′) ∨ (Pτ = Pτ′∧ Kτ 6= Kτ′) .

Pour illustrer ces conditions, nous revenons `a nos petits exemples. Le changement de la composi- tion du groupe entraˆıne un changement de l’ensemble des participants et donc la composante P change. Le changement de la structure du groupe par des op´erations de type mont´ee ou descente de classe n’affecte pas l’ensemble des membres du groupe mais modifie les connaissances par- tag´ees du ou des agents concern´es. Par exemple, un membre qui monte une classe aura comme connaissances, en plus de ses connaissances courantes, des connaissances lui permettant de com- muniquer avec les membres de la classe `a laquelle il est affect´e. Une mise `a jour des donn´ees du groupe telle que le rafraˆıchissement de cl´es est un ´ev´enement qui modifie les connaissances priv´ees (comme par exemple le changement de nombre al´eatoire ri).

4.4

Formalisation des propri´et´es de s´ecurit´e

Nous avons pr´esent´e en Section 2.4 les propri´et´es de s´ecurit´e pour les protocoles d’´etablissement de clefs de groupe. Nous allons dans cette section nous int´eresser aux propri´et´es des protocoles d’accord de clefs et les classer selon leurs d´ependances ou ind´ependances vis `a vis du temps. Nous distinguons donc deux types de propri´et´es de s´ecurit´e : les propri´et´es ind´ependantes du temps et celles d´ependantes du temps. Pour pouvoir d´efinir les attaques, i.e, la non-v´erification des propri´et´es, nous avons besoin tout d’abord de mod´eliser l’intrus. Nous consid´erons l’intrus de Dolev-Yao, i.e. il a le contrˆole de tout le r´eseau. Les d´eductions de l’intrus sont repr´esent´ees par |=, d´efinie par la Table 4.1.

Concr`etement, dans un protocole d’´etablissement de clefs de groupe, un intrus est soit un participant non officiel du protocole et donc qui n’appartient pas au groupe, soit un participant officiel (ancien ou actuel membre du groupe) utilisant sa position avantageuse pour perp´etrer des actions malhonnˆetes. Dans ce type de protocoles, l’intrus peut essayer plusieurs strat´egies afin de nuire au fonctionnement du protocole. Il peut essayer de d´eduire la clef de session en utilisant les informations intercept´ees (intrus passif). Il peut aussi participer secr`etement `a un protocole initi´e par un participant avec un autre et influencer le d´eroulement du protocole en modifiant des messages afin de pouvoir d´eduire la clef de session. Il peut aussi initier une ou

90 Chapitre 4. D´etection de types d’attaques sur les protocoles de groupe plusieurs ex´ecutions du protocole et les combiner en entrela¸cant les messages d’un participant avec un autre afin de se faire passer pour un des membres du groupe. Il peut aussi tromper un participant en se faisant passer pour un autre membre avec qui il partage une clef. Dans notre mod`ele, les actions de l’intrus sont interpr´et´ees selon deux cas. Dans le premier cas, un intrus peut engendrer des actions laissant le syst`eme dans son ´etat stable telles que l’acc`es aux diff´erents services offerts (SPi∈PSci) ou l’interception ou la modification de messages ´echang´es.

Dans le deuxi`eme cas, l’intrus peut aussi engendrer des actions provoquant un changement d’´etat comme l’envoi d’un message d’initialisation de session de protocole.

4.4.1 Cas statique

Il s’agit des propri´et´es de s´ecurit´e li´ees `a un ´etat stable du syst`eme. Dans cette section, nous mod´elisons les propri´et´es des protocoles d’´echange de clefs de groupe qui sont ind´ependantes de temps, `a savoir les propri´et´es d’authentification implicite de clef, de secret de la clef du groupe, de confirmation de clef et d’int´egrit´e d´efinies en Section 2.4.1 du Chapitre 2.

Un protocole v´erifie la propri´et´e d’authentification implicite de la clef (IKA) d’apr`es la D´efinition 2.4.2.1 si, `a la fin de la session, chaque participant est assur´e qu’aucun ´el´ement externe ne peut acqu´erir sa vue de la clef de groupe.

Dans notre mod`ele d´efini dans la Section 4.3.2, la vue d’un participant Pi est repr´esent´ee par l’application de l’algorithme Algi ayant pour param`etres les informations n´ecessaires pour engendrer la clef du groupe (Ki∪ Si∪j Kij).

Un intrus (g´en´eralement not´e I) peut avoir une telle vue s’il peut la d´eduire grˆace aux diff´erentes informations qu’il poss`ede, `a savoir ses connaissances priv´ees, ses ´eventuelles connais- sances partag´ees avec les autres participants et les diff´erents services offerts par les participants du groupe (KI∪jKIj∪Pk∈P Sck).

La propri´et´e d’authentification implicite de la clef peut ˆetre alors d´efinie dans notre mod`ele comme suit :

Propri´et´e 1 (Authentification implicite de la clef ) La propri´et´e d’authentification impli- cite de la clef pour un participant Pi, diff´erent de l’intrus I, est exprim´ee comme suit :

KI∪jKIj∪Pk∈PSck 6|= Algi(Ki, ∪jKij, Si) .

Dans un ´etat du syst`eme, seuls les membres du groupe peuvent engendrer la clef partag´ee. Ceci est assur´e pour les protocoles satisfaisant la propri´et´e de secret de la clef de groupe d´efinie par la D´efinition 2.4.1.1. Un agent externe I peut violer cette propri´et´e en d´eduisant la clef du groupe `a partir de ses connaissances priv´ees, ses ´eventuelles connaissances partag´ees avec les autres participants et des connaissances acquises, i.e les diff´erents services offerts par les participants du groupe (KI∪j KIj∪Pk∈P Sck).

La propri´et´e de secret de la clef de groupe peut ˆetre alors d´efinie dans notre mod`ele comme suit :

Propri´et´e 2 (Secret de la clef ) La violation de la propri´et´e de secret de la clef de groupe est d´efinie par :

KI∪jKIj∪Pk∈PSck |= KG .

´

Etant donn´e que dans un contexte de groupe, chacun des participants a une vue de la clef du groupe qu’il d´eduit `a partir de ses informations y compris ses connaissances priv´ees, ses

4.4. Formalisation des propri´et´es de s´ecurit´e 91 connaissances partag´ees avec les autres participants du groupe et ses services utiles, la propri´et´e de secret de la clef du groupe peut alors ˆetre d´efinie comme suit :

∀Pi∈ P, KI∪jKIj∪Pk∈P Sck 6|= Algi(Ki, ∪jKij, Si) .

Il est `a noter que cette d´efinition est semblable `a celle de la propri´et´e 1 sauf qu’ici, le raisonnement se fait sur tous les membres le groupe (∀Pi∈ P ) au lieu de raisonner par rapport `a un seul ´el´ement (Pi) qui est le cas pour l’authentification.

Dans le contexte de protocoles d’accord de clefs de groupe, il existe une propri´et´e servant `a convaincre une partie du groupe que les autres membres arrivent `a engendrer la clef partag´ee : la confirmation de la clef (D´efinition 2.4.2.2).

Comme la seule possibilit´e pour un participant du groupe pour pouvoir engendrer la clef est d’avoir les services n´ecessaires, la confirmation de clef revient alors `a la confirmation de ces services.

Pour qu’un participant Pi confirme avoir engendr´e la clef, il doit communiquer `a chaque ´emetteur Pjd’un service utile s `a la g´en´eration de la clef de Pi, qu’il a bien re¸cu cette contribution s. Cette notion de confirmation deux `a deux peut ˆetre alors d´efinie comme suit :

Propri´et´e 3 (Confirmation de la clef ) En consid´erant les membres deux `a deux, un agent Pi confirme avoir re¸cu le service correspondant `a un agent Pj afin de l’utiliser pour la g´en´eration de sa vue de la clef de groupe si :

∃s ∈ Si|s ∈ Scj .

La confirmation de la clef de groupe peut ˆetre alors d´efinie par rapport `a tout le groupe en consid´erant chaque paire de participants de ce groupe.

La propri´et´e d’int´egrit´e, telle qu’elle est d´efinie dans la D´efinition 2.4.2.3, permet de v´erifier que tous les agents contribuent `a la clef de groupe et que toute partie ext´erieure au groupe ne doit pas participer `a la g´en´eration de la clef partag´ee.

La premi`ere condition est v´erifi´ee si l’ensemble des services Side chaque participant Pir´esulte des contributions de tous les autres participants du groupe. Il s’agit donc de la confirmation de la clef d´efinie par la Propri´et´e 3.

La deuxi`eme condition est v´erifi´ee si aucun ´el´ement de Si ne provient d’une partie ext´erieure au groupe. Sinon, il y aurait n´ecessairement un intrus qui a contribu´e aux services utiles de Pi et donc qui a contribu´e `a la g´en´eration de la vue de la clef du groupe de ce participant.

Propri´et´e 4 (Int´egrit´e) L’int´egrit´e de la clef est donc d´efinie, pour tous les membres du groupe, d’une part par la confirmation des services utiles pour engendrer la clef en consid´erant chaque paire possible de participants du groupe :

∀Pi, Pj ∈ P (i 6= j), ∃s ∈ Si|s ∈ Scj .

et d’autre part, par la correspondance des services :

∀Pi ∈ P, ∀s ∈ Si, ∃Pj ∈ P |s ∈ Scj .

Comme un intrus I pourrait ne participer qu’en partie `a la conception d’un service n´ecessaire pour un participant, la propri´et´e trait´ee exprime aussi qu’aucun sous-terme des services utiles ne peut appartenir aux connaissances de l’intrus :

92 Chapitre 4. D´etection de types d’attaques sur les protocoles de groupe

4.4.2 Cas dynamique

Certaines propri´et´es de s´ecurit´e ont un lien fort avec la notion de temps. L’une des plus importantes est l’ind´ependance de clefs de groupe d´efinie dans la D´efinition 2.4.3.8. Elle garantit qu’aucun sous-ensemble de clefs ne peut ˆetre utilis´e pour d´ecouvrir un autre sous-ensemble de clefs qui lui est disjoint. Il s’agit en fait de la combinaison de deux propri´et´es de s´ecurit´e : le secret futur d´efini par la D´efinition 2.4.3.6 et le secret pass´e d´efini par la D´efinition 2.4.3.7, tous les deux pr´esent´es en Section 2.4.3.

Secret futur La propri´et´e de secret futur garantit qu’un adversaire passif qui connaˆıt un cer- tain nombre d’anciennes clefs de groupe ne peut pas d´ecouvrir une clef de groupe plus r´ecente. Soit par exemple une s´equence de clefs de groupe {K0, . . . , Km}. La propri´et´e de secret fu- tur exprime que, connaissant un sous-ensemble {K0, K1, . . . , Ki}, un intrus passif ne peut pas d´ecouvrir une clef de groupe Kj telle que j > i.

Dans notre mod`ele, pour pouvoir d´efinir une telle propri´et´e, il est n´ecessaire de d´etailler encore plus la d´efinition de la propri´et´e de Secret de la clef de groupe. En effet, le secret d’une clef de groupe est relatif `a un instant bien pr´ecis correspondant `a l’´etat courant du groupe. Cette propri´et´e est donc la suivante : `a tout instant, il est impossible (du point de vue calcula- toire) `a l’intrus de d´ecouvrir la clef de groupe `a partir des informations de l’instant consid´er´e. Formellement, cette propri´et´e est d´efinie par :

∀τ ∈ T, KIτ∪Pj∈Pτ K τ Ij∪Pk∈Pτ S τ ck 6|= K τ G .

Nous pouvons maintenant d´efinir la propri´et´e de secret futur comme suit :

Propri´et´e 5 (Secret futur) La propri´et´e de secret futur est sp´ecifi´ee dans notre mod`ele ainsi : ∀τi, τj ∈ T, i < j, {KτG1, KGτ2, . . . , KτGi} 6|= KτGj .

avec, ∀k, l, τk< τl si k < l.

Cette d´efinition de la propri´et´e de secret futur peut ˆetre encore raffin´ee, en d´ecrivant les attaques qui peuvent ˆetre d´etect´ees. Nous d´efinissons deux variantes selon l’information connue conduisant `a l’attaque. La premi`ere variante traite le cas de compromis d’un service d’une session pass´ee.

Propri´et´e 6 (Protection contre une attaque par service connu) Un protocole est dit vul- n´erable `a ce type d’attaque si la connaissance d’un service d’une session pass´ee permet d’avoir la vue d’un agent pour la clef d’une session future. En supposant que l’´etat du syst`eme est `a l’instant τ , il n’y a pas d’attaque par service connu si :

∀τ′ ∈ T, τ′ < τ, ∀Pi ∈ Pτ, Sτ ′ ∪ KIτ ∪jKIjτ ∪Pk∈P S τ ck 6|= Algi(K τ i, ∪jKijτ, Sτi) . La seconde variante traite le cas de compromis d’une clef d’une session pass´ee.

Propri´et´e 7 (Protection contre une attaque par clef connue) Un protocole est dit vuln´e- rable `a ce type d’attaque si la connaissance d’une clef `a long terme d’un agent d’une session pass´ee permet d’obtenir la vue d’un agent pour la clef d’une session future. En supposant que l’´etat du syst`eme est `a l’instant τ , il n’y pas d’attaque par connaissance de clef si :

∀τ′ ∈ T, τ′ < τ, ∀Pi ∈ Pτ, Kτ ′ ∪ KIτ ∪jKIjτ ∪Pk∈P S τ ck 6|= Algi(K τ i, ∪jKijτ, Siτ) .

4.5. D´etection de types d’attaques 93