0% ont trouvé ce document utile (0 vote)
57 vues272 pages

Cours Crypto Cryptis

Le document traite de la cryptographie, en abordant son histoire, ses définitions et ses applications dans divers domaines tels que la sécurité militaire, commerciale et bancaire. Il présente les techniques de chiffrement, de déchiffrement, ainsi que les concepts de cryptanalyse et de stéganographie. Enfin, il explore les méthodes modernes de cryptographie, y compris les clés symétriques et asymétriques, et les infrastructures à clé publique.

Transféré par

kabiroukoulika
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
57 vues272 pages

Cours Crypto Cryptis

Le document traite de la cryptographie, en abordant son histoire, ses définitions et ses applications dans divers domaines tels que la sécurité militaire, commerciale et bancaire. Il présente les techniques de chiffrement, de déchiffrement, ainsi que les concepts de cryptanalyse et de stéganographie. Enfin, il explore les méthodes modernes de cryptographie, y compris les clés symétriques et asymétriques, et les infrastructures à clé publique.

Transféré par

kabiroukoulika
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Master 1ère année

«Remember when, on the Internet, nobody knew who you were?»


Sécurité des Usages TIC et Cryptographie — P-F. Bonnefoi
Version du 4 février 2025
Table des matières

1 Cryptographie : Introduction et définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4


La notion de codage de l’information & la cryptographie associée . . . . . . . . . . . . . . . . . . . . . . 10
Chiffrement par substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Cryptanalyse du chiffrement par substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Chiffrement par transposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Cryptanalyse du chiffrement par transposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2 Cryptographie moderne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Chiffrement à clé symétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Le chiffrement par bloc pour le chiffrement symétrique : chaînage ou non ? . . . . . . . . . . . . . 34
Transmission de l’information et entropie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Réseau de Feistel : propriétés du 𝑥𝑜𝑟 pour définir un cryptosystème . . . . . . . . . . . . . . . . . . . 66
Le chiffrement par flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
P-F. Bonnefoi — Sécurité des Usages TIC

Les limites de la cryptographie Symétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76


Chiffrement à clé asymétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Courbes elliptiques sur domaine fini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Chiffrement asymétrique : application à l’authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Échange sécurisé : la notion de clé de session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
L’authentification dynamique ou «vivante» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
L’authentification d’un document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Compression sécurisée de document : fonction de hachage . . . . . . . . . . . . . . . . . . . . . . . . . 129
Application des fonctions de hachage cryptographique : l’arbre de Merkle . . . . . . . . . . . . . . 133
Attaque sur les fonctions de hachage : «rainbow tables» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
MAC,«Message Authentication Code» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Asymétrique + hachage : la signature électronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
3 Quelques notations pour modéliser les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Les règles de bonnes pratiques de conception de protocole sécurisé . . . . . . . . . . . . . . . . . . 161
HTTP Basic/Digest Authentication, RFC 2617 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Logique BAN, «Burrows–Abadi–Needham» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
4 Chiffrement authentifié avec des MACs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
AEAD, «Authenticated Encryption with Associated Data» . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
AES-GCM, «Galois Counter Mode» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
5 La sécurité «électronique» : la signature électronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
La signature électronique : aspects juridiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Le problème de l’échange de clé publique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
P-F. Bonnefoi — Sécurité des Usages TIC

6 La PKI, «Public Key Infrastructure» un tiers de confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206


Le certificat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Composition d’une PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Obtention de certificat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Composition d’une PKI : utilisation et vérification du certificat . . . . . . . . . . . . . . . . . . . . . . . . . 228
L’Horodatage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
1 Cryptographie : Introduction et définitions 4
Introduction
Depuis l’Egypte ancienne, l’homme a voulu pouvoir échanger des informations de facon confidentielle.
En grec :
Cryptographie : ( κρυπτο – γραφην ) écriture cachée / brouillée.

Il existe de nombreux domaines où ce besoin est vital :


⊳ militaire (sur un champ de bataille ou bien pour protéger l’accès à l’arme atomique) ;
⊳ commercial (protection de secrets industriels) ;
⊳ bancaire (protection des informations liées à une transaction financière) ;
⊳ vie privée (protection des relations entre les personnes) ;
⊳ diplomatique (le fameux «téléphone rouge» entre États-Unis et Union soviétique) ;
P-F. Bonnefoi — Sécurité des Usages TIC

⊳ ...
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».

Le fait de «cacher» un message de telle facon à le rendre secret s’appelle chiffrement.


La méthode inverse, consistant à retrouver le message original, est appelé déchiffrement.
Encore des définitions 5

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

texte en clair cryptogramme


P-F. Bonnefoi — Sécurité des Usages TIC

paramètres

Ce cryptogramme est ensuite envoyé à son destinataire.

On appelle cryptanalyse les techniques employées pour déchiffrer un cryptogramme, sans connaître
la méthode et/ou ses paramètres.

Le chiffrement est aussi appelé cryptographie.

L’ensemble des techniques de cryptographie et de cryptanalyse est appelé cryptologie.


3. Les bases de la cryptographie

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

Objectif : ne permettre l’accès aux données qu’aux seules personnes autorisées.

Preuve (authentification et non-répudiation)


Objectif : fournir un moyen de preuve garantissant la véritable identité des
entités ainsi que l’imputation de leurs actions.

21/09/2015 Sensibilisation et initiation à la cybersécurité 41


3. Les bases de la cryptographie

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.

21/09/2015 Sensibilisation et initiation à la cybersécurité 42


Modifier ou cacher l’information ? 8
La stéganographie ou l’art de la dissimulation
En grec :
Stéganographie : ( στεγανο – γραφην ) écriture couverte/dissimulée.
Connaissance de l’existence de l’information ⟹ Connaissance de l’information
Cette méthode consiste à dissimuler l’information à chiffrer dans une autre information. On appelle cette méthode la
«stéganographie».
Exemple : utiliser un bit tous les 8 bits dans une image (un bit de poids faible de préférence). L’image est faiblement
modifiée et rien ne permet de savoir qu’elle contient un message caché.

Cette méthode peut être utilisé en plus de techniques de cryptographie avancée et permet d’en dissimuler l’usage.

Elles peut être utilisée de différentes manières :


⊳ en associant un groupe de lettres à un caractère et en composant un texte qui ait un sens pour groupes de lettres,
par exemple dans un compte rendu de partie d’échec où chaque coup joué correspond à une lettre du message secret
et donne l’illusion d’une partie «normale» ;

⊳ le filigrane ou «watermarking» pour dissimuler une information dans un document pour en permettre l’identification
P-F. Bonnefoi — Sécurité des Usages TIC

(protection des droits d’auteur) ;

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

La cryptanalyse reste difficile et doit s’appliquer à de gros volumes de données à l’aveugle.


P-F. Bonnefoi — Sécurité des Usages TIC

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

Et des méthodes de chiffrement adaptées…


Ces chiffrements partent d’un message contenant des lettres vers un cryptogramme contenant égale-
ment des lettres.
Ces méthodes se décomposent en deux grandes familles de chiffrement :
□ par substitution ;
□ par transposition.
P-F. Bonnefoi — Sécurité des Usages TIC

D’autres formes de chiffrement ?


Il existe également d’autres formes comme le code morse ou bien les sémaphores dans la Marine.
Ce sont des techniques de brouillage.
Chiffrement par substitution 11
Chiffrement de César
Le texte en clair : «le petit chaperon se promenait dans la foret»

chiffrement avec un décalage de 3 : chiffrement avec un décalage de 12 :


z a b z a b
y c y c
C D E L M N
x F d x O d
B K
A G J P
w

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='&#64;';
d=unescape(m);

var nom = "protection";


var domaine = "votre_site.com";
var aro = nom + d + domaine;
[Link]('<a href='+Crypt(a) + aro + '>');
[Link](aro + '</a>');
P-F. Bonnefoi — Sécurité des Usages TIC

// -->
</script>

<!-- FIN DU SCRIPT MAILTO ANTI SPAM-->

Chiffrement de César en javascript


Pour chiffrer, chaque lettre est remplacée par celle trois rangs plus loin dans l’alphabet : A devient D, B
devient E, ...
Pour déchiffrer, le décalage est effectué dans l’ordre inverse : "pdlowr=" devient "[Link]
On se protège ainsi des robots qui analysent les pages web à la recherche d’adresse électronique valide.
Et si on veut «casser» le chiffrement ?
P-F. Bonnefoi — Sécurité des Usages TIC
Cryptanalyse du chiffrement par substitution 14

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.

Méthode empirique de cryptanalyse


Il suffit pour retrouver le texte en clair de :
⊳ de rechercher les caractères, digrammes et trigrammes les plus fréquents du texte chiffré ;
⊳ de faire des suppositions en les associants à ceux les plus fréquents d’un texte en clair (dans la
langue choisi).
P-F. Bonnefoi — Sécurité des Usages TIC

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

25 fréquence d’apparition du caractère

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

Les séquences de deux lettres triées suivant les plus fréquentes


Bigrammes ES DE LE EN RE NT ON ER TE EL AN SE ET LA AI IT ME OU EM IE
Nombres 3318 2409 2366 2121 1885 1694 1646 1514 1484 1382 1378 1377 1307 1270 1255 1243 1099 1086 1056 1030

Les séquences de trois lettres triées suivant les plus fréquentes


Trigrammes ENT LES EDE DES QUE AIT LLE SDE ION EME ELA RES MEN ESE DEL ANT TIO PAR ESD TDE
Nombres 900 801 630 609 607 542 509 508 477 472 437 432 425 416 404 397 383 360 351 350
Cryptanalyse de la substitution mono alphabétique 16
Teste chiffré
JTVMNKKTVLDEVVTLWTWITKTXUTLWJ
ERUTVTWTHDXATLIUNEWV.
JTVIEVWELOWENLVVNOEDJTVLTPTXYT
LWTWUTSNLITTVQXTVXUJXWEJEWTON
KKXLT.
Les fréquences calculées sur le texte chiffré
25 fréquence d’apparition du caractère
20,35

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

Puis avec l’association W ⟹ t :

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

Les associations utilisées

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

Les associations utilisées

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

chants dans le dictionnaire.


Dans tous les cas, la cryptanalyse reste un travail exploratoire, avec :
⇒la mise en place de nouvelles hypothèses ;
⇒la poursuite du processus de cryptanalyse ;
⇒le retour en arrière pour remettre en cause les dernières hypothèses ;
⇒le recommencement de cette méthode en .
P-F. Bonnefoi — Sécurité des Usages TIC

Autre forme de chiffrement


Chiffrement par transposition 22

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

Texte en clair : LA TRANSPOSITION PERMET EN THEORIE D'AVOIR UN HAUT DEGRE


DE SECURITE
L R S S I P M E H R D O U A D R E C I

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.

Par exemple : Ceci est un texte à chiffrer de la plus haute importance

Le texte est regroupé en tableau, suivant un nombre de colonnes donné.

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.

Combiner les paramètres


Les opérations sont connues, la séquence d’application des opérations est définie par la séquence des paramètres de
chaque opération.

La combinaison des différents paramètres des différentes opérations permet de définir un secret.

Ce secret permet de réaliser le déchiffrement et assure la sécurité du cryptogramme.


P-F. Bonnefoi — Sécurité des Usages TIC

Il est appelé clé de chiffrement.

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

Ce type de chiffrement repose sur l’utilisation :


□ d’un algorithme public, connu de tous ;
□ d’une clé.
Il correspond à la cryptographie moderne, par rapport aux codes par substitution et transposition.

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

Il existe deux sortes de chiffrement :


P-F. Bonnefoi — Sécurité des Usages TIC

□ à 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é

chiffrement données chiffrées déchiffrement


A B
Le chiffrement consiste alors à appliquer un algorithme avec la clé secrète sur les données à chiffrer.
Le déchiffrement se fait à l’aide de cette même clé secrète.

Remarques
La qualité d’un crypto système symétrique se mesure par rapport :
P-F. Bonnefoi — Sécurité des Usages TIC

⋆ à des propriétés statistiques des textes chiffrés ;

⋆ à la résistance aux classes d’attaques connues.

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

Deux types d’algorithmes


□ l’algorithme par bloc qui prend une longueur spécifiée de données comme entrée, et produit une longueur différente de données
chiffrées (exemple : DES, AES...)
□ l’algorithme en flux continu qui chiffre les données un bit à la fois (exemple : IDEA, CAST, RC4, SKIPjack...).
Avantages et inconvénients d’un crypto-système à clé symétrique
Le principal inconvénient provient de l’échange des clés qui doivent rester secrètes.
Pour être totalement sûr : les chiffrements à clés secrètes doivent utiliser des clés d’une longueur au moins égale à celle du
message à chiffrer : «One Time Pad» ou «Masque Jetable» appliqué à l’aide de l’opération binaire XOR sur les données à chiffrer.
En pratique : les clés ont une taille donnée, suffisante.
La plupart des codes utilisés sont relativement rapides et peuvent s’appliquer à un fort débit de donnée à transmettre.
P-F. Bonnefoi — Sécurité des Usages TIC

Il existe des processeurs spécialement concu pour réaliser le chiffrement et le déchiffrement.

Principaux algorithmes utilisés :


⊳ DES, «Data Encryption System», IBM 1977 ;
⊳ AES, «Advanced Encryption Standard», 2001 ;
⊳ IDEA, «International Data Encryption Algorithm», Lai et Massey 1990, brevé expiré en 2012 ;
⊳ Blowfish, Bruce Schneier, 1994.
Problème d’assurer la sécurité des clés
Problème de la distribution des clés qui doit se faire par un canal sûr.
Le chiffrement à clé symétrique : exemple le DES 31
Un standard de chiffrement
Développé dans les années 70 par IBM, la méthode DES fut adoptée et rendue standard par le gouvernement des Etats
Unis.

Il devait répondre à l’époque aux critères suivants :


⊳ avoir un haut niveau de sécurité lié à une clé de petite taille servant au chiffrement et au déchiffrement ;
⊳ être compréhensible ;
⊳ ne pas dépendre de la confidentialité de l’algorithme ;
⊳ être adaptable et économique ;
⊳ être efficace et exportable ;
Le DES est un standard utilisé depuis plus de 40 ans.

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 choix de cet algorithme répond à de nombreux critères tels que :


□ la sécurité ou l’effort requis pour une éventuelle cryptanalyse ;
□ la facilité de calcul : cela entraîne une grande rapidité de traitement ;
P-F. Bonnefoi — Sécurité des Usages TIC

□ les faibles besoins en ressources : mémoire très faibles ;


□ la flexibilité d’implémentation : cela inclut une grande variété de plates-formes et d’applications
ainsi que des tailles de clés et de blocs supplémentaires (il est possible d’implémenter l’AES aussi
bien sous forme logicielle que matérielle, câblé) ;

□ la simplicité : le design de l’AES est relativement simple ;


□ l’intégration matérielle dans l’électronique : intégration dans le processeur.
Et pour chiffrer des
données de taille importante en
chiffrement symétrique ?
P-F. Bonnefoi — Sécurité des Usages TIC
Le chiffrement par bloc pour le chiffrement symétrique : chaînage ou non ? 34

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

ECB : Electronic Codebook


Mode d’opération normal : il applique l’algorithme au texte clair en transformant normalement chaque bloc de texte clair.
□ T[n] = nième bloc de texte en clair. □ Chiffrement : C[n] = E(T[n])
P-F. Bonnefoi — Sécurité des Usages TIC

□ C[n] = nième bloc de texte chiffré. □ Déchiffrement : T[n] = D(C[n])


□ E(m) = fonction de chiffrement du bloc m. □ T et C sont d’une longueur fixe.
□ D(m) = fonction de déchiffrement du bloc m.

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

block cipher block cipher block cipher


Key Key Key
encryption encryption encryption

Ciphertext Ciphertext Ciphertext

Electronic Codebook (ECB) mode encryption


Déchiffrement
Ciphertext Ciphertext Ciphertext
P-F. Bonnefoi — Sécurité des Usages TIC

block cipher block cipher block cipher


Key Key Key
decryption decryption decryption

Plaintext Plaintext Plaintext

Electronic Codebook (ECB) mode decryption


Chiffrement par bloc : le mode ECB 36
Les limites du mode ECB
[Link]

L’original : Le chiffré :
P-F. Bonnefoi — Sécurité des Usages TIC

⟹ Mais que se cache-t-il derrière cette image chiffrée...


Le chiffrement par bloc pour le chiffrement symétrique 37
CBC : Cipher Block Chaining
C’est un des modes les plus populaires.
Il apporte une solution au premier problème du mode ECB :
⊳ avant d’être chiffré, l’opération binaire « XOR » est appliquée entre le bloc actuel de texte en clair et le bloc
précédent de texte chiffré ;
⊳ pour le tout premier bloc, un bloc de contenu aléatoire est généré et utilisé, appelé « vecteur d’initialisation
» (initialization vector, ou IV).
Ce premier bloc est envoyé tel quel avec le message chiffré.

□ T[n] = nième bloc de texte en clair. □ D(m) = fonction de déchiffrement du bloc m.


□ E(m) = fonction de chiffrement du bloc m. □ VI = vecteur d’initialisation
□ C[n] = nième bloc de texte chiffré.

Chiffrement C[0] = E(T[0] xor VI)


P-F. Bonnefoi — Sécurité des Usages TIC

C[n] = E(T[n] xor C[n-1]) , si (n > 0)

Déchiffrement T[0] = D(C[n]) xor VI


T[n] = D[C[n]) xor C[n-1] , si (n > 0)
T et C sont d’une longueur fixe

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

Question : quand est-ce que le chiffrement ECB et CBC sont identiques ?


Chiffrement par bloc : le mode CBC 38
Chiffrement
Plaintext Plaintext Plaintext

Initialization Vector (IV)

block cipher block cipher block cipher


Key Key Key
encryption encryption encryption

Ciphertext Ciphertext Ciphertext

Cipher Block Chaining (CBC) mode encryption


Déchiffrement
Ciphertext Ciphertext Ciphertext
P-F. Bonnefoi — Sécurité des Usages TIC

block cipher block cipher block cipher


Key Key Key
decryption decryption decryption

Initialization Vector (IV)

Plaintext Plaintext Plaintext

Cipher Block Chaining (CBC) mode decryption


Chiffrement par bloc : les modes différents d’ECB 39
Quand on n’utilise pas ECB...

L’original : Le chiffré :
P-F. Bonnefoi — Sécurité des Usages TIC

⟹ On obtient du bruit ou de l’aléas...


Et si on regardait la notion d’aléas ?
Transmission de l’Information
et
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

⊳ est-ce plus petit que N ?


Alice Bob ⊳ est-ce plus petit que G ?
⊳ est-ce plus petit que D ? 5 questions
26 lettres
⊳ est-ce D ?
1⟹Oui ⊳ est-ce E ? <N ?
11000 13 lettres
0⟹Non
P-F. Bonnefoi — Sécurité des Usages TIC

<G ? <T
F 6 lettres

⊳ Alice a choisi la lettre F ; <D ? <A


1 lettre
⊳ Bob lui pose plusieurs questions pour connaître la lettre qu’elle veut transmettre :
⋄ methode naïve : poser une question pour chaque lettre de l’alphabet à laquelle Alice D? E ? 2 lettres
réponds par 1, oui ou 0, non ;
⋄ méthode optimisée : découper l’espace de lettres ordonné en deux à chaque ques- non
non
tion et on cherche le nombre de questions nécessaires : ⟹c’est F !
⋆ on a 2nbre questions = 26, «binary digit»

⟹ 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

Imaginons transmettre des mots composés sur un alphabet de 26 lettres :


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
Pour construire un mot de 3 lettres, on a : 26 ∗ 26 ∗ 26 = 263 possibilités, c-à-d toutes les permutations possibles des
séquences de 3 symboles parmi un choix de 26.
Mesure de la quantité d’information
Une mesure de «l’information», ℎ, est :
ℎ = 𝑛 log(𝑠) = 𝑙𝑜𝑔(𝑠𝑛 ) où 𝑛 est la taille de la séquence et 𝑠 est le nombre de symboles utilisés pour la construire.
3
Pour des mots de 3 lettres, ℎ = 𝑙𝑜𝑔(26 ) = 41.2 (on peut utiliser le logarithme en base 2).

