Sie sind auf Seite 1von 50

REPUBLIQUE TUNISIENNE

MINISTERE DE LENSEIGNEMENT SUPERIEUR,


DE LA RECHERCHE SCIENTIFIQUE ET DE LA TECHNOLOGIE
UNIVERSITE DE 7 NOVEMBRE A CARTHAGE

P O L Y T E C H N I Q U E
D E

T U N I S I E

Rapport de Projet de Fin dEtude


Construction dattaques pour les protocoles
cryptographiques

Organisme dacceuil :

Elabor
e par

BEN ABDALLAH Ahmed Chamseddine

Encadre par

M. LAKHNECH Yassine
M. ENE Cristian

Annee universitaire 2003/2004

Program testing can best show the presence of errors but never their absence.
Edges W. Dijjkstra (1930-2002)

Remerciements

Au terme de ce travail, je tiens a


` exprimer mes remerciements envers toutes les personnes
qui ont contribue au bon deroulement de ce PFE.
Je tiens particuli`erement a
` remercier Pr. Yassine LAKHNECH, responsable du lequipe
DCS de VERIMAG, pour mavoir accueilli au sein de son equipe et pour mavoir encadre et
oriente durant mon PFE.
Je remercie egalement M. Cristian ENE, post-docteur a
` VERIMAG, pour sa patience,
son assistance, ses directives et ses conseils precieux.
Mes remerciements sadressent aussi a
` Moez KRICHEN, Omar CHEMLAL, Liana BOZGA
et Chiheb KESSENTINI pour laide et le soutien quils mont accordes tout au long de ce
stage.

Abstract
In this project, we have been interested in an assistance tool for cryptographic protocols
verification. A prototype of visualisation and analysis for potentiel attacks has to be developed.
A tool, so-called Hermes, for verifying secrecy properties of cryptographic protocols was
developed by VERIMAG. My graduation project goal was to spread this tool so that it takes
into account the access rights of communication canals.
Once a more realistic model is obtained, this extension will allow the tool verify a wide
range of complex protocols and avoid eventual false attacks.

R
esum
e
Dans ce PFE, nous sommes interesses a realiser un outil daide a la mise au point de protocoles cryptographiques.Il sagit de developper un outil de visualisation et danalyse dattaques
potentielles.
VERIMAG a dej`a developpe un outil, nomme Hermes, qui verifie la propriete de secret
des protocoles cryptographiques. Le but de ce PFE est detendre cet outil pour quil tient
compte des droits dacc`es des canaux de communication utilises.
Obtenant ainsi une modelisation plus realiste, cette extension permettra `a loutil de verifier
des protocoles complexes et deviter des eventuelles fausses attaques.

Table des mati`


eres
Introduction

Pr
esentation g
en
erale

11

1 Les protocoles cryptographiques


1.1

12

Primitives cryptographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.1.1

Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.1.2

Concatenation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.1.3

Nonces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.2

Les agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.3

Proprietes de securite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.4

Difficultes de la verification . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

1.5

Approches pour la verification . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2 Loutil de v
erification Hermes

II

16

2.1

Architecture et caracteristiques de loutil . . . . . . . . . . . . . . . . . . . . .

16

2.2

Principe de loutil

17

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

M
ethode de V
erification

19

3 Pr
eliminaires

20

3.1

Termes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.2

Substitutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

4 Les protocoles cryptographiques : mod


elisation et abstraction
4.1

22

Modelisation des protocoles cryptographiques . . . . . . . . . . . . . . . . . .

22

4.1.1

Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

4.1.2

Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

4.1.3

Modelisation de lintrus . . . . . . . . . . . . . . . . . . . . . . . . . .

24

4.1.4

Semantique operationnelle . . . . . . . . . . . . . . . . . . . . . . . . .

25

4.1.5
4.2

Modelisation du secret . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

Abstraction finie des messages atomiques et des sessions . . . . . . . . . . . .

28

5 M
ethode de v
erification

33

5.1

Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

5.2

Stabilite de (B0 , S, B) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

6 Algorithme

38

6.1

Version semantique de lalgorithme de verification

. . . . . . . . . . . . . . .

38

6.2

Representation symbolique des saf e-breakers . . . . . . . . . . . . . . . . . .

41

6.3

Version symbolique de lalgorithme de verification

. . . . . . . . . . . . . . .

43

6.3.1

Calcul des substitutions dangereuses . . . . . . . . . . . . . . . . . . .

43

6.3.2

Traitement des super terms . . . . . . . . . . . . . . . . . . . . . . . .

44

Terminaison de lalgorithme symbolique . . . . . . . . . . . . . . . . . . . . .

46

6.4

Conclusion

48

Table des figures


2.1

Larchitecture dHERMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

4.1

Exemple de protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

4.2

Les r`egles abstraites du protocole decrit dans la figure4.1 . . . . . . . . . . . .

32

6.1

Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

6.2

R`egles dunification classiques . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

6.3

R`egles dunification pour la fonction Sup

46

. . . . . . . . . . . . . . . . . . . .

Introduction
La securite des syst`emes dinformation est aujourdhui un domaine en pleine effervescence. En effet, avec le developpement des reseaux de communication comme Internet et
les reseaux de telephonie mobile, le besoin dassurer la confidentialite et lauthenticite des
messages echanges a considerablement augmente. Les protocoles cryptographiques sont des
r`egles dechange entre les points du reseau, ils permettent de securiser les communications.
Ils sont utilises par exemple dans les distributeurs de billets, les abonnements aux chanes de
television payantes, la telephonie mobile, le commerce electronique.
Aujourdhui, un des enjeux de la verification des protocoles cryptographiques est de se
doter de methodes systematiques et automatisables. On peut avancer le fait que la decouverte
dune faille en 1995 dans le protocole de Needham et Schroeder, qui etait connu depuis 17
ans et considere comme un protocole s
ur, a fait prendre conscience `a la communaute de
limportance quil y avait `a rechercher du cote de lautomatisation de la verification des
protocoles cryptographiques.

Contexte du Projet
Le present travail a ete realise au sein de lequipe DCS1 au laboratoire VERIMAG. Cree
en 1993, VERIMAG est une unite de recherche mixte du CNRS2 , de lINPG3 et de lUJF4 , et
fait partie de la federation IMAG5 . Elle sinteresse au developpement des techniques de validation et des methodes formelles pour la verification des syst`emes critiques. Les travaux qui
y sont menes maintiennent un juste equilibre entre la recherche fondamentale et la recherche
experimentale et appliquee et ce grace `a une cooperation internationale avec dautres centres
de recherche et `a des partenariats avec des industriels.
1

Distributed and Complex Systems Research Group


Centre National de la Recherche Scientifique
3
Institut National Polytechnique de Grenoble
4
Universite Joseph Fourier
5
Institut dInformatique et Mathematiques Appliquees de Grenoble
2

Cadre du projet
VERIMAG a developpe un outil de verification de la propriete du secret des protocoles
cryptographiques. Cet outil, appele Hermes, projette, par abstraction, lensemble des etats
(infini) dune execution de protocole ayant un nombre non-borne de participants sur un
ensemble detats fini. Hermes traite egalement le cas de messages de taille non-bornee en
eliminant les possibilites de divergence grace `a une notion de chapeaux [3]. Lalgorithme de
verification de Hermes est correct : si on prouve que le protocole est secret dans le mod`ele
abstrait, alors il est secret dans le mod`ele concret. Par contre, il nest pas complet. Hermes
permet cependant de montrer le secret de nombreux protocoles de [5].
Lapproche suivi dans Hermes, suppose que lintrus a le controle total du reseau. En effet,
lintrus est capable dintercepter tous les messages envoye sur le reseau, peut ecouter tous les
messages (sans les empecher darriver `a leurs destinations) et peux se deguiser sous une autre
identite. Nest pas toujours valable en cas reel, cette hypoth`ese peut engendrer des fausses
attaques lors de la verification de certains protocoles.

Cahier de charge
Le but de ce projet est detendre le mod`ele dHermes pour tenir compte des proprietes
dacc`es de chaque canal de communication utilise.
Dans ce projet, nous sommes appele, premi`erement, `a concevoir une syntaxe qui tient
compte des proprietes des canaux. Deuxi`emement, nous devons etablir une condition necessaire qui nous permettra de sassurer quun certain protocole et correct. Enfin, nous avons `a
developper un algorithme semantique de verification ainsi que lalgorithme symbolique correspondant.

Organisation du document
Ce projet est presentee en deux parties. Dans la premi`
ere partie, nous presentons dune
facon succincte et informelle les protocoles cryptographiques et loutil de verification Hermes.
Nous commencons dans le chapitre 1 par rappeler quelques definitions sur les primitives
cryptographiques. Ensuite, nous enumerons les proprietes de securite des protocoles. Enfin,
nous listons quelques approches de verification. Dans le chapitre 2, nous presentons bri`evement larchitecture dHermes et son principe de verification.
Dans la deuxi`
eme partie, nous presentons une approche pour verifier les protocoles

cryptographiques tout en tenant compte des proprietes dacc`es des canaux utilises.
Dans le chapitre 3, nous rappelons quelques definitions mathematiques et nous illustrons
differentes notations que nous utiliserons tout le long de cette partie. Le chapitre 4 presente
la modelisation et labstraction qui nous permettront de construire un mod`ele abstrait dun
protocole quelconque `a partir de son mod`ele concret. Dans le chapitre 5, nous introduisons la definition de stabilite dune transition de protocole et nous presentons une condition
suffisante qui assurera la correction dun protocole quelconque. Enfin, nous illustrons dans
le chapitre 6 lalgorithme de verification que nous avons developpe ainsi que sa version
symbolique (implementable).

10

Premi`
ere partie

Pr
esentation g
en
erale

11

Chapitre 1

Les protocoles cryptographiques


Dans ce chapitre, nous commencons par presenter quelques definitions que nous allons
utiliser dans ce rapport. Nous parlerons ensuite de proprietes de securite des protocoles cryptographiques, et enfin, nous enumerons les differentes methodes de verifications existantes.

1.1
1.1.1

Primitives cryptographiques
Chiffrement

Le chiffrement consiste `a transformer un message en un autre de mani`ere `a ne plus reconnatre le premier. Le dechiffrement est loperation inverse. On distingue deux types de
chiffrement : les chiffrements symetriques et les chiffrements asymetriques. Le chiffrement
symetrique utilise la meme cle pour chiffrer comme pour dechiffrer. Alors que le chiffrement
asymetrique utilise une cle de chiffrement differente de la cle de dechiffrement ; la premi`ere
est souvent divulguee sur le reseau afin que tout participant puisse chiffre mais la deuxi`eme
reste en general secr`ete pour quune seule personne (ou machine) puisse dechiffrer.
On pourrait penser que les principales attaques des protocoles cryptographiques reposent
sur le decryptage des messages chiffres. En fait, beaucoup dattaques reposent sur des principes beaucoup plus simples `a mettre en oeuvre comme linterception dun message et lenvoi
dun autre. dans le cadre de la verification des protocoles cryptographiques, une hypoth`ese
tr`es classique est celle du chiffrement parfait. Une telle hypoth`ese assure en particulier quil
est impossible de decrypter un message chiffre sans avoir la cle correspondante `a lalgorithme
de dechiffrement.

12

1.1.2

Concat
enation

La deuxi`eme fonction utilisee dans les protocoles cryptographiques est la concatenation.


Elle est modelisee par un symbole fonctionnel binaire, souvent le symbole ( , ), appele aussi
paire.

1.1.3

Nonces

Dans les protocoles cryptographiques, les nonces sont des donnees engendrees aleatoirement. La probabilite dengendrer deux nonces identiques etant tr`es faible, on choisit souvent
de modeliser les nonces comme des donnees toutes distinctes.

1.2

Les agents

Les agents (appeles aussi participants ou principaux) testent et stockent des parties de
messages en fonction des r`egles du protocole. Ils peuvent etre honnetes ou malhonnetes (appeles souvent intrus).
Les actions de lintrus sont decrites par un ensemble succinct de r`egles o`
u apparaissent
la capacite de lintrus `a dechiffrer des messages lorsquil a linverse de la clef ou sa capacite
`a former de nouveaux messages. Souvent, on consid`ere que lintrus dispose dune capacite
de calcul et de memoire non bornee. Par consequence, on se contente de considerer un seul
intrus au lieu de plusieurs. En fait, cela revient au meme si chaque intrus dispose dun nombre
arbitraire didentites et des clefs privees correspondantes : ce que deux intrus pourraient
apprendre et calculer, un seul intrus peut le faire seul puisque ni sa capacite de calcul ni la
taille de sa memoire ne sont bornees.

1.3

Propri
et
es de s
ecurit
e

Nous appellerons ici propriete de securite toute propriete quun protocole cherche `a assurer. Le but de ce paragraphe est de faire une liste (non exhaustive) des proprietes que
peuvent tenter dassurer les protocoles. Les proprietes les plus courantes sont le secret et
lauthentification.

. Le secret , appele aussi confidentialite, consiste `a garder inconnue pour une tierce personne
1

une certaine donnee. Par exemple, pour le paiement par carte `a laide de terminaux
portables, lutilisateur doit confirmer son identite en entrant son code PIN `a quatre
chiffre qui est une donnee qui doit restee secr`ete.
1

Une definition formelle de cette propriete sera enoncee dans le paragraphe 4.1.5

13

. Lauthentif ication consiste `a etre certain de correspondre avec linterlocuteur escompte


(il serait par exemple ennuyeux denvoyer son numero de carte bancaire `a quelquun
qui se fait passer pour le vendeur).

