S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement...

80
ecurit´ e des syst` emes et des r´ eseaux I Objectif : aper¸ cu des probl` emes de s´ ecurit´ e des syst` emes et des r´ eseaux informatiques. I Modules : . Cryptographie appliqu´ ee (2 semaines), . Authentification par mot de passe (1 semaine), . ecurit´ e syst` eme (1 semaine), . ecurit´ e r´ eseaux (2 semaines). I ´ Evaluation : examen de 3h sur machine. 1

Transcript of S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement...

Page 1: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Securite des systemes et des reseaux

I Objectif : apercu des problemes de securite des

systemes et des reseaux informatiques.

I Modules :

. Cryptographie appliquee (2 semaines),

. Authentification par mot de passe (1 semaine),

. Securite systeme (1 semaine),

. Securite reseaux (2 semaines).

I Evaluation : examen de 3h sur machine.

1

Page 2: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Securite des systemes et des reseauxApercu

I Logiciels utilises pendant le cours :

. Kali Linux

. OpenSSL

. JtR et wget

. Yara et clamav

. nmap, tcpdump et scapy

I Une partie de ces logiciels seront directement dispo-

nibles a partir d’une machine virtuelle.

2

Page 3: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Securite des systemes et des reseauxLiens importants

I Contenu du cours :

http://bit.ly/2v3Tr7N

I Interesse(e) par la securite :

https://securimag.org

I Interesse(e) par Grehack :

https://grehack.fr

3

Page 4: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Securite en France

I ANSSI : Agence Nationale de la Securite des

Systemes d’Information

https://www.ssi.gouv.fr

I CNIL : Commission Nationale Informatique et Li-

bertes

https://www.cnil.fr

4

Page 5: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Le risque en securite

I L’impact d’un risque depend de 2 quantites :

. gravite – hauteur des impacts

. vraisemblance – probabilite d’occurrence

I Pour analyser les risques d’un systeme, l’ANSSI a

propose la methode EBIOS : (Expression des Be-

soins et Identification des Objectifs de Securite)

5

Page 6: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Methode EBIOS (I)

I Contexte :• Quel est le sujet de l’etude ?

• Pourquoi et comment va-t-on gerer les risques ?

I Evenements redoutes :• Quels sont tous les evenements craints ?

• Quels seraient les plus graves ?

I Scenarios de menaces :• Quels sont tous les scenarios possibles ?

• Quels sont les plus vraisemblables ?

6

Page 7: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Methode EBIOS (II)

I Risques :• Quelle est la cartographie des risques ?

• Comment choisit-on de les traiter ?

I Mesures de securite :• Quelles mesures devrait-on appliquer ?

• Les risques residuels sont-ils acceptables ?

7

Page 8: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Modele de l’attaquant

I Pour comprendre le risque :• connaıtre l’identite de l’attaquant,

• connaıtre les objectifs de l’attaquant,

• connaıtre les moyens de l’attaquant.

I Identite :• agence gouvernementale,

• societe/organisation privee,

• chercheurs,

• hobbyistes.

8

Page 9: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Protection des communications

I Contexte : 2 personnes discutent sur Internet.

I Risques :• ecoute,

• modifications des messages,

• suppression des messages.

I Solution : cryptographie.

9

Page 10: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Cryptographie appliquee

I La cryptologie est la science du secret.

I La cryptographie est la branche de la cryptologie qui

s’interesse a la conception des ecritures secretes.

I La cryptanalyse est la branche de la cryptologie qui

s’interesse a l’analyse des ecritures secretes.

I La cryptographie appliquee est la mise en œuvre

pratique d’outils cryptographiques.

10

Page 11: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

IntroductionConfidentialite

Alice

Bob

Eve

m

m m

m

m

Canal

I Comment preserver la confidentialite des messages

entre Alice et Bob ?

11

Page 12: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

SolutionChiffrement

Eve

Alice

Bob

