0% ont trouvé ce document utile (0 vote)
59 vues207 pages

Cryptographie Pratique et Concepts Clés

Le document présente les concepts fondamentaux de la cryptographie, y compris ses définitions, objectifs et catégories, telles que la cryptographie symétrique et asymétrique. Il souligne l'importance de la confidentialité, de l'intégrité, de l'authentification et de la non-répudiation dans la protection des informations. Des exemples d'algorithmes et d'outils de cryptographie sont également fournis, ainsi que des exercices pratiques utilisant OpenSSL.

Transféré par

coumba.seck
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)
59 vues207 pages

Cryptographie Pratique et Concepts Clés

Le document présente les concepts fondamentaux de la cryptographie, y compris ses définitions, objectifs et catégories, telles que la cryptographie symétrique et asymétrique. Il souligne l'importance de la confidentialité, de l'intégrité, de l'authentification et de la non-répudiation dans la protection des informations. Des exemples d'algorithmes et d'outils de cryptographie sont également fournis, ainsi que des exercices pratiques utilisant OpenSSL.

Transféré par

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

CRYPTOGRAPHIE

Dr. El Hadji Modou MBOUP


Docteur en Cryptologie/ Enseignant Chercheur
Maitre Conférence Assimilé à l’Université de Thies
[email protected] , [email protected] , [email protected]

Dr EL Hadji Modou MBOUP Cryptographie Pratique 1


SOMMAIRE

• CONCEPTS GENERAUX
1.

• INFRASTRUCTURE DE CLE PUBLIQUE


2.

• UTILISATION DE LA CRYPTOGRAPHIE
3.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 2


CONCEPTS GENERAUX

Dr EL Hadji Modou MBOUP Cryptographie Pratique 3


CONCEPTS GENERAUX PLAN

Définitions

Catégorie de cryptographique

Primitives cryptographiques

Cryptographie moderne
Dr EL Hadji Modou MBOUP Cryptographie Pratique 4
CONCEPTS GENERAUX Définitions
Cryptographie est une science utilisée pour protéger la
confidentialité des informations telles que les messages email, les
sessions des comptes, les transactions web, les données
personnelles, les applications e-commerce, etc…

Objectif : Son objectif est de garantir la confidentialité,


l’intégrité, l’authentification et la non-répudiation.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 5


CONCEPTS GENERAUX Définitions

A B
Communication : au moins deux acteurs et un canal

 Acteur : élément actif (utilisateur, ordinateur, entité, ...)

 A peut-être égal à B canal purement temporel

Dr EL Hadji Modou MBOUP Cryptographie Pratique 6


CONCEPTS GENERAUX Définitions

A B
Menaces : A et/ou B ne maîtrisent pas le canal
 Capture, lecture, rejeu de données
 Suppression, falsification, dégradation de données
 Usurpation d'identité
 Possibilité de nier une action
 Absence de preuve
Dr EL Hadji Modou MBOUP Cryptographie Pratique 7
CONCEPTS GENERAUX Définitions

A B
Pour garantir la protection de la communication,
on utilise la Cryptographie.

La cryptographie garantit la confidentialité, l’intégrité,


l’authentification et la non-répudiation
Dr EL Hadji Modou MBOUP Cryptographie Pratique 8
CONCEPTS GENERAUX Définitions

A B
Questions :
1. Est-ce que A peut-être égal à B ?
2. Est-ce que la crypto empêche la capture des flux ?

Dr EL Hadji Modou MBOUP Cryptographie Pratique 9


CONCEPTS GENERAUX Définitions

A B
Questions :
1. Est-ce que A peut-être égal à B ?
2. Est-ce que la crypto empêche la capture des flux ?

Réponses :
1. Oui. Dans ce cas, on parle de canal temporel.
2. Non. On peut les capturer sans pouvoir les lire.
Dr EL Hadji Modou MBOUP Cryptographie Pratique 10
CONCEPTS GENERAUX Définitions
 Cryptographie : « écriture cachée »
 Données initiales : texte clair
 Données chiffrées : texte chiffré
 Opérations crypto. : chiffrement et déchiffrement (PUB)
 Chiffrement : transformation Clair vers Chiffré
 Déchiffrement : transformation Chiffré vers Clair
 Sécurité dépend uniquement d'un « secret » (Kerckhoffs)
 Secret appelé : clé, mot de passe ou passe-phrase
 Si taille clé = taille texte clair, alors crypto sûre (Shannon)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 11


CONCEPTS GENERAUX Définitions
 Authentification : on peut vérifier l’identité des entités ;
 Confidentialité : seules les entités autorisées connaissent le message ;
 Contrôle d’accès : gestion des droits ;
 Intégrité : aucune altération possible (sans détection) ;
 Non-répudiation : impossible de nier ses actions ;
 Protection contre le rejeu : impossible de rejouer un texte.

Attention : la cryptographie n’assure pas la disponibilité et


ne protège pas contre la capture du message.
Dr EL Hadji Modou MBOUP Cryptographie Pratique 12
CONCEPTS GENERAUX Exercice
1. La cryptographie assure les services suivants :
a. Authenticité, Confidentialité et Disponibilité
b. Authenticité, Confidentialité et Preuve
c. Confidentialité, Intégrité et Disponibilité
2. Quand la taille de la clé est égale à la taille du texte clair
a. Ce cas est impossible, car la clé est toujours plus petite que le texte clair
b. Le texte chiffré a toujours la même taille que le texte clair
c. Quand la clé est aléatoire, on obtient une cryptographie sûre
3. La cryptographie permet de mettre en œuvre une solution de défense-en-profondeur
a. Vrai
b. Faux
Dr EL Hadji Modou MBOUP Cryptographie Pratique 13
CONCEPTS GENERAUX Exercice
1. La cryptographie assure les services suivants :
a. Authenticité, Confidentialité et Disponibilité
b. Authenticité, Confidentialité et Preuve
c. Confidentialité, Intégrité et Disponibilité
2. Quand la taille de la clé est égale à la taille du texte clair
a. Ce cas est impossible, car la clé est toujours plus petite que le texte clair
b. Le texte chiffré a toujours la même taille que le texte clair
c. Quand la clé est aléatoire, on obtient une cryptographie sûre
3. La cryptographie permet de mettre en œuvre une solution de défense-en-profondeur
a. Vrai
b. Faux
Dr EL Hadji Modou MBOUP Cryptographie Pratique 14
CONCEPTS GENERAUX Catégorie de cryptographique

Il existe trois catégories de cryptographie :


 Cryptographie symétrique :
• S'applique sur un bloc de taille fixe, comme 8, 64, 128 ou 256 bits
• Utilise une seule et unique clé pour ses opérations (chiffrement et déchiffrement)
 Cryptographie asymétrique (appelée cryptographie à clé publique) :
• S'applique sur un bloc de taille fixe 512 bits ou plus
• Utilise deux clés différentes pour ses opérations (chiffrement et déchiffrement)
 Cryptographie sans clé (fonction de hachage) :
• L’utilisation d’une clé « secrète » n’est pas obligatoire
• Utilise une opération cryptographique non réversible

Dr EL Hadji Modou MBOUP Cryptographie Pratique 15


CONCEPTS GENERAUX Catégorie de cryptographique
 Cryptographie symétrique :
 Chiffrement par bloc (64,128 ou 256 bits) : 3DES, AES,
 Chiffrement par flot ou en temps réel (8 bits) : RC4
 Cryptographie asymétrique :
 Chiffrement et déchiffrement : RSA, EC
 Échange de clés : DH
 Signature numérique : DSA
 Horodatage : DSA, ECDSA
 Cryptographie sans clé :
 Fonction de hachage : MD5,SHA-2, SHA-3
 Code d'authentification : Keyed-SHA-2
 Génération de nombres pseudo-aléatoires (PRF) : SHA-2
Dr EL Hadji Modou MBOUP Cryptographie Pratique 16
CONCEPTS GENERAUX Catégorie de cryptographique

Dr EL Hadji Modou MBOUP Cryptographie Pratique 17


CRYPTOGRAPHIQUE SYMETRIQUE

Dr EL Hadji Modou MBOUP Cryptographie Pratique 18


Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique symétrique

 Opérations cryptographiques « identiques » ou presque


 Clé unique pour le chiffrement et le déchiffrement
 Permet de chiffrer de grandes quantités de données
 Rapides et faciles à déployer (en soft et en hard)
 Possède une sécurité prouvée
 La plus part sont libres d'utilisation (non-brevetés)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 19


Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique symétrique

A veut envoyer un message secret à B :


1) A et B se partage une seule clé secrète
A chiffre le message avec la clé secrète partagée
À la réception, B déchiffre le message avec sa clé secrète
Dr EL Hadji Modou MBOUP Cryptographie Pratique 20
Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique symétrique

A veut envoyer un message secret à B :


1) A et B se partage une seule clé secrète
2) A chiffre le message avec la clé secrète partagée
À la réception, B déchiffre le message avec sa clé secrète

Dr EL Hadji Modou MBOUP Cryptographie Pratique 21


Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique symétrique

A veut envoyer un message secret à B :


1) A et B se partage une seule clé secrète
2) A chiffre le message avec la clé secrète partagée
3) À la réception, B déchiffre le message avec sa clé secrète
À l réception, B déchiffre le message
Dr EL Hadji Modou MBOUP
avec sa clé secrète
Cryptographie Pratique 22
CONCEPTS Catégorie de Cryptographique Exemple
GENERAUX cryptographique symétrique d’algorithme

Chiffrement par blocs :


 3-DES : bloc de 64 bits et clé de 56, 112 ou 168 bits
 AES : bloc de 128 bits et clé variable de 128, 196, 256 bits
 IDEA : bloc de 64 bits et clé de 128 bits

Chiffrement par flot (en temps réel):


 RC4 : 128 bits d'IV
 AES-CTR, 3-DES-CTR => (Chiffrement par Bloc + CTR)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 23


CONCEPTS Catégorie de Cryptographique
Exemple d’outils
GENERAUX cryptographique symétrique

Outils :
OpenSSL, Python, Java, C/Swift, C#/.Net : langage ayant des librairies de crypto.
BitLocker, dm-crypt, cryptLUKS, FileVault : Chiffrement de disque
VeraCrypt : Chiffrement de fichiers, de dossiers ou de partition
Advanced Encryption Package

Recommandations :
En tant que professionnels de la cybersécurité, utilisons les librairies ou outils
existants, plutôt que de créer nos propres outils de cryptographie.
Si vous développez un outil crypto, il faut le rendre publique pour que sa
sécurité soit éprouvée

Dr EL Hadji Modou MBOUP Cryptographie Pratique 24


CONCEPTS Catégorie de Cryptographique
TP avec Openssl
GENERAUX cryptographique symétrique

Outils : Openssl (libre, compatible, customisable) sur Linux