. Lanonymat est le fait de ne pas etre identifiable parmi un ensemble de personnes. Par
exemple, lors dun vote, on ne doit pas pouvoir etablir de lien entre une personne et le
contenu de son bulletin, ceci ne pouvant etre garanti que sil y a au moins deux votes
differents pour lelection.

. Lintegrite signifie usuellement que les donnees ne peuvent pas etre corrompues.
. La non-repudiation consiste `a eviter que des participants qui envoient et recoivent des
messages puissent le nier plus tard ; on peut prendre lexemple du vote electronique o`
u
la non-repudiation assure que la personne qui a dej`a vote ne puisse pas pretendre le
contraire.
Dans la suite, nous nous interessons seulement `a la propriete du secret.

1.4

Difficult
es de la verification

La verification des protocoles cryptographiques est un cas particulier de model-checking


o`
u les syst`emes consideres sont des protocoles cryptographiques dans un reseau hostile et
les proprietes `a verifier sont celles enoncees aux paragraphes precedents (secret, authentification, anonymat...). Les difficultes de la verification tiennent dans le caract`ere non borne des
param`etres du syst`eme `a verifier :
Le nombre de sessions nest pas borne.
Le nombre de participants nest pas borne.
Les messages sont de taille arbitraire.
A chaque etape, nimporte quel message de la connaissance de lintrus peut etre envoye :
le syst`eme est `a branchement infini.
Lintrus peut generer un nombre arbitraire de nouvelles clefs et de nouveaux nonces.
De plus, les primitives cryptographiques ont des proprietes algebriques : associativite de
la paire, propriete de lexponentielle utilisee dans les chiffrements RSA, proprietes du ou
exclusif, etc. Pour modeliser ces proprietes, on peut ajouter les theories equationnelles
correspondantes. Mais ces theories equationnelles augmentent considerablement la difficulte
de la verification.

1.5

Approches pour la v
erification

Les outils de verification utilisent beaucoup le model-checking (verification de mod`ele),


`a savoir : etant donne un protocole P et une propriete de securite M , est-ce que P satisfait M ? Des outils implementant un tel procede ont dej`a ete utilises avec succ`es, le plus
14

connu etant certainement loutil FDR de G. Lowe ayant notamment servi `a detecter lattaque sur le protocole Needham-Schroeder `a clefs publiques. Il est cependant tr`es difficile
de prouver la correction dun protocole, notamment `a cause du probl`eme de lexplosion de
lespace des etats ; en effet, les traces ayant une longueur non bornee `a cause du nombre arbitraire dinstances du protocole (correspondant au nombre de session), larbre des traces est
infini en profondeur. De plus, selon ce que lintrus peut envoyer, il est `a branchement infini.
De mani`ere generale, le probl`eme de la verification des protocoles cryptographiques est un
probl`eme indecidable.
Si lon souhaite travailler avec un nombre arbitraire de sessions, deux solutions sont couramment envisagees. La premi`ere consiste `a degager des sous-classes decidables. La deuxi`eme
solution consiste `a definir des methodes incompl`etes o`
u lon suppose quil ny a pas de nonce
(des abstraction seront alors utilisees pour les representer) et que le nombre dagents consideres est borne, cette derni`ere abstraction etant correcte. Ces methodes permettent une verification correcte mais incompl`ete au sens o`
u on peut trouver de fausses attaques. Toujours
en considerant un nombre arbitraire de sessions, des methodes correctes et compl`etes, mais
non terminantes, ont aussi ete developpees. Il existe aussi des methodes o`
u les protocoles
sont modelises dans la logique du premier ordre, ce qui permet de ramener le probl`eme de la
satisfiabilite dune propriete de securite `a celui de la satisfiabilite dun ensemble de clause.

15

Chapitre 2

Loutil de v
erification Hermes
Developpe par Verimag, HERMES est un outil dedie `a la verification de proprietes de

secret pour les protocoles cryptographiques. Etant


donne un protocole et une propriete de secret specifies dans le langage EVA, HERMES calcule des conditions suffisantes pour garantir
la propriete de secret.
Dans ce chapitre, nous donnons un apercu rapide sur larchitecture de cet outil. Puis, nous
presentons succinctement le principe de verification implante dans HERMES ; nous rappelons
que ce principe est decrit en detail dans [3].

2.1

Architecture et caract
eristiques de loutil

HERMES prend en entree un fichier .cpl produit par le traducteur EVATRANS `a partir
dun fichier .eva. De cette description il extrait la propriete de secret et la specification du
protocole (module 1, figure 2.1). Il calcule une abstraction de la propriete et du protocole
(module 2) puis compl`ete lensemble des secrets et gen`ere des contraintes qui definissent les
conditions dans lesquelles le protocole peut etre utilise sans risque dinvalider la propriete
de secret (module 3). Loutil produit egalement des traces qui justifient lajout de chaque
nouveau secret et de chaque nouvelle contrainte. Ces traces correspondent `a des tentatives
dattaques.
Les contraintes calculees par le module 3 dHERMES sinterpr`etent comme des limites
imposees sur les connaissances de lIntrus au moment de debuter une session du protocole.
Ces contraintes sont etablies de mani`ere `a garantir que les messages echanges par des participants honnetes au cours dune session du protocole jouee en parall`ele avec un nombre
arbitraire dautres sessions, ne permettent pas `a lIntrus de decouvrir les secrets echanges par
les participants honnetes.

16

Fig. 2.1 Larchitecture dHERMES


La methode de calcul des contraintes du module 3 sapplique aussi bien `a un nombre
arbitraire de sessions parall`eles (entree a) qu`a un nombre fini de sessions parall`eles (entree b). Dans le premier cas, le module 2 dHERMES construit une abstraction qui satisfait
la propriete suivante : si la propriete abstraite est verifiee pour le protocole abstrait alors
la propriete de secret est satisfaite par le protocole concret pour un nombre arbitraire de
sessions executees en parall`eles par un nombre arbitraire de participants generant un nombre
arbitraire de donnees fraches (nonces et clefs).

2.2

Principe de loutil

HERMES calcule des conditions suffisantes pour garantir que les messages echanges au
cours dune session du protocole ne peuvent pas etre exploites pour deduire des secrets. Loutil
est base sur la notion de messages capables de garder un secret, appeles messages protecteurs.
Il sagit des messages de la forme {X}K cest-`a-dire cryptes au moyen dune clef dont linverse

