Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Crypto Master 2020 v1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 137

Cours : Système

Cryptographique.

Mme Abbaci Kahya Noudjoud

1
Sécurité informatique

C’est quoi la
sécurité ?

La sécurité informatique est l’ensemble de méthodes, techniques et


outils mis en œuvre pour la protection des systèmes, des données et
des services contre des menaces accidentelles ou intentionnelles afin
d’assurer :

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:

– non-répudiation d’origine: l’émetteur ne peut nier avoir écrit le


message.

– non-répudiation de réception: le receveur ne peut nier avoir reçu


le message.

– non-répudiation de transmission: l’émetteur du message ne peut


nier avoir envoyé le message.

7
Scénarios typiques

• Expéditeur et destinataire : deux entités importantes et reliées.


Expéditeur (émetteur) message destinataire (récepteur)

• intercepter + interrompre Interruption : attaque sur la disponibilité


• intercepter + lire Interception : attaque sur la confidentialité
• intercepter + modifier Modification : attaque sur l’intégrité
• intercepter + fabriquer Fabrication :attaque sur l’authenticité

8
Scénarios typiques

9
Types d’attaques

• Attaques sur les applications


• Attaques sur les protocoles de communication
• Attaques sur les protocoles de sécurité

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

• Un expéditeur Alice veut envoyer un message à un destinataire


Bob en évitant les oreilles indiscrète d’Evé , et les attaques
malveillantes de Martin.
• Pour cela Alice se met d’accord avec Bob sur le cryptosystème
qu’ils vont utiliser. Ce choix n’a pas besoin d’être secret.

12
Concepts de base

• Alice veut être certaine


• qu’une personne non-autorisée (Eve) ne peut pas prendre
connaissance de ses messages.
• que ses messages ne sont pas falsifiés par un attaquant
malveillant (Martin)
• que le destinataire (Bob) a bien pris connaissance de ses
messages et ne pourra pas nier l’avoir reçu (non-répudiation)

13
Concepts de base

• Bob veut être certain


• que le message reçu est authentique c’est à dire
– que le message n’a pas été falsifié par un attaquant
malveillant (Martin).
– que le messages vient bien d’Alice (autrement dit qu’un
attaquant (Oscar) ne se fait pas passer pour Alice, mascarade)
• que l’expéditeur (Alice) ne pourra pas nier avoir envoyé le
message (non-répudiation)

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.

• Les cryptographes inventent des méthodes de chiffrement de


plus en plus complexes, composées d’une fonction de
chiffrement et d’une fonction de déchiffrement.

15
Concepts de base
• Cryptographie : l’art et la science de garder le secret des messages.
{ secret (crypto) writing (graphy)}

• Cryptanalyse : l’art de décrypter les messages chiffrées.


(Cryptanalistes = Codebreakers)

• Cryptologie : la branche des maths qui traite cryptographie +


cryptanalyse.

• Texte en clair (M) : suite de bits, suite de caractères, voix numérisée,


image vidéo digitale … transmis ou stocké.

• Texte chiffré (C) : information binaire - même taille que M - compressé -


plus grande taille
16
Concepts de base

• La fonction de chiffrement est notée E (encryption)


E(M) = C

• La fonction de déchiffrement est notée D (decryption)


D(C) = D(E(M)) = M

• Algorithmes cryptographiques : un algorithme cryptographique est


une fonction math utilisée pour effectuer E et D.

• Il existe: - alg. de chiffrement de messages en clair


- alg. de déchiffrement de messages chiffrés

17
Concepts de base

• Les algorithmes modernes de chiffrement utilisent une clé notée k.


• k prend un grand nombre de valeurs, espace des clés
• la clé de chiff = la clé de déchiff

18
Concepts de base

• Il existe des algorithmes où la clé de chiff =/= de la clé


de déchiff dans ce cas :

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

• Alice crypte un message avec une "clé"


• Elle envoie ce message crypté à Bob
• Bob décrypte le message . l’aide de la même clé
• Alice a donc dû transmettre la clé à Bob
• N’importe qui ayant la clé peut décrypter le message, la
clé étant transmise, la sécurité est assez faible

21
Principe des systèmes à clés publiques

• On génères une paire de clés ( l’une privée, L’autre


publique) liées entre elles mathématiquement
• Les clés privées servent à décrypter les messages et
doivent donc rester confidentielles
• Les clés publiques sont rendues publiques pour permettre
d’encrypter un message.

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

Pour réaliser la confidentialité des données, il existe deux manières :