Enoncé :
1. Afficher l’aide sommaire et la version de la commande "openssl".
2. Selon vous quelle(s) commande(s) permet(tent) de faire du chiffrement symétrique ?
3. Afficher les aides sommaire et détaillée d’une commande de chiffrement
4. Créer un fichier "mypass.txt" contenant l’utilisateur "root" et le votre dans "/etc/passwd"
5. Chiffrer "mypass.txt" avec AES-256 utilisant OpenSSL en un fichier "mypass.crypt"
6. Pouvez-vous afficher le contenu des fichiers de "mypass.txt" et de "mypass.crypt" ?
7. Déchiffrer le fichier de "mypass.crypt" en un fichier de "mypass.decrypted"
8. Comparer les fichiers de "mypass.txt" et de "mypass.decrypted"

Dr EL Hadji Modou MBOUP Cryptographie Pratique 25


CONCEPTS Catégorie de Cryptographique
TP avec Openssl
GENERAUX cryptographique symétrique
Proposition de solution :
1. Afficher l’aide sommaire et la version de la commande "openssl".
$ openssl help
2. Selon vous quelle commande permet de faire du chiffrement symétrique ?
Cipher commands (see the `enc' command for more details)
3. Afficher les aides sommaires détaillée de la commande de chiffrement
$ man enc
4. Créer un fichier "mypass.txt" contenant l’utilisateur "root" et le votre dans "/etc/passwd"
$ cat /etc/passwd | egrep "^root:|$(whoami)" > mypass.txt
5. Chiffrer "mypass.txt" avec AES-256 utilisant OpenSSL en un fichier "mypass.crypt"
$ openssl enc -e -aes256 -in mypass.txt -out mypass.crypt
6. Pouvez-vous afficher le contenu des fichiers de "mypass.txt" et de "mypass.crypt" ?
$ strings mypass.crypt ; strings mypass.txt
7. Déchiffrer le fichier de "mypass.crypt" en un fichier de "mypass.decrypted »
$ openssl enc -d -aes256 -in mypass.crypt -out mypass.decrypted
8. Comparer les fichiers de "mypass.txt" et de "mypass.decrypted"
$ diff mypass.crypt mypass.decrypted

Dr EL Hadji Modou MBOUP Cryptographie Pratique 26


CONCEPTS Catégorie de Cryptographique TP avec Openssl :
GENERAUX cryptographique symétrique Mode opératoire
Problématique :
On a vu qu’AES peut chiffrer des blocs de 128 bits. Que se passe-t-il si le fichier a une taille supérieure
à 128 bits.
Cas pratique : Copier le fichier "/var/log/messages" ou "/var/log/syslog" dans votre répertoire de
travail. Quel est la taille du fichier ? Peut-on le chiffrer/déchiffrer ?

Dr EL Hadji Modou MBOUP Cryptographie Pratique 27


CONCEPTS Catégorie de Cryptographique TP avec Openssl :
GENERAUX cryptographique symétrique Mode opératoire
Problématique :
On a vu qu’AES peut chiffrer des blocs de 128 bits. Que se passe-t-il si le fichier a une taille supérieure
à 128 bits.
Cas pratique : Copier le fichier "/var/log/messages" ou "/var/log/syslog" dans votre répertoire de
travail. Quel est la taille du fichier ? Peut-on le chiffrer/déchiffrer ?
$ cp /var/log/messages ~/messages
$ cd ; ls -lh messages
$ openssl enc -e -aes256 -in messages -out messages.crypt
$ openssl enc -d -aes256 -in messages.crypt -out messages.txt
$ diff messages messages.txt

Conclusion : Même si le fichier a une taille de plus de 128 bits, le chiffrement et le


le déchiffrement va marcher. Cela est dû aux modes opératoires

Dr EL Hadji Modou MBOUP Cryptographie Pratique 28


CONCEPTS Catégorie de Cryptographique
Mode CBC
GENERAUX cryptographique symétrique

 Découper le texte en des blocs de taille 128 bits (AES)


 Chiffrer chaque blocs en considérant le bloc précédent
 Concaténer les blocs pour donner le texte chiffré

NB : Sortir uniquement dernier bloc => hachage

Dr EL Hadji Modou MBOUP Cryptographie Pratique 29


CONCEPTS Catégorie de Cryptographique
Mode CTR
GENERAUX cryptographique symétrique

 Initialiser un compteur et découper le Clair en bloc


 Chiffrer chaque compteur et l'ajouter au Clair
 Concaténer les blocs pour donner le texte chiffré

NB : CTR permet de faire un chiffrement par flot.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 30


CONCEPTS Catégorie de Cryptographique
Mode CTR
GENERAUX cryptographique symétrique

 Initialiser un compteur et découper le Clair en bloc


 Chiffrer chaque compteur et l'ajouter au Clair
 Concaténer les blocs pour donner le texte chiffré

NB : CTR permet de faire un chiffrement par flot.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 31


CONCEPTS Catégorie de Fonction de
Définitions
GENERAUX cryptographique hachage

Une fonction de hachage (hash function) h est une fonction à sens unique qui
convertit une chaine de bits de longueur quelconque en une chaine de bits de
longueur fixe appelée empreinte ou digest.

En d’autres termes, si y appartient à l’espace des empreintes, il est difficile de


trouver x tel que h(x) =y

ℎ: 0,1 → 0, 𝑚 − 1
Dr EL Hadji Modou MBOUP Cryptographie Pratique 32
CONCEPTS Catégorie de Fonction de
Fonctionnement
GENERAUX cryptographique hachage

A veut protéger l’intégrité d’un message pour B :


1) A hache le message avec une fonction de hachage (ex. SHA-2)
2) B reçoit (message, haché) et utilise la même fonction de hachage sur message
• Si B trouve le même haché, alors le message n’a pas été modifié
• Si B ne trouve pas le même haché, alors le message a été modifié
Dr EL Hadji Modou MBOUP Cryptographie Pratique 33
CONCEPTS Catégorie de Fonction de Propriétés et
GENERAUX cryptographique hachage exemples

Propriétés :
 Le même message donne toujours la même valeur de hachage,
 La valeur de hachage est calculée rapidement,
 Il est impossible d'avoir deux messages avec la même valeur de hachage,
 A partir du haché, il est impossible de trouver le message initial (irréversible).

Exemples :
 MD5: bloc de sortie de 128 bits (obsolète)
 SHA-1: bloc de sortie de 160 bits (obsolète)
 SHA-2 : bloc de sortie de 128, 256, 384 ou 512 bits
 SHA-3 : bloc de sortie de 128, 256, 384 ou 512 bits
 AES-CBC (dernier bloc) => (Chiffrement par Bloc + CBC)
Dr EL Hadji Modou MBOUP Cryptographie Pratique 34
CONCEPTS Catégorie de Fonction de
TP avec Openssl
GENERAUX cryptographique hachage

Enoncé :
1. Afficher l’aide sommaire et la version de la commande "openssl".
2. Selon vous, quelle(s) commande(s) permet(tent) de faire du hachage ?
3. Afficher les aides sommaire et détaillée d’une commande de hachage
4. Créer un fichier "login.txt" contenant "root:toor"
5. Hacher le fichier "login.txt" avec SHA-256 en utilisant OpenSSL
6. Pouvez-vous trouver une autre commande pour le hachage SHA-256 ?
7. Hacher le fichier "login.txt" avec la commande précédente
8. Est-ce que les deux hachages sont les mêmes ?
9. Est-ce que vos hachages sont les mêmes pour les autres personnes de la classe ?

Dr EL Hadji Modou MBOUP Cryptographie Pratique 35


CONCEPTS Catégorie de Fonction de
TP avec Openssl
GENERAUX cryptographique hachage

Proposition de solution :
1. Afficher l’aide sommaire et la version de la commande "openssl". (vu TP précédent)
2. Selon vous, quelle(s) commande(s) permet(tent) de faire du hachage ?
Message Digest commands (see the `dgst' command for more details)
3. Afficher les aides sommaire et détaillée d’une commande de hachage. (vu TP précédent)
4. Créer un fichier "login.txt" contenant "root:toor"
$ echo "root:toor" > ~/login.txt
5. Hacher le fichier "login.txt" avec SHA-256 en utilisant OpenSSL
$ openssl dgst -sha256 ~/login.txt
6. Pouvez-vous trouver une autre commande pour le hachage SHA-256 ?
$ man -k sha256
7. Hacher le fichier "login.txt" avec la commande précédente
$ sha256sum login.txt
8. Est-ce que les deux hachages sont les mêmes ? Tester
9. Est-ce que vos hachages sont les mêmes pour les autres personnes de la classe ? Tester
Dr EL Hadji Modou MBOUP Cryptographie Pratique 36
CONCEPTS Catégorie de Fonction de Mot de passe
GENERAUX cryptographique hachage Linux
Le fichier des mots de passe est :
• Sur Linux, dans "/etc/shadow" avec SHA-512
• Sur Windows, dans "C:\Windows\System32\config\SAM" avec NTLM

Structure du fichier /etc/shadow: 9 champs séparés par deux points


root:$6$XacBf...$.9FP./Dxza...:18690:0:99999:7:::

User : SHA512 $ SALT $ SHA512(SALT,MDP) : Différentes dates

Exercice :
1. Créer l’utilisateur "robert" (et le groupe) ayant pour $HOME_DIR "/home/robert"
2. Créer le mot de passe "?P4$$w0rd.1" pour l’utilisateur ainsi créer
3. Avec OpenSSL, hacher ">?P4$$w0rd.2"
4. Mettre cela dans "/etc/shadow" pour "robert"
5.HadjiPouvez-vous
Dr EL Modou MBOUP connecter avec ce second mot de
Cryptographie passe ">?P4$$w0rd.2" ?
Pratique 37
CRYPTOGRAPHIQUE
ASYMETRIQUE

Dr EL Hadji Modou MBOUP Cryptographie Pratique 38


Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique asymétrique
Inconvénients de la cryptographie symétrique

 Clé unique pour le chiffrement et le déchiffrement


 Permet de chiffrer de grandes quantités de données
 Rapides et faciles à déployer (en soft et en hard)

 Nombre de clés exponentiel en fonction du nombre d'acteurs


 10 acteurs ont besoin de …….... clés

 1000 acteurs ont besoin de …………... clés


 « n » acteurs ont besoin de ……...………..... clés
 Échange et gestion des clés pas très simples

Dr EL Hadji Modou MBOUP Cryptographie Pratique 39


Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique asymétrique
Inconvénients de la cryptographie symétrique

 Clé unique pour le chiffrement et le déchiffrement


 Permet de chiffrer de grandes quantités de données
 Rapides et faciles à déployer (en soft et en hard)

 Nombre de clés exponentiel en fonction du nombre d'acteurs


 10 acteurs ont besoin de …45.... clés

 1000 acteurs ont besoin de …500 mille clés (environ)


 « n » acteurs ont besoin de ..n(n-1)/2..... clés
 Échange et gestion des clés pas très simples

Dr EL Hadji Modou MBOUP Cryptographie Pratique 40


Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique asymétrique
Inconvénients de la cryptographie symétrique

 Clé unique pour le chiffrement et le déchiffrement


 Permet de chiffrer de grandes quantités de données
 Rapides et faciles à déployer (en soft et en hard)

Problème de gestion des clés symétriques

Cryptographie Asymétrique

Dr EL Hadji Modou MBOUP Cryptographie Pratique 41


Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique asymétrique

 Opérations cryptographiques « différentes »


 Utilisation de deux clés différentes
 Les deux clés sont liées par une relation mathématique
 Très lents (par rapport à la cryptographie symétrique)
 Possède une sécurité prouvée
 Utiliser pour chiffrer de petites quantités de données

Cryptographie asymétrique utilise des mathématiques

Dr EL Hadji Modou MBOUP Cryptographie Pratique 42


Catégorie de Cryptographique
CONCEPTS GENERAUX
cryptographique asymétrique
Principe

Utilisation de fondements mathématiques :


 Traduction calculatoire de problèmes mathématiques difficiles

 Problème difficile : pas d'algorithme efficace pour le résoudre


 Exemples de problèmes difficiles :
 Factorisation (par exemple RSA) :
Connaissant n, peut-on le décomposer en nombres premiers p et q ?
 Logarithme discret (par exemple DH) :
Connaissant g et h, peut-on trouver k tel que gk=h ?
 Théorie des réseaux (hors périmètre du cours)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 43


Cryptographie Asymétrique :
Chiffrement & Déchiffrement

Dr EL Hadji Modou MBOUP Cryptographie Pratique 44


Cryptographie asymétrique
Chiffrement & Déchiffrement

A veut envoyer un message secret à B :


1) A récupère la clé publique de B
A chiffre le message avec la clé publique de B
À la réception, B déchiffre le message avec sa clé privée