nest pas connu de lIntrus. Les messages protecteurs se deduisent des clefs declarees secr`etes

dans les hypoth`eses du protocole. Etant


donne un protocole, un ensemble S de secrets et un
ensemble dhypoth`eses sur les clefs secr`etes, HERMES calcule, dune part, un ensemble de
messages qui prot`egent les secrets echanges au cours du protocole ; et dautre part, il ajoute
aux secrets les messages qui permettent de construire une attaque. Il sagit en particulier des

17

` lissue du calcul dont la terminaimessages dans lesquels les secrets ne sont pas proteges. A
son est assuree par un operateur de convergence forcee (widening), HERMES retourne un
ensemble de secrets S qui contient les secrets de depart et un ensemble de messages protecteurs H. Les resultats H et S definissent les conditions dans lesquelles le protocole peut
etre utilisee sans risque : la propriete de secret est garantie si, dans les messages initialement
connus de lIntrus, les secrets S sont proteges par les messages H. Autrement dit, une attaque se traduit generalement par le fait que lensemble de secrets complete par HERMES
contient des messages qui sont trivialement constructibles par lIntrus.
Du fait des approximations effectuees par loperateur de widening, Hermes ne peut pas
eviter le phenom`ene des fausses attaques. Il sagit des cas o`
u HERMES produit une trace
dune attaque abstraite qui ne correspond pas `a une attaque executable dans le mod`ele reel.

18

Deuxi`
eme partie

M
ethode de V
erification

19

Chapitre 3

Pr
eliminaires
Nous rappelons dans ce chapitre quelques notions mathematiques qui nous avons utilise
dans notre travail. Ce chapitre a egalement pour but de fixer les notations et la terminologie
utilisees dans cette partie.
Nous attirons lattention ici que, dans ce chapitre et dans le reste de cette partie, la
plupart des notations sont en anglais et ils sont ecrits souvent en italique.

3.1

Termes

Soit X un ensemble denombrable de variables et soit F i un ensemble denombrable de

fonction darite i, i N. Les fonctions darite 0 sont appeles les fonctions constantes. Soit

F = iN F i .

D
efinition 3.1 On note T (X , F) lensemble des termes construit avec F et X , disjoint de

F. T (X , F) est le plus petit ensemble verifiant :


(
X T (X , F)

f F i et t1 , ..., ti T (X , F), f (t1 , ..., tn ) T (X , F)

On assimile les termes `a des arbres ordonnes etiquetes. Leurs feuilles sont des constantes
ou des variables et les noeuds internes sont des symboles fonctionnels dont larite correspond
au nombre de fils.
Les termes racines sont les termes sans variables. Nous notons T (F) lensemble des termes

racines sur F.

D
efinition 3.2 (position) Une position p dans un terme t est representee par la sequence
dentiers decrivant le chemin de la racine au sous-terme t|p quelle decrit.
La concatenation de deux sequences p et q est notee p q.
20

Une position p est au-dessus dune position q, p q, sil existe une position r telle que

q = p r.

Le domaine dun terme t, P os(t), est lensemble de ses positions.

D
efinition 3.3 Lensemble var(t) des variables dun terme t est defini inductivement par :
si t est une constante, var(t) = .

si t est une variable x, var(t) = {x}.

si t = f (t1 , ..., tn ), var(t) = var(t1 ) ... var(tn ).

Par defaut, nous utiliserons les lettres (s, t...) pour les termes, les lettres (p, q...) pour les
positions et les lettres (x, y, z...) pour les variables.

3.2

Substitutions

D
efinition 3.4 Soit une fonction partielle de X vers T (F, X ) telle que le nombre de variables

affectees est fini. Son extension a


` T (X , F) definit une substitution, notee , si et seulement

si pour tout f F et pour tout t1 , ..., tn T (X , F), (f (t1 , ..., tn )) = f ((t1 ), ..., (tn )).

Le domaine Dom() de la substitution est lensemble des variables modifiees, cest a


`
dire, Dom() = {x|(x) 6= x}.
Il en resulte quune substitution peut etre represente par un sous-ensemble fini de Dom()
T (X , F), note = {x1 t1 , ..., xn tn }.
Un terme s est une instance de t, si et seulement sil existe une substitution telle que
s = (t). Dans ce cas, on peut egalement dire que t est plus general que s.
D
efinition 3.5 (unificateur) Un unificateur de deux termes s et t est une substitution
telle que (s) = (t). La substitution est plus generale que 0 si et seulement sil existe
une troisi`eme substitution telle que 0 = . Un unificateur le plus general, ou mgu (most
general unifier) de s et t est un unificateur qui est plus general que tout autre unificateur de
s et t. Si s et t sont unifiables, alors ils ont un unificateur le plus general.

21

Chapitre 4

Les protocoles cryptographiques :


mod
elisation et abstraction
4.1

Mod
elisation des protocoles cryptographiques

Dans cette partie, nous decrirons comment nous modelisons les protocoles cryptographiques et nous donnerons une definition precise des proprietes que nous voulons montrer.
Nous commencons par decrire les messages qui peuvent etre inclus dans notre modelisation.

4.1.1

Messages

Lensemble des messages, note T (F), contient les termes construits par les symboles

constants et les constructeurs encr : T (F) K T (F) et pair : T (F) T (F) T (F).
Les symboles constants, appeles aussi messages atomiques, sont :

1. Les noms des principaux (agents) : Nous notons par P lensemble de tous les principaux.
2. Les nonces : N represente lensemble des nonces.
3. les cles : Nous notons par K lensemble des cles. Nous decrivons trois key constructors
pbk, pvk et smk de type :

(N P ) P K
o`
u pbk, pvk et smk sont respectivement les constructeurs des cles publiques, prives et
symetriques.
4. Les canaux : Nous notons par C lensemble des canaux.
Soit A = P N K C et F = A {encr, pair}. Dans la suite, par abus decriture,

nous noterons (m1 , m2 ) au lieu de pair(m1 , m2 ) et {m}k au lieu de encr(m, k).

22

Role terms
Pour decrire les transitions qui peuvent etre etablies par un agent dans une session dun
protocole cryptographique, nous introduisons les role terms. Soit XN lensemble des nonces,

XP lensemble des principaux et XC lensemble des canaux. Nous supposons que X , XN , XP

et XC sont deux `a deux disjoints.

Les Role terms sont les termes construits `a partir des variables dans X XN XP XC en

utilisant les fonctions encr et pair et o`


u les constantes ne sont pas autorises. Formellement,
les role terms sont definis par la grammaire suivante :
Key ::= pbk(x1 , ..., xr )|pvk(x1 , ..., xr )|smk(x1 , ..., xr )|smk(n, x1 , ..., xr )
RT

::

= n|p|Key|x|c|pair(RT1 , RT2 )|encr(RT, Key)

avec x1 , ..., xr XP , n XN , p XP , x X et c XC

4.1.2

Syntaxe

Pour decrire les protocoles cryptographiques, nous avons besoin de decrire les transitions
0,
que les agents peuvent executer. Dans notre notation, les transitions ont la forme c.t d.t
avec c et d des canaux de communication et t et t0 sont des termes verifiant var(t0 ) var(t).
Chaque session est param`etree par les agents qui interviennent, les frais nonces, les cles et
les canaux utilises. Une description de session est donnee par le quadruplet (P , trans, f resh,
new), avec :

. P est un vecteur (p , ..., p ), r 1, de differents agents variables dans X ,


. tran est une fonction qui associe `a chaque agent dans P une liste finie de transitions,
. f resh associe `a chaque agent variable dans P un ensemble fini et disjoint de nonces va1

riables dans XN .

. new associe `a chaque ensemble dagents un ensemble fini et disjoint de canaux variables
dans XC en specifiant les droits de chaque agent sur le canal.

Par exemple : new({p1 , ..., pn }) = {(cid , x, {wr1 , ..., wrn }, wrI )} cree un canal cid avec :

cid : (
identifiant du canal.
0 si le canal est permanent (commun `a toutes les sessions)
x=
1 si le canal est instancie par session
wrr : ledroit de lagent pr sur le canal cid

0 si pr ne peut ni lire ni ecrire sur le canal cid

1 si p a seulement le droit de lire sur le canal c


r
id
r {1, ..., n}
wrr =

2
si
p
a
seulement
le
droit
d
e
crire
sur
le
canal
c

r
id

3 si pr a le droit de lire et decrire sur le canal c


id
23

wrI : ledroit

1
wrI =

des autres agents sur le canal cid


si les autres agents ne peuvent ni lire ni ecrire sur le canal cid
si les autres agents ont seulement le droit de lire sur le canal cid
si les autres agents ont seulement le droit decrire sur le canal cid
si les autres agents ont le droit de lire et decrire sur le canal cid

On notera par i le reseau public, autrement dit, le canal sur lequel tout les agents ont
le droit de lire et decrire.
Par abus decriture, on notera c new({p1 , ..., pn }), et parfois (c, x) new({p1 , ..., pn }),

au lieu de (c, x, {wr1 , ..., wrn }, wrI ) new({p1 , ..., pn }).


Exemple 4.1 Soit :
A

B : {(A, NA , cA )}pbk(B)

B : {NB }pbk(B)

B cA

A : {(NA , NB )}pbk(A)

Lagent A joue le r
ole dinitiateur de la session et B est le repondeur. Selon la notation decrite
auparavant, la session peut etre decrite par la Figure 4.1, avec P = (p 1 , p2 ), f resh(p1 ) = {n},

f resh(p2 ) = {n0 } et new({p1 , p2 }) = {(cA , 1, {3, 0}, 0)}.

tran(p1 ) :

tran(p2 ) :

p1
cA .{(n, z)}pbk(p1 )