1. En limitant l’accès (procédure de contrôle d’accès)

2. En rendant les données incompréhensibles aux personnes non-autorisés


(chiffrement/déchiffrement)

Chiffrement symétrique à clé secrète (chiffrement conventionnel): Le chiffrement


et le déchiffrement d’un texte reposent sur la même clé c-à-d l'émetteur et le
récepteur doivent posséder alors la même clé secrète pour correspondre
confidentiellement.

Exemple: DES, RC4, RC5, Blowfish, IDEA, AES, ….

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

Ce type de chiffrement n’est pas pratique dans le cas de l’Internet où les


entités communicantes ne se connaissent pas.

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.

Il s’agit d’un couple unique de clés constitué de deux parties


complémentaires et d’usage différent.

• Une partie visible = clé publique connue de tous.

• 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) !!!!

 De manière générale, on chiffre un message avec la clé publique du


destinataire qu’il déchiffrera avec sa clé privée.

 Les principaux algorithmes de chiffrement à clé publique, utilisent le plus


souvent des clés de longueur variant de 512 à 1024 bits, voire 2048 bits.
Exemple: Diffie-Hellman; RSA , El-Gamal

 Inconvénient  Vitesse : lent


Chiffrement à clé publique
Pour le chiffrement asymétrique (a clé public) le calcul de la clé de
déchiffrement ayant seulement connaissance de {algorithme de chiffrement
+ clé} impossible sur ordinateur.

Possibilité de permuter les deux clés publique/privée (spécifique au RSA), une


pour chiffrer l’autre pour déchiffrer.
Chiffrement à clé publique
 Chaque bout du système génère une paire de clés (publique /privée)
 Chaque système enregistre sa clé publique (clé de chiffrement) dans un
registre publique (fichier)
 Il existe deux méthodes de chiffrement:

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

2. Facile à la source de produire un texte X et de générer le texte chiffrée : Y=EKUb


(X)

3. Facile à la destination de déchiffrer le texte chiffré avec la clé privée: X=DKRb


(Y)=DKRb (EKUb (X)),

4. Non faisable de déterminer par ordinateur la clé privée de Bob (KRb ) connaissant
sa clé publique (KUb )

5. Non faisable par ordinateur de recouvrir le message X, connaissant KUb et le texte


chiffré Y
Chiffrement à clé publique
6. L’une ou l’autre des deux clés peut être utilisée pour chiffrer alors la second pour
déchiffrer:
X=DKRb (Y)=DKRb (EKUb (X)) On chiffre avec KU du destinataire et le message ne sera
déchiffré que par le vrai destinataire.
X=DKUb (Y)=DKUb (EKRa (X)) On chiffre( Signe) avec KRa du source (Alice source) et le
message ne sera déchiffré que par la clé publique de destinataire Kub (ici Bob) dans ce
cas en produit la signature digitale, de cette manière on valide le contenu du message
et le auteur de ce message
7. Pour fournir la confidentialité et l’authenticité du message: On chiffre avec KR de
l’expéditeur (Alice) et on chiffre le résultat avec la clé KU du destinataire (Bob),
Y=EKUb (EKRa (X)) pour le déchiffrement X=DKRb (DKUa (Y))
Chiffrement à clé publique
Applications des chiffrements à clé publique

 Chiffrement /déchiffrement : l’expéditeur encrypte le message avec KU du


destinataire.

 Signature numérique : l’expéditeur signe le message avec sa clé privée KR.

 Échange de clés : plusieurs approche pour que deux entités coopérantes


échangent les clés ( exp: diffie hellmen).
Chiffrement à clé publique

Chiffrement Signature numérique Échange de clés


Algorithmes /déchiffrement

RSA Oui Oui Oui

DSS Non Oui Non

Diffie-Hellmen Non Non Oui


Chiffrement à clé publique

• Exemple de chiffrement a clé publique


(Asymétrique)

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

 Le RSA est le plus populaire, le plus facile à comprendre et à réaliser de tous


les systèmes à clé publique.

 Il a résisté depuis des années de cryptanalyse intensive.

 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 :

• Φ(n): le nombre d'entiers inférieurs à n, premiers avec e


• Calculer l'entier d pour inverser la fonction de chiffrement
tel que :
Algorithme RSA
• La clé publique est (e, n)
• La clé secrète est (d, n )

Etape 2: Chiffrement du message