Dr EL Hadji Modou MBOUP Cryptographie Pratique 45


Cryptographie asymétrique
Chiffrement & Déchiffrement

A veut envoyer un message secret à B :


1) A récupère la clé publique de B
2) A chiffre le message avec la clé publique de B
À la réception, B déchiffre le message avec sa clé privée

Dr EL Hadji Modou MBOUP Cryptographie Pratique 46


Cryptographie asymétrique
Chiffrement & Déchiffrement

A veut envoyer un message secret à B :


1) A récupère la clé publique de B
2) A chiffre le message avec la clé publique de B
3) À la réception, B déchiffre le message avec sa clé privée

Dr EL Hadji Modou MBOUP Cryptographie Pratique 47


Cryptographie asymétrique
Chiffrement & Déchiffrement

Exemples d’algorithmes
 RSA (Rivest Shamir Adellman)
 ECC (Elliptic Curve Cryptography)
 Chiffrement El Gamal : Sur les corps finis ou sur les courbes elliptiques

Outils :
•SSH, SSL/TLS : Phase d’authentification
•OpenSSL, Python, Java, Swift, C# : librairie de crypto à clé publique

Recommandations :
 En tant que professionnels de la cybersécurité, utilisons les librairies ou outils
existants, plutôt que de créer nos propres outils de cryptographie;
 Si vous développez un outil crypto, il faut le rendre publique pour que sa sécurité soit
éprouvée

Dr EL Hadji Modou MBOUP Cryptographie Pratique 48


Cryptographie Asymétrique :
Signature Numérique

Dr EL Hadji Modou MBOUP Cryptographie Pratique 49


CRYPTOGRAPHIE : FONDEMENT
Signature Asymétrique

A veut signer un message (vérifiable par B) :


1) A signe (chiffre) le message avec sa clé privée
B récupère la clé publique de A
B peut vérifier la signature avec la clé publique de A

Dr EL Hadji Modou MBOUP Cryptographie Pratique 50


Cryptographie asymétrique
Signature Asymétrique

A veut signer un message (vérifiable par B) :


1) A signe (chiffre) le message avec sa clé privée
2) B récupère la clé publique de A
B peut vérifier la signature avec la clé publique de A

Dr EL Hadji Modou MBOUP Cryptographie Pratique 51


Cryptographie asymétrique
Signature Asymétrique

A veut signer un message (vérifiable par B) :


1) A signe (chiffre) le message avec sa clé privée
2) B récupère la clé publique de A
3) B peut vérifier la signature avec la clé publique de A

Dr EL Hadji Modou MBOUP Cryptographie Pratique 52


Cryptographie asymétrique
Signature Asymétrique

Procédure de Signature d’un fichier


a) Hacher le fichier  SHA-2 (Document)
b) Signer le haché avec la clé privée  ECDSA (HASH)
c) Envoyer le fichier et sa signature
d) Le récepteur vérifie la signature à l’aide de la clé
publique de l’émetteur  ECDSA_PUB(SIGN)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 53


Cryptographie asymétrique
Signature Numérique

Exemples d’algorithme :
 RSA (Rivest Shamir Adellman)
 DSA (Data Signature Algorithm)
 ECDSA (Elliptic Curve DSA)

Outils :
 OpenSSL, PGP/GPG, S/MIME, Bitcoin :
 Python, Java, C/Swift, C#/.Net : langage ayant des librairies de cryptographie

Recommandations :
 Utiliser des librairies ou outils existants, plutôt que de créer vos propres outils de
cryptographie
 Si vous développez un outil crypto, il faut le rendre publique pour que sa sécurité soit
éprouvée
Dr EL Hadji Modou MBOUP Cryptographie Pratique 54
Cryptographie Asymétrique :
Échange de Secrets

Dr EL Hadji Modou MBOUP Cryptographie Pratique 55


CRYPTOGRAPHIE : FONDEMENT
Fonctionnement Échange Asymétrique
A choisi « a » B choisi « b »
Choix de « g » publique

A et B veulent partager un secret :


1) A et B choisissent des secrets « a » et « b » (aléatoires)
A envoie g^a et B envoie g^b
A et B partagent le même secret (g^b)^a=(g^a)^b=g^(ab)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 56


CRYPTOGRAPHIE : FONDEMENT
Fonctionnement Échange Asymétrique
A choisi « a » B choisi « b »
Choix de « g » publique

a
g
b
g

A et B veulent partager un secret :


1) A et B choisissent des secrets « a » et « b » (aléatoires)
2) A envoie g^a et B envoie g^b
A et B partagent le même secret (g^b)^a=(g^a)^b=g^(ab)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 57


CRYPTOGRAPHIE : FONDEMENT
Fonctionnement Échange Asymétrique
A choisi « a » B choisi « b »
Choix de « g » publique

a
g
b
a
g
b
(g ) b
(g )
a

A et B veulent partager un secret :


1) A et B choisissent des secrets « a » et « b » (aléatoires)
2) A envoie g^a et B envoie g^b
3) A et B partagent le même secret (g^b)^a=(g^a)^b=g^(ab)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 58


Cryptographie asymétrique
Échange des clés : Exemples d’algorithme

 DH (Diffie-Hellman)
 DHE (DH Ephemeral)
 ECDH (EC Diffie-Hellman)
 ECDHE (ECDH Ephemeral)
Remarque : Les clés éphémères garantissent le « Perfect
Forward Secrecy (PFS) »  La compromission d’une clé à
l’instant « t » ne permet de compromettre les messages
antérieurs ou postérieurs.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 59


Cryptographie : Taille des clés

Long. Symétrique RSA/DH E.C. Hash


80 80 1 024 160 160
112 112 2 048 224 224
128 128 3 072 256 256
256 256 15 360 512 512

Dr EL Hadji Modou MBOUP Cryptographie Pratique 60


Cryptographie : Taille des clés

Long. Symétrique RSA/DH E.C. Hash


80 80 1 024 160 160
112 112 2 048 224 224
128 128 3 072 256 256
256 256 15 360 512 512

Symétrique, Elliptic Curve : 256 bits


RSA ou Diffie-Hellman : 2048 bits
Hashage : 512 bits

Dr EL Hadji Modou MBOUP Cryptographie Pratique 61


TP
Exercices

Dr EL Hadji Modou MBOUP Cryptographie Pratique 62


Questions
1) La cryptographie asymétrique ne permet pas :
A. Un chiffrement de la vidéo
B. Une génération des nombres pseudo-aléatoires
C. Un échange de clés entre deux interlocuteurs

2) Classer les algorithmes suivants par ordre de robustesse


A. 3DES_168
B. AES_512
C. AES_256
D. SHA_256
E. RSA_512
F. ECDSA_1024

3) On peut combiner le chiffrement symétrique et à clé publique


A. Vrai
B. Faux

Dr EL Hadji Modou MBOUP Cryptographie Pratique 63


TP RSA avec OpenSSL
Enoncé :
1. Afficher l’aide sommaire de la commande "openssl"
2. Selon vous, quelle(s) commande(s) permet de manipuler des clés RSA
3. Afficher l’aide de chaque commande trouvée
4. Générer une clé RSA de 2048 bits qu’il faut sauvegarder dans un fichier "server.key"
A. Est-ce que "server.key" est une clé privée ? Justifier votre réponse
B. Est-ce que "server.key" est une clé publique ? Justifier votre réponse
C. Est-ce que "server.key" contient une paire de clé ? Justifier
D. Quel est le format du fichier "server.key" ?
5. Afficher la clé privée de "server.key"
6. Afficher la clé publique de "server.key"
7. On sait que la clé publique peut être envoyer à n’importe qui. Comment faire pour
rendre cet envoie possible.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 64


TP RSA : Chiffrement/signature
Enoncé :
1. Créer le fichier "mysql.pass" contenant "mysql:C?$R6t;/M7#Y?D&w"
2. Avec l’aide d’openssl, quelle(s) commande(s) permet de chiffrer, déchiffrer et signer ?
3. Avec la clé "server.key" du précédent TP, chiffrer le fichier "mysql.pass" en "mysql.crypted"
A. Pouvez-vous afficher le contenu du fichier "mysql.crypted" ?
B. Déchiffrer "mysql.crypted" en "mysql.decrypted" et le comparer avec "mysql.pass"
4. Avec la clé "server.key" du précédent TP, signer le fichier "mysql.pass" en "mysql.sign"
A. Pouvez-vous afficher le contenu du fichier "mysql.sign" ?
B. Vérifier la signature de "mysql.sign"
5. Peut-on chiffrer, déchiffrer ou signer une copie du fichier "/var/log/messages" ? Justifier.
6. Avec "openssl s_client" et "openssl x509", télécharger la clé publique de "www.epsi.fr"
7. Pouvez-vous chiffrer, déchiffrer ou signer le fichier "mysql.pass" avec cette clé publique ?

Dr EL Hadji Modou MBOUP Cryptographie Pratique 65


CRYPTOGRAPHIQUE HYBRIDE

Dr EL Hadji Modou MBOUP Cryptographie Pratique 66


CRYPTOGRAPHIE : FONDEMENT
Cryptographie Hybride
Utilisée par SSL, IPSec et SSH

A B

Algo sym : AES/SHA

Doc Doc Doc

Monde
Clé symétrique hostile

Dr EL Hadji Modou MBOUP Cryptographie Pratique 67


CRYPTOGRAPHIE : FONDEMENT
Cryptographie Hybride
Utilisée par SSL, IPSec et SSH

A B

Algo sym : AES/SHA

Doc Doc Doc

Monde
Clé symétrique hostile

A utilise la clé publique de B pour