Mais transmet-on toutes les séquences possibles ?


Pour des mots appartenant à une langue :
A b o n
B c a r
C sélection symboles
.. l e s secondaires
P-F. Bonnefoi — Sécurité des Usages TIC

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

⊳ Comment construire le dictionnaire en fonction des données à transmettre ?


Construire le dictionnaire parfait pour ce message :
faire correspondre les séquences les plus fréquentes
à des séquences de caractères les plus courtes

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

⊳ Comment ne pas transmettre le dictionnaire ? Construire le dictionnaire :


⋄ au fur et à mesure de la lecture du message ;
⋄ simultanément sur l’émetteur et le récepteur :
⋆ le transmetteur envoi le message compressé en fonction du contenu courant du dictionnaire ;
⋆ le récepteur construit le dictionnaire en réalisant l’opération inverse et recompose le message.

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.

L’entropie mesure la prédictabilité d’un symbole connaissant les symboles précédents :


prédictible ?

x x x x x x x x ?
temps
symboles connus
P-F. Bonnefoi — Sécurité des Usages TIC

Si les symboles sont prédictibles :


⊳ il existe des séquences qui se reproduisent dans les données : de la redondance
⟹Il est possible de les trouver à l’aide d’une compression par dictionnaire et de les compresser ;
⊳ l’entropie est inférieure à la mesure d’information optimale ℎ = 𝑛 log(𝑠) = 𝑙𝑜𝑔(𝑠𝑛 ) quand 𝑛 vaut un, c-à-d log2 (𝑠) ;
Si les symboles sont imprédictibles :
⊳ il n’y a pas de redondance dans les données
⟹ elles ne sont pas compressables.
⊳ la mesure d’entropie est forte : elle est proche de ℎ = log2 (𝑠), (pour des octets : proche de ℎ = 8) ;
⊳ les données présentent des qualités de l’aléas ⟹ utilisation comme source d’aléas pour la cryptographie.
Mesurer l’entropie sous Linux 48
Utilisation de la commande ent
xterm La valeur calculée précédemmment
$ echo -n 'AAAABCDD' | ent
Entropy = 1.750000 bits per byte.

Optimum compression would reduce the size


of this 8 byte file by 78 percent.

Chi square distribution for 8 samples is 696.00, and randomly


would exceed this value less than 0.01 percent of the times.

Arithmetic mean value of data bytes is 66.1250 (127.5 = random).


Monte Carlo value for Pi is 4.000000000 (error 27.32 percent).
Serial correlation coefficient is 0.533981 (totally uncorrelated = 0.0).

Sur une séquence de caractère 0


xterm Entropie très mauvaise : tout est prédictible !
$ python3 -c "print('0'*100)" | ent
P-F. Bonnefoi — Sécurité des Usages TIC

Entropy = 0.080136 bits per byte.


super compressable parce que super redondant !
Optimum compression would reduce the size
of this 101 byte file by 98 percent.

Chi square distribution for 101 samples is 25248.07, and randomly


would exceed this value less than 0.01 percent of the times.

Arithmetic mean value of data bytes is 47.6238 (127.5 = random).


Monte Carlo value for Pi is 4.000000000 (error 27.32 percent).
Serial correlation coefficient is -0.010000 (totally uncorrelated = 0.0).
Mesurer l’entropie sous Linux 49
Sur un texte en français : «20000 lieues sous les mers» de Jules Vernes
xterm
$ wget [Link]
$ ent [Link]
Entropy = 4.637142 bits per byte. Entropie moyenne...texte littéraire
Optimum compression would reduce the size
of this 942654 byte file by 42 percent.

Chi square distribution for 942654 samples is 13540603.37, and randomly


would exceed this value less than 0.01 percent of the times.

Arithmetic mean value of data bytes is 93.5540 (127.5 = random).


Monte Carlo value for Pi is 3.994322413 (error 27.14 percent).
Serial correlation coefficient is 0.206601 (totally uncorrelated = 0.0).

Sur des valeurs dont l’aléas est garanti


xterm
$ head -c 1M /dev/urandom > random_values
$ ent random_values
P-F. Bonnefoi — Sécurité des Usages TIC

Entropy = 7.999806 bits per byte.


La compression est...nulle ! ⟹ pas de redondance !
Optimum compression would reduce the size
of this 1048576 byte file by 0 percent. C’est quoi cette méthode de «Monte-Carlo» ?
Chi square distribution for 1048576 samples is 280.76, and randomly
would exceed this value 12.84 percent of the times.

Arithmetic mean value of data bytes is 127.4810 (127.5 = random).


Monte Carlo value for Pi is 3.137386846 (error 0.13 percent).
Serial correlation coefficient is 0.000769 (totally uncorrelated = 0.0).

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

Soit un cercle de rayon 𝑟 = 0.5, sa surface est de 𝜋 ∗ 𝑟 2 = 𝜋4


:
Ce cercle est inclus dans un carré de côté 1.
La surface du carré est égale à : (2 ∗ 𝑟)2 = 1 ∗ 1 = 1.
x 𝜋
Le rapport entre la surface du cercle et celle du carré est de 4

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

Pour un point 𝑝 = (𝑥, 𝑦) :


x (.9,.1) à l’extérieur
⊳ 𝑝 est dans le cercle si la distance entre le centre (0.5, 0.5) du cercle
et 𝑝 est inférieure ou égale à 0.5, c-à-d √(𝑥 − .5)2 + (𝑦 − .5)2 ≤ 0.5
1
P-F. Bonnefoi — Sécurité des Usages TIC

Pour chaque tirage aléatoire d’un point 𝑝 :


⊳ on ajoute 1 au nombre total 𝑇 de points tirés au hasard ;
⊳ si le point est à l’intérieur du cercle, alors on incrémente le nombre 𝐶 de points à l’intérieur du cercle ;
aire cercle 𝜋𝑟 2 𝜋
La probabilité pour qu’un point choisi au hasard appartienne au cercle est aire carré
= = 4
4𝑟 2
Si les points𝑝 sont choisis de manière aléatoire (distribution uniforme) alors le rapport entre 𝐶 est 𝑇
𝜋 𝐶
est une approximation de notre probabilité, qui tend vers 4 . Ce qui donne : 𝜋 = 4 𝑇
⟹Connaissant la valeur de 𝜋, on peut juger de la qualité d’une séquence aléatoire par l’approxima-
6
tion de 𝜋 qu’elle fournit (10 points donne une approximation correcte de 𝜋 sur deux décimales).
Mesure de l’entropie 51
Et sur un chiffré ?
xterm
$ python3 -c 'print("0"*10000)' | openssl enc -aes-128-cbc -e -K 00 -iv 00 | ent
hex string is too short, padding with zero bytes to length
hex string is too short, padding with zero bytes to length clé à 00...00
Entropy = 7.982667 bits per byte.

Optimum compression would reduce the size


IV à 00...00
of this 10016 byte file by 0 percent.

Chi square distribution for 10016 samples is 240.36, and randomly


would exceed this value 73.62 percent of the times.

Arithmetic mean value of data bytes is 127.0628 (127.5 = random).


Monte Carlo value for Pi is 3.209107250 (error 2.15 percent).
Serial correlation coefficient is 0.008944 (totally uncorrelated = 0.0).

⟹Le chiffrement produit de l’aléas !


xterm
python3 -c 'print("0"*1000000)' | openssl enc -aes-128-cbc -e -K 00 -iv 00 | ent
hex string is too short, padding with zero bytes to length
P-F. Bonnefoi — Sécurité des Usages TIC

hex string is too short, padding with zero bytes to length


Entropy = 7.999813 bits per byte.

Optimum compression would reduce the size


of this 1000016 byte file by 0 percent.

Chi square distribution for 1000016 samples is 258.70, and randomly


would exceed this value 42.36 percent of the times.

Arithmetic mean value of data bytes is 127.4386 (127.5 = random).


Monte Carlo value for Pi is 3.146331951 (error 0.15 percent).
Serial correlation coefficient is 0.000601 (totally uncorrelated = 0.0).

Avec un million de caractères, l’approximation de 𝜋 devient correcte pour deux décimales...


Utilisation de l’entropie pour retrouver un élément cryptographique 52
Soit le programme suivant réalisant du chiffrement AES 256, à l’aide de la bibliothèque openSSL :
1 #include <openssl/conf.h>
2 #include <sys/types.h>
3 #include <unistd.h>
4 #include <openssl/evp.h>
5 #include <openssl/err.h>
6 #include <string.h>
7
8
9 void handleErrors(void)
10 {
11 ERR_print_errors_fp(stderr);
12 abort();
13 }
14
15 int encrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key,
16 unsigned char *iv, unsigned char *ciphertext)
17 {
18 EVP_CIPHER_CTX *ctx;
19 int len;
20 int ciphertext_len; Chiffrement en AES 256 CBC
21
22 if(!(ctx = EVP_CIPHER_CTX_new())) handleErrors();
P-F. Bonnefoi — Sécurité des Usages TIC

23 if(1 != EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv)) handleErrors();


24
25 if(1 != EVP_EncryptUpdate(ctx, ciphertext, &len, plaintext, plaintext_len)) handleErrors();
26 ciphertext_len = len;
27
28 if(1 != EVP_EncryptFinal_ex(ctx, ciphertext + len, &len)) handleErrors();
29 ciphertext_len += len;
30
31 EVP_CIPHER_CTX_free(ctx);
32
33 return ciphertext_len;
34 }
Utilisation de l’entropie pour retrouver un élément cryptographique 53

36 int main (void)


37 { Une clé sur 256 bits, 32 octets.
38 /* A 256 bit key */
39 unsigned char *key = (unsigned char *)"01234567890123456789012345678901";
40
41 /* A 128 bit IV */
42 unsigned char *iv = (unsigned char *)"0123456789012345";
43 En mode CBC on a besoin d’un IV
44 /* Message to be encrypted */
45 unsigned char *plaintext = (unsigned char *)"The quick brown fox jumps over the lazy dog";
46
47 unsigned char ciphertext[128]; le clair à chiffrer
48
49 int ciphertext_len;
50
51 ciphertext_len = encrypt (plaintext, strlen ((char *)plaintext), key, iv, ciphertext);
52
53 printf("Ciphertext is:\n");
54 BIO_dump_fp (stdout, (const char *)ciphertext, ciphertext_len);
55
56 printf("PID %d\n",getpid()); obtenir le PID
57 getchar();
P-F. Bonnefoi — Sécurité des Usages TIC

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 $<

all: program le PID affiché par le programme

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

Elle est localisée dans le «coredump» vers le décalage 0x8cca0.


Utilisation de l’entropie pour retrouver un élément cryptographique 55

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 peut également utiliser l’outil «binwalk» :


xterm
$ binwalk -E core.19004
P-F. Bonnefoi — Sécurité des Usages TIC

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

Pour le premier bloc de texte clair, on génère un vecteur d’initialisation.


□ T[n] = nième bloc de texte clair. □ E(m) = fonction de chiffrement du bloc m
□ I[n] = nième bloc temporaire □ VI = vecteur d’initialisation
□ C[n] = nième bloc de texte chiffré.

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

Pour le chiffrement et le déchiffrement on utilise la même fonction E(m).


Cela permet d’utiliser que la fonction de chiffrement qui peut être plus rapide que la fonction de déchiffrement.
Chiffrement par bloc : le mode CFB 62
Chiffrement
Initialization Vector (IV)

block cipher block cipher block cipher


Key Key Key
encryption encryption encryption

Plaintext Plaintext Plaintext

Ciphertext Ciphertext Ciphertext

Cipher Feedback (CFB) mode encryption


Déchiffrement
Initialization Vector (IV)
P-F. Bonnefoi — Sécurité des Usages TIC

block cipher block cipher block cipher


Key Key Key
encryption encryption encryption

Ciphertext Ciphertext Ciphertext

Plaintext Plaintext Plaintext

Cipher Feedback (CFB) mode decryption


Le chiffrement par bloc pour le chiffrement symétrique 63
OFB : Output Feedback
Le mode OFB est une solution aux deux problèmes relatifs au mode ECB :
⊳ au départ un vecteur d’initialisation est généré ;
⊳ ce bloc est chiffré successivement et chacun des résultats est utilisé dans l’application de l’opération XOR avec un bloc de texte
en clair.
Le vecteur d’initialisation est envoyé tel quel avec le message chiffré.

□ T[n] = nième bloc de texte en clair. □ I[n] = nième bloc temporaire


□ C[n] = nième bloc de texte chiffré. □ R[n] = nième bloc temporaire second
□ E(m) = fonction de chiffrement du bloc m □ VI = vecteur d’initialisation
Chiffrement I[0] = VI
I[n] = R[n-1] , si (n > 0)
R[n] = E(I[n])
C[n] = T[n] xor R[n]

Déchiffrement I[0] = VI
I[n] = R[n-1] , si (n > 0)
P-F. Bonnefoi — Sécurité des Usages TIC

R[n] = E(I[n]) T[n] = C[n] ^ R[n]


T et C sont d’une longueur fixe

Problèmes :
⊳ le texte en clair est seulement soumis à un XOR.
Si le texte clair est connu, un tout autre texte en clair peut être substitué en inversant les bits du texte chiffré de la même
manière qu’inverser les bits du texte clair : bit-flipping attack.
⊳ il existe une 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)

block cipher block cipher block cipher


Key Key Key
encryption encryption encryption

Plaintext Plaintext Plaintext

Ciphertext Ciphertext Ciphertext

Output Feedback (OFB) mode encryption


Déchiffrement
Initialization Vector (IV)
P-F. Bonnefoi — Sécurité des Usages TIC

block cipher block cipher block cipher


Key Key Key
encryption encryption encryption

Ciphertext Ciphertext Ciphertext

Plaintext Plaintext Plaintext

Output Feedback (OFB) mode decryption


Chiffrement par bloc : le mode OFB & l’attaque par «bit-flipping» 65

XOR Calculator XOR Calculator


Thanks for using the calculator. View help page. Thanks for using the calculator. View help page.

I. Input: ASCII (base 256) I. Input: ASCII (base 256)

payer 600 6

II. Input: ASCII (base 256) II. Input: ASCII (base 256)

9
Séquence OFB 123456789

Calculate XOR Calculate XOR

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

I. Input: hexadecimal (base 16) I. Input: hexadecimal (base 16)

41534a514716010809 41534a5147160e0809

II. Input: hexadecimal (base 16) II. Input: ASCII (base 256)

Attaque f0000 Déchiffrement 123456789

Calculate XOR Calculate XOR


III. Output: hexadecimal (base 16) III. Output: ASCII (base 256)

41534a5147160e0809 Attaque réussie ! payer 900

Home Help Privacy Home Help Privacy


Réseau de Feistel : propriétés du 𝑥𝑜𝑟 pour définir un cryptosystème 66

Chiffrement & Déchiffement □ D et G : séquences de bits de même taille 𝑛 ;


taille 𝑛 bits taille 𝑛 bits
□ F : fonction entrée 𝑛 bits et sortie 𝑛 bits
G D 𝐹 : {𝑛 𝑏𝑖𝑡𝑠} ↦ {𝑛 𝑏𝑖𝑡𝑠} ;
𝑥𝑜𝑟 □ ⋄ chiffrement : application du réseau de Feistel ;
retourne 𝑛bits
⋄ déchiffrement : application du même réseau de Feistel ;
⊕ F
□ le réseau de Feistel est extensible :
𝐷 𝐺

⊕ 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

G D 𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷)) 𝐺 ⊕ 𝐹(𝐷)


𝑥𝑜𝑟
retourne 𝑛bits 𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷)) retourne 𝑛bits
⊕ F ⊕𝐹(𝐺 ⊕ 𝐹(𝐷)) ⊕ F

𝐷 𝐺 ⊕ 𝐹(𝐷) 𝐺 ⊕ 𝐹(𝐷) 𝐷

𝐺 ⊕ 𝐹(𝐷)
⊕ F ⊕𝐹(𝐷) ⊕ F
P-F. Bonnefoi — Sécurité des Usages TIC

𝐺 ⊕ 𝐹(𝐷) 𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷)) 𝐷 𝐺

𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷)) 𝐺 ⊕ 𝐹(𝐷) 𝐺 𝐷


Réseau de Feistel : utilisation du chiffrement symétrique 68

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

𝐺 ⊕ 𝐹(𝐷, 𝑘1 ) 𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷, 𝑘1 ), 𝑘2 ) 𝐷 𝐺

𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷, 𝑘1 ), 𝑘2 ) 𝐺 ⊕ 𝐹(𝐷, 𝑘1 ) 𝐺 𝐷


Réseau de Feistel : utilisation du chiffrement symétrique 69

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

𝐺 ⊕ 𝐹(𝐷, 𝑘1 ) 𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷, 𝑘1 ), 𝑘2 ) 𝐷 𝐺

𝐷 ⊕ 𝐹(𝐺 ⊕ 𝐹(𝐷, 𝑘1 ), 𝑘2 ) 𝐺 ⊕ 𝐹(𝐷, 𝑘1 ) 𝐺 𝐷


Le chiffrement par bloc pour le chiffrement symétrique 70
CTR : counter mode
Ce mode est utilisé lorsque l’on veut envoyer de manière chiffrée des paquets de données autonomes
qui peuvent être perdus : un paquet perdu doit pouvoir être reconstruit et réémis.

C’est un mode utilisant :


⊳ un compteur qui est mis à jour à chaque nouveau paquet émis : il peut être connu de tous ;
⊳ un nonce, «number used once» : ce nombre peut être également connu de tous, il doit être unique
et associé à une seule séquence de paquets ;
⊳ un changement du nonce lorsqu’il est nécessaire de réinitialiser le compteur.
Il n’y a pas de lien direct entre le chiffrement d’un bloc et du bloc suivant : le lien est réalisé par une
valeur de nonce et de clé de chiffrement commun.
□ T[n] = nième bloc de texte en clair. □ Nonce une valeur utilisée une seule fois (aléa-
□ C[n] = nième bloc de texte chiffré. toire)
P-F. Bonnefoi — Sécurité des Usages TIC

□ E(m) = fonction de chiffrement □ Cmpt numéro du paquet


□ I[n] = nième bloc temporaire
Chiffrement I[n] = E(Nonce,Cmpt)
C[n] = T[n] xor I[n]

Déchiffrement I[n] = E(Nonce,Cmpt)


T[n] = C[n] xor I[n]
T et C sont d’une longueur fixe
Chiffrement par bloc : le mode CTR 71
Chiffrement
Nonce Counter Nonce Counter Nonce Counter
c59bcf35… 00000000 c59bcf35… 00000001 c59bcf35… 00000002

block cipher block cipher block cipher


Key Key Key
encryption encryption encryption

Plaintext Plaintext Plaintext

Ciphertext Ciphertext Ciphertext

Counter (CTR) mode encryption


Déchiffrement
Nonce Counter Nonce Counter Nonce Counter
c59bcf35… 00000000 c59bcf35… 00000001 c59bcf35… 00000002
P-F. Bonnefoi — Sécurité des Usages TIC

block cipher block cipher block cipher


Key Key Key
encryption encryption encryption

Ciphertext Ciphertext Ciphertext

Plaintext Plaintext Plaintext

Counter (CTR) mode decryption


