CRYPTOGRAPHIE APPLIQUÉE
Module 3 : Implémentation de protocoles
cryptographiques sur des distributions Linux et Windows
PGP, OPENSSL
YOUR SECURITY, OUR BUSINESS
Nelson SAHO
Facililateur
SecuriGate
13 décembre 2023
Contenu
1 Quelques rappels sur la cryptographie
2 Implémentation du PGP
3 Implémentation de OpenSSL
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 1
Contenu
1 Quelques rappels sur la cryptographie
2 Implémentation du PGP
3 Implémentation de OpenSSL
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 2
Principe de la cryptographie
Figure – Le principe basique de la cryptographie.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 3
Familles de cryptographie
Deux familles de cryptographie de par l’utilisation de la clef.
La cryptographie symétrique : Son avantage réside dans la rapidité du
calcul et l’utilisation aisée.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 4
Cryptographie symétrique
Encore appelée cryptographie à clé secrète, la cryptographie
symétrique est la plus ancienne et date de 2000 ans avant Jésus-Christ
en Egypte en passant par l’empereur Jules César. Elle consiste à
envoyer un message chiffré à l’aide d’une clé (à garder secrète - d’où le
nom). Cette clé permet le déchiffrement du message chiffré.
Le problème majeur que pose la cryptographie symétrique est lié à
l’échange de la clé secrète. Malgré cette faiblesse, la cryptographie
symétrique continue de faire des exploits. Cela est possible dès que la
méthode ou le canal de transmission de la clé secrète est sans faille.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 5
Cryptographie asymétrique
Encore appelée cryptographie moderne ou cryptographie à clé
publique, elle remonte à la publication scientifique de W. Diffie et M.
Hellman, publication dont le titre est New Direction in Cryptography
en 1976. Elle fait usage de deux clés : une clé publique et une clé
privée.
Dans la cryptographie à clé publique, l’émetteur et le destinataire ont
en commun seulement la clé publique. La clé secrète encore appelée
clé privée doit être détenue uniquement par celui qui doit déchiffrer le
message (il s’agit du destinataire).
La clé publique et la clé privée sont fortement liées et distinctes. C’est
pourquoi on parle de l’asymétrie.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 6
Cryptographie asymétrique (fin)
Malgré la sécurité apparente d’un cryptosystème asymétrique, il faut
noter l’utilisation d’un grand nombre de clés quand plusieurs acteurs
s’envoient des messages. Des solutions existent pour corriger cet
inconvénient majeur en orientant l’ordre d’envoi.
Bien que la cryptographie à clé publique soit récente, elle ne remplace
pas la cryptographie à clé secrète. Par exemple, la vitesse de
chiffrement d’un message en utilisant un cryptosystème symétrique est
plus elevée que la vitesse de chiffrement d’un message à l’aide d’un
cryptosystème asymétrique.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 7
Le chiffrement et déchiffrement
Fonctionnement de la cryptographie asymétrique
Figure – Le chiffrement et déchiffrement 1 .
1. Source : [Link]
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 8
Mécanisme de la signature numérique
Fonctionnement du mécanisme de la signature numérique
Mécanisme de mise en place
Fonction de chiffrement C et de déchiffrement D.
Fonction de hachage H.
Alice génère une clef privée Kpr et une clef publique Kpb . Elle transmet
Kpb à Bob.
Préparation du message signé par Alice
Calculer H(M).
Chiffrer H(M) avec C en utilisant Kpr . SM = C (Kpr , H(M)).
Msigne = (SM , M).
Réception du message signé.
Calculer H(M).
Déchiffrer la signature en utilisant D avec la clef publique Kpb . soit
DSm = D(Kpb , SM ).
Si DSm = H(M) alors la signature est authentique.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 9
Processus de signature d’un message
Figure – La signature d’un message avec intégration du hachage.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 10
Le hachage
Figure – Le processus de hachage d’un message.
Données Sortie (SHA-256)
Efficace 0x25644f 9b1f 8832f 07cdb129fbdf 48fe919f 714b2e2925678e48d04134863cdf 6
efficace 0x97afd6dca565286a57e5219d78423ea1b9ffbe14ba7f 9b8476aa446431dec8df
ef ficace 0xc55c9d853cd84b2f 3678469b752776cf 3efc2a35d1db2838dc392c57e9d75068
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 11
Définition d’un cryptosysème
Un cryptosystème est un système caractérisé par :
l’espace des messages clairs noté M et défini sur un alphabet A qui
peut être l’alphabet latin {A, B, · · · Z }, l’alphabet binaire {0, 1}, etc.
l’espace des messages chiffrés noté C défini sur un alphabet B.
l’espace des clés noté K.
l’ensemble E des transformations de chiffrement définies par
EK : M −→ C
M 7−→ C ;
l’ensemble D des transformations de déchiffrement définies par
DK : C −→ M
C 7−→ M.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 12
Définition d’un cryptosysème (suite)
Un cryptosystème ou système cyptographique est donc noté
(M, C, K, E, D). On a les relations suivantes :
∀ M ∈ M, DK [EK (M)] = M.
Donc
DK ◦ EK = IdM .
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 13
Principe de Kerckhoffs
Il s’agit d’un principe énoncé par Kerckhoffs à la fin du dix-neuvième
siècle qui stipule que la sécurité d’un système cryptographique ne doit
pas reposer sur la non divulgation des fonctions de chiffrement et de
déchiffrement utilisées mais plutôt sur la non divulgation des clés
utilisées pour les paramétrer.
En d’autres termes, pour un utilisateur, il importe de conserver les clés
d’un système cryptographique plutôt que de chercher à comprendre les
algorithmes de chiffrement.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 14
Exemples d’algorithmes de chiffrement
On rencontre plusieurs algorithmes de chiffrement pour les systèmes
symétriques et pour les systèmes asymétriques.
Chiffrement symétrique
DES (Data Encryption Standard) : DES est un algorithme de
chiffrement par bloc utilisant des clés de 56 bits. Du fait de sa lenteur
à l’exécution et de son espace de clés trop petit permettant une
attaque systématique en un temps raisonnable, son utilisation n’est
plus recommandé. DES a notamment été utilisé dans le système de
mots de passe UNIX.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 15
Exemples d’algorithmes de chiffrement
Chiffrement symétrique (suite)
AES (Advanced Encryption Standard) : L’algorithme AES, est le
nouveau standard de chiffrement pour les organisations du
Gouvernement des États-Unis. Il a été approuvé par la NSA (National
Security Agency ) dans sa suite B1 des algorithmes cryptographiques.
Blowfish : Conçu par Bruce Schneier en 1993, Blowfish est un
algorithme de chiffrement par blocs et utilise une taille de bloc de 64
bits et la clé de longueur variable pouvant aller de 32 à 448 bits.
Blowfish présente une bonne rapidité d’exécution excepté lors d’un
changement de clé, il est environ 5 fois plus rapide que 3DES et deux
fois plus rapide que IDEA.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 16
Exemples d’algorithmes de chiffrement
Chiffrement symétrique (fin)
IDEA (International Data Encryption Algorithm) : IDEA est un
algorithme de chiffrement conçu par Anas Ftouh, Othman Bechchar,
Xuejia Lai, XuejiaLai et James Massey, et fut décrit pour la première
fois en 1991. L’algorithme IDEA a été breveté par la société suisse
Mediacrypt ; le brevet a expiré en 2011 en Europe, et en janvier 2012
aux États-Unis et au Japon. IDEA est un algorithme de chiffrement
par blocs utilisé pour chiffrer et déchiffrer des données. Il manipule des
blocs de texte en clair de 64 bits. Une clé de chiffrement longue de
128 bits.
etc.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 17
Exemples d’algorithmes de chiffrement
Chiffrement asymétrique
RSA (Rivest Shamir Adleman) : Le chiffrement RSA est un algorithme
de cryptographie asymétrique, très utilisé dans le commerce
électronique, et plus généralement pour échanger des données
confidentielles sur Internet. Cet algorithme a été décrit en 1977 par
Ronald Rivest, Adi Shamir et Leonard Adleman.
El Gamal : Le cryptosystème d’El Gamal est un protocole de
cryptographie asymétrique inventé par Taher Elgamal en 1984. Ce
protocole est utilisé par le logiciel libre GNU Privacy Guard.
Contrairement au chiffrement RSA, il n’a jamais été sous la protection
d’un brevet.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 18
Exemples d’algorithmes de chiffrement
Chiffrement asymétrique (suite)
DSA (Digital Signature Algorithm) : DSA est un algorithme de
signature numérique standardisé par le NIST aux États-Unis, du temps
où le RSA était encore breveté. Cet algorithme fait partie de la
spécification DSS Digital Signature Standard adoptée en 1993 (FIPS)
- Federal Information Processing Standard 186. Une révision mineure a
été publiée en 1996 (FIPS 186-1) et le standard a été amélioré en
2002 dans FIPS 186-2. Il est couvert par le brevet numéro 5 231 668
aux USA (26 juin 1991) attribué à David Kravitz, ancien employé de
la NSA, et il peut être utilisé gratuitement.
etc.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 19
Merci pour votre attention.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 20
Contenu
1 Quelques rappels sur la cryptographie
2 Implémentation du PGP
3 Implémentation de OpenSSL
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 21
Implémentation du PGP
Peut-on se lancer
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 22
Implémentation du PGP
Sur une première machine
Générer les clés pour l’utilisateur et afficher son trousseau de clés.
Exporter les clés publique et privée dans un fichier différent
([Link] et [Link]).
Transférer la clé publique dans votre compte utilisateur.
Reitérer ces mêmes opérations sur une deuxième machine.
Importer sur chaque machine la clé publique reçue dans le trousseau
de clés.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 23
Implémentation du PGP
Chiffrement d’un texte
Créer un fichier texte et écrire un message dedans.
Chiffrer le message pour votre correspondant.
Supprimer le fichier original et ne conserver que le fichier chiffré.
Transférer le fichier texte chiffré.
Déchiffrer le message sur l’autre ordinateur.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 24
Implémentation du PGP
Signature d’un message
Créer votre message.
Signez-le.
Transférer les informations à votre correspondant.
Vérifier la validité de la signature du fichier transféré
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 25
Implémentation du PGP
Signature et chiffrement
Établir la procédure de chiffrement et de signature sur le document.
Transférez ce document , puis vérifiiez la signature et déchiffrez-le.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 26
Merci pour votre attention.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 27
Contenu
1 Quelques rappels sur la cryptographie
2 Implémentation du PGP
3 Implémentation de OpenSSL
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 28
Implémentation de openSSL
Peut-on se lancer
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 29
Travaux pratiques sur OpenSSL
Openssl : Api de crypto la plus répandue. Open source avec licence
GPL. On trouvera toutes les informations la concernant à l’adresse :
http ://[Link]. A titre d’exemple Openssl intègre également
le protocole SSL. C’est cette même distribution qu’intègre le serveur
Apache pour offrir les services SSL.
Openssl offre un mode commande où l’on peut interagir avec l’API.
C’est ce mode que l’on utilisera tout simplement en tapant openssl.
Pour accéder à l’usage des différentes commandes, il suffira lorsqu’on
est sur openssl de taper le nom de la commande suivie de –help.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 30
Travaux pratiques sur OpenSSL
Exercice 1 – Symétrique
Soit un fichier donné fiche. Écrire la commande qui permet de le chiffrer et
produit ainsi un fichier [Link]
On peut alors vérifier que le message [Link] est bien inintelligible
Ce même message est transmis à votre collègue qui pourra également le
déchiffrer.
On peut alors vérifier que le message ainsi déchiffré est bien identique à
fiche.
Il vous est bien sûr de comprendre l’ensemble des manipulations associées.
Il vous est demandé de diversifier les algorithmes. D’utiliser également
l’option –a pour produire un fichier chiffrer lisible donc codé en base64
(lisible ne veut pas dire en clair).
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 31
Travaux pratiques sur OpenSSL
Exercice 2 – Symétrique
Donner des éléments temporels comparatifs entre les opérations de
chiffrement et de déchiffrement et ensuite entre différents algorithmes
(conseil : choisissez un fichier avec une taille conséquente)
Exercice 3 – Symétrique
Pourquoi quand on applique deux fois la commande enc une fois au fichier
en clair et une fois au fichier chiffré on obtient pas un résultat en clair.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 32
Travaux pratiques sur OpenSSL
Exercice 1 – Asymétrique
Génération de cle privée/public RSA :
Le format de sortie par défaut est du PEM (Privacy Enhanced Mail). A
l’aide de l’option –outform ou -inform on peut changer le format. Deux
formats sont supportés par cette option PEM et DER) openssl
OpenSSL> genrsa (cette commande prend en entrée les paramètres
positionés dans le fichier [Link])
OpenSSL> genrsa -help
OpenSSL> genrsa 1024
OpenSSL> genrsa -out key 1024
OpenSSL> genrsa -des3 -out key 1024 (la clé privé est chiffré avec un
triple DES)
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 33
Merci pour votre attention.
Nelson SAHO Facililateur (SecuriGate) Cryptographie appliquée 13 décembre 2023 34