chiffrer la clé symétrique d’AES

Dr EL Hadji Modou MBOUP Cryptographie Pratique 68


CRYPTOGRAPHIE : FONDEMENT
Cryptographie Hybride
Utilisée par SSL, IPSec et SSH

A B

Algo sym : AES/SHA Algo sym : AES/SHA

Doc Doc Doc Doc

Monde
Clé sym.
Clé symétrique hostile

A utilise la clé publique de B pour B utilise sa clé privée pour


chiffrer la clé symétrique d’AES retrouver la clé symétrique d’AES

Dr EL Hadji Modou MBOUP Cryptographie Pratique 69


TP
Exercices

Dr EL Hadji Modou MBOUP Cryptographie Pratique 70


Cryptographie Hybride
Connexion SSH

Prérequis :
• Avoir deux machines (idéalement des Linux) avec un client C et un serveur S
• Bien identifier les IP du client S et du serveur S
• Le client C et le Serveur S doivent communiquer entre eux
• La machine S doit avoir un service SSH ouvert sur le port 22
• La machine C doit avoir un client SSH
Enoncé :
1. Démarrer le service SSH sur la machine S si ce n’est pas déjà démarré
2. Créer un compte "robert" dans le serveur S (s’il n’existe pas)
3. Sur le client créer un dossier "~/.ssh" avec les droits 700 sur le Home_Dir de "robert"
4. A partir de la machine C, créer une paire de clé RSA de 2048 bits pour SSH
5. Mettre la clé publique du client C sur le serveur S (pour l’utilisateur "robert")
6. Se connecter sur le serveur en utilisant sa clé privée
7. Pouvez-vous exécuter des commandes à distance sans se loguer sur le serveur S ?

Dr EL Hadji Modou MBOUP Cryptographie Pratique 71


TP
Lister les crypto-systèmes disponibles sur Openssl
$ openssl ciphers -v
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 \
Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD

 Échange des clés : Kx (Keys exchange) = ECDH


 Authentification : Au (Authent) = RSA
 Chiffrement : Enc (Encryption) = AESGCM
 MAC/PRF : Mac = AEAD (Authent Encryption with Associated Data)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 72


TP

Génération d'une clé DSA (en deux temps : param et clé)


$ openssl genpkey -genparam -algorithm DSA \
-out dsaparam.pem -pkeyopt dsa_paramgen_bits:2048
$ openssl genpkey -paramfile dsaparam.pem -out dsakey.pem

Génération d'une clé DH


# créer un script de génération d'une clé DH avec le module « genpkey »
Génération d'une clé EC
# créer un script de génération d'une clé EC avec le module « genpkey »

Dr EL Hadji Modou MBOUP Cryptographie Pratique 73


Questions
1) La cryptographie asymétrique
A. Est très rapide avec les objets connectés (IoT)
B. Est utilisé pour une grande quantité de données
C. Permet de signer un document
D. Utilise la factorisation des nombres premiers

2) Dans la cryptosuite suivante « ECDH-ECDSA-AES128-SHA256


A. ECDH permet de garantir les identités des correspondants
B. ECDH permet de créer la clé privée pour chiffrer avec AES128
C. ECDSA permet de garantir les identités des correspondants
D. ECDSA permet de créer la clé privée pour chiffrer avec AES128

3) Quels sont les inconvénients d’une paire de clés privée/pub ?


A. C’est impossible de connaître le propriétaire de la clé
B. La paire de clé privée/publique est intègre
C. La durée de validité de la clé est inconnue.
Dr EL Hadji Modou MBOUP Cryptographie Pratique 74
INFRASTRUCTURE DE CLE
PUBLIQUE

Dr EL Hadji Modou MBOUP Cryptographie Pratique 75


Les certificats
Génération d'une clé RSA avec OpenSSL :
$ openssl genpkey -algorithm RSA -out RSA.key

Inconvénients de la paire de clés PRV/PUB :


 Impossible de connaître le propriétaire de la paire de clés.
 Paire de clés non-intègre : supprimable et remplaçable sans contrôle.
 Durée de validité de la paire de clés inconnue.
 Utilisation de la paire de clé inconnue.

Certificat = liaison entre clé, propriétaire, utilité et durée

Dr EL Hadji Modou MBOUP Cryptographie Pratique 76


Les certificats

Pour lier la clé avec une entité, on peut utiliser le


 Standard X.509 d'ITU : gestion hiérarchisée des clés

 Standard PGP : gestion en toile des clés

X.509 PGP

Dr EL Hadji Modou MBOUP Cryptographie Pratique 77


Les certificats

 Standard X.509 : gestion hiérarchisée des clés


 Une autorité certifiant le lien entre clé et propriétaire

 L'autorité doit-être de confiance


 Standard PGP : gestion en toile des clés
 Confiance d'utilisateur à utilisateur
 Chaque utilisateur certifie le lien entre clé et propriétaire

Dr EL Hadji Modou MBOUP Cryptographie Pratique 78


Les certificats
Standard X.509 (PKIX) :
 Version

 Numéro de série
 Algorithme de signature
 DN du délivreur
 Validité (dates limites)
 DN du propriétaire
 Clé publique
 Extensions [X.509v3]
 Signature de l’AC

Dr EL Hadji Modou MBOUP Cryptographie Pratique 79


Les certificats

Standard PGP :
 Stockage dans trois fichiers de ~/.gnupg/

 pubring.gpg : clés publiques de l'utilisateur


 secring.gpg : clés privées de l'utilisateur
 trustdb.gpg : clés publiques (signées) d'autres users
 Une clé déterminée par :
 Identifiant (8 derniers octets – moins significatifs)
 Nom, prénom et adresse mail
 Empreinte

Dr EL Hadji Modou MBOUP Cryptographie Pratique 80


TP

PGP / GPG

Dr EL Hadji Modou MBOUP Cryptographie Pratique 81


Certificats PGP/GPG
Gestion d'un certificat PGP (gestion individuelle) :
 Génération de clés avec PGP

 Affichage d'information sur une clé


 Création d'un certificat de révocation
 Ajouter des serveurs de clés
 Exportation et importation de clés
 Signature de clés avec PGP
 Modifier les clés

Dr EL Hadji Modou MBOUP Cryptographie Pratique 82


Certificats PGP/GPG
 Création d'un certificat PGP :
$ gpg --gen-key

 Information sur les clés publiques/secrets


$ gpg --list-keys
$ gpg --list-secret-keys
$ gpg --fingerprint "<key_ID>"

 Création d'un certificat de révocation :


$ gpg --output revoc_key.asc --gen-revoke '<Key_ID>'

Dr EL Hadji Modou MBOUP Cryptographie Pratique 83


Certificats PGP/GPG
 Serveur de clés (BD contenant des clés PGP)
$ gpg --keyserver hkp://keys.gnupg.net
(configurable dans ~/.gnupg/gpg.conf)

 Chercher un certificat dans un serveur de clé :


$ gpg --search-keys --keyserver <hkp_server> '@mail’

 Exportation d'une clé publique :


$ gpg -a --output pubkey.asc --export '<Key_ID>’

 Envoie d'une clé dans le serveur des clés :


$ gpg --send-keys --keyserver <hkp_server> '@mail'
Dr EL Hadji Modou MBOUP Cryptographie Pratique 84
Certificats PGP/GPG
Importation d'une clé publique :
$ gpg --import "<fichier_ASC>"

Extraire une clé dans le serveur de clés par défaut


$ gpg --recv-keys "keys_id"

Signer une clé (avec son ID)


$ gpg --sign-key "key_id"

Suppression d'une clé


$ gpg --delete-keys "key_id"

Dr EL Hadji Modou MBOUP Cryptographie Pratique 85


Certificats PGP/GPG
Chiffrer le fichier myfile.txt pour alice
$ gpg -r "alice" -e myfile.txt

Signer le fichier myfile.txt


$ gpg -s ["id_key"] myfile.txt

Déchiffrer le fichier myfile.txt (fait par Alice)


$ gpg -d myfile.txt

Chiffrer et signer pour alice


$ gpg -r "alice" -s -e myfile.txt

Dr EL Hadji Modou MBOUP Cryptographie Pratique 86


TP

OpenSSL

Dr EL Hadji Modou MBOUP Cryptographie Pratique 87


Certificats X.509 : TP avec OpenSSL

Création d'un certificat X.509 :


1. Générer une clé RSA "societe.key" de 2048 bits
2. Création d'un CSR (Certificate Signing Request)
3. Vérifier les données contenues dans le fichier CSR
4. Créer un certificat auto-signé "societe.crt" pour avoir une CA
5. Créer un certificat CRT sans passer par un fichier CSR
6. Demander la signature de la clé publique de "societe.key" par la CA
7. Signer la clé publique "societe.key" par la CA "ca.crt".

1. Création d’une clé RSA de 2048 bits :


$ openssl genpkey -algorithm RSA -out societe.key \
-pkeyopt rsa_keygen_bits:2048
Dr EL Hadji Modou MBOUP Cryptographie Pratique 88
Certificats X.509 : TP avec OpenSSL

2. Création d'un CSR (Certificate Signing Request) :


$ openssl req -new -key societe.key -out societe.csr

Country Name (2 letter code) [AU]:FR


State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]: .
Organizational Unit Name (eg, section) []:DRH
Common Name (e.g. server FQDN or YOUR name) []:www.societe.fr
Email Address []:[email protected]

Dr EL Hadji Modou MBOUP Cryptographie Pratique 89


Certificats X.509 : TP avec OpenSSL

2. Création d'un CSR (Certificate Signing Request) :


$ openssl req -new -key societe.key -out societe.csr

Options par défaut dans /etc/ssl/openssl.cnf


Section [ req_distinguished_name ]

3. Vérification d'un CSR (Certificate Signing Request) :


$ openssl req -text -in societe.csr

Dr EL Hadji Modou MBOUP Cryptographie Pratique 90


Certificats X.509 : TP avec OpenSSL
2’. Création d'un CSR à l’aide d’un fichier de configuration :
$ cat societe.cnf
[ req ]
prompt = no
distinguished_name = abc
[ abc ]
countryName = FR
stateOrProvinceName = France
localityName = Paris
0.organizationName = Entreprise Societe
commonName = www.societe.fr
emailAddress = [email protected]

$ openssl req -new -config societe.cnf \


-key societe.pem -out societe.csr

Dr EL Hadji Modou MBOUP Cryptographie Pratique 91


Certificats X.509 : TP avec OpenSSL
4. Auto-signer le certificat CSR pour produire un CRT :
$ openssl x509 -req -days 365 -signkey societe.key \
-in societe.csr -out societe.crt

5. Création d'un CRT sans passer par un CSR :


$ openssl req -new -x509 -days 365 -key societe.key \
-out societe.crt

6. Signature du certificat Client par une AC


$ openssl x509 -req -days 600 -in client.csr -out client.crt \
-CA capki.crt -CAkey capki.key -set_serial 02

Dr EL Hadji Modou MBOUP Cryptographie Pratique 92