Et le chiffrement «à la volée»
ou bien de données en continue
(comme un flux de communication) ?
P-F. Bonnefoi — Sécurité des Usages TIC
Le chiffrement par flux 73
Définition
Les algorithmes de chiffrement par flux, «stream ciphers», peuvent être vu comme des algorithmes de chiffrement par
bloc où le bloc a une dimension unitaire (1 bit, 1 octet...) ou relativement petite.
Avantages :
∘ la méthode de chiffrement peut être changée à chaque symbole du texte clair ;
∘ ils sont extrêmement rapides ;
∘ ils ne propagent pas les erreurs (diffusion) dans un environnement où les erreurs sont fréquentes ;
∘ ils sont utilisables lorsque l’information ne peut être traitée qu’avec de petites quantités de symboles à la fois (par
exemple si l’équipement n’a pas de mémoire physique ou une mémoire tampon très limitée).
Fonctionnement
Ils appliquent de simples transformations selon un keystream utilisé (opération xor par exemple).
Le keystream est une séquence de bits utilisée en tant que clé qui est générée aléatoirement par un algorithme
(keystream generator) et dont les paramètres sont échangés de manière sécurisée.
Propriétés : Avec un keystream choisi aléatoirement et utilisé qu’une seule fois, le texte chiffré est très sécurisé.
La génération du keystream peut être :
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

Le «new kid on the block»


□ utilisation de AES-CTR ;
□ ChaCha20 de Daniel J. Bernstein proposé en 2008 est un PRNG. Il est souvent associé à Poly1305 proposé en 2004.
P-F. Bonnefoi — Sécurité des Usages TIC

Les limites du chiffrement symétrique


Les limites de la cryptographie Symétrique 76
La multiplication des clés
Pour établir un canal de communication entre deux individus :
– Il faut qu’il soit chiffré avec une clé partagée entre les deux individus ;
– Il est ainsi confidentiel pour ceux qui ne possède pas la clé de chiffrement.

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

Bob Cédric Alice

clé secrète clé secrète


P-F. Bonnefoi — Sécurité des Usages TIC

message chiffré par Bob message chiffré par Cédric


Message Message
(modifié par Cédric)
Bob chiffre le message Cédric intercepte le message, le modifie,
1 à destination d’Alice 2 et le chiffre à nouveau avec la 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

dépose sa clé publique


P-F. Bonnefoi — Sécurité des Usages TIC

clé privée
clé publique père
récu de
de
B B

chiffrement données chiffrées déchiffrement


A B
L’idée de la conception de tels algorithmes revient à Diffie et Hellman en 1976.
Utilisation pour des échanges par réseau 80
Échange par réseau
Un objectif de la cryptographie est de permettre à deux personnes, Alice et Bob, de communiquer
au travers d’un canal peu sûr (téléphone, réseau informatique ou autre), sans qu’un opposant Cédric,
puisse comprendre ce qui est échangé.

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 ;

□ Alice envoi le texte chiffré au travers du canal de communication ;


□ Cédric, qui espionne peut-être le canal, ne peut reconstituer l’information, contrairement à Bob
P-F. Bonnefoi — Sécurité des Usages TIC

qui dispose de la clé privée pour déchiffrer le cryptogramme.


Chiffrement asymétrique 81
Construction des clés
Les utilisateurs (A et B) choisissent une clé aléatoire dont ils sont seuls connaisseurs (il s’agit de la clé
privée).
A partir de cette clé, ils déduisent chacun automatiquement par un algorithme la clé publique.
Les utilisateurs s’échangent cette clé publique au travers d’un canal non sécurisé.
Chiffrement d’un message
Lorsqu’un utilisateur désire envoyer un message à un autre utilisateur, il lui suffit de chiffrer le message
à envoyer au moyen de la clé publique du destinataire (qu’il trouvera par exemple dans un serveur de
clés tel qu’un annuaire ou bien en signature d’un courrier électronique).
Le destinataire sera en mesure de déchiffrer le message à l’aide de sa clé privée (qu’il est seul à
connaître).
Rapports entre les clés
P-F. Bonnefoi — Sécurité des Usages TIC

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 peut lire le contenu du message envoyé par Alice !


Chiffrement asymétrique : une métaphore avec des cadenas et des valises83
Des clé et des cadenas
Alice :
⊳ crée une clé aléatoire (la clé privée) ;
⊳ puis fabrique un grand nombre de cadenas (clé publique) qu’elle met à
disposition dans un casier accessible par tous (le casier joue le rôle de
canal de communication non sécurisé).
Alice

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

⊳ envoi la valise à Alice, propriétaire de la clé publique (le cadenas).


Cette dernière pourra ouvrir le cadenas et la valise avec sa clé privée.
Chiffrement asymétrique 84
Les contraintes pour un tel algorithme
Il faut trouver un couple de fonctions 𝒇 (fonction unidirectionnelle) et 𝒈 (fonction de «backdoor») :
C’est un problème mathématique difficile !
Au départ, le système à clé publique n’a d’abord été qu’une idée dont la faisabilité restait à démontrer.

Des algorithmes ont été proposés par des mathématiciens


Un des premiers algorithmes proposé repose sur la factorisation du produit de deux grands nombres
entiers.
Suivant la taille des nombres, cette factorisation peut demander un temps de calcul de plusieurs années :
le problème est résolu !

Cet algorithme a été proposé par Rivest, Shamir et


Adleman en 1977, ce qui a donné naissance à RSA.
P-F. Bonnefoi — Sécurité des Usages TIC

L’idée générale est la suivante :


⊳ la fonction 𝑓 est l’exponentiation modulaire ;
⊳ la clé publique est la valeur 𝑐 utilisée en combi-
naison avec le produit 𝑛 de deux grands nombres
entiers ;
⊳ la clé privée est la valeur 𝑧 ;
⊳ 𝑔 consiste en la factorisation de 𝑛.
Seul Bob, qui connaît 𝑧 et 𝑔 peut déchiffrer le message chiffré.
Chiffrement : trouver une opération facile à réaliser mais dure à inverser 85
Les nombres modulaires : 𝒙 𝐦𝐨𝐝 𝒑
Il est 0h ou 12h : on tourne de 46h autour du cadran... Et si on utilise un nombre premier, comme
On fait 3 tours : 3 ∗ 12 = 36 17, à la place de 12 ?
12
11 1
plus 46 − 36 = 10 h
10 2 16 17 1
15 2
9 3 14 3
12 13 4
8 4 11 1
12 5
7 5 10 2
6 11 6
9 3 10 7
9 8

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 !

⟹ pourquoi ne pas s’en inspirer pour définir un crypto-système ?


Chiffrement : trouver une opération facile à réaliser mais dure à inverser 86
Pour différents nombres premiers : 17, 23, 29, 31, 37, ...

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

On vérifie le «caractère aléatoire» des résultats de l’exponentiation modulaire : On recommence

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)

⊳ Théorème d’Euler : 𝑚𝑘∗Φ(𝑛)+1 = 𝑚 mod 𝑛


𝑘∗Φ(𝑛)+1
On essaye de trouver 𝑒 ∗ 𝑑 = 𝑘 ∗ Φ(𝑛) + 1, soit 𝑑 = 𝑒 ,

⟹ d’où notre cryptosystème : message𝑒 mod 𝑛 = chiffré et chiffré𝑑 mod 𝑛 = message


Chiffrement asymétrique : clé publique et clé privée 89
Chiffrement
Alice prépare ses valeurs : Alice partage avec Bob : Bob veut envoyer un message à Alice :
𝑝1 = 53 𝑛 = 3127 𝑚 = 89 où 89 correspond à une lettre
𝑝2 = 59 le module de l’alphabet par exemple ;
𝑒=3 clé publique
𝑛 = 53 ∗ 59 = 3127
Il calcule :
Φ(𝑛) = 52 ∗ 58 = 3016 et conserve secrétement :
𝑚𝑒 mod 𝑛 ⟹ 893 mod 3127 = 1394
𝑒=3 𝑛 = 3127
et transmets à Alice la valeur 𝑚′ =
𝑑 = 2∗(3016)+1
3
= 2011 𝑑 = 2011 clé privée
1394
Déchiffrement
Alice reçoit 𝑚′ = 1394. Un attaquant obtenant les valeurs
Elle calcule : 𝑛 = 3127, 1394 et 𝑒 = 3
13942011 mod 3127 = 89 doit calculer Φ(3127) pour trouver 𝑑
et retrouve le message 𝑚 de Bob ! Ce qui lui prendrait trop de temps pour 𝑛 très grand !
𝑚 𝑒 𝑚
P-F. Bonnefoi — Sécurité des Usages TIC

𝑚 = 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 𝑑...

(𝑚𝑒 )𝑑 mod 𝑛 = 𝑚𝑒∗𝑑 mod 𝑛 = 𝑚𝑑∗𝑒 mod 𝑛 = (𝑚𝑑 )𝑒 = 𝑚

𝑚 𝑚𝑒 𝑚 𝑒𝑚
𝑒 𝑑 𝑚′ 𝑑 𝑚" 𝑑
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

Et les «Courbes elliptiques ?»


Courbes elliptiques : 𝑦2 = 𝑥 3 + 𝑎𝑥 + 𝑏 92

Addition : 𝑦 𝐸 Multiplier par 2 : 𝑦 𝐸

𝑄 −𝑅 𝑃
𝑃
𝑥 𝑥

𝑃+𝑄
𝑃 + 𝑃 = 2𝑃

«Multiplier» par 3 : 𝑦 𝐸 etc. 𝑦 𝐸


𝑃
P-F. Bonnefoi — Sécurité des Usages TIC

𝑃 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

⊳ plus la taille du module 𝑝 est grande, plus le domaine 𝔽𝑝 est important ;


⊳ la distribution des points semble aléatoire et recouvre la surface de manière régulière ;
⊳ Notion de groupe :
⋄ les points appartenant à la courbe elliptique définie sur 𝔽𝑝 définissent un groupe :
⋆ l’addition d’un point avec un autre et la multiplication scalaire donnent, chacune, un point appartenant à
cet ensemble ;
⋄ le nombre de points appartenant à ce groupe définit l’ordre du groupe ;
Exemple : pour 𝑦2 ≡ 𝑥 3 + 2𝑥 + 3 mod 11 on dénombre 12 points, et 17 points pour 𝑦2 ≡ 𝑥 3 + 2𝑥 + 3 mod 13.
Courbe elliptiques sur domaine fini 94

⊳ en utilisant un nombre premier comme module, on obtient des propriétés intéressantes :


⋄ pour un point 𝑃, on observe des cycles :
Pour la courbe 𝑦2 ≡ 𝑥 3 + 2𝑥 + 3 mod 97 définie sur le 0
domaine fini 𝔽𝑝 où 𝑝 = 97 :
⋆ 0𝑃 = 0
0P
⋆ 1𝑃 = (3, 6)
(3,91) (3,6)
⋆ 2𝑃 = (80, 10) 4P 1P
⋆ 3𝑃 = (80, 87)
⋆ 4𝑃 = (3, 91)
⋆ 5𝑃 = 0
3P 2P
⋆ 6𝑃 = (3, 6)
... (80,87) (80,10)
On remarque que :
⋆ on a définit un sous groupe de notre domaine 𝔽𝑝 : les autres points de la courbe elliptique n’apparaissent
P-F. Bonnefoi — Sécurité des Usages TIC

pas dans le cycle ;


⋆ on observe que 5𝑘𝑃 = 0, (5𝑘 + 1)𝑃 = 𝑃, (5𝑘 + 2)𝑃 = 2𝑃, ..., (5𝑘 + 4)𝑃 = 4𝑃 et (5𝑘 + 5)𝑃 = 0
⟹ on déduit que 𝑘𝑃 = (𝑘 mod 5)𝑃 ; 𝑃 est appelé «générateur» du sous-groupe, 5 est l’ordre du sous-groupe.
⟹ Et si on choisissait pour notre problème connaissant 𝑃 et 𝑄, peut on trouver 𝑘 tel que 𝑄 = 𝑘𝑃 en utilisant un sous-
groupe comme vu plus haut ?
⟹ on arrive au problème du «logarithme discret» car l’ensemble des points du sous-group est fini.
⟹ dans RSA on utilisait l’exponentiation modulaire, en ECC on utilise la multiplication scalaire sur un domaine fini
(sous-groupe cyclique) ;
⟹ le problème est plus dur dans ECC que dans RSA ⟹ la taille des clés peut être plus petite pour une difficulté
similaire !
Courbes elliptiques 95

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

e. Chiffrement symétrique vs Chiffrement asymétrique

Chiffrement symétrique Chiffrement asymétrique


Avantages
• Rapidité des opérations (adapté • Facilité d’échange des clés : les
à du trafic en temps réel) ; seules clés qui ont besoin d’être
échangées sont des clés
• Clés courtes (256 bits suffisent publiques (dont il faut assurer la
actuellement) ; protection en intégrité) ;
Inconvénients
P-F. Bonnefoi — Sécurité des Usages TIC

• Difficulté d’échange sécurisé des • Lenteur des opérations (peu


clés secrètes : comment le faire adapté à du trafic en temps réel) ;
en protégeant ce secret ? • Grande taille des clés (2048 bits
minimum actuellement) ;
Exemples d’algorithmes sûrs (janvier 2015)
• AES. • RSA.

21/09/2015 Sensibilisation et initiation à la cybersécurité 53


Chiffrement asymétrique 98
Un dernier problème pour la route…
Le système de chiffrement à clé publique est universel si chacun publie sa clé publique dans un
annuaire.
Pour envoyer un message chiffré à Bob, il suffit de trouver sa clé publique dans l’annuaire et de s’en
servir pour chiffrer le message avant de le lui envoyer (seul Bob pourra déchiffrer le message).
Il faut bien sûr que l’annuaire soit sûr.

Oscar peut avoir substitué sa propre clé publique à


celle de Bob afin de pouvoir lire les messages desti-
nés à Bob.

Il peut même les renvoyer à Bob une fois lu !

Ce qui empêche Bob de s’en rendre compte et de


P-F. Bonnefoi — Sécurité des Usages TIC

changer sa bi-clé, et d’en informer Alice.


Chiffrement asymétrique : application à l’authentification 99
Propriété unique de RSA
L’algorithme a la propriété spéciale suivante :
chiffrement(déchiffrement(𝑀)) = déchiffrement(chiffrement(𝑀))
C’est-à-dire que l’utilisation de sa clé privée pour chiffrer un message 𝑀 permet de construire un mes-
sage 𝑀 ′ qui peut être déchiffré par sa clé publique...ainsi il est possible de prouver que l’on dispose
de la clé privée associée à la clé publique !

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 bibliothèque purement logicielle :


xterm
pef@cube:~$ openssl speed aes-128-cbc
Doing aes-128 cbc for 3s on 16 size blocks: 16488826 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 64 size blocks: 4564896 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 256 size blocks: 1167784 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 1024 size blocks: 294818 aes-128 cbc's in 3.00s
Doing aes-128 cbc for 3s on 8192 size blocks: 36948 aes-128 cbc'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 cbc 87940.41k 97384.45k 99650.90k 100631.21k 100892.67k

É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

du processeur Intel pour réaliser le chiffrement :


xterm
pef@cube:~$ openssl speed -evp aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 137314812 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 37526222 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 9621612 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 2410345 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 303188 aes-128-cbc'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-cbc 732345.66k 800559.40k 821044.22k 822731.09k 827905.37k

On note une accélération ∗8 des performances !


Chiffrement RSA vs AES 103

Il n’y a pas de chiffrement par bloc avec RSA.


xterm
pef@cube:~$ openssl speed rsa
Doing 512 bit private rsa's for 10s: 150169 512 bit private RSA's in 9.99s
Doing 512 bit public rsa's for 10s: 2774703 512 bit public RSA's in 10.00s
Doing 1024 bit private rsa's for 10s: 69193 1024 bit private RSA's in 10.00s
Doing 1024 bit public rsa's for 10s: 1160767 1024 bit public RSA's in 10.00s
Doing 2048 bit private rsa's for 10s: 10641 2048 bit private RSA's in 10.00s
Doing 2048 bit public rsa's for 10s: 369236 2048 bit public RSA's in 10.00s
Doing 4096 bit private rsa's for 10s: 1584 4096 bit private RSA's in 10.00s
Doing 4096 bit public rsa's for 10s: 103756 4096 bit public RSA's in 10.00s
OpenSSL 1.0.2g 1 Mar 2016
sign verify sign/s verify/s
rsa 512 bits 0.000067s 0.000004s 15031.9 277470.3
rsa 1024 bits 0.000145s 0.000009s 6919.3 116076.7
rsa 2048 bits 0.000940s 0.000027s 1064.1 36923.6
rsa 4096 bits 0.006313s 0.000096s 158.4 10375.6

La vérification est bien plus rapide que la signature !

Utilisation du mode «OFB» en utilisation du jeu d’instruction dédié du processeur :


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

La signature est bien plus rapide que la vérification !


Chiffrement RSA vs ECC 105

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

sign verify sign/s verify/s


rsa 512 bits 0.000071s 0.000004s 14110.0 263188.2
rsa 1024 bits 0.000151s 0.000009s 6621.8 109754.4
rsa 2048 bits 0.001004s 0.000027s 996.5 36519.8
rsa 3072 bits 0.002901s 0.000059s 344.7 17015.0
rsa 4096 bits 0.006388s 0.000100s 156.5 9971.1
rsa 7680 bits 0.059349s 0.000333s 16.8 3004.1
rsa 15360 bits 0.312727s 0.001290s 3.2 775.4

La vérification est bien plus rapide que la signature !


Évaluation du chiffrement symétrique : débit 106
Soit le script suivant :
1 #!/bin/bash
2
3 CIPHER=$1
4
5 if [ -n "$1" ]; then
6 echo "Vitesse de création de 700Mo de données sans sauvegarde"
7 dd if=/dev/zero bs=1m count=700 | pipebench > /dev/null
8 echo "Enregistrement de 700Mo dans le fichier clair"
9 dd if=/dev/zero bs=1m count=700 | pipebench > clair
10 echo "Chiffrement $CIPHER sans sauvegarde"
11 cat clair | openssl enc -e -$CIPHER -pass pass:toto | pipebench > /dev/null
12 echo "Chiffrement $CIPHER dans le fichier chiffre-$CIPHER"
13 cat clair | openssl enc -e -aes-128-cbc -pass pass:toto | pipebench > chiffre-$CIPHER
14 echo "Déchiffrement sans sauvegarde"
15 cat chiffre-$CIPHER | openssl enc -d -$CIPHER -pass pass:toto | pipebench > /dev/null
16 echo "Déchiffrement dans le fichier dechiffre-$CIPHER"
17 cat chiffre-$CIPHER | openssl enc -d -aes-128-cbc -pass pass:toto | pipebench > dechiffre-$CIPHER
18 fi

⊳ 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

⊳ ligne 11 : on chiffre sans sauvegarder⟹ pas d’influence du débit du disque dur ;


⊳ ligne 13 : on chiffre avec sauvegarde pour permettre l’évaluation du déchiffrement ;
⊳ ligne 15 : on déchiffre sans sauvegarde ;
⊳ ligne 17 : on déchiffre avec sauvegarde ;
Évaluation du chiffrement symétrique : débit 107
AES-128 en mode CBC
xterm
pef@darkstar-8:/Users/pef/tmp/CIPHER~: cipher_test aes-128-cbc
Vitesse de création de 700Mo de données sans sauvegarde
700+0 records in00.00 MB 518.75 MB/second (Mon Feb 5 [Link] 2018)
700+0 records out
734003200 bytes transferred in 0.235985 secs (3110380209 bytes/sec)
Summary:
Piped 700.00 MB in 00h00m00.23s: 2.92 GB/second

Enregistrement de 700Mo dans le fichier clair


700+0 records in99.21 MB 671.09 MB/second (Mon Feb 5 [Link] 2018)
700+0 records out
734003200 bytes transferred in 0.974389 secs (753295801 bytes/sec)
Summary:
Piped 700.00 MB in 00h00m00.93s: 749.26 MB/second

Chiffrement aes-128-cbc sans sauvegarde


Summary:
Piped 700.00 MB in 00h00m01.06s: 658.30 MB/second
P-F. Bonnefoi — Sécurité des Usages TIC

Chiffrement aes-128-cbc dans le fichier chiffre-aes-128-cbc


Summary:
Piped 700.00 MB in 00h00m01.62s: 429.77 MB/second

Déchiffrement sans sauvegarde