Bob récupère la clé publique (e, n) d’Alice et
souhaite lui envoyer un message m.
Bob calcule : C= ( me )mod n
Algorithme RSA
Étape 3: Déchiffrement du message
• Lorsque Alice reçoit le chiffré C, elle calcule Cd
, et récupère ainsi le message m puisque :
m= ( C )d mod n = ( me )d mod n= med mod n=m
mod n (e*d=1modφ(n))

• (d, n) est la clé privée d’Alice.


Algorithme RSA
• Exemple :
1- Choisir deux nombres premiers p=7 et q=17
2- Calculer n = pq = 119
3- Calculer φ(n) =(p-1)(q-1)=96
4- Choisir e premier avec φ(n) et e < φ(n) par exemple e=5
5- Déterminer d tq de =1 mod 96 et d < 96 on trouve d=77
Clé publique (e,n) = (5, 119) et la clé privée (d, n)= (77, 119)
Pour chiffrer 19; c=( me )mod n = (19)5mod 119=66
Pour déchiffrer 66; m= ( C )d mod n (66) 77mod 119=19
Algorithme RSA
• Le principe de l'algorithme RSA repose sur le fait qu'il est très difficile et
très long de factoriser un très grand nombre en deux facteurs premiers,
pour cela il faut procéder de la manière inverse : générer les deux
nombres premiers (p et q), puis les multiplier pour générer le nombre n.

• le RSA est le système de cryptographie asymétrique le plus utilisé


actuellement dans les cartes bleues, les logiciels, les cartes bancaires, les
messageries, ...
Algorithme Diffie Hellman

• C’est une méthode pratique pour l’échange public d’une clé


secrète (ou de session). La méthode de Diffie-Hellman (DH)
est basée sur l’élévation à une puissance dans un champ fini,
ce qui est facile à calculer.

• Principe

• Soient A et B, les deux parties de la communication.


Algorithme Diffie Hellman

• 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 calcule K = Ba mod p Bob calcule K = Ab mod p.

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

clés faibles, ... et veiller à utiliser des générateurs fiables.

 Le transfert de la clé : l’idéal est de se rencontrer, ou d’utiliser un canal de

transmission protégé (cela est souvent impossible). Aussi, si A et B ont des

communications sûres avec un tiers C (intermédiaire de confiance), ce

dernier peut relayer la clé entre A et B.

 La vérification des clés : par hachage, ou utilisation de certificats.

 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

Comment distribuer sûrement cette clé ?

– Physiquement : par une rencontre, un canal de transmission protégé, ...

– Utiliser un tiers de confiance: Celui-ci choisit et fournit la clé.

– Utiliser une ancienne clé pour chiffrer une nouvelle clé (ce qui suppose
cependant un échange préalable de cette ancienne clé).

– Distribution automatique de clés à la demande des utilisateurs: Cette solution


nécessite une totale confiance au système de chiffrement utilisé.
Cas 1: Distribution des Clés symétriques.
Cas 2: Distribution des Clés Asymétriques.

Le chiffrement par clé publique permet de résoudre les problèmes de


distribution de clés secrètes.

Il existe quatre solutions permettant un transfert des clés dans le cas


asymétrique :

a – Annonce publique

b – Répertoire publiquement disponible

c – Autorité de clés publique

d – Certificats de clé publique


Cas 2: Distribution des Clés Asymétriques.

A- Annonce Publique

La distribution des clés publiques se fait directement aux destinataires ou par


broadcast à la communauté. Il est par exemple possible d’envoyer la clé
publique par emails ou les poster dans des newsgroups ou mailing-lists.

Problème: Mais le risque majeur avec cette méthode est la contrefaçon :


n’importe qui peut créer une clef en prétendant être quelqu’un d’autre et la
publier (A se prend pour B).
Cas 2: Distribution des Clés Asymétriques.

b – Répertoire publiquement disponible (Solution pour a)


On enregistre ici des clés dans un répertoire public, ce qui implique de faire confiance à ce
répertoire.
Ce dernier doit avoir plusieurs propriétés :
– Il doit contenir les entrées {nom, clef publique}.
– Il doit être possible de s’inscrire de manière sécurisée dans le répertoire.
– On doit pouvoir remplacer la clef à tout moment ( tout participant peut remplacer sa clé
publique).
– Le répertoire doit être publié périodiquement (la mise a jour).
– Il devrait également permettre la consultation électronique.

Problème: un individu pourrait détourner le


répertoire et distribué des clefs publiques
contrefaites, c.-à-d. ne pas transmettre les
clés correspondant aux demandes des
entités communicantes.
Cas 2: Distribution des Clés Asymétriques.

c- Autorité de clés publique

