Crypto Master 2020 v1
Crypto Master 2020 v1
Crypto Master 2020 v1
Cryptographique.
1
Sécurité informatique
C’est quoi la
sécurité ?
2
• La confidentialité : l'information échangée entre deux
correspondants ne peut pas être consultée par un troisième.
3
• L'authentification : les personnes utilisant une ressource
correspondent aux noms d'utilisateurs.
4
• La disponibilité : les données ainsi que les ressources du système
informatique sont accessibles par ceux qui en ont besoin à chaque
fois qu'ils demandent.
5
• L'intégrité de données : l'information n'est modifiée que par les
personnes en ayant le droit, et de façon volontaire.
6
• Non-répudiation:
7
Scénarios typiques
8
Scénarios typiques
9
Types d’attaques
10
Principales techniques de défense et de sécurité :
De nos jours différentes techniques et méthodes ont été développées
pour mettre en œuvre une stratégie de sécurité :
•Authentification,
•Cryptographie,
•Firewalls,
•Proxy,
•VPN,
•Les anti-virus,
•Les systèmes de détection d’intrusion.
11
Concepts de base
12
Concepts de base
13
Concepts de base
14
Cryptographie
• La cryptographie est un ensemble de techniques qui
protègent un message en le transformant en un autre
message : cette transformation modifie l’information
contenue dans le message original pour rendre l’information
transmise non compréhensible.
15
Concepts de base
• Cryptographie : l’art et la science de garder le secret des messages.
{ secret (crypto) writing (graphy)}
17
Concepts de base
18
Concepts de base
19
Les clés symétriques
• Elles correspondent a des (mots de passe)
• La même clé est utilisée pour crypter et décrypter
• La clé doit être échangée
Les systèmes à clés asymétriques "publiques"
• Des clés différentes sont utilisées pour crypter et décrypter
• Les clés ont deux parties, l’une "publique", l’autre "privée"
• Seulement la partie "publique" des clés a besoin d’être
changée
20
Exemple d’utilisation : clé symétrique
21
Principe des systèmes à clés publiques
22
• Bob a une paire de clés (privée + publique)
• Bob donne sa clé publique à Alice
• Alice crypte un message destiné à Bob en utilisant
la clé publique de Bob, Alice sait que seul Bob (qui
a la clé privée correspondante) pourra décrypter
le message
• Bob décrypte le message à l’aide de sa clé privée.
23
Techniques cryptographiques
classiques
Chiffrement asymétrique (a clé
publique)
Chiffrement à clé publique
51
Chiffrement à clé publique
Le problème 1: Dans le cas d’un système de chiffrement symétrique,
l’émetteur et le récepteur doivent posséder et utiliser la même clé secrète
pour rendre confidentielles des données échangées, ceci pose le problème
de la diffusion des clés secrètes.
Chiffrement à clé publique
Le problème 2: Chaque entité doit disposer d’autant de clés secrètes
qu’elle a d’interlocuteurs (problème de gestion autant de clés différentes).
Considérer N utilisateurs (une clé pour chaque couple) !!!!
53
Chiffrement à clé publique
Un chiffrement à clé publique (asymétrique) comprend une entité qui a
pour rôle de générer pour chaque interlocuteur, qui désire communiquer
des données confidentielles, un couple de clés calculées l’une par rapport
à l’autre et indissociables.
• Une partie secrète = clé privée doit être confidentielle et traitée comme
un secret.
Chiffrement à clé publique
Chacun peut connaître la clé publique des partenaires de la
communication en la demandant à l’autorité de gestion des clés.
Considérer N utilisateurs (une paire de clés pour chaque utilisateur) !!!!
Méthode 1:
Bob envoie un message à Alice, Bob chiffre le message avec la clé publique de
Alice
Alice reçoit le message chiffré et pour le déchiffrer elle se sert de sa clé privé
Chiffrement à clé publique
• Méthode 2:
Bob envoie un message à Alice, Bob chiffre (signe) le message avec sa
clé privée.
Alice reçoit le message chiffré et pour le déchiffrer elle se sert de la clé
publique de Bob
Chiffrement à clé publique
Afin de permettre à ses correspondants de lui envoyer des messages cryptés,
un participant doit calculer sa clé publique qu’il diffusera à tous le monde dans
un annuaire, il prépare également sa clé privée qu’il sera seul à connaitre.
Tous les participants ont accès aux clés publiques
Les clés privées sont générées localement par chaque participant
À tout moment un participant peut changer sa clé privée par conséquence il
doit enregistrer sa clé publique conjointe.
Chiffrement à clé publique
• Types de clés:
Clé secrète : Km (conventionnelle) m : modification; Ks: clé de session
Clé publique: KUa pour l’utilisateur A
Clé privée correspondante : Kra (pour l’utilisateur A)
• Fonctionnement
1. La source Alice envoie un texte clair X = [X 1 , X 2 , …, X M ] vers le
destinataire Bob
2. Bob génère une paire de clé : KUb (accessible à Alice) et KRb (connue
seulement par Bob)
3. Alice forme le message chiffré (Y) par clé publique de Bob (KUb): Y=EKUb [X]
4. Le récepteur Bob correspondant possède la clé privée capable de déchiffrer
Y. X = DKRb [Y]
Chiffrement à clé publique
Y=EKUb [X]
X = DKRb [Y]
Chiffrement à clé publique
Pour le chiffrement asymétrique:
1. Pour chaque participant exp: Bob, il est facile par ordinateur de générer la paire de
clés (clé publique KUb , clé privée KRb
4. Non faisable de déterminer par ordinateur la clé privée de Bob (KRb ) connaissant
sa clé publique (KUb )
RSA
Algorithme RSA
L’algorithme RSA est sans doute le plus utilisé des systèmes à clé publique
actuellement; il a été publié en 1978 par Ronald L. Rivest, Adi Shamir et Leonard
M. Adleman.
Il peut être utilisé pour chiffrement, la signature numérique et l’échange des clés
secrètes.
Il nécessite des clés d’au moins 1024 bits pour obtenir une sécurisation
satisfaisante.
Algorithme RSA
• Étape 1: Création des clés
• Choisir au hasard deux nombres premiers p et q (les deux
étant plus grands que 10100)
• Calcule n=p*q.
• Choisir au hasard e tel que :
• Principe
• Avant de commencer, Alice et Bob choisissent un nombre premier p et un générateur g mod p, (1 < g < p −
1) qui peuvent être publics.
Alice génère aléatoirement un nombre a entre 1 Bob génère aléatoirement b entre 1 et p − 1.
et p − 1.
Alice calcule A = ga mod p. Bob calcule B = gb mod p.
1. Alice −→ Bob : A
2. Bob −→ Alice : B
Alice et Bob partagent maintenant la même clé secrète K, car Ba= Ab= gabmod p.
La sécurité repose sur la difficulté de calculer a et b, c'est-à-dire de calculer le logarithme discret mod p.
Algorithme Diffie Hellman
Exemple :
Alice et Bob souhaitent échanger une clé.
1. Soient les valeurs p = 353 et g = 3 rendues publiques.
2. Ils sélectionnent chacun une valeur aléatoire : Alice choisit a = 97, Bob choisit
b = 233.
3. Ils calculent la clé publique : A = 397 mod 353 = 40 (pour Alice) et B = 3233 mod
353 = 248 (pour Bob).
4. Et calculent finalement la clé de session : KAB = (B)a mod 353 = 24897 mod 353
= 160 (pour Alice) et KAB = (A)b mod 353 = 40233 mod 353 = 160 (pour Bob).
La gestion des clés
La gestion des clés
La gestion des clés est constituée de quatre domaines :
La génération des clés : il faut prendre garde aux caractères choisis, aux
Le stockage des clés : que ce soit dans des fichiers, sur supports extérieurs,
…
Cas 1: Distribution des Clés symétriques.
Dans le cas de chiffrement symétrique, il est nécessaire pour les deux usagers de
partager une clé secrète commune
– Utiliser une ancienne clé pour chiffrer une nouvelle clé (ce qui suppose
cependant un échange préalable de cette ancienne clé).
a – Annonce publique
A- Annonce Publique
- Chaque participant dispose de la clé publique de l’autorité (KU auth). Ainsi, lorsqu’un
participant désirera obtenir la clé publique d’un correspondant, il enverra une
requête daté à l’autorité par l’utilisation d’un marqueur temporel (timestamp).
Problème: centralisation +
7 messages
Cas 2: Distribution des Clés Asymétriques
d- Certificats de clés publiques
Cas 3: Distribution des Clés Asymétriques pour
l’échange d’une clé de session.
3. B produit une clé Ks de session et l’envoie à A (Ks est chiffrée par clé
publique fournie par A)
2. B envoie un message à A chiffré avec KUa contenant le nonce de A (N1) ainsi qu’un
nouveau nonce produit par B (N2). Puisque seul B pourrait avoir déchiffré le message (1).
4. A choisit une clé de session Ks secrète et envoie M = EKUb [EKRa [Ks]] à B. Le chiffrement
de cette clé avec la clef privée de A assure que seul A peut l’avoir envoyée.
108
Introduction
– Plusieurs participants.
109
• Rôle: abstraction du protocole ou l’emphase est mise sur un
principal donné.
Rôle de A
Rôle de B
Protocole
Rôle de S
110
Introduction
Rôle Généralisé: abstraction d’un rôle où des messages sont remplacés par des
variables. On remplace par une variable un message ou une composante d’un message
qu’un agent reçoit sans pouvoir vérifier sa valeur.
111
Trace d’exécution
Rôle généralisé
Trace d’exécution
113
Capacité de l’intrus
114
Capacité de l’intrus
115
Exercice
116
Failles
117
Failles : exemple
119
Exemple
120
Exemple (suite)
– Faille de fraîcheur.
– Faille d’oracle.
– Faille d’association.
– Faille de type.
– Faille d'implantation.
– Faille de répudiation
– Etc.
122
Failles de fraîcheur
• Une faille de fraicheur se produit quand un message ( ou une
composant d’un message) d’une session précédente d’un
protocole est enregistré par un intrus et introduites comme
msg (ou une composant d’un msg) dans une session
ultérieure d’un protocole.
• Exemple: Protocole de distribution de clés de Needham-
Schroeder.
Message 1 : A S : A, B, Na
Message 2 : S A : {Na, B, Kab, {Kab,A}KbS }KaS
Message 3 : A B : {Kab, A}KbS
Message 4 : B A : {Nb}Kab
Message 5 : A B : {Nb-1}Kab
123
Failles de Fraîcheur
Exemple (suite):
Protocole:
125
Failles d’oracle
1 A B : { Na , A }kb
2 B A : { Na , Nb }ka
3 A B : { Nb }kb
126
Faille d’oracle à rôle simple (suite):
{Na,A}ki {Na,A}ki Nb
1.1 Na,A {Nb}kb
{Na,Nb}ka {Na,A}kb
{Na,A}ki
1.2 {Na,Nb}ka
{Na,Nb}ka
{Nb}ki
Na,Nb
{Nb}ki
{Nb}ki
1.3
A I
-1 -1
ka,ka ki, ki
ki ka
kb kb
{Na,Nb}ka
2.1 2.2 2.3
{Na,A}kb {Nb}kb
1.1 A I : { Na , A }ki
2.1 I(A) B : { Na , A }kb
2.2 B I(A) : { Na , Nb }ka
1.2 I A : { Na , Nb }ka
1.3 A I : { Nb }ki
2.3 I(A) B : { Nb }kb
128
Failles d’oracle
• Faille
129
Failles d’association
Message 1 : A S : A, B, Na
Message 2 : S A : S, {S, A, Na, Kb}K-1s
130
Failles d’association
Exemple (suite):
Protocole :
Protocole de distribution de clés publiques
Message 1 : A S : A, B, Na
Message 2 : S A : S, {S, A, Na, Kb}K-1s
Scénario d’attaque :
Message 1.1 : A I(S) : A, B, Na
Message 2.1 : I(A) S : A, I, Na
Message 2.2 : S I(A) : S, {S, A, Na, Ki}K-1s
Message 1.2 : I(S) A : S, {S, A, Na, Ki}K-1s
131
Failles de type
Cas ou un intrus base son attaque sur la substitution d’un champ (ou une
composante) d’un message par un champ de type différent.
Exemple : Protocole de Otway-Rees
132
Failles de type
Exemple :
Protocole de Otway-Rees :
Message 1 : A B : M, A, B, {Na, M, A, B}Kas
Message 2 : B S : M, A, B, {Na, M, A, B}Kas ,
{Nb,M, A, B}Kbs
Message 3 : S B : M, {Na, Kab}Kas,{Nb, Kab}Kbs
Message 5 : B A : M, {Na, Kab}Kas
Scénario d’attaque :
133
Failles d'implantation
134
Failles d'implantation
Exemple I (suite):
Protocole à trois passes :
Message 1 : A B : {M}Ka
Message 2 : B A : {{M}Ka}Kb
Message 3 : A B : {M}Kb
136
Remarque
• Une faille peut contenir un nombre important
d’étapes de communication.
137