i.{(p1 , n, cA )}pbk(p2 )
i.{z}pbk(p2 )

i.{(x, y, w)}pbk(p2 ) w.{(y, n0 )}pbk(x)

Fig. 4.1 Exemple de protocole

4.1.3

Mod
elisation de lintrus

Dans cette section, nous decrivons comment lintrus peux deduire des nouveaux messages
`a partir des messages quil a dej`a interceptes. Nous adoptons, comme dans le mod`ele de Dolev
Yao, un syst`eme deductif pour representer lintrus. Afin de decrire ce mod`ele, nous notons
E ` M la relation signifiant lintrus peu deduire le message M `a partir de lensemble E, o`
u

E represente lensemble des messages interceptes par lintrus.

. Si m E alors E ` m.
. Si E ` m et E ` m alors E ` pair(m , m ).
. Si E ` m et E ` k K alors E ` encr(m, k).
. Si E ` pair(m , m ) alors E ` m et E ` m .
. Si E ` encr(m, k) et E ` k alors E ` m.
1

24

Dans la suite, nous notons k(E) = {m | E ` m}.


Soit c XC , on note :

c k(E) : si lintrus a le droit de lire les messages echanges sur le canal c.


c k(E) : si lintrus a le droit decrire sur le canal c.

On definit ensuite par Ec la file dattente du canal c, pour tout canal c tel que c S ou

c S . On definit aussi lensemble E = {Ec |c C, c S ou c S}.

Positions critiques et positions non-critiques


Nous definissons maintenant les positions critiques et les positions non-critiques dans un
message. Lidee est quil ny a aucune mani`ere de deduire la clef utilisee pour le chiffrement
dun message quelconque. Ainsi, la position des cles dans les messages de la forme encr(m, k)
nest pas critique et cest un endroit s
ur pour un secret. Formellement, etant donne un terme
t, une position p dans t est nommee non-critique, sil y a une position q tel que t(q) = encr et
p = q 1 ; autrement elle est nommee critique. Nous emploierons egalement la notation s c m

pour denoter que s apparat en m `a une position critique, cest `a dire, il existe p dom(m)

tel que p est critique et m|p = s.

Pour un terme t, nous utilisons la notation E 6` t pour denoter quaucune instance de

t nest deductible de E, cest `a dire, il nexiste aucune substitution : X T (F) tel que

E ` (t).

Nous utilisons aussi la notation E 6`c t pour denoter quaucun message deductible de E

ne contient une instance de t `a une position critique, cest `a dire, pour tout message m, si
E ` m alors (t) 6c m, pour toute substitution .

4.1.4

S
emantique op
erationnelle

Soit S = (P, tran, f resh, new) une description dune session donnee. Nous voulons decrire

le comportement du protocole decrit par S sans avoir des contraintes sur le nombre de sessions

ou de participants. Nous definissons ainsi les transitions instanciees et les sessions instanciees.
Pour identifier les sessions, nous utilisons des entiers naturels. Ensuite, nous fixons chaque
instance de session par une paire (i, ), o`
u i est son identificateur et est un vecteur de
principaux qui instancie les principaux-variables p1 , ..., pr . Ainsi, nous introduisons lensemble
des instances de sessions Inst = N P r .

25

Instances de sessions

Etant
donne (i, ) Inst, nous generons une instance de session, note (S)i , en applicant

les transformations suivantes pour tous les role terms qui apparaissent en S :

. nous remplacons chaque agent variable p par (p),


. chaque nonces variable n f resh(p) par N ,
. chaque canal instancie par session (c, 1) new({p , ..., p }) par C
. chaque canal permanent (c, 0) new({p , ..., p }) par C .
i,

i, ,

Nous notons par ti le terme obtenu de t apr`es avoir appliquer les transformations citees
ci-dessus. Ainsi,la (i, )-instance de la transition c.t c0 .t0 (en supposant que c est un canal
permanent et que c0 est un canal instancie par session) est C .ti (C 0 )i, .(t0 )i .
Dans la suite, nous noterons par trani (p) la liste des transitions (i, )-instanciees obtenues
de tran(p).
Configuration et transitions
Pour definir les configurations qui peuvent etre engendrees par une execution du protocole, nous avons besoin de definir letat de chaque instance de session.
Letat dune instance de session est donne par la paire (, E, E), o`
u la fonction associe

`a chaque p P une liste de transitions (i, )-instanciees, E un ensemble des messages et E


est un ensemble de files dattentes . Nous notons par lensemble des etats des sessions.

Une configuration dun protocol defini par S est donnee par la paire (, E, E), o`
u dom()

est lensemble des sessions creees dans la configuration, (i) est letat de la session i, E est

lensemble des messages interceptes par lintrus et E est lensemble des files dattentes des

canaux non publiques .

Une semantique operationnelle dun protocole est definie par les transitions appliquees
sur les configurations. Il existe deux types de transitions :
1. des transitions qui cr
eent des nouvelles sessions
On definit CH = {c | p1 , ..., pn , (c, 1) new({p1 , ..., pn })} lensemble des canaux ins-

tancies par session .

i 6 dom()
(, E, {Ec1 , ..., Ecn }) ([i 7 (, trani )], E 0 , {Ec1 , ..., Ecn } {Eci |c CH})
Avec :

26

E 0 = E {ci |c CH, (c, 1, {wr1 , ..., wrn , 1}, 1) new({p1 , ..., pr })}

{
ci |c CH, (c, 1, {wr1 , ..., wrn , 1}, 2) new({p1 , ..., pr })}

{ci , ci |c CH, (c, 1, {wr1 , ..., wrn , 1}, 3) new({p1 , ..., pr })}
et Eci = c CH
2. des transitions qui sont provoqu
es par dautres transitions dans la m
eme
session.
(, E, {Ec1 , ..., Ecn }) ( 0 , E 0 , {Ec0 1 , ..., Ec0 n })
(, E, {Ec1 , ..., Ecn }) ([i 7 (, 0 )], E 0 , {Ec0 1 , ..., Ec0 n })
La relation decrit le changement de letat dune session suite `a une transition effectue

par un agent dans la meme session. Si on consid`ere la transition ci .t cj t0 et si on

note par f irst(Eci ) le premier element de la file Eci , alors, pour toute substitution

: X T (F) verifiant (t) = f irst(Eci ) (Eci = ) (


ci k(E)) (E ` (t)) ,
E0

Ec0 j =

E {(t0 )}

si cj k(E)

Ecj : (t0 )

si cj 6 k(E)

Ec j

sinon

sinon

et Ec0 k = Eck k {1, ..., n} tel que k 6= j


Dans notre mod`ele, nous supposons que lintrus est capable de lire tout message envoye
sur tout canal c tel que c k(E) et que les agents nont aucune garantie sur lorigine des

messages envoyes sur un canal c tel que c k(E). De plus, nous supposons que lintrus ne
peut intercepter que les messages envoyes sur les canaux publiques, cest `a dire, tout canal
c tel que {c, c} k(E) ; autrement, sur ce type de canal, tout message recu est envoye par

lintrus, et tout message envoye est envoye `a lintrus. Pour les autres canaux, on suppose que
les messages sont envoyes vers leurs files dattente correspondantes et que les messages sont
recus via les memes files dattentes.

4.1.5

Mod
elisation du secret

Le but de la propriete de secret est que certains messages indiques, nommes secrets, ne
devraient pas etre publics. En effet, un secret est dit public sil est deductible `a partir de
lensemble de messages interceptes par lintrus. Dans notre modelisation, un secret est defini
par un role term. Ainsi, on associe `a chaque instance de session un secret que nous voulons
prouver.
Soit S = (P, tran, f resh, new) une description donnee de session et soit t un role term

qui represente un mod`ele de secret. Etant


donnee (i, ) Inst , nous notons par C(E, , i)
27

la contraint suivante sur E :


Pour tout nonce/canal frais t, E 6`c ti
Cest `a dire, lintrus ne peut pas deduire des messages qui contiennent des nonces frais ou des
canaux frais `a une position critique. De plus, nous notons par C(E) la condition suivante :
(i, ) Inst,

C(E, , i)

Maintenant, nous sommes pret `a definir la propriete de secret formellement. Le protocole


P decrit par S prot`ege le secret t pour un ensemble initiale des messages de lintrus E 0 , note
Secret(S, t, E0 ) ou tout simplement 6`P , si pour tout (i, ) Inst :

si C(E0 ), (, E0 ) (, E) et (i) = (, ) alors E 6` ti .


La definition de la propriete de confidentialite peut etre etendu facilement `a un ensemble T
de mod`eles de secret : Secret(S, T, E0 ) si et seulement si Secret(S, t, E0 ) pour tout t T .

4.2

Abstraction finie des messages atomiques et des sessions

Dans cette section, nous fixons un protocole cryptographique arbitraire decrit par S =

(P, tran, f resh, new) et un secret s. Pour pouvoir montrer que s est un secret, nous rencontrons les probl`emes suivants :
1. La definition de notre probl`eme de verification est un probl`eme datteignabilite quantifie
universellement sur tous les (i, ) Inst.
2. Il nexiste aucune limite sur le nombre des sessions qui peuvent etre creees.
3. Il nexiste aucune limite sur la taille des messages qui peuvent etre echanges pendant
lexecution du protocol.
Dans cette section, nous presentons une abstraction qui permet de resoudre les deux
premiers probl`emes. Nous procedons en deux etapes. Premi`erement, nous presentons une
abstraction param`etree par (i0 , 0 ) Inst. Ensuite, nous montrons que le syst`eme abstrait

quon obtient ne depend pas du choix de (i0 , 0 ). Lidee fondamentale de labstraction est

que le comportement dun agent est independant de son identite et de lidentificateur de la


session.
Ainsi, nous fixons une session arbitraire o`
u les agents, en supposant quils sont deux, sont
A et B. Ensuite, nous enumerons les sessions auxquelles A et B peuvent participer :

. toutes les sessions o`u A joue le role de p , B joue le role de p