- Il s’agit de renforcer la sécurité de la distribution des clefs à partir d’un répertoire


(solution pour b).

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

- En retour, l’autorité renverra la clé demandée, le timestamp pour prouver le non-rejeu


d’un ancien message, le tout chiffré avec sa clé privée (KR auth).

- De cette manière, l’entité A, possédant la clé publique de l’autorité, pourra vérifier la


bonne provenance de la clé publique de B.

- L’entité B pourra pratiquer de la même manière.


Cas 2: Distribution des Clés Asymétriques.

c- Autorité de clés publique

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.

L’objectif de la cryptographie est de protéger le contenu d’un message, soit par


l’utilisation des clés symétrique ou des clés asymétrique.

La distribution de clés publiques (Asymétrique) est simple et permettant la


confidentialité et l’authentification, mais elle est lente.

 Une solution plus rapide est d’utiliser un système hybride permettant


l’échange final d’une clé de session.

- Distribution simple de clé secrète.

- Distribution d’une clé secrète avec confidentialité et authentification


Cas 3: Distribution des Clés Asymétriques pour
l’échange d’une clé de session.

Distribution simple de clé secrète.

1. A produit une nouvelle paire de clés publique/privée

2. A envoie à B sa clé publique et son identité

3. B produit une clé Ks de session et l’envoie à A (Ks est chiffrée par clé
publique fournie par A)

4. A déchiffre la clé de session (Ks) et tous les deux l’emploient


Cas 3: Distribution des Clés Asymétriques pour l’échange
d’une clé de session.

- Distribution d’une clé secrète avec confidentialité et authentification


1. A utilise la clé publique de B pour chiffrer un message contenant l’identité de A (IDA) et
un nonce (N1), qui est employé pour indiquer la fraicheur du message.

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

3. la présence de N1 dans le message (2) assure A que le correspondant est B, a ce moment


A retourne N2, chiffrés en utilisant la clé publique de B.

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.

5. B calcule DKUa [DKRb [M]] pour récupérer la clef secrète.


Cas 3: Distribution des Clés Asymétriques pour
l’échange d’une clé de session.

- Distribution d’une clé secrète avec confidentialité et


authentification
Protocoles cryptographiques
Définition
Protocole : Une séquence d’étapes de communication
et de calcul.

Protocole cryptographique : C’est un protocole qui se


base sur la cryptographie pour assurer certains
objectifs de sécurité.
Notations
Messages :
Identité d’un principal : A, B, C, etc.
Identité d’un serveur : S.
Nonces : Na, Nb, etc.
Message m encrypté avec une clé k : {m}k.
Message composé : m, m’.
Étapes de communication :
i: A −> B : m
Protocoles d’authentification
Protocoles d’authentification
Protocoles d’authentification
Protocoles d’authentification
Protocoles d’authentification
Protocoles d’authentification
Protocoles de distribution de clés
Protocoles de distribution de clés
Protocoles de distribution de clés
Protocoles de distribution de clés
Protocoles de distribution de clés
Protocoles de distribution de clés
Failles dans des protocoles cryptographiques

108
Introduction

• Un protocole est un algorithme distribué:

– Plusieurs participants.

– Chaque participant exécute ses actions (son rôle) sur sa machine.

– Un principal peut participer à plusieurs sessions d’un même protocole.

– Un principal peut changer de rôle d’une session à une autre.

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.

Rôle Rôle généralisé

111
Trace d’exécution

• Une trace est une exécution valide d’un protocole.

– Exécution valide d’un protocole :

• tous les agents honnêtes, notés A, B, C,…, qui y participent


se comportent conformément à la spécification du
protocole.

• tous les messages envoyés par l’intrus, doivent appartenir à


sa base de connaissances (connaissances initiales +
messages reçus).
112
Trace d’exécution : exemple

Rôle généralisé

Trace d’exécution
113
Capacité de l’intrus

• Généralement on considère l’intrus le plus


puissant que possible.
• Il peut être un agent régulier (possède ses propres
clés).
• Il peut écouter tous les messages qui circulent sur le
réseau.
• Il peut éliminer ou modifier les messages qu’il
intercepte.
• Il peut également générer ses propres messages.
• etc.

114
Capacité de l’intrus

115
Exercice

• Quel est le but du protocole suivant?

116
Failles

Un protocole cryptographique contient une faille s’il ne


remplit pas les exigences sécuritaires pour lesquelles il a été
conçu.
Un protocole est vérifié par rapport aux propriétés de sécurité
pour lesquelles il a été conçu.

117
Failles : exemple