Certificats X.509 : TP avec OpenSSL
7. Création d’un certificat PKCS12 :
$ openssl pkcs12 -export -inkey votre_clef_privee.key -in
societe.crt -name mon_nom -out resultat_final.pfx

$ openssl pkcs12 -export -inkey votre_clef_privee.key


-in votre_certificat.cer -out resultat_final.pfx

Dr EL Hadji Modou MBOUP Cryptographie Pratique 93


TP

Java Keytool

Dr EL Hadji Modou MBOUP Cryptographie Pratique 94


Certificats X.509 : TP avec JKS
Création d’un certificat JKS (Java KeyStore)
$ keytool -genkey -v -keystore keys_file.jks -alias www.modou.mboup \
-keyalg EC -keysize 256 -validity 365
# Quelques options de la commande keytool (man keytool)
# keys_file.jks : conteneur des clés privées/publiques
# www.oumar.diao : nom de la clé
# -keyalg EC : clé basée courbe elliptique;
# on peut mettre aussi "-keyalg RSA" avec "-keysize 2048"

Dr EL Hadji Modou MBOUP Cryptographie Pratique 95


Certificats X.509 : TP avec JKS
Lister le contenu d’une JKS
$ keytool -list -keystore keys_file.jks -v

Dr EL Hadji Modou MBOUP Cryptographie Pratique 96


Certificats X.509 : TP avec JKS
Générer un CSR de demande de certificat
$ keytool -certreq -keystore keys_file.jks -alias www.oumar.diao \
-file www.oumar.diao.csr

Voir le fichier CSR créé (avec openSSL, car fichier PEM)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 97


Certificats X.509 : TP avec JKS
Importer un certificat dans une JKS
$ keytool -import -keystore keys_file.jks -truscacerts -alias <ALIAS> \
-file <file_to_import>.p7b

Exporter un certificat d’une JKS


$ keytool -export -keystore keys_file.jks -alias <ALIAS> \
-file <file_to_export>.cer

Dr EL Hadji Modou MBOUP Cryptographie Pratique 98


IGC/PKI

Notions de PKI/IGC

Dr EL Hadji Modou MBOUP Cryptographie Pratique 99


IGC/PKI : Notions de base

[RFC 4949] défini une PKI comme un ensemble de


matériels, de logiciels, de personnes, règles et de
procédures permettant de créer, gérer, stocker,
distribuer, et révoquer des certificats.

PKI : crée et maintient la confiance à un certificat :


 PKIX (standard X.509) : autorité de confiance (A.C.)
 PKI/PGP (standard PGP) : gestion individualisée

Dr EL Hadji Modou MBOUP Cryptographie Pratique 100


Architecture PKIX : éléments
Éléments d'un PKIX
Utilisateurs : sujets ayant besoin d'un certificat
C.A. : Autorité de certification
R.A. : autorité d’enregistrement (entité optionnelle)
Politique PKI : document interne décrivant la politique de la PKI
CPS (Certificate Practices Statement) : doc de gestion de la PKI

Éléments techniques :
 BDD Certificats : dépôt des certificats
 BDD CRL : Liste des certificats Révoqués
 Serveur OCSP : Statut en ligne d'un certificat
 Outils : OpenSSL, MS CryptoAPI, HSM, Token USB, etc.
Dr EL Hadji Modou MBOUP Cryptographie Pratique 101
Architecture PKIX : éléments
C.A.1 Utilisateurs

Autorité
Certification

(R.A.) Autorité
Enregistrement
C.R.L OCSP

Entités

Dr EL Hadji Modou MBOUP Cryptographie Pratique 102


Architecture PKIX : éléments
Éléments fonctionnels d'un PKI
• Gouvernance (organigramme, rôles, responsabilités)
• Politique de la PKI (document optionnel)
• Procédures avec le CPS (document obligatoire) :
Création, Validation, Certification, Distribution,
Révocation, Délégation, Renouvellement, etc.

Exemple de CPS (Certificate Practices Statement) :


• https://letsencrypt.org/documents/isrg-cps-v2.4
• https://www.thawte.com/cps/

Dr EL Hadji Modou MBOUP Cryptographie Pratique 103


PKIX : Chaine de certification

Dr EL Hadji Modou MBOUP Cryptographie Pratique 104


PKIX : Chaine de certification

Dr EL Hadji Modou MBOUP Cryptographie Pratique 105


PKIX : Chaine de certification

Dr EL Hadji Modou MBOUP Cryptographie Pratique 106


PKIX : Chaine de certification

Dr EL Hadji Modou MBOUP Cryptographie Pratique 107


PKIX publique
Quelques PKI (publiques)
Éléments de choix :
• Selon les besoins du client
• Loi & règlementation : RGS pour le secteur publique, etc.
• Algorithmes, compatibilités, prix, support, procédures, …

Vendeurs (www.tractis.com) :
Symantec, GoDaddy, Comodo, GlobalSign, DigiCert,
StartCom, OpenTrust, Let’s Encrypt, etc.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 108


PKIX interne
Quelques outils de PKI interne
Éléments de choix :
• Selon les besoins internes
• Algorithmes, procédures, nombres de certificats, etc.

Éléments techniques :
• Outils : EJBCA, EASYCA, OPENCA, OpenSSL
• Architecture technique & réseau
• HSM : Thales (Nshield), Gemalto (SafeNet), Atos (Adyton, Crypt2Pay)
• Algo/API : PKCS#11, JCA/JCE, MSCAPI, OpenSSL
• Token USB

Dr EL Hadji Modou MBOUP Cryptographie Pratique 109


PKIX : Fabricants de HSM

Dr EL Hadji Modou MBOUP Cryptographie Pratique 110


Exercices

Dr EL Hadji Modou MBOUP Cryptographie Pratique 111


IGC/PKI

Déploiement de PKIX

Dr EL Hadji Modou MBOUP Cryptographie Pratique 112


Déploiement PKIX
Cahier des charges :
 Type : Interne ou Externe
 Niveau de confiance :
 DV (Domaine Validation) : par mail
 OV (Organisation Validation) : mails + contact
 EV (Extended Validation) : validation du manager
 Prix & Coût : matériels, logiciels, humains, etc.
 Éléments fonctionnels : règles, procédures, politique,
 Éléments techniques : algo, API, support, service, etc.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 113


PKIX Interne vs PKIX Externe
 PKIX Interne :
 Ressource interne
 CPS + Politique de PKIX
 Utilisation : backends, le personnel,

 PKIX Externe :
 Service payé au près d’une autorité connue
 Se conformer au CPS de l’autorité
 Utilisation : serveurs visibles sur Internet

Dr EL Hadji Modou MBOUP Cryptographie Pratique 114


Type de certificats
 Wildcard : permet de prendre en compte des sous-domaines
 SAN : permet de prendre en compte des domaines différents
/!\ les (sous)-domaines doivent être gérés par la même entité
 Certif Root : certificat de l’autorité de certification
/!\ la clé privée de la racine doit être protégée (e.g. par une HSM)
 Auto-signé : certificat signé par sa clé privée
 Signature de codes : certificat pour les logiciels (Android, iOS)
 Domaine Validation :
 DN : Validation simple et individuelle
 OV : Validation par contact de la personne morale.
 EV : Extended Validation (niveau le plus haut)
Dr EL Hadji Modou MBOUP Cryptographie Pratique 115
Encodage des certificats PKIX
 CER (Canonical Encoding Rules) : binaire
 DER (Distinguished Encoding Rules) : base64 avec
’BEGIN <label> ’ & ‘END <label>’
 PEM (Privacy Enhanced Mail) : dérivé du DER en base64
 PKCS#7 : variante du format DER en base64
 PKCS#12 : variante du format CER en binaire
 JKS: format en binaire utilisé par Java

Dr EL Hadji Modou MBOUP Cryptographie Pratique 116


Extension des fichiers de certificats
 <file>.key : en binaire ou base64 pour clé privée
 <file>.csr : en base64 pour une demande de certificat
 <file>.cer / <file>.crt : en binaire ou base64 pour le certificat lui-même
 <file>.pem : en binaire ou base64 pour les certifs, clés, CRL, etc.
 <file>.p7b : en binaire pour certifs, CRL, etc. (pas de clés privées)
 <file>.pfx / <file>.p12 : en base64 pour les certificats et les clés
 <file>.jks : en binaire pour les certificats et les clés

Il est recommandé de définir une règle de nommage des certificats

Dr EL Hadji Modou MBOUP Cryptographie Pratique 117


Conversion entre format
Conversion DER  PEM
$ openssl x509 –in <file>.der -inform der -out <file>.pem

Conversion PEM  DER


$ openssl x509 –in <file>.pem -outform der –out <file>.der

Conversion PKCS#7  PEM


$ openssl pkcs7 –in <file>.p7b –print_certs -out <file>.pem

Conversion PKCS#12  PEM


$ openssl pkcs12 –in <file>.pfx -out <file>.pem -nodes

Dr EL Hadji Modou MBOUP Cryptographie Pratique 118


Protection de la clé privée
La clé privée d’un certificat doit toujours être secrète et protégée
avec l’un des outils suivants :

 HSM (Hardware Security Module) : matériel externe


 TPM (Trusted Platform Module) : intégré dans les devices
 JKS (Jave Key Store) : conteneur protégeable par une clé KeyPass
 Contrôle d’accès restreint : droits de lecture (ex: 400 sur *UX)
 Logiciel dédié : Coffre-fort, CA PIM, CyberArc, etc.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 119


PKIX : Algorithmes

Sécurité Interopérabilité

Authentification ECDSA_256 RSA_2048

Échange des clés ECDHE_256 RSA_2048

Chiffrement AES-GCM_256 3-DES_112

Intégrité SHA[2-3]_384 SHA2_256

Dr EL Hadji Modou MBOUP Cryptographie Pratique 120


Déploiement PKIX

TP : création d'une CA
1- Créer une autorité de certification privée (pour l'école)
2- Créer deux sous-autorités de certification
a) personnel
b) étudiant
3- Créer des certificats des étudiants et personnels
4- Signer les certificats avec la bonne autorité

Dr EL Hadji Modou MBOUP Cryptographie Pratique 121


Configuration de Serveurs Web

Dr EL Hadji Modou MBOUP Cryptographie Pratique 122


Configuration des serveurs Web
Problématique:
un client accède à Internet via son navigateur

Client Serveur

Si le serveur ne supporte pas une connexion sécurisée, alors le client ne peut pas
l’obliger  c’est au serveur de configurer le https (et non le client)

Client Web:
• Navigateurs: Firefox, Chrome, IE/Edge, Safari, etc.
• Commandes : curl, wget

Serveurs Web:
• Apache httpd
• Nginx
• Java Tomcat

But: configurer le https pour différents serveurs Web

Dr EL Hadji Modou MBOUP Cryptographie Pratique 123