1

et la session est differente

de la session (i0 , 0 ),

. toutes les sessions o`u B joue le role de p

et A joue le role de p2 ,
28

. toutes les sessions o`u A joue le role de p

et le role de p2 est joue par un autre agent que

A ou B,

. toutes les sessions o`u B joue le role de p

et le role de p2 est joue par un autre agent que

et le role de p1 est joue par un autre agent que

A ou B,

. toutes les sessions o`u A joue le role de p


A ou B,

. toutes les sessions o`u B joue le role de p

et le role de p1 est joue par un autre agent que

A ou B,
Lidentification des sessions entrane aussi lidentification des agents, des nonces, des cles
et des canaux utilises dans ces sessions. Nous obtenons ainsi un syst`eme o`
u nous avons un
nombre fini dagents, de nonces, de cles et de canaux mais un nombre illimite de sessions.
Pour resoudre cette ambigute, nous modelisons un protocole cryptographique comme etant
un ensemble de transitions qui peuvent etre executees dans nimporte quel ordre et nimporte
quel nombre de fois. Le nombre et la taille des messages sont laisses illimites.
De plus, nous nous contentons de deux agents, un agent honnete A et un agent malhonnete
I. La preuve que cette abstraction est correcte est illustre dans [6].
Nous presentons maintenant cette idee formellement. Soit (i0 , 0 ) inst une instance

de session donnee. Pour la suite, nous notons, pour un object semantique concret x, x ] son
abstraction dans linstance de session (i0 , 0 ).
Nous commencons par definir les domaines abstraits N] = {>, } et P ] = {A, I} et les

abstractions :

. i = >, si (i, ) = (i , ), et i = sinon et


. p = A, si p = (p ), et p = I sinon.
]

Nous etendons labstraction des agents `a un vecteur des agents en considerant labstraction
des composantes.
Pour les cles, nous notons K] lensemble des cles abstraites, il contient la cle KI et les cles

dans P(p]1 , ..., p]l ) avec p]1 , ..., p]l P ] et p]j 6= I, pour tout j {1, ..., l}. Labstraction dune
cle k(p1 , ..., pn ) est defini par :

k ] (p1 , ..., pn ) =

k(p]1 , ..., p]n )


KI

si p]i 6= I, i = 1, ..., n
sinon

Exemple 4.2 Si le nombre des roles r = 2 et 0 = (A, B), alors,


K] = {KI , pbk(A), pvk(A), pbk(A, A), pvk(A, A), smk(A, A)}
Nous definissons maintenant labstraction du canal C i, , note (C i, )] , par :

. i, si lintrus peut ecrire sur le canal et peut intercepter tous les messages envoyes dessus.
29

. C, si i = > et = , et
. C , sinon.
]

Exemple 4.3 Pour lexemple de protocole 4.1, en plus du canal public i, new({p 1 , p2 }) =
(c1 , 1, {3, 0}, 0) cree un nouveau canal C1 . Labstraction des canaux est illustre ci dessous :
C ] = {C1 , C1A,A , C1I,A , C1A,I , i}
Les droits initiales de chaque agent sont illustres dans le tableau suivant :
C1 CA,A
CA,I
CI,A
1
1
1

Il nous reste donc la definition de labstraction des nonces. Labstraction du nonce N i, , note
(N i, )] , est :

. N , si = (I, ..., I),


]

. N , si i = > et
. N , sinon.
]

= 0 , et

Exemple 4.4 Pour le protocole decrit dans la figure4.1, nous obtenons lensemble suivant
des nonces abstraits :

N ] = NI , N1 , N2 , N1A,x , N2x,A x {A, I} .

Labstraction dun terme t, note t] , est obtenu par extension homomorphique des abstractions des agents, des nonces, des cles et des canaux. Pour un ensemble T de termes, soit
T ] = {t] |t T }.

Lensemble T (F)] de messages abstraits est lensemble des messages sur A] et les construc-

teurs encr et pair.

Nous sommes prets maintenant pour definir labstraction dun protocole cryptographique
u m T (F)] et de
representee par une paire (C, R) de contraintes de la forme E 6`c m, o`
transitions abstraites. Nous appelons (C, R) un protocole abstrait, et R r`egles abstraites.
Labstraction S ] dun protocole cryptographique decrit par S est definie par :
]

. C (E) = {E 6` m |E 6` m C(E, , i )} et
. lensemble R des transitions abstraites c .t
0

transition dans une instance de session

] ]
1 1
Si .

c]2 .t]2 tel que c1 .t1 c2 .t2 est une

Soit ST = (C, R) un protocole abstrait et E0 T (F)] . ST preserve le secret dans E0 ,

note E0 6`ST s, si pour tout E T (F)] :

si C(E0 ) et E0 E alors E 6` s.
30

Pour etablir le lien entre un protocole cryptographique et son abstraction, nous avons
besoin detablir un lien entre la deduction des messages concr`etes et de celle de leurs abstractions par lintrus. Nous pouvons montrer, par une recurrence structurelle sur m, le lemme
suivant :
Lemme 4.1 Soit E un ensemble de messages et E ] = {m] |m E}. Alors, E ` m implique

E ] ` m] , pour tout message m T (F).

Nous pouvons aussi montrer le lemme suivant qui etablie une relation entre linstance
dun terme concret et celle de son abstraction :
Lemme 4.2 Soit t1 et t2 deux termes et soit la substitution : X T (F). Ainsi, (t1 ) =

(t2 ) implique ] (t]1 ) = ] (t]2 ) o`


u ] (X) est defini comme etant (X)] .

En utilisant les lemmes 4.1 et 4.2, nous pouvons montrer que (C ] , R) est une abstraction
de S tel que labstraction de (, E, E) est (E ] , E ] ) avec E ] = {Ec]1 , ..., Ec]n }.
Proposition 4.1 Soit (1 , E1 , E1 ) et (2 , E2 , E2 ) deux configurations concr`etes. Alors,
(1 , E1 , E1 ) (2 , E2 , E2 ) implique E1] R E2] et E1] R E2]
En plus, si C(E) est vrai alors C ] (E ] ) est aussi vrai.
En exploitant la proposition 4.1 et le fait que (C ] , R) ne depend pas de (i0 , 0 ), cest `
a
dire, nous avons les memes contraintes et les meme transitions pour tout (i, ) Inst, nous
montrons le theor`eme suivant :

Th
eor`
eme 4.1 Le protocole defini par S satisfait la propriete de confidentialite definie par

S dans E0 , si son abstraction (C ] , R) preserve S ] dans E0] , cest a


` dire,
E0] 6`(C ] ,R) S ] implique Secret(S, S, E0 ).

Exemple 4.5 Dans la figure 4.2, nous illustrons les r`egles abstraites du protocole decrit dans
la figure4.1.

31

= 0

= (A, A)

= (A, I)

= (I, A)

A
i.{(A, NA , C1 )}pbk(A)

A
i.{(A, N AA , C1AA ))}pbk(A)
A

A
i.{(A, N AI , C1AI ))}pbk(I)
A

i.{(A, Y, W )}pbk(A)
W.{(Y, NB )}pbk(A)

i.{(A, Y, W )}pbk(A)
W.{(Y, NBAA )}pbk(A)

i.{(I, Y, W )}pbk(A)
W.{(Y, NBIA )}pbk(I)

C1 .{(NA , Z)}pbk(A)
i.{Z}pbk(A)

C1AA .{(NAAA , Z)}pbk(A)


i.{Z}pbk(A)

C1AI .{(NAAI , Z)}pbk(A)


i.{Z}pbk(I)

Fig. 4.2 Les r`egles abstraites du protocole decrit dans la figure4.1

32

Chapitre 5

M
ethode de v
erification
Dans ce chapitre, nous designons par P = (C, R) un protocole donne et par S un ensemble

de secrets.

Lidee fondamentale de notre methode est de calculer lensemble des messages chiffres qui
preservent les secrets. Comme le montre lexemple du protocole de Needham-Schroeder, le
chiffrement nest pas toujours capable de proteger un secret. En effet, un agent honnete peut
aider involentairement lintrus `a deduire un certain secret.
Pour pouvoir developper cette idee formellement, nous avons besoin de certaines definitions que nous allons introduire dans la premi`ere section, ensuite, nous annoncerons une
condition qui nous permettra de conclure si un certain protocole est correct ou non.

5.1

D
efinitions

D
efinition 5.1 (safe keys) Nous notons par K K lensemble des safe-keys, c-a-d les cles

dont les inverses ne sont pas connus par lintrus.


Nous supposons que 6= K 6= K.

Soit K 1 = {k 1 |k K}.

D
efinition 5.2 (K-guard) Nous appelons K-guard tout message {m}k T (F) o`
u k est un

safe-key.

D
efinition 5.3 Pour tout canal c sur lequel lintrus ne peux pas lire ou ne peux pas ecrire, on
definit par Bc lensemble des mauvais messages tel que leur circulation sur le canal c permet

le devoilement dun secret de S.

Nous supposons que si {c, c} S = , Bc = .


On definit lensemble des bad-messages B = {Bc |c C, c S ou c S}.
33

D
efinition 5.4 (safe-breakers) Nous appelons safe-breaker toute paire ({m}k , p) o`
u {m}k

est un K-guard et p une position critique

de {m}k .

Intuitivement, on note par le safe-breaker ({m}k , p) que lintrus, pour le cas specifique
{m}k , peut depasser la protection de la cle k et obtenir le sub-term `a la position p. Dans la

suite, nous noterons par B0 lensemble des saf e-breakers.

D
efinition 5.5 Soit m et s deux messages tel que m 6= s et soit B0 un ensemble de safe-

breakers. Nous definissons le predicat le secret s est insensible a


