Vérification de protocoles cryptographiques

Preview:

Citation preview

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 ?

Recommended