Techniques de Cryptographie et Sécurité
Techniques de Cryptographie et Sécurité
Cryptographie
Techniques des Réseaux Informatiques
KHALID KATKOUT
2014/2015
Sommaire
1. Introduction ........................................................................................................ 4
2. Qu'est-ce que la cryptographie? ............................................................................... 4
3. La notion de codage de l'information ...................................................................... 5
4. Chiffrement par substitution .................................................................................. 5
4.1. Exemples : Chiffrement par substitution mono alphabétique ................................ 6
4.2. Cryptanalyse du chiffrement par substitution ..................................................... 6
4.2.1. Cryptanalyse du chiffrement par substitution................................................ 6
4.2.2. Méthode empirique de cryptanalyse ............................................................ 7
4.2.3. Comment finir la cryptanalyse ?.................................................................. 7
5. Chiffrement par transposition ................................................................................ 7
5.1. Cryptanalyse du chiffrement par tranposition ..................................................... 8
5.1.1. Cryptanalyse ............................................................................................ 8
6. Comment renforcer la force des chiffrements ? ........................................................ 8
7. Cryptographie moderne - Le cryptage à clé ............................................................. 9
7.1. Cryptographie moderne................................................................................... 9
7.2. Chiffrement à clé symétrique ......................................................................... 10
7.2.1. Principe ................................................................................................. 10
7.3. Chiffrement à clé asymétrique ....................................................................... 10
7.3.1. Principe ................................................................................................. 10
7.4. Les limites de la cryptographie Symétrique ...................................................... 10
7.5. Chiffrement asymétrique ............................................................................... 11
Construction des clés .................................................................................................. 11
Chiffrement d'un message ........................................................................................... 12
Rapports entre les clés ................................................................................................ 12
7.6. Prise en en compte de la notion d'échange par réseau ...................................... 12
7.7. Une approche théorique ................................................................................ 12
7.7.1. Cryptage à clé symétrique ....................................................................... 12
7.8. Chiffrement asymétrique ............................................................................... 13
7.9. Quelques éléments de réflexion ...................................................................... 14
7.10. Idée de chiffrement à clé publique : le RSA...................................................... 15
8. Chiffrement asymétrique : présentation de RSA ..................................................... 15
8.1.1. Exemple d'utilisation de RSA .................................................................... 15
9. Le cryptage à clé symétrique - le DES .................................................................. 16
9.1.1. La cryptanalyse ? .................................................................................... 18
10. Le cryptage à clé symétrique - le DES .................................................................. 19
10.1. DES : l'algorithme............................................................................................ 19
10.1.1. La cryptanalyse ? .................................................................................... 20
10.2. Chiffrement à clé symétrique - Autres algorithmes ........................................... 21
10.2.1. AES (Advanced Encryption Standard) ........................................................ 21
10.2.2. IDEA (International Data Encryption Algorithm) .......................................... 21
10.2.3. Blowfish................................................................................................. 22
10.2.4. RC4 (Rivest Cipher 4) .............................................................................. 22
10.3. Chiffrement à clé publique versus chiffrement à clé secrète ............................... 22
10.3.1. Comparaisons entre RSA et DES ............................................................... 22
10.4. Comparaison et combinaison ......................................................................... 23
10.5. Le chiffrement par bloc ................................................................................. 23
10.5.1. CBC : Cipher Block Chaining..................................................................... 24
10.5.2. OFB : Output Feedback ........................................................................... 24
11. Le chiffrement par flux ....................................................................................... 25
11.1.1. Définition ............................................................................................... 25
11.1.2. Echange sécurisé .................................................................................... 25
11.2. Clé de session .............................................................................................. 26
11.2.1. La méthode d’échange des clés de Diffie-Hellman ....................................... 26
12. L'authentification ............................................................................................... 27
12.1. Fonction de hachage ..................................................................................... 27
12.1.1. Principaux algorithmes ............................................................................ 28
12.2. La signature électronique .............................................................................. 28
12.3. La signature électronique et la notion de certificat ............................................ 28
13. SSL .................................................................................................................. 29
13.1.1. Introduction ........................................................................................... 29
13.1.2. Fonctionnement de SSL 2.0...................................................................... 29
13.1.3. SSL 3.0 ................................................................................................. 30
14. La PKI .............................................................................................................. 30
14.1.1. Introduction à la notion de certificat .......................................................... 30
14.1.2. Structure d'un certificat ?......................................................................... 30
14.1.3. Signatures de certificats .......................................................................... 31
14.1.4. Types d'usages ....................................................................................... 31
14.1.5. Le but de PKI ......................................................................................... 32
14.2. Les différentes autorités ................................................................................ 33
1. Introduction
Depuis l'Egypte ancienne, l'homme a voulu pouvoir échanger des informations de façon
confidentielle.
Il existe de nombreux domaines où ce besoin est vital :
— militaire (sur un champ de bataille ou bien pour protéger l'accès à l'arme atomique) ;
— commercial (protection de secrets industriels) ;
— bancaire (protection des informations liées à une transaction financière) ;
— de la vie privée (protection des relations entre les personnes) ;
— diplomatique (le fameux « téléphone rouge » entre Etats-Unis et Union soviétique) ;
La cryptologie est essentiellement basée sur l'arithmétique : Il s'agit dans le cas d'un texte de
transformer les lettres qui composent le message en une succession de chiffres (sous forme de
bits dans le cas de l'informatique car le fonctionnement des ordinateurs est basé sur le binaire),
puis ensuite de faire des calculs sur ces chiffres pour :
d'une part les modifier de telle façon à les rendre incompréhensibles. Le résultat
de cette modification (le message chiffré) est appelé cryptogramme (en anglais ciphertext) par
opposition au message initial, appelé message en clair (en anglais plaintext) ;
faire en sorte que le destinataire saura les déchiffrer.
Le fait de coder un message de telle façon à le rendre secret s'appelle chiffrement. La méthode
inverse, consistant à retrouver le message original, est appelée déchiffrement.
Les clés symétriques: il s'agit de clés utilisées pour le chiffrement ainsi que pour le
déchiffrement. On parle alors de chiffrement symétrique ou de chiffrement à clé secrète.
Les clés asymétriques: il s'agit de clés utilisées dans le cas du chiffrement
asymétrique (aussi appelé chiffrement à clé publique). Dans ce cas, une clé différente est
utilisée pour le chiffrement et pour le déchiffrement
On appelle décryptement (le terme de décryptage peut éventuellement être utilisé également) le
fait d'essayer de déchiffrer illégitimement le message (que la clé de déchiffrement soit connue
ou non de l'attaquant).
Lorsque la clef de déchiffrement n'est pas connue de l'attaquant on parle alors de cryptanalyse
ou cryptoanalyse (on entend souvent aussi le terme plus familier de cassage).
La cryptologie est la science qui étudie les aspects scientifiques de ces techniques, c'est-à-dire
qu'elle englobe la cryptographie et la cryptanalyse.
La cryptographie est traditionnellement utilisée pour dissimuler des messages aux yeux de
certains utilisateurs. Cette utilisation a aujourd'hui un intérêt d'autant plus grand que les
communications via internet circulent dans des infrastructures dont on ne peut garantir la
fiabilité et la confidentialité. Désormais, la cryptographie sert non seulement à préserver la
confidentialité des données mais aussi à garantir leur intégrité et leur authenticité
L'ajout d'un ordre sur ces lettres à permis de définir les premières méthodes «mathématiques »
de chiffrement d'un message constitué de lettres (code César, ROT13…).
Ces chiffrements partent d'un message contenant des lettres vers un cryptogramme contenant
également des lettres.
— Par Substitution
— par transposition.
Il s'agit donc simplement de décaler l'ensemble des valeurs des caractères du message d'un
certain nombre de positions, c'est-à-dire en quelque sorte de substituer chaque lettre par une
autre. Par exemple, en décalant le message " WNT " de 3 positions, on obtient "VMS". Lorsque
l'ajout de la valeur donne une lettre dépassant la lettre Z, il suffit de continuer en partant de A,
ce qui revient à effectuer un modulo 26.
A titre d'exemple, dans le film L'odyssée de l'espace, l'ordinateur porte le nom de HAL. Ce
surnom est en fait IBM décalé de 1 position vers le bas...
On appelle clé le caractère correspondant à la valeur que l'on ajoute au message pour effectuer
le cryptage. Dans notre cas la clé est C, car c'est la 3ème lettre de l'alphabet.
Ce système de cryptage est certes simple à mettre en oeuvre, mais il a pour inconvénient d'être
totalement symétrique, cela signifie qu'il suffit de faire une soustraction pour connaître le
message initial. Une méthode primaire peut consister à une bête soustraction des nombres 1 à
26 pour voir si l'un de ces nombres donne un message compréhensible.
Une méthode plus évoluée consiste à calculer les fréquences d'apparition des lettres dans le
message codé (cela est d'autant plus facile à faire que le message est long). Effectivement,
selon la langue, certaines lettres reviennent plus couramment que d'autres (en français, par
exemple, la lettre la plus utilisée est la lettre E), ainsi la lettre apparaissant le plus souvent dans
un texte crypté par le chiffrage de César correspondra vraisemblablement à la lettre E, une
simple soustraction donne alors la clé de cryptage...
Le ROT13 (rotation de 13) est un code César qui permet quand on l'applique deux fois de
retrouver le message original.
Il est souvent employé sur USENET (les news) pour masquer la solution d'une devinette ou pour
parler aux initiés. Les lecteurs de news l'intègrent en général
Un code par substitution ne modifie pas les propriétés statistiques des caractères,
digrammes et trigrammes substitués.
Il conserve l'ordre des caractères du texte en clair, mais masque ces caractères.
Ceci est u
n texte à
chiffrer d Cncehre h atctiluaiefatn… Chaque colonne est ensuite copiée l'une après l'autre.
e la plus
haute impo
rtance
— Si ce n'est pas le cas, il y a une forte probabilité pour qu'un chiffrement par
transposition ait été employé.
— Ensuite, il faut faire une hypothèse sur le nombre de colonnes utilisées pour réaliser
la transposition.
Les codes de transposition contrairement aux codes par substitution ne cachent pas les
caractères, mais modifient l'ordre des caractères.
Histoire :
L'arrivée des ordinateurs a totalement démodé ces méthodes de chiffrement (on ne parle plus
d'ailleurs de chiffrement car ces méthodes ne résiste pas au traitement informatique). La
machine Enigma utilisée par les nazis a été « cassée » par Alan Turing, pionnier de
l'informatique.
Il faut attendre les annés 60 pour voir les méthodes de chiffrement moderne basées sur l'usage
de clés.
— une substitution ;
— plusieurs opérations de transposition.
Le but
rendre l'apparence du cryptogramme la plus « aléatoire » possible, c-à-d. éliminer les relations
statistiques des caractères du cryptogramme pour éviter la cryptanalyse :
L'actualité ?
les chiffrements tels que DES (Data Encryption System) et AES (Advanced Encryption System)
sont utilisés à l'heure actuelle.
Exemple : un XOR entre le message à transmettre et une clé de même taille suffit à le rendre
indéchiffrable…technique du masque jetable
Maintenant, le but est d'utiliser des algorithmes sophistiqués et complexes associés à des clés
courtes. Ces algorithmes représente des investissements à long terme, c-à-d. qu'ils sont
employés pendant de nombreuses années jusqu'à ce qu'ils en puissent plus assurer le même
niveau de sécurité.
— à clé symétrique
— à clé asymétrique.
Le chiffrement consiste alors à effectuer une opération entre la clé privée et les données à
chiffrer. Le déchiffrement se fait à l'aide de cette même clé secrète.
Remarques
La qualité d'un crypto système symétrique se mesure par rapport :
En pratique : tant qu'un crypto système symétrique n'a pas été cassé, il est bon, après il est
mauvais !
Ces chiffrements a « clé publique» ont été découvert par James Ellis (Angleterre) en 1969 et par
Whitfield Diffie (Etats unis) en 1975.
L'idée de la conception de tels algorithmes revient à Diffie et Hellman en 1976.
Il est possible qu'un des interlocuteurs connaissent plusieurs clés utilisés dans différents canaux
le reliant à des utilisateurs différents.
Exemple : l'utilisateur D possède une clé pour chaque lien (avec J, I, H, G, F et E).
Problème : comment échanger toutes ces clés ?
A partir de cette clé, ils déduisent chacun automatiquement par un algorithme la clé publique.
Les utilisateurs s'échangent cette clé publique au travers d'un canal non sécurisé.
Chiffrement d'un message
Lorsqu'un utilisateur désire envoyer un message à un autre utilisateur, il lui suffit de chiffrer le
message à envoyer au moyen de la clé publique du destinataire (qu'il trouvera par exemple dans
un serveur de clés tel qu'un annuaire ou bien en signature d'un courrier électroique).
Le destinataire sera en mesure de déchiffrer le message à l'aide de sa clé privée (qu'il est seul à
connaître).
Rapports entre les clés
La recherche de la clé privée à partir de la clé publique revient à résoudre un problème
mathématique notoirement très compliqué, c-à-d. demandant un grand nombre d'opérations et
beaucoup de mémoire pour effectuer les calculs -> infaisable !
Par exemple dans RSA, l'algorithme le plus utilisé actuellement, la déduction de la clé privée à
partir de la clé publique revient à résoudre un problème de factorisation de grand nombre que
lequel travaille les
mathématiciens depuis plus de 2000 ans !
Le choix des clés doit être fait de la manière la plus imprédictible possible : éviter les mots du
dictionnaire, nombres pseudo-aléatoires à germe de génération difficile à deviner, etc.
Alice transforme ces informations par un procédé de chiffrement en utilisant une clé
prédéterminée, puis envoie le texte chiffré au travers du canal de communication.
Oscar, qui espionne peut-être le canal, ne peut reconstituer l'information, contrairement à Bob
qui dispose de la clé pour déchiffrer le cryptogramme.
— l’algorithme par bloc qui prend une longueur spécifiée de données comme entrée, et
produit une longueur différente de données chiffrées (exemple : DES, AES…)
— l’algorithme en flux continu qui chiffre les données un bit à la fois (exemple : IDEA,
CAST, RC4, SKIPjack…).
Lors d'échange entre plusieurs intervenants : une clé est partagée que par 2 interlocuteurs, donc
pour N interlocuteurs il faut N*(N-1)/2 clés.
Une fonction unidirectionnelle est une fonction y = f(x) telle que, si l'on connaît la valeur y, il est
pratiquement impossible de calculer la valeur x (c'est-à-dire d'inverser la fonction f). On dit que
cette fonction est munie d'une porte arrière s'il existe une fonction x = g(y, z) telle que, si
l'on connaît z, il est facile de calculer x à partir de y. Z est appelée trappe.
Comme f est une fonction unidirectionnelle, Oscar est incapable de reconstituer le message
même si il connaît l'algorithme f, la clé publique c et le texte T.
Au départ, le système à clé publique n'a d'abord été qu'une idée dont la faisabilité restait à
démontrer.
Des algorithmes ont été proposés par des mathématiciens .Un des premiers algorithmes proposé
repose sur la factorisation du produit de deux grands nombres entiers. Cette factorisation
demanderait un temps de calcul de plusieurs millions d'années.
Seul Bob, qui connaît z, peut factoriser c et donc déchiffrer le message chiffré.
Un dernier problème
Le système de chiffrement à clé publique est universel si chacun publie sa clé publique dans un
annuaire.
Pour envoyer un message chiffré à Bob, il suffit de trouver sa clé publique dans l'annuaire et de
s'en servir pour chiffrer le message avant de le lui envoyer (seul Bob pourra déchiffrer le
message). Il faut bien sûr que l'annuaire soit sûr.
Oscar peut avoir substitué sa propre clé publique à celle de Bob afin de pouvoir lire les messages
destinés à Bob. Il peut même les renvoyer à Bob une fois lu !
Les fonctions inverses sont des paires d 'opérations : exemple la multiplication et la division sont
des fonctions inverses, ce que l'une fait, l'autre le défait.
Exemple : 5 * 2 = 10, 10 / 2 = 5
Les nombres inverses sont des paires de nombres, ce qu'un nombre fait, l'autre le défait.
Propriété unique
L'algorithme a la propriété spéciale suivante (utilisé pour l'authentification):
chiffrement ( déchiffrement ( M ) ) = déchiffrement ( chiffrement ( M ) )
C'est-à-dire que l'utilisation de sa clé privée pour chiffrer un message M permet de construire un
message M' qui peut être déchiffré par sa clé publique...ainsi il est possible de prouver que l'on
dispose bien de la clé privée qui correspond à la clé publique !
Sécurité
— avoir un haut niveau de sécurité lié à une clé de petite taille servant au chiffrement et au
déchiffrement,
— être compréhensible,
— ne pas dépendre de la confidentialité de l'algorithme,
— être adaptable et économique,
— être efficace et exportable.
La méthode DES utilise des clés d'une taille de 56 bits ce qui la rend de nos jours facile à casser
avec les nouvelles technologies de cryptanalyse. Mais elle est toujours utilisée pour des petites
tâches tel que l'échange de clés de cryptage (technologie SSL).
La clé est sur 64bits dont 8 sont utilisés comme calcul de l'intégrité des 56 autres (parité).
Le DES est un standard utilisé depuis plus de 20 ans. Il a suscité de nombreuses critiques, des
suspicions de vulnérabilité à l’attaque de son algorithme, mais n’a pas eu d’alternatives jusqu’à
ces dernières années : modifié par la NSA, trafiqué par IBM, …
Principe de l'algorithme
C'est un algorithme à base de :
— décalage ;
— « ou exclusif » ;
— transposition/recopie (appelé expansion).
Ces opérations sont faciles à réaliser par un processeur.
Principe de fonctionnement
L'algorithme utilise une clé de 56 bits. Décomposition du texte en clair en bloc
— le texte en clair est découpé en bloc de 64 bits qui seront chiffrés un par un ;
Utilisation en différentes étapes, éventuellement répétées (en tout 19 étapes) :
— la première étape transpose chaques blocs de 64 bits du texte en clair avec la clé de 56 bits
;
— 16 étapes intermédiaires ;
— l'avant dernière étape intervertit les 32 bits de droite et de gauche ;
— la dernière étape transpose chaques blocs de 64 bits du texte avec la clé de 56 bits
(exactement à
l'inverse de la première étape).
Les 16 étapes intermédiaires sont identiques mais varient par différentes utilisations de la clé
Un « ou exclusif » est calculé entre le nombre de 48 bits et la clé de 56 bits. Le résultat de ces «
ou exclusifs » est découpé en blocs de 6 bits.
9.1.1. La cryptanalyse ?
Brute force : essayer toutes les clés possibles !
Le nombre de clés est élevé (2^56=7,2*10 16) et peut être facilement augmenté en
changeant le nombre de bits pris en compte (soit exactement [Link].927.936 clés
différentes ! ).
Exemple : si une personne peut tester 1 million de clés par seconde
il lui faut 1000 ans pour tout essayer !
La loi de Moore : énoncée par Gordon Moore en 70 :
« le nombre de transistors d'une puce doublerait tous les 18 mois à coût constant »
1975 : un ordinateur a besoin de 100 000 jours (300 ans) pour tester toutes les clés...
2000 : un ordinateur 100 000 fois plus puissant a besoin de 1 jour (un ordinateur à 200 K€) !
Challenge DES : proposé par la société RSA en janvier 1997
— cassage du DES en 96 jours ;
— février 98, cassage en 41 jours ;
— juillet 98, cassage en 56 heures sur une machine de moins de 60k€ ;
— janvier 99, cassage en moins de 24h !
Le DES a été cassé grâce aux méthodes de cryptanalyse différentielle et à la puissance
coordonnées
des machines mises à disposition par un état par exemple.
Les évolutions
Si un algorithme est « usé » il est possible d'utiliser des clés plus longues.
Le TDES (Triple DES) a été créé pour pallier les limites du DES, par l’utilisation d’une chaîne de
trois
chiffrements DES à l'aide de seulement deux clés différentes :
Chiffrement avec une clé C1-> déchiffrement avec une clé C2 -> chiffement avec la clé C1
L'avenir ?
Le DES et le TDES sont amenés à être remplacé par un nouvel algorithme : le Rijndael (du nom
de ses inventeurs) qui a été sélectionné pour devenir AES.
— avoir un haut niveau de sécurité lié à une clé de petite taille servant au chiffrement et au
déchiffrement,
— être compréhensible,
— ne pas dépendre de la confidentialité de l'algorithme,
— être adaptable et économique,
— être efficace et exportable.
La méthode DES utilise des clés d'une taille de 56 bits ce qui la rend de nos jours facile à casser
avec les nouvelles technologies de cryptanalyse. Mais elle est toujours utilisée pour des petites
tâches tel que l'échange de clés de cryptage (technologie SSL).
La clé est sur 64bits dont 8 sont utilisés comme calcul de l'intégrité des 56 autres (parité). Le
DES est un standard utilisé depuis plus de 20 ans.
Il a suscité de nombreuses critiques, des suspicions de vulnérabilité à l’attaque de son
algorithme, mais n’a pas eu d’alternatives jusqu’à ces dernières années : modifié par la NSA,
trafiqué par IBM, …
Principe de l'algorithme
C'est un algorithme à base de :
— décalage ;
— « ou exclusif » ;
— transposition/recopie (appelé expansion).
— la première étape transpose chaques blocs de 64 bits du texte en clair avec la clé de 56 bits ;
— 16 étapes intermédiaires ;
— l'avant dernière étape intervertit les 32 bits de droite et de gauche ;
— la dernière étape transpose chaques blocs de 64 bits du texte avec la clé de 56 bits
(exactement à l'inverse de la première étape).
Les 16 étapes intermédiaires sont identiques mais varient par différentes utilisations de la clé
Un « ou exclusif » est calculé entre le nombre de 48 bits et la clé de 56 bits. Le résultat de ces «
ou exclusifs » est découpé en blocs de 6 bits.
10.1.1. La cryptanalyse ?
Brute force : essayer toutes les clés possibles !
Le nombre de clés est élevé (2^56=7,2*10 16) et peut être facilement augmenté en changeant
le nombre de bits pris en compte (soit exactement [Link].927.936 clés différentes ! ).
La loi de Moore : énoncée par Gordon Moore en 70 : « le nombre de transistors d'une puce
doublerait tous les 18 mois à coût constant »
1975 : un ordinateur a besoin de 100 000 jours (300 ans) pour tester toutes les clés...
2000 : un ordinateur 100 000 fois plus puissant a besoin de 1 jour (un ordinateur à 200 K€) !
Les évolutions
Si un algorithme est « usé » il est possible d'utiliser des clés plus longues. Le TDES (Triple DES)
a été créé pour pallier les limites du DES, par l’utilisation d’une chaîne de trois chiffrements DES
à l'aide de seulement deux clés différentes : Chiffrement avec une clé C1-> déchiffrement avec
une clé C2 -> chiffement avec la clé C1
L'avenir ?
Le DES et le TDES sont amenés à être remplacé par un nouvel algorithme : le Rijndael (du nom
de ses inventeurs) qui a été sélectionné pour devenir AES.
L'AES
— est un standard, libre d'utilisation, sans restriction d'usage ni brevet ;
— est un algorithme de chiffrement par blocs (comme le DES) ;
— supporte différentes combinaisons [longueur de clé]-[longueur de bloc] : 128-128, 192-128 et
256-128 bits
Dans un réseau de 5 personnes communicant entre elles il faut n(n-1)/2 clés, soient 10 clés
différentes..
DES
— clé de 56 bits
— chiffrement matériel : 300 Mbits/sec
— chiffrement logiciel : 2,1 Mbits/sec
— Inconvénient majeur : attaque « brute force » rendue possible par la puissance des machines.
— Usage : chiffrement rapide, adapté aux échanges de données de tous les protocoles
de communication sécurisés.
10.4. Comparaison et combinaison
La sécurité offerte par le chiffrement à clé
La sécurité d'un code à clé est proportionnelle à la taille de la clé employée, c-à-d. plus la clé est
longue plus il faut de calcul et donc de temps pour arriver à le casser.
Chiffrement par substitution : 26 lettres possibles associables, soit 26! (factorielle 26) soient
291 461 : 126 605 635 584 000 000 possibilités ! mais l'analyse fréquentielle...
Le chiffrement à clé : il protège des analyses fréquentielles ; Attaque « brute force » : essayer
toutes les clé possibles pour déchiffrer le message chiffré, donc plus la clé est longue (nombre de
bits) plus il y a de clé à essayer (2 fois plus de clé à essayer pour chaque bit ajouté !).
La vitesse
Il existe un décalage de puissance de calcul pour le chiffrement/déchiffrement des codes à clé
secrète (algorithme de cryptage symétrique de type DES) et à clé publique (algorithme de
cryptage asymétrique de type RSA).
Code à clé secrète : applicable à un débit de données supérieur. C'est pourquoi seule l'utilisation
de code à clé secrète est «réaliste» pour sécuriser une transaction entre deux utilisateurs sur
Internet.
Résolution du problème de l'échange des clés secrètes :
utilisation d'une méthode hybride combinant à la fois chiffrement symétrique et asymétrique
Problèmes :
— si on utilise deux fois le même texte clair et la même clé de chiffrement, le résultat du
chiffrement sera identique.
— il faut un nombre suffisant d'octets de texte en clair (huit octets pour le DES par
exemple) avant de commencer.
10.5.1. CBC : Cipher Block Chaining
C'est un des modes les plus populaires. Il apporte une solution au premier problème du mode
ECB :
— avant d'être chiffré, l'opération binaire « XOR » est appliquée entre le bloc actuel de texte en
clair et le bloc précédent de texte chiffré ;
— pour le tout premier bloc, un bloc de contenu aléatoire est généré et utilisé, appelé «
vecteur d'initialisation » (initialization vector, ou IV).
Chiffrement :
C[0] = E(T[0] xor VI)
C[n] = E(T[n] xor C[n-1]) , si (n > 0)
Déchiffrement :
T[0] = D(C[n]) xor VI
T[n] = D[C[n]) xor C[n-1] , si (n > 0) T et C sont d'une longueur fixe
Chiffrement :
I[0] = VI
I[n] = R[n-1] , si (n > 0)
R[n] = E(I[n])
C[n] = T[n] xor R[n]
Déchiffrement :
I[0] = VI
I[n] = R[n-1] , si (n > 0)
R[n] = E(I[n])
T[n] = C[n] ^ R[n] T et C sont d'une longueur fixe
Problèmes :
— le texte en clair est seulement soumis à un XOR. Si le texte clair est connu, un tout autre texte en
clair peut être substitué en inversant les bits du texte chiffré de la même manière qu'inverser les bits du texte
clair (bit-flipping attack).
— il existe une petite possibilité qu'une clé et un vecteur d'initialisation soient choisis tels que les blocs
successifs générés puissent se répéter sur une courte boucle.
Le mode OFB est souvent utilisé comme générateur de nombre aléatoire.
Avantages :
— la méthode de chiffrement peut être changée à chaque symbole du texte clair ;
— ils sont extrêmement rapides ;
— ils ne propagent pas les erreurs (diffusion) dans un environnement où les erreurs sont
fréquentes ;
— ils sont utilisables lorsque l'information ne peut être traitée qu'avec de petites quantités de
symboles à la fois (par exemple si l'équipement n'a pas de mémoire physique ou une mémoire
tampon très limitée).
Fonctionnement :
Ils appliquent de simples transformations selon un keystream utilisé.
Le keystream est une séquence de bits utilisée en tant que clé qui est générée aléatoirement par
un algorithme (keystream generator).
Propriétés :
Avec un keystream choisi aléatoirement et utilisé qu'une seule fois, le texte chiffré est très
sécurisé.
La génération du keystream peut être :
— indépendante du texte en clair et du texte chiffré, appelée chiffrement de flux synchrone
(synchronous stream cipher) ;
— dépendante (self-synchronizing stream cipher).
Les chiffrements de flux les plus répandus sont synchrones Algorithmes les plus connus :
LFSR (Linear Feedback Shift Register), rapide mais vulnérable à l'heure actuelle.
RC4, inventé par Ron Rivest en 87 (société RSA), utilisé dans le protocole SSL et Oracle Secure
SQL.
SEAL (Software-optimized Encryption Algorithm), Don Coppersmith et Phillip Rogaway en 93
(IBM),plus rapide que RC4.
Avantages :
— la clé secréte est chiffrée et échangée ;
— après l'échange on bascule le chiffrement en utilisant un algorithme symétrique plus rapide ;
— on démarre l'échange avec l'utilisation d'un algorithme asymétrique qui possède l'avantage
d'offrir un moyen d'identifier les interlocuteurs.
L'algorithme RSA a la propriété chiffrement(déchiffrement(M)) = déchiffrement(chiffrement(M)).
Première possibilité :
— générer aléatoirement une clé de taille raisonnable utilisée pour un algorithme de cryptage
symétrique;
— chiffrer cette clé à l'aide d'un algorithme de cryptage à clé publique (à l'aide de la clé publique
du destinataire) ;
Cela impose que l'un des interlocuteurs possède la clé publique de l'autre (pas toujours facile de
s'assurer que la clé publique appartient bien à la bonne personne).
Seconde possibilité :
— construire une clé de session à l'aide de la méthode d’échange des clés de Diffie-Hellman.
— les interlocuteurs n'ont pas besoin de partager une clé publique avant de commencer leur
communication chiffrée !
Cette méthode est extrémement employée pour initier un canal de transmission sécurisée avant
tout échange.
Si Oscar, l'intrus capture g et n, il ne peut pas calculer x et y, car il n'existe pas de méthode
humainement utilisable pour calculer x à partir de g^x mod n !
Problème : Oscar peut s'insérer entre Alice et Bob et proposé sa valeur z en lieu et place de x
pour Bob et de y pour Alice :
Alice --> n, g, g^x mod n --> Oscar –> n, g, g^z mod n –> Bob
<– g^z mod n <-- <– g^y mod n <–
Conclusion : il faut une phase préliminaire d'authentification !
12. L'authentification
L'authentification est suivie par l'autorisation
L'autorisation définit les ressources, services et informations que la personne identifiée peut utiliser, consulter
ou mettre à jour, exemple : son courrier électronique, des fichiers sur un serveur FTP…
L'approche traditionnelle
Combinaison d'une identification et d'un mot de passe (code secret personnel).
Le mot de passe doit posséder certaines caractéristiques : non trivial, difficile à deviner, régulièrement modifié,
secret…
Des outils logiciel ou hardware de génération de mots de passe existent, mais les mots de passe générés sont
difficiles à retenir !
Problème : cette méthode permet de faire des attaques sur la clé privée de Bob en soumettant des
messages aléatoires bien choisi.
Solution : calculer un «résumé» du message aléatoire initial, un “digest”, et l'utiliser à la place du message
aléatoire lors du chiffrement. L'obtention de ce «résumé» se fait à l'aide d'une fonction de hachage
— être telle qu'elle associe un et un seul résumé à un texte en clair (cela signifie que la moindre
modification du document entraine la modification de son résumé), c-à-d. « sans collision ».
— être une fonction à sens unique (one-way function) afin qu'il soit impossible de retrouver le
message original à partir du résumé.
Propriétés
une fonction de hachage "H" transforme une entrée de données d'une dimension variable "m" et
donne comme résultat une sortie de données inférieure et fixe "h" (h = H(m)).
— l'entrée peut être de dimension variable ;
— la sortie doit être de dimension fixe ;
— H(m) doit être relativement facile à calculer ;
— H(m) doit être une fonction à sens unique ;
— H(m) doit être « sans collision ».
— MD2, MD4 et MD5 (MD signifiant Message Digest), développé par Ron Rivest (société RSA
Security), créant une empreinte digitale de 128 bits pour MD5. Il est courant de voir des
documents en téléchargement sur Internet accompagnés d'un fichier MD5, il
s'agit du résumé du document permettant de vérifier l'intégrité de ce dernier
— SHA (pour Secure Hash Algorithm, pouvant être traduit par Algorithme de hachage sécurisé),
développé par le NIST en 1995. il crée des empreintes d'une longueur de 160 bits. C'est un
standard SHA0 et SHA1 (devenu le standard SHS)
— RACE Integrity Primitives Evaluation Message Digest, développé par Hans Dobbertin, Antoon
Bosselaers et Bart Preneel ;
— RIPEMD-128 et RIPEMD-160, créé entre 88 et 92 ;
— Tiger, développé par Ross Anderson et Eli Biham, plus rapide que MD5 (132Mb/s contre
37Mb/s sur une même machine, optimisé pour processeur 64bit).
Fonctionnement
1. L'expéditeur calcule l'empreinte de son texte en clair à l'aide d'une fonction de hachage ;
2. L'expéditeur chiffre l'empreinte avec sa clé privée ;
Le chiffrement du document est optionnel si la confidentialité n'est pas nécessaire.
3. L'expéditeur chiffre le texte en clair et l'empreinte chiffrée à l'aide de la clé publique du
destinataire.
4. L'expéditeur envoie le document chiffré au destinataire ;
5. Le destinataire déchiffre le document avec sa clé privée ;
6. Le destinataire déchiffre l'empreinte avec la clé publique de l'expéditeur (authentification) ;
7. Le destinataire calcule l'empreinte du texte clair à l'aide de la même fonction de hachage que
l'expéditeur ;
8. Le destinataire compare les deux empreintes.
Deux empreintes identiques impliquent que le texte en clair n'a pas été modifié (intégrité).
Le standard américain est le DSS (Digital Signature Standard), qui spécifie trois algorithmes : le
DSA
(Digital Signature Algorithm), RSA et ECDSA (Elliptic Curves Digital Signature Algorithm).
13. SSL
13.1.1. Introduction
SSL (Secure Sockets Layers, que l'on pourrait traduire par couche de sockets sécurisée) est
un procédé de sécurisation des transactions effectuées via Internet. Le standard SSL a été mis
au point par Netscape, en collaboration avec Mastercard, Bank of America, MCI et Silicon
Graphics. Il repose sur un procédé de cryptographie par clef publique afin de garantir la sécurité
de la transmission de données sur internet. Son principe consiste à établir un canal de
communication sécurisé (chiffré) entre deux machines (un client et un serveur) après une étape
d'authentification.
Le système SSL est indépendant du protocole utilisé, ce qui signifie qu'il peut aussi bien
sécuriser des transactions faites sur le Web par le protocole HTTP que des connexions via le
protocole FTP, POP ou IMAP. En effet, SSL agit telle une couche supplémentaire, permettant
d'assurer la sécurité des données, située entre la couche application et la couche transport
(protocole TCP par exemple).
De cette manière, SSL est transparent pour l'utilisateur (entendez par là qu'il peut ignorer qu'il
utilise SSL). Par exemple un utilisateur utilisant un navigateur internet pour se connecter à un
site de commerce électronique sécurisé par SSL enverra des données chiffrées sans aucune
manipulation nécessaire de sa part.
La quasi intégralité des navigateurs supporte désormais le protocole SSL. Netscape Navigator
affiche par exemple un cadenas verrouillé pour indiquer la connexion à un site sécurisé par SSL
et un cadenas ouvert dans le cas contraire, tandis que Microsoft Internet Explorer affiche un
cadenas uniquement lors de la connexion à un site sécurisé par SSL.
14. La PKI
14.1.1. Introduction à la notion de certificat
Les algorithmes de chiffrement asymétrique sont basés sur le partage entre les différents
utilisateurs d'une clé publique. Généralement le partage de cette clé se fait au travers d'un
annuaire électronique (généralement au format LDAP) ou bien d'un site web.
Toutefois ce mode de partage a une grande lacune : rien ne garantit que la clé est bien celle de
l'utilisateur a qui elle est associée. En effet un pirate peut corrompre la clé publique présente
dans l'annuaire en la remplaçant par sa clé publique. Ainsi, le pirate sera en mesure de
déchiffrer tous les messages ayant été chiffrés avec la clé présente dans l'annuaire.
Ainsi un certificat permet d'associer une clé publique à une entité (une personne, une machine,
...) afin d'en assurer la validité. Le certificat est en quelque sorte la carte d'identité de la clé
publique, délivré par un organisme appelé autorité de certification (souvent notée CA pour
Certification Authority).
L'autorité de certification est chargée de délivrer les certificats, de leur assigner une date de
validité (équivalent à la date limite de péremption des produits alimentaires), ainsi que de
révoquer éventuellement des certificats avant cette date en cas de compromission de la clé (ou
du propriétaire).
La structure des certificats est normalisée par le standard X.509 de l'UIT (plus exactement
X.509v3), qui définit les informations contenues dans le certificat :
La version de X.509 à laquelle le certificat correspond ;
Le numéro de série du certificat ;
L'algorithme de chiffrement utilisé pour signer le certificat ;
Le nom (DN, pour Distinguished Name) de l'autorité de certification émettrice ;
La date de début de validité du certificat ;
La date de fin de validité du certificat ;
L'objet de l'utilisation de la clé publique ;
La clé publique du propriétaire du certificat ;
La signature de l'émetteur du certificat (thumbprint).
L'ensemble de ces informations (informations + clé publique du demandeur) est signé par
l'autorité de certification, cela signifie qu'une fonction de hachage crée une empreinte de ces
informations, puis ce condensé est chiffré à l'aide de la clé privée de l'autorité de certification; la
clé publique ayant été préalablement largement diffusée afin de permettre aux utilisateurs de
vérifier la signature avec la clé publique de l'autorité de certification.
Lorsqu'un utilisateur désire communiquer avec une autre personne, il lui suffit de se procurer le
certificat du destinataire. Ce certificat contient le nom du destinataire, ainsi que sa clé publique
et est signé par l'autorité de certification. Il est donc possible de vérifier la validité du message
en appliquant d'une part la fonction de hachage aux informations contenues dans le certificat, en
déchiffrant d'autre part la signature de l'autorité de certification avec la clé publique de cette
dernière et en comparant ces deux résultats.
Ils doivent également savoir déchiffrer un certificat et être capable de contacter l´Autorité de
Certification afin de vérifier la validité du certificat auprès de la liste de révocation. La PKI n’est
qu’une simple couche destinée à faciliter la gestion des identités numériques à grande échelle.
Elle est totalement indépendante des applications éventuelles qui utilisent ces identités.
La révocation
Accepteriez vous d’utiliser une carte bancaire si vous ne pouviez par y faire
opposition, même en cas de vol ?
Les CRL : la liste des certificats révoqués, liste signée par la CA
Mal implémenté dans les navigateurs
Pas encore de CRL incrémentale.
Alternative : OCSP
La révocation est une limite théorique au modèle des PKIs.
Les composants
On distingue différents composants dans une IGC :
— Autorité de certification AC (certificat authority)
— Autorité d’enregistrement AE (registry authority)
— Interface utilisateur (Enrolment Entity)
L'autorité d'enregistrement
Vérifie l’identité des demandeurs de certificats et les éléments de la demande.
Exemple :
— L’email présent dans le DN est-il l’email canonique ?
— Le demandeur a-t-il le droit de disposer d’un certificat de signature ?
Transmet les demandes valides par un canal sûr à l’AC (demandes signées par l’opérateur de la AC) Recueille
et vérifie les demandes de révocation