` B0 dans le message m,

note mhB0 iK s, le predicat qui verifie les conditions suivantes, suivant la forme de m :

. Si m est atomic : s est safe.


. Si m = pair(m , m ) : m hB i s et m hB i s.
. Si m = encr(m , k ) avec k 6 K : m hB i s.
. Si m = encr(m , k) avec k K : lintrus peut exploiter les safe-breakers pour depasser la
1
0

0 K

0 K

0 K

protection de la cle k. Ainsi, nous avons besoin que le secret s soit protege dans tout

sub-term de m atteignable par lapplication du safe-breaker. Soit, p dom(m), nous


avons (m, p) 6 B0 ou m|p hB0 iK s.

Cette definition est facilement etendu aux ensemble de messages : Soit M et S deux en-

sembles de messages, et B0 un ensemble de saf e-breakers. S est insensible `a B0 dans M ,

note M hB0 iK S, si pour tout m M et pour tout s S, mhB0 iK s.

La definition des messages insensibles `a un saf e-breaker ne tiens pas compte du pouvoir de
composition et de decomposition de lintrus. Ainsi, nous definissons la fermeture par rapport
`a la composition dun terme. La fermeture dun ensemble S permet dassurer que lintrus est
incapable de deduire un message dans S en utilisant uniquement les lois de composition.

Soit M un ensemble densembles de messages et soit m un message. Nous notons m M

lensemble Mi {m}Mi M .

D
efinition 5.6 (fermeture) Nous definissons c(m) lensemble de fermeture faible associe
au message m :

c(m1 ) c(m2 )
c(m) = m
c(m0 ) c(k)

si m = (m1 , m2 )
si m = {m0 }k

si m est atomique

Un ensemble M de messages est ferme par rapport a


` la composition , si pour tout message
m M , il existe un ensemble de messages M 0 c(m) tel que M 0 M .
1

La definition des positions critiques a ete introduite dans la section 4.1.3

34

Lemme 5.1 Soit S et E deux ensembles de messages tel que S E = . Si S est ferme par

rapport a
` la composition, alors, aucun message de S ne peut etre deduit de E en utilisant

uniquement les lois de composition.

Pour assurer que lintrus est incapable de deduire un message dans S en utilisant unique-

ment les lois de cryptage, nous introduisons les sub-saf e-breakers.

D
efinition 5.7 (sub-safe-breakers) Soit (b, p) un safe-breaker. On note par ssb(b,p) lensemble des sub-safe-breakers de (b,p). Les sub-safe-breakers de (b,p) sont construits a
` partir
des K-guards de b dont la position est au dessus de p.
o
n

1
ssb(b, p) = b|q , q p q p et b|q est un K-guard

Maintenant, nous sommes prets `a illustrer les conditions qui garantissent la stabilite du

predicat EhB0 iK S en utilisant les lois de deduction de lintrus.

5.2

Stabilit
e de (B0 , S, B)

D
efinition 5.8 (well-formed) Le triplet (B0 , S, B) est dit well-formed, si les conditions sui-

vantes sont verifiees :

1. S est ferme par rapport a


` la composition.
2. K 1 S.
3. Bc S c C tel que c S et c 6 S.
4. (b, p) B0 et (b0 , p0 ) ssb(b, p), b S ou (b0 , p0 ) B0 .
Intuitivement, la condition (1) assure que lintrus est incapable de deduire un secret dans
S uniquement par composition. La condition (2) assure que lintrus est incapable de decrypter

un secret protege par une cle dans K. La condition (3) garantit que les lintrus ne peut pas

envoyer un bad-message sur un canal o`


u il a le droit decrire. Enfin, la derni`ere condition
assure que lintrus est incapable de deduire un secret dans S uniquement par encryption.
Proposition 5.1 Soit E un ensemble de messages, B0 un ensemble de safe-breakers et S un

ensemble de secrets. Si (B0 , S, B) est well-formed et EhB0 iK S est vrai, alors, E ` m implique

mhB0 iK S.

Preuve : voir [3]


Corollaire 5.1 Si EhB0 iK S et (B0 , S, B) est well-formed alors E 6` S.

35

D
efinition 5.9 (Stabilit
e) Soit r = p.tp q.tq une r`egle dans R. (B0 , S, B) est r-stable si

pour toute substitution :


