Cours Crypto Cryptis
Cours Crypto Cryptis
⊳ ...
Définitions
Pour assurer la protection des accès à une information, on utilise des techniques de chiffrement.
Ces techniques s’appliquent à des messages lisibles appelés également «texte en clair».
Les messages à chiffrer, appelés «texte en clair», sont transformés grâce à une méthode de chiffre-
ment paramétrable.
Si la méthode est connue de tous, ce sont les paramètres qui constituent la protection : ils servent à
chiffrer/déchiffrer le message.
chiffrement
paramètres
On appelle cryptanalyse les techniques employées pour déchiffrer un cryptogramme, sans connaître
la méthode et/ou ses paramètres.
a. Vocabulaire
La cryptographie est une discipline consistant à manipuler des données
de telle façon que les services suivants puissent être fournis :
Intégrité
Objectif : s’assurer que les données n’ont pas été modifiées sans autorisation.
Remarque : dans les faits, la cryptographie ne s’attache pas vraiment à
empêcher une modification de données, mais plutôt à fournir un moyen sûr de
détecter une modification malveillante.
Confidentialité
P-F. Bonnefoi — Sécurité des Usages TIC
a. Vocabulaire
Chiffrer
Transformer une donnée de telle façon
qu’elle devienne incompréhensible.
Seules les entités autorisées pourront
comprendre cette donnée chiffrée.
P-F. Bonnefoi — Sécurité des Usages TIC
Déchiffrer
Transformer une donnée précédemment
chiffrée pour reconstituer la donnée
d’origine. Seules les entités autorisées
ont la capacité de procéder à cette action.
Recours à un algorithme
et à une clé
cryptographique.
Cette méthode peut être utilisé en plus de techniques de cryptographie avancée et permet d’en dissimuler l’usage.
⊳ le filigrane ou «watermarking» pour dissimuler une information dans un document pour en permettre l’identification
P-F. Bonnefoi — Sécurité des Usages TIC
⊳ le canal de communication caché ou «cover channel» qui permet de diposer d’un véritable canal de communication
en détournant l’usage de canaux de communications anodins. Cette technique permet de déjouer l’usage de firewall.
⊳ ...
Exemple : ralentir artificiellement un transfert ftp ou au contraire l’accélérer pour coder un bit à 1 ou à 0, et pouvoir
transmettre à un observateur le message qu’il construit.
Un peu d’Histoire...
La notion de codage de l’information & la cryptographie associée 10
Au début, il y eut les caractères et l’alphabet...
Historiquement, l’utilisation d’alphabet a permis de coder chaque mot du langage à partir de mêmes
symboles à la différence des idéogrammes chinois par exemple.
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…).
w
e
e
Q
H
Z
I
v
v
f
f
H
Y
R
I
u
u
g
g
G
X
S
J
a ⟹D a⟹M
W
F
K
T
h
h
t
t
V
U
L
s
s
i
i
M
D
U
V
P-F. Bonnefoi — Sécurité des Usages TIC
r
W
j
j
T N C
S O k B X k
q R P q A Y
Q Z
p l p l
o n m o n m
donne : «OHSHW LWFKD SHURQ VHSUR PHQDL donne : «XQBQF UFOTM BQDAZ EQBDA YQZ-
WGDQV ODIRU HW» MU FPMZE XMRAD QF»
Exemple d’intégration de chiffrement dans le Web : filtre anti-spam 12
<!-- DEBUT DU SCRIPT MAILTO ANTI SPAM-->
<!-- Script provenant de [Link] -->
<script type="text/javascript">
<!--
var a, s, n;
function Crypt(s) {
r='';for(i=0;i<[Link];i++)
{
n=[Link](i);
if (n>=8364) {n = 128;}
r += [Link]( n - 3 ); }
return r;}
a ="pdlowr=";
m='@';
d=unescape(m);
// -->
</script>
Dans le cas de l’utilisation d’un code par substitution, la cryptanalyse ou déchiffrement se fait par l’utili-
sation de données statistiques :
En anglais :
□ les caractères les plus fréquemment utilisés sont : e, t, o, a, n, i…
□ les combinaisons de deux lettres (digrammes) les plus fréquentes sont : th, in, er, re, et an.
□ les combinaisons de trois lettres (trigrammes) : the, ing, and et ion.
Par exemple dans un texte chiffré appartenant à une banque il est probable de trouver des mots tel que
financier, montant, solde…
Comment finir la cryptanalyse ?
Si certains mots commencent à émerger du texte chiffré, alors il y a de fortes probabilités que le code
de chiffrement soit découvert.
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.
Fréquence d’apparition des caractères, bigrammes et trigrammes en français 15
17,26
20
fréquence en %
15
8,08
10
8,4
7,34
7,13
7,07
6,55
6,01
5,74
5,26
4,18
3,03
3,01
2,96
5
1,32
1,27
1,12
1,06
0,99
0,92
0,45
0,31
0,12
0,05
0,04
0,3
P-F. Bonnefoi — Sécurité des Usages TIC
0
E A S I N T R L U O D C P M V G F B Q H X J Y Z K W
20
fréquence en %
15
P-F. Bonnefoi — Sécurité des Usages TIC
11,5
9,73
8,85
7,96
10
6,19
5,31
5,31
4,42
4,42
3,54
2,65
2,65
5
0,88
0,88
0,88
0,88
0,88
0,88
0,88
0,88
0
0
0
0
0
0
T V W L E X J N K U I D O A H M P Q R S Y B C F G Z
Cryptanalyse de la substitution mono alphabétique 17
Comparaison des fréquences entre chiffré et clair
25 fréquence français fréquence chiffré
20
fréquence en %
15
10
0
P-F. Bonnefoi — Sécurité des Usages TIC
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Début du déchiffrement
On associe les caractères qui ont la fréquence la plus élevées : T ⟹ e
JeVMNKKeVLDEVVeLWeWIeKeXUeLWJERUeVeWeHDXAeLIUNEWVJeVIEVWELOW
ENLVVNOEDJeVLePeXYeLWeWUeSNLIeeVQXeVXUJXWEJEWeONKKXLe
Cryptanalyse du chiffrement par substitution 18
JeVMNKKeVLDEVVeLWeWIeKeXUeLWJERUeVeWeHDXAeLIUNEWVJeVIEVWELOW
ENLVVNOEDJeVLePeXYeLWeWUeSNLIeeVQXeVXUJXWEJEWeONKKXLe
D’après la table étendue des fréquences de bigrammes, on trouve que les bigramme les plus fréquent, où les lettres sont
les mêmes, sont :
⊳ ee : la lettre «e» étant déjà affectée, on ne l’utilisera pas ;
⊳ ss : on va associer V ⟹ s ;
⊳ ll : on pourra tester cette association plus tard.
JesMNKKesLDEsseLWeWIeKeXUeLWJERUeseWeHDXAeLIUNEWsJesIEsWELOW
ENLssNOEDJesLePeXYeLWeWUeSNLIeesQXesXUJXWEJEWeONKKXLe
JesMNKKesLDEsseLtetIeKeXUeLtJERUeseteHDXAeLIUNEtsJesIEstELOt
P-F. Bonnefoi — Sécurité des Usages TIC
ENLssNOEDJesLePeXYeLtetUeSNLIeesQXesXUJXtEJEteONKKXLe
JesMNKKesLDEsseLtetIeKeXUeLtJERUeseteHDXAeLIUNEtsJesIEstELOt
ENLssNOEDJesLePeXYeLtetUeSNLIeesQXesXUJXtEJEteONKKXLe
Le trigramme le plus fréquent commençant par «e» et finissant par «t» est «ent», d’où L ⟹ «n» :
JesMNKKesnDEssentetIeKeXUentJERUeseteHDXAenIUNEtsJesIEstEnOt
ENnssNOEDJesnePeXYentetUeSNnIeesQXesXUJXtEJEteONKKXne
Cryptanalyse du chiffrement par substitution 19
Suite du déchiffrement
lesMNmmesnDEssentetIemeurentlERreseteHDuxenIrNEtslesIEstEnOt
ENnssNOEDlesnePeuventetreSNnIeesQuesurlutElEteONmmune
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
x y z l m n e r s t u v w
Fin du déchiffrement
leshommesnaissentetdemeurentlibresetegauxendroitslesdistinct
ionssocialesnepeuventetrefondeesquesurlutilitecommune
P-F. Bonnefoi — Sécurité des Usages TIC
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
x y z a i j g d l m n h o c p q b f e r s t u v w
On remarquera que G⟹k même si ce caractère n’apparait pas dans le texte en clair.
Cryptanalyse du chiffrement par substitution 20
Utilisation des fréquences les plus élevées pour le caractères, bigrammes et trigrammes
Statistiques chiffré T V W L E X
Statistiques clair e a s i n t
∘ VV ⟹ ss
∘ KK ⟹ mm
∘ TLW ⟹ ent
Utilisation d’un dictionnaire
Il est possible de tirer partie d’un dictionnaire, en regroupant les lettres en mots, puis en les recher-
P-F. Bonnefoi — Sécurité des Usages TIC
Toutes les lettres du message sont présentes, mais dans un ordre différent.
C’est un chiffrement de type anagramme.
Il utilise le principe mathématique des permutations (par colonne par exemple).
La scytale spartiate (5ème siècle avant notre ère) :
P-F. Bonnefoi — Sécurité des Usages TIC
A A P I O E E N E I A I N U E E S U T
T N O T N R T T O E V R H T G D E R E
Texte chiffré :
LRSSI PMEHR DOUAD RECIA APIOE ENEIA INUEE SUTTN OTNRT
TOEVR HTGDE RE
Chiffrement par transposition 23
Les méthodes de chiffrement par transposition consistent à réarranger les données à chiffrer de telle
façon à les rendre incompréhensibles.
En général : réarranger géométriquement les données pour les rendre visuellement inexploitables.
C e c i e s t u Cncehre h atctiluaiefatn…
n t e x t e à
c h i f f r e r d
e l a p l u s Chaque colonne est ensuite copiée l’une après l’autre.
h a u t e i m p o
P-F. Bonnefoi — Sécurité des Usages TIC
r t a n c e
P-F. Bonnefoi — Sécurité des Usages TIC
Cassable ?
Cryptanalyse du chiffrement par transposition 25
Cryptanalyse
□ Déterminer si une substitution n’a pas été utilisée : une analyse statistique des caractères suffit à
déterminer si les caractères ont été substitués (statistiques fréquentielles du texte identiques à celle
d’un texte en clair).
□ 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 transposi-
tion.
Les codes de transposition contrairement aux codes par substitution ne cachent pas les caractères,
mais modifient l’ordre des caractères.
Et l’ordinateur fut…
P-F. Bonnefoi — Sécurité des Usages TIC
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 trois cryptographes polonais : Marian
Rejewski, Jerzy Różycki et Henryk Zygalski, puis cette méthode a été amélioré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.
Comment renforcer la force des chiffrements ? 26
Combiner Substitution et Transposition
il est possible de faire subir aux caractères du «texte en clair» :
□ une substitution ;
□ plusieurs opérations de transposition.
Changer les paramètres de ces combinaisons très souvent
l’utilisation des paramètres de chaque opération doit être réduite au chiffrement de quelques messages avant d’être
changés pour de nouveaux paramètres.
La combinaison des différents paramètres des différentes opérations permet de définir un secret.
Le but
rendre l’apparence du cryptogramme la plus « aléatoire » possible, c-à-d éliminer les relations statistiques des carac-
tères du cryptogramme pour éviter la cryptanalyse :
Transposition + Substitution = Diffusion
L’actualité ?
les chiffrements tels que DES «Data Encryption System» et AES «Advanced Encryption System» sont utilisés à l’heure
actuelle.
Utilisation de la cryptographie moderne
pour la sécurité
P-F. Bonnefoi — Sécurité des Usages TIC
2 Cryptographie moderne 28
Auparavant, les algorithmes étaient simples mais utilisaient des clés longues.
Exemple : un XOR entre le message à transmettre et une clé de même taille suffit à le rendre indéchif-
frable...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 ne puissent plus assurer le même niveau de sécurité.
□ à clé symétrique ;
□ à clé asymétrique.
Rappel de l’hypothèse de base de la cryptographie :
Principe de Kerckhoff – Auguste Kerckhoff, «La cryptographie militaire», février 1883
∘ L’opposant connaît le système cryptographique
∘ Toute la sécurité d’un système cryptographique doit reposer sur la clé, et pas sur le système lui-même
Chiffrement à clé symétrique 29
Principe
La même clé doit être employée pour chiffrer ou déchiffrer le message : on parle de clé symétrique ou
secrète.
clé clé
Remarques
La qualité d’un crypto système symétrique se mesure par rapport :
P-F. Bonnefoi — Sécurité des Usages TIC
En pratique
Tant qu’un crypto système symétrique n’a pas été cassé, il est bon, après il est mauvais !
Chiffrement symétrique : une approche théorique 30
Chiffrement à clé symétrique
Ce chiffrement repose sur la définition d’une formule mathématique de la forme :
Données chiffrées = 𝐹(données, clé)
Avec une fonction inverse de la forme :
Données = 𝐹 −1 (données chiffrées, clé)
La clé est sur 64bits dont 8 sont utilisés comme calcul de l’intégrité des 56 autres (parité).
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.
P-F. Bonnefoi — Sécurité des Usages TIC
Elle est toujours utilisée pour des petites tâches tel que l’échange de clés de chiffrement dans sa forme étendue 3DES :
chiffré = 𝐶𝐾 (𝐷𝐾 (𝐶𝐾 (texte clair))) et texte clair = 𝐷𝐾 (𝐶𝐾 (𝐷𝐾 (chiffré)))
3 2 1 1 2 3
où les clés sont choisies :
⊳ toutes différentes, soient une clé de 168 bits ;
⊳ 𝐾1 et 𝐾2 sont différentes avec 𝐾3 = 𝐾1 soient un clé de 112bits ;
⊳ toutes identiques 𝐾1 = 𝐾2 = 𝐾3 équivalent au DES, ne doit plus être utilisé.
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, ...
Chiffrement à clé symétrique 32
AES, «Advanced Encryption Standard»
L’AES est un standard de chiffrement symétrique choisi en l’an 2000 par le NIST destiné à remplacer le
DES devenu trop faible au regard des attaques actuelles.
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
Le chiffrement par bloc définie la méthode choisie pour chiffrer le message décomposé en bloc, c-à-d :
– dans quel ordre ;
– après quelle transformation.
On parlera de mode d’opérations.
Quatre modes définis
Quatre modes sont définis dans FIPS 81, «Federal Information Processing Standards Publication 81», (2 décembre 1980) et aussi
dans la norme ANSI X3.106-1983.
□ ECB «Electronic Code Book» ;
□ CBC «Cipher Block Chaining» ;
□ CFB «Cipher FeedBack» ;
□ OFB «Output FeedBack».
Il existe de nouveaux modes mieux adaptés aux échanges réseaux comme le mode CTR, «Counter mode».
Problèmes :
⊳ il faut un nombre suffisant d’octets de texte en clair avant de commencer (taille du bloc) ;
⊳ si on utilise deux fois le même texte clair et la même clé de chiffrement, le résultat du chiffrement sera identique.
Attaque : en retrouvant un endroit précis dans une transaction et en effectuant une substitution avec les données d’une autre
transaction utilisant la même clé de chiffrement.
Chiffrement par bloc : le mode ECB 35
Chiffrement
Plaintext Plaintext Plaintext
L’original : Le chiffré :
P-F. Bonnefoi — Sécurité des Usages TIC
Protection contre les attaques : il ne faut pas réutiliser le même Vecteur d’Initialisation avec le même chif-
frement (la même clé de chiffrement).
L’original : Le chiffré :
P-F. Bonnefoi — Sécurité des Usages TIC
Entropie
Transmission de l’information et entropie 41
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
⊳ est-ce A ?
Alice Bob ⊳ est-ce B ?
⊳ est-ce C ? 26 questions
⊳ ...
1⟹Oui ⊳ est-ce Z ?
000001
0⟹Non
<G ? <T
F 6 lettres
⟹ en moyenne log2 (26) = 4.7 questions pour une lettre. Pour un mot de 6 lettres :6 ∗ 4.7 = 28.2 questions ou «bits».
Transmission de l’information 42
symboles
primaires p o u construits sur la sélection
S
des symboles primaires
T ...
U
t o n
Imaginons transmettre uniquement les mots «oui» et «non» :
⊳ ils contiennent chacun 3 lettres.
⊳ si ce sont les deux seuls mots à transmettre, alors on a que deux symboles secondaires.
⟹La transmission de l’information n’est pas aléatoire, mais un mélange d’éléments prédictibles et de surprises.
⟹Si une information est prédictible, alors il n’est pas nécessaire de la transmettre.
⟹Elle peut être réduite si on définit les symboles et leurs séquences en éliminant les redondances.
Transmission et compression de données 43
Comment réduire du texte à transmettre ? Utilisation d’un dictionnaire
On définit un dictionnaire où :
⊳ chaque mot est associé à une valeur numérique ;
⊳ les mots les plus utilisés sont associés aux valeurs numériques les plus courtes :
[Link]
1. de 3. le 5. les 7. en
2. la 4. et 6. des 8. un
1993. dizaines 1995. exactement 1997. scénario 1999. émissions
1994. d’environ 1996. outil 1998. coups 2000. éventuellement
⊳ «la sécurité est importante» ⟹ «2 389 12 467»
Pour communiquer Alice et Bob doivent
disposer du même dictionnaire :
2,389,12,467
P-F. Bonnefoi — Sécurité des Usages TIC
Alice Bob
On peut utiliser des dictionnaires spécialisés :
□ Telegraph Dictionary and Seamen’s Signal Book
H K ⟹ «We must abandon the vessel or place»
H S ⟹ «You have so much abbreviated the words of the message that it is not intelligible.»
□ Cotton Telegraph Code :
Joke ⟹ «Ship by Memphis & Charleston Railroad, via Norfolk»
Kingdom ⟹ «At what price can you purchase stained, cotton, free from sand or dust, of long, strong staple ?»
Améliorations : construire le dictionnaire sur les données à transmettre 44
Message
Message Analyser le message Compresser le message
compressé
⊳ Est-ce intéressant ? Oui, si la taille du message compressé et du dictionnaire est inférieure au message :
Message
compressé + < Message
P-F. Bonnefoi — Sécurité des Usages TIC
Message Message
Alice Bob
Compression Lempel-Ziv 45
Travail de l’analyseur/compresseur :
⊳ lire caractère par caractère et s’arrêter sur une séquence non déja vu :
A|ABABBABBAABA A|
∅A
Alice Bob
Alice lit le caractère «A» du message.
Au départ, le dictionnaire est vide ∅ et Alice transmet ∅A à Bob.
A|ABABBABBAABA A|
⋄ A⟶1 ⋄ A⟶1
Alice Bob
P-F. Bonnefoi — Sécurité des Usages TIC
Alice et Bob rentre dans leur dictionnaire respectif la première association «A ⟶ 1».
⊳ lire tant qu’on trouve une séquence déjà connue, puis lire un caractère supplémentaire :
A|AB|ABBABBAABA A|AB
1B
⋄ A⟶1 ⋄ A⟶1
Alice ⋄ AB ⟶ 2 ⋄ AB ⟶ 2 Bob
Compression Lempel-Ziv 46
⊳ lire tant qu’on trouve une séquence déjà connue, puis lire un caractère supplémentaire :
A|AB|ABB|ABBAABA A|AB|ABB
2B
⋄ A⟶1 ⋄ A⟶1
Alice ⋄ AB ⟶ 2 ⋄ AB ⟶ 2 Bob
⋄ ABB ⟶ 3 ⋄ ABB ⟶ 3
⊳ lire tant qu’on trouve une séquence déjà connue, puis lire un caractère supplémentaire :
A|AB|ABB|ABBA|ABA A|AB|ABB|ABBA
3A
⋄ A⟶1 ⋄ A⟶1
Alice ⋄ AB ⟶ 2 ⋄ AB ⟶ 2 Bob
⋄ ABB ⟶ 3 ⋄ ABB ⟶ 3
⋄ ABBA ⟶ 4 ⋄ ABBA ⟶ 4
P-F. Bonnefoi — Sécurité des Usages TIC
⊳ lire tant qu’on trouve une séquence déjà connue, puis lire un caractère supplémentaire :
A|AB|ABB|ABBA|ABA| A|AB|ABB|ABBA|ABA
2A
⋄ A⟶1 ⋄ A⟶1
Alice ⋄ AB ⟶ 2 ⋄ AB ⟶ 2 Bob
⋄ ABB ⟶ 3 ⋄ ABB ⟶ 3
⋄ ABBA ⟶ 4 ⋄ ABBA ⟶ 4
⋄ ABA ⟶ 5 ⋄ ABA ⟶ 5
Entropie 47
𝑛 𝑛
Entropie : 𝐻 = ∑𝑖=1 𝑝𝑖 ∗ log2 ( 𝑝1 ) = − ∑𝑖=1 𝑝𝑖 ∗ log2 (𝑝𝑖 ) où 𝑝 est la 𝑆 = "𝐴𝐴𝐴𝐴𝐵𝐶𝐷𝐷", soient 8 ∗ 8 = 64bits
𝑖
1
probabilité d’apparition d’un symbole et log2 ( 𝑝 ) est la taille de la séquence 𝐻 = 1 ∗ .5 + 2 ∗ .25 + 3 ∗ .125
𝑖 0 1 +3 ∗ .125 = 1.75
binaire correspondant au codage du symbole obtenu de manière optimale
par rapport à sa probabilité d’apparition. 𝐴 → 0 𝐵 → 111
A/.5
Exemple : 0 1 𝐶 → 110 𝐷 → 10
– l’entropie maximale de données codées sur des octets est proche de 8. Compression:
D/.25
– un texte littéraire possède une faible entropie (redondance des mots 0 1 4*1+1*3+1*3+2*2=14bits
dans les phrases) ; ou 8 ∗ 𝐻 = 8 ∗ 1.75 = 14
C/.125 B/.125 arbre de Huffman
– la compression optimale de Huffman exploite l’entropie.
x x x x x x x x ?
temps
symboles connus
P-F. Bonnefoi — Sécurité des Usages TIC
Le device Linux /dev/urandom fournit des valeurs dont l’aléas est garanti.
Méthode de Monte-Carlo pour déterminer la valeur de 𝜋 50
On choisit au hasard des points (𝑥, 𝑦) à l’intérieur du carré, c-à-d compris (.7,.8) à l’intérieur du cercle
entre (0, 0) et (1, 1) : 1
58 }
on attends de presser une touche pour quitter
Le Makefile : On exécute le programme et on crée un «coredump», c-à-d
CC=gcc une copie de son espace mémoire :
LDFLAGS=-lssl -lcrypto
PROG=generate_aes xterm
OBJS=generate_aes.o make
./generate_aes &
.c.o: sudo gcore 19004
$(CC) -c $<
program: $(OBJS)
$(CC) -o $(PROG) $^ $(LDFLAGS)
Utilisation de l’entropie pour retrouver un élément cryptographique 54
À gauche est affiché le contenu du «coredump» avec la commande «xxd», où on recherche la clé affichée par le programme :
P-F. Bonnefoi — Sécurité des Usages TIC
Le site
[Link]
permet :
⊳ de lire un contenu binaire,
ici le «coredump» du pro-
gramme
generate_aes ;
⊳ d’afficher graphiquement
la mesure d’entropie sui-
vant une intensité de rose ;
⊳ de se déplacer de ma-
nière interactive dans le
P-F. Bonnefoi — Sécurité des Usages TIC
graphique en synchroni-
sation avec un affichage
hexadécimal du contenu.
Utilisation de l’entropie pour retrouver un élément cryptographique 56
Si on zoom :
On voit que la mesure d’entropie per-
met de cerner rapidement les en-
droits où le chiffrement AES se trouve.
Le «coredump» a une taille de
595968 octets.
P-F. Bonnefoi — Sécurité des Usages TIC
Utilisation de l’entropie pour retrouver un élément cryptographique 57
Juste pour s’amuser, si on essai sur une version «gzipée» en compression Ziv-Lempel :
P-F. Bonnefoi — Sécurité des Usages TIC
Utilisation de l’entropie pour retrouver un élément cryptographique 58
On obtient un graphe de la mesure d’entropie afin d’isoler les endroits où elle est élevée.
Utilisation de l’entropie pour retrouver un élément cryptographique 59
P-F. Bonnefoi — Sécurité des Usages TIC
On zoom...
xterm
L’adresse des données chiffrées est 0x8cca0, ce qui donne en décimal : $ printf "%d\n" 0x8cca0
576672
Utilisation de l’entropie pour retrouver un élément cryptographique 60
aléas
chiffrement
P-F. Bonnefoi — Sécurité des Usages TIC
Encore un zoom, et on est sur la zone où se trouve le chiffrement AES avec un pic d’entropie vers 576672.
Le chiffrement par bloc pour le chiffrement symétrique 61
CFB : Cipher Feedback
Le mode qui semble éviter tous les problèmes est le CFB :
– l’opération XOR est appliquée entre le bloc de texte clair et le résultat précédent chiffré à nouveau par la
fonction de chiffrement ;
– il offre une grande sécurité.
Chiffrement I[0] = VI
I[n] = C[n-1] , si (n > 0)
C[n] = T[n] xor E(I[n])
P-F. Bonnefoi — Sécurité des Usages TIC
Déchiffrement I[0] = VI
I[n] = C[n-1], si (n > 0)
T[n] = C[n] xor E(I[n])
Déchiffrement I[0] = VI
I[n] = R[n-1] , si (n > 0)
P-F. Bonnefoi — Sécurité des Usages TIC
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 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 PRNG, «pseudo-random number generator», c-à-d un pseudo-générateur de nombre
aléatoire : génération d’une séquence de valeurs aléatoires reproductible.
Chiffrement par bloc : le mode OFB 64
Chiffrement
Initialization Vector (IV)
payer 600 6
II. Input: ASCII (base 256) II. Input: ASCII (base 256)
9
Séquence OFB 123456789
III. Output: hexadecimal (base 16) III. Output: hexadecimal (base 16)
f
41534a514716010809 de 6 à 9...
Home Help Privacy
Home Help Privacy
XOR Calculator XOR Calculator
Thanks for using the calculator. View help page. Thanks for using the calculator. View help page.
P-F. Bonnefoi — Sécurité des Usages TIC
41534a514716010809 41534a5147160e0809
II. Input: hexadecimal (base 16) II. Input: ASCII (base 256)
⊕ F étape 1
𝐷 𝐺 ⊕ 𝐹(𝐷)
⊕ F
⊕ F étape 2
P-F. Bonnefoi — Sécurité des Usages TIC
... étapes i
𝐺 ⊕ 𝐹(𝐷) 𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷))
étape n
inversion finale
𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷)) 𝐺 ⊕ 𝐹(𝐷)
taille 𝑛 bits taille 𝑛 bits Chaque étape 𝑖 est appelée «round» ou «tour».
Le réseau de Feistel sert de base au chiffrement DES.
Réseau de Feistel : fonctionnement du chiffrement/déchiffrement 67
Chiffrement Déchiffrement
taille 𝑛 bits taille 𝑛 bits taille 𝑛 bits taille 𝑛 bits
𝐷 𝐺 ⊕ 𝐹(𝐷) 𝐺 ⊕ 𝐹(𝐷) 𝐷
𝐺 ⊕ 𝐹(𝐷)
⊕ F ⊕𝐹(𝐷) ⊕ F
P-F. Bonnefoi — Sécurité des Usages TIC
Chiffrement Déchiffrement
G D 𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷, 𝑘1 ), 𝑘2 ) 𝐺 ⊕ 𝐹(𝐷, 𝑘1 )
𝑥𝑜𝑟 𝑘1 𝑘2
⊕ F ⊕ F
𝐷 𝐺 ⊕ 𝐹(𝐷, 𝑘1 ) 𝐺 ⊕ 𝐹(𝐷, 𝑘1 ) 𝐷
𝑘2 𝑘1
⊕ F ⊕ F
P-F. Bonnefoi — Sécurité des Usages TIC
Chiffrement Déchiffrement
G D 𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷, 𝑘1 ), 𝑘2 ) 𝐺 ⊕ 𝐹(𝐷, 𝑘1 )
𝑥𝑜𝑟 𝑘1 𝑘2
𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷, 𝑘1 ), 𝑘2 )
⊕ F ⊕𝐹(𝐺 ⊕ 𝐹(𝐷, 𝑘1 ), 𝑘2 ) ⊕ F
𝐷 𝐺 ⊕ 𝐹(𝐷, 𝑘1 ) 𝐺 ⊕ 𝐹(𝐷, 𝑘1 ) 𝐷
𝑘2 𝑘1
𝐺 ⊕ 𝐹(𝐷, 𝑘1 )
⊕ F ⊕𝐹(𝐷, 𝑘1 ) ⊕ F
P-F. Bonnefoi — Sécurité des Usages TIC
⊳ 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.
Quels sont les «stream-ciphers» utilisés ?
En 2015, des chercheurs de l’Université de Louvain démontrent l’attaque NO-
MORE, «Numerous Occurrence MOnitoring & Recovery Exploit» sur RC-4 valable
q ue pour TLS et WPA-TKIP :
n tragi
aritio
Disp ⊳ l’attaque sur TLS permet en 75 heures de déchiffrer un cookie de sécurité ;
»
ipher
s t re am c ⊳ l’attaque sur WPA-TKIP permet, au bout d’une heure, de déchiffrer et d’injecter
Le « on-
band des paquets dans le réseau.
-4 est a
RC
né... ⟹ RC-4 disparait de TLS, la RFC 7465 «Prohibiting RC4 Cipher Suites» l’in-
terdit. TLS v1.3 utilise AES-GCM, AES-CCM et ChaCha20 combiné avec le MAC
Poly1305 (RFC7539).
⟹ RC-4 disparait du WiFi, WPA utilise Counter Mode CBC-MAC, «Counter
Mode Cipher Block Chaining Message Authentication Code Protocol» appelé éga-
lement CCMP, «CCM mode Protocol» basé sur AES.
Et si on demande à un serveur Web ce qu’il supporte en TLS ?
P-F. Bonnefoi — Sécurité des Usages TIC
xterm
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = [Link]
verify return:1
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Cipher : ECDHE-RSA-AES256-GCM-SHA384
A
Pour que deux canaux de communications soient indé-
pendants l’un de l’autre, c-à-d qu’une personne accède
H B
à l’un mais pas à l’autre, il faut que ces deux canaux uti-
lisent des clés différentes.
G C
P-F. Bonnefoi — Sécurité des Usages TIC
F D
Il est possible qu’un des interlocuteurs connaissent plusieurs clés utilisées dans différents canaux le reliant à des utilisa-
teurs différents.
Exemple l’utilisateur D possède une clé pour chaque lien (avec H, G, F, E et C).
Problème comment échanger toutes ces clés ?
Les limites de la cryptographie Symétrique 77
Pas d’intégrité et d’identification de l’auteur
Si Alice, Bob et Cédric partage le même lien de communication alors ils partagent la même clé de chiffrement symétrique.
clé secrète
Problème
Chacun peut intercepter et modifier les messages qui s’échangent.
P-F. Bonnefoi — Sécurité des Usages TIC
Et l’asymétrique alors ?
Chiffrement à clé asymétrique 79
Principe
Il utilise :
□ une clé publique connue de tous ;
□ une clé privée connue seulement du destinataire du cryptogramme.
Ces chiffrements à «clé publique» ont été découverts par James Ellis (Angleterre) en 1969 et par Whit-
field Diffie (Etats unis) en 1975.
Serveur de clés
clé privée
clé publique père
récu de
de
B B
Scénario type
□ Alice souhaite transmettre à Bob un ensemble de données (texte, nombres, …).
□ Alice transforme ces informations par un procédé de chiffrement en utilisant la clé publique de
Bob ;
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 diction-
naire, nombres pseudo-aléatoires à germe de génération difficile à deviner, etc.
Chiffrement asymétrique 82
Chiffrement à clé asymétrique
Il repose sur la connaissance d’une fonction mathématique unidirectionnelle, «one-way function», munie d’une trappe
«one-way trapdoor function».
Une fonction unidirectionnelle est une fonction 𝑦 = 𝑓 (𝑥) telle que, si l’on connaît la valeur 𝑦, on doit chercher séquen-
tiellement la valeur 𝑥 car il n’existe pas de fonction inverse directement calculable de la fonction f.
On dit que cette fonction est munie d’une trappe, s’il existe une fonction 𝑥 = 𝑔(𝑦, 𝑧) telle que l’on connaît 𝑧, il est facile
de calculer 𝑥 à partir de 𝑦.
Exemple de scénario d’échange
Bob veux recevoir des messages codés d’Alice, il souhaite que ces messages soient indéchiffrables pour Oscar qui a
accès à leurs échanges :
⊳ Bob et Alice connaissent la fonction unidirectionnelle 𝑓 ;
⊳ Bob fournit à Alice sa «clé publique» 𝑐.
𝑓 et 𝑐 peuvent être connus de tout le monde : ils sont connus d’Oscar.
P-F. Bonnefoi — Sécurité des Usages TIC
Alice chiffre le message M en utilisant l’algorithme 𝑓 et la clé 𝑐 : ceci fournit un texte 𝑇 chiffré ayant les apparences d’une
séquence de valeurs choisies au hasard :
𝑇 = 𝑓 (𝑀, 𝑐) .
Comme 𝑓 est une fonction unidirectionnelle, Oscar est incapable de reconstituer le message même s’il connaît l’algorithme
𝑓, la clé publique 𝑐 et le texte 𝑇.
Bob, lui, possède la «clé privée» 𝑧 qui est absolument secrète.
𝑧 ouvre la trappe de la fonction 𝑓 et permet de déchiffrer le message en appliquant la fonction 𝑔 au triplet (𝑇, 𝑐, 𝑧) :
𝑀 = 𝑔(𝑇 , 𝑐, 𝑧) .
Bob :
⊳ prend un cadenas (ouvert) ;
⊳ ferme une valise contenant le document qu’il souhaite envoyer à Alice ;
P-F. Bonnefoi — Sécurité des Usages TIC
Message
Et si on avance de 46h ? 8 4
7 5
6 et 3, la «racine primitive» modulo 17,
c-à-d n’ayant pas de facteur en com-
mun...
Ce qui fait 46 mod 12 ? 10h !
Les résultats de l’exponentiation modulaire : n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
3𝑛 mod 17 3 9 10 13 5 15 11 16 14 8 7 4 12 2 6 1 ...
P-F. Bonnefoi — Sécurité des Usages TIC
16 17 1 16 17 1 16 17 1 16 17 1 16 17 1
15 2 15 2 15 2 15 2 15 2
14 3 14 3 14 3 14 3 14 3
13 4 13 4 13 4 13 4 13 4
...
12 5 12 5 12 5 12 5 12 5
11 6 11 6 11 6 11 6 11 6
10 7 10 7 10 7 10 7 10 7
9 8 9 8 9 8 9 8 9 8
Les valeurs sont également distribuées autour du cadran...ce qui donne l’impression qu’elles sont aléatoires.
La procédure inverse qui permet de passer de 12, par exemple, à la valeur de 𝑥 telle que : 3𝑥 mod 17 = 12 est dure !
30 31 1
29 2
28 3
27 4
29 1
27 28 2 26 5
26 3
25 25 6
22 23 1 4
21 2
16 17 1 20 3 24 5 24 7
15 2 19 4 23 6 23 8
14 3 18 5 22 7
22 9
13 4 6 21 8
17 21 10
20 9
12 5 16 7 20 11
19 10
11 6 15 8 11 19 12
18
14 9 17 12 18 13
10 7 13 12 11 10 16 15 14 13 17 16 15 14
9 8
37
35 36 1 2
34 3
33 4
32 5
31 6
P-F. Bonnefoi — Sécurité des Usages TIC
30 7
29 8
28 9
27 10
26 11 Plus le nombre premier est grand, plus le «cadran» est grand,
25 12
24 13 et plus la séquence des valeurs obtenues de type 𝒑𝒏 𝒎𝒐𝒅𝒒 aug-
23 14
22
21 16
15 mente.
20 19 18 17
Chiffrement : trouver une opération facile à réaliser mais dure à inverser 87
n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
3𝑛 mod 17 3 9 10 13 5 15 11 16 14 8 7 4 12 2 6 1 3 9 10 ...
valeur de 3𝑛 mod 17
P-F. Bonnefoi — Sécurité des Usages TIC
⊳ Pourquoi la procédure inverse qui permet de passer de 12, par exemple, à la valeur de 𝑥 telle que :
3𝑥 mod 17 = 12 est-elle dure ?
⟹ parce-qu’il faut essayer toutes les valeurs possibles avant de trouver la bonne, ce qui peut prendre
beaucoup de temps !
Chiffrement asymétrique : clé publique et clé privée 88
Crypto-système : recherche d’un problème difficile à résoudre
facile Problème du «logarithme discret» :
329 mod 17 12 ⟹ pour trouver l’exposant, il faut essayer les différentes
difficile valeurs possibles !
3? mod 17 12
Est-ce trouvable en cherchant ?
Pour des valeurs petites, comme 17 oui... mais si on utlise des nombre plus grands comme :
41 699 392 957 415 060 122 123 251 743 926 118 047 280 755 942 727 859 562 221 144 422 770 879 634
528 234 687 327 545 978 537 253 643 190 435 384 223 451 790 600 743 186 710 706 948 084 596 275 495
353 648 241 532 947 688 879 507 515 517 193 627 711 579 879 475 350 089 816 821 087 217 733 022 854
019 999 144 696 637 566 134 923 661 835 848 181 145 153 671 156 026 923 341 312 533 527 164 598 580
084 075 991
ce nombre premier a été choisi sur 1024bits.
Il faut beaucoup, beaucoup de temps pour y arriver ! Suivant la taille, plusieurs années avec des ordinateurs puissants !
Et si on essaye d’aller plus loin ?
La fonction Φ(𝑛) calcule le nombre d’entiers inférieur à 𝑛 qui ne partagent pas de diviseur supérieur à 1 avec 𝑛.
Exemple : Φ(8) = 4, car 1 , 2, 3 , 4, 5 , 6, 7 , il y en a 4 ayant cette propriété.
P-F. Bonnefoi — Sécurité des Usages TIC
On peut arriver à :
⊳ Φ(𝑛) = 𝑛 − 1 si 𝑛 est premier, sinon Φ(n) est long à calculer (il faut énumérer les différents entiers) ;
⊳ Φ(𝑎 ∗ 𝑏) = Φ(𝑎) ∗ Φ(𝑏);
⊳ si on choisit deux nombres premiers 𝑝1 et 𝑝2 et on calcule 𝑛 = 𝑝1 ∗ 𝑝2 ,
on a Φ(𝑛) = Φ(𝑝1 ) ∗ Φ(𝑝2 ) = (𝑝1 − 1) ∗ (𝑝2 − 1)
𝑚 = 89
𝑚′ 𝑑 𝑚′
𝑒=3
𝑚′ = 1394
𝑑 = 2011 𝑛 = 3127 𝑛 = 3127
𝑚
chiffrer déchiffrer
Chiffrement asymétrique : application à l’authentification 90
Chiffrement ? Déchiffrement ? Ce ne serait pas la même chose ?
On peut permuter l’usage de 𝑒 et 𝑑...
𝑚 𝑚𝑒 𝑚 𝑒𝑚
𝑒 𝑑 𝑚′ 𝑑 𝑚" 𝑑
1
𝑚"
2
𝑚′ 2
1
𝑑 𝑒
𝑚
P-F. Bonnefoi — Sécurité des Usages TIC
𝑚
On peut créer un message 𝑚″ qui peut être «(dé)chiffrer» avec la clé publique (𝑒 et 𝑛) en le message
original 𝑚 mais qui ne peut être créer qu’avec la clé privée (𝑑 et 𝑛) !
⟹ Seule la personne ayant la clé privée peut chiffrer un message choisi déchiffrable par la clé
publique associée...
⟹ On peut authentifier la personne ! C-à-d garantir son identité, car elle est la seule à posséder
cette clé privée !
P-F. Bonnefoi — Sécurité des Usages TIC
𝑄 −𝑅 𝑃
𝑃
𝑥 𝑥
𝑃+𝑄
𝑃 + 𝑃 = 2𝑃
𝑃 5𝑃
2𝑃 + 𝑃 = 3𝑃
𝑥 𝑥
6𝑃 4𝑃 3𝑃
2𝑃 2𝑃
Courbes elliptiques sur domaine fini 93
⊳ on n’utilise que des valeurs entières positives pour les coordonnées des points sur la courbe ;
⊳ on utilise le modulo, 𝑝, pour «replier» le domaine de ces points dans un espace réduit
⟹ on obtient un ensemble fini de points ;
𝑦2 ≡ 𝑥 3 + 2𝑥 + 3 mod 11 𝑦2 ≡ 𝑥 3 + 2𝑥 + 3 mod 13 𝑦2 ≡ 𝑥 3 + 2𝑥 + 3 mod 97
12 100
8 10
80
6 8
60
6
4
40
4
2
2 20
0 0
0
0 2 4 6 8 10 0 2 4 6 8 10 12
0 20 40 60 80 100
On observe que :
P-F. Bonnefoi — Sécurité des Usages TIC
Un ensemble d’opérations :
⊳ on peut additionner des points ;
⊳ on peut multiplier un point par un entier :
⋄ Multiplier par 4 : 3𝑃 + 𝑃 = 2𝑃 + 2𝑃 = 4𝑃
⋄ Multiplier par 100 : 𝑃 ⟹ 2𝑃, 2𝑃 ⟹ 3𝑃, 3𝑃 ⟹ 6𝑃, 6𝑃 ⟹ 12𝑃, 12𝑃 ⟹ 24𝑃, 24𝑃 ⟹
25𝑃, 25𝑃 ⟹ 50𝑃 et 50𝑃 ⟹ 100𝑃
⊳ les points obtenus sont sur la courbe et apparaissent «distribuer de manière aléatoire» ;
⊳ Si on donne 𝑄 = 𝑛𝑃 alors il est très difficile de trouver 𝑛 ⟹ il faut essayer les différentes possibilités :
2𝑃, 3𝑃, ...
⟹ on a système qui est rapide à calculer dans un sens :
⋄ connaissant 𝑛 et 𝑃 on cherche 𝑄,
P-F. Bonnefoi — Sécurité des Usages TIC
⋄ mais qui est difficile à «inverser» : connaissant deux points, 𝑃 et 𝑄, trouver 𝑛 tel que 𝑄 = 𝑛𝑃
(problème du logarithme discret).
Avantages par rapport à RSA ?
⊳ le problème posé par les courbes elliptiques est plus dur que celui posé par RSA :
⟹ la taille des clés est plus petite pour assurer un niveau de sécurité équivalent.
⟹ une clé de 246 bits ECC est équivalente à une clé 3072 bits RSA !
P-F. Bonnefoi — Sécurité des Usages TIC
Et finalement
quels sont les usages ?
3. Les bases de la cryptographie
Application à l’authentification
En effet, la clé privée est connue uniquement de son propriétaire. Avec cette clé je peux chiffrer
n’importe quel message que l’on me propose...
...et le message chiffré peut être déchiffré par tout le monde grâce à la clé publique ! Si je pos-
sède la clé privée associée à la clé publique ⟹ je suis la personne associée à cette clé publique !
Notion de «Challenge/Response»
P-F. Bonnefoi — Sécurité des Usages TIC
Si Alice veut authentifier Bob (s’assurer que Bob est bien Bob) :
a. elle demande à Bob de lui chiffrer un message (n’importe lequel, si possible un nouveau à chaque
fois) ;
b. Bob utilise sa clé privée pour le faire et renvoie le message chiffré à Alice ;
c. Alice vérifie qu’elle retrouve bien son message en déchiffrant le message chiffré reçu avec la clé
publique de Bob : si c’est le même message, c’est Bob !
C’est de «l’authentification vivante» !
Chiffrement symétrique ou asymétrique ?
P-F. Bonnefoi — Sécurité des Usages TIC
Chiffrement à clé publique versus chiffrement à clé secrète 101
Comparaisons entre RSA et DES
RSA
⋆ clé de 1024 bits facteur 1000 !
⋆ chiffrement matériel : 300 Kbits/sec
⋆ chiffrement logiciel : 21,6 Kbits/sec
⋆ Inconvénient majeur : un pirate substitue sa propre clé publique à celle du destinataire, il peut alors intercepter et
décrypter le message pour le recoder ensuite avec la vraie clé publique et le renvoyer sur le réseau.
«L’attaque» ne sera pas décelée.
⋆ Usage : chiffrer des données courtes (de quelques octets) telles que les clés secrètes et les signatures électroniques.
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.
P-F. Bonnefoi — Sécurité des Usages TIC
∘ Usage : chiffrement rapide, adapté aux échanges de données de tous les protocoles de communication sécurisés.
Vitesse de chiffrement
□ il existe un décalage de puissance de calcul nécessaire pour le chiffrement/déchiffrement à clé secrète par rapport
à celui à clé publique ;
□ le chiffrement à clé secrète est utilisable pour un débit de données supérieur («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.
Chiffrement à clé symétrique : évaluation 102
Évaluation de la vitesse de chiffrement en AES-CBC en utilisant les instructions AES-NI, c-à-d des instructions dédiées
P-F. Bonnefoi — Sécurité des Usages TIC
xterm
pef@cube:~$ openssl speed -evp aes-128-ofb
Doing aes-128-ofb for 3s on 16 size blocks: 126910978 aes-128-ofb's in 3.00s
Doing aes-128-ofb for 3s on 64 size blocks: 33089676 aes-128-ofb's in 3.00s
Doing aes-128-ofb for 3s on 256 size blocks: 8241247 aes-128-ofb's in 3.00s
Doing aes-128-ofb for 3s on 1024 size blocks: 2062682 aes-128-ofb's in 3.00s
Doing aes-128-ofb for 3s on 8192 size blocks: 257968 aes-128-ofb's in 3.00s
OpenSSL 1.0.2g 1 Mar 2016
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-ofb 676858.55k 705913.09k 703253.08k 704062.12k 704424.62k
Chiffrement ECC, «Elliptic Curve Cryptography» 104
Équivalence du niveau de sécurité des courbes elliptiques
Symmetric Key Length Standard asymmetric Key Length Elliptic Curve Key Length
80 1024 160
112 2048 224
128 3072 256
192 7680 384
256 15360 512
Comparaison de vitesse
xterm
pef@cube:~$ openssl speed ecdsa
P-F. Bonnefoi — Sécurité des Usages TIC
Doing 160 bit sign ecdsa's for 10s: 134037 160 bit ECDSA signs in 9.95s
Doing 160 bit verify ecdsa's for 10s: 36683 160 bit ECDSA verify in 10.00s
Doing 192 bit sign ecdsa's for 10s: 114991 192 bit ECDSA signs in 9.96s
Doing 192 bit verify ecdsa's for 10s: 30191 192 bit ECDSA verify in 10.00s
Doing 224 bit sign ecdsa's for 10s: 105376 224 bit ECDSA signs in 9.97s
Doing 224 bit verify ecdsa's for 10s: 48166 224 bit ECDSA verify in 10.00s
Doing 256 bit sign ecdsa's for 10s: 185621 256 bit ECDSA signs in 9.93s
Doing 256 bit verify ecdsa's for 10s: 87042 256 bit ECDSA verify in 9.99s
OpenSSL 1.0.2g 1 Mar 2016
sign verify sign/s verify/s
160 bit ecdsa (secp160r1) 0.0001s 0.0003s 13471.1 3668.3
192 bit ecdsa (nistp192) 0.0001s 0.0003s 11545.3 3019.1
224 bit ecdsa (nistp224) 0.0001s 0.0002s 10569.3 4816.6
256 bit ecdsa (nistp256) 0.0001s 0.0001s 18693.0 8712.9
xterm
pef@cube:~$ openssl speed rsa
Doing 512 bit private rsa's for 10s: 140959 512 bit private RSA's in 9.99s
Doing 512 bit public rsa's for 10s: 2631882 512 bit public RSA's in 10.00s
Doing 1024 bit private rsa's for 10s: 66152 1024 bit private RSA's in 9.99s
Doing 1024 bit public rsa's for 10s: 1097544 1024 bit public RSA's in 10.00s
Doing 2048 bit private rsa's for 10s: 9965 2048 bit private RSA's in 10.00s
Doing 2048 bit public rsa's for 10s: 365198 2048 bit public RSA's in 10.00s
Doing 3072 bit private rsa's for 10s: 3444 3072 bit private RSA's in 9.99s
Doing 3072 bit public rsa's for 10s: 169980 3072 bit public RSA's in 9.99s
Doing 4096 bit private rsa's for 10s: 1567 4096 bit private RSA's in 10.01s
Doing 4096 bit public rsa's for 10s: 99611 4096 bit public RSA's in 9.99s
Doing 7680 bit private rsa's for 10s: 169 7680 bit private RSA's in 10.03s
Doing 7680 bit public rsa's for 10s: 30041 7680 bit public RSA's in 10.00s
Doing 15360 bit private rsa's for 10s: 33 15360 bit private RSA's in 10.32s
Doing 15360 bit public rsa's for 10s: 7746 15360 bit public RSA's in 9.99s
OpenSSL 1.1.0g 2 Nov 2017
P-F. Bonnefoi — Sécurité des Usages TIC
⊳ ligne 7 : on crée 700Mo de données sans les sauvegarder pour connaitre la vitesse maximale sans
être limité par la vitesse du disque dur ;
P-F. Bonnefoi — Sécurité des Usages TIC
le chiffrement asymétrique...
Échange sécurisé 111
Combinaison symétrique/asymétrique
L’utilisation d’algorithme de chiffrement à clé asymétrique : il est coûteux en puissance de calcul né-
cessaire à le mettre en œuvre.
Conséquence :
⊳ le décalage entre besoin de calcul entre symétrique et asymétrique reste !
Une solution : la combinaison
Il faut trouver un moyen de partager secrètement une même clé secrète :
P-F. Bonnefoi — Sécurité des Usages TIC
l’échange de la clé secrète d’un algorithme de chiffrement symétrique est «protégé» par un algorithme
de chiffrement asymétrique.
C’est un compromis entre le chiffrement symétrique et asymétrique permettant de combiner les deux techniques.
⊳ Seconde possibilité :
a. générer aléatoirement une clé de taille raisonnable utilisée pour un algorithme de chiffrement symétrique ;
b. chiffrer cette clé à l’aide d’un algorithme de chiffrement à 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).
Première possibilité : la méthode Diffie - Hellman 113
La méthode d’échange des clés de Diffie-Hellman
1. Alice et Bob se mettent en accord sur deux grands nombres premiers 𝑛 et 𝑔 avec (𝑛 − 1)/2 premier
et quelques conditions sur 𝑔.
Ces nombres sont publics.
2. Alice choisit un nombre de, au moins, 2048 bits secret 𝑥 ;
3. Bob choisit un nombre de, au moins, 2048 bits secret 𝑦 ;
4. Alice envoie à Bob un message contenant le nombre 𝑛, le nombre 𝑔 et le résultat de 𝑔𝑥 mod 𝑛 ;
5. Bob envoie à Alice le résultat de 𝑔𝑦 mod 𝑛 ;
6. Alice calcule (𝑔𝑦 mod 𝑛)𝑥 ;
7. Bob calcule (𝑔𝑥 mod 𝑛)𝑦 .
A et B partagent maintenant la même clé secrète 𝑔𝑥𝑦 mod 𝑛 !
Si Oscar, l’intrus capture 𝑔 et 𝑛, il ne peut pas calculer 𝑥 et 𝑦, car il n’existe pas de méthode utilisable
de manière raisonnable pour calculer 𝑥 à partir de 𝑔𝑥 mod 𝑛 (problème du logarithme discret) !
P-F. Bonnefoi — Sécurité des Usages TIC
Remarque : pour un niveau de sécurité équivalent, la taille des clés est souvent plus petite en chif-
frement symétrique qu’en chiffrement asymétrique.
128bits en AES contre 2048bits par exemple en RSA.
P-F. Bonnefoi — Sécurité des Usages TIC
Mais, le niveau de sécurité est à mettre en rapport avec le type de données à sécuriser :
Dans la plupart des fonctions cryptographiques, la longueur des clefs est un paramètre sécuritaire important. Un certain nombre de publications
académiques et gouvernementales fournissent des recommandations et des techniques mathématiques pour estimer la taille minimale sécuritaire
des clefs cryptographiques. Malgré la disponibilité de ces publications, choisir une taille de clef appropriée reste complexe, la lecture et la
compréhension de tous ces documents étant nécessaires.
Ce site internet vous permet d’évaluer une longueur de clef appropriée garantissant un niveau de sécurité minimal en implémentant les formules
mathématiques et en résumant les informations disponibles dans toutes ces publications. Vous pouvez également comparer ces méthodes
facilement. Les longueurs fournies ici sont conçues pour résister aux attaques mathématiques, elles ne prennent pas en considération les attaques
algorithmiques, le matériel déficient, etc.
Choix de la méthode
Je remercie Pr. Arjen K. Lenstra pour son aimable autorisation et ses commentaires.
Pour des informations sur la règlementation en cryptologie: Crypto Law Survey / Digital Signature Law Survey.
Confidentialité (P3P) | Limitation de responsabilité / Droit de reproduction | Détails des mises à jour
[Link]
Le chiffrement d’une communication
ne
permet pas l’authentification...
P-F. Bonnefoi — Sécurité des Usages TIC
L’authentification dynamique ou «vivante» 119
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 !
L’approche évoluée, la notion de challenge/réponse
Authentification avec du chiffrement asymétrique :
P-F. Bonnefoi — Sécurité des Usages TIC
⊳ Alice peut déchiffrer ce message chiffré à l’aide de la clé publique de Bob… ⟹ c’est Bob !
Si on utilise du chiffrement asymétrique
peut-on faire à la fois de
l’authentification et de l’échange sécurisé ?
P-F. Bonnefoi — Sécurité des Usages TIC
Deuxième possibilité : Authentification + échange sécurisé 121
Authentification à l’aide du chiffrement à clé publique et échange de clé de session
On suppose que chaque interlocuteur possède la clé publique de l’autre. Ce qui n’est pas évident…
On désire échanger une clé de session tout en s’assurant de l’identité de chacun.
Scénario : Alice veut échanger avec Bob
1. Alice chiffre avec la clé publique de Bob son identité et un nombre aléatoire 𝑵 ;
L’identité permet de sélectionner la clé publique d’«Alice»
2. Alice envoie ce message à Bob qui peut le déchiffrer et retrouver 𝑁
Bob qui reçoit ce message ne sait pas s’il vient d’Alice ou bien d’Oscar (l’intrus)
3. Bob répond par un message chiffré avec la clé publique d’Alice, contenant : 𝑁, un nombre aléatoire
𝑃 et 𝑆 une clé de session ;
4. Alice reçoit le message et le déchiffre à l’aide de sa clé privée
Si Alice trouve 𝑁 alors c’est bien Bob qui lui a envoyé le message puisqu’il était le seul à pouvoir
déchiffrer 𝑁, pas d’intrus qui peut s’insérer dans la communication.
P-F. Bonnefoi — Sécurité des Usages TIC
Ce n’est pas possible non plus que cette réponse soit un message déja échangé puisque N vient
juste d’être choisi par Alice (protection contre le rejeu).
5. Alice valide la session en renvoyant à Bob le nombre 𝑃 chiffré maintenant avec la clé de session 𝑆
L’échange est maintenant basculé en chiffrement à clé secrète avec la clé S…
Problème
Comment être sûr de disposer de la bonne clé publique ?
Il faut disposer d’un intermédiaire de confiance qui détient et distribue les clés publiques.
Utilisation de la clé privée pour l’authentification 122
Protocole d’envoi de message et accusé de réception avec authentification
Remarque : Asymétrique=Chiffrement=Déchiffrement
authentification d’Alice
□ Alice envoie :
Message chiffréAlice→Bob = Asymétrique(Clépub de Bob, Asymétrique( Clépriv de Alice, Message clairAlice))
□ Bob déchiffre et vérifie :
Asymétrique (Clépub de Alice, Asymétrique(Clépriv de Bob, Message chiffréAlice→Bob )) ⟹ Message clairAlice
□ Bob accuse réception, signe, et renvoi :
Message chiffréBob→Alice = Asymétrique(Clépub de Alice, Asymétrique( Clépriv de Bob, Message clairAlice))
□ Alice déchiffre et vérifie :
Asymétrique (Clépub de Bob, Asymétrique(Clépriv de Alice, Message chiffréBob→Alice )) ⟹ Message clairAlice
Attaque sur la clé privée de Bob en soumettant des messages bien choisi
Si Oscar envoie le Message chiffréAlice→Bob (chiffré pour Bob) en tant que message d’authentification :
Youpi !
⋄ Bob déchiffre et vérifie :
Asymétrique (Clépub de Oscar, Asymétrique(Clépriv de Bob, Message chiffréAlice→Bob )) ⟹ Message faux
Message faux = Asymétrique(clépub de Oscar, Asymétrique(Clépriv de Alice, Message clairAlice)) ;
⋄ Bob accuse réception,signe, et renvoi : authentification d’Alice
P-F. Bonnefoi — Sécurité des Usages TIC
Solution : ajouter un contrôle d’intégrité pour garantir la structure d’un message correct
⊳ calculer une empreinte, un «résumé» du message aléatoire initial, un «digest», à l’aide d’une fonction de hachage ;
⊳ utiliser cette empreinte en combinaison avec le message aléatoire lors du chiffrement ;
⟹ éviter à Bob de traiter un mauvais message !
Ok pour les échanges sécurisés.
Mais pour un document, comment faire de
l’authentification ?
P-F. Bonnefoi — Sécurité des Usages TIC
L’authentification d’un document 124
– Chiffrement asymétrique ? Possible. On chiffre le document avec la clé privée de son propriétaire.
Tout le monde peut vérifier avec la clé publique du propriétaire du document que ce document a été chiffré avec sa
clé privée.
Sa clé privée est...privée : c’est bien son document !
Si la clé privée a été utilisée, cela n’a pu être fait qu’avec l’accord du propriétaire : non répudiation !
Le document est chiffré mais peut être déchiffré par tous (en se procurant librement la bonne clé publique du proprié-
P-F. Bonnefoi — Sécurité des Usages TIC
taire).
Cela revient à de la signature !
9 x
□ deux documents proches possédent des hashs très dif-
8 férents ;
5 ensemble
des □ pour un hash connu, il est difficile, voire impossible de
hash trouver le document permettant de l’obtenir ;
C H E F 3 CHEF
8 HASH
5 77379280478615953124555518798002206243
6
Somme : 22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
P-F. Bonnefoi — Sécurité des Usages TIC
C L E F 3 CLEF
12 HASH
5 304901597169549689421998892641104281924
6 Une fonction de hachage classique donne des valeurs très proches...
Somme : 26 Une fonction de hachage cryptographique des valeurs très éloignées !
Fonction de hachage cryptographique 127
Imaginons que l’on veuille voir quelles sont les valeurs associées par la fonction de hachage aux différentes combinai-
sons possibles obtenues à partir des lettres«a» et «b», d’au plus 2 lettres :
combinaison haché
a 16955237001963240173058271559858726497
b 195289424170611159128911017612795795343
ab 32560655549305688865853317129809488800
ba 9416803959311545273129995029514311364
aa 86590556343773185184676854182388058386
bb 44763031454153395597992990748105608828
P-F. Bonnefoi — Sécurité des Usages TIC
haché
a b ab ba aa bb
combinaison
Fonction de hachage cryptographique 128
a
b
c
aa
ab
ac
ba
bb
bc
ca
cb
cc
aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc
combinaison
⟹ ressemble à une distribution aléatoire !
Compression sécurisée de document : fonction de hachage 129
Une fonction de hachage est une fonction permettant d’obtenir un résumé d’un texte, c-à-d une suite de caractères
assez courte représentant le texte qu’il résume.
□ une fonction à sens unique, «one-way function», afin qu’il soit impossible de retrouver le message original à partir
du résumé.
𝑦 = 𝐻(𝑥), mais il est impossible de retrouver x à partir de y !
Propriétés
une fonction de hachage 𝐻 transforme une entrée de données d’une dimension variable 𝑚 etdonne comme résultat une
sortie de données inférieure et fixe ℎ (ℎ = 𝐻(𝑚)).
⋆ l’entrée peut être de dimension variable ;
⋆ la sortie doit être de dimension fixe ;
⋆ 𝐻(𝑚) doit être relativement facile à calculer ;
P-F. Bonnefoi — Sécurité des Usages TIC
⊳ dans la génération des signatures numériques, dans ce cas, le résultat ℎ est appelé «empreinte» en le combinant
avec les propriétés des chiffrements asymétriques.
Résistance des algorihtmes de hachage : recherche intentionnelle d’empreinte 130
Résistance faible au collision
Alice vient de terminer un document 𝑀, et vient de transmettre son empreinte 𝐻(𝑀) obtenue par une fonction de
hachage.
Bob grâce à l’empreinte transmise pourra s’assurer, lorsqu’il récupérera 𝑀, que 𝑀 n’a pas été modifié.
Exemple : la récupération de logiciel sous Linux : l’archive se télécharge sur différents sites et une empreinte est indiquée
sur le site site Web officiel pour la vérification de son intégrité.
Si Oscar veut changer le document 𝑀 par un document 𝑀′ , il doit chercher un document 𝑀′ tel que 𝐻(𝑀′) = 𝐻(𝑀),
c-à-d que les deux documents possèdent la même empreinte.
Ce qui doit être très difficile : nécessiter une recherche exhaustive sur plusieurs années par exemple.
𝐻(𝑀) pour s’assurer à l’avenir d’avoir donner son accord pour le bon document ;
⊳ puis lorsque plus tard, Alice voudra présenter le document 𝑀 pour faire valoir son contrat avec Oscar, Oscar lui
substituera le document 𝑀′
⊳ Alice voit 𝑀′ et refuse cet autre contrat.
Mais Alice est piégée car 𝐻(𝑀) = 𝐻(𝑀′) = empreinte qu’elle a conservé (ou bien qu’elle a signé) !
Pour se protéger ?
Alice devrait légèrement modifier le document 𝑀 sans modifier son sens avant de l’accepter et d’en mémoriser
l’empreinte (ou de la signer) !
Fonction de hachage 131
Principaux algorithmes
Il existe différents algorithmes réalisant de traitement :
– 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.
Son usage est maintenant déconseillé car il possible de choisir la valeur de l’empreinte obtenue.
– SHA,«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).
Son usage est maintenant déconseillé car il possible de choisir la valeur de l’empreinte obtenue.
Il a été étendu en SHA256 ou SHA512.
– RIPEMD «Race Integrity Primitives Evaluation Message Digest», développé par Hans Dobbertin, Antoon Bosselaers
et Bart Preneel,
P-F. Bonnefoi — Sécurité des Usages TIC
– 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).
Une forme particulière de fonction de hachage : MAC ou HMAC
Combiner Intégrité + chiffrement symétrique : MAC, «Message Authentication code», code d’authentification de message.
Combiner une fonction de hachage et une clé secrète : HMAC, «keyed-hash message authentication».
On transmet l’empreinte du message chiffrée avec une clé secrète qui protège contre toute modification du message : si
l’intrus modifie le message et ne connait pas la clé, il ne peut créer un MAC correspondant au nouveau document (le
document peut, lui-même, être transmis chiffré ou non).
Cela peut servir à l’intégrité
de documents distribués
P-F. Bonnefoi — Sécurité des Usages TIC
Application des fonctions de hachage cryptographique : l’arbre de Merkle 133
Top HASH
hash(HASH 0 HASH 1)
HASH 0 HASH 1
hash(HASH 0-0 HASH 0-1) hash(HASH 1-0 HASH 1-1)
blocs de données
bloc 1 bloc 2 bloc 3 bloc 4
contigües
L’utilisation de cette arbre permet d’isoler une erreur dans un fichier transféré d’Alice vers Bob :
1. Bob veut vérifier que le fichier reçu depuis Alice est sans erreur : il calcule l’abre de merkle sur sa copie de fichier ;
P-F. Bonnefoi — Sécurité des Usages TIC
2. Alice transmets le haché Top HASH à Bob, c-à-d celui de la racine de l’arbre ;
3. Bob compare le haché qu’il a calculé avec celui qu’il a reçu d’Alice :
⋄ identique ? Le fichier a été transferré sans erreur.
⋄ différent ? Bob demande à Alice les hachés de la racine de chaque sous-arbre : HASH 0 et HASH 1 ;
4. pour chacun de ses hachés, HASH 0 et HASH 1 , Bob peut vérifier par rapport à la valeur qu’il a lui-même calculé dans
son abre de Merkle :
⋄ dès qu’il trouve une différence de haché, il peut identifier le sous-arbre concerné et descendre jusqu’à la vérification
d’une feuille de l’arbre, c-à-d le haché de chaque bloc de données en comparant avec la version d’Alice ;
⋄ dans le cas où le haché d’un bloc de données n’est pas bon, il peut demander à Alice de lui retransmettre les données
de ce bloc uniquement.
Application : l’arbre de Merkle 134
Détection d’une erreur et identification du ou des blocs concernés
erreur
Top HASH
hash(HASH 0 HASH 1)
erreur
HASH 0 HASH 1
hash(HASH 0-0 HASH 0-1) hash(HASH 1-0 HASH 1-1)
erreur
blocs de données
bloc 1 bloc 2 bloc 3 bloc 4
P-F. Bonnefoi — Sécurité des Usages TIC
contigües
erreur
Si une erreur se produit sur le bloc 2 :
⊳ Top HASH différent de celui d’Alice ⟹ Bob demande le haché de chaque sous-arbre ;
⊳ HASH 0-1 différent ⟹ Bob demande le haché de chaque sous-arbre ;
⊳ HASH 0 différent ⟹ la feuille correspondant au haché du bloc bloc 2 ⟹ le bloc 2 doit être retransmis par Alice ou
par quiconque en possédant une copie ;
Trouver une valeur utilisable comme mot de passe qui produise par 𝐻 la valeur hachée voulue :
□ construire une table contenant tous les mots de passe possibles et toutes les valeurs hachées associées ;
□ faire une recherche inversée dans cette table.
Si on veut traiter tous les mots de passe :
P-F. Bonnefoi — Sécurité des Usages TIC
R
hachés
mots de passe
Attaque sur les fonctions de hachage : «rainbow tables» 138
Construction et stockage des séquences 𝑯 ⟹𝑹⟹𝑯
Obtention et mémorisation d’une chaîne :
Fin □ on choisit un mot de passe qui servira de début à la chaîne ;
Début □ on applique une séquence de 𝑛 opérations de 𝐻 ⟹ 𝑅 ;
□ on obtient un haché ℎ de fin ;
mots de passe hachés □ on mémorise le mot de passe de début et le mot de passe
obtenu sur 𝑅(ℎ).
Problème de collisions
Sur la fonction de hachage : Sur la fonction de réduction :
H R
mdp1 mdp h2
R
mdp2 h h1
H mots de passe
P-F. Bonnefoi — Sécurité des Usages TIC
hachés
mots de passe hachés
H R1 H R2 H R3
abcdefgh 1vn6s bernie kolscx zurich 8ntpy myname
H R1 H R2 H R3
passwd dlcm4 culture re3xes crypto 1tik0 linux23
⊳ utiliser différentes fonctions de réductions 𝑅1 , 𝑅2 , 𝑅3 , etc. pour chaque colonne de la table : d’où l’appellation de
«Rainbow table» ;
Un MAC est une étiquette, «tag», utilisée lors de la réception d’un message pour :
⊳ authentifier la provenance du message ;
⊳ garantir que le message n’a pas été modifié ;
Il utilise :
□ un algorithme de sélection de clé aléatoire ;
□ un algorithme de «signature» qui retourne une étiquette à partir de la clé et du message ;
□ un algorithme de vérification efficace permettant d’accepter le message (authenticité et intégrité) ou le le rejetter si
celui-ci a été modifié ou s’il ne peut être authentifié.
⊳
⊳ 𝑚 est le message ;
⊳ 𝐾 est la clé secrète ;
⊳ ‖ est la concaténation ;
⊳ 𝐾′ est une clé dérivée de la clé secrète afin d’atteindre la taille du block utilisé en utilisant
⋄ du «padding», bourrage, vers la droite avec des zéros, 𝑧𝑝𝑎𝑑, si elle est de taille plus petite que le bloc ;
⋄ ou en la hachant d’abord, puis si nécessaire en utilisant du padding vers la droite avec des zéros (𝑧𝑝𝑎𝑑) ;
⊳ 𝑜𝑝𝑎𝑑, «outer padding», ou bourrage externe, répétition de 0x5c à la taille du bloc 0 1 0 1 1 1 0 0
⊳ 𝑖𝑝𝑎𝑑, «inner padding», ou bourrage externe, répétition de 0x36 à la taille du bloc 0 0 1 1 0 1 1 0
En utilisant SHA1, la taille du bloc est de 20 octets.
Les fonctions de hachage ?
Ça crée des clés robustes
P-F. Bonnefoi — Sécurité des Usages TIC
Dérivation de clé symétrique depuis un mot de passe 143
PBKDF2, «Password Based Key Derivation Function», RFC 8018
Utilisation de :
□ une PRF, «Pseudo Random Function» ;
□ un SALT ;
□ une répétition de la même opération pour allonger le temps de traitement
⟹ protection contre les attaques «brute-force»
𝐷𝐾 = 𝑃𝐵𝐾𝐷𝐹2(𝑃𝑅𝐹, 𝑀𝑜𝑡𝑑𝑒𝑝𝑎𝑠𝑠𝑒, 𝑆𝑎𝑙𝑡, 𝑐, 𝑑𝑘𝐿𝑜𝑛𝑔𝑢𝑒𝑢𝑟) où :
⊳ 𝐷𝐾 clé dérivée ;
⊳ 𝑐 nombre d’itération ;
⊳ 𝑑𝐾𝐿𝑜𝑛𝑔𝑒𝑢𝑟 taille de la clé en bits ;
𝐷𝐾 = 𝑇1 ‖𝑇2 ‖…‖𝑇 𝑑𝑘𝐿𝑜𝑛𝑔𝑢𝑒𝑢𝑟 (ℎ𝑙𝑜𝑛𝑔𝑢𝑒𝑢𝑟 est la taille en bits de la sortie de 𝑃𝑅𝐹).
ℎ𝐿𝑜𝑛𝑔𝑢𝑒𝑢𝑟
P-F. Bonnefoi — Sécurité des Usages TIC
Exemple pour WPA2 : 𝐷𝐾 = 𝑃𝐵𝐾𝐷𝐹2(HMAC-SHA1, 𝑚𝑜𝑡𝑑𝑒𝑝𝑎𝑠𝑠𝑒, 𝑠𝑠𝑖𝑑, 4096, 256) où 𝑠𝑠𝑖𝑑 est
l’identifiant du réseau WiFi et 𝑚𝑜𝑡𝑑𝑒𝑝𝑎𝑠𝑠𝑒 est la «clé humaine» WPA2.
Dérivation de clé symétrique depuis un mot de passe 144
⊕ ⊕ ⊕
P PRF P PRF P PRF
⊕ ⊕ ⊕
c
P … P … … P …
étapes
⊕ ⊕ ⊕
P PRF P PRF P PRF
P-F. Bonnefoi — Sécurité des Usages TIC
⊕ ⊕ ⊕
P PRF ⊕ P PRF ⊕ … P PRF ⊕
𝑇1 𝑇2 𝑇𝑙𝑒𝑛
𝑑𝑘𝐿𝑜𝑛𝑔𝑢𝑒𝑢𝑟
𝐷𝐾 = 𝑇1 ‖𝑇2 ‖…‖𝑇𝑙𝑒𝑛 où 𝑙𝑒𝑛 = ℎ𝐿𝑜𝑛𝑔𝑢𝑒𝑢𝑟
et 𝑃 est le 𝑀𝑜𝑡𝑑𝑒𝑝𝑎𝑠𝑠𝑒
Protection contre les «rainbow tables» : Gestion des mots de passe sous Linux 145
Le contenu de ce fichier doit être accessible par un grand nombre d’outils qui ne doivent pas avoir les droits de l’utilisateur «root»⟹
il est lisible par tous, mais mais ne contient pas les «mots de passe»
Le mot de passe de l’utilisateur est dans le fichier «/etc/shadow», lisible uniquement avec les droits «root» :
xterm
pef@cube:/etc$ sudo cat shadow | grep pef
pef:$6$x5dLHSND$k.b4lZyenwwY9Z12CwbK884PRpP4y9wk//K8PluEUmgmjwLsX2XWhPNkzlZjfn
QoxOyua2xT7BXo4QZ49Dtdg0:1[Link]
Il est possible de le recréer à partir du SALT choisi par le système, ici «x5dLHSND», et la méthode choisie pour haché le mot de
passe indiquée ici par «$6$» :
xterm
pef@cube:/etc$ python -c "import crypt; print [Link]('toto', '\$6\$x5dLHSND\$')"
$6$x5dLHSND$k.b4lZyenwwY9Z12CwbK884PRpP4y9wk//K8PluEUmgmjwLsX2XWhPNkzlZjfn
QoxOyua2xT7BXo4QZ49Dtdg0
La méhode «$6$» correspond à utiliser un haché de haché avec sha-512 et une répétition de 5000 hachés où l’on combine la
P-F. Bonnefoi — Sécurité des Usages TIC
La signature assure :
⊳ Authentification : le document peut être identifié comme provenant de la personne ;
⊳ Non-répudiation : l’utilisation de la clé privée ne peut être faite sans le consentement de son propriétaire ;
⊳ Intégrité : la correspondance de l’empreinte déchiffrée, avec celle courante du document implique qu’il n’y a pas eu
de modification par rapport à la version du document utilisée lors du chiffrement.
La confidentialité peut être assurée par un chiffrement symétrique du document.
Utilisation pour la sécurité du courrier électronique
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 ⟹ signature ;
optionnel
4. L’expéditeur chiffre le texte en clair et la signature à l’aide d’un chiffrement symétrique dont la clé secrète est
chiffrée à l’aide de la clé publique du destinataire et jointe au message (enveloppe sécurisée).
5. L’expéditeur envoie le document chiffré au destinataire ;
6. Le destinataire déchiffre la clé secrète symétrique avec sa clé privée, puis déchiffre le document ;
7. Le destinataire déchiffre l’empreinte avec la clé publique de l’expéditeur (authentification) ;
8. Le destinataire calcule l’empreinte du texte clair à l’aide de la même fonction de hachage que l’expéditeur ;
9. 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».
Signature et vérification de la signature d’un document 148
Créer une signature électronique
Message
à signer résumé/empreinte Signature électronique Contenu à envoyer
1001011010101001
0101010110011010110101 10100110101010101
0111010000101101
1010101011000 Signature électronique
1010100110000
1001011010101001
Fonction Chiffrement envoi 10100110101010101
1010101011000
de hachage 𝐻 asymétrique
COMPARAISON
Fonction 0101010110011010110101 ≠
0111010000101101
de hachage 𝐻 1010100110000 Signature
mauvaise...
Message résumé/empreinte
ECDSA, «Elliptic Curve Digital Signature Algorithm» 149
Cryptographie basée sur les courbes elliptiques
□ la clé privée est une valeur entière aléatoire 𝑑, choisie entre 1 et 𝑛, où 𝑛 est l’ordre du groupe ;
□ la clé publique est le point 𝐻 = 𝑑𝐺 où 𝐺 est le générateur définissant le groupe ;
Garantie :
⊳ Si l’on connait 𝑑 et 𝐺, trouver 𝐻 est facile ;
⊳ Si l’on connait 𝐻 et 𝐺, trouver la clé privée 𝑑 est difficile ⟹ résoudre le problème du logarithme discret...
Signature ECDSA
∘ Alice veut signer un message avec sa clé privée 𝑑𝐴 ;
∘ Bob veut valider la signature avec la clé publique d’Alice 𝐻𝐴 ;
Fonctionnement :
⊳ on calcule le hash du document à signer ;
⊳ on tronque le hash de telle manière que le nombre de bits soient de même taille que 𝑛 l’ordre du groupe
et on appelle 𝑧 ce nombre ;
P-F. Bonnefoi — Sécurité des Usages TIC
L’algorithme de signature :
hash ⊳ génère un secret 𝒌 ;
⊳ ce secret est «caché» dans 𝑟 grâce à la multiplication de
𝑧 point (facile dans un sens, dure dans l’autre) ;
Alice : 𝑑𝐴 (𝑟, 𝑠)
𝑘 ⊳ 𝑟 est «attaché» au haché du document par l’équation
𝑠 = 𝑘 −1 (𝑧 + 𝑟 ∗ 𝑑𝐴 ) mod 𝑛 ;
(𝑟, 𝑠) ⊳ pour pouvoir calculer l’inverse de 𝑘 modulo 𝑛, il faut que 𝑛
Bob : 𝐻𝐴 Ok !
𝑧 soit un nombre premier (sinon pas de groupe !)
h
La société RSA a établit des standards pour l’organisation des échanges cryptographiques et permettre l’interopéra-
bilité «PKCS» ou «Public Key Cryptographic Standards» :
□ PKCS#1 : décrit comment chiffrer des données en utilisant l’algorithme à clé publique RSA, afin de pouvoir signer un
fichier ou le chiffrer :
⋄ pour les signatures, le contenu doit d’abord être «hashé» par un algorithme de hachage afin de produire une
empreinte.
C’est cette empreinte qui sera signée avec l’algorithme RSA en utilisant la clé privée du signataire. La manière de
génèrer et signer une empreinte est décrite dans PKCS#7.
⋄ pour le chiffrement d’un fichier, le fichier doit d’abord être chiffré par un algorithme à clé secrète comme AES et la
clé secrète est ensuite elle-même chiffrée avec l’algorithme RSA en utilisant la clé publique du destinataire (il
sera donc le seul à pouvoir déchiffrer la clé secrète avec sa clé privée).
Le chiffrement du fichier et le chiffrement de la clé sont décrits dans PKCS#7.
⋄ PKCS#1 définit également différents algorithmes de hachage, MD5, SHA1, SHA256.
□ PKCS#3 : standard de négociation de clé Diffie-Hellman :
P-F. Bonnefoi — Sécurité des Usages TIC
⋄ PKCS#3 décrit comment implémenter l’algorithme Diffie-Hellman qui sert à «négocier» un secret partagé entre
deux parties, sans qu’aucune information privée n’ait à être échangée.
⋄ Ce secret partagé peut servir à générer une clé de session, qui pourra être utilisée dans un algorithme à clé secrète
comme AES.
□ la réflexion, «Reflection» ;
□ le déni de service, «DoS» :
⋄ toutes les communications utilisent une certaine quantité de CPU et de mémoire ;
⋄ un attaque consiste à réaliser des millions de requêtes au serveur afin d’épuiser ses res-
sources ;
⋄ certains protocoles sont meilleurs que d’autres pour l’éviter ;
Transmission
𝐴 → 𝐵 : 𝑚 𝐴 envoie le message 𝑚 à 𝐵
1. 2. ... rang du message dans l’échange
Valeurs échangées
𝑁𝐴 valeur quelconque choisie par 𝐴
Chiffrement symétrique
𝐾𝐴𝐵 la clé secrète est partagée entre 𝐴 et 𝐵
{𝑚}𝐾 le message 𝑚 est chiffré en symétrique à l’aide de la clé secrète 𝐾
Chiffrement asymétrique
P-F. Bonnefoi — Sécurité des Usages TIC
3. 𝐴 → 𝐼(𝐵) : 𝑁𝐴2
3 𝐼(𝐵) → 𝐴 : 𝑁𝐴2
1.⟹ le protocole est initié de 𝐴 vers 𝐵 (Instance 1 du protocole) ;
⇒ 𝐼 prend la place de 𝐵 pour 𝐴, initie le protocole vers 𝐴 et renvoie le message de 1) vers 𝐴 (Instance
2 du protcole) ;
⇒ 𝐴 déchiffre le message reçue de 𝐼 et révèle la valeur 𝑁𝐴1 à 𝐼 ;
2. ⟹𝐼 réponds à 𝐴 avec la valeur 𝑁𝐴1 et renvoie la valeur {𝑁𝐴2 }𝐾 à 𝐴 et finit de s’authentifier en 𝐵
auprès de 𝐴.
Quelques attaques sur les protocoles sécurisés 157
Attaque par déni de service
𝐴 utilise sa clé publique 𝐾𝐴 pour établir une clé de session 𝐾𝐴𝑆 :
1. 𝐴 → 𝑆 : 𝐴, 𝑁𝐴 𝑆 est vulnérable à une attaque par déni de service, parce
2. 𝑆 → 𝐴 : 𝐸𝐾𝐴 (𝑁𝐴 , 𝑁𝑆 , 𝐾𝐴𝑆 ) que pour chaque connexion :
3. 𝐴 → 𝑆 : {𝑁𝑆 }𝐾𝐴𝑆 ⊳ il génère un nonce et une clé symétrique ;
⊳ il réalise un chiffrement par clé publique ;
⊳ il alloue de la mémoire pour le nonce et la clé.
Une version résistante à cette attaque
𝐴 utilise la clé publique 𝐾𝑆 de 𝑆 pour établir la clé de session 𝐾𝐴𝑆 :
1. 𝐴 → 𝑆 : 𝐸𝐾𝑆 (𝐴, 𝑆, 𝑆𝑖𝑔𝑛𝐴 (𝑁𝐴 , 𝐾𝐴𝑆 )) Résultat : maintenant, c’est 𝐴 qui doit réaliser le chiffre-
2. 𝑆 → 𝐴 : {𝑁𝐴 }𝐾𝐴𝑆 ment le plus coûteux.
⟹ il faudra plus d’attaquants pour réussir le DoS.
P-F. Bonnefoi — Sécurité des Usages TIC
Quelques attaques sur les protocoles sécurisés 158
Attaque sur le type des messages échangés
L’attaque consiste à utiliser un type de message à la place d’un autre type de message.
Exemple d’exploitation
Protocole : Attaque :
1. 𝐴 → 𝐵 : {𝑁𝐴 }𝐾𝐴𝐵 1. 𝐴 → 𝐵
: {𝑁𝐴 }𝐾𝐴𝐵
2. 𝐵 → 𝐴 : {𝑁𝐴 +1, 𝑁𝐵 }𝐾𝐴𝐵 2. 𝐵 → 𝐴 : {𝑁𝐴 + 1, 𝑁𝐵 }𝐾𝐴𝐵
3. 𝐴 → 𝐵 : {𝑁𝐵 + 1}𝐾𝐴𝐵 3. 𝐴 → 𝐵 : {𝑁𝐵 + 1}𝐾𝐴𝐵
4. 𝐵 → 𝐴 : {𝐾𝑆 , 𝑁 ′ }𝐾𝐴𝐵 4 𝐼(𝐵) → 𝐴 : {𝑁𝐴 + 1, 𝑁𝐵 }𝐾𝐴𝐵
⊳ L’attaquant 𝐼 rejoue le message de type 2 ;
⟹𝐴 va utiliser une mauvaise clé... que l’attaquant peut déterminer si 𝑁𝐴 est prédictible...
P-F. Bonnefoi — Sécurité des Usages TIC
Peut-on apprendre de ces attaques
et en tirer des règles de conception ?
P-F. Bonnefoi — Sécurité des Usages TIC
Les règles de bonnes pratiques de conception de protocole sécurisé 160
Le meilleur moyen d’éviter les faiblesses dans un protocole est de le définir correctement dès le départ !
1 Le protocole doit être efficace :
⋄ pas de chiffrement inutile ;
⋄ ne pas inclure de messages inutiles ;
Exemple sur Kerberos :
1. 𝐴 → 𝑆 : 𝐴, 𝐵, 𝑁𝐴 1. 𝐴→𝑆 : 𝐴, 𝐵, 𝑁𝐴
2. 𝑆 → 𝐴 : {𝐾𝐴𝐵 , 𝐵, 𝐿, 𝑁𝐴 , {𝐾𝐴𝐵 , 𝐴, 𝐿}𝐾𝐵𝑆 }𝐾𝐴𝑆 2. 𝑆→𝐴 : {𝐾𝐴𝐵 , 𝐵, 𝐿, 𝑁𝐴 }𝐾𝐴𝑆 , {𝐾𝐴𝐵 , 𝐴, 𝐿}𝐾𝐵𝑆
3. 𝐴 → 𝐵 : {𝐴, 𝑇𝐴 }𝐾𝐴𝐵 , {𝐾𝐴𝐵 , 𝐴, 𝐿}𝐾𝐵𝑆 3. 𝐴 → 𝐵 : {𝐴, 𝑇𝐴 }𝐾𝐴𝐵 , {𝐾𝐴𝐵 , 𝐴, 𝐿}𝐾𝐵𝑆
4. 𝐵 → 𝐴 : {𝑇𝐴 + 1}𝐾𝐴𝐵 4. 𝐵 → 𝐴 : {𝑇𝐴 + 1}𝐾𝐴𝐵
Optimisation : supprimer le double chiffrement
3 Les conditions pour qu’un message soit pris en compte ou ignorer doivent être exprimer clairement pour
une compréhension facile d’un auditeur.
4 Si l’identité d’un interlocuteur est nécessaire pour la bonne compréhension d’un message, il est prudent
d’inclure son identité dans le message.
Authentification de 𝑿 pour 𝒀 au travers d’un serveur de confiance 𝑺
Protocole Attaque permettant à 𝑰 d’impersoner 𝑨
1. 𝐴 → 𝐵 : 𝐴 1. 𝐼(𝐴) → 𝐵 : 𝐴 𝑁𝐵 relatif à 𝐴
2. 𝐵 → 𝐴 : 𝑁𝐵 1 𝐼→𝐵 :𝐼
3. 𝐴 → 𝐵 : {𝑁𝐵 }𝐾𝐴𝑆 2. 𝐵 → 𝐼(𝐴) : 𝑁𝐵 𝐴
6 Lorsqu’un interlocuteur signe un message déjà chiffré, il ne faut pas assumer que l’interlocuteur
connaisse le contenu de ce message ;
□ Inversement, si l’interlocuteur signe un message et ensuite le chiffre, il doit connaître le contenu
de ce message :
𝐴 → 𝐵 : 𝐴, 𝑆𝑖𝑔𝑛𝐴 (𝑇𝐴 , 𝑁𝐴 , 𝐵, 𝑋𝐴 , 𝐸𝐵 (𝑌𝐴 ))
⟹ 𝐴 connait la donnée 𝑋𝐴 , mais pas forcément la donnée 𝑌𝐴 qui est secrète.
7 Les propriétés attendues des «nonces» doivent être exprimées clairement :
⋄ ce qui en assure la succession dans le temps, peut ne pas en garantir l’association à un
interlocuteur donné ;
⋄ cette association peut être nécessaire et doit être assurée par un autre moyen ;
8 L’utilisation d’une valeur prédictible comme celle d’un compteur peut en garantir la nouveauté lors
d’un «challenge/response»
□ Mais si une valeur prédictible doit être efficace, alors elle doit être protégée de manière à ce qu’un
P-F. Bonnefoi — Sécurité des Usages TIC
9 Si un «timestamp» est utilisé pour garantir la «fraîcheur» par rapport à une référence de temps
absolue, alors la différence entre les horloges des différents interlocuteurs doit être inférieure à la
durée de validité d’un message.
□ ⟹ le mécanisme de maintenance de l’horloge sur tous les interlocuteurs devient une dépendance
pour la confiance dans le protocole.
Les règles de bonnes pratiques de conception de protocole sécurisé 163
10 Une clé peut avoir été utilisé récemment pour chiffrer un nonce alors qu’elle est ancienne et probablement
compromise ;
□ L’utilisation récente d’une clé ne la rend pas meilleure qu’elle ne devrait.
Sur le protocole Needham-Schroeder d’établissement de clé :
1. 𝐴 → 𝑆 : 𝐴, 𝐵, 𝑁𝐴 L’attaquant a réussi à casser une clé 𝐾𝐴𝐵 et es-
2. 𝑆 → 𝐴 : {𝑁𝐴 , 𝐵, 𝐾𝐴𝐵 , {𝐾𝐴𝐵 , 𝐴}𝐾𝐵𝑆 }𝐾𝐴𝑆 saye d’en forcer l’utilisation :
3. 𝐴 → 𝐵 : {𝐾𝐴𝐵 , 𝐴}𝐾 3. 𝐼 → 𝐵 : {𝐾𝐴𝐵 , 𝐴}𝐾𝐵𝑆
𝐵𝑆
4. 𝐵 → 𝐴 : {𝑁𝐵 }𝐾𝐴𝐵 4. 𝐵 → 𝐼 : {𝑁𝐵 }𝐾𝐴𝐵
5. 𝐴 → 𝐵 : {𝑁𝐵 + 1}𝐾𝐴𝐵 5. 𝐼 → 𝐵 : {𝑁𝐵 + 1}𝐾𝐴𝐵
Les messages 1) et 2) sont interceptés.
11 Si un encodage est utilisé pour donner du sens à un message, alors il est nécessaire que cet encodage
soit identifié.
□ Dans le cas où cet encodage est dépendant du protocole, il devrait être possible de déduire que le message
P-F. Bonnefoi — Sécurité des Usages TIC
12 Lors de la définition d’un protocole, il est nécessaire de savoir quelles sont les relations de confiance dont
il dépend et quelles sont les dépendances nécessaires.
□ Les raisons de ces relations de confiance doivent être clairement indiquées :
⋄ le protocole Kerberos échoue si le «timestamp» sur le serveur de clé n’est pas à la date et heure cou-
rantes ;
⋄ le navigateur Web contient un grand nombre de clés publiques pour vérifier l’identité des sites visités.
Si ces clés sont compromises alors l’utilisateur peut être abusé par des faux sites.
Exemple
d’un protocole de «login/mdp»
pour le Web
P-F. Bonnefoi — Sécurité des Usages TIC
HTTP Basic/Digest Authentication, RFC 2617 165
< Content-Length: 13
<
* Closing connection 0
Access denied
Deux connexions successives sont nécessaires : la première pour récupérer le challenge, la seconde pour donner sa réponse.
HTTP Basic/Digest Authentication, RFC 2617 167
Démonstration version digest avec un mauvais login/mdp
Côté serveur :
xterm
pef@darkstar-8:/Users/pef/Python_snippets$ python [Link]
Serving on port 1337...
[Link] - - [06/Feb/2018 [Link] "GET / HTTP/1.1" 401 13
{ 'algorithm': 'MD5',
'cnonce': 'YTQxZjBhYjg0OWJhMzY2ZGI5OWU2MzQ3NGI4M2M0MTQ=',
'nc': '00000001',
'nonce': 'MTUxNzkxMjg3NA==',
'qop': 'auth', Accés HTTP avec erreur 401 ⟹ Accès refusé
'realm': 'secret',
'response': 'bab95d2b7fbc95e431e8fc660f9fac46',
'uri': '/', Accés HTTP avec erreur 401 ⟹ Accès refusé
'username': 'toto'}
'c7f121a10d924244c5df2e707e3a28f8'
Auth failed!
[Link] - - [06/Feb/2018 [Link] "GET / HTTP/1.0" 401 13
P-F. Bonnefoi — Sécurité des Usages TIC
Le serveur vérifie la réponse fournie par le client en recalculant cette réponse avec les mêmes informations que le client
devraient partager avec lui, si le nom indiqué correspond à un «login/mdp» qu’il connait.
Le serveur vérifie la réponse fournie par le client en recalculant cette réponse avec les mêmes informations que le client
P-F. Bonnefoi — Sécurité des Usages TIC
devraient partager avec lui, si le nom indiqué correspond à un «login/mdp» qu’il connait.
□ un ensemble de règles logiques et d’inférences pour définir et analyser les protocoles d’échange d’information ;
□ permet d’évaluer si l’information échangée est : ⋄ de confiance ;
⋄ sécurisée contre les écoutes ;
□ dans un contexte où toute information échangée peut être : ⋄ écoutée par tous ;
⋄ modifiée «tampering» ;
□ Une modélisation composée :
⋄ de définitions : ⋆ 𝑃 et 𝑄 sont des agents qui communiquent ;
⋆ 𝑋 est un message ;
⋆ 𝐾 est une clé de chiffrement ;
⋄ d’un ensemble de règles :
𝑃 croit 𝑋 𝑃 agit comme si 𝑋 est vrai/valide, et pourra utiliser 𝑋 dans un nouveau message
𝑃 a le contrôle de 𝑋 l’avis de 𝑃 sur 𝑋 est fiable et on peut lui faire confiance
𝑃 a dit 𝑋 à un certain moment 𝑃 a transmis 𝑋 dans lequel il avait confiance, mais 𝑃 peut ne plus
croire 𝑋
P-F. Bonnefoi — Sécurité des Usages TIC
Exemple «Challenge/Response»
a. 𝐴→𝐵 :𝑁
b. 𝐵 → 𝐴 : {𝐵, 𝑁}𝐾𝐴𝐵
𝐴 envoi un challenge à 𝐵, que 𝐵 renvoi avec son identité, le tout chiffré avec la clé partagée 𝐾𝐴𝐵 .
⟹Problème : si le générateur aléatoire utilisé pour fournir 𝑁 n’est pas bon, c-à-d 𝑓 𝑟𝑒𝑠ℎ(𝑁) n’est pas garanti, il est
possible de revoir 𝑁 et de rejouer {𝐵, 𝑁}𝐾𝐴𝐵 à la place de 𝐴 auprès de 𝐵 (en particulier dans le cas d’un système
automatique que l’on peut déclencher de très nombreuses fois jusqu’à ré-obtenir un 𝑁 pour lequel on a enregistrer le
{𝐵, 𝑁}𝐾𝐴𝐵 ).
P-F. Bonnefoi — Sécurité des Usages TIC
d. 𝐵→𝐴 : {𝑇𝐴 + 1}𝐾𝐴𝐵 La clé 𝐾𝐴𝐵 est fournie dans le ticket pour 𝐵 et également
fournie à 𝐴 chiffrée avec 𝐾𝐴𝑆
⟹𝐴 peut ensuite vérifier le ticket auprès de 𝐵 et 𝐵 confirme son acceptation à 𝐴 avec 𝑇𝐴 + 1
⟹Les horloges de chaque appareil doivent être synchronisées entre elles.
Logique BAN, «Burrows–Abadi–Needham» 175
Attention
La logique BAN utilise des définitions et un système de dérivation/d’inférence pour, à partir d’hypothèses posées
par le protocole de communication sécurisé, déterminer les propriétés de sécurités fournies par ce protocole.
Elle a pour but de :
⊳ démontrer que les propriétés de sécurité voulues sont bien garanties par le protocole ;
⊳ identifier les vulnérabilités ou fournir une piste pour les trouver quand ces propriétes ne sont pas garanties.
Critiques de la logique BAN :
□ de nombreuses simplifications pour automatiser l’analyse de protocole de communication sécurisé ;
□ des hypothèses simplificatrices comme le modèle d’attaquant de Dolev-Yao :
⋄ côté réseau : l’attaquant est tout puissant : il peut écouter, intercepter et forger des messages : «l’attaquant
sert de support à la transmission du message» ;
⋄ côté crypto : l’attaquant est limité par la cryptographie mise en place : il ne peut manipuler les bits d’un
message, ni deviner la clé...
⟹ difficulté à intégrer des connaissances partielles ou des attaques sur les algorithmes crytptographiques,
contrairement au monde réel ;
P-F. Bonnefoi — Sécurité des Usages TIC
Utilisation d’opérateurs abstraits : par exemple l’utilisateur 𝑥 utilise du chiffrement symétrique 𝐷𝑥 et 𝐸𝑥 avec
𝐷𝑥 𝐸𝑥 = 𝐸𝑥 𝐷𝑥 = 1, et 𝐸𝑥 (𝑀) ne révèle rien sur 𝑀.
□ la sémantique des opérations utilisées pour modéliser le protocole est limitée :
⋄ ne permet pas d’intégrer les connaissances que peut acquérir l’adversaire (interactions mutiples avec la
cible, exploitation de vulnérabilités n’ayant pas de lien directe avec le protocole modélisé) ;
⋄ l’univers des conclusions possibles obtenues après inférence/dérivation n’est pas garantie comme étant
suffisament proche du réel...
⟹ risque de preuve que le protocole est sûr alors qu’il ne l’est pas ;
⟹ Abandon de ce modèle...mais il reste une introduction à la modélisation de protocole.
Et si on combinait, chiffrement symétrique
Authentification et Intégrité ?
P-F. Bonnefoi — Sécurité des Usages TIC
4 Chiffrement authentifié avec des MACs 177
On veut à la fois :
⊳ chiffrer des données⟹ confidentialité ;
⊳ s’assurer que les donnés viennent bien d’un interlocuteur choisi⟹ authentification ;
⊳ s’assurer que les données n’ont pas été modifiées ou corrompues⟹ intégrité.
Trois façons de procéder
𝑃 est le «plaintext», 𝐶 le chiffré, 𝑇 le «tag» d’authentification et 𝐸 le chiffrement.
P P P
E MAC MAC E
MAC
E
C T
C C T
□ chiffrer et MAC ; □ MAC puis chiffrer ; □ chiffrer puis MAC ;
P-F. Bonnefoi — Sécurité des Usages TIC
Le choix du chiffrement ou d’un MAC spécifique n’est pas important du moment que chacun soit sécurisé et qu’ils ne
partagent pas la même clé.
Chiffrement authentifié avec des MACs 178
Chiffrer et MAC
⊳ 𝐶 = 𝐸(𝐾1 , 𝑃) ⊳ 𝑃 = 𝐷(𝐾1 , 𝐶)
⊳ 𝑇 = 𝑀𝐴𝐶(𝐾2 , 𝑃) ⊳ 𝑇 = 𝑀𝐴𝐶(𝐾2 , 𝑃) valide ou non 𝑃
⟹ le MAC, si pas un PRF, «pseudo random function», peut donner des indications sur le «plaintext» 𝑃 !
Dans SSH, chaque paquet de données chiffré 𝐶 est suivi du «tag» 𝑇 = 𝑀𝐴𝐶(𝐾, 𝑁‖𝑃) où 𝑁 est le numéro
de séquence du paquet et le MAC utilisé est HMAC-SHA-256 qui ne donne aucune information sur 𝑃.
Utilisé dans TLS jusqu’à la version 1.3 où il est remplacé par l’utilisation d’un chiffrement authentifiant.
TLS assure :
⊳ la confidentialité avec du chiffrement ;
⊳ l’intégrité avec un MAC, «Message Authentication Code».
Mais...
□ doit-on authentifier les données en clair, puis les chiffrer ? «MAC-then-Encrypt»
□ ou doit-on chiffrer les données, puis authentifier ces données chiffrées ? «Encrypt-then-MAC»
Les échanges du protocole protégé par TLS sont chiffrés suivant des blocs de taille choisi :
⊳ un protocole échange souvent des données de petites tailles⟹ chiffrées dans des blocs ;
Exemple : le protocole SMTP échange des salutations, l’adresse de l’expéditeur, son destinataire ainsi que le contenu du
courrier. Chaque message du client est acquitté par un message de la part du serveur. Seul le contenu du courrier excéde
les 50 octets en moyenne des autres.
⊳ suivant le chiffrement utilisé, comme AES en mode CBC, le dernier bloc échangé doit être complété, «padded», avec
des octets supplémentaires pour atteindre la taille exigé.
8 octets 5 octets 44 octets-[taille padding] 20 octets [variable]
Requête
Séq Hdr data HMAC Padding
TLS
P-F. Bonnefoi — Sécurité des Usages TIC
Un «padding oracle» est un moyen utilisé par un attaquant capable de modifier les données chiffrées transmises à un
serveur de récupérer le texte en clair.
Javascript
inject(){
doBad();
}
onti
ec
inj
1 «Padding» incorrect
⋄ avec l’erreur retournée, il déduit lequel de ces messages se déchiffre vers 0x00, qui est un «padding» correct.
Vecteur Init. ⊕ ⊕ ⊕
bloc à chiffrer bloc à chiffrer bloc à chiffrer
Déchiffrement CBC
bloc chiffré bloc chiffré bloc chiffré
P-F. Bonnefoi — Sécurité des Usages TIC
Vecteur Init. ⊕ ⊕ ⊕
bloc clair bloc clair bloc clair
«Padding Oracle» : déroulement de l’attaque sur un «padding» de 1 octet 184
Déchiffrement CBC en opération normale
bloc clair n m
chiffré modifié e d bloc chiffré ⊳ l’octet 𝑎 est déjà connu de l’attaquant par
l’attaque précédente⟹il sera fixé à 0x01
par une valeur bien choisie de 𝑑 ;
P-F. Bonnefoi — Sécurité des Usages TIC
Pour palier aux inconsistences de temps de réponses dues au travail interne du serveur, on peut relancer plusieurs
fois l’attaque et déterminer statistiquement dans quel cas on se trouve.
La correction ?
⊳ dans les deux cas, le serveur calcule un HMAC même si le «padding» est invalide.
Mais... Il peut y avoir une «timing attack» sur le temps de calcul du HMAC qui peut être variable suivant la taille
des données à hasher...
La correction ?
Ne plus utiliser CBC qui est victime des attaques BEAST et POODLE et le modèle «MAC-then-Encrypt»...
⟹Utiliser AEAD, «Authenticated Encryption with Associated Data», qui mixe authentification et chiffrement.
Chiffrement authentifié, «authenticated encryption» 187
Contraintes ⊳ l’authentification doit être aussi forte que celle fournie par un MAC afin d’éviter qu’un
attaquant forge un couple (𝐶, 𝑇 ) que la fonction 𝐴𝐷 va déchiffrer et accepter.
AEAD, «Authenticated Encryption with Associated Data» 188
Associated Data
Ce sont des données qui sont authentifiées mais non chiffrées.
□ Si on utilise un chiffrement authentifié alors toutes les données fournies en entrée sont chiffrées et authentifiées.
□ Mais, si l’on veut authentifier tout un message contenant une partie non chiffrée et une autre partie chiffrée ?
Exemple d’un paquet réseau composé d’un en-tête et d’un contenu :
⊳ le contenu est chiffré pour cacher les données transmises ;
⊳ l’en-tête est non chiffré, car il contient des informations nécessaires à son acheminement ;
⟹ mais on veut authentifier l’en-tête pour savoir que le paquet provient bien du bon expéditeur.
Chiffrement authentifié
Un algorithme AEAD permet d’associet des données en clair à des des données chiffrées de telle manière que si les
données en clair sont corrompues alors le «tag» d’authentification est invalide et le chiffré est rejeté.
⊳ 𝐴𝐸𝐴𝐷(𝐾, 𝑃, 𝐴) = (𝐶, 𝐴, 𝑇 ) où 𝐾 est une clé, 𝑃 le «plaintext», les données associées 𝐴 et un «tag» 𝑇 d’authenti-
fication ;
⊳ 𝐴𝐸𝐴𝐷 laisse les données associées non chiffrées telles quelles, et fournit le chiffré 𝐶 de 𝑃 ;
P-F. Bonnefoi — Sécurité des Usages TIC
⊳ le «tag» 𝑇 dépend à la fois de 𝑃 et de 𝐴 et ne sera valide que si 𝐶 ou 𝐴 n’auront pas été modifiés.
Le déchiffrement est réalisé par 𝐴𝐷𝐴𝐷(𝐾, 𝐶, 𝐴, 𝑇 ) = (𝑃, 𝐴) et échoue si 𝐶 ou 𝐴 sont modifiés ou corrompus.
⟹ 𝐴 ou 𝑃 peuvent être vides :
∘ si 𝐴 est vide, 𝐴𝐸𝐴𝐷 se comporte comme un chiffrement authentifié ;
∘ si 𝑃 est vide, 𝐴𝐸𝐴𝐷 est juste un MAC.
AES-GCM : le standard de chiffement authentifié
⊳ basé sur AES et le «Galois Counter Mode» ;
⊳ le GCM est une modification du mode CTR qui calcule un «tag» d’authentification
C’est le seul chiffrement authentifié standard de NIST SP800-38D, et il est utilisé dans IPSec, SSH et TLS 1.2.
GCM
Utilisation du Galois-Counter-Mode 189
GCM
□ les données, «Data», correspond aux données Pour
Figure 4: Using GCM to encrypt and authenticate a packet, showing le fields
how the déchiffrement et l’authentification du paquet :
of the security
encapsulation map onto the inputs and outputs of the authenticated encryption mode.
chiffrées par AES-128, soient des blocs de don-
Header Seq. Encrypted Data ICV
nées chiffrées de taille multiple de 16 octets ;
P-F. Bonnefoi — Sécurité des Usages TIC
than the plaintext, and the decapsulation would halt and the plaintext would be discarded rather
than forwarded or further processed. After the operation, the header and sequence number canIV
□ le numéro de séquence, «Seq.» du mode comp- Ciphertext Authentication Tag
be checked, and their values can be trusted.
teur, pour gérer la fragmentation/défragmen- Addtl Auth Data
than the plaintext, and the decapsulation would halt and the plaintext would be discarded rather
than forwarded or further processed. IV After the operation,
Ciphertext the header and sequence
Authentication Tag number thecan
authentication decryption function should be invo-
be checked, and their values can be trusted. ked no more than 211 times;
Addtl Auth Data
⊳ if 𝑡 = 64 and the maximal packet size is 215 bytes, then
By including the sequence number in the IV, we can satisfy the requirement that IV values the be
authentication decryption function should be invo-
unique. If that number is less than 96 bits long, it can
GCM be concatenated with another value in order
Decryption
ked no more than 232 times.
to form the IV. This other value could be constant, such as a string of zeros, or it could be a random
string, which adds to the security of the system because it makes the inputs less predictable than
Plaintext
they would be otherwise. The data needed to form the IV has to be known to both the encrypt
side and the decrypt side, but it need not all be included in the packet.
Header Seq. Data
In some situations, it may be desirable to have the same GCM key used for encryption by more
than one device. In this case, coordination is needed to ensure the uniqueness of the IV values. A
Figure 5: Using GCM to decrypt and verify the authenticity of a packet.
simple way in which this requirement can be met is to include a device-specific value in the IV,
such as a network address.
tual property restrictions. These goals are important for high-speed network security, especially at
the link layer. This point is underscored by the fact that the IEEE 802.1 MAC Security Task Group
Support d’AES-GCM 191
Avec openSSL en ligne de commande ?
xterm
$ echo 'toto' | openssl enc -aes-128-gcm -k "secret" -out tester_gcm.bin
$ openssl enc -aes-128-gcm -d -k "secret" -in tester_gcm.bin
toto
bad decrypt le «tag» ne peut être vérifié
openSSL en ligne de commande ne conserve pas le «tag» d’authentification...
Sous Python ?
On installe la bibliothèque «cryptography» :
xterm
$ python3 -m pip install cryptography
Autres ?
Il est possible/recommander d’utiliser la combinaison ChaCha20Poly1305 définie dans la RFC 7539 de mai 2015, utilisé
dans TLS 1.3.
Donc au final, la signature électronique reprend les
principes du courrier...papier ?
P-F. Bonnefoi — Sécurité des Usages TIC
La notion d’original et de copie 193
Notion de copie et d’original d’un document papier
Une photocopie est différente de l’original (ou presque...). Essayez de présenter la photocopie d’un billet pour
acheter dans une boutique !
Une personne est identifiée par sa signature (analyse graphologique) Cette signature engage la personne qui
l’a écrite :
⊳ c’est une preuve d’acceptation pour un contrat et d’engagement à le remplir ;
⊳ c’est une autorisation de transfert d’argent dans le cas d’un chèque ;
⊳ c’est une identification dans le cas d’une lettre que l’on envoie.
Cette signature est reconnue par la législation francaise.
Notion de copie «certifiée conforme» réalisable auprès de la mairie ou bien d’un commissariat. Cette notion a
d’ailleurs disparue, face à l’avancée des moyens de reproduction et de l’utilisation systématique de l’impression
machine pour les documents administratifs (plus ou presque de partie manuscrite présente sur le document ou
bien reproduite électroniquement).
P-F. Bonnefoi — Sécurité des Usages TIC
Signature
Une signature manuscrite idéale est réputée posséder les propriétés suivantes :
□ elle ne peut être imitée ;
□ elle authentifie le signataire ;
□ la signature appartient à un seul document (elle n’est pas réutilisable ) ;
□ le document ne peut être partiellement ou totalement modifié ;
□ la signature ne peut être reniée ;
□ la signature peut être contrôlée.
Copie ou original 194
Le cas du document électronique
Il est reproductible à l’infini sans modification.
C’est ce qui le rend virtuellement éternel.
Le droit de copie, dite de sauvegarde, est apparu avec l’apparition de «programme informatique» sur
support duplicable (bande magnétique, disquette, CD...).
Il peut être modifié pour faire disparaitre ou apparaitre des éléments supplémentaires. Suppression du
nom de l’auteur d’un document de traitement de texte, ajout d’un texte de propriété sur une image...
Il peut être attribuer à n’importe quel propriétaire. Un fichier MP3 peut appartenir à une personne
disposant du CD qui a servi de source à son encodage ou bien à une autre...
Limitation à la consultation
P-F. Bonnefoi — Sécurité des Usages TIC
Une nouvelle forme de propriété est apparue avec lui : celle liée à la consultation du contenu sans
possibilité d’exploitation ou de reproduction en vu de conservation.
C’est le cas du DVD ou du Bluray dont le contenu ne peut (ne pouvait) être accéder que pour le visionner
mais pas pour l’enregistrer ou le modifier.
La sécurité «écrite» : la signature et l’envoi par la Poste 195
Pour être recevable comme document engageant la responsabilité de celui qui l’envoi le document doit
posséder :
□ une indication claire de l’identité ;
□ une signature ;
□ ces deux indications doivent être apposés sur un même papier (pas de collage, ...) ;
□ mis dans une enveloppe avec le cachet de la Poste.
Bonnefoi P-F
identité 25, rue de la Paix
75001 Paris Cachet daté de la Poste
Paris, le 4 février 2025
date
document papier
enveloppe
signature
Les aspects juridiques nécessaires
pour la version électronique
P-F. Bonnefoi — Sécurité des Usages TIC
5 La sécurité «électronique» : la signature électronique 197
Vers la signature électronique : des considérations juridiques
Les régimes juridiques doivent admettre les écrits numériques comme :
– recevables (le juge a le droit de les considérer) ;
– potentiellement probants (ils apportent la preuve s’ils sont difficilement falsifiable).
Les travaux de normalisation se concentrent sur deux aspects :
□ l’interopérabilité pour une signature électronique universellement interprétée et reconnue
définition de standards d’interprétation non ambigüe des signatures ;
des algorithmes de calcul et des modes de fonctionnement ;
des initiatives privées (RSA Security Inc) ont déjà établi des formats de
messages ;
□ la sécurité :
la norme internationale des «critères communs» de spécification et d’évaluation sécuritaire ouvre la
perspective de la reconnaissance des signatures entre pays par le fait que leurs niveaux de sécurité soient
P-F. Bonnefoi — Sécurité des Usages TIC
équivalents.
La vérification des caractéristiques de sécurité des systèmes est effectuées par des sociétés spécialisées,
les évaluateurs ; dont les compétences sont surveillées entre autres, par une autorité émanant de l’état l’ANSSI,
«Agence Nationale de la Sécurité des Systèmes d’Information» (anciennement appelée la DCSSI).
Vous trouverez à [Link] les documents relatifs au
RGS, Référentiel Général de Sécurité définissant les exigences francaises en matière de sécurité relative à la
cryptographie.
Le risque zéro n’existe pas et l’arsenal juridique et technique doit prendre en compte ce fait, en prévoyant
les conséquences d’accidents majeurs (fraudes ou dysfonctionnement) dans des plans de secours.
La signature électronique 198
Le 13 décembre 1999, de la directive 1999/93/CE relative à «un cadre communautaire pour les signatures électroniques»
La loi du 13 mars 2000
Au contraire de la directive, la loi francaise ne rentre dans aucune considération technique. Elle définit de facon générale
la signature, au regard des fonctions assurées par celle-ci : «La signature nécessaire à la perfection d’un acte juridique
identifie celui qui l’appose. Elle manifeste le consentement des parties aux obligations qui découlent de cet acte» (art.
1316-4 du Code Civil).
Le code civil définit également les conditions de l’équivalence du support électronique et du support papier à titre de
preuve, sous réserve que quatre conditions soient respectées :
Les quatre conditions posées par le code civil pour que le support numérique soit admissible comme preuve au même
titre que le support papier
1. pouvoir identifier la personne dont émane l’écrit électronique au moyen d’un procédé fiable ;
2. l’écrit électronique a été créé dans des conditions de nature à en garantir l’intégrité ;
3. l’écrit électronique est conservé dans des conditions de nature à en garantir l’intégrité ;
4. utiliser un procédé fiable garantissant le lien de la signature électronique avec l’acte auquel elle s’attache.
Le décret du 30 mars 2001
P-F. Bonnefoi — Sécurité des Usages TIC
Le décret est un texte technique, qui constitue la transposition de la directive européenne sur la signature électronique.
Il distingue la «signature électronique» de la «signature électronique sécurisée» :
– la signature électronique est celle qui respecte les conditions posées par le code civil ;
– la signature électronique sécurisée est celle qui répond de plus aux exigences du décret, et présente de ce fait une
présomption de fiabilité.
Le décret précise les conditions de mise en œuvre de la «signature électronique sécurisée», qui bénéficie d’une présomp-
tion de fiabilité :
– elle est établie grâce à un dispositif sécurisé de création de signature électronique ;
– sa vérification repose sur l’utilisation d’un certificat électronique qualifié.
La signature électronique : aspects juridiques 199
23 juillet 2014 : adoption règlement n° 910/2014/UE, eIDAS, «electronic identification and trust services»
□ abroge la 1999/93/C à partir du 1er juillet 2016 et s’appliquera en effet directement à partir de cette
date dans tous les états membres de l’UE
viendra remplacer les lois nationales, ce qui engendra des modifications profondes dans la législation
de certains pays en matière de signature et d’identification électronique.
des exigences applicables aux dispositifs de création de signature électronique qualifiés, permettant
d’obtenir un niveau de sécurité juridique maximal sur les documents signés.
Le règlement consacre le marché européen de la signature électronique dans le secteur public et les
relations avec les administrés, ainsi que le principe de reconnaissance mutuelle des moyens d’identi-
fication électronique délivrés par les Etats membres, tout en exigeant un haut niveau de sécurité pour
l’ensemble des méthodes utilisées.
[Link]
-eidas/
La signature électronique : aspects juridiques 200
[Link]
-[Link]
Tous les acteurs intéressés – les citoyens/consommateurs ainsi que les entreprises et les autorités publiques –
doivent être en mesure de recourir aux technologies de l’information et de la communication (et notamment
l’internet) en toute confiance et avec un niveau de sécurité élevé. Cela suppose notamment qu’ils puissent
identifier avec certitude un cocontractant potentiel et que les obstacles à l’utilisation de certains outils (tels
que des services de signature, d’horodatage ou de recommandé électroniques) soient levés.
Par ailleurs, ces objectifs doivent être atteints dans un contexte transfrontalier paneuropéen de sorte que,
par exemple, un citoyen belge puisse s’identifier auprès d’une administration publique italienne, en utilisant des
technologies fournies par une entreprise allemande (ce qui requiert, entre autres, que les moyens techniques
utilisés soient interopérables).
D’une part, elles consacrent la reconnaissance mutuelle des moyens d’identification électronique délivrés
par un Etat membre et qui seraient utilisés dans un autre Etat membre. On songe à l’hypothèse d’un étudiant
belge qui souhaiterait s’inscrire en ligne dans une université espagnole, en établissant son identité au moyen
P-F. Bonnefoi — Sécurité des Usages TIC
de sa carte d’identité électronique. Pour les entreprises, cette reconnaissance mutuelle est importante dans le
cadre des marchés publics et des réponses aux appels d’offres. Une procédure est mise en place, pour organiser
la coopération entre les Etats membres et les autorités européennes (spécialement la Commission), et garantir
l’interopérabilité des moyens d’identification utilisés.
D’autre part, le règlement eIDAS établit un cadre juridique pour plusieurs services de confiance. Outre
la signature électronique, sont également visés le cachet électronique (qui doit permettre de garantir l’origine
et l’intégrité d’un document électronique délivré par une personne morale), l’horodatage électronique (pour
prouver l’existence des données à un moment particulier), les services d’envois recommandés et l’authentifi-
cation de site internet (pour s’assurer qu’un site web est géré par celui qui s’en prétend titulaire).
Le secret de la correspondance 201
Une correspondance reste la propriété intellectuelle de son auteur bien que le support physique soit
la propriété du destinataire.
Union européenne
Au sein de l’Union européenne, le secret de la correspondance est garanti par la directive européenne
97/66 du 15 décembre 1997 qui fait obligation aux états membres de garantir par leur législation :
□ la confidentialité des communications passées par la voie des télécommunications et d’interdire «à
toute autre personne que les utilisateurs, sans le consentement des utilisateurs concernés, d’écou-
P-F. Bonnefoi — Sécurité des Usages TIC
ter, d’intercepter, de stocker les communications ou de les soumettre à quelque autre moyen d’inter-
ception ou de surveillance, sauf lorsque ces activités sont légalement autorisées».
France
En France, la violation de secret de la correspondance est actuellement réprimée par les articles
226-15 et 432-9 du code pénal et par l’article L 33-1 du code des postes et télécommunications.
L’e-administration 202
Le ministre délégué au Budget et à la Réforme de l’État, Jean-Francois Copé, a présenté un projet de loi rati-
fiant l’ordonnance du 8 décembre 2005 relative aux échanges électroniques entre les usagers et les autorités
administratives, et entre les autorités administratives elles-mêmes.
Cette ordonnance, prise sur le fondement de la loi du 9 décembre 2004, de simplification du droit, vient renforcer
l’attirail juridique nécessaire au bon développement de «l’administration électronique» dans le pays.
L’e-administration
Elle concerne :
□ l’ensemble des échanges électroniques ;
□ télé-services ou courriels échangés avec les administrations, qu’il s’agisse des administrations de l’État, des
collectivités territoriales, de leurs établissements publics administratifs, des organismes de sécurité sociale
ou des autres organismes de droit privé gérant des services publics administratifs.
L’ordonnance a établi une équivalence juridique entre le courrier électronique et le courrier sur support
P-F. Bonnefoi — Sécurité des Usages TIC
papier en prévoyant notamment que la saisine de l’administration par voie électronique est régulière et doit faire
l’objet d’un accusé de réception ou d’un accusé d’enregistrement informant l’usager que sa demande a été prise
en compte.
Elle offre ainsi la possibilité aux usagers de disposer d’un espace de stockage en ligne, personnalisé et
personnalisable, qui a pour vocation d’accueillir les documents administratifs les concernant, ainsi qu’un bloc-
notes contenant des formulaires en ligne.
Ce service sera expérimenté début 2006 avant sa mise en place en 2007. Le texte permet également la mise
place des conditions permettant la signature électronique de leurs actes par les autorités administratives.
P-F. Bonnefoi — Sécurité des Usages TIC
Alors ?
Plus de problème ?
Le problème de l’échange de clé publique 204
Bob Cédric Alice
clé privée
de Cédric
clé privée clé publique
P-F. Bonnefoi — Sécurité des Usages TIC
de Bob de Cédric
clé publique
de Bob
Le problème est de s’assurer que la clé que l’on récupère provient bien de la personne concernée : rien
ne garantit que la clé est bien celle de l’utilisateur à qui elle est associée.
Attaque
Un pirate peut remplacer la clé publique de la victime présente dans l’annuaire par sa clé publique.
Ainsi, il peut déchiffrer tous les messages ayant été chiffrés avec cette clé.
Il peut même, ensuite, renvoyer à son véritable destinataire le message (modifié ou non) en le chiffrant
avec la clé publique originale pour ne pas être démasqué !
P-F. Bonnefoi — Sécurité des Usages TIC
6 La PKI, «Public Key Infrastructure» un tiers de confiance 206
But de la PKI
□ Gérer les problèmes posés par le maintien de lien entre des clés publiques et des identités au
travers de différentes applications.
Sans PKI, il faudrait définir de nombreuses solutions de sécurité et espérer une certaine interopéra-
bilité ainsi qu’un même niveau de protection entre elles.
□ Gérer le partage de la confiance entre usagers, en utilisant un tiers pour confirmer la propriété
d’un «credential», c-à-d un document conférant une identité ou une qualité, appelé «certificat».
La construction du certificat
L’ensemble des informations (le nom de l’autorité de certification, du propriétaire du certificat...) est signé par l’autorité
de certification, représentant le tiers, à l’aide de la signature électronique :
⊳ une fonction de hachage crée une empreinte de ces informations ;
⊳ ce résumé est chiffré à l’aide de la clé privée de l’autorité de certification, la clé publique ayant été préalablement
P-F. Bonnefoi — Sécurité des Usages TIC
largement diffusée ou elle même signée par une autorité de niveau supérieur.
Grâce à cette signature électronique, il est possible de s’assurer de la fiabilité du certificat.
Cette méthode repose sur la confiance dans une structure dont on dispose de la clé publique, une autorité supérieure :
VeriSign, GTE, Certinomis, CommerceNet, Thawte, ...
Fonctionnement
⊳ Si je fais confiance à cette autorité de certification, alors je fais confiance aux certificats signés par elle ;
⊳ Un certificat signé par elle associe une clé publique à une identité : je fais confiance à cette association (après
vérification de la signature grâce à la clé publique de cette autorité de certification) ;
⊳ J’utilise la clé publique contenue dans le certificat pour l’identité associée.
Modèle du «tiers de confiance» à la «kerberos» 208
Enregistrement auprès du tiers de confiance
Serveur Serveur
1 3
2 4
A B A B
⇒A s’enregistre auprès de S ⇒B s’enregistre auprès de S
⇒S donne la clé partagée 𝑘𝐴𝑆 ⇒S donne la clé partagée 𝑘𝐵𝑆
Comment établir un canal sécurisé entre A et B à un instant 𝒕 ? On passe par S à cet instant 𝒕
Serveur Serveur Serveur
P-F. Bonnefoi — Sécurité des Usages TIC
4
2
A B A B A 5 B
⇒A veut communiquer avec B ⇒«token» {𝑘𝐴𝐵 }𝐾𝑆𝐵 ⇒échange utilisant 𝑘𝐴𝐵
⇒S donne la clé partagée 𝑘𝐴𝐵 ⇒échange utilisant 𝑘𝐴𝐵
et le «token» {𝑘𝐴𝐵 }𝐾𝑆𝐵
⟹ Le serveur doit être accessible tout le temps par A et B.
Modèle du «tiers de confiance» à la «PKI» 209
Enregistrement auprès du tiers de confiance
Autorité de Certification Autorité de Certification
1 3
2 4
A B A B
2 4
A 𝐶𝐵 B A B A 5 B
g. Certificats électroniques
g. Certificats électroniques
Exemple d’un certificat pour le site web [Link]
Détenteur de
la clé publique
P-F. Bonnefoi — Sécurité des Usages TIC
Autorité de
certification
Dates de validité du
certificat
g. Certificats électroniques
Où trouver les certificats dans un navigateur ?
Exemple avec Firefox pour ouvrir le certificat d’un site WEB
signature
Nom de l’AC de
l’AC
P-F. Bonnefoi — Sécurité des Usages TIC
L’Autorité de Certification doit assurer des fonctions de gestion de certificats (émission, révocation,
stockage, récupération et fiabilité des certificats), elle doit :
□ délivrer les certificats ;
□ assigner une date de validité aux certificats (équivalent à la date limite de péremption des produits
alimentaires) ;
□ révoquer éventuellement des certificats avant cette date en cas de compromission de la clé privée
associée (ou du propriétaire).
Composition d’une PKI 215
Autorité
Certification
émets distribue
certificat
Autorité Liste
Certification Révocation
enregistre
P-F. Bonnefoi — Sécurité des Usages TIC
Personne
Autorité Autorité
d’Enregistrement 1 d’Enregistrement 2
peut exister en plusieurs exemplaires :
distribution géographiques,
catégories de clients...
Obtention de certificat 216
Utilisation de PKI, reposant sur des AC déjà connues comme Verisign, Thawte etc.
Il existe plusieurs «classes» de certificat en fonction du niveau de confiance demandé et du prix du traitement.
Des informations d’identité plus ou moins précises sont demandées en fonction du niveau de confiance choisi.
⋆ de la signature d’application : lors du déploiement de ce logiciel, on pourra vérifier qu’il provient bien
de la société de développement et qu’il n’a subit aucune altération.
Pour un usage professionnel le certificat de classe 2 ou supérieur est nécessaire.
L’utilisateur peut lui-même créer son couple de clés et renseigner les informations de son certificat. Il construit une
requête de certificat et la transmets à l’AC pour signature.
Client Autorité de certification
génère une paire de clés, ou «biclé»
1
PKCS#10
clé privée clé publique
fournit différentes informations
Informations
Nom 1 Informations
Adresse e-mail Clé publique
Organisation 2
Localité
Usage(s)
... Signature
P-F. Bonnefoi — Sécurité des Usages TIC
⇒L’utilisateur envoi sa clé publique, ainsi que ces informations d’identification dans une requête au format
PKCS#10 ;
⇒l’autorité de certification effectue la signature de ces informations après vérifications ;
⇒le certificat est retourné à l’utilisateur au format PKCS#7.
Format des échanges 218
PKCS#10 PKCS#7
CertificationRequestInfo content :
Name or signedData
subjectPublicKeyInfo or envelopedData
attributes or signedAndEnvelopedData
signatureAlgorithm or digestData
In cryptography, PKCS #11 is one of the Public-Key Cryptogra- RFC 2315 : «PKCS #7: Cryptographic Message Syntax
phy Standards,[1] and also refers to the programming interface Version 1.5»
to create and manipulate cryptographic tokens. compatible with Privacy-Enhanced Mail (PEM) in that signed-
The PKCS #11 standard defines a platform-independent API data and signed-and-enveloped-data content, construc-
to cryptographic tokens, such as hardware security modules ted in a PEM-compatible mode, can be converted into
(HSM) and smart cards, and names the API itself "Crypto- PEM messages without any cryptographic operations.
ki" from "cryptographic token interface" and pronounced as RFC 1422 : «Privacy Enhancement for Internet Electronic
"crypto-key". Mail: Part II: Certificate-Based Key Management»
Obtention d’un certificat 219
La création d’un certificat peut s’accompagner de son stockage local
Ce stockage peut être fait dans un «Key Store», une sorte de BD locale accessible par différentes
applications, au travers d’une API :
□ PKCS#11 sous Unix,
□ CAPI, «Crypto API» sous Windows,
□ JCA, «Java Crypto API» sous Java.
La création d’un certificat peut s’accompagner de son échange sur le réseau
Les certificats peuvent être stockés dans des annuaires comme LDAP, «Lightweight Directory Access
Protocol».
Lors de l’établissement d’une communication sécurisée, un des interlocuteurs (le plus souvent le ser-
veur) transmets son certificat à l’autre interlocuteur.
P-F. Bonnefoi — Sécurité des Usages TIC
Dans le cas de SSL, «Secure Socket Layer», ou TLS, «Transport Layer Security», c’est le serveur Web
qui remets son certificat au client (ce certificat peut être accompagné de la «chaîne de certification» qui
le lie au certficat de l’autorité de certification qui, lui, doit être connu du client).
Dans le cas, où l’on veut communiquer tout de suite en mode chiffré, il faut récupérer le certificat dans
un «certificate repository» ou dépôt de certificats.
3. Les bases de la cryptographie
g. Certificats électroniques
P-F. Bonnefoi — Sécurité des Usages TIC
Puisque le certificat du site WEB est disponible et valide, cela amène donc deux
avantages à l’utilisateur, caractéristiques du HTTPS
• Nous sommes confiants que le site WEB est légitime (i.e. le certificat a été vérifié et
signé par une autorité de certification de confiance) ;
• Puisque le certificat contient la clé publique du site WEB, nous pouvons donc chiffrer
nos connexions vers ce site (méthode : chiffrement avec la clé publique du
destinataire comme nous l’avons vu au préalable dans ce cours).
...
Signature de l’AC 128 bytes : A1 12 73 46 DA 9B 70 1E F5...
Fingerprints SHA-256 EE 00 06 3B 8C 94 B4 79 C5 C5 3C 1A 55 87 A8 4B C5 06 6A 26 29 27
C3 6B 5B 6D F5 C9 CE 5E BA 6B
SHA-1 27 9B 59 5E 4C 1F E0 EB 99 62 EB B7 25 92 38 49 35 9B A8 4E
Companies can
he use of
P-F. Bonnefoi
within their
ts by using these
X.509 version 3
d the extension
.
91
e5j4/TCy/Q+ttiYAE9Ap5EO5P32/55XYU5n8c3OyIDQQTP/P7I+ncutNIj53f2IC
-----END CERTIFICATE-----
Les différentes extensions des fichiers
∘ .cer, .crt, .der : en général des certificats au format DER ;
∘ .pem : au format PEM ;
∘ .p7b, .p7c : PKCS#7 «Signed Data structure without data, just sertificate(s) or CRL(s)»
∘ .p12 : PKCS#12, contient le certificat (clé publique comprise) et la clé privée chiffrée avec un chiffrement symétrique
pour empêcher sa lecture ;
∘ .pfx : prédécesseur de PKCS#12.
Le contenu du certificat
Il est construit suivant une norme reconnue internationalement pour faciliter l'interopérabilité.
P-F. Bonnefoi
94
Composition d’une PKI : enregistrement 226
Autorité
certificat
Certification
de la personne
4
signe
ém
et
contenu
s
certificat
3
so
mu
et
s
2 1
enregistre génére bi-clés
P-F. Bonnefoi — Sécurité des Usages TIC
asymétrique
Personne
Autorité
d’Enregistrement 2
La CA : problème de la confiance 227
L’autorité de certification doit être de confiance
⊳ Elle doit être plus «qu’un logiciel» : elle englobe des procédures, des «policies», du matériel, des bâtiments, des gens
pour vérifier les informations d’identité etc.
⊳ Chaque CA doit avoir un CPS, «Certification Practices Statement» qui précise :
⋄ Comment les identités sont vérifiées ;
⋄ Quelles sont les étapes suivies par la CA pour générer un certificat, le maintenir et le distribuer ;
⋄ Les éléments qui permettent de justifier la confiance que l’on peut lui apporter et comment elle va s’acquitter de
ses responsabilités ;
⋄ Les recours juridiques possibles dans le cas où l’AC est compromise ;
⋄ Que faire en cas de compromission de sa clé privée ou de sa perte ;
⋄ Les données qui seront inscrits dans le certificat ;
⋄ La gestion de la révocation ;
⊳ Ce sont des documents qui doivent être rédigés par : les ressources humaines, le responsable des ressources infor-
matiques et le service juridique.
⊳ Cette CPS doit être consultée afin de vérifier que l’entreprise ou l’individu peut l’utiliser conformément à ses exi-
P-F. Bonnefoi — Sécurité des Usages TIC
gences.
Confiance dans la PKI
L’ensemble des personnes et des services doivent faire confiance à la PKI pour :
□ signature des courriers;
□ chiffrement ;
□ authentification sur des applications maison…
Ils doivent être capable de :
⊳ vérifier un certificat ;
⊳ contacter l´Autorité de Certification afin de vérifier la validité du certificat auprès de la liste de révocation.
Composition d’une PKI : utilisation et vérification du certificat 228
Autorité Liste
Certification certificat Révocation
de l’AC
fournit distribue
extrait
Autorité
Certification
clé
publique AC
P-F. Bonnefoi — Sécurité des Usages TIC
certificat
de l’entité
Personne
Composition d’une PKI : consultation liste révocation 229
Autorité Liste
Certification certificat Révocation
de l’AC
fournit distribue
extrait
Autorité
Certification
clé
publique AC
P-F. Bonnefoi — Sécurité des Usages TIC
certificat
e
de l’entité sult
con
récupère
fournit distribue
Autorité
Certification
P-F. Bonnefoi — Sécurité des Usages TIC
certificat clé
de l’entité publique
de l’entité
récupère extrait
Certificate
L’attribution Attributes
de certificat :
À la main
§ Four CA ; types of certificates are used:
§ À des CAs intermédiaires ;
■ End-entity
Les certificats certificates
suivant sont appelés « end-entity certificate » car ils ne peuvent servir à signer de
nouveaux
■ CA certificates !
certificats
Cross-certification certificates
§ À■des individus ;
§ À des
■ matériels
Policy réseau actif : firewall, switch, …
certificates
§ À des postes de travail : laptop, PDA, etc.
End-entity certificates are issued by a CA
to a specific subject, such as Joyce, the Ac-
counting department, or a firewall, as illus-
trated in Figure 6.8. An end-entity certificate
is the identity document provided by PKI
P-F. Bonnefoi — Sécurité des Usages TIC
implementations.
A CA certificate can be self-signed, in the
case of a standalone or root CA, or it can be is-
P-F. Bonnefoi
142
P-F. Bonnefoi
P:\010Comp\BaseTech\375-8\[Link]
Thursday, November 12, 2009 [Link] PM
97
described in the n
One concern i
P-F. Bonnefoi
how often is it up
flect all the certifi
actual frequency
depends upon the
tices statement (C
98 list is updated in
one using the
• Figure 6.9 The CA digitally signs the CRL to protect its integrity. information.
that have been revoked and the reasons for their revocation. These lists can
grow quite long, and as such, there are provisions for date timestamping the
Tech Tip
Les raisons d’invalider un certificat
Le fonctionnement de la CRL
C’est une «CRL Reason
blacklist ». Codes
Il existe une « delta CRL » qui permet d’indiquer
Per the X.509 v2 CRL standard, uniquement
the following reasonslesfor
modifications
revocation par
are rapport
used: à une version
antérieure pour limiter la taille de cette liste.
Reason
Code Reason
0 Unspecified
1 All keys compromised; indicates compromise or suspected compromise
2 CA compromise; used only to revoke CA keys
3 Affiliation changed; indicates a change of affiliation on the certificate
4 Superseded; the certificate has been replaced by a more current one
P-F. Bonnefoi — Sécurité des Usages TIC
6 Certificate hold; indicates the certificate will not be issued at this point
in time
7 Remove from CRL; used with delta CRL to indicate a CRL entry should
be removed
99
La raison n°6 peut indiquer également que le titulaire est en vacances…
Les extensions de certificat
« Key usage extension »
Elles permettent de définir les usages de la clé publique contenue dans le certificat :
§ DataEncipherment: pour faire du chiffrement de données
§ DigitalSignatures : pour faire de la vérification de signature
Attention : RSA peut faire du chiffrement et de la signature, mais DSA ne peut faire que de la
signature !
§ KeyEncipherment ou Symmetric Key Encryption : il est parfois nécessaire de transmettre une clé
de chiffrement asymétrique pour faire du chiffrement de données lorsque la clé contenue dans le
certificat ne peut faire que de la signature (Application : dans SSL)
§ NonRepudiation : pour s’assurer de la date à laquelle est faire une opération pour ne pas pouvoir
la répudier :
Alice conteste l’utilisation de sa clé privée pour la signature d’un document, elle insiste sur le fait
qu’elle a signalé la compromission de sa clé privée avant que le document ne soit signé.
La preuve sera fournie par un « Timestamp » signé par une TSA, « TimeStamp Athority » qui
prouvera si cette révocation a eu lieu avant la signature dudit document.
§ KeyCertSign : la clé sert à vérifier la signature des certificats par rapport à la CA
P-F. Bonnefoi — Sécurité des Usages TIC
L’OID sert, en sécurité, à identifier chaque élément des ceritifcats X.509 : le DN, « distinguished Name »,
le CPS, « Certificate Practice Statements », etc.
P-F. Bonnefoi — Sécurité des Usages TIC
L’OID est utilisé dans de nombreux domaines, comme SNMP, LDAP (RFC 2256) etc.
Il est possible d’obtenir un OID auprès de l’IANA.
P-F. Bonnefoi
Pour CERTINOMIS :
101
Identifier les éléments de la sécurité : l’OID
Exemple sur le RGS français :
Le document accessible à l’URL
[Link]
est associé à l’OID [Link].[Link].2.1.10
P-F. Bonnefoi
102
La génération de la « biclé »
Centralisée ou distribuée
§ Dans la version centralisée, les clés sont générées sur un serveur puis mise à disposition des
utilisateurs.
§ Avantages :
§ Utilisation de processeurs cryptographiques spécialisés avec de bon PRNGs (la
génération peut être coûteuse en ressource de calcul) ;
§ Possibilité de faire du « key recovery » en cas de perte de clé (à ne pas confondre avec
le« key escrow ») ;
§ Inconvénients :
§ Obligation de transmettre de manière sécurisée les clés aux utilisateurs ;
§ Obligation d’assurer la disponibilité du serveur ;
§ Pas d’exploitation de la non répudiation pour l’utilisateur
§ Dans la version décentralisée, les clés sont générées par l’utilisateur.
§ Avantages :
§ Permet la non répudiation ;
§ Risques de pertes ou de mauvaise protection.
P-F. Bonnefoi — Sécurité des Usages TIC
§ Inconvénients
§ Utilisation de mauvaises solutions de génération de clés.
P-F. Bonnefoi
Les solutions
§ Les clés privées doivent être stockées de manière chiffrée à l’aide d’un algorithme symétrique :
l’accès à la clé privée est déverrouillé par l’entrée d’une passphrase fournie à l’algo de
chiffrement.
§ La durée de vie des clés doit être bien choisie et ne plus être utilisée après, éventuellement elle
peut être détruite.
§ Les clé privées ne doivent pas être partagées.
103 § Les logiciels manipulant ces clés doivent être audités.
La conservation et le « partage » de la biclé
Tiers de séquestre ou « Key Escrow »
« Entité chargée de conserver les conventions secrètes des utilisateurs, de les leur restituer sur demande
ou de les remettre aux autorités judiciaires ou de sécurité sur leur requête. »
Avantages :
§ permettre d’avoir accès au contenu d’échanges réalisés par un collaborateur dans le cadre de
son travail dans l’entreprise ;
§ permettre de faire évoluer l’archivage des documents : déchiffrer un document et le rechiffrer
avec des moyens cryptographiques mis à jour.
Moyens :
§ Utiliser des clés pour des usages distincts : une biclé pour chiffrer et une biclé pour signer.
La biclé utilisée pour chiffrer peut être conservée par l’entreprise pour accéder aux documents du
collaborateur.
P-F. Bonnefoi — Sécurité des Usages TIC
Obligation légale
P-F. Bonnefoi
L’utilisation d’un tiers de séquestre peut être nécessaire dans le cas de l’archivage.
104
L’Horodatage ou «signer la date» 240
Besoins
∘ Archiver un document pendant un certain temps (obligation légale) ;
∘ Prouver l’antériorité d’un dépôt de document (le cachet de la Poste faisant foi...)
∘ Permettre la traçabilité d’une opération.
∘ Garantir la non-répudiation.
But
Fournir la preuve de l’existence d’un message à un instant donné.
Horodateur neutre ⟹ opérations techniques :
⊳ Aucun contrôle du contenu du message
⊳ Pas de contrôle du bien fondé de la requête
Contenu du jeton d’horodatage
□ Politique d’horodatage utilisée
□ Nom du tiers horodateur et son numéro authentification ;
□ Marque de temps ;
P-F. Bonnefoi — Sécurité des Usages TIC
L’autorité d’horodatage, délivre des «jetons d’horodatage» pour certifier l’existence de données ou l’établis-
sement d’une transaction, à une date et une heure précise à la seconde près, tel le «cachet de la poste» qui
fait foi.
⟹Certifier l’intégrité d’un fichier ou d’une opération entre la date d’horodatage et celle de vérification.
Acte 12
11 1
à horodater 10 2
Horloge
9 3
8 4 Atomique
hachage
7 5
6
résumé/empreinte
P-F. Bonnefoi — Sécurité des Usages TIC
signature
Nom de l’Autorité de
d’horodatage l’Autorité
d’horodatage
L’heure et la date sont absolues données en référence UTC, «Universal Time Coordinated», et correspondent
à l’heure et la date courante lors de la création du jeton.
Le jeton assure l’intégrité, l’antériorité et l’opposabilité (protection contre la contestation liée au temps).
Évaluation de la sécurité de TLS 242
Audit externe [Link]
You are here: Home > Projects > SSL Server Test
Hostname: Submit
Copyright © 2009-2018 Qualys, Inc. All Rights Reserved. Terms and Conditions
Qualys is the leading provider of integrated infrastructure security, cloud infrastructure security, endpoint security, devsecops, compliance and web app security solutions.
Vérification qu’un certificat est bien émis depuis la bonne AC 243
Site de référence [Link]
Fingerprints
Is your employer, school, or Internet provider
eavesdropping on your secure connections?
1,077 sets of fingerprints checked per day
1,588,775 sets of fingerprints checked for our visitors
Each site's authentic security certificate fingerprint (shown above) was just now obtained by GRC's servers from each target web
server. If your web browser sees a different fingerprint for the same certificate (carefully verify the Certificate Name is identical) that
forms strong evidence that something is intercepting your web browser's secure connections and is creating fraudulent site certificates.
In addition to the wellknown web sites listed above, GRC's web server can obtain and display the “fingerprint” of any
HTTPScapable public web server's secure connection certificate. Simply enter the domain name of the server you wish
to fingerprint, then press Enter or click the “Fingerprint Site” button:
https://
Google and Apple are different: Some visitors are being confused by
Google's and Apple's certificate fingerprints which change and may not
match. Please see the “What can go wrong with this test?” section at
the bottom of this page for an explanation of the complexities.
D’après Wikipedia
An Extended Validation Certificate (EV) is a certificate used for HTTPS websites and software
that proves the legal entity controlling the website or software package. Obtaining an EV certificate
requires verification of the requesting entity’s identity by a certificate authority (CA).
EV certificates are validated against both the Baseline Requirements and the Extended Valida-
tion requirements, which place additional requirements on how authorities vet companies.
108
P-F. Bonnefoi
OCSP
OCSP : Online Certificate Status Protocol
Ce protocole :
— permet de vérifier que le certificat a ou non été révoqué ;
— fonctionne suivant le mécanisme requête/réponse.
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
109
OCSP : la requête
Exemple :
Ici le serveur Apache vérifie le certificat donné par le client, c-à-d le navigateur web auprès de l'AC qui a
délivré le certificat.
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
110
OCSP : la réponse
Ici, le serveur Apache reçoit la réponse qui lui indique le statut du certificat du client.
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
111
Intégration Apache et gestion des certificats
Ici, le serveur Apache comme le client sont authentifiés par des certificats issus de la même AC.
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
112
Application des certificats
Pour l’établissement de connexion sécurisée
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
113
Applications
— Applications de confiance (applet JAVA, pilote Windows XP, …)
— Sécurisation des processus « web services » en particulier les serveurs d’authentification (SSO)
— Horodatage
— Signature
— E-commerce
— Dématérialisation de procédure administrative (Workflow)
— E-Vote
Les Usages
— Messagerie S/MIME : signature (certificat de l’émetteur) et/ou chiffrement (certificat du destinataire)
— SSL ou TLS : en particulier HTTPS pour chiffrer les sessions du client et authentifier le serveur.
Principe :
— utiliser une couche avec chiffrement et authentification au dessus de TCP/IP ;
P-F. Bonnefoi
Avantage : Applicable à toutes les applications sur TCP (sans réécriture de celles-ci)
A ce jour, probablement le domaine d’application le plus utilisé (OpenSSL).
114
and data structures exchanged and the means for managing that
and Adleman changed secure
data to provide the functions of the PKI (certificate issuance, storage,
communications in a world-shat-
revocation, registration, and management).
tering way. It was a technology
■ Standards that define the interface between applications and the that met the need of another
underlying PKI These standards use the PKI to establish the emerging technology; the devel-
services required by applications (S/MIME, SSL, and TLS). opment of the Internet during
Rapports entre la PKI et les protocoles de communication this same time led to the need for
■ Other standards These standards don’t fit neatly in either of the
secure communications between
other two categories.
La PKIThey
reposeprovide
sur : bits and pieces that glue anonymous parties—combined,
Desnot
everything together;§ they services
only canfournis parthe
address PKIPKI
X.509 (PKIX)and
structure a technologically revolutionary
la certification,
the methods and protocols for using it,lebut
stockage,
can alsol’enregistrement,
provide an la révocation
event.
Des formats
§ process
overarching business : PKCS,for
environment « Public Key Cryptography Standards »
PKI implementation
pour l’échange des éléments entre les applications : S/MIME, SSL, TLS
(for example, ISO/IEC 27002, Common Criteria, and the Federal
§ Une organisation des données d’annuaire
Information Processing Standards Publications [FIPS PUBS]). : X509.
pour définir les DN, indentifier les serveurs, indiquer les URLs des services, donner les usages
Figure 7.1 shows the relationships
etween these standards and protocols
nd conveys the interdependence of the
tandards and protocols discussed in
his chapter. The Internet public key in-
astructure (PKI) relies on three main
andards for establishing interoperable
KI services: PKI X.509 (PKIX), Public
P-F. Bonnefoi — Sécurité des Usages TIC
D’autres encore
§ Secure/Multipurpose Internet Mail Extensions (S/MIME) pour l’e-mail;
§ Secure Sockets Layer (SSL), Transport Layer Security (TLS), etWireless Transport Layer Security
P-F. Bonnefoi
116
Color profile: Disabled
Composite Default screen
BaseTech / Principles of Computer Security: CompTIA Security+™ and Beyond / Gregory B. White / 375-8 / Chapter 7
157
Chapter 7: Standards and Protocols
Color profile: Disabled
Composite Default screen
BaseTech / Principles of Computer Security: CompTIA Security+™ and Beyond / Gregory B. White / 375-8 / Chapter 7
Other PKIX topics RFC 3279 Algorithms and Identifiers for the Internet X.509 Updated by
Public Key Infrastructure Certificate and CRI Profile RFC 4491
RFC 3379 Delegated Path Validation and Delegated Path
Discovery Protocol Requirements
RFC 3874 A 224-bit One-way Hash Function: SHA-224
RFC 4491 Using the GOST R 34.10-94, GOST R 34.10-2001 and Updates
GOST R 34.11-94 Algorithms with the Internet X.509 RFC 3279
118 Public Key Infrastructure Certificate and CRL Profile
to understand what standards are out there and how the decision to use a Exam Tip: All of the stan-
particular PKI implementation (either home grown or commercial) may dards and protocols discussed
lead to incompatibilities with other certificate-issuing entities. You must in this chapter are the “vocabu-
consider your business-to-business requirements when you’re deciding lary” of the computer security
Principes généraux de SSL
L'utilisation de SSL permet :
— D'établir un canal de communication chiffré ;
— D'authentifier l'un ou l'autre des interlocuteurs, voire les deux, à l'aide de certificat (au format x509).
LDAP
HTTP
IMAP
POP
LDAP
HTTP
IMAP
POP
X509 X509
Communicatio
SSL n SSL
sécurisée
TCP
P-F. Bonnefoi — Sécurité des Usages TIC
TCP
IP
P-F. Bonnefoi
IP
120
P-F. Bonnefoi — Sécurité des Usages TIC
121
P-F. Bonnefoi Le positionnement de SSL dans la sécurité réseau
SSL et Virtual Host sous serveur Web Apache : l’extension SNI
Le Virtual Host avec Apache
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
browser versions
uses both hashing
less secure because
liance on MD5 rath
The TLS Recor
At each layer, m
P-F. Bonnefoi — Sécurité des Usages TIC
length, description
col takes messages
P-F. Bonnefoi
§ Il est possible de :
§ Conserver les paramètres d’une session
pour une nouvelle connexion sécurisée
(c-à-d. une nouvelle connexion TCP) ;
§ Renégocier les paramètres pour les
faire évoluer : « rekeying » afin
d’améliorer la sécurité.
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
124
Le protocole SSL
Détails de l’établissement de la communication SSL
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
125
Le protocole SSL
Le message ClientHello
§ Un identifiant de session, pour éventuellement reprendre une session déjà mise en place lors
P-F. Bonnefoi
Le message ClientKeyExchange
Ce message transmets les informations pour les clés de chiffrement symétrique qui sera utilisée
P-F. Bonnefoi — Sécurité des Usages TIC
Cela permet de finaliser l’authentification du serveur (sans la clé privée associée, il ne pourrait pas
déchiffrer cette clé de session).
Le message ChangeCipherSpec
Ce message permet de basculer la communication en mode chiffré.
Il peut y avoir une clé différente pour chaque sens de la communication (il pourrait y avoir également
un choix différents pour l’algorithme de chiffrement, mais cela n’a pas été implémenté).
127 Ainsi, chaque interlocuteur dispose de deux états, « states » : « read state » pour ce qu’il reçoit et
« write state » pour ce qu’il envoie.
Le protocole SSL
Réutiliser une session précédente
Dans ce cas le protocole est simplifié.
Le serveur peut décider de ne pas
réutiliser cette session (problème de cache),
et de forcer la renégociation (envoi d’un
nouveau sessionID au client).
P-F. Bonnefoi
128
Une utilisation « très utile » de SSL :
SSH, « Secure Shell »
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
129
SSH
SSH vs SSL
§ SSH est implémenté par dessus SSL : communications entièrement chiffrées et sécurisées ;
§ Les échanges sont « tout de suite » chiffrés avec Diffie-Helmann (DH), contrairement à SSL ;
P-F. Bonnefoi — Sécurité des Usages TIC
§ SSH utilise une authentification par « login/mdp » (défaut) ou par clés asymétriques (DSA, RSA) :
P-F. Bonnefoi
On crée une biclé, clé publique/clé privée et on installe la clé privée, id_rsa, sur la machine
maître :
ssh-keygen –t rsa –f $HOME/.ssh/id_rsa crée id_rsa
On copie la clé publique, id_rsa.pub, dans un fichier particulier sur la machine sur laquelle on
veut se connecter automatiquement :
$HOME/.ssh/authorized_keys ou $HOME/.ssh/authorized_keys2
130 § SSL permet l’utilisation de PKIX, SSH repose sur l’utilisation directe de clés asymétriques
des patchs existent pour permettre l’utilisation de certificat dans SSH…
SSH
Les capacités de SSH
§ Utilisation de SSH pour exécuter des commandes à distance au travers d’une connexion
sécurisée, avec un shell :
ssh toto@mon_adresse_machine
en demandant l’exécution directe d’une commande sur la machine distante :
ssh toto@mon_adresse_machine ma_commande_a_executer
§ Locale vers distante, c-à-d. se connecter à une machine distante depuis la machine relais ;
§ Distante vers locale, c-à-d. se connecter à la machine cliente par la machine relais ;
§ Dynamique (serveur socks), c-à-d. créer « à la volée » des connexions depuis la machine
relais ;
§ De session X, c-à-d. récupérer les fenêtres X11 du serveur sur le client.
§ Création de VPN :
131 § De niveau 2 (trame) ;
§ De niveau 3 (ip).
SSH : redirection ou « forwarding », locale
Utilisation de SSH comme d’un tunnel
L’application client sur la machine A ne fait pas une connexion directe vers l’application serveur sur la
machine B, mais passe par le « tunnel » chiffré offert par la connexion SSH :
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
Distante :
P-F. Bonnefoi — Sécurité des Usages TIC
P-F. Bonnefoi
133
ssh –R <port_distant>:<adr_cible_locale>:<port_cible_locale> machine_relais
SSH : redirection ou « forwarding », dynamique
Création d’un proxy « SOCKS »
Ici, on lance :
ssh –ND 1080 toto@machine
Et on configure l’accès au serveur SOCKS
P-F. Bonnefoi
134