14eme rencontre professeurs et enseignants-chercheurs ......véri cation des protocoles : Æ donner...
TRANSCRIPT
14eme Rencontre Professeurs et
Enseignants-Chercheurs
Véri�cation de protocoles
cryptographiques
Denis Lugiez
Laboratoire d'Informatique Fondamentale
Introduction
Modélisation
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Introduction
Modélisation
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Protocole cryptographique
programme qui permet d'établir une interaction entre des
participants dans un environnement non sûr en
garantissant certaines propriétés.
á E-commerce (paiement, enchères, non-répudiation,. . . )
á E-administration (impots, dossier médical, vote
électronique,. . . )
á Réseaux de machines mobiles distantes (portables,
téléphones,. . . )
Utilisation de la cryptographie (AES, RSA,..) pour chi�rer
les données sensibles et assurer les propriétés voulues.
La question
A quoi bon un co�re-fort indestructible
si la combinaison est récupérable sans e�ort...
La question
E-voting :
L'autorité attribue à chaque votant une clé publique Kpub
pour chi�rer son vote (publication à la mairie). Seule
l'autorité possède K−1pub et peut déchi�rer un message chi�ré
avec Kpub.
á Vote entre Hollande et Sarkozy : chi�rer le nom du
candidat avec la clef publique et l'envoyer à l'autorité
qui est la seule à pouvoir déchi�rer.
á Propriété requise : con�dentialité du vote.
á Faille logique : on peut intercepter mon vote et trouver
mon choix sans connaitre K−1pub !
L'attaque repose sur une faille logique du protocole.
Véri�cation des protocoles :
á donner un modèle formel permettant de trouver les
failles en applicant un algorithme de véri�cation.
á ne véri�e pas l'implémentation du protocole (i.e. le
programme C qui tourne e�ectivement).
á autre approche : modèle computationel. Analyse plus
proche de la théorie de l'information mais relation
forte avec le modèle formel.
Introduction
Modélisation
Modéliser les protocoles
Modéliser l'attaquant
Modéliser les propriétés
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Introduction
Modélisation
Modéliser les protocoles
Modéliser l'attaquant
Modéliser les propriétés
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Protocole d'authenti�cation
(Needham-Schroeder)
A → B :< A, {NA}KB>
B → A :< B, {< NA,NB >}KA>
A → B :< A, {NB}KB>
Deux rôles A(lice), et B(ob).
Protocole d'authenti�cation
(Needham-Schroeder)
A → B :< A, {NA}KB>
B → A :< B, {< NA,NB >}KA>
A → B :< A, {NB}KB>
Keys : clefs de chi�rement KA,KB publiques (pour NS) ou
privées.
Nonce : nombres aléatoires générés à chaque session NA,NB.
Messages : expressions construites avec constantes, paire
< _,_ >, encryption {_}_, hashing, etc.
Protocole d'authenti�cation
(Needham-Schroeder)
A → B :< A, {NA}KB>
B → A :< B, {< NA,NB >}KA>
A → B :< A, {NB}KB>
Sessions : les agents (participants a, b, . . .) jouent les rôles
du protocole. Possibilité de sessions en parallèle et un agent
peut jouer le rôle A dans une session, le rôle B dans une
autre,. . .
Protocole d'authenti�cation
(Needham-Schroeder)
A → B :< A, {NA}KB>
B → A :< B, {< NA,NB >}KA>
A → B :< A, {NB}KB>
Propriété : le protocole assure que A sait qu'il parle à B (et
réciproquement).
Principe de l'analyse de sécurité :
á Le protocole est connu.
á La cryptographie est supposé parfaite (nécessité de
connaitre les clés secrètes pour décrypter).
á Tout message émis peut être intercepté.
á Nombre de sessions en parallèle : nombre �ni donné
(usuellement 3-4) ou non borné.
Introduction
Modélisation
Modéliser les protocoles
Modéliser l'attaquant
Modéliser les propriétés
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
L'attaquant (Intrus)
á Attaquant passif.
Il ne peut interagir avec le protocole et peut juste
intercepter et analyse les messages qui ont circulé.
á Attaquant actif.
Il contrôle le réseau : peut intercepter, détruire,
falsi�er les messages, être un agent du protocole
(participant malhonnête).
Introduction
Modélisation
Modéliser les protocoles
Modéliser l'attaquant
Modéliser les propriétés
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Les Propriétés
á Secrecy : l'intrus arrive à connaitre certaines données.
Exemple : protocole d'échange d'une clé symmétrique
entre deux participants : Le secret est la clé
symmétrique.
Les Propriétés
á Secrecy : l'intrus arrive à connaitre certaines données.
Exemple : protocole d'échange d'une clé symmétrique
entre deux participants : Le secret est la clé
symmétrique.
á Authenti�cation : prouver son identité.
nécéssaire pour paiement electronique !
Réduit à du secret.
Les Propriétés
á Secrecy : l'intrus arrive à connaitre certaines données.
Exemple : protocole d'échange d'une clé symmétrique
entre deux participants : Le secret est la clé
symmétrique.
á Authenti�cation : prouver son identité.
nécéssaire pour paiement electronique !
Réduit à du secret.
á Anonymity :
ne pas retrouver l'identité de l'envoyeur.
Les Propriétés
á Secrecy : l'intrus arrive à connaitre certaines données.
Exemple : protocole d'échange d'une clé symmétrique
entre deux participants : Le secret est la clé
symmétrique.
á Authenti�cation : prouver son identité.
nécéssaire pour paiement electronique !
Réduit à du secret.
á Anonymity :
ne pas retrouver l'identité de l'envoyeur.
á Non-repudiation :
impossibilité de contester son accord (signature de
contrat).
Introduction
Modélisation
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Needham-Schroder n'est pas sûr
Principe de l'attaque : man in the middle
á 3 principaux a, b honnêtes, c malhonnête,
á 2 sessions en parallèle
L'attaquant utilise un participant honnête pour décrypter
ce qu'il ne peut lire.
a → c :< a, {Na}Kc>
1ere règle, session 1, a joue A, c joue B
c(a) → b :< a, {Na}Kb>
1ere règle, session 2, c joue as a pour b
b → c :< b, {< Na,Nb >}Ka>
2eme règle, session 2, b reponds c
c → a :< c, {< Na,Nb >}Ka>
2eme règle, session 2, c joue B, a joue A
a → c :< a, {Nb}Kc>
3eme règle, session 1, a joue A, c joue B
c(a) → b :< a, {Nb}Kb>
3eme règle, session 2, c joue a pour b
b pense parler à a.
Une correction possible :
A → B : {< A,NA >}KB
B → A : {< B, < NA,NB >>}KA
A → B : {< A,NB >}KB
Le cryptage de l'identité empêche c de se faire passer pour
a.
Introduction
Modélisation
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Les règles de déduction de Dolev-Yao
Système (DY) :
Construction :
x y
< x, y >
x y
{x}yDecomposition :
< x, y >
y
< x, y >
x
{x}y y
x
Modélisent le pouvoir de déduction de l'Intrus.
T ` s avec T = {t1, . . . , tn} si s peut être déduit par
utilisation répétée des règles de déduction.
Preuve de T ` s : suite d'application des règles teminant
avec s.
Exemple
Hypothèses {NA}KB,KA,KB,NB
{NA}KBKB
NA NB
< NA,NB > KA
{< NA,NB >}KA
Theorem
Les règles de déduction (DY)sont locales.
Local=si T ` s alors il existe une preuve Pi n'utilisant quedes sous-termes de T ∪ {s}.
Conséquence : existence d'un algorithme polynomial pour
savoir si T ` s.
Preuve de la localité
Récurrence sur la longueur de la preuve Π.
Cas 1 : la dernière règle est une construction.
Π1
u
Π2
v
< u, v >
Par hypothèse de récurrence la propriété est vraie pourΠ1
u
etΠ1
v, donc est vraie pour la preuve totale (s =< u, v >).
idem pour cryptage.
Preuve de la localité
Cas 2 : la dernière règle est une décomposition.
Π1
{u}v
Π2
v
u
La dernière règle de Π1 ne peut être une construction
(sinon Π non minimale).
Π1
{u}vde la forme
Π ′1
< x, {u}v >
{u}v
Par hypothèse de récurrence
elle ne contient que des sous termes de T ∪ {{u}v}, donc
< x, {u}v > sous-terme de T.
Introduction
Modélisation
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Theorem
L'existence d'une attaque par un attaquant passif pour un
nombre �ni de sessions est décidable en temps polynomial.
Conséquence directe de la localité du système (DY).
Introduction
Modélisation
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
La sécurité du protocole est décidable pour un nombre �ni
de sessions : un algorithme NP-complet pour trouver une
attaque existe.
á Beaucoup plus di�cile !
á Utilise la localité.
á Résolution de systèmes de contraintes sur des termes
(expression avec les opérateurs, clés, variables).
Réécriture de Needham-Schroeder :
A 0 → {NA}KBB {y}KB
→ {< y,NB >}KA
{< NA, x >}KA→ {x}KB
{NB}KB→ 0
á Choisir un nombre de sessions
á Choisir un entrelacement des actions de chaque sessions
á Exécution u0 → v0, u1 → v1, . . . , un → vn
á Connaissance de l'intrus :
ä Initiale : t0, . . . , tpä S'acroit de vi à chaque exécution ui → vi.
Système de contraintes associé à une exécution
(S) t0, . . . , tp |= u0v0, t0, . . . , tp |= u0. . .
vi−1 . . . , v0, t0, . . . , tp |= uivi, vi−1 . . . , v0, t0, . . . , tp |= ui. . .
vn, . . . , v0, t0, . . . , tp |= s(secret a trouver)
σ solution de (S) ssi c'est une a�ectation des variables de
(S) telle que σ(vi, . . . , v0, t0, . . . , tp) ` σ(ui), i = 0, . . . , n.
(` déduction dans le système de DY)
Exemple : véri�er que le système de contraintes associé à
une exécution normale de NS a une solution :
0 |= 0
{NA}KB, 0 |= {y}KB
{< y,NB >}KA, {NA}KB
, 0 |= {< NA, x >}KA
{x}KB, {< y,NB >}KA
, {NA}KB, 0 |= {NB}KB
0, {x}KB, {< y,NB >}KA
, {NA}KB, 0 |= pas de secret
Solution ?
Exemple : véri�er que le système de contraintes associé à
une exécution normale de NS a une solution :
0 |= 0
{NA}KB, 0 |= {y}KB
{< y,NB >}KA, {NA}KB
, 0 |= {< NA, x >}KA
{x}KB, {< y,NB >}KA
, {NA}KB, 0 |= {NB}KB
0, {x}KB, {< y,NB >}KA
, {NA}KB, 0 |= pas de secret
Solution ? y = NA, x = NB
Exemple : véri�er que le système de contraintes associé à
une exécution normale de NS a une solution :
0 ` 0
{NA}KB, 0 ` {NA}KB
{< NA,NB >}KA, {NA}KB
, 0 ` {< NA,NB >}KA
{NB}KB, {< NA,NB >}KA
, {NA}KB, 0 ` {NB}KB
0, {NB}KB, {< NA,NB >}KA
, {NA}KB, 0 ` pas de secret
Forme réduite d'un système de contrainte : que des
variables à droite de |=.
Theorem
Une forme réduite a une solution.
Theorem
Il existe un ensemble de règles de transformation qui
transforme tout système en un système équivalent qui est
soit ⊥ (pas de solutions), soit un système en forme réduite.
(penser à la mise en forme triangulaire d'un système
d'équations linéaires)
Et donc :
Theorem (Rusinowitch-Turuani)
Le problème de la sécurité des protocoles pour un nombre
�ni de sessions est Co-NP i.e. trouver une attaque est un
problème NP (et même NP complet).
Introduction
Modélisation
Une attaque sur Needham-Schroder
Localité du modèle Dolev-Yao
Cas de l'Attaquant passif
Cas de l'Attaquant actif
Généralisations
Nombre de sessions indéterminé : le problème est
indécidable (il ne peut pas exister d'algorithme pour le
résoudre).
Prise en compte de propriétés algébriques
á ou exclusif ⊕ : associatif-commutatif, x⊕ x = 0,
á Homomorphisme h(< x, y >) =< h(x), h(y) >,
á . . .
Approche similaire : montrer la localité, puis dé�nir un
algorithme de résolution de contraintes.
Un site de recensement de protocoles et d'attaques :
www.lsv.ens-cachan.fr/spore
Présentation inspirée de celle d'Hubert Comon, LSV,
ENS-Cachan, (Cimpa school, Feb 2005)
Félicitations pour avoir tenu jusqu'ici ! ! !
Félicitations pour avoir tenu jusqu'ici ! ! !
Questions ?