EK(m)

Em

K

D m

K′

EK(m)

EK(m)

12

Page 13: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Chiffrement

I E est un algorithme de chiffrement : c = EK(m);

I D est un algorithme de dechiffrement : m =

DK′(c);

I K est la clef de chiffrement (Alice) ;

I K ′ est la clef de dechiffrement (Bob).

I m est le texte clair ;

I c est le texte chiffre (ou simplement chiffre).

13

Page 14: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Symetrique ou asymetrique

• K = K ′ (chiffrement symetrique) :

� Alice et Bob doivent echanger la clef K ;

� Il y a autant de clefs que de correspondants

pour Bob.

• K 6= K ′ (chiffrement asymetrique) :

� K est la clef publique de Bob ;

� K ′ est la clef secrete de Bob ;

� La clef K est commune a tous les corres-

pondants de Bob ;

� Une autorite de confiance certifie l’associa-

tion (K, Bob) ;

14

Page 15: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Cryptographie Symetrique

Cryptographie symetrique

Chiffrement

Flot

Bloc

Hachage Authentification

MAC

Hachage universel

15

Page 16: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Cryptographie symetrique

I Chiffrement : proteger la confidentialite.

I Hachage : proteger l’integrite.

I Authentification : garantir l’authenticite.

� integrite,

� identite.

16

Page 17: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Chiffrement symetrique

I Un chiffrement par bloc E : Fn2 × K → Fn2 tel que

pour toutes clefs K ∈ K, EK(m) est une fonctioninversible de Fn2 vers Fn2 (permutation).

I Pourquoi ?

• pas d’ambiguıte :

∀K ∈ K et m 6= m′, EK(m) = EK(m′).

• on doit avoir m = DK(EK(m)).

17

Page 18: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Arguments de securite

I La securite est garantie par le secret de la clefet jamais par le secret de l’algorithme.

I La securite est un argument probabiliste :

au mieux |K|−1 = 2−` si K = F`2.

I On doit choisir ` pour que |K|−1 soit negligeable.

18

Page 19: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Arguments de securite

I Que connaıt l’attaquante Eve :

EK(m) chiffre seul

EK(m) et m clair connu

EK(m′) et m′ clair choisi

I La cryptanalyse ad-hoc contre un chiffrement par

bloc est la recherche exhaustive (clair connu).

I Eve cherche une clef Z telle que EZ(m) = EK(m).

Complexite moyenne : 2`−1

19

Page 20: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Taille des clefs

I Recommandations de l’ANSSI :

Periode `

2014-2020 100

2021-2030 128

I Pourquoi la securite des clefs perime-t-elle ?

Puissance des ordinateurs = loi exponentielle.

I https://www.keylength.com/fr

20

Page 21: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Arguments de securite

I Il existe d’autres formes de cryptanalyse :

• compromis temps/memoire,

• cryptanalyse lineaire,

• cryptanalyse differentielle,

• cryptanalyse algebrique. . .

I Preuve de securite (chiffrement symetrique) :il n’existe pas de cryptanalyse plus efficace que la

recherche exhaustive.

21

Page 22: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Chiffrement par bloc

F F F F

K1 K3K2 Kr

r tours

cm

I Le principe general d’un chiffrement iteratif par blocs

est le suivant : pour chaque bloc, on itere r fois une

fonction interne F .

I Comme on veut que le chiffrement soit inversible

(pour pouvoir dechiffrer), il faut que les fonctions

FKisoient bijectives.

22

Page 23: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Chiffrement par bloc

I AES – Advanced Encryption Standard

• standardise par le NIST en 2001.

• 3 variantes :

� n = 128 bits et ` = 128 bits

� n = 192 bits et ` = 192 bits

� n = 256 bits et ` = 256 bits

• remplace le DES Data Encryption Standard

