s ecurit e des syst emes et des r eseaux - ensimag · chi rement i eest un algorithme de chi rement...
TRANSCRIPT
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
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
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
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
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
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
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
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
Protection des communications
I Contexte : 2 personnes discutent sur Internet.
I Risques :• ecoute,
• modifications des messages,
• suppression des messages.
I Solution : cryptographie.
9
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
IntroductionConfidentialite
Alice
Bob
Eve
m
m m
m
m
Canal
I Comment preserver la confidentialite des messages
entre Alice et Bob ?
11
SolutionChiffrement
Eve
Alice
Bob
EK(m)
Em
K
D m
K′
EK(m)
EK(m)
12
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
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
Cryptographie Symetrique
Cryptographie symetrique
Chiffrement
Flot
Bloc
Hachage Authentification
MAC
Hachage universel
15
Cryptographie symetrique
I Chiffrement : proteger la confidentialite.
I Hachage : proteger l’integrite.
I Authentification : garantir l’authenticite.
� integrite,
� identite.
16
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
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
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
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
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
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
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
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
Electronic CodeBook (ECB)
Ek
m1
c1
Ek
m2
c2
Ek
ci
mi
Chiffrement
25
Electronic CodeBook (ECB)
Dk
c1
m1
Dk
mi
Dk
cic2
m2
Dechiffrement
26
ResultatSource : Wikipedia
I Le mode ECB ne permet pas de cacher la structure
des donnees qui sont chiffrees !
27
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
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
Cipher-Block Chaining (CBC)
Ek
VI
m1
Ek
m2
Ek
mi
did2d1
30
Cipher-Block Chaining (CBC)
VI
Dk
c1
m1
Dk
m2
c2
Dk
ci
mi
Dechiffrement
31
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
CounTeR (CTR)
VI
Ek
f
EkEk
c1
m1
m2
mi
cic2
Chiffrement
33
CounTeR (CTR)
c2 ci
c1
VI
Ek
m2
f
Ek
mi
Ek
m1
Dechiffrement
34
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Pre-image
I Etant donne d = H(m), retrouver m.
I 2` calculs de condense pour retrouver m.
m dH
difficile
51
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
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
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
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
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
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
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
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
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
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
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
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
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
Complexite
I Recherche de la collision : 2d2.
I Recherche exhaustive : 2`.
65
CBC-MAC
Ek
VI
m1
Ek
m2
Ek
mi
d
I Avec ou sans VI ?
I Message de longueur variable ou fixe ?
66
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
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
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
EMACEncrypt Last Block
d
Ek
VI
m1
Ek
m2
Ek
mi
Es
70
HMAC
71
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
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
Condition 2 – Information propre
0 0,5 1 x
y
0
1
2
3
4
5
74
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
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
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
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
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
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