Config d’Apache HTTPD 2.4+
Fichier ‘httpd.conf’:
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 -TLS0 -TLSv1.1
SSLCertificateFile /chemin/fichier/certificat
SSLCertificateChaineFile /chemin/fichier/chaine_certifs
SSLCertificateKeyFile /chemin/fichier/clé_privée
SSLCACertificateFile /chemin/fichier/CA
SSLCompression off
SSLInsecureRenegotiation off
SSLUseStapling on
SSLStaplingCache shmcb:logs/ssl_stapling(32728)
SSLOpenSSLConfCmd ECDHParameters secp512r1:secp384r1:prime256v1
SSLOpenSSLConfCmd Curves secp512r1:secp384r1:prime256v1
### Échange des clés DH via le fichier "dhparams.pem"
### openssl dhparam 2048 > /chemin/fichier/dhparams.pem
SSLOpenSSLConfCmd DHParameters /chemin/fichier/dhparams.pem
SSLHonorCipherOrder on
SSLCipherSuite "ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-SHA384 ECDH-ECDSA-AES256-GCM-SHA384
ECDH-ECDSA-AES256-SHA384 ECDH-RSA-AES256-GCM-SHA384
DHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256"
Dr EL Hadji Modou MBOUP Cryptographie Pratique 124
Config d’Apache Tomcat 8.*
Fichier ‘$CATALINA_HOME/conf/server.xml’:
<Connector
protocol = "org.apache.coyote.http11.Http11Protocol"
port = "443"
SSLEnabled = "true"
keystoreFile = "${CATALINA_HOME}/conf/keys_file.jks"
keystorePass = "<MDP_keystore>"
keyAlias = "<Alias_name>"
scheme = "https"
secure = "true"
clientAuth = "false"
sslProtocol = "TLS"
sslEnabledProtocols = "TLSv1.3, TLSv1.2"
SSLCipherSuite "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384"

Dr EL Hadji Modou MBOUP Cryptographie Pratique 125


Config de Nginx 1.6+
Fichier ‘nginx.conf’:
listen 443 ssl;
ssl_protocols TLSv1.2;
ssl_certificate_key /chemin/fichier/clé_privée;
ssl_certificate /chemin/fichier/certificat;
ssl_session_cache none;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_ecdh_curve secp512r1:secp384r1:prime256v1
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-SHA384
ECDH-ECDSA-AES256-GCM-SHA384
ECDH-ECDSA-AES256-SHA384
ECDH-RSA-AES256-GCM-SHA384"
Dr EL Hadji Modou MBOUP Cryptographie Pratique 126
IGC/PKI

Tester déploiement https

Dr EL Hadji Modou MBOUP Cryptographie Pratique 127


IGC/PKI
Tester https

Tester les suites cryptographiques supportés


 sslscan
$ sslscan --no-failed <host:port>

 nmap
$ nmap --script ssl-enum-ciphers -p 443 <host>

 openssl : avec modules


<ciphers> : suites supportés par le client
<s_client> : suites supportés par le serveur

Dr EL Hadji Modou MBOUP Cryptographie Pratique 128


IGC/PKI
Tester https

Tester les suites cryptographiques supportés


 Toutes les suites supportées par le client
$ openssl ciphers -v 'ALL eNULL'

 Suites sûres exceptées RC4 et SHA


$ openssl ciphers -v 'HIGH !RC4 !SHA'

 Suites de TLS 1.0 ou SSL 3


$ openssl ciphiers -v 'TLSv1 SSL3'

Dr EL Hadji Modou MBOUP Cryptographie Pratique 129


IGC/PKI
Suites recommandées 1/2

 ECDHE-ECDSA-AES256-GCM-SHA384
 ECDHE-ECDSA-AES256-SHA384

 ECDHE-ECDSA-AES128-GCM-SHA256

 ECDHE-ECDSA-AES128-SHA256

 ECDHE-RSA-AES256-GCM-SHA384

 ECDHE-RSA-AES256-SHA384

 ECDHE-RSA-AES128-GCM-SHA256

 ECDHE-RSA-AES128-SHA256

 DHE-RSA-AES256-GCM-SHA384

 DHE-RSA-AES256-SHA256

 DHE-RSA-AES128-GCM-SHA256

 DHE-RSA-AES128-SHA256

Dr EL Hadji Modou MBOUP Cryptographie Pratique 130


IGC/PKI
Suites recommandées 2/2

 ECDH-RSA-AES256-GCM-SHA384
 ECDH-ECDSA-AES256-GCM-SHA384

 ECDH-RSA-AES256-SHA384

 ECDH-ECDSA-AES256-SHA384

 ECDH-RSA-AES128-GCM-SHA256

 ECDH-ECDSA-AES128-GCM-SHA256

 ECDH-RSA-AES128-SHA256

 ECDH-ECDSA-AES128-SHA256

 AES256-GCM-SHA384

 AES256-SHA256

 AES128-GCM-SHA256

 AES128-SHA256

Dr EL Hadji Modou MBOUP Cryptographie Pratique 131


IGC/PKI
Tester sur un serveur

 Connectivité au serveur
$ openssl s_client -connect <host:port>
 Pour ne pas attendre un timeout, faire
$ echo | openssl s_client -connect <host:port>
 Tester un protocole SSL
$ openssl s_client -connect <host:port> -tls1_2
 Tester un protocole (smtp, pop3, imap, ftp)
$ openssl s_client -connect <host:25> -starttls smtp

Dr EL Hadji Modou MBOUP Cryptographie Pratique 132


IGC/PKI
Tester sur un serveur

 Tester une suite cryptographique (comme RC4)


$ openssl s_client -connect <host:port> -cipher RC4
 Tester de reconnexion automatique
$ openssl s_client -connect <host:port> -reconnect

 Faire un script permettant de trouver les suites


cryptographiques supportées

Dr EL Hadji Modou MBOUP Cryptographie Pratique 133


IGC/PKI
Tests

Lister les crypto-systèmes d'un site WEB


https://www.ssllabs.com/ssltest/

Unix commande :
sslscan --no-failed [host:port | host]
$ sslscan --no-failed www.google.fr

Dr EL Hadji Modou MBOUP Cryptographie Pratique 134


PKI : Failles & Faiblesses

Dr EL Hadji Modou MBOUP Cryptographie Pratique 135


Failles et faiblesses

 Renégociation : replay attaques


 BEAST (2011) : IV prédictible avec le mode AES_CBC

 CRIME (2012) : exploit la compression


 Lucky 13 (2013) : exploit le padding dans CBC
 RC4 (2013) : clé non totalement aléatoire (prédictible)
 POODLE (2013) : exploit du padding sur SSL_v3
 Heartbleed (2014) : implémentation vulnérable
 Descente de niveau de sécurité : TLS1.2 => SSLv2

Dr EL Hadji Modou MBOUP Cryptographie Pratique 136


Failles et faiblesses

 Vérification incomplète de la validité certificat


 Certaines données manquantes dans le certificat

 Problème de révocation
 Problème lié aux chaînes de certificat
 Contenus mixtes dans le déploiement Web
 Cookies transitant en clair (mode secure non activé)
 Architecture non-sécurisée du Web
 Utilisateur ignorant les alertes des certificats

Dr EL Hadji Modou MBOUP Cryptographie Pratique 137


PKI : Lutter contre les Failles

Dr EL Hadji Modou MBOUP Cryptographie Pratique 138


Lutter contre les failles

 Formaliser et auditer
 HSTS (Http Strict Transport Security) [RFC 6797] :
 Toute communication est faite en HTTPS
 Pas de connexion si certif invalide ou autosigné.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 139


Lutter contre les failles

 Formaliser et auditer
 HSTS (Http Strict Transport Security) [RFC 6797] :
 Toute communication est faite en HTTPS
 Pas de connexion si certif invalide ou autosigné.
 Certificat Pinning [RFC 7469] :
Lien formelle entre un service et une clé publique
 CT (Certificate Transparency) [RFC 6962] :
Log et audit de tout certificat publique.
Dr EL Hadji Modou MBOUP Cryptographie Pratique 140
HSTS [RFC 6797]
Implémentation HSTS [RFC 6797] :
Strict-Transport-Security: max-age=15768000; includeSubDomains

Vérification HSTS :
$ curl -s -D- "https://domain.fr/" | grep Strict

Dr EL Hadji Modou MBOUP Cryptographie Pratique 141


Certificate Pinning

Plateforme

https

Mobile App
(Android/iOS)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 142


Certificate Pinning
Apps malicieuses Interception des flux
interceptant les flux via un proxy (Burp)
Plateforme

https

Mobile App
(Android/iOS)

Risques :
• Attaques des clients : vol de données, usurpation d’identité, etc.
• Attaques des serveurs : injections de codes (SQL,No-SQL, CMD), brute-
force, DDoS, etc.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 143


Certificate Pinning
Apps malicieuses Interception des flux
interceptant les flux via un proxy (Burp)
Plateforme

https

Mobile App
(Android/iOS)

Risques :
• Attaques des clients : vol de données, usurpation d’identité, etc.
• Attaques des serveurs : injections de codes (SQL,No-SQL, CMD), brute-
force, DDoS, etc.

Solution : Certificate Pinning


Dr EL Hadji Modou MBOUP Cryptographie Pratique 144
Certificate Pinning
 Implémentation
Android : Via network_security_config.xml:
<network-security-config>
<domain-config>
<domain includeSubdomains="true">bssi.fr</domain>
<pin-set expiration="2020-01-01">
<pin digest="SHA-256">HASH_1_en_base64</pin>
<!-- backup pin -->
<pin digest="SHA-256">HASH_2_en_base64</pin>
</pin-set>
</domain-config>
</network-security-config>

Via SDK dédié:


 Android : https://github.com/datatheorem/TrustKit-Android
 iOS: https://github.com/datatheorem/trustkit

Dr EL Hadji Modou MBOUP Cryptographie Pratique 145


Certificate Transparency
 Objectif : mécanisme consistant à enregistrer toute émission de
de certificat publique dans un registre mondial publique
 Avantages : permettre au propriétaire d’un domaine de
 Vérifier et détecter toute émission frauduleuse de certificat
 Vérifier les éventuels typonymes de d’un DNS
 Inconvénient : Scruter les registres de certificats permet de
 être au courant des nouveaux DNS
 prédire la sortie d’un nouveau produit

Plus de détails : https://www.certificate-transparency.org

Dr EL Hadji Modou MBOUP Cryptographie Pratique 146


UTILISATION DE LA
CRYPTOGRAPHIE

Dr EL Hadji Modou MBOUP Cryptographie Pratique 147


CRYPTOGRAPHIE : UTILISATION

Les outils cryptographie

Dr EL Hadji Modou MBOUP Cryptographie Pratique 148


CRYPTOGRAPHIE Les outils

Securite SI. Présenté par Dr. Elh. Modou MBOUP 149


CRYPTOGRAPHIE Les outils

Chiffrement Asymetrique Chiffrement symetrique

Securite SI. Présenté par Dr. Elh. Modou MBOUP 150


CRYPTOGRAPHIE Les outils

Securite SI. Présenté par Dr. Elh. Modou MBOUP 151


CRYPTOGRAPHIE Les outils

Securite SI. Présenté par Dr. Elh. Modou MBOUP 152


CRYPTOGRAPHIE Les outils

Securite SI. Présenté par Dr. Elh. Modou MBOUP 153


CRYPTOGRAPHIE Les outils