(

(tp ) 6 Bp et

si p 6 S alors (tp )hB0 iK S

implique

(tq ) 6 Bq et

si q 6 S alors (tq )hB0 iK S

Autrement,



p S (tp )hB0 iK S (tp ) 6 Bp q S (tq )hB0 iK S (tq ) 6 Bc

(B0 , S, B) est R-stable si elle est stable pour toute r`egle de R.

Intuitivement, si (B0 , S, B) est r-stable pour r = p.tp c.tc , alors, la protection de S ne

sera pas touchee par lapplication de la r`egle r.


Th
eor`
eme 5.1 Si :
1. (B0 , S, B) est well-formed et R-stable,

2. E0 hB0 iK S est vrai pour tout ensemble E0 qui satisfait C, et


3. Ec0 Bc = (Ec0 , Bc ) E0 B.
alors, 6`P S 0
Preuve :
Nous montrons par recurrence que pour toute execution
r

n
1
(E0 , E0 )
(En , En )
(E1 , E1 )...(En1 , En1 )

nous avons En hB0 iK S et Ecn Bc =

(Ecn , Bc ) En B.

1. On verifie bien que E0 hB0 iK S 0 , et Ec0 Bc = (Ec0 , Bc ) E0 B.


2. On va montrer que si pour toute r`egle ri = p.tp q.tq , on a Ei1 hB0 iK S et Eci1 Bc =
(Eci1 , Bc ) Ei1 B., alors, Ei hB0 iK S et Eci Bc = (Eci , Bc ) Ei B.

On suppose que Ei1 hB0 iK S et que Eci1 Bc = (Eci1 , Bc ) Ei1 B.

. si p 6 S

: pour toute substitution : X T (F) tel que Ei1 ` (tp ), dapr`es la

proposition 5.1, (tp )hB0 iK S

. pour toute substitution : X T (F) tel que (t ) E


p

Bp = .

. si p 6 S , E
0

i1
p

i1
p ,

(tp ) 6 Bp car Epi1

= et Bp S : comme Ei1 hB0 iK S, alors Ei1 hB0 iK Bp . Ainsi,

pour toute substitution : X T (F), (tp ) 6 Bp .


36

(B0 , S, B) est R-stable, donc :


(

si q 6 S alors (tq )hB0 iK S et


(tq ) 6 Bq

Ainsi nous verifions :

. si q 6 S :

si q 6 S :

Ei = Ei1 {(tq )}, or (tq )hB0 iK S, donc, Ei hB0 iK S.

Eci Ei , Eci = Eci1 , donc, Eci Bc =


si q S :

Ei = Ei1 {(tq )}, or (tq )hB0 iK S, donc, Ei hB0 iK S.

Eqi = Eqi1 : (tq ), or (tq ) 6 Bq ,donc, Eqi Bq =

Eci Ei tel que c 6= q, Eci = Eci1 , donc, Eci Bc =

. si q S :

Ei = Ei1 , donc, Ei hB0 iK S.

Eqi = Eqi1 : (tq ), or (tq ) 6 Bq , donc, Eqi Bq =

Eci Ei tel que c 6= q, Eci = Eci1 , donc, Eci Bc =

Ainsi, nous verifions que Ei hB0 iK S et que Eci Bc = (Eci , Bc ) Ei B

37

Chapitre 6

Algorithme
Dans ce chapitre, nous developpons un algorithme qui calcule un triplet stable (B 00 , S 0 , B 0 ).

Dans un premier temps, nous developpons une version semantique de lalgorithme. Ensuite,
nous definissons une representation symbolique des saf e-breakers et des bad-messages et
nous developpons lalgorithme symbolique correspondant.

6.1

Version s
emantique de lalgorithme de v
erification

Dans la figure 6.1, nous representons un algorithme qui calcule un triplet (B 0 , S, B) well-

f ormed et R-stable.

Lalgorithme utilise une fonction Closure qui associe `a un ensemble de messages sa fer-

meture par rapport `a la composition (suivant la definition 5.6). Comme entrees, lalgorithme
recoit un ensemble de r`egles R, un ensemble de secrets S, un ensemble de saf e-keys K, un

ensemble de saf e-breakers B0 et un ensemble de bad-messages B. Sil termine, il doit rendre

un ensemble plus grand de secrets S 0 , un ensemble plus grand de saf e-breakers B00 et un
ensemble plus grand de bad-messages B 0

Nous expliquons maintenant lidee fondamentale de notre algorithme. Considerons une

r`egle p.tp c.tc dans R. Sil existe une substitution : X T (F) tel que un secret s nest

pas protege dans (tc ) (cest `a dire s est sensible `a B0 dans (tc ) si lintrus peut lire sur le
canal c ou (tc ) est un bad-message su canal c) alors la protection du secret nest pas efficace

`a la premisse. Ainsi, si lintrus `a le droit decrire sur le canal p, alors, chaque K-guard de (t p )
qui prot`ege le secret s nest pas efficace et doit etre ajoute `a lensemble des saf e-breakers.
En plus, si lintrus nas pas le droit soit de lire soit decrire sur le canal p, le message (t p )
doit etre ajoute `a lensemble des bad-messages du canal p. La proposition 6.1 resume les
proprietes de lalgorithme.
La proposition 6.1 resume les propriete de lalgorithme 6.1.

38

input :R, S, K, B0 , and B

output :B00 , S 0 , B 0

B00 := B0 ; S 0 := S; B 0 := B

K 1 = {k 1 |k K}; S 0 := S 0 K 1

PC = {c, c|c C\S};

repeat

S 0 := Closure(S 0 ); B0 := B00 ; S = S 0 ; B := B 0 ;
For each p.tp c.tc R
if (c 6 S)

For each x dom(tc ) s.t.


t c |x X S
n
o

DS := : X T (F) s S s.t((tc )hB 0 iK s) ((tc |x )hB 0 iK s)


DP := {(tp )| DS};
if (
p 6 S)

if (tc |x c tp )
n

B00 = B00 m|r , r1 q m DP, k K.s.t


else

m|r = m|r.0 ; tc |x = tp |q ; r q ;

if (DP PC = ) S 0 := S 0 DP else exit(error);

endif

endif

if (
p S)or(p S)
Bp = Bp DP ;
if (
p 6 S)
endif

if (Bp PC = ) S 0 := S 0 Bp else exit(error);

od
endif

if (c S)or(
c S)

DS := : X T (F)(tc ) Bc
DP := {(tp )| DS};

if (
p S)or(p S)
Bp = Bp DP ;

if (
p 6 S)
endif

if ((DP Bp ) PC = ) S 0 := S 0 DP Bp else exit(error);

od
until(B00 , S 0 , B 0 ) = (B0 , S , B )

Fig. 6.1 Algorithme

39

Proposition 6.1 Si lalgorithme de la figure 6.1 applique a


` (R, S, K, B0 , B) se termine, on

obtient S 0 , B00 , B 0 qui satisfient les conditions suivantes :


1. (B00 , S 0 , B 0 ) est well-formed,
2. (B00 , S 0 , B 0 ) est R-stable,
3. S S 0 ,
4. B B 0 et
5. Bc S 0

Bc B 0 tel que c 6 S.

Preuve : on suppose que lalgorithme termine a


` la neme iteration et on notera [S 0 ]i , [B00 ]i et
[B 0 ]i respectivement les ensembles S 0 , B00 et B 0 a
` la ieme iteration.
1. S S 0 :

On a S = [S 0 ]0 [S 0 ]1 ...[S 0 ]n1 [S 0 ]n = S 0 , do`


u S S 0.

2. B B 0 :

On a B = [B 0 ]0 [B 0 ]1 ...[B 0 ]n1 [B 0 ]n = B 0 , do`


u B B0.

3. Bc S 0 Bc B 0 tel que c 6 S :
` la derni`ere iteration de lalgorithme S 0 = [S 0 ]n = [S 0 ]n1 .
A

Or [S 0 ]n = [S 0 ]n1 Bc Bc B 0 tel que c 6 S, do`


u Bc S 0 .

4. (B00 , S 0 , B 0 ) est R-stable :


` la derni`ere iteration de lalgorithme B 0 = [B 0 ]n = [B 0 ]n1 , S 0 = [S 0 ]n = [S 0 ]n1 et
A
0
0
0
B 0 = [B 0 ]n = [B 0 ]n1 .

Ainsi, pour toute r`egle p.tp c.tc de R et pour toute substitution ,

. si c 6 S et ((t )hB i
q

0
0 K S)

. si p 6 S : puisque [B ]

0
0 n

= [B00 ]n1 et [S 0 ]n = [S 0 ]n1 , (tp ) est un saf e-breaker

ou (tp ) est un secret. Do`


u S 0 est sensible a
` B00 dans (tp ).

. si p S ou p S : puisque [B ]

0
p n

= [Bp0 ]n1 , (tp ) est un bad-message du canal

p.

. si (t ) B
c

0
c

. si p 6 S : puisque [S ]
0

dans (tp ).

= [S 0 ]n1 , (tp ) est un secret. Do`


u S 0 est sensible a
` B00

. si p S ou p S : puisque [B ]

0
p n

= [Bp0 ]n1 , (tp ) est un bad-message du canal

p.

On obtient ainsi :
(
(
si p 6 S et ((tp )hB0 iK S) ou
si q 6 S et ((tq )hB0 iK S) ou
.
alors,
Si
(tp ) Bp
(tq ) Bq
40

Ce qui est equivalent a


`
(
(
si q 6 S alors (tq )hB0 iK S et
si p 6 S alors (tp )hB0 iK S et
.
alors,
Si
(tq ) 6 Bq
(tp ) 6 Bp
Ainsi on montre que (B00 , S 0 , B 0 ) est R-stable.
5. (B00 , S 0 , B 0 ) est well-formed :

. la fonction closure assure la fermeture de lensemble des secrets S

par rapport a
` la

composition.

. K SS
. On a dej`a montre que B S B B tel que c 6 S.
. Dapr`es meme la construction de lensemble B , on verifie que (b, p) B (b , p )
1

ssb(b, p) b S ou (b0 , p0 ) B0 .

Ainsi, on montre que (B00 , S 0 , B 0 ) est well formed.


En utilisant la proposition 6.1 et le theor`eme 5.1, nous pouvons montrer rapidement le
corollaire suivant :
Corollaire 6.1 Si :
1. lalgorithme de la figure 6.1 se termine avec (S 0 , B 0 ),
2. E0 hB00 iK S 0 pour tout E0 qui satisfait C(E0 ), et
3. Ec0 Bc =

(Ec0 , Bc ) E0 B,

alors 6`P S 0 , et donc 6`P S.

6.2

Repr
esentation symbolique des saf e-breakers

Nous developpons ici une version effective de notre algorithme semantique. Eventuellement, nous avons besoin de representer un ensemble infini de saf e-breakers et de badmessages. Pour resoudre ce probl`eme, nous introduisons une representation symbolique de
saf e-breakers : breaking-pattern est une paire ({t}k , p) o`
u {t}k est un terme de X et p est
une position critique de {t}k . un secret s est insensitive `a un breaking-pattern (b, p) si il est

insensitive `a toute instance de b, cest `a dire la propriete suivante est vraie :


m

Dn

oE

s
(b), p : X T (F)
K

Et Nous introduisons une representation symbolique de bad-messages : bad-pattern est


un terme t de X .

41

Pour definir formellement la representation symbolique des patterns, nous introduisons


les super terms :
st ::= N |P |K|x|c|pair(st1 , st2 )|encr(st, K)|Sup(st)
Avec N N , P P, K K, x X et c C. On note par ST (X , F) lensemble des

super terms. Notons que tout terme de T (X , F) est aussi un super term de ST (X , F). La

difference entre les deux est que les super terms utilisent la fonction Sup.

Intuitivement, Sup(t) represente tous les termes qui contiennent t comme sub-term.

D
efinition 6.1 Etant
donne un super term st, lensemble de tout les termes correspondants,
note JstK, est defini comme suit :
JstK = {st} si st est constant ou variable.

Jpair(st1 , st2 )K = {pair(t1 , t2 )| t1 Jst1 K, t2 Jst2 K}.

Jencr(st, k)K = {encr(t, k)| t JstK}.

JSup(st)K = {t| une position p t tel que t|p JstK}.

D
efinition 6.2 Etant
donne un super term st et une position critique p, nous notons par
J(st, p)K lensemble des breaking-terms associe au breaking-super term (st, p). Pour les breaking-

super terms, la fonction JK est definie comme suit :


J(st, p)K = {(st, p)} si st est constant ou variable.

J(pair(st1 , st2 ), p)K =

{(pair(t1 , t2 ), )| t1 Jst1 K, t2 Jst2 K}

{(pair(t1 , t2 ), 0.q)| p = 0.p0 , (t1 , q) J(st1 , p0 )K, t2 Jst2 K}


{(pair(t1 , t2 ), 1.q)| p = 1.p0 , t1 Jst1 K, (t2 , q) J(st2 , p0 )K}.

J(encr(st, k), p)K =

{(encr(t, k), )| t JstK}

{(encr(t, k), 0.q)| p = 0.p0 , (t, q) J(st, p0 )K}.

J(Sup(st), p)K =

{(t, )| t JSup(st)K}

{(t, q.r)| p = 0.p0 , (t|q , r) J(st, p0 )K}.


En se basant sur une representation symbolique, lensemble infini B0 de saf e-breakers

est represente par un ensemble fini de breaking-patterns BP et chaque ensemble infini B c de


bad-messages est represente par un ensemble fini de bad-patterns BP c . Formellement, nous
introduisons la notion de representation symbolique.

D
efinition 6.3 Une representation symbolique SR est un triplet (BP, S, {BP c }) avec :
42

. BP est un ensemble fini de breaking-patterns qui represente lensemble des saf e-breakers
B0 .

. S est un ensemble fini de termes qui represente les secrets.


. chaque BP est un ensemble fini de bad-patterns qui represente lensemble des bad-messages
c

du canal c Bc .

6.3

Version symbolique de lalgorithme de v


erification

lalgorithme symbolique est obtenu de lalgorithme de la figure 6.1 en remplacons chaque


operation par une autre semblable qui op`ere sur (BP, S, {BP c }).

6.3.1

Calcul des substitutions dangereuses

Pour calculer les substitutions dangereuses induits par une r`egle p.tp c.tc , nous distin-

guons deux cas :

1. le calcul des substitutions dangereuses qui engendrent des bad-patterns sur le canal c
et
2. le calcul des substitutions dangereuses qui engendrent la revelation dun secret si lintrus
est capable de lire sur le canal c.
le calcul des substitutions dangereuses qui engendrent des bad-patterns sur le
canal c
Dans ce cas, les dangereuses substitutions sont les substitutions qui unifient tc avec des
bad-patterns de BP c . Formellement DS = { | b BP c tel que (tc ) = (b)}
le calcul des substitutions dangereuses qui engendrent la r
ev
elation dun secret
si lintrus est capable de lire sur le canal c
nous representons ici un algorithme qui calcule les substitutions dangereuses induits par
une r`egle p.tp c.tc et une position p.

Soit K lensemble fixe des saf e-keys et BP lensemble des breaking-patterns. Et soit PP

lensemble des position pi qui prec`edent p tel que tc |pi est un K-guard.

Nous definissons ensuite la fonction qui calcules tous les unificateurs entre les breaking-

patterns de BP et (tc , p) qui annule toutes les protecting-positions. formellement les substitutions dangereuses sont les unificateurs qui satisfient :
^

pi PP

(tc |pi , p1
i p) = (bi , qi )

43

ou (bi , qi ) BP

Initialement, est appele avec lensemble PP des protecting-positions et lensemble

des dangereuses substitutions DS contenant initialement la substitution vide : DS = {[]}.

Ensuite, il parcourt les positions pi de PP et essaye de completer les substitutions de DS


pour annuler la protecting-position pi par un breaking-pattern de BP.

(BP, PP, DS) =

{| DS}

si PP =

(BP, PP := PP\{pi }, DS :=

j DS

{j 1i,j , ..., j ni,ji,j })

pi PP

O`
u 1i,j , ..., ni,ji,j sont les unifacteurs qui resultent de lunification de j (tc |pi , p1
i p) avec

des breaking-patterns de BP.

6.3.2

Traitement des super terms

Avant dobtenir notre algorithme symbolique nous avons besoin de resoudre le probl`eme

suivant : Etant
donne deux super terms u et t, nous devons determiner lensemble U(u, t)

de substitutions tel quil existe des termes u0 JuK et t0 JtK tel que (u0 ) = (t0 ). Nous
voulons chercher les mgu qui unifient des termes dans JuK et JtK.

Considerons F lensemble des fonctions symboles tel que Sup 6 F et X un ensemble

denombrable de variables. Lensemble de super terms induits par F et X , note PT (F, X )


est defini par le BNF suivant :

t ::= x|f (t1 , ..., tn )|Sup(t)


O`
u x est une variable de X et f est une fonction symbole darite n 0. On note par F (i)

les fonctions symboles dans F darite i.

D
efinition 6.4 Etant
donne deux super terms u et t, on appelle maximal general unifier pour
u et t toute substitution : X PT (X , F) qui satisfait les conditions suivantes :
1. est un mgu des termes u0 JuK et t0 JtK.

2. Pour toute substitution 0 qui unifie des termes de JuK et JtK, 0 nest pas plus general
que , c-`
a-d, il nexiste aucune substitution tel que = 0

Nous notons U(u, t) lensemble des maximal general unifiers pour u et t.


La definition de U peut etre etendue pour des ensembles {ui = ti |i {1, ..., n}} de

paires de super terms. Dans la suite, tout ensemble E = {ui = ti |i {1, ..., n}} sera appele

generalized equational problem ou tout simplement gep.

Dans cette section, nous voulons developper un algorithme qui permet de determiner U(E)

pour tout gep E. Nous avons besoin detendre lensemble des r`egles dunfication uselles pour
44

pouvoir traiter les super terms.


Nous definissons tout dabord la notion dequation simple. En effet, Une equation u = t
est dite simple si largument de toute occurence de Sup dans u et t est soit une constante
soit une variable. Aussi, Un gep est dit simple si toutes ses equations sont simples. On peut
remarquer que pour tout gep E il exite un gep simple E 0 , appele gep equivalent, tel que
U(E) = U(E 0 ).
Exemple 6.1 Considerons le gep suivant E = {Sup(f (b, Sup(g(x)))) = f (b, g(Sup(a)))}. E
est equivalent au gep simple E :

E 0 = {Sup(x0 ) = f (b, g(Sup(a))), x0 = f (b, Sup(x1 )), x1 = g(x)}


Nous rappelons dans la Figure 6.2 les r`egles dunification usuelles.

Delete
Decompose
Orient
Eliminate
Clash

{t = t} E

{t = x} E

{x = t} E

{f (u1 , ..., un ) = f (t1 , ..., tn )} E


{x = t} E

{ui = ti |i {0, ..., n}} E

{x = t} E[t/x]

{f (u1 , ..., un ) = g(t1 , ..., tm )} E U = si f 6= g

Occurs-Check {x = t} E

U = si x 6= t et x var(t)

Fig. 6.2 R`egles dunification classiques


Pour pouvoir resoudre les equations avec Sup, nous ajoutons des nouveaux r`egles (Figure
6.3). Nous notons que la r`egle Splitting transforme un simple gep `a un ensemble de simples
gep. En effet, elle cree un nouveau gep pour tout sub-term de f (t1 , ..., tn ).
La completude de lalgorithme peut etre prouve en associant `a chaque gep E un triplet
(m1 , m2 , m3 ), o`
u:

.m
.m
.m

1
2
3

est le nombre de variables non resolues,


P
est la taille de E, c-`a-d, u=t E (|u| + |t|) et

est le nombre dequations t = x dans E,

et en montrant que chaque r`egle diminue cette quantite en ordre lexicographique.


Pour prouver la correction de lalgorithme, nous montrons que pour chaque r`egle E

E1 , ..., En , nous avons :

U(E) =

1in

45

U(Ei ).

Splitting-var

{Sup(x) = f (t1 , ..., tn )} E

Splitting-const {Sup(a) = f (t1 , ..., tn )} E


Simplification

{t0 = Sup(t), t0 = t} E

Sup-var-const

{Sup(x) = Sup(a)} E

Sup-const

{Sup(a) = Sup(b)} E

Sup-var

{Sup(x) = Sup(y)} E

{x = t0 } E, t0 f (t1 , ..., tn )

{a = t0 } E, t0 f (t1 , ..., tn )

{t0 = t} E

{x = Sup(a)} E

si

F (i) =

i2

E
sinon

[
{a = b} E
F (i) =
si

i2

E
sinon

{x = Sup(y)} E, {Sup(x) = y} E

[
F (i) =
si

i2

E
sinon

Fig. 6.3 R`egles dunification pour la fonction Sup

6.4

Terminaison de lalgorithme symbolique

Dans cette section, nous presentons une technique qui nous assure la terminaison de notre
algorithme symbolique de verification. En contre partie, cette technique peut, eventuellement,
causer des fausses attaques.
D
efinition 6.5 Une sequence (ti , pi )i0 de breaking-patterns est dite increaising at une
sequence (qi )i0 de positions, si les conditions suivantes sont verifiees pour tout i 0 :
1. qi dom(ti ) et qi qi+1 ,
2. ti [z/q0 ] = t0 [z/q0 ], o`
u z est une variable frache et
3. (ti |qi , qi1 pi ) = (t0 |q0 , q01 p0 ).
De la meme mani`ere, une sequence (ti )i0 de bad-patterns est dite increaising at une
sequence (qi )i0 de positions, si les conditions suivantes sont verifiees pour tout i 0 :
1. qi dom(ti ) et qi qi+1 ,
2. ti [z/q0 ] = t0 [z/q0 ], o`
u z est une variable frache et
3. ti |qi = t0 |q0 .
Lidee principale de notre methode de terminaison forcee de lalgorithme symbolique est
decrite dans la proposition 6.2.

46

Proposition 6.2 Soit (ti , pi )i0 increasing at (qi )i0 . Alors,


[

i0

J(ti , pi )K

i<j
j0

J(ti , pi )K

tj [Sup(tj |qj )/qj ], qj 0 qj1 pj

Et soit (ti )i0 increasing at (qi )i0 . Alors,


[

i0

Jti K

i<j
j0

q
y
Jti K tj [Sup(tj |qj )/qj ]

Ainsi, cette technique nous permet dobtenir un ensemble fini de breaking-patterns et de


bad-patterns. Ce qui nous assure la terminaison de notre algorithme.

47

Conclusion
la modelisation des protocoles et de leurs proprietes est aujourdhui un sujet de recherche
majeur : on cherche, de plus en plus, `a avoir un mod`ele plus proche de la realite. En effet,
lomission de certaines specifications reelles peut causer eventuellement des fausses attaques.
Le but de ce projet etait detendre loutil de verification Hermes pour quil tient en
compte les droits dacc`es des canaux de communication. Pour ce faire, nous avons ete amenes
`a modifier la modelisation qui etait utilisee dans Hermes. Puis, nous avons etabli une nouvelle
condition suffisante de correction des protocoles cryptographiques qui nous a permis enfin
de developper un nouveau algorithme de verification.
Il est indispensable de noter ici que nous avons rencontre un probl`eme dans limplementation de lalgorithme obtenu. En effet, le language EVA, qui est utilise comme un language de
specification des protocoles cryptographiques pour Hermes, ne permet pas dans sa version actuelle lintroduction des droits dacc`es des canaux. Actuellement, nous etudions la possibilite
dimplementer notre algorithme en mode semi-automatique -cest `a dire introduire les r`egles
abstraites du protocole `a verifier comme entree au lieu de la specification de ce protocole.
Nous etudions aussi la possibilite de travailler sur un nouveau language de specification.

48

Bibliographie
[1] L. Bozga, Y. Lakhnech, and M. Perin. Loutil de verification HERMES. Technical
report, Verimag, mai 2002. Rapport technique EVA.
[2] L. Bozga, Y. Lakhnech, and M. Perin. HERMES : An Automatic Tool for Verification
of Secrecy in Security Protocols. CAV03, 2003.
[3] L. Bozga, Y. Lakhnech, and M. Perin. Pattern-based Abstraction for verifying Secrecy
in Protocols. TACAS03, 2003.
[4] Yannick Chevalier. Resolution de probl`emes daccessibilite pour la compilation et la validation de protocoles cryptographiques. PhD thesis, universite Henri Poincare, Nancy,
Decmbre 2003.
[5] J.

Clark

and

J.

Jacob.
A survey of authentication protocol literature.

http ://www.cs.york.ac.uk/jac/papers/drareviewps.ps, 1997.

[6] H. Comon-Lundh and V. Cortier. Security properties : Two agents are sufficient. Technical report, LSV, 2002.
[7] Veronique Cortier. Verification automatique des protocoles cryptographiques. PhD the
sis, lEcole
Normale Superieure de Cachan, Mars 2003.
[8] Jean Goubault-Larrecq. Verification de protocoles cryptographiques : la logique a
` la
rescousse !. SECI02, septembre 2002.
[9] Muriel Roger. Raffinements de la resolution et verification de protocoles cryptogra
phiques. PhD thesis, lEcole
Normale Superieure de Cachan, Octobre 2003.

49

Das könnte Ihnen auch gefallen