• On dit qu’un protocole d’authentification contient


une faille si un agent A arrive à prouver à un agent B
qu’il est un autre agent C.

• Un protocole qui permet d’acheminer des


informations confidentielles est dit défaillant si un
intrus (agent non autorisé) est capable de connaître
une des ces informations secrètes.
118
Preuve de l’existence d’une faille

• La preuve de l’existence d’une faille dans un crypto


protocole est généralement une trace valide de ce
protocole montrant qu’un des objectifs visé (une
propriété de sécurité) n’est pas atteint.

• En fait, cette trace constitue un contre exemple.

119
Exemple

• Protocole d’authentification de Woo et Lam.

• Ce protocole contient une faille si un agent


(intrus) I peut prouver à B qu’il est A

120
Exemple (suite)

• Attaque de Abadi et Needham contre le protocole de Woo et


Lam
1.1 I(A)  B : A
2.1 I  B : I
1.2 B  I(A) : Nb
2.2 B  I : Nb’
1.3 I(A)  B : {Nb}kis
2.3 I  B : {Nb}kis
1.4 B  S : { A , {Nb}kis }kbs
2.4 I  B : {I, {Nb}kis }kbs
2.5 S  I(B) : {Nb}kbs
1.5 I(S)  B : {Nb}kbs
121
Classification de failles

• On peut regrouper les failles en classes ou types de failles.

– 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:

Hypothèse: Un intrus I possède la clé K’ab générée lors d’une session


précédente, et du message 3 : {K’ab, A}Kbs.
Scénario d’attaque:

Message 3 : I(A)  B : {K’ab, A}Kbs


Message 4 : B  I(A) : {Nb}K’ab
Message 5 : I(A)  B : {Nb-1}K’ab

Conclusion: A la fin de cette séquence, I réussit à faire croire à B que K’ab


est la bonne clé.
124
Failles d’oracle

faille oracle (session parallèle) se produisent quand la communication sous


un protocole cryptographique permet à un intrus de savoir de l’information
secrète ou d’accéder au contenue de qlq msg chiffrés en permutant les msg
de protocole appropriés.

Types: Dans la littérature on distingue deux types de failles d’oracles:

Faille d’oracle à rôle simple: faille d’oracle associée à un protocole qui


ne permet pas à un agent de changer de rôle d’une session à un autre.

Faille d’oracle à rôle multiple: faille d’oracle associée à un protocole au


cours duquel un agent peut changer de rôle d’une session à une autre.

125
Failles d’oracle

Faille d’oracle à rôle simple:


Exemple I: Protocole de Needham-Shroeder

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

kb,kb-1 {Na,A}kb Na,Nb


ki B {Nb}kb
ka Na,A {Na,Nb}ka
127
Failles d’oracle

Faille d’oracle à rôle simple (suite):


protocole de Needham-Shroeder

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 d’oracle à rôle multiple:


– Exemple :
• Protocole d’authentification

• Faille

129
Failles d’association

Cas où un intrus parvient à corrompre la correspondance entre


la clé publique d’un principal et son identité.
Exemple: 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

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

Conclusion : L ’intrus utilise deux sessions du protocole pour faire


croire à A que la clé publique de B est Ki

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

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

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 :

Message 1 : A  I(B) : M, A, B, {Na, M, A, B}Kas


Message 5 : I(B)  A : M, {Na, M, A, B}Kas

Conclusion : L ’intrus a pu convaincre A que la chaîne de bits M, A,


B constitue la clé qu’il partage avec B.

133
Failles d'implantation

Cas où un intrus profite des faiblesses dues à la


combinaison de l’algorithme de chiffrement et du
protocole cryptographique.

Exemple I : Soit la fonction de chiffrement:

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

Scénario d’attaque : Pour obtenir M un intrus peut intercepter les


trois messages et exécuter le calcul suivant :
Msg1Msg2Msg3 = (M  ka)  ((M  ka)  kb)  (M kb)
= (((M  ka)  (M  ka))  kb)  (M  kb)
= (0  kb)  (M  kb)
= kb  (M  kb)
= (kb  kb)  M
=0M
=M
Conclusion : L ’intrus a pu connaître la valeur de M.
135
Failles de répudiation

• Une faille de répudiation survient lorsqu’un


principal peut nier sa participation à une session
du protocole.

136
Remarque
• Une faille peut contenir un nombre important
d’étapes de communication.

– Difficile à la trouver manuellement.


– Besoin d’un outil automatique qui nous aide à
trouver des failles.

137

Vous aimerez peut-être aussi