Securite SI. Présenté par Dr. Elh. Modou MBOUP 154


CRYPTOGRAPHIE Les outils

Securite SI. Présenté par Dr. Elh. Modou MBOUP 155


CRYPTOGRAPHIE : UTILISATION

Protocole IPsec

Dr EL Hadji Modou MBOUP Cryptographie Pratique 156


CRYPTOGRAPHIE : UTILISATION
Protocole IPsec

Beaucoup pense qu’IPsec est un tunnel traversant un monde hostile


(généralement Internet) entre deux réseaux A et B :
Monde hostile

Flux dans un tunnel IPsec


A B

A={a1, …, an} B={b1, …, bm}

On peut avoir trois architectures en fonction des valeurs de n et m.

1. Si n=m=1, alors on parle d’archi Host-to-Host


2. Si n=1 et m>1 (ou n>1 et m=1), on parle d’archi. Host-to-Gateway
3. Si n>1 et m>1, alors on parle d’archi. Gateway-to-Gateway
Dr EL Hadji Modou MBOUP Cryptographie Pratique 157
CRYPTOGRAPHIE : UTILISATION
Protocole IPsec

Quelles sont les données protégées IPsec ?

L7: Application
IPsec est un protocole de niveau 3 (réseau) du L6: Présentation
modèle OSI. Il permet alors de protéger toutes L5: Session
les données des niveaux supérieurs (L4 à L7). L4: Transport
L3: Réseau
Il permet même de protéger les données du L2: Liaison
niveau 3 elles-mêmes. L1: Physique
modèle OSI

IPsec protège uniquement les données des niveaux 7 à 3 inclus.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 158


PROTOCOLE IPsec
Protocole IPsec : Composants

IPsec est composé de 3 éléments :


• ESP/AH qui utilisent les algorithmes symétriques,
• IKE (Internet Key Exchange) qui gère les clés sym et asym,
• SA (Security Association) qui définit le traitement (ESP/AH, IKE).

Dans la suite, nous détaillerons seulement :


• Le protocole ESP (car il est plus sécurisé que le protocole AH)
• Le gestionnaire des clés IKE
• La Security Association

Dr EL Hadji Modou MBOUP Cryptographie Pratique 159


IPsec : COMPOSANTS
Protocole ESP – Encapsulating Security Payload [RFC 2406, RFC 4305]

ESP utilise des algorithmes de chiffrement symétrique :


• AES (128, 192, 256 bits),
• 3DES (192 bits),
• IDEA (128 bits), CAST (128 bits), RC5 (128, 160 bits), ...

En mode tunnel, ESP chiffre toutes les données de la couche 3 à 7


avant d’ajouter une nouvelle adresse IP.

ESP permet l’intégrité, la confidentialité et la protection contre le rejeu.

ESP ne gère pas l'authentification => n'assure pas la non-répudiation.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 160


IPsec : COMPOSANTS
Paramètres IKE
Authentication Mode Certificate
Authentication Algorithm SHA256/HMAC (256 bits)
Encryption-Algorithm AES (256 bits)
Diffie-Hellmann Group Group 14 (2048 bits)
Lifetime 28800 seconds
Encryption Scheme IKE
Negotiation Mode Main Mode
Paramètres IPSEC
Encryption protocol ESP
Authentication Algorithm ESP/SHA256/HMAC (256 bits)
Encryption-Algorithm AES (256 bits)
Encapsulation Mode Tunnel
Perfect Forward Secrecy YES
PFS group Group 4 (EC2N : 185 bits)
Key Lifetime 3600 sec

Dr EL Hadji Modou MBOUP Cryptographie Pratique 161


CRYPTOGRAPHIE : UTILISATION

IPsec : FONCTIONNEMENT

Dr EL Hadji Modou MBOUP Cryptographie Pratique 162


IPsec : FONCTIONNEMENT
1. Montage du tunnel
2. Envoie sécurisée de message
3. Réception sécurisée de message
A choisi a (sec) B choisi b (sec)
A et B se partage la PSK en OoB (SMS)
A B

m1=(IDA, ga )

m2=(m1,IDB, gb), HMAC(PSK, m2, gab)

m3=(IDB, ga, gb), HMAC(PSK, m3, gab)

Seuls A et B sont sensés connaître PSK et pouvoir calculer gab

Dr EL Hadji Modou MBOUP Cryptographie Pratique 163


IPsec : FONCTIONNEMENT
1. Montage du tunnel
2. Envoie sécurisée de message
3. Réception sécurisée de message

ESP ou AH

SPD 1’. pointe vers SAD

1. IPsec consulte la SPA pour connaître le traitement à faire

Dr EL Hadji Modou MBOUP Cryptographie Pratique 164


IPsec : FONCTIONNEMENT
1. Montage du tunnel
2. Envoie sécurisée de message
3. Réception sécurisée de message

ESP ou AH

SPD 1’. pointe vers SAD

2. SPD vérifie que la SA existe à la SAD et retourne l’info à IPsec.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 165


IPsec : FONCTIONNEMENT
1. Montage du tunnel
2. Envoie sécurisée de message
3. Réception sécurisée de message
IKE

3’. gère,
crée,
ESP ou AH supprime

SPD 1’. pointe vers SAD

3. Si la SA n’existe pas, IPsec demande sa création à IKE

Dr EL Hadji Modou MBOUP Cryptographie Pratique 166


IPsec : FONCTIONNEMENT
1. Montage du tunnel
2. Envoie sécurisée de message
3. Réception sécurisée de message
4. alerte
IKE

3’. gère,
4’. conf crée,
ESP ou AH supprime

SPD 1’. pointe vers SAD

4. Après création de la SA, IKE alerte l’administrateur qui met à jour la SPD.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 167


IPsec : FONCTIONNEMENT
1. Montage du tunnel
2. Envoie sécurisée de message
3. Réception sécurisée de message

IKE
1. examine
l’entête

ESP/AH

1. IPsec examine l’en-tête IKE pour voir ce qu’il doit faire du paquet reçu.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 168


IPsec : FONCTIONNEMENT
1. Montage du tunnel
2. Envoie sécurisée de message
3. Réception sécurisée de message

IKE
1. examine
l’entête

ESP/AH

2. vérifie

SAD

2. IPsec vérifie la SA reçu (dans l’en-tête) au près de la SAD.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 169


IPsec : FONCTIONNEMENT
1. Montage du tunnel
2. Envoie sécurisée de message
3. Réception sécurisée de message

IKE
1. examine
l’entête

ESP/AH
3. vérifie
2. vérifie

SPD SAD

3. IPsec vérifie si la SA correspond bien à celle requise par la politique SPD.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 170


CRYPTOGRAPHIE : UTILISATION

Protocole EAP

Dr EL Hadji Modou MBOUP Cryptographie Pratique 171


PROTOCOLE EAP
EAP is an extension of PAP and CHAP used for PPP.

The facilitator EAP (Extensible Authentication Protocol) [RFC 3748] is


a generic authetication framwork that is very flexible and provides
support for many other authentication methods like :
L7: Application
• SIM : SIM over EAP (EAP/SIM) [RFC 4186]
L6: Presentation
• TLS : TLS over EAP (EAP/TLS) [RFC 5216]
L5: Session
• TTLS : TTLS over EAP (EAP/TTLS) [RFC 5281]
L4: Transport
• etc… L3: Network
EAP is a layer 2 protocol  L2: Data Link
L1: Physical

Dr EL Hadji Modou MBOUP Cryptographie Pratique 172


PROTOCOLE EAP
Client Radius Authentication
Authenticator
Diameter Server

Dr EL Hadji Modou MBOUP Cryptographie Pratique 173


PROTOCOLE EAP
Client Radius Authentication
Authenticator
Diameter Server
(1) 802.11 association
(2) EAPOL start Stop

Dr EL Hadji Modou MBOUP Cryptographie Pratique 174


PROTOCOLE EAP
Client Radius Authentication
Authenticator
Diameter Server
(1) 802.11 association
(2) EAPOL start Stop

EAPOL-request/ID (3)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 175


PROTOCOLE EAP
Client Radius Authentication
Authenticator
Diameter Server
(1) 802.11 association
(2) EAPOL start Stop

EAPOL-request/ID (3)

(4) EAP-response/ID (5) AAAP-access-request

Dr EL Hadji Modou MBOUP Cryptographie Pratique 176


PROTOCOLE EAP
Client Radius Authentication
Authenticator
Diameter Server
(1) 802.11 association
(2) EAPOL start Stop

EAPOL-request/ID (3)

(4) EAP-response/ID (5) AAAP-access-request

EAP-challenge-request (7) AAAP-access-challenge (6)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 177


PROTOCOLE EAP
Client Radius Authentication
Authenticator
Diameter Server
(1) 802.11 association
(2) EAPOL start Stop

EAPOL-request/ID (3)

(4) EAP-response/ID (5) AAAP-access-request

EAP-challenge-request (7) AAAP-access-challenge (6)

(8) EAP-challenge-reponse (9) AAAP-access-request

Dr EL Hadji Modou MBOUP Cryptographie Pratique 178


PROTOCOLE EAP
Client Radius Authentication
Authenticator
Diameter Server
(1) 802.11 association
(2) EAPOL start Stop

EAPOL-request/ID (3)

(4) EAP-response/ID (5) AAAP-access-request

EAP-challenge-request (7) AAAP-access-challenge (6)

(8) EAP-challenge-reponse (9) AAAP-access-request

EAP-success (11) AAAP-access-accept


(10)

Dr EL Hadji Modou MBOUP Cryptographie Pratique 179


PROTOCOLE EAP
Client Radius Authentication
Authenticator
Diameter Server
(1) 802.11 association
(2) EAPOL start Stop

EAPOL-request/ID (3)

(4) EAP-response/ID (5) AAAP-access-request

EAP-challenge-request (7) AAAP-access-challenge (6)

(8) EAP-challenge-reponse (9) AAAP-access-request

EAP-success (11) AAAP-access-accept


(10)
EAP-success (12)
Access granted

Dr EL Hadji Modou MBOUP Cryptographie Pratique 180


CRYPTOGRAPHIE : UTILISATION

Cloud, Blockchains & IoT

Dr EL Hadji Modou MBOUP Cryptographie Pratique 181


Cryptographie sur le Cloud
 KMS (Keys Management System) ou Cloud Keys Brokers (CKB)
Utilisé pour de faible volume de données
Master Keys chiffre des ‘Working Keys’ utilisé pour protéger les data
Clés dans un HSM, coffre-fort, BYOK (Bring Your Own Key)
Exemples : AWS KMS, Google KMS, Azure Keyvault,

 Cloud HSM (HSM as a Service - HaaS)


CryptoAPI plus riches, plus performants et compatible PKCS#11
Utilisé pour de large volume de données
HSM : Safenet, Thales, Atos
Exemples : AWS CloudHSM, Gemalto Cloud HSM

 Technologie WEB
Oauth, OpenID, JWT, JWE, JWS
API Management : Axway, WSO2, MuleSoft,

Dr EL Hadji Modou MBOUP Cryptographie Pratique 182


