Cryptographie
Plan
l Généralités
l Cryptosystèmes symétriques
l Cryptosystèmes asymétriques
l Infrastructure à clefs publiques ou PKI
l Protocoles sécurisés
l A ne pas faire !
2 Dpt R&T JLD
Généralités
Définitions
l La cryptographie consiste à protéger un
message des personnes non habilitées à en
prendre connaissance
l La cryptanalyse regroupe les techniques
permettant à une personne non habilitée
d'accéder à un message qui ne lui était pas
destiné
l La cryptologie = cryptographie + cryptanalyse
4 Dpt R&T JLD
Objectifs de la cryptographie
l Confidentialité : l’information ne peut être lue
par une personne non autorisée
l Intégrité : l’information ne peut être modifiée
par une personne non autorisée
l Authenticité : l’information est attribuée à son
auteur légitime
l Non-répudiation : l’information ne peut faire
l’objet d’un déni de la part de son auteur
5 Dpt R&T JLD
Cryptosystème
l Ensemble d’algorithmes nécessaires à la mise
en œuvre d’un objectif cryptographique
l Types de cryptosystème :
– symétrique (ou à clé secrète)
– asymétrique (ou à clé publique)
6 Dpt R&T JLD
Législation en France
l L'usage de la cryptographie en France est
autorisée depuis 2004 sans restriction (La
Confiance dans l'Economie Numérique)
l Mais la fourniture, l’importation, le transfert
intracommunautaire et l’exportation d’un moyen
de cryptologie sont en revanche soumis, sauf
exception, à déclaration ou à demande
d’autorisation auprès de l’ANSSI par le
fournisseur
7 Dpt R&T JLD
Législation à l'étranger
l Différente dans chaque pays
– des pays restreignent l'usage de la cryptographie sur
leur sol (Russie, Chine,…)
– d'autres permettent à leurs services de se livrer à des
interceptions légales (même hors de leurs frontières
Patriot Act pour les U.S.) sans justification...
https://www.ssi.gouv.fr/administration/guide/partir-en-
mission-avec-son-telephone-sa-tablette-ou-son-ordinateur-
portable/
8 Dpt R&T JLD
Cryptosystèmes
symétriques
Principe de base
Le Le
texte texte
en en
clair clair
&ase
12!qw &ase
s34 12!qw
aax!a s34
aax!a
l Une même clef est utilisée pour le chiffrement
et le déchiffrement
l Clef de taille réduite (entre 128 et 256 bits)
l Algorithme rapide et facile à mettre en œuvre
10 l Fiable (si la clef est aussi longue que le texte) Dpt R&T JLD
Problèmes
l Nombre de clefs à créer = n*(n-1)/2
Nb de personnes Nb de clef
2 1
3 3
50 1225
1000 499500
l Échange sécurisé des clefs
l Difficile d'assurer
– l’authentification
– la signature (authenticité + intégrité)
– la non répudiation
11 Dpt R&T JLD
Mode de fonctionnement
ANSSI : Dangereux, Possible, Recommandé
l Chiffrement par flot
– Le message à chiffrer est de taille inconnue
– Chaque bit/caractère est chiffré différemment au fur et à
mesure
– Algorithmes existants : RC4, RC5 , ChaCha20
l Chiffrement par bloc
– Le message à chiffrer est de taille connue
– Le message est découpé en blocs de taille fixe qui sont
ensuite chiffrés avec la même clef
– DES, 3DES (sous certaines conditions), AES
12 Dpt R&T JLD
Fonction de hachage - Principe
l Algorithme basé sur une fonction mathématique qui
transforme une donnée de taille arbitraire en une
chaine de bits de taille fixe (emprunte ou condensat)
l Exemples :
Clef RIB = 97 – ((89 x Etablissement + 15 x Guichet +3 x Compte ) mod 97 )
Etablissement Guichet Compte Clef RIB
14518 29267 02833165830 46
FCS dans une trame calculé par l'algorithme CRC-32 à partir du polynôme
x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1
13 Dpt R&T JLD
Fonction de hachage - Propriétés
l Une fonction de hashage étant unidirectionnelle, il
n’est théoriquement pas possible de retrouver la
chaîne originelle à partir du hash
l Deux chaînes de caractères différentes donneront
systématiquement deux hash différents (collision
impossible)
14 Dpt R&T JLD
Fonction de hachage – Usage courant
ANSSI : Dangereux, Possible, Recommandé
l Permet en principe de détecter l'altération
(intégrité) d'un fichier
l Taille minimale du condensat : 256 bits
Le
Le
texte
texte
? en
en
OUI
clair
clair
=?
Message Digest 5, Secure Hash Algorithme-1, NO
SHA-2 et SHA-3 (>= 256 bits) N ☠
15 Dpt R&T JLD
Fonction de hachage – Autres usages
l Utilisée dans les processus :
– D'authentification d'une personne (hmac)
– De signature d'un "document numérique"
– Détecter des menaces (antivirus) ou révéler la
compromission de fichier sur une machine qui a été
attaquée
16 Dpt R&T JLD
HMAC (hash based message
authentication code)
ANSSI : Dangereux, Possible, Recommandé
l Utilisation d'une fonction de hashage dépendant
d'une clef privée partagée pour authentifier
Un Un
mess mess
age age
Un U I
mess O
age
=?
NO
HMAC-MD5 N
17
HMAC-SHA-1
HMAC-SHA-256, HMAC-SHA-512 Dpt R&T JLD
☠
Cryptosystèmes
asymétriques
Principe de base
l La sécurité repose sur l’existence de deux fonctions
mathématiques inverses l’une de l’autre où le calcul de
la première est réalisable de manière efficace, alors
que celui de la seconde n’est pas réalisable en
pratique si la taille des objets manipulés est importante
l Problèmes mathématiques souvent utilisés
– Factorisation d'entiers très très très grands : comment écrire
N comme un produit d'entiers premiers (RSA)
– Logarithme discret sur un corps fini (Diffie-Hellman)
– Logarithme discret sur courbes elliptiques (ED25519 et
ECDSA pour SSH)
19 Dpt R&T JLD
Inconvénients et avantages
l Inconvénients
– Mise en œuvre complexe
– Trop lent à l'exécution pour le chiffrement de
données volumineuses
– Clefs de très grande taille (1024, 2048, 4096 bits)
sauf avec les courbes elliptiques (128, 256 bits)
l Avantages
– Ne nécessite pas l’échange de clefs secrètes
– Permet de faire facilement l'authentification, la
signature, l'établissement d'une clef secrète
20 Dpt R&T JLD
RSA - chiffrement asymétrique (dit
à clefs publiques)
Vanessa possède :
- Une clef publique pour le chiffrement
- Une clef privée pour le déchiffrement
Le
texte
en
clair
&ase &ase
12!qw 12!qw
s34 s34 Le
aax!a aax!a texte
en
clair
Seule Vanessa peut déchiffrer le message
21 avec sa clef privée Dpt R&T JLD
RSA - Calcul simplifié des clefs
publique et privée de Vanessa
1. Vanessa choisit deux nombres premiers secrets
p = 3 et q = 11
2. Leur produit n = 3 × 11 = 33 (appelé le module de
chiffrement)
3. φ(n) = (3 – 1) × (11 – 1) = 2 × 10 = 20 (appelée
l'indicatrice d'Euler)
4. Elle choisit 3 (appelé exposant de chiffrement) qui est
premier avec 20 (deux nombres sont premiers entre eux
si leur pgcd est égal à 1)
5. Sa clef publique est (33, 3)
6. Elle calcule l'exposant de déchiffrement qui est l'inverse
multiplicatif de 3 modulo 20,et obtient 7
22 7. Sa clef privée est (33, 7) Dpt R&T JLD
RSA – Exemple d'utilisation des clefs
publique et privée de Vanessa
Austin veut transmettre le message 4 à Vanessa
• Chiffrement de 4 par Austin avec la clef publique
de Vanessa (33, 3) : 43 mod 33 = 31
31 est le chiffré transmis par Austin à Vanessa
• Déchiffrement de 31 par Vanessa avec sa clef
privée (33, 7) : 317 mod 33 = 4
Vanessa retrouve le message initial
23 Dpt R&T JLD
Authentification
Déchiffrement : clef publique de Vanessa
Chiffrement : clef privée de Vanessa
Le
texte
en
clair
&ase &ase
12!qw 12!qw
s34 s34 Le
aax!a aax!a texte
en
clair
Si Austin peut déchiffrer le message reçu, alors il sait que
c'est Vanessa (propriétaire de la clef privée) qui l'a envoyé
24 car elle seule pouvait le chiffrer Dpt R&T JLD
Confidentialité + Authentification
Vanessa utilise sa clef privée pour s'authentifier
Et la clef publique d'Austin pour chiffrer
Austin utilise sa clef privée pour déchiffrer
Et la clef publique de Vanessa pour vérifier l'expéditeur
Le xxx
texte !34ss
en wq
&ase &ase
clair s3ww4
12!qw 12!qw
s34 s34 Le
xxx
aax!a aax!a texte
!34ss
en
25 wq
s3ww4
clair
Signature (authenticité + intégrité)
Déchiffrement : clef publique de Vanessa
Chiffrement : clef privée de Vanessa
Le
texte
en
clair Le
Le texte
en
texte ? clair
en
clair
UI
O
= N?O
N
26 Dpt R&T JLD
☠
Confidentialité + Authentification +
Intégrité
Vanessa utilise sa clef privée pour s'authentifier
Et la clef publique d'Austin pour chiffrer
Austin utilise sa clef privée pour déchiffrer
Et la clef publique de Vanessa pour vérifier l'expéditeur
Le
texte
Le
en
texte
clair @ssà
en
clair !aqs
s3ww4
27
Etablissement d'une clef secrète –
Diffie-Hellman
+ +
Secret Secret
Secret + + Secret
Clef Clef
28 secrète secrète
Dpt R&T JLD
Etablissement d'une clef secrète –
Diffie-Hellman en chiffre
l Etablissement d'une clef secrète partagée par
un échange public de valeurs
p (un nombre premier) 11
g (un nombre aléatoire < p) 5
cadre privé
Ax = 8 (tiré au hasard) Bx = 19 (tiré au hasard)
Ay = 58 mod 11 = 4 4 By = 519 mod 11 = 9
secret = 98 mod 11 = 3 9 secret = 419 mod 11 = 3
29 Dpt R&T VPN JLD
Infrastructure à clefs
publiques ou PKI
Problème de l'utilisation de la
bonne clef publique
@dxs
Comment Vanessa peut-elle être certaine que !ass
la clef publique utilisée est bien celle d'Austin ? q4dfd
Le
texte
Le
en
texte
clair @ssà
en
clair !aqs
s3ww4
Pas de chance !
Clef publique de Denfer Le
texte
31 Dpt R&T JLD en
clair
Certificats
l Permet de s'assurer que la clef publique utilisée
est la bonne
l Car :
– La clef publique est associée à un certificat (carte
d’identité dont la structure est normalisée X509v3)
– Ce certificat est délivré par un tiers de confiance
(autorité de certification) garantissant le certificat
32 Dpt R&T JLD
Autorité de certification
l Tiers de confiance permettant d'authentifier
l'identité des correspondants
l L'autorité de certification :
l se porte caution de l’application de la politique de
certification
l signe les demandes de certificat et les listes de révocation
l garantit l’identité du demandeur et sa clé publique par une
signature électronique
l détermine la durée de vie du certificat et sa révocation
33 Dpt R&T JLD
Qu'est-ce qu'une PKI
(Infrastructure de gestion de clefs)
CSR
34 Dpt R&T JLD
Domaines d'application des
certificats
PDF Accès au réseau
Code informatique VPN
Courriel 802.1x
Fichiers signés WIFI
Authentification
CB
SWIFT Ouverture de
session
Finance TLS
35 Navigation WEB Dpt R&T JLD
Création et signature d'un certificat
X509v3
Version du certificat
Numéro de série
Algorithme de signature (RSA + SHA256)
Nom de l'autorité de certification
Période de validité (pas avant et pas après)
Nom de l'utilisateur du certificat
Information sur la clef publique de l'utilisateur
- Algorithme pour utiliser la clef publique Clef privée de l’autorité
- Clef publique de certification
Identifiant de l'autorité de certification
Identifiant du détenteur
Extensions (optionnel avant la v3)
36 SIGNATURE Dpt R&T JLD
Vérification d'un certificat
Version du certificat
Numéro de série
Algorithme de signature (RSA + SHA256)
Nom de l'autorité de certification
Période de validité (pas avant et pas après)
Nom de l'utilisateur du certificat
Information sur la clef publique de l'utilisateur
- Algorithme pour utiliser la clef publique =?
- Clef publique
Identifiant de l'autorité de certification
Identifiant du détenteur
Extensions (optionnel avant la v3) Clef publique de l’autorité
de certification
37 SIGNATURE
Dpt R&T JLD
Solution au problème de l'utilisation
de la bonne clef publique
Le
texte
en
clair
Le
texte
en Le
clair texte
en
clair @ssà
!aqs
s3ww4
Certificat
d'Austin @dxs
Certificat !ass
38 valide Dpt R&T JLD q4dfd
Protocoles sécurisés
TLS (historiquement SSL)
l Utilisé par de nombreux services réseaux
(web, mail, transfert de fichier, etc.)
l Seules les versions 1.2 et 1.3 sont à utiliser
l Principes
– L'authentification est basée sur les certificats
– Les données sont chiffrées par une clef calculée
lors de l'ouverture de la session TLS
40 Dpt R&T JLD
TLS (anciennement SSL)
41 Dpt R&T JLD
SSH - Généralités
l SSH = Secure SHell
l Ouvre une session interactive sur une machine
distante ou envoie des commandes/fichiers de
manière sécurisée
– Les données échangées entre le client et le serveur
sont chiffrées
– Le client et le serveur s'authentifie mutuellement
42 Dpt R&T JLD
SSH – Fonctionnement (étape 1)
l Mise en place d'un tunnel sécurisé
– Négociation entre le client et le serveur des politiques de
sécurité à utiliser (chiffrement, hashage, échange de clefs)
– Le serveur envoie sa clef publique au client. Celui-ci la
vérifie et s'assure de l'identité du serveur
– Le client génère une clef de session et l'envoie chiffrée au
serveur
– Le serveur déchiffre cette clef avec sa clef privée et envoie
un message de confirmation chiffré avec la clef de session
A cet instant, les échanges entre le client et le
serveur seront chiffrés avec la clef de session
43 Dpt R&T JLD
SSH – Fonctionnement (étape 2)
l Authentification du client
– Par mot de passe : le client envoie son nom
d'utilisateur et son mot de passe qui sont alors
vérifiés par le serveur
– Par clef publique : le serveur créé un message, le
chiffre avec la clef publique du client (préalablement
déposée sur le serveur), et l'envoie.
Si le client arrive à déchiffrer le message avec sa clef
privée, le serveur lui donne accès
44 Dpt R&T JLD
S/MIME (RFC 2630 à 2633)
l MIME : Permet d'inclure dans les messages
électroniques des fichiers attachés autres que
des fichiers textes
l S/MIME (Secure / Multipurpose Internet Mail
Extension)
– Procédé de sécurisation du contenu des courriels
encapsulés au format MIME
– Assure l’intégrité, l’authentification, la non-répudiation
et la confidentialité des messages électroniques.
45 Dpt R&T JLD
S/MIME – Fonctionnement
l L'expéditeur envoie un mail signé avec sa clef
privée mais non chiffré, et contenant son certificat
l Le destinataire vérifie le certificat avec la clef
publique de la CA. Ensuite il vérifie la signature et
si elle est valide alors l'expéditeur est bien celui
qu'il prétend être et sa clef publique (contenue
dans le certificat) est stockée par le destinataire,
qui pourra si besoin l'utiliser pour envoyer un mail
chiffré à l'expéditeur
46 Dpt R&T JLD
Tunnel IPsec – Authentification
par certificats
l Intérêts des certificats par rapport à une
authentification par PSK
– Révocation
– Durée de vie limitée
47 – Identification unique et fiable par correspondant
Dpt R&T JLD
A ne pas faire !
Principe de Kerckhoff (1883) et de
précaution
La sécurité d'un système de chiffrement n'est pas
fondée sur le secret de la procédure mise en
œuvre, mais uniquement sur un paramètre utilisé
lors de celle-ci : la clef
=> Ne jamais perdre/envoyer une clef privée
=> Ne jamais utiliser un cryptosystème à vous !
49 Dpt R&T JLD
Longueur des clefs
l Les algorithmes asymétriques nécessitent des
clefs beaucoup plus longues que les
algorithmes symétriques
l La longueur d'un clef dépend aussi de la durée
de protection voulue
=> Ne jamais prendre des clefs symétriques trop
longues, et des clefs asymétriques trop courtes
=> Consulter https://www.keylength.com/fr/
50 Dpt R&T JLD
Entropie (force) d'un mot de passe
(d'une clef)
l Un mot de passe humain est fragile car
– Nous manquons d'imagination
– Nous sommes fainéants
– Les ordinateurs travaillent toujours plus rapidement
=> Ne pas oublier de consulter les sites dédiés
https://ssi.economie.gouv.fr/motdepasse
https://www.security.org/how-secure-is-my-password/
51 Dpt R&T JLD
52 Dpt R&T JLD
Durée des clefs
l Il existe toujours des failles inconnues
l Il faut anticiper les avancées mathématiques
et l'obsolescence des algorithmes
Þ Ne pas oublier de regénérer les clefs
- Tous les ans pour un certificat utilisateur
- Tous les 15 ans pour un certificat de CA
53 Dpt R&T JLD
Tout aussi mauvais
l Oublier de mettre à jour ses systèmes / logiciels
l Mal configurer ses services réseaux (par
exemple pour un serveur WEB ne pas garder
que les chiffrements forts)
l Laisser les sauvegardes accessibles
l Echanger des clefs partagées par courriel
54 Dpt R&T JLD