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