Summary:
Piped 700.00 MB in 00h00m00.37s: 1.81 GB/second

Déchiffrement dans le fichier dechiffre-aes-128-cbc


Summary:
Piped 700.00 MB in 00h00m01.33s: 526.09 MB/second

Le déchiffrement est bien plus rapide que le chiffrement !


Évaluation du chiffrement symétrique : débit 108
AES-128 en mode OFB
xterm
pef@darkstar-8:/Users/pef/tmp/CIPHER~: cipher_test aes-128-ofb
Vitesse de création de 700Mo de données sans sauvegarde
700+0 records in00.00 MB 332.03 MB/second (Mon Feb 5 [Link] 2018)
700+0 records out
734003200 bytes transferred in 0.239618 secs (3063221490 bytes/sec)
Summary:
Piped 700.00 MB in 00h00m00.23s: 2.88 GB/second

Enregistrement de 700Mo dans le fichier clair


700+0 records in99.21 MB 513.28 MB/second (Mon Feb 5 [Link] 2018)
700+0 records out
734003200 bytes transferred in 1.136870 secs (645635174 bytes/sec)
Summary:
Piped 700.00 MB in 00h00m01.08s: 642.22 MB/second

Chiffrement aes-128-ofb sans sauvegarde


Summary:
Piped 700.00 MB in 00h00m01.16s: 601.74 MB/second
P-F. Bonnefoi — Sécurité des Usages TIC

Chiffrement aes-128-ofb dans le fichier chiffre-aes-128-ofb


Summary:
Piped 700.00 MB in 00h00m01.64s: 424.34 MB/second

Déchiffrement sans sauvegarde


Summary:
Piped 700.00 MB in 00h00m01.16s: 603.37 MB/second

Déchiffrement dans le fichier dechiffre-aes-128-ofb


Summary:
Piped 700.00 MB in 00h00m01.20s: 582.84 MB/second
Évaluation du chiffrement symétrique : débit 109
AES-128 en mode CFB
xterm
pef@darkstar-8:/Users/pef/tmp/CIPHER~: cipher_test aes-128-cfb
Vitesse de création de 700Mo de données sans sauvegarde
700+0 records in00.00 MB 0.00 B/second (Mon Feb 5 [Link] 2018)
700+0 records out
734003200 bytes transferred in 0.230358 secs (3186356912 bytes/sec)
Summary:
Piped 700.00 MB in 00h00m00.22s: 2.99 GB/second

Enregistrement de 700Mo dans le fichier clair


700+0 records in99.21 MB 153.12 MB/second (Mon Feb 5 [Link] 2018)
700+0 records out
734003200 bytes transferred in 0.986273 secs (744219058 bytes/sec)
Summary:
Piped 700.00 MB in 00h00m00.94s: 740.28 MB/second

Chiffrement aes-128-cfb sans sauvegarde


Summary:
Piped 700.00 MB in 00h00m01.39s: 503.24 MB/second
P-F. Bonnefoi — Sécurité des Usages TIC

Chiffrement aes-128-cfb dans le fichier chiffre-aes-128-cfb


Summary:
Piped 700.00 MB in 00h00m01.76s: 395.74 MB/second

Déchiffrement sans sauvegarde


Summary:
Piped 700.00 MB in 00h00m01.41s: 493.67 MB/second

Déchiffrement dans le fichier dechiffre-aes-128-cfb


Summary:
Piped 700.00 MB in 00h00m01.21s: 576.78 MB/second
Le chiffrement symétrique
est
beaucoup plus rapide
que
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.

La puissance de calcul des ordinateurs augmente ?


⟹ il est nécessaire d’améliorer la sécurité des algorithmes symétriques et asymétriques pour résister
à la cryptanalyse ;
– Comment ? augmenter la taille des clé par exemple ;

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.

Cette clé partagée sera appelée clé de session.


Échange sécurisé : la notion de clé de session 112

C’est un compromis entre le chiffrement symétrique et asymétrique permettant de combiner les deux techniques.

Il existe deux méthodes pour construire et partager une clé de session :


⊳ Première possibilité :
⋄ construire une clé de session à l’aide de la méthode d’échange de clé de Diffie-Hellman.
⋄ les interlocuteurs n’ont pas besoin de partager une clé avant de commencer leur communication chiffrée !
Cette méthode est extrémement employée pour initier un canal de transmission sécurisée avant tout échange.

⊳ 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 ;

c. envoyer cette clé chiffrée au destinataire ;

d. le destinataire déchiffre la clé symétrique à l’aide de sa clé privée.


P-F. Bonnefoi — Sécurité des Usages TIC

Les deux interlocuteurs disposent ensuite :


□ d’une clé symétrique commune qu’ils sont seuls à connaître ;
□ et donc, de la possibilité de communiquer en chiffrant leur données à l’aide d’un algorithme de chiffrement
symétrique rapide.

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

Risque : l’attaque «Man-in-the-Middle»


Problème : Oscar peut s’insérer entre Alice et Bob et proposé sa valeur 𝑧 en lieu et place de 𝑥 pour Bob
et de 𝑦 pour Alice :
Alice ⟹ 𝑛, 𝑔, 𝑔𝑥 mod 𝑛 ⟹ Oscar ⟹ 𝑛, 𝑔, 𝑔𝑧 mod 𝑛 ⟹ Bob
𝑔𝑥𝑧 mod 𝑛 ⟸ 𝑔𝑧 mod 𝑛 ⟸ 𝑔𝑥𝑧 mod 𝑛 ⟸ 𝑔𝑦 mod 𝑛 ⟸ 𝑔𝑦𝑧 mod 𝑛
𝑔𝑥𝑧 mod 𝑛 𝑔𝑥𝑧 mod 𝑛, 𝑔𝑦𝑧 mod 𝑛 𝑔𝑦𝑧 mod 𝑛
Conclusion : il faut une phase préliminaire d’authentification !
Seconde possibilité : combinaison symétrique/asymétrique 114
Avantages
□ la clé secrète est chiffrée et échangée : pas d’interception possible ;
□ elle est changée à chaque communication : sécurité plus robuste dans le temps ;
□ après l’échange on bascule le chiffrement en utilisant un algorithme symétrique plus rapide ;
□ on démarre l’échange avec l’utilisation d’un algorithme asymétrique qui possède l’avantage d’offrir
un moyen d’authentifier les interlocuteurs.
Remarque
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).
Attention
La PFS, «Perfect Forward Secrecy», correspond à la protection des échanges futurs en cas de
P-F. Bonnefoi — Sécurité des Usages TIC

compromission de la clé privée du serveur :


⊳ si la clé de session est échangée chiffrée par la clé publique du serveur
⟹les transactions antérieures sont déchiffrables ;
⊳ si la clé de session est déterminée par DH : la compromission de la clé publique ne permet pas
de déchiffrer les transactions !
Seule la première possibilité avec Difie-Hellman garantie la PFS...
Et Comment Améliorer la Sécurité
si la puissance des ordinateurs
augmente constamment ?
P-F. Bonnefoi — Sécurité des Usages TIC
Comparaison et combinaison 116
La sécurité offerte par le chiffrement à clé
La sécurité d’un code à clé est proportionnelle à la taille de la clé employée, c-à-d plus la clé est
longue plus il faut de calcul et donc de temps pour arriver à le casser.

Attaque «brute force» :

⊳ essayer toutes les clés possibles pour déchiffrer le message chiffré ;


⟹ plus la clé est longue (nombre de bits), plus il y a de clés à essayer (2 fois plus de clé à essayer
pour chaque bit ajouté !).

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 :

⊳ une transaction bancaire doit être sécurisée pendant quelques minutes ;


⊳ un document secret d’état doit pouvoir être protégé plus de 50 ans par exemple.
Les recommendations pour la taille des clés 117

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

Équations de Lenstra et Verheul (2000)


Équations plus récentes de Lenstra (2004)
Recommandations ECRYPT-CSA (2018)
Recommandations du NIST (2016)
Recommandations de l'ANSSI (2014)
CNSA Suite de l'IAD-NSA (2016)
Network Working Group RFC3766 (2004)
P-F. Bonnefoi — Sécurité des Usages TIC

Recommandations du BSI (2018)

Comparer les méthodes

© 2019 BlueKrypt - v 31.0 - 10 Juin 2018


Auteur: Damien Giry
Approuvé par Pr. Jean-Jacques Quisquater
Contact: keylength@[Link]

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 envoie à Bob un message aléatoire «challenge» :


⊳ Bob renvoie à Alice le message chiffré à l’aide de sa clé privée «réponse» ;
exploitation de la propriété chiffrement(déchiffrement(𝑀)) = déchiffrement(chiffrement(𝑀)) ;

⊳ 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

Message chiffréBob→Oscar = Asymétrique(Clépub de Oscar, Asymétrique( Clépriv de Bob, Message faux))


⋄ Oscar déchiffre et «vérifie» :
Asymétrique (Clépub de Bob, Asymétrique(Clépriv d’Oscar, Message chiffréBob→Oscar))⟹ Message faux
⋄ Oscar peut alors récupérer le Message clair d’Alice : authentification d’Alice
Asymétrique(Clépriv d’Oscar, Message faux) = Asymétrique(Clépriv de Alice, Message clairAlice)
Asymétrique (Clépub de Alice, Asymétrique(Clépriv de Alice, Message clairAlice)) ⟹ Message clairAlice !

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

L’authentification d’un document correspond à identifier son propriétaire/créateur.

Quelle sorte de chiffrement utiliser pour chiffrer le document ?


– Chiffrement symétrique ? Impossible. On peut vérifier la provenance d’un document que par la seule vérification
que le document a été chiffré par une clé secrète que l’on connait.
S’il faut connaître la clé secrète pour vérifier, il est impossible de démontrer la provenance d’un document sans donner
cette clé secrète.
Tous ceux qui veulent vérifier la doit posséder la clé secrète et tout le monde peut modifier le document !
Le document est toujours chiffré, il ne peut être consulté librement !

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

Oui, mais le chiffrement asymétrique est lent !


Solution : il faut «compresser» le document avant de le signer (résumé ou «digest» en anglais)...
...et s’assurer que la «compression» du document est bien associée au bon document ;
...et qu’il n’est pas facile de trouver un autre document qui a la même «compression» qu’un autre (pour faire accepter
un document et le remplacer par un autre).
Un outil cryptographique fondamental : la fonction de hachage 125
Qu’est-ce qu’une fonction de hachage ?
Une fonction de hachage est une fonction qui fait correspondre à toute information une valeur appelée «hash».
Exemple : pour accéder rapidement à un livre dans une base de données, on utilise une fonction de hachage pour accéder
directement au livre recherché :
𝑓 ∶ {ensemble des titres de livres} ↦ {ensemble des hashs} Ainsi, on ne parcours pas tous les titres, mais on va direc-
𝑓 (20 000 Lieues sous les mers) → 598 tement à la valeur indiquée par la fonction de hachage.
𝑓 (Les androïdes rêvent-ils de moutons électriques ?) → 698593 Si deux livres possèdent le même hash, on parle de «colli-
sion». Une bonne fonction de hachage limite les collisions.
Fonction de hachage cryptographique
Une fonction de hachage cryptographique possède les
propriétés suivantes :
6
x □ pour tout document électronique elle calcule un hash ;
7 3
2 4 □ depuis le hash il est impossible de retrouver le docu-
x
ment ;
1
P-F. Bonnefoi — Sécurité des Usages TIC

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 ;

ensemble □ il est très difficile, voire impossible, de trouver deux do-


de tous les cuments différents ayant le même hash (collision).
documents
□ le hash est de taille fixe et limitée (le document peut
possibles
être de taille quelconque).
On parle aussi d’empreinte de documents.
Fonction de hachage cryptographique 126
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

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

Tous les mots d’au plus 3 lettres à partir de l’alphabet { a,b,c }.


haché
P-F. Bonnefoi — Sécurité des Usages TIC

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.

La fonction de hachage doit être :


□ telle qu’elle associe un et un seul résumé à un texte en clair (cela signifie que la moindre modification du document
entraine la modification de son résumé), c-à-d «sans collision».

□ 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

⋆ 𝐻(𝑚) doit être une fonction à sens unique ;


⋆ 𝐻(𝑚) doit être «sans collision».
Utilisation - Authentification et intégrité
Les algorithmes de hachage sont utilisés :
⊳ pour la vérification si un document a été modifié (le changement d’une partie du document change son empreinte),
on parle d’intégrité ;

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

Résistance forte au collision


Oscar aimerait pouvoir tromper la vigilance d’Alice dans la signature et le dépôt d’un document 𝑀 :
⊳ Il cherche deux documents M et M’ ayant la même empreinte mais des sens différents : 𝑀 : un contrat équitable avec
Alice, et 𝑀′ : un contrat à son unique avantage ;
⊳ Il montre à Alice le document 𝑀, d’empreinte 𝐻(𝑀), pour lequel elle donne son accord par signature et elle conserve
P-F. Bonnefoi — Sécurité des Usages TIC

𝐻(𝑀) 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

RIPEMD-128 et RIPEMD-160, créé entre 88 et 92 ;

– Tiger, développé par Ross Anderson et Eli Biham, plus rapide que MD5 (132Mb/s contre 37Mb/s sur une même
machine, optimisé pour processeur 64bit).
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)

HASH 0-0 HASH 0-1 HASH 1-0 HASH 1-1


hash(bloc1) hash(bloc2) hash(bloc3) hash(bloc4)

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

HASH 0-0 HASH 0-1 HASH 1-0 HASH 1-1


hash(bloc1) hash(bloc2) hash(bloc3) hash(bloc4)

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 ;

⟹ application au réseau «peer-to-peer».


Et les fonctions de hachage...
C’est «cassable» ?
P-F. Bonnefoi — Sécurité des Usages TIC
Attaque sur les fonctions de hachage : «rainbow tables» 136
Authentification basée sur un secret partagé : accès protégé par mot de passe
Pour accèder à un système protégé par mot de passe :
⊳ l’utilisateur choisit un «bon» mot de passe (pour rendre une attaque «brute force» difficile) ;
⊳ le mot de passe est conservé sur le système sous forme d’une valeur «hachée» par une fonction de hachage 𝐻,
haché = 𝐻(MotDePasse) (pour éviter de pouvoir récupérer le mot de passe depuis le fichier qui le contient).
⊳ lors de la tentative d’authentification :
⋄ l’utilisateur saisi son mot de passe ;
⋄ le mot de passe est haché par 𝐻 ;
⋄ la valeur hachée obtenue est comparée à celle mémorisée : si elle est identique, l’utilisateur est autorisée.
Attaque par construction d’une table de chaîne de hachés
L’attaque repose sur le fait que la valeur hachée du mot de passe a pu être récupérée (lecture du fichier les contenant).

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

⟹la table serait trop grande à mémoriser ou trop longue à regénérer.


⟹stocker seulement une sélection de hachés qui permettent d’obtenir une chaîne de mots de passe :
⊳ utiliser une fonction 𝑅 de réduction qui permet de mapper un haché vers un mot de passe ;
Attention : ce n’est pas une fonction d’inversion de la fonction de hachage
⊳ fabriquer des chaînes alternant mots de passe et hachés :
⋄ choisir un certain nombre de mots de passe initiaux de manière aléatoire ;
⋄ pour un de ces mots de passe alterner 𝑛 fois l’application de 𝐻, puis de 𝑅, puis de 𝐻, etc. et enfin de 𝑅
⋄ mémoriser uniquement le mot de passe initial et le dernier mot de passe de cette chaîne.
⊳ pour «inverser» un haché donné, c-à-d trouver un mot de passe permettant de l’obtenir :
⋄ on applique 𝑅, puis 𝐻, etc. jusqu’à obtenir un mot de passe de fin de chaîne : il y a une forte probabilité que le haché soit
contenu dans la chaîne correspondante et que la valeur immédiatement précédente soit le mot de passe que l’on cherche !
Attaque sur les fonctions de hachage : «rainbow tables» 137
Construction d’une chaîne et recherche d’un mot de passe correspondant au haché
□ On choisit aléatoirement le mot de passe initial aaaaaa pour un ensemble de mot de passe constitué de 6 lettres.
□ On construit la chaîne :
𝐻 𝑅 𝐻 𝑅
aaaaaa→281DAF40→sgfnyd→920ECF10→kiebgt
□ On mémorise la chaîne :
début fin
aaaaaa kiebgt
□ On recherche maintenant à «casser» le haché 920ECF10 :
𝑅
⋄ On applique 𝑅 : 920ECF10→kiebgt et on cherche le mot de passe kiebgt dans la colonne «fin» de la table.
⋄ On trouve qu’il est présent et que le mot de passe de début est aaaaaa : on reconstruit la chaîne jusqu’à obtenir ce haché :
𝐻 𝑅 𝐻
aaaaaa→281DAF40→sgfnyd→920ECF10
⋄ Alors le mot de passe est sgfnyd !
Formalisation
□ Soit la fonction 𝐻 utilisée par le système ;
P-F. Bonnefoi — Sécurité des Usages TIC

□ Soit un ensemble 𝑃 de mots de passe possibles, c-à-d accepté par le système ;


□ Soit une fonction 𝑅 de réduction, c-à-d permettant de transformer un haché produit par 𝐻 en un élément de 𝑃.
Exemple :
H ∘ MD5 (493823)
⟶ 83312542f562bd072f559d9701a45f04
mdp1
∘ 𝑅(83312542f562bd072f559d9701a45f04) ⟶ 222004
mdp2 h

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

Il peut être difficile de :


⊳ couvrir tous les mots de passe possibles ; mots de passe hachés
⊳ d’éliminer les chaînes conduisant à la même terminaison ;
⊳ de découvrir lors de la recherche que l’on est dans une boucle : dans ce cas là la chaîne est détruite et les hachés
apparaissant dans la boucle ne seront pas traités dans la table.
Attaque sur les fonctions de hachage : «rainbow tables» 139
Solution : la Rainbow table
H R1 H R2 H R3
wikipedia ao4kd secret 9kpmw jimbo v0d$x rootroot

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

⊳ Toujours mémoriser uniquement le mot de passe de début et celui de la fin de la chaîne ;


P-F. Bonnefoi — Sécurité des Usages TIC

⊳ utiliser différentes fonctions de réductions 𝑅1 , 𝑅2 , 𝑅3 , etc. pour chaque colonne de la table : d’où l’appellation de
«Rainbow table» ;

L’utilisation de différentes fonctions de réduction permet de :


⊳ éviter les collisions dans la mesure où elle devrait se produire sur la même colonne ;
⊳ couvrir plus de mots de passe.
Protection ?
On utilise la méthode du «SALT» qui, même s’il est connu de tous et lisible dans le fichier contenant les mots de
passe, impose d’utiliser un motif dans le mot de passe ce qui empêche l’utilisation de «rainbow tables» génériques.
Les fonctions de hachage ?
Ça peut garantir l’intégrité, mais aussi l’identité !
P-F. Bonnefoi — Sécurité des Usages TIC
MAC,«Message Authentication Code» 141

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

Exemple : le MIC, «Message Integrity Code», utilisé dans WPA.