Cryptographie sur le Cloud
 KMS (Keys Management System) ou Cloud Keys Brokers (CKB)
 Utilisé pour de faible volume de données
 Master Keys chiffre des ‘Working Keys’ utilisé pour protéger les data
 Clés dans un HSM, coffre-fort, BYOK (Bring Your Own Key)
 Exemples : AWS KMS, Google KMS, Azure Keyvault,

 Cloud HSM (HSM as a Service - HaaS)


CryptoAPI plus riches, plus performants et compatible PKCS#11
Utilisé pour de large volume de données
HSM : Safenet, Thales, Atos
Exemples : AWS CloudHSM, Gemalto Cloud HSM

 Technologie WEB
Oauth, OpenID, JWT, JWE, JWS
API Management : Axway, WSO2, MuleSoft,

Dr EL Hadji Modou MBOUP Cryptographie Pratique 183


Cryptographie sur le Cloud
 KMS (Keys Management System) ou Cloud Keys Brokers (CKB)
 Utilisé pour de faible volume de données
 Master Keys chiffre des ‘Working Keys’ utilisé pour protéger les data
 Clés dans un HSM, coffre-fort, BYOK (Bring Your Own Key)
 Exemples : AWS KMS, Google KMS, Azure Keyvault,

 Cloud HSM (HSM as a Service - HaaS)


 CryptoAPI plus riches, plus performants et compatible PKCS#11
 Utilisé pour de large volume de données
 HSM : Safenet, Thales, Atos
 Exemples : AWS CloudHSM, Gemalto Cloud HSM

 Technologie WEB
Oauth, OpenID, JWT, JWE, JWS
API Management : Axway, WSO2, MuleSoft,

Dr EL Hadji Modou MBOUP Cryptographie Pratique 184


Cryptographie sur le Cloud
 KMS (Keys Management System) ou Cloud Keys Brokers (CKB)
 Utilisé pour de faible volume de données
 Master Keys chiffre des ‘Working Keys’ utilisé pour protéger les data
 Clés dans un HSM, coffre-fort, BYOK (Bring Your Own Key)
 Exemples : AWS KMS, Google KMS, Azure Keyvault,

 Cloud HSM (HSM as a Service - HaaS)


 CryptoAPI plus riches, plus performants et compatible PKCS#11
 Utilisé pour de large volume de données
 HSM : Safenet, Thales, Atos
 Exemples : AWS CloudHSM, Gemalto Cloud HSM

 Technologie WEB
 Oauth, OpenID, JWT, JWE, JWS
 API Management : Axway, WSO2, MuleSoft,

Dr EL Hadji Modou MBOUP Cryptographie Pratique 185


BLOCKCHAIN Définition
• En 1976, les chercheurs américains Whitfield Diffie and Martin
Hellman présentent le concept révolutionnaire de double clef
publique et privée.

• Le protocole Diffie-Hellman permet à deux agents d’échanger entre


eux de manière cryptée sans avoir besoin d’un mot de passe.

• Cette innovation constitue la genèse de la technologie


Blockchain.

• Cryptographie et architectures distribuées sont génératrices de confiance


ex-nihilo. Elles vont converger pour former la couche technologique du
Bitcoin : la Blockchain.
Securite SI. Présenté par Dr. Elh. Modou MBOUP 186
BLOCKCHAIN Définition
• En 2008, Satoshi Nakamoto, la mystérieuse figure derrière
l’invention de Bitcoin, publie «Bitcoin: A Peer-to-Peer Electronic
Cash System ».

• La solution repose sur l’architecture décentralisée qui supporte


Bitcoin : la chaine de blocs, ou blockchain.

• une blockchain désigne une chaine de blocs, des conteneurs


numériques sur lesquels sont stockés des informations de
toutes natures : transactions, contrats, titres de propriétés,
œuvres d’art ...

Securite SI. Présenté par Dr. Elh. Modou MBOUP 187


BLOCKCHAIN Cas d’utilisation

Securite SI. Présenté par Dr. Elh. Modou MBOUP 188


BLOCKCHAIN Cas d’utilisation

Securite SI. Présenté par Dr. Elh. Modou MBOUP 189


BLOCKCHAIN Cas d’utilisation

Securite SI. Présenté par Dr. Elh. Modou MBOUP 190


BLOCKCHAIN Protocole Blockchain
Block

Numéro du Block Nonce : pour miner le block Transactions

Hachage : h(numero+nonce+transaction)
NB: Un block valide retourne toujours un haché dont les 4 premiers caractères sont 0
Securite SI. Présenté par Dr. Elh. Modou MBOUP 191
BLOCKCHAIN Protocole Blockchain
Block : Exemple de block non valide

Hachage : h(numero+nonce+transaction)
Le block est non valide car les 4 premiers caractères sont 1375.
L’opération de minage nous permet de générer un nonce qui va valider le block
Securite SI. Présenté par Dr. Elh. Modou MBOUP 192
BLOCKCHAIN Protocole Blockchain
Blockchain

Securite SI. Présenté par Dr. Elh. Modou MBOUP 193


BLOCKCHAIN Protocole Blockchain
Blockchain

Securite SI. Présenté par Dr. Elh. Modou MBOUP 194


BLOCKCHAIN Protocole Blockchain
Blockchain distribuée

Securite SI. Présenté par Dr. Elh. Modou MBOUP 195


BLOCKCHAIN Protocole Blockchain
Blockchain distribuée

Les transactions du block 4


ont été modifiées

Securite SI. Présenté par Dr. Elh. Modou MBOUP 196


BLOCKCHAIN Protocole Blockchain
Blockchain avec des transaction

Securite SI. Présenté par Dr. Elh. Modou MBOUP 197


CRYPTOGRAPHIE : UTILISATION

TP Blockchains bitcoin

Securite SI. Présenté par Dr. Elh. Modou MBOUP 198


Blockchains : Cas de Bitcoin
 Cryptographie elliptique avec la courbe Ed25519

 Fonctions de hachage : SHA256 et RIPMEND

 Identification d’un node par son adresse publique


1. Générer une clé privée « k »
2. Calculer la clé publique « K = k*G »
3. Calculer l’adresse « A = RIPEMD160(SHA256(K)) »

 Wallet (Portefeuille)
• Application pour gérer les BTC, les adresses, les transactions, etc.
• Authent avec une passe phrase de 12 à 24 mots

 Blocks :
 Header : ID, Hash_block_précédent, Hash_TX, timestape, nonce
 Hash_TX = Merkle_Hash(TX) : SHA256(SHA256(Transactions))
 Hash d’un block : SHA256(SHA256(header))
Securite SI. Présenté par Dr. Elh. Modou MBOUP 199
Blockchains : Cas de Bitcoin
 Rechercher une image Docker Bitcoin
Ex: $ docker search bitcoin

 Télécharger l’image Docker Bitcoin


Ex: $ docker pull kylemanna/bitcoind

 Démarrer l’image de Docker avec


Ex: $ docker run -it --rm kylemanna/bitcoind bash

 Commandes utiles :
# bitcoind –h permet de démarrer le service Bitcoin
# bitcoin-cli -h c’est le client Bitcoin
# bitcoin-tx -h permet de gérer les transactions
# bitcoin-wallet -h permet de gérer les portfeuilles

Securite SI. Présenté par Dr. Elh. Modou MBOUP 200


Blockchains : Cas de Bitcoin
 Démarrer l’environnement de test de Bitcoin
# bitcoind -regtest & #pour un test local
# bitcoin-cli -regtest –getinfo #vérifier l’environnement local

 Avoir de l’aide sur les sous-commandes :


# bitcoin-cli -regtest help
Cette commande donne différente section identifiée par == Section ==
== Blockchain == # gestion de la Blockchain
== Control == # Contrôle des ressources (CPU, Mémoire, etc.)
== Generating == # Génération de blocks
== Mining == # le minage
== Network == # gestion du réseau
== Rawtransactions == # gestion des transactions
== Util == # utilitaire
== Wallet == # gestion du porte-feuille

Securite SI. Présenté par Dr. Elh. Modou MBOUP 201


Blockchains : Cas de Bitcoin
 Gestion des porte-feuilles
# bitcoin-cli -regtest createwallet "mboupwallet"
#création de ~/.bitcoin/regtest/wallets/mboupwallet/
# bitcoin-cli -regtest getwalletinfo
# bitcoin-cli -regtest getnewaddress "Mboup"
# bitcoin-cli -regtest getnewaddress "Modou"
# bitcoin-cli -regtest listlabels
# bitcoin-cli -regtest getaddressesbylabel "Mboup"
 Gestion des blocks
# bitcoin-cli -regtest -generate 10
# bitcoin-cli -regtest getblockcount
# bitcoin-cli -regtest getblockhash 5
# bitcoin-cli -regtest getblock <hash_block>
# bitcoin-cli -regtest decodescript <hash_block>
 Gestion des transactions
# bitcoin-cli -regtest gettransaction <tx_id>
# bitcoin-cli -regtest decoderawtransaction <tx_id>
# bitcoin-cli -regtest listtransactions "Mboup"
# bitcoin-cli -regtest createrawtransaction "[]" "{\"bc..\":10}"

Securite SI. Présenté par Dr. Elh. Modou MBOUP 202


Blockchains : Cas de Bitcoin
Envoyer & recevoir des BTC
 Voir les BTC reçu
# bitcoin-cli listunspent 1 99999999 '''["<my_address>"]'''

 Créer une transaction


# bitcoin-cli createrawtransaction \
'[{
"txid" : "<txid_of_selected_block>",
"vout" : <vout>
}]'
'{"<rec_addr>":<send_BTC>, "<sen_add>": <change_BTC>}’
 Signer la transaction créée
# bitcoin-cli signrawtransaction <hex_createrawtransaction>

 Envoyer la transaction signée


# bitcoin-cli sendrawtransaction <hex_createrawtransaction>
Securite SI. Présenté par Dr. Elh. Modou MBOUP 203
IoT

Dr EL Hadji Modou MBOUP Cryptographie Pratique 204


IoT architecture
IoT : objets intelligents possédant la capacité d’être disponible partout et à
tout moment.
Les IoT disposent de peu de ressources : en processeur, en mémoire RAM, en
stockage et en interface.

BLE, Wi-Fi, Z-Wave, ZigBee, MQTT, AMQP,


LoRaWan, DECT/ULE, CoAP, XMPP,
6LoWPAN

https

Dr EL Hadji Modou MBOUP Cryptographie Pratique 205


IoT Protocoles

Niveau Protocoles
Application
MQTT, AMQP, CoAP, XMPP, DDS
(SG <-> PFS)
TCP / UDP
Transport
TLS / DTLS
Réseau IPv4, IPv6, 6LoWPAN
Physique Bluetooth & BLE, Wi-Fi, Z-Wave, ZigBee,
(IoT <-> SG) LoRaWan, DECT/ULE, 6LoWPAN, etc.

Dr EL Hadji Modou MBOUP Cryptographie Pratique 206


END MODULE

Dr EL Hadji Modou MBOUP Cryptographie Pratique 207

Vous aimerez peut-être aussi