� n = 64 bits et ` = 56 bits

23

Page 24: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

En pratique

I On doit chiffrer un message de longueur p.

• Comment faire quand p > n ?

• Comment faire quand p 6= 0 mod n ?

I p > n → mode operatoire.

I p 6= 0 mod n → bourrage.

24

Page 25: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Electronic CodeBook (ECB)

Ek

m1

c1

Ek

m2

c2

Ek

ci

mi

Chiffrement

25

Page 26: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Electronic CodeBook (ECB)

Dk

c1

m1

Dk

mi

Dk

cic2

m2

Dechiffrement

26

Page 27: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

ResultatSource : Wikipedia

I Le mode ECB ne permet pas de cacher la structure

des donnees qui sont chiffrees !

27

Page 28: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Objectifs

I On ne doit rien apprendre sur le texte clair a partir

du texte chiffre !

I Deux blocs identiques dans le meme fichier ne doivent

pas etre chiffres de la meme facon.

I Deux textes claires identiques ne doivent pas avoir le

meme chiffre.

28

Page 29: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Chiffrement rendu aleatoire

I Un chiffrement rendu aleatoire permet en utilisant

une valeur aleatoire de chiffrer plusieurs fois un meme

message et d’obtenir des textes chiffres differents.

I On introduit un nonce dans le chiffrement.

Comment implementer un nonce ?

• avec un compteur ;

• avec un timestamp ;

• avec un nombre aleatoire ;

• combinaison des 3 precedents.

29

Page 30: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Cipher-Block Chaining (CBC)

Ek

VI

m1

Ek

m2

Ek

mi

did2d1

30

Page 31: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Cipher-Block Chaining (CBC)

VI

Dk

c1

m1

Dk

m2

c2

Dk

ci

mi

Dechiffrement

31

Page 32: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Cipher-Block Chaining (CBC)

I Si on a une erreur sur un bloc de texte chiffre ci alors

l’erreur sera propagee sur mi et mi+1. De la meme

facon, si on perd un bloc ci, on perd mi et mi+1 mais

pas mi+2.

I Le chiffrement est sequentiel.

I Le dechiffrement est parallele.

32

Page 33: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

CounTeR (CTR)

VI

Ek

f

EkEk

c1

m1

m2

mi

cic2

Chiffrement

33

Page 34: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

CounTeR (CTR)

c2 ci

c1

VI

Ek

m2

f

Ek

mi

Ek

m1

Dechiffrement

34

Page 35: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Modes operatoires

I Proprietes :

ECB CBC CTR

Securite 7 3 3

Parallelisme 3 7 3

Implantation 7 7 3

I Probleme de confidentialite : AES-128-CTR

35

Page 36: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Renforcement du DES

I Puisque la principale faiblesse du DES est la taille

trop faible de ces clefs, on a essaye de composer

plusieurs DES pour rallonger la clef.

I Plusieurs strategies :• double-DES

• triple-DES

• modes operatoires composes

I Nouvelle cryptanalyse : attaque meet-in-the middle.

36

Page 37: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Double-DES

I Soient E et D respectivement un algorithme de

chiffrement et de dechiffrement :{E : {0, 1}` × {0, 1}n→ {0, 1}nD : {0, 1}` × {0, 1}n→ {0, 1}n

I Pour doubler la taille de la clef de E, on effectue

l’operation suivante :

c = Ek2(Ek1(m))

avec k1, k2 ∈ {0, 1}`. On attend une securite de 22`.

37

Page 38: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Attaque meet-in-the-middleDiffie et Hellman

I On effectue une attaque a clair connu : l’atta-

quant connaıt deux couples (m, c = Ek2(Ek1(m)))

et (m′, c′ = Ek2(Ek1(m′))).

I On observe la relation suivante :

c = Ek2(Ek1(m))

Dk2(c) = Dk2(Ek2(Ek1(m))

= Ek1(m)

38

Page 39: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Attaque meet-in-the-middle

I Etape 1 : on stocke Ek1(m) pour toutes les valeurs

possibles de k1.

I Etape 2 : on calcule Dk2(c) pour toutes les valeurs

possible de k2 et teste s’il existe Dk2(c) = Ek1(m).

I Etape 3 : on obtient des couples k′1, k′2 pour trouver

le bon, on cherche k′1, k′2 tel que c′ = Ek′2

(Ek′1(m′)).

39

Page 40: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Analyse

I Probabilite d’avoir Dk2(c) = Ek1(m) : 2m

2`.

I Cout de l’etape 1 : T = 2` et M = 2`

I Cout de l’etape 2 : T = 2` et M = 1

I Cout de l’etape 3 : T = 1 et M = 1

I Cout final : T = 2` + 2` et M = 2`

40

Page 41: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Probleme d’integrite

I Quand un document est publie, les destinataires

veulent pouvoir s’assurer qu’il n’a pas ete modifie

par qui que ce soit.

I On veut detecter toutes formes d’alterations :

— accidentelles,

— volontaires.

I Comment faire ?

41

Page 42: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Hachage

Definition. Une fonction de hachage H a les pro-

prietes suivantes :— H est facilement calculable.

— H : {0, 1}?→ {0, 1}`.

H

m d

42

Page 43: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Termes

I m est un message de longueur arbitraire

I d est le condensee (ou empreinte).

I Si on trouve x 6= x′ tel que H(x) = H(x′), alors on

parle de collision entre x et x′.

I Il existe toujours des collisions pour une fonction de

hachage.

43

Page 44: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Balls into bins

I On dispose de m balles et de n urnes. On place les

balles de maniere aleatoire dans les urnes.

1 42 3 n

I L’etude de la repartition des balles dans les urnes est

fondamentale en informatique et en cryptographie.

44

Page 45: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Deux balles dans une urne ?

Definition 1. Dans une assemblee de 23 personnes,

la probabilite qu’au-moins 2 d’entre-elles aient leur

anniversaire le meme jour est superieure a 12.

I Probleme general : on tire k valeurs aleatoires de

` bits (n = 2`). Qu’elle est la probabilite d’avoir au

moins une collision ?

45

Page 46: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Paradoxe des anniversaires

I Soit Pk la probabilite d’avoir des tirages tous 6=.

P2 =n− 1

n,

P3 =

(n− 1

n

)·(n− 2

n

),

Pk =

(n− 1

n

)·(n− 2

n

)· · ·(n− k + 1

n

).

I On a :

Pk =

k∏i=1

(1− i

n

).

46

Page 47: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Paradoxe des anniversaires

I La probabilite d’avoir au moins une collision :

1− Pk = 1−k∏i=1

(1− i

n

).

I On a : 1− Pk ≈ 1− e−k(k−1)

2n .

I On a : k ≈√

2n · ln(

11−Pk

).

I On retiendra que si k > 2`/2 alors 1− Pk > 12.

47

Page 48: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Applications en securiteIntegrite

Eve

BobAlice

m′ m′m

I Alice et Bob veulent detecter les modification d’Eve.

I Solution : hachage cryptographique + canal securise.

48

Page 49: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Applications en securiteAuthenticite

Eve

BobAlice

m′ m′m

I Alice et Bob veulent detecter les modification d’Eve.

Bob veux etre sur que les messages sont ceux

d’Alice.

I Solution : hachage cryptographique + clef.

49

Page 50: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

MDC et MAC

I Codes de detection de modifications (MDC)— Hachage cryptographique sans clef.

— Protection de l’integrite du message.

I Codes d’authentification de messages (MAC)— Hachage cryptographique avec clef.

— Protection de l’authenticite du message.

50

Page 51: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Pre-image

I Etant donne d = H(m), retrouver m.

I 2` calculs de condense pour retrouver m.

m dH

difficile

51

Page 52: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

2emePre-image

I Etant donne m, trouver m′ tel que H(m) = H(m′).

I 2` calculs de condense pour trouver m′.

H

H

dm′

m

52

Page 53: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Collision

I Trouver m et m′ tel que H(m) = H(m′).

I 2`/2 calculs de condense pour trouver une collision.

H

H

dm′

m

53

Page 54: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Classification

I Fonction de hachage a sens unique :— Resistance a la pre-image.

— Resistance a 2eme pre-image.

I Fonction de hachage resistante aux collisions :— Resistance a 2eme pre-image.

— Resistance aux collisions.

54

Page 55: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Attaque de Yuval

I Input : M et M deux messages.

I Output : M ′ ≈M et M ′ ≈ M , H(M ′) = H(M ′)

1. Generer 2`/2 modifications de M , note M ′

— calculer H(M ′) et les stocker dans une table.

2. Generer des M ′ tel que H(M ′) jusqu’a ce que ce

soit dans la table.

55

Page 56: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Construction de Merkle-Damgaard

I Bourrage de m pour avoir |m| = k.b bits.

I Decoupage du message m en blocs de taille b.

df

m1 m2 mn

ff

I Si f est resistante aux collisions, alors H l’est aussi.

56

Page 57: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Code d’Authentification de MessagesDefinition

I Un Message Authentification Code (ou MAC) est

une valeur authentifiant un message

I Une personne verifiant le MAC obtient :

• une garantie que le message n’a pas ete modifiee.

• une garantie sur l’identite de celui qui l’a forgee.

I Le calcul d’un MAC est parametre par une clef k.

57

Page 58: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Definition

I Message de taille variable :

MAC : {0, 1}` × {0, 1}?→ {0, 1}d.

I Message de taille fixe t :

MAC : {0, 1}` × {0, 1}t→ {0, 1}d.

58

Page 59: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

MACs vs Signatures

I MACs :• clef secrete (verifiable par 1)

• integrite des donnees

• authentification de l’emetteur

• efficace

I Signatures :• clef publique (verifiable par tous)

• non-transitivite

• non-repudiation

• integrite des donnees

• authentification de l’emetteur

59

Page 60: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Scenarios d’attaque

I Attaque sans aide : aucune information requise

I Attaque a messages connus : l’attaquant dispose

d’une collection de messages et de leurs authenti-

fiants.

I Attaque a messages choisis : l’attaquant peut

obtenir l’authentification de messages qu’il a choisi.

60

Page 61: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Objectifs

I Recouvrement de la clef secrete

I Forge universelle : produire des authentifiants

quelque soit le message.

I Forge existentielle : produire un message avec un

authentifiant valide.

I Distingueur : distinguer les authentifiants de valeurs

aleatoires.

61

Page 62: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Bornes fondamentales de securite

I Adversaire aleatoire : probabilite de forger un au-

thentifiant au hasard max(

12`, 1

2d

).

I Paradoxe des anniversaires : apres l’authen-

tification de 2d2 messages la probabilite d’avoir

MACk(m) = MACk(m′) avec m 6= m′ est non-

negligeable.

62

Page 63: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Attaque generique

I Pour faire une recherche exhaustive sur la clef, il faut

disposer d’une equations a verifier.

I Un message et de son authentifiant t =

MACk(m) ne suffisent pas !

I Du fait du paradoxe des anniversaires generalise, on

va trouver 2`−d clefs qui associent m a t (`� d).

63

Page 64: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Attaque generique

I Etape 1 : On effectue une attaque a messages choisis

jusqu’a obtenir m 6= m′ tel que :

MACk(m) = MACk(m′).

I Etape 2 : On cherche k′ tel que :

MACk′(m) = MACk′(m′).

I Etape 3 : k = k′

64

Page 65: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Complexite

I Recherche de la collision : 2d2.

I Recherche exhaustive : 2`.

65

Page 66: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

CBC-MAC

Ek

VI

m1

Ek

m2

Ek

mi

d

I Avec ou sans VI ?

I Message de longueur variable ou fixe ?

66

Page 67: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Valeur d’initialisation

I Soit m = m1||m2 de code d’authentification :

t = Ek(m2 ⊕ Ek(m1 ⊕ V I))

I Quelque soit m = (m′1||m2) avec m′1 6= m1 on a :

V I ′ = V I ⊕m1 ⊕m′1, tel que

t′ = Ek(m2 ⊕ Ek(m′1 ⊕ V I ′))

= Ek(m2 ⊕ Ek(m′1 ⊕ V I ⊕m1 ⊕m′1))

= Ek(m2 ⊕ Ek(m1 ⊕ V I))

= t

67

Page 68: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Attaque par extension

I On considere une attaque de contrefacon existentielle

avec 2 messages :

— m = (m1||m2) de MAC t

— m′ = (m′1||m′2||m′3) de MAC t′

I L’attaquant peut forger :

m′′ = (m1||m2||m′1 ⊕ t||m′2||m′3)

avec un MAC valide t′

68

Page 69: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Conclusions CBC-MAC

I Ne pas utiliser de valeur V I dans CBC-MAC.

I On doit travailler avec des messages de taille fixe.

69

Page 70: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

EMACEncrypt Last Block

d

Ek

VI

m1

Ek

m2

Ek

mi

Es

70

Page 71: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

HMAC

71

Page 72: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Generation de clefs

I Comment choisir k dans K ?

I Condition 1 – Les clefs doivent etre tirees suivant la

loi uniforme dans K et doivent etre independantes.

I Condition 2 – Eve ne doit pas etre capable de

predire le choix de votre clef.

72

Page 73: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Condition 2 – Information propre

I L’information propre i(·) doit satisfaire :

— i(·) est decroissante.

— limp→1 i(p) = 0 et limp→0 i(p) =∞— A et B independants : i(A ·B) = i(A) + i(B).

— i(pn) = ni(p).

I Plus un evenement est improbable plus son informa-

tion doit etre grande.

73

Page 74: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Condition 2 – Information propre

0 0,5 1 x

y

0

1

2

3

4

5

74

Page 75: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Condition 2 – Information propre

I Soit un evenement A de probabilite non-nulle. L’in-

formation propre apportee par A et notee i(A) est

definit par :

i(A) = − log(Pr(A)).

75

Page 76: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Condition 2 – Entropie de Shannon

I L’entropie de Shannon d’une variable aleatoire X

est le nombre reel qui mesure l’incertitude sur la

valeur de X. L’entropie de Shannon est definit par :

H(X) = −∑x

PrX(x) log(PrX(x)).

I Entropy de Renyi : Hα(X) = 11−α log (

∑xPrαX(x)) .

76

Page 77: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Exemple

I Epreuve de Bernoulli de succes q. On a :

H(X) = −q log2(q)− (1− q) log2(1− q).

0 1q

H(x)

0

1

77

Page 78: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Condition 1 – Generateur aleatoire

I On parle de generateur aleatoire ou pseudo-aleatoire

pour designer 2 types d’algorithme :

. a partir d’une graine, on produit une sequence de

nombres.

G

Init.

nombre

graine

78

Page 79: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Condition 1 – Generateur aleatoire

I Exemple : rand ou random

I Vous pouvez oublier ce type de generateur car l’entro-

pie d’un nombre est l’entropie de la graine (condition

2 non satisfaite).

I Predictible

79

Page 80: S ecurit e des syst emes et des r eseaux - ENSIMAG · Chi rement I Eest un algorithme de chi rement : c= E K(m); I D est un algorithme de d echi rement : m = D K0(c); I Kest la clef

Condition 1 – Generateur aleatoire

I Pour produire un nombre, on collecte une valeur a

forte entropie.

G

Init.

nombre

graine

entropie

I Exemple : /dev/random sous Linux (mais pas sous

BSD et MAC)

80