HMAC,«hash-based message authentication code»
𝐻𝑀𝐴𝐶(𝐾, 𝑚) = 𝐻((𝐾′ ⊕ 𝑜𝑝𝑎𝑑)‖𝐻((𝐾′ ⊕ 𝑖𝑝𝑎𝑑)‖𝑚))
𝐻(𝐾) si 𝐾 est plus large que la taille du bloc
où 𝐾′ = 𝑧𝑝𝑎𝑑 ⊕ {
𝐾 sinon
Où :
𝐻 est la fonction de hachage ;
P-F. Bonnefoi — Sécurité des Usages TIC


⊳ 𝑚 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

Où chaque 𝑇𝑖 est calculé avec une fonction 𝐹 définie comme :


𝑇𝑖 = 𝐹(𝑀𝑜𝑡𝑑𝑒𝑝𝑎𝑠𝑠𝑒, 𝑆𝑎𝑙𝑡, 𝑐, 𝑖) = 𝑈1 ⊕ 𝑈2 ⊕ … ⊕ 𝑈𝑐 avec les 𝑈𝑗 calculés comme :
𝑈1 = 𝑃𝑅𝐹(𝑀𝑜𝑡𝑑𝑒𝑝𝑎𝑠𝑠𝑒, 𝑆𝑎𝑙𝑡‖𝐼𝑁𝑇 32 𝐵𝐸(𝑖)) ⟹ entier sur 32 bits en notation big endian...
𝑈2 = 𝑃𝑅𝐹(𝑀𝑜𝑡𝑑𝑒𝑝𝑎𝑠𝑠𝑒, 𝑈1 )
...
𝑈𝑐 = 𝑃𝑅𝐹(𝑀𝑜𝑡𝑑𝑒𝑝𝑎𝑠𝑠𝑒, 𝑈𝑐−1 )

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

𝑆𝑎𝑙𝑡‖𝑖𝑛𝑡(1) 𝑆𝑎𝑙𝑡‖𝑖𝑛𝑡(2) … 𝑆𝑎𝑙𝑡‖𝑖𝑛𝑡(𝑙𝑒𝑛)

P PRF P PRF P PRF

⊕ ⊕ ⊕
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 fichier «/etc/passwd» contient uniquement les infos correspondant au compte de l’utilisateur :


xterm
pef@cube:/etc$ cat passwd | grep pef
pef:x:1000:1000:pef,,,:/home/pef:/bin/bash

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

valeur du haché précédent avec le SALT.


Si on utilise openSSL :
xterm
pef@cube:/etc$ openssl passwd -1 -salt x5dLHSND toto
$1$x5dLHSND$gfRJNaMxe8sJzJ9RoYP0m.

La méthode utilisée est «$1$» correspondant à MD5.


On peut aussi utiliser la commande suivante :
xterm
pef@cube:/etc$ mkpasswd -m sha-512 -S x5dLHSND -s toto
$6$x5dLHSND$k.b4lZyenwwY9Z12CwbK884PRpP4y9wk//K8PluEUmgmjwLsX2XWhPNkzlZjfn
QoxOyua2xT7BXo4QZ49Dtdg0
Peut-on combiner Authentification et Intégrité
pour un document ?
P-F. Bonnefoi — Sécurité des Usages TIC
Asymétrique + hachage : la signature électronique 147
Le scellement ou sceau ou signature électronique
Signer : joindre à un document sa signature, c-à-d le chiffré asymétrique par clé privée, de l’empreinte du document,
obtenue à l’aide d’une fonction de hachage.

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 ;

3. Le chiffrement du document est optionnel si la confidentialité n’est pas nécessaire.


P-F. Bonnefoi — Sécurité des Usages TIC

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

clé privée du signataire Message

Vérifier une signature électronique


clé publique du signataire
P-F. Bonnefoi — Sécurité des Usages TIC

Signature électronique résumé/empreinte Signature


correcte !
1001011010101001 Déchiffrement 0101010110011010110101
10100110101010101 0111010000101101 =
1010101011000 asymétrique 1010100110000

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

⊳ on prend une valeur entière aléatoire 𝑘 entre 1 et 𝑛 − 1 où 𝑛 est l’ordre du groupe ;


⊳ on calcule 𝑃 = 𝑘𝐺 où 𝐺 est le générateur du groupe ;
⊳ on calcule 𝑟 = 𝑥𝑝 mod 𝑛 où 𝑥𝑝 est la coordonnée suivant l’axe 𝑥, ou l’abscisse, de 𝑃 ;
⊳ si 𝑟 = 0 on choisit un autre 𝑘 et on ré-essaye ;
⊳ on calcule 𝑠 = 𝑘 −1 (𝑧 + 𝑟 ∗ 𝑑𝐴 ) mod 𝑛 où 𝑑𝐴 est la clé privée d’Alice et 𝑘 −1 est l’inverse de 𝑘 pour la
multiplication modulo 𝑛 ;
⊳ si 𝑠 = 0 on choisit avec un nouveau 𝑘 et on ré-essaye ;
⊳ (𝑟, 𝑠) est la signature !
ECDSA : signature avec les courbes elliptiques 150

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

⊳ 𝑛 est connu d’Alice et Bob, il fait partie du système crypto-


has

graphique avec 𝑎 et 𝑏 de la courbe elliptique


⟹ il existe différents systèmes standardisés et prouvés
sûrs.
Vérification de la signature
P-F. Bonnefoi — Sécurité des Usages TIC

⊳ on calcule 𝑢1 = 𝑠−1 𝑧 mod 𝑛 et 𝑢2 = 𝑠−1 𝑟 mod 𝑛 ;


⊳ on calcule le point 𝑃 = 𝑢1 𝐺 + 𝑢2 𝐻𝐴 et la signature est valide seulement si 𝑟 = 𝑥𝑝 mod 𝑛.
Pourquoi ? 𝑃 = 𝑢1 𝐺 + 𝑢2 𝐻𝐴 = 𝑢1 𝐺 + 𝑢2 𝑑𝐴 𝐺 = (𝑢1 + 𝑢2 𝑑𝐴 )𝐺 = (𝑠−1 𝑧 + 𝑠−1 𝑟 ∗ 𝑑𝐴 )𝐺 = 𝑠−1 (𝑧 + 𝑟 ∗ 𝑑𝐴 )𝐺
Et comme 𝑠 = 𝑘 −1 (𝑧 + 𝑟 ∗ 𝑑𝐴 ) mod 𝑛 ou 𝑘 = 𝑠−1 (𝑧 + 𝑟 ∗ 𝑑𝐴 ) mod 𝑛, on obtient alors 𝑃 = 𝑘𝐺.
C’est quoi un inverse modulaire ?
L’inverse modulaire de 𝑎 est un entier 𝑖 tel que
∘ 𝑎 ∗ 𝑖 ≡ 1 mod 𝑛 ;
∘ 𝑖 ≡ 𝑎−1 mod 𝑛.
Exemple : 𝑖 ≡ 3−1 𝑚𝑜𝑑11 ou 3 ∗ 𝑖 ≡ 1 mod 11, ce qui donne 𝑖 = 4 car 3 ∗ 4 = 12 ≡ 1 mod 11.
ECDSA : à quoi cela ressemble ? 151
xterm
pef@darkstar-8:…/ecc/scripts$ python3 [Link]
Curve: secp256k1
Private key: 0x28ecb4b7673815c2b0e49e3ad83e8bbb20ec5fa585f15fd76df01ed4064aa796
Public key:
(0xee19ee92a0e0d1b6271ade3b5e62d65fcd367e0405fa846a3123560aa152709e,
0xc68662c15eb123634652142af365f6798e7f960ca3b21df532c558a182427cc6)

Message: 'Bonjour !'


Signature: (0x737f1035e1de3e0474f3f4f46b10c661ecd6efa4329754aef5d6cdd7a61ec86a,
0xa80ba620a96da5d52a3a6a17089ceae699dd4f17eba7dd5a04500e0a5a43cd50)
Verification: signature matches
même message et la clé publique est la bonne
Message: 'Coucou !'
Verification: invalid signature
le message est différent
Message: 'Bonjour !'
Public key:
(0xcae60f6d2c9b80fa8b4b0d4afefaca78950933f0258ca6f66cf8be197a7d4184,
0xc9d273e354da7e989f94d2046f4327db6fba06c499afdeb1015709812781f2d0)
P-F. Bonnefoi — Sécurité des Usages TIC

Verification: invalid signature

la clé publique est différente

□ la courbe utilisée dans Bitcoin est «secp256k1» ;


□ La taille de la clé privée est de 32 octets ;
□ la clé publique est un point dont chaque coordonnée est sur 32bits ;
□ le message est le contenu du document qui va être haché pour donner la valeur 𝑧 en entrée de
l’algorithme.
Les standards et l’interopérabilité 152

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.

□ PKCS#7 : Standard de la syntaxe pour un message chiffré, on parle «d’enveloppe sécurisée»


PKCS#7 décrit une syntaxe générale pour les données devant être chiffrées, comme les signatures numériques par
exemple.
Cette syntaxe supporte la récursivité, ce qui permet de signer un fichier déjà signé par quelqu’un d’autre par exemple.
Et l’utilisation dans
les protocoles de communication ?
Comment modéliser et garantir
P-F. Bonnefoi — Sécurité des Usages TIC

qu’un protocole de communication est sécurisé ?


Les attaques sur protocole 154

□ l’écoute des communications, «eavesdropping» :


⋄ écouter de manière passive les messages ;
⋄ la protection consiste à utilise le chiffrement pour assurer la confidentialité ;
□ la modification :
⋄ l’attaquant modifie ou replace des messages ;
⋄ la protection utilise le chiffrement ;
□ le rejeu, «replay» :
⋄ l’attaquant envoie un message qui a été échangé précédemment ;
⋄ la protection est de définir le message clairement afin d’empêcher son utilisation hors contexte ;
□ l’attaque de l’intermédiaire, «Man-in-the-Middle» :
⋄ l’attaquant s’intègre dans les échanges entre deux interlocuteur ;
⋄ il peut écouter et modifier les messages échangés ;
P-F. Bonnefoi — Sécurité des Usages TIC

□ 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 ;

□ le mélange des types de messages, «Typing Attack».


3 Quelques notations pour modéliser les protocoles 155

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

𝑆𝑖𝑔𝑛𝐴 (𝑚) 𝐴 signe le message 𝑚 avec sa clé privée


𝐸𝐾𝑆 (𝑚) chiffrement avec la clé publique 𝐾𝑆 du message 𝑚
Attaque
𝐼(𝐵) l’attaquant 𝐼 «impersonate», prend la place de, 𝐵
1 2 ... rang du message dans l’échange d’attaque
Quelques attaques sur les protocoles sécurisés 156
Attaque par réflexion
□ similaire à une attaque par rejeu qui utilise le protocole contre lui-même ;
□ l’attaquant utilise une «preuve» d’authentification en «challengeant» le «challenger».
Exemple d’attaque par réflexion
⊳ 𝐴 et 𝐵 partagent la clé 𝐾 ;
⊳ 𝐴 et 𝐵 veulent vérifier qu’ils sont bien mis en relation ;

Protocole : Attaque sur le protocole :


1. 𝐴 → 𝐵 : {𝑁𝐴 }𝐾 1. 𝐴 → 𝐵 : {𝑁𝐴1 }𝐾
2. 𝐵 → 𝐴 : 𝑁𝐴 , {𝑁𝐵 }𝐾 𝐼(𝐵) → 𝐴 : {𝑁𝐴1 }𝐾
1

3. 𝐴 → 𝐵 : 𝑁𝐵 2 𝐴 → 𝐼(𝐵) : 𝑁𝐴1 , {𝑁𝐴2 }𝐾


2. 𝐼(𝐵) → 𝐴 : 𝑁𝐴1 , {𝑁𝐴2 }𝐾
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

2 Chaque message doit être compréhensible uniquement à partir de son contenu.


Il doit être possible de décrire en une simple et unique phrase la signification d’un message.
1. 𝐴 → 𝐵 : 𝐸𝐵 (𝑁𝐴 , 𝐴) 1) 𝐸𝑋 (𝑌 , 𝑍) signifie «𝑍 veux communiquer avec 𝑋 en utilisant 𝑌»
P-F. Bonnefoi — Sécurité des Usages TIC

2. 𝐵 → 𝐴 : 𝐸𝐴 (𝑁𝐴 , 𝑁𝐵 ) 2) 𝐸𝛼 (𝛽, 𝛾) signifie «?? veut communiquer avec 𝛼 en utilisant 𝛽 et 𝛾»


3. 𝐴 → 𝐵 : 𝐸𝐵 (𝑁𝐵 ) ⟹𝐸𝐴 (𝑁𝐴 , 𝑁𝐵 ) ne signifie pas que 𝐵 veut communiquer avec 𝐴 en utilisant
𝑁𝐴 et 𝑁𝐵 parce qu’il n’y a pas de référence à 𝐵
Correction :
1. 𝐴 → 𝐵 : 𝐸𝐵 (𝑁𝐴 , 𝐴) ⋄ Le message 2) 𝐸𝑋 (𝑌 , 𝑍, 𝑊 ) signifie «𝑊 veut communiquer avec 𝑋 en
2. 𝐵 → 𝐴 : 𝐸𝐴 (𝑁𝐴 , 𝑁𝐵 , 𝐵) utilisant 𝑌 et 𝑍» ;
3. 𝐴 → 𝐵 : 𝐸𝐵 (𝑁𝐵 ) ⋄ le message 3) 𝐸𝑋 (𝑌 ) signifie «?? accepte la communication avec 𝑋 en
utilisant 𝑌.
Ici, on a pas besoin de mentionner 𝐴, car seulement 𝐴 connaît 𝑁𝐵 ».
Les règles de bonnes pratiques de conception de protocole sécurisé 161

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. 𝐵 → 𝐼(𝐴) : 𝑁𝐵 𝐴

4. 𝐵 → 𝑆 : {𝐴, {𝑁𝐵 }𝐾𝐴𝑆 }𝐾𝐵𝑆 2 𝐵 → 𝐼 : 𝑁𝐵𝐼 𝑁𝐵 relatif à 𝐼


5. 𝑆 → 𝐵 : {𝑁𝐵 }𝐾𝐵𝑆 3. 𝐼(𝐴) → 𝐵 : {𝑁𝐵𝐴 }𝐾𝐼𝑆
⟹ 𝐴 est authentifié pour 𝐵. 3 𝐼 → 𝐵 : {𝑁𝐵𝐴 }𝐾𝐼𝑆
4. 𝐵 → 𝑆 : {𝐴, {𝑁𝐵𝐴 }𝐾𝐼𝑆 }𝐾𝐵𝑆
P-F. Bonnefoi — Sécurité des Usages TIC

4 𝐵 → 𝑆 : {𝐼, {𝑁𝐵𝐴 }𝐾𝐼𝑆 }𝐾𝐵𝑆


5. 𝑆 → 𝐵 : 𝐹𝑎𝑖𝑙 ⟹ le message doit être intercepté par 𝐼...
5 𝑆 → 𝐵 : {𝑁𝐵𝐴 }𝐾𝐵𝑆
5’. 𝐼(𝑆) → 𝐵 : {𝑁𝐵𝐴 }𝐾𝐵𝑆 ⟹ 𝐼 est authentifié comme 𝐴 auprès de 𝐵 !

2 Le chiffrement : ⋄ est coûteux en terme de performance ;


⋄ doit être justifié, sinon il peut être redondant ou inutile ;
⋄ n’est pas synonyme de sécurité et son mauvais usage peut conduire à des erreurs.
Les règles de bonnes pratiques de conception de protocole sécurisé 162

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

intrus ne puisse simuler un «challenge» et rejouer une «response».

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

appartient au protocole, mais ausi à un échange particulier utilisant ce protocole.

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

Utilisation d’un «login/mdp» pour l’accès à certaines ressources :


□ version «Basic» : le «login/mdp» passent en clair dans la connexion TCP et nécessite TLS ;
□ version «Digest» : méthode «Challenge/Response» : le «mdp» n’est jamais envoyé en clair⟹ TLS pas obligatoire.
Démonstration version basic
On utilise la commande «curl» qui permet de faire des requêtes HTTP en ligne de commande et de tracer les échanges entre le client
et le serveur Web :
xterm
pef@darkstar-8:/Users/pef$ curl -k -u secret:test -v [Link]
* Connected to localhost ([Link]) port 1337 (#0)
* Server auth using Basic with user 'secret'
> GET / HTTP/1.1
> Host: localhost:1337 login/mdp
> Authorization: Basic c2VjcmV0OnRlc3Q=
> User-Agent: curl/7.57.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 Authorization Required
< Date: Tue, 06 Feb 2018 [Link] GMT
< Server: WSGIServer/0.1 Python/2.7.14
< Content-Type: text/plain
P-F. Bonnefoi — Sécurité des Usages TIC

< Content-Length: 13
<
* Closing connection 0
Access denied

Le «login/mdp» est juste encodé en base64, et peut être récupéré :


xterm
pef@darkstar-8:/Users/pef$ echo "c2VjcmV0OnRlc3Q=" | base64 -D
secret:test
HTTP Basic/Digest Authentication, RFC 2617 166
Démonstration version digest avec un mauvais login/mdp
xterm
pef@darkstar-8:/Users/pef$ curl -k --digest -u toto:supersecret -v [Link]
* Connected to localhost ([Link]) port 1337 (#0)
* Server auth using Digest with user 'toto'
login/mdp
> GET / HTTP/1.1
> Host: localhost:1337
> User-Agent: curl/7.57.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 Authorization Required indique à l’utilisateur quelle login/mdp utiliser
< Date: Tue, 06 Feb 2018 [Link] GMT la fonction de hash à utiliser
< Server: WSGIServer/0.1 Python/2.7.14
< Content-Type: text/plain
< WWW-Authenticate: Digest realm="secret", nonce="MTUxNzkxMjg3NA==", algorithm=MD5, qop="auth"
< Content-Length: 13
< nonce choisi par le serveur à chaque erreur 401
* Closing connection 0
* Issue another request to this URL: '[Link]
* Server auth using Digest with user 'toto' Quality of Protection : «auth» ou «auth-int» (avec intégrité)
> GET / HTTP/1.0
> Host: localhost:1337
> Authorization: Digest username="toto", realm="secret", nonce="MTUxNzkxMjg3NA==", uri="/",
cnonce="YTQxZjBhYjg0OWJhMzY2ZGI5OWU2MzQ3NGI4M2M0MTQ=",nc=00000001,qop=auth,response="bab95d2b7fbc95e431e8fc660f9fac46",
algorithm="MD5"
> User-Agent: curl/7.57.0
P-F. Bonnefoi — Sécurité des Usages TIC

> Accept: */* La réponse calculée par :


nonce choisi par le client
> A1 = MD5(username:password:realm):nonce:cnonce
* HTTP 1.0, assume close after body
< HTTP/1.0 401 Authorization Required A2 = request-method:uri-directive-value
< Date: Tue, 06 Feb 2018 [Link] GMT response = MD5(MD5(A1):nonce:nc:cnonce:qop:MD5(A2))
< Server: WSGIServer/0.1 Python/2.7.14
< Content-Type: text/plain
* Authentication problem. Ignoring this.
< WWW-Authenticate: Digest realm="secret", nonce="MTUxNzkxMjg3NA==", algorithm=MD5, qop="auth"
< Content-Length: 13
<
* Closing connection 1
Access denied accès refusé !

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.

Ici, l’utilisateur toto n’est pas connu du serveur.


HTTP Basic/Digest Authentication, RFC 2617 168
Démonstration version digest avec un bon login/mdp
xterm
pef@darkstar-8:/Users/pef/tmp/CIPHER curl -k --digest -u secret:test -v [Link]
* Connected to localhost ([Link]) port 1337 (#0)
* Server auth using Digest with user 'secret'
> GET / HTTP/1.1
> Host: localhost:1337
> User-Agent: curl/7.57.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 Authorization Required
< Date: Tue, 06 Feb 2018 [Link] GMT
< Server: WSGIServer/0.1 Python/2.7.14
< Content-Type: text/plain
< WWW-Authenticate: Digest realm="secret", nonce="MTUxNzkxMjg4MQ==", algorithm=MD5, qop="auth"
< Content-Length: 13
<
* Closing connection 0
* Issue another request to this URL: '[Link]
* Connected to localhost ([Link]) port 1337 (#1)
* Server auth using Digest with user 'secret'
> GET / HTTP/1.0
> Host: localhost:1337
> Authorization: Digest username="secret", realm="secret", nonce="MTUxNzkxMjg4MQ==", uri="/",
P-F. Bonnefoi — Sécurité des Usages TIC

cnonce="YmE1ODBkZjVhMzMyYjk1OWYyZjg3NWIwMjMwMWE0NjY=", nc=00000001, qop=auth,


response="3ece24afa6375d1eeda47387b83da8c6",
algorithm="MD5"
> User-Agent: curl/7.57.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Date: Tue, 06 Feb 2018 [Link] GMT
< Server: WSGIServer/0.1 Python/2.7.14
< Content-Type: text/plain
< Content-Length: 3 Connexion réussie !
<
* Closing connection 1
OK!
HTTP Basic/Digest Authentication, RFC 2617 169
Démonstration version digest avec un bon login/mdp
Côté serveur :
xterm
[Link] - - [06/Feb/2018 [Link] "GET / HTTP/1.1" 401 13
{ 'algorithm': 'MD5',
'cnonce': 'YmE1ODBkZjVhMzMyYjk1OWYyZjg3NWIwMjMwMWE0NjY=',
'nc': '00000001',
'nonce': 'MTUxNzkxMjg4MQ==',
'qop': 'auth', Accés HTTP avec erreur 401 ⟹ Accès refusé
'realm': 'secret',
'response': '3ece24afa6375d1eeda47387b83da8c6',
'uri': '/', Accés HTTP avec succés 200 ⟹ Accès autorisé
'username': 'secret'}
'3ece24afa6375d1eeda47387b83da8c6'
{ 'cli': 1517912881, 'srv': 1517912881}
[Link] - - [06/Feb/2018 [Link] "GET / HTTP/1.0" 200 3

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.

Ici, l’utilisateur secret possèdant le mdp test est reconnu.


Peut-on automatiser
la vérification des protocoles ?
P-F. Bonnefoi — Sécurité des Usages TIC
Logique BAN, «Burrows–Abadi–Needham» 171

□ 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

𝑃 a vu 𝑋 𝑃 a reçu le message 𝑋 et peut le lire et le renvoyer


𝑋𝐾 𝑋 est chiffré avec la clé 𝐾
𝑓 𝑟𝑒𝑠ℎ(𝑋) 𝑋 n’a pas été précédemment envoyé dans un message
𝑘𝑒𝑦(𝐾, 𝑃 ↔ 𝑄) 𝑃 et 𝑄 peuvent communiquer avec la clé partagée 𝐾
Exemple d’assertions et d’inférence : ⊳ Si 𝑃 croit 𝑘𝑒𝑦(𝐾, 𝑃 ↔ 𝑄), et 𝑃 a vu 𝑋𝐾 , alors 𝑃 croit (𝑄 a dit 𝑋) ;
⊳ Si 𝑃 croit (𝑄 a dit 𝑋) et 𝑃 croit 𝑓 𝑟𝑒𝑠ℎ(𝑋), alors 𝑃 croit (𝑄 croit 𝑋) ;
𝑃 doit croire que 𝑋 est «frais» ici.
Si 𝑋 n’est pas connu pour être «frais», alors cela peut être un ancien message, rejoué par un attaquant.
Logique BAN, «Burrows–Abadi–Needham» 172

Exemple d’assertions et d’inférence :


⊳ Si 𝑃 croit (𝑄 a le contrôle de 𝑋) et 𝑃 croit (𝑄 croit 𝑋), alors 𝑃 croit 𝑋 ;
⊳ Si 𝑃 croit que 𝑄 a dit 𝑋‖𝑌, la concaténation de 𝑋 et 𝑌, alors 𝑃 croit que 𝑄 a dit 𝑋 et 𝑃 croit aussi que 𝑄 a dit 𝑌.
À l’aide de cette notation, on peut formaliser un protocole d’authentification et prouver que certains agents peuvent com-
muniquer en utilisant certaines clés.
Si la preuve échoue alors il est possible qu’un attaquant puisse compromettre le protocole.

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

Amélioration challenge/response with two-factor authentication


a. 𝑆→𝑈 :𝑁 ⊳ 𝑆 le serveur, 𝑈 l’utilisateur, 𝑃 le générateur de mot de passe : un boitier ressemblant
b. 𝑈→𝑃 : 𝑁, PIN à une calculatrice de poche que possède l’utilisateur et qui est «tamper-resistant» ;
c. 𝑃→𝑈 : {𝑁, PIN}𝐾𝑆𝑃 ⊳ 𝑁 le nonce, «number used once» donné par le serveur lors de l’accès de l’utilisateur ;
d. 𝑈→𝑆 : {𝑁, PIN}𝐾𝑆𝑃 ⊳ 𝑃𝐼𝑁 le PIN, «Personal Identification Number» de l’utilisateur qui initie le générateur
de mot de passe.
Logique BAN, «Burrows–Abadi–Needham» 173
Exemple le protocole d’authentification «Wide Mouth Frog Protocol»
∘ les agents 𝐴 et 𝐵 veulent établir une connexion sécurisée ;
∘ un serveur de confiance 𝑆 permet l’authentification mutuelle de ces agents ;
∘ le protocole va permettre à l’agent 𝐴 d’envoyer une clé symétrique 𝐾𝐴𝐵 à l’agent 𝐵, via le serveur 𝑆.
On suppose que S est toujours honnête.
a. 𝐴 → 𝑆 : 𝐴, {𝑁𝐴 , 𝐵, 𝐾𝐴𝐵 }𝐾𝐴𝑆 L’agent 𝐴 dispose de la clé 𝐾𝐴𝑆 , l’agent 𝐵 de la clé 𝐾𝐵𝑆 .
b. 𝑆 → 𝐵 : {𝑁𝑆 , 𝐴, 𝐾𝐴𝐵 }𝐾𝐵𝑆 ⊳ 𝐴 et 𝑆 croient 𝑘𝑒𝑦(𝐾𝐴𝑆 , 𝐴 ↔ 𝑆)
⊳ 𝐵 et 𝑆 croient 𝑘𝑒𝑦(𝐾𝐵𝑆 , 𝐵 ↔ 𝑆)
⊳ 𝐴 croit 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵), 𝐴 initie une communication avec 𝐵, il crée la clé
𝐾𝐴𝐵
⊳ 𝐵 veut accepter la clé 𝐾𝐴𝐵 si elle provient bien de 𝐴 :
𝐵 croit (𝐴 a le contrôle de 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵))
𝐵 veut faire confiance à 𝑆 pour relayer honnêtement la clé de 𝐴 :
dérivations

𝐵 croit (𝑆 a le contrôle de (𝐴 croit 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵)))


Si 𝐵 croit que 𝑆 croit que 𝐴 veut utiliser une clé particulière pour communiquer
P-F. Bonnefoi — Sécurité des Usages TIC

avec 𝐵, alors 𝐵 va faire confiance à 𝑆 et va le croire également.


Le but est d’obtenir : 𝐵 croit 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵).
Analyse :
□ Propriétés de secret et d’authentification (message, agent) :
⋄ dans a) 𝑆 peut authentifier 𝐴 s’il est capable de retrouver le format du message chiffré avec 𝐾𝐴𝑆 ;
⋄ dans b) 𝐵 peut authentifier 𝑆 de la même façon ;
□ Propriétés de fraîcheur :
⋄ le message a) utilise un 𝑁𝐴 qui n’est pas forcèment «frais» ce qui peut amener à une attaque par rejeu
⟹ l’attaquant ayant découvert une clé 𝐾𝐴𝐵 peut forcer l’utilisation de cette clé en renvoyant le paquet vers 𝑆.
Logique BAN, «Burrows–Abadi–Needham» 174
Exemple le protocole d’authentification «Wide Mouth Frog Protocol»
On voudrait que 𝑆 enregistre tous les 𝑁𝐴 et tous les 𝑁𝑆 pour garantir leur «fraicheur» pour éviter les attaques par rejeu.
On peut aussi utiliser une horloge partagée par 𝐴, 𝐵 et 𝑆 :
a. 𝐴 → 𝑆 : 𝐴, {𝑁𝐴 , 𝐵, 𝐾𝐴𝐵 }𝐾𝐴𝑆 ⟹ a. 𝐴 → 𝑆 : 𝐴, {𝑡, 𝐵, 𝐾𝐴𝐵 }𝐾𝐴𝑆
b. 𝑆 → 𝐵 : {𝑁𝑆 , 𝐴, 𝐾𝐴𝐵 }𝐾𝐵𝑆 b. 𝑆 → 𝐵 : {𝑡 + Δ𝑡 , 𝐴, 𝐾𝐴𝐵 }𝐾𝐵𝑆
𝐴 envoi dans a) l’heure 𝑡 et 𝑆 envoi dans b) l’heure 𝑡 + Δ𝑡
⊳ 𝑆 croit 𝑘𝑒𝑦(𝐾𝐴𝑆 , 𝐴 ↔ 𝑆) et 𝑆 a vu {𝑡, 𝐾𝐴𝐵 }𝐾𝐴𝑆 ⟹ 𝑆 croit (𝐴 a dit {𝑡, 𝐾𝐴𝐵 })
𝑆 croit 𝑓 𝑟𝑒𝑠ℎ(𝑡) ⟹ le message n’est pas un rejeu ⟹ 𝑆 croit (𝐴 croit 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵))
⊳ 𝑆 envoi à 𝐵 {𝑡 + Δ𝑡 , 𝐴, 𝐴 𝑐𝑟𝑜𝑖𝑡 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵)}𝐾𝐵𝑆
⊳ 𝐵 reçoit b) chiffré avec 𝐾𝐵𝑆 et 𝐵 croit 𝑘𝑒𝑦(𝐾𝐵𝑆 , 𝐵 ↔ 𝑆)
alors 𝐵 croit (𝑆 a dit {𝑡 + Δ𝑡 , 𝐴, 𝐴 𝑐𝑟𝑜𝑖𝑡 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵)})
⊳ les horloges sont synchronisées alors B croit 𝑓 𝑟𝑒𝑠ℎ(𝑡 + Δ𝑡) et 𝑓 𝑟𝑒𝑠ℎ(𝐴 𝑐𝑟𝑜𝑖𝑡 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵))
⊳ 𝐵 croit que le message de 𝑆 est «frais», 𝐵 croit (𝑆 croit (𝐴 𝑐𝑟𝑜𝑖𝑡 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵)))
⊳ 𝐵 croit (𝑆 a le contrôle de (𝐴 croit 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵))) ⟹ 𝐵 croit (𝐴 croit 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵))
⊳ 𝐵 croit que (𝐴 a le contrôle de 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵))⟹ 𝐵 croit 𝑘𝑒𝑦(𝐾𝐴𝐵 , 𝐴 ↔ 𝐵)
P-F. Bonnefoi — Sécurité des Usages TIC

⊳ 𝐵 peut contacter 𝐴 directement avec 𝐾𝐴𝐵 !


Le protocole Kerberos
a. 𝐴→𝑆 : 𝐴, 𝐵 𝐿 est le «lifetime», c-à-d la durée d’autorisation de l’accès
1
b. 𝑆→𝐴 : {𝑇𝑆 , 𝐿, 𝐾𝐴𝐵 , 𝐵,{𝑇𝑆 , 𝐿, 𝐾𝐴𝐵 , 𝐴}𝐾𝐵𝑆 }𝐾𝐴𝑆 de 𝐴 à la ressource 𝐵.
c. 𝐴→𝐵 : {𝑇𝑆 , 𝐿, 𝐾𝐴𝐵 , 𝐴}𝐾𝐵𝑆 , {𝐴, 𝑇𝐴 }𝐾𝐴𝐵 1 est le ticket d’autorisation donné à 𝐴 pour accéder à 𝐵

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

MAC puis chiffrer


⊳ 𝑇 = 𝑀𝐴𝐶(𝐾2 , 𝑃) ⊳ 𝑃‖𝑇 = 𝐷(𝐾1 , 𝐶), d’abord déchiffrer
⊳ 𝐶 = 𝐸(𝐾1 , 𝑃‖𝑇 ) ⊳ 𝑇 = 𝑀𝐴𝐶(𝐾2 , 𝑃) valide ou non 𝑃
⟹Le destinataire doit déchiffrer le message avant de pouvoir en calculer le MAC, il peut réaliser ce travail pour
rien avec des messages corrompus ou malveillants.
⟹le «tag» est caché, l’attaquant ne peut rien apprendre sur 𝑃.
P-F. Bonnefoi — Sécurité des Usages TIC

Utilisé dans TLS jusqu’à la version 1.3 où il est remplacé par l’utilisation d’un chiffrement authentifiant.

Chiffrer puis MAC


⊳ 𝐶 = 𝐸(𝐾1 , 𝑃) ⊳ 𝑇 = 𝑀𝐴𝐶(𝐾2 , 𝐶)
⊳ 𝑇 = 𝑀𝐴𝐶(𝐾2 , 𝐶) ⊳ 𝑃 = 𝐷(𝐾1 , 𝐶), seulement si 𝑇 est correct.
⟹ le destinataire du message n’a qu’un MAC à calculer pour s’assurer que le message n’est pas corrompu
⟹ si le message est corrompu, il n’a pas besoin de le déchiffrer.
⟹ un attaquant ne peut envoyer de combinaison de 𝐶 et de 𝑇 pour forcer le destinataire à déchiffrer.
C’est l’approche choisie par IPSec.
Présentation de TLS, «Transport Layer Security» 179

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

Le «padding» arrive après le MAC car on est en mode «MAC-then-Encrypt».


Chaque bloc dispose après son «Header» :
⋄ d’un numéro de séquence qui est stocké et incrémenté pour chaque bloc ;
⋄ d’une partie données qui va être chiffrée :
⋆ de taille multiple de 16 (ici, on choisira une taille max de 64) ;
⋆ composée de :
⊳ des données à échanger, data, sur au plus 44 octets (ici, 64 - 20 pour le HMAC) ;
⊳ d’un HMAC pour l’intégrité des données en clair ; 1 octet 1 octet 1 octet 1 octet 1 octet 1 octet
⊳ d’un «padding» : un nombre 𝑛 précédé par 𝑛 copies de lui-même : 0x00 ou 0x01 0x01 ou 0x02 0x02 0x02
TLS, «Transport Layer Security» 180
Différents blocs donnent différents padding
Ici, on a fixé la taille des données à 64 qui est un multiple de 16, soient 64 − 20 = 44 octets maximum de données.
D’où un «padding» de :
8 octets 5 octets 43 octets 20 octets 1 octet
Séq Hdr data HMAC 0x00
□ 1 pour 43 octets de données :
8 octets 5 octets 42 octets 20 octets 1 octet 1 octet
Séq Hdr data HMAC 0x01 0x01
□ 2 pour 42 octets :
8 octets 5 octets 41 octets 20 octets 1 octet 1 octet 1 octet
Séq Hdr data HMAC 0x02 0x02 0x02
□ 3 pour 41 octets :
Pour le déchiffrement d’un bloc
Chiffré Séq Hdr data HMAC Padding
P-F. Bonnefoi — Sécurité des Usages TIC

Hashé Séq Hdr data HMAC Padding

⊳ déchiffrer l’intégralité des données ;


⊳ regarder le dernier octet, le supprimer, ainsi que tous les octets de «padding» associés ;
⊳ localiser le HMAC (les derniers 20 octets après suppression du «pading») ;
⊳ calculer le HMAC :
⋄ prendre le numéro de séquence, les 5 octets d’en-tête, «Hdr» et le message ;
⋄ utiliser la clé partagée utilisée pour le HMAC.
⊳ si le HMAC est correct : accepter le bloc TLS.
Présentation du «Padding Oracle» 181

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

attaquant Vérification HMAC

6e82 0aeb a310 6e82 0aeb a310


8ca1 87d1 8d7a 8ca1 87d1 8d7a
916d 3d2c f1a7 916d 3d2c f1a7
a5bb a5c0

modifie modifié [Link]


P-F. Bonnefoi — Sécurité des Usages TIC

L’attaque par «padding oracle» :


– l’attaquant possède la capacité de modifier le chiffré :
⋄ dans le cas où il est dans le réseau local de sa victime, il peut utiliser de l’«ARP spoofing» pour rediriger le trafic
de la victime vers l’attaquant au lieu du routeur ;
⋄ sinon, il peut injecter du code Javascript pour forcer le navigateur de la victime à envoyer des requêtes HTTPS ;
– Si le serveur TLS se comporte différemment lors du déchiffrement :
⊳ avec un «padding» incorrect 1 ;
⊳ avec un «padding» correct ⟹ HMAC incorrect 2 ou HMAC correct 3 ;
⟹l’attaquant peut construire des chiffrés qui vont lui fournir suffisamment d’information pour retrouver le texte en
clair.
«Padding Oracle» : attaque sur TLS 182
[Link]
chiffré
6e82 0aeb a310
8ca1 87d1 8d7a
916d 3d2c f1a7
a5bb

1 «Padding» incorrect

2 «Padding» correct, mauvais HMAC réponses possibles

3 «Padding» correct, bon HMAC


Attaque
L’attaquant :
⊳ exploite la structure de CBC ;
⊳ construit 256 chiffrés dont le dernier octet se déchiffre entre 0x00 et 0xff :
P-F. Bonnefoi — Sécurité des Usages TIC

⋄ avec l’erreur retournée, il déduit lequel de ces messages se déchiffre vers 0x00, qui est un «padding» correct.

Chiffré Séq Hdr data ? HMAC 0xVV


le hash calculé est faux 0xVV varie de 0x00 à 0xff

Hashé Séq Hdr data . HMAC 0x00

une valeur correcte pour le «padding»


«Padding Oracle» : rappel sur CBC 183
Chiffrement CBC
bloc clair bloc clair bloc clair

Vecteur Init. ⊕ ⊕ ⊕
bloc à chiffrer bloc à chiffrer bloc à chiffrer

bloc chiffré bloc chiffré bloc chiffré

Déchiffrement CBC
bloc chiffré bloc chiffré bloc chiffré
P-F. Bonnefoi — Sécurité des Usages TIC

bloc déchiffré bloc déchiffré bloc déchiffré

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

chiffré préc. x bloc chiffré ⊳ 𝑚 est le dernier octet du message en clair ;


⊳ 𝑥 est le dernier octet du bloc chiffré précé-
dent qui peut être manipulé par l’attaquant ;
𝑎=𝑥⊕𝑚 bloc déchiffré a
⊳ 𝑎 est le dernier octet du bloc obtenu par
𝑚=𝑥⊕𝑎
⊕ déchiffrement du bloc chiffré courant relayé
par l’attaquant⟹ la cible de l’attaque.
bloc clair m

«Padding Oracle» tentative de récupération du dernier octet


L’attaquant essaye les 256 possibilités pour le dernier octet du bloc chiffré précédent en espérant que le chiffré
courant soit déchiffré vers la valeur zéro, ce qui lui donnera l’erreur 2 : «Padding correct, mauvais HMAC».
⊳ si le «padding» est correct⟹l’attaquant peut
P-F. Bonnefoi — Sécurité des Usages TIC

chiffré modifié c bloc chiffré


déterminer la valeur de 𝑎 ;

⊳ l’attaquant disposant de 𝑥, il lui est facile de


𝑎 = 𝑐 ⊕ 0x00 bloc déchiffré a retrouver 𝑚.
𝑚 = 𝑥 ⊕ 𝑐 ⊕ 0x00 L’attaquant dispose d’une méthode lui permet-
⊕ tant d’exploiter le serveur TLS pour lui faire ré-
véler la valeur de 𝑎⟹ il devient un «Oracle».
clair modifié 0x00
«Padding Oracle» : généralisation de l’attaque 185
Déchiffrement CBC en opération normale

chiffré préc. y x bloc chiffré ⊳ l’octet 𝑏 est la cible ;


⊳ l’octet 𝑦 est sous contrôle de l’attaquant ;
⊳ 𝑏 peut être déterminé par 𝑦 et 𝑛 ;
⟹𝑛 doit être manipulé pour faire partie du «pad-
𝑏=𝑦⊕𝑛 bloc déchiffré b a ding» !
𝑛=𝑦⊕𝑏 ⊳ une fois 𝑏 connu, 𝑛 est trouvable.

bloc clair n m

«Padding Oracle» tentative de récupération de l’avant dernier octet

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

⊳ l’octet 𝑛 va être manipulé pour atteindre une


𝑑 = 𝑎 ⊕ 0x01 bloc déchiffré b a valeur correcte pour un «padding» sur deux
𝑏 = 𝑒 ⊕ 0x01 octets, c-à-d 0x01;
𝑛 = 𝑦 ⊕ 𝑒 ⊕ 0x01 ⊕
⊳ l’attaquant envoi 256 messages avec les dif-
clair modifié 0x01 0x01 férentes valeurs possibles pour 𝑒
⟹ l’oracle nous révèle quelle est la bonne va-
leur de 𝑒 pour obtenir un bon «padding»,
c-à-d avec 𝑛 à 0x01.
«Padding Oracle» : conclusion et correction 186
Pourquoi l’attaque réussit ?
⊳ Le «padding» n’est pas authentifié ;
⊳ l’attaquant peut deviner la valeur en faisant la différence entre une bonne ou une mauvaise suggestion.
L’attaque ne révèle qu’un peu d’information sur le texte en clair à chaque tentative
⟹c’est une attaque par «side-channel», «canaux cachés», c-à-d une fuite d’information observable par un tiers.
La correction ?
⊳ retourner la même valeur d’erreur pour 1 et 2 ⟹l’attaquant n’a plus d’oracle ;
Mais...
Le travail du serveur n’est pas le même pour chaque cas :
⇒«padding» incorrect : lecture des octets de padding
⇒«padding» correct, mauvais HMAC : lecture des octets de padding, calcul du HMAC ;
⇒«padding» correct, bon HMAC : lecture des octets de padding, calcul du HMAC ;
En observant le temps de réponse du serveur en cas d’erreur, on peut découvrir s’il correspond à 1 ou 2 !
C’est une «timing attack» !
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

□ alternative au chiffrement + MAC.


□ fonctionne comme un chiffrement normal mais retourne un chiffré et un «tag» d’authentification.
Fonctionnement
⊳ 𝐴𝐸(𝐾, 𝑃) = (𝐶, 𝑇 ) ⊳ 𝐴𝐷(𝐾, 𝐶, 𝑇 ) = 𝑃
⊳ 𝐴𝐸 correspond à «authenticated encryption»; ⊳ 𝐴𝐷 correspond à «authenticated decryption»;
⟹ réalise le même travail qu’une combinaison de chiffrement Si 𝐶 ou 𝑇 sont invalides alors 𝐴𝐷 va retourner une erreur
et MAC, mais de manière plus simple, plus rapide et souvent et éviter au destinataire de traiter un message 𝑃 qui peut
plus sécurisée. avoir été «forgé».
⟹ Si 𝐴𝐷 retourne un «plaintext», on peut être sûr que
l’expéditeur connait la clé secrète.
Avantages
Un chiffrement authentifié est plus fort qu’un simple chiffrement car le déchiffrement n’aura lieu que si le «tag» d’au-
thentification est valide.
⟹ cela évite les attaques par choix du chiffré ,«chosen ciphertext», où l’attaquant crée des chiffrés et en demande le
P-F. Bonnefoi — Sécurité des Usages TIC

déchiffrement (comme dans l’attaque du «padding oracle» sur TLS).

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

Paquet avec chiffrement et authentification : □ l’entête, «Header», correspond à l’adresse du


Header Seq. Data
capteur ;

□ le ICV, «Integrity Check Value», correspond à


IV Plaintext
l’étiquette d’autentification calculée par AES-
Addtl Auth Data GCM, qui est au plus de 16 octets.

GCM Encryption Assure l’authentification et l’intégrité du mes-


sage grâce au GMAC, «Galois Message Au-
Ciphertext Authentication Tag thentication Code».

Header Seq. Encrypted Data ICV

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

By including tation des messages


the sequence number in dethe
taille
IV, supérieure à celle
we can satisfy the requirement that IV values be
unique. If thatd’un
number is less than 96 bits long, it can be concatenated with another value in order
paquet. GCM Decryption
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
GCM AES-GCM, «Galois Counter Mode» 190

Pour le chiffrement authentifié d’un paquet

Header Seq. Data Wikipedia


The authentication strength depends on the length of the
IV Plaintext authentication tag, as with all symmetric message au-
Addtl Auth Data thentication codes. However, the use of shorter authenti-
cation tags with GCM is discouraged.
GCM Encryption The bit-length of the tag, denoted 𝑡, is a security parame-
ter. In general, 𝑡 may be any one of the following five va-
Ciphertext Authentication Tag lues: 128, 120, 112, 104, or 96. For certain applications,
𝑡 may be 64 or 32, but the use of these two tag lengths
Header Seq. Encrypted Data ICV constrains the length of the input data and the lifetime of
GCM the key.
Pour
Figure 4: Using le déchiffrement
GCM authentifiéad’un
to encrypt and authenticate paquet
packet, showing how the fields of the security
Appendix C in NIST SP 800-38D provides guidance for
encapsulation map onto the inputs and outputs of the authenticated encryption mode.
Header Seq. Encrypted Data ICV
these constraints, for example :
⊳ if 𝑡 = 32 and the maximal packet size is 210 bytes, then
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. 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

On utilise les «hazmat», «hazardous materials» :


xterm
Python 3.7.6 (default, Dec 30 2019, [Link])
[Clang 11.0.0 (clang-1100.0.33.16)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
P-F. Bonnefoi — Sécurité des Usages TIC

>>> from [Link] import AESGCM


>>> data = b"message secret"
>>> aad = b"donnees authentifiees mais pas chiffree"
>>> key = AESGCM.generate_key(bit_length=128)
>>> aesgcm = AESGCM(key)
>>> nonce = [Link](12)
>>> ct = [Link](nonce, data, aad) le tag est concaténé aux données chiffrées
>>> [Link](nonce, ct, aad)
b'message secret'

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

Ceci est une promesse


P-F. Bonnefoi — Sécurité des Usages TIC

de vente que vous ne


pouvez refuser !
Le père Noël
33500 LIBOURNE

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.

□ création d’un nouvel objet juridique : la signature électronique de personne morale :


⋄ nouveau concept juridique – qui n’existait pas en droit Francais – à savoir la signature de per-
sonne morale ou cachet électronique.
Jusqu’à présent, seules les personnes physiques pouvaient créer une signature électronique. Les
entreprises, les administrations et les associations vont désormais pouvoir signer en leur nom
des documents qui seront recevables comme preuve en justice.
□ pas d’obligation de carte à puce : le recours à un support physique qualifié ne fait pas partie
P-F. Bonnefoi — Sécurité des Usages TIC

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

Il y a violation de secret de la correspondance lorsqu’une tierce personne en prend connaissance sans


le consentement préalable de l’émetteur d’un courrier à caractère privé ou en dehors du cadre de la Loi.

Une correspondance reste la propriété intellectuelle de son auteur bien que le support physique soit
la propriété du destinataire.

La convention européenne de sauvegarde des droits de l’Homme et des libertés fondamentales du 4


novembre 1950, rappelle en son article 8, «le droit au respect de la correspondance».

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é publique de Bob clé publique de Cédric clé publique


de Cédric
Bob envoie sa clé publique Cédric l’intercepte et
1 à Alice 2 envoie la sienne à sa place

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

message chiffré message chiffré


Message lisible par Bob lisible par Cédric Message
(modifié par Cédric)
Cédric chiffre le message, après Chiffrement du message à
l’avoir modifié s’il le souhaite, avec destination de Bob, avec la
4 3
la clé publique de Bob clé publique de Bob
Le problème de l’échange de clé publique 205
Le problème de la diffusion des clés publiques
Pour diffuser des clés publiques, on peut utiliser un annuaire (LDAP par exemple).

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

□ Être reconnu «comme de confiance» par les différents usagers :


⋄ un usager n’a plus à connaître directement un autre usager avec lequel il veut établir une relation
de confiance :
⋆ il connaît un tiers de confiance partagé avec cet autre usager ;
⋆ il établit un lien de confiance avec cet autre usager au travers du tiers.
P-F. Bonnefoi — Sécurité des Usages TIC

C’est le modèle du «tiers de confiance».

Composants d’une PKI


∘ des certificats électroniques ;
∘ des autorités d’enregistrement, «Registration Authority», et de certification, «Certification Autho-
rity» ;

∘ un procédé standardisé de vérification.


Le certificat 207
La carte d’identité de la clé publique
Le certificat contient :
□ une identité ;
□ la clé publique associée à cette identité ;
□ une preuve de cette association fournie par le tiers de confiance.
Comment fournir la preuve de la confiance du tiers ?
Utiliser la signature électronique de ce tiers !

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

⇒A s’enregistre auprès de l’AC ⇒B s’enregistre auprès de l’AC


⇒l’AC donne un certificat 𝐶𝐴 à A ⇒l’AC donne un certificat 𝐶𝐵 à B
Signé avec la clé privée associée à 𝐶𝐴𝐶 Signé avec la clé privée associée à 𝐶𝐴𝐶

Comment établir un canal sécurisé entre A et B à un instant 𝒕 ?


3 1 5 4
P-F. Bonnefoi — Sécurité des Usages TIC

2 4

A 𝐶𝐵 B A B A 5 B

⇒A veut communiquer avec B ⇒A lance un «challenge» ⇒échange utilisant 𝑘𝑆


⇒B envoie son certificat 𝐶𝐵 à A ⇒B s’authentifie auprès de A avec une «ré- ⇒échange utilisant 𝑘𝑆
⇒A vérifie que 𝐶𝐵 est bien signé par 𝐶𝐴𝐶 ponse»
une clé de session 𝑘𝑆 est partagée
⟹ L’AC n’a pas besoin d’être tout le temps accessible par A et B.
⟹ Les certificats embarquent la confiance. Ici, seul B s’est authentifié auprès de A (modèle du Web).
Confiance dans la PKI : confiance dans la CA associée 210
Connaissance et acceptation d’un tiers de confiance
Cela consiste à adhérer auprès de l’autorité de certification qui représente le tiers de confiance.
Cette CA, «Certification Authority», émets des certificats.
Cet organisme intègre sa clé publique au niveau :
□ du navigateur de la machine dans le cas de la sécurisation d’une transaction web ;
□ du système d’exploitation pour la vérification des mises à jour ou l’installation de logiciel.
P-F. Bonnefoi — Sécurité des Usages TIC
3. Les bases de la cryptographie

g. Certificats électroniques

Comment connaitre les autorités de certification ?


• Elles sont directement intégrées par les éditeurs dans les systèmes d’exploitation
et/ou les navigateurs ;
• L’utilisateur est également libre de rajouter l’autorité de certification de son choix si il
choisit de faire confiance à des certificats signés par une autorité non-intégrée dans
son navigateur.
P-F. Bonnefoi — Sécurité des Usages TIC

Image : magasin de certificats de Firefox


21/09/2015 Sensibilisation et initiation à la cybersécurité 60
3. Les bases de la cryptographie

g. Certificats électroniques
Exemple d’un certificat pour le site web [Link]

Les détails techniques du


certificat, la clé et la
signature se trouvent dans
Détails

Détenteur de
la clé publique
P-F. Bonnefoi — Sécurité des Usages TIC

Autorité de
certification

Dates de validité du
certificat

21/09/2015 Sensibilisation et initiation à la cybersécurité 61


3. Les bases de la cryptographie

g. Certificats électroniques
Où trouver les certificats dans un navigateur ?
Exemple avec Firefox pour ouvrir le certificat d’un site WEB

Cliquer sur le cadenas à côté de l’URL


P-F. Bonnefoi — Sécurité des Usages TIC

Cliquer ici pour afficher le certificat


21/09/2015 Sensibilisation et initiation à la cybersécurité 62
Associer identité et clé publique : la notion de certificat 214
Notion de certificat
Un certificat permet d’associer une clé publique à une entité (une personne, une machine, ...) afin
d’en assurer la validité.
Ce certificat doit ne pas pouvoir être modifié, ni créer sans contrôle : il faut à la fois intégrité et authen-
tification du créateur.
période
Contenu du Certificat Nom de l’entité de Attributs
clé publique Validité

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.

□ Classe 1 = une clé publique associée à une adresse email.


⋄ le demandeur recoit automatiquement un mail de confirmation ;
⋄ il n’y a pas de vérification de l’identité du titulaire.
Il permet de faire de la signature de courrier électronique et du chiffrement de contenu. suffisant pour un
particulier, service parfois gratuit.

□ Classe 2 = la vérification des informations d’identité fournies est effectuée,


⋄ la présentation physique peut être nécessaire ;
⋄ il y aura compensation financière en cas de litige ;
⋄ il permet de faire :
⋆ la même chose qu’un classe 1, mais avec de plus grandes garanties
P-F. Bonnefoi — Sécurité des Usages TIC

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

□ Classe 3 = la vérification des informations d’identité fournies est effectuée,


⋄ la présentation physique est nécessaire ;
⋄ il y aura compensation financière en cas de litige ;
Un certificat de classe 3 permet de créer sa propre CA et de délivrer des certificats en interne.
Enregistrement auprès de l’AC 217

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

installe le certificat PKCS#7


3

⇒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

CertificationRequest contentType (OID)

CertificationRequestInfo content :

Version Type : Data

Name or signedData

subjectPublicKeyInfo or envelopedData

attributes or signedAndEnvelopedData

signatureAlgorithm or digestData

digital signature or encryptedData


P-F. Bonnefoi — Sécurité des Usages TIC

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

Ainsi, l’interlocuteur peut vérifier la signature de l’autre interlocuteur.

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

21/09/2015 Sensibilisation et initiation à la cybersécurité 63


Certificat : contenu détaillé 221
identité du sujet : FQDN ou identité
Certificat au format X509 v3
Subject [Link] émetteur du certificat
Issuer Mon AC
Not Valid after 1/1/2025
Not Valid before 1/1/2019 durée de validité
CDP, CRL Distribution Points URL=[Link]
AIA, Authority Information Access URL=[Link]
Public key Algorithm RSA Encryption ( 1.2.840.113549.1.1.1 ) les usages possibles de la clé publique
Extended Key Usage ( [Link] ) Client Authentication ( [Link].[Link].2 )
Email Protection ( [Link].[Link].4 )
Serial number 1054459 permet d’identifier de manière unique le certificat pour la CRL par exemple
Public Key 256 bytes : A7 A1 7F A7 14 9F C9 65 6A F1 C2 3F 94 5A 98 4D C0 3F 35 15 85
4E 86 00 D4 08 A4 CF 6E B8 31 26 8D C3 0D 16 58 DD BD 58 33 CB A5...
P-F. Bonnefoi — Sécurité des Usages TIC

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

permet d’identifier le certificat et son contenu : il est calculé localement


te. more flexible organization of the Internet, as specified in RFC 3280, and is
Specifies the dates commonly referred to as PKIX for Public Key Infrastructure X.509.
ich the certificate is Figure 6.7 shows the actual values of the different certificate fields for a
e. particular certificate in Internet Explorer. The version of this certificate is V3
pecifies the owner (X.509 v3) and the serial number is also listed—this number is unique for
Le contenu d’un certificat
cate.
Identifies the
eing bound to the
bject; also identifies
m used to create
public key pair.
usage Specifies
d use of the
which dictates
e of this public key.
Allow
ata to be encoded
tificate to expand
nality of the
P-F. Bonnefoi — Sécurité des Usages TIC

Companies can
he use of
P-F. Bonnefoi

within their
ts by using these
X.509 version 3
d the extension
.
91

• Figure 6.7 Fields within a digital certificate


Le certificat sur machine 223
Deux formats de stockage pour le certificat
□ DER, «Distinguished Encoding Rules»
⋄ représentation des différents champs au format ASN.1 :
ASN.!: Certificate ::= SEQUENCE{
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING
}

□ PEM, «Privacy Enhanced Mail»


⋄ utilisation de l’encodage base64 pour coder le contenu du certificat au format DER ;
⋄ un délimiteur de début et de fin :
-----BEGIN CERTIFICATE-----
MIIE9DCCA9ygAwIBAgISAW8vmnSJXCcjcbEoeBrtUpckMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMTAeFw0xNjAxMTgxOTE5MDBaFw0x
...
NjA0MTcxOTE5MDBaMBMxETAPBgNVBAMTCHAtZmIubmV0MIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAr3DjZ6mag9uY8JzAavAD9gRhtZQdMtvf9dcFDAgy
P-F. Bonnefoi — Sécurité des Usages TIC

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

Un certificat est un petit fichier séparé en deux parties :


— une contenant les informations suivantes (norme ISO X509 utilisée par les annuaires) :
le nom de l'autorité de certification appelé Issuer
le nom du propriétaire du certificat appelé Subject
la date de validité du certificat très important
l'algorithme de chiffrement utilisé
la clé publique du propriétaire
un numéro de version définie la version de X509 utilisée
un numéro de série identifier le certificat sur la CA qui l’a délivré
l’algorithme de signature utilisé
les usages du certificat signature, chiffrement, authentification web…
des extensions
– une autre contenant la signature de l'autorité de certification
P-F. Bonnefoi — Sécurité des Usages TIC

La notion de DN, « Distinguished Name »


The distinguished name is a label that follows the X.500 standard.
This standard defines a naming convention that can be employed so that
P-F. Bonnefoi

each subject within an organization has a unique name.

An example is { Country = US,


Organization = Real Secure,
Organizational Unit = R&D,
Location = Washington }.
CAs use distinguished names to identify the owners of specific certificates.
93
Le certificat de la « CA »
Un certificat « auto-signé »
Il est
- installé directement dans l’OS ou le navigateur Web
- signé par la CA elle-même : intégrité, preuve de possession de la clé privée.
P-F. Bonnefoi — Sécurité des Usages TIC

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é

récupère La personne vérifie la signature du certificat de l’entité


à l’aide de la clé publique de l’AC

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

La personne vérifie que le certificat de l’entité n’est pas révoqué


(la liste de révocation est elle-même signée par l’AC)
Composition d’une PKI : établissement de la confiance 230
Autorité Liste
Certification certificat Révocation
de l’AC

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

La personne a établi la confiance dans l’entité,


elle extrait la clé publique de l’entité
elle peut authentifier l’entité ou lui transmettre un message chiffré.
so on), an application, a department, a company, or a person. Each has its
own identity that needs to be verified and proven to another entity before
secure, trusted communication can be initiated. If a network device is using
a certificate for authentication, the certificate may contain the network ad-
dress of that device. This means that if the certificate has a network address
of [Link], the receiver will compare this to the address from which it re-
Des certificats
ceived pour
the certificate qui
to make ? aPour
sure Quoi ? attack is not being
man-in-the-middle
attempted.
Certificate Attributes

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

sued by a superior CA within a hierarchical


model. In the model in Figure 6.8, the supe-
rior CA gives the authority and allows the
subordinate CA to accept certificate requests
and generate the individual certificates itself.
This may be necessary when a company
needs to have multiple internal CAs, and dif-
96
ferent departments within an organization
need to have their own CAs servicing their • Figure 6.8 End-entity and CA certificates
specific end-entities in their sections. In these
situations, a representative from each department requiring a CA registers
with the higher trusted CA and requests a Certificate Authority certificate.
trust paths reside. The
tificate before she can trust Sam’s digital signature. Included in Sam’s certif- sically inaccessible.
implementation to rest
icate is an issuer field, which indicates that the certificate was issued by Leaf few trust paths as pos
D CA. Debbie has to obtain Leaf D CA’s digital certificate and public key to used: the hierarchical,
validate Sam’s certificate. Remember that Debbie validates the certificate by following sections.
verifying its digital signature. The digital signature was created by the cer-
tificate issuer using its private key, so Debbie needs to verify the signature Hierarchical
Valider la « chaîne
using the issuer’s » de certificat
public key. The hierarchica
Debbie tracks down Leaf D CA’s certificate and public key, but she now tains a root CA
La notion de chaîne de certificat
needs to verify this CA’s certificate, so she looks at the issuer field, which in- configuration
The root CA is
dicates that Leaf D CA’s certificate was issued by Intermediate B CA. Debbie
Il peut exister une « hiérarchie de confiance » : infrastructure
now needs to get Intermediate B CA’s certificate and public key.
- simplifier les procédures d’enregistrement ; CAs, which in
-Debbie’s
simplifierclient software
la gestion destracks this down
certificats ; and sees that the issuer for In- leaf CAs gene
termediate B CAcertaines
- spécialiser is the rootCA
CA, for which shedans
intermédiaires already has a certificate and
certain devices, and a
public key. So Debbie’s client software had to follow the certificate path,
domaines. Intermedia
meaning it had to continue to track down and collect certificates until it CAs. These CA
came upon a self-signed certificate. A self-signed certificate indicates that it subordinate t
walked up fro
was signed by a root CA, and Debbie’s software has been configured to trust
sence the sub
this entity as her trust anchor, so she can stop there. Figure 6.13 illustrates reference.
the steps Debbie’s software had to carry out just to be able to verify Sam’s As shown
Ilcertificate.
faut valider l’ensemble des certificats de la chaîne all unidirectio
• Figure 6.12 The hierarchical trust model outlines no other entity
trust paths. creates a self-si
P-F. Bonnefoi — Sécurité des Usages TIC

142
P-F. Bonnefoi

P:\010Comp\BaseTech\375-8\[Link]
Thursday, November 12, 2009 [Link] PM

97

• Figure 6.13 Verifying each certificate in a certificate path


key from the CRL and continue to use the pri
tegrity of the list also needs to be protected to
added to it. Otherwise, anyone could add ano
list and effectively revoke that person’s cer
Vérification d’un certificat et la CRL should be able to modify any information on
The mechanism used to protect the integr
Vérification d'un certificat
ture. The CA’s revocation service creates a dig
L'utilisation que fait le titulaire du certificat ne concerne plus l'AC, mais les diverses applications qui
sont compatibles. shown in Figure 6.9. To validate a certificate, t
Vérifier que le certificat n'a pas expiré, c'est-à-dire que where
— sa date de
thevalidité
CRL is estposted,
correctedownloads
; the list
Authentifier l'empreinte (provenance de l'AC avec sa clé publique) et l'intégrité (pas de

signature to ensure that the proper authority
modification du certificat avec une fonction de hachage) ;
consulter la liste de révocation de l'AC pour savoir s'il n'a
— that the
pas étélist was (l'AC
révoqué not peut
modified in an unautho
retirer sa
confiance à un certificat, le propriétaire du certificat peut avoir perdu sa clé privée...). looks through the
Cette liste de révocation ou CRL, « certificate revocation list » est constituée de :
serial number of
to validate is list
the list, the priv
trusted, and the p
used. This can be
has been automat
P-F. Bonnefoi — Sécurité des Usages TIC

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

5 Cessation; the certificate is no longer needed, but no reason exists to


suspect it has been compromised
P-F. Bonnefoi

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

§ CRLSign : la clé peut être utilisée pour signer la CRL


§ Etc.
P-F. Bonnefoi

Il existe des extensions « critical » ou « noncritical » :


§ Cela correspond à un « drapeau » placé dans le certificat ;
§ Si une extension est marquée « critical », il faut que l’extension doit être comprise et traitée
correctement par le récepteur. Dans le cas où le récepteur ne sait pas gérer une extension
critique, alors il ne doit pas utiliser le certificat.
Le certificat ne peut servir qu’à l’usage spécifié comme critique.
§ Si une extension est marquée comme « noncritical » alors la clé publique peut servir à d’autres
100 usages que ceux spécifiés dans le certificat.
Identifier les éléments de la sécurité : l’OID
La notion d’OID, « Object Identifier »
Un OID est un identifiant servant à nommer un objet, lorsque l’on désire que cet identifiant soit
reconnu de manière internationale et pour une très longue durée.

Cet identifiant est :


- associé à un nœud dans un espace de nom hiérarchique
- définie de manière formelle par le standard ASN.1 de l’ITU-T, appelé X690
- une succession de nombre séparés par des points, chacun identifiant un nœud de l’arbre.

Le premier nœud identifie la nature de l’identifiant :


0 : ITU-T
1 : ISO
2 : définition conjointe ITU-T et ISO

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

Si on consulte le site [Link], on obtient l’info :


P-F. Bonnefoi — Sécurité des Usages TIC

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

□ Empreinte du message à horodater ;


□ Numéro de série unique ;
□ Signature du tiers horodateur ;
□ Diverses autres informations de service.
Archivage électronique, scellement
Garantir :
⊳ l’intégrité dans le temps ;
⊳ la pérennité de l’information.
L’Horodatage 241

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

0101010110011010110101 Date Heure


0111010000101101
Jeton d’horodatage

1010100110000 AAAAMMDD HHMMSS

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]

Home Projects [Link] Contact

You are here: Home > Projects > SSL Server Test

SSL Server Test


This free online service performs a deep analysis of the configuration of any SSL web server on the public Internet. Please note that the
information you submit here is used only to provide you the service. We don't use the domain names or the test results, and we never
will.

Hostname: Submit

Do not show the results on the boards

Recently Seen Recent Best Recent Worst

[Link] [Link] ... A+ [Link] F

[Link] [Link]-datenschutzkanz ... A+ [Link] T

[Link] Err [Link] A+ [Link] F

[Link] [Link] A+ [Link] F


P-F. Bonnefoi — Sécurité des Usages TIC

[Link] [Link] A [Link] T

[Link] [Link] A [Link] F

[Link] [Link] A [Link] T

[Link] Err [Link] A [Link] F

[Link] inovasikampungdistrikdepapre ... B [Link] F

[Link] [Link]. ... C [Link] T

SSL Report v1.31.0

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

Secure browser connections can be intercepted and decrypted


by authorities who spoof the authentic site's certificate. But
the authentic site's fingerprint CANNOT be duplicated!

Domain Name Certificate Name EV Security Certificate's Authentic Fingerprint


[Link] [Link] [Link]
[Link] *.[Link] — [Link]
[Link] [Link] [Link]
[Link] *.[Link] — [Link]
[Link] [Link] [Link]
[Link] *.[Link] — [Link]
[Link] [Link] — [Link]
[Link] *.[Link] — [Link]
[Link] [Link] [Link]
P-F. Bonnefoi — Sécurité des Usages TIC

[Link] *.[Link] — [Link]

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.

Custom Site Fingerprinting

In addition to the well­known web sites listed above, GRC's web server can obtain and display the “fingerprint” of any
HTTPS­capable 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.

What's this about?


The Internet is a cooperative PUBLIC DATA NETWORK. Its data traffic flows around the globe freely, transported by an
incredible variety of intermediate carriers. These carriers cooperate because they need each other equally: “I'll carry
Extended Validation Certificate 244

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 use the same encryption as organization-validated certificates and domain-validated


certificates: the increase in security is due to the identity validation process, which is indicated within
the certificate by the policy identifier.

EV certificates are validated against both the Baseline Requirements and the Extended Valida-
tion requirements, which place additional requirements on how authorities vet companies.

These include manual checks :


⊳ of all the domain names requested by the applicant ;
P-F. Bonnefoi — Sécurité des Usages TIC

⊳ against official government sources ;


⊳ against independent information sources ;
and phone calls to the company to confirm the position of the applicant.
If the certificate is accepted, the government-registered serial number of the business as well
as the physical address are stored in the EV certificate.
P-F. Bonnefoi — Sécurité des Usages TIC

Extended Validation Certificate


245
P-F. Bonnefoi — Sécurité des Usages TIC

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.

Plus rarement authentifier le client.


SSL -> POPS, IMAPS, LDAPS, SMTP/TLS, …
— VPN et IPsec

SSL: Secure Socket Layer


P-F. Bonnefoi — Sécurité des Usages TIC

Principe :
— utiliser une couche avec chiffrement et authentification au dessus de TCP/IP ;
P-F. Bonnefoi

— implémenter par dessus le protocole de communication (SMTP, POP, HTTP, etc.) ;

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

ey Cryptography Standards (PKCS),


nd X.509. Other protocols and standards
elp define the management and opera-
P-F. Bonnefoi

on of the PKI and related services—


nternet Security Association and Key
Management Protocol (ISAKMP) and
ML Key Management Specification
XKMS) are both key management proto-
ols, while Certificate Management Pro-
ocol (CMP) is115used for managing
ertificates. Wired Equivalent Privacy • Figure 7.1 Relationships between PKI standards and protocols
WEP) is used to encrypt wireless com-
munications in 802.11 environments to support some of the more applica-
on-oriented standards and protocols: Secure/Multipurpose Internet Mail
xtensions (S/MIME) for e-mail; Secure Sockets Layer (SSL), Transport
Des protocoles de gestion de clés
§ Internet Security Association and Key Management Protocol (ISAKMP)
§ XML Key Management Specification (XKMS)

Des protocoles de gestion de certificats


§ Certificate Management Pro- tocol (CMP).

Des protocoles de gestion de communication chiffrées :


§ Wired Equivalent Privacy (WEP) pour chiffrer des communications sans fil 802.11 ;
§ IP Security (IPsec) et Point-to-Point Tunneling Protocol (PPTP) pour réaliser des VPNs.
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

(WTLS) pour des communications sécurisées ;


§ Hypertext Transfer Protocol Secure (HTTPS) pour les navigateurs Web.

116
Color profile: Disabled
Composite Default screen
BaseTech / Principles of Computer Security: CompTIA Security+™ and Beyond / Gregory B. White / 375-8 / Chapter 7

Le modèle PKIX et les RFCs associées


Table 7.1 PKIX Subjects and Related RFCs
Subject RFC Number Title Notes
Certificates and RFC 3281 An Internet Attribute Certificate Profile for
CRL profiles Authorization
RFC 3739 Internet X.509 Public Key Infrastructure: Qualified Obsoletes
Certificates Profile RFC 3039
RFC 4055 Additional Algorithms and Identifiers for RSA
Cryptography for Use in the Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation
List (CRL) Profile
RFC 4476 Attribute Certificate (AC) Policies Extension
RFC 5055 Server-based Certificate Validation Protocol (SCVP)
RFC 5280 Internet X.509 Public Key Infrastructure Certificate Obsoletes RFC
and Certificate Revocation List (CRL) Profile 4630, RFC
4325, RFC 3280
Certificate RFC 2560 X.509 Internet Public Key Infrastructure Online
management Certificate Status Protocol – OCSP
protocols RFC 3709 Internet X.509 Public Key Infrastructure: Logotypes in
X.509 Certificates
RFC 3820 Internet X.509 Public Key Infrastructure Proxy
Certificate Profile
RFC 4043 Internet X.509 Public Key Infrastructure Permanent
Identifier
RFC 4059 Internet X.509 Public Key Infrastructure Warranty
Certificate Extension
RFC 4158 Internet X.509 Public Key Infrastructure: Certification
Path Building
RFC 4210 Internet X.509 Public Key Infrastructure Certificate Obsoletes
Management Protocols RFC 2510
P-F. Bonnefoi — Sécurité des Usages TIC

RFC 4211 Internet X.509 Public Key Infrastructure Certificate Obsoletes


Request Message Format (CRMF) RFC 2511
RFC 4386 Internet X.509 Public Key Infrastructure Repository
Locator Service
RFC 4387 Internet X.509 Public Key Infrastructure Operational
P-F. Bonnefoi

Protocols: Certificate Store Access via HTTP


RFC 4683 Internet X.509 Public Key Infrastructure Subject
Identification Method (SIM)
RFC 4985 Internet X.509 Public Key Infrastructure Subject
Alternative Name for Expression of Service Name
RFC 5272 Certificate Management Messages over CMS Obsoletes
RFC 2797
RFC 5273 Certificate Management over CMS (CMC): Transport
Protocols
RFC 5274 Certificate Management Messages over CMS (CMC):
Compliance Requirements
Certificate policies RFC 3647 Internet X.509 Public Key Infrastructure Certificate Obsoletes
117 and CPSs Policy and Certification Practices Framework RFC 2527
(continued)

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

Le modèle PKIX et les RFC associées


Table 7.1 PKIX Subjects and Related RFCs (continued)
Subject RFC Number Title Notes
Operational RFC 2528 Internet X.509 Public Key Infrastructure
protocols Representation of Key Exchange Algorithm (KEA)
Keys in Internet X.509 Public Key Infrastructure
Certificates
RFC 2585 Internet X.509 Public Key Infrastructure Operational
Protocols: FTP and HTTP
RFC 3779 X.509 Extensions for IP Addresses and AS Identifiers
RFC 4334 Certificate Extensions and Attributes Supporting Obsoletes
Authentication in Point-to-Point Protocol (PPP) and RFC 3770
Wireless Local Area Networks (WLAN)
RFC 5019 The Lightweight Online Certificate Status Protocol
(OCSP) Profile for High-Volume Environments
Time-stamp and RFC 2875 Diffie-Hellman Proof-of-Possession Algorithms
data validation RFC 3029 Internet X.509 Public Key Infrastructure Data
Validation and Certification Server Protocols
P-F. Bonnefoi — Sécurité des Usages TIC

RFC 3161 Internet X.509 Public Key Infrastructure Time Stamp


Protocols (TSP)
RFC 3628 Policy Requirements for Time-Stamping Authorities
P-F. Bonnefoi

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

of these standards as a basis for achieving interoperability between different


Color profile: Disabled
Composite Default screen
BaseTech / Principles of Computer Security: CompTIA Security+™ and Beyond / Gregory B. White / 375-8 / Chapter 7

Les formats PKCS


Table 7.2 PKCS Standards
Standard Title and Description
PKCS #1 RSA Cryptography Standard: Definition of the RSA
encryption standard.
PKCS #2 No longer active; it covered RSA encryption of message
digests and was incorporated into PKCS #1.
PKCS #3 Diffie-Hellman Key Agreement Standard: Definition of the
Diffie-Hellman key-agreement protocol.
PKCS #4 No longer active; it covered RSA key syntax and was
incorporated into PKCS #1.
PKCS #5 Password-Based Cryptography Standard: Definition of a
password-based encryption (PBE) method for generating a
secret key.
PKCS #6 Extended-Certificate Syntax Standard: Definition of an
extended certificate syntax that is made obsolete by X.509 v3.
PKCS #7 Cryptographic Message Syntax Standard: Definition of the
cryptographic message standard for encoded messages,
regardless of encryption algorithm. Commonly replaced with
PKIX Cryptographic Message Syntax.
PKCS #8 Private-Key Information Syntax Standard: Definition of a
private key information format, used to store private key
information.
PKCS #9 Selected Attribute Types: Definition of attribute types used in
other PKCS standards.
P-F. Bonnefoi — Sécurité des Usages TIC

PKCS #10 Certification Request Syntax Standard: Definition of a syntax


for certification requests.
PKCS #11 Cryptographic Token Interface Standard: Definition of a
technology-independent programming interface for
cryptographic devices (such as smart cards).
P-F. Bonnefoi

PKCS #12 Personal Information Exchange Syntax Standard: Definition


of a format for storage and transport of user privates keys,
certificates, and other personal information.
PKCS #13 Elliptic Curve Cryptography Standard: Description of
methods for encrypting and signing messages using elliptic
curve cryptography.
PKCS #14 Pseudo-random Number Generation: A standard for pseudo-
random number generation.
PKCS #15 Cryptographic Token Information Format Standard:
Definition of a format for storing cryptographic information
119 in cryptographic tokens.

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

Le navigateur se connecte au port 80 du serveur Web en HTTP et envoie sa requête :


GET [Link]
host: [Link]

Mais en HTTPS, est-ce que cela marche ?


122 Le SNI, « Server Name Indication »
Color profile: Disabled
Établissement de la connexion SSL
Composite Default screen
BaseTech / Principles of Computer Security: CompTIA Security+™ and Beyond / G
Différentes étapes
§ Négociation des algorithmes de crypto à utiliser ;
§ Authentification du serveur (celle du client peut être demandée);
§ Mise en place des éléments de sécurité (choix algo+clés) ;
§ Passage en mode de communication chiffrée.

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

data into manag


presses the data, a
code (MAC) to the
the result. Receive
compressed, and r
123
to higher-level clie
The TLS Hand
• Figure 7.4 TLS Handshake Protocol
lowing steps, whic
Déroulement de la communication
Différents types de messages
§ SSL correspond à une connexion TCP
dans laquelle circule des messages.

§ Il y a négociation des moyens crypto ;

§ Il y a authentification des interlocuteurs ;

§ 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

§ Le numéro de version : SSLv3/TLSv1


Il y a rétro-compatibilité :
la connaissance de la v3 implique
celle de la v2.
Si le client envoi un V3 est le serveur
est en v2, alors le client peut décider
de continuer ou non en v2.
Attention : il peut y avoir des failles
en employant de vieilles versions.

§ Une valeur aléatoire servant à


initialiser les différents protocoles cryptographiques
Pour rendre cette valeur différente à chaque connexion on y met la date et l’heure (4 octets sur
les 32 octets). On évite ainsi les « rejeu » ou « replay ».
P-F. Bonnefoi — Sécurité des Usages TIC

Les 28 octets suivants sont choisis de manière aléatoire robuste (PRNG).

§ Un identifiant de session, pour éventuellement reprendre une session déjà mise en place lors
P-F. Bonnefoi

d’une ancienne connexion TCP (il peut être vide).

§ Les « CipherSuites » donnent la liste des algorithmes supportés par le client.

§ Les « CompressionMethods » : permet de faire de la compression avant le chiffrement avec un


algorithme proposé.
Attention : la compression de données chiffrées est impossible car son entropie doit être
126 maximale ! Ou alors il y a une faille dans l’implémentation…
Le protocole SSL
Le message ServerHello
Il est similaire au ClientHello, avec un SessionID qui est toujours différent de vide.
C’est à ce moment qu’est décidé :
§ l’usage de la version de SSL
§ le choix des algorithmes cryptographiques et des tailles de clé pour la session.
Le message ServerKeyExchange ou message Certificate
Ce message contient la clé asymétrique publique du Serveur (attention, le contenu de ce message
n’est pas chiffré).
Le format du message dépend de l’algorithme choisi (pour RSA, le message contient l’exposant public
et le module de la clé publique du serveur).
Il peut aussi transmettre un certificat pour assurer son authentification en mode PKI.
Dans le cas où la clé publique ne peut servir au chiffrement, il faut ajouter un ServerKeyExchange,
contenant une clé asymétrique publique signée par le certificat.

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

pour chiffrer les échanges : « Master-Key ».


Cette « Master-Key » est chiffrée à l’aide de la clé publique du serveur (elle est échangée de manière
sécurisée).
P-F. Bonnefoi

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

Attention à la sécurité : plus la session est


prolongée plus elle peut être attaquée.

Par contre c’est très intéressant dans le cas


du Web où différentes requêtes arrivent
très rapidement.
P-F. Bonnefoi — Sécurité des Usages TIC

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

§ Échange de fichiers de manière sécurisée « en direct » :


scp mon_fichier toto@mon_adresse_machine:mon_fichier

scp –r toto@mon_dresse_machine:mon_repertoire mon_chemin

§ Échange de fichiers de manière sécurisée « à la ftp » :


sftp toto@mon_adresse_machine
sftp>
P-F. Bonnefoi — Sécurité des Usages TIC

§ Redirections de connexion TCP (on désignera « relais », la machine à laquelle on se connecte en


SSH).
P-F. Bonnefoi

§ 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

132 ssh –L <port_local_P>:<adresse_S>:<port_cible_W> toot@adresse_B


ssh –g –L … l’option –g, gateway, permet à une machine C d’emprunter le tunnel
SSH : redirection ou « forwarding », distante
Locale :

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 »

ssh –ND <port> toto@ma_machine

On peut se servir de ce serveur socks dans son navigateur Web :


P-F. Bonnefoi — Sécurité des Usages TIC

Ici, on lance :
ssh –ND 1080 toto@machine
Et on configure l’accès au serveur SOCKS
P-F. Bonnefoi

sur le port 1080

Ainsi chaque nouvelle connexion du


navigateur est recréée et tunnelisée
par l’intermédiaire de la connexion SSH.

134

Vous aimerez peut-être aussi