47

Vérification de protocoles cryptographiques

Embed Size (px)

Citation preview

Page 1: Vérification de protocoles cryptographiques

14eme Rencontre Professeurs et

Enseignants-Chercheurs

Véri�cation de protocoles

cryptographiques

Denis Lugiez

Laboratoire d'Informatique Fondamentale

Page 2: Vérification de protocoles cryptographiques

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

Page 3: Vérification de protocoles cryptographiques

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

Page 4: Vérification de protocoles cryptographiques

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.

Page 5: Vérification de protocoles cryptographiques

La question

A quoi bon un co�re-fort indestructible

si la combinaison est récupérable sans e�ort...

Page 6: Vérification de protocoles cryptographiques

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 !

Page 7: Vérification de protocoles cryptographiques

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.

Page 8: Vérification de protocoles cryptographiques

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

Page 9: Vérification de protocoles cryptographiques

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

Page 10: Vérification de protocoles cryptographiques

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).

Page 11: Vérification de protocoles cryptographiques

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.

Page 12: Vérification de protocoles cryptographiques

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,. . .

Page 13: Vérification de protocoles cryptographiques

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).

Page 14: Vérification de protocoles cryptographiques

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é.

Page 15: Vérification de protocoles cryptographiques

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

Page 16: Vérification de protocoles cryptographiques

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).

Page 17: Vérification de protocoles cryptographiques

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

Page 18: Vérification de protocoles cryptographiques

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.

Page 19: Vérification de protocoles cryptographiques

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.

Page 20: Vérification de protocoles cryptographiques

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.

Page 21: Vérification de protocoles cryptographiques

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).

Page 22: Vérification de protocoles cryptographiques

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

Page 23: Vérification de protocoles cryptographiques

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.

Page 24: Vérification de protocoles cryptographiques

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.

Page 25: Vérification de protocoles cryptographiques

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.

Page 26: Vérification de protocoles cryptographiques

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

Page 27: Vérification de protocoles cryptographiques

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.

Page 28: Vérification de protocoles cryptographiques

Exemple

Hypothèses {NA}KB,KA,KB,NB

{NA}KBKB

NA NB

< NA,NB > KA

{< NA,NB >}KA

Page 29: Vérification de protocoles cryptographiques

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.

Page 30: Vérification de protocoles cryptographiques

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.

Page 31: Vérification de protocoles cryptographiques

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.

Page 32: Vérification de protocoles cryptographiques

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

Page 33: Vérification de protocoles cryptographiques

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).

Page 34: Vérification de protocoles cryptographiques

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

Page 35: Vérification de protocoles cryptographiques

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).

Page 36: Vérification de protocoles cryptographiques

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.

Page 37: Vérification de protocoles cryptographiques

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)

Page 38: Vérification de protocoles cryptographiques

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 ?

Page 39: Vérification de protocoles cryptographiques

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

Page 40: Vérification de protocoles cryptographiques

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

Page 41: Vérification de protocoles cryptographiques

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)

Page 42: Vérification de protocoles cryptographiques

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).

Page 43: Vérification de protocoles cryptographiques

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

Page 44: Vérification de protocoles cryptographiques

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.

Page 45: Vérification de protocoles cryptographiques

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)

Page 46: Vérification de protocoles cryptographiques

Félicitations pour avoir tenu jusqu'ici ! ! !

Page 47: Vérification de protocoles cryptographiques

Félicitations pour avoir tenu jusqu'ici ! ! !

Questions ?