La création de clefs RSA
Tous droits réservés à STUDI - Reproduction interdite
Table des matières
Table des matières
I. Algorithme RSA 3
A. D'où vient le nom RSA et comment fonctionne-t-il ? ..................................................................................................3
II. Exercice : Quiz 4
III. Création de clés RSA avec OpenSSL 5
A. Créer la paire de clés RSA .............................................................................................................................................5
IV. Exercice : Quiz 9
V. Essentiel 10
VI. Auto-évaluation 10
Solutions des exercices 11
2 Tous droits réservés à STUDI - Reproduction interdite
I. Algorithme RSA
Durée : 2 h 00
Environnement de travail : avoir un système d'exploitation sur son ordinateur Windows ou Linux.
Prérequis : avoir un minimum de base de connaissance sur les commandes OpenSSL et Debian.
Contexte
Il existe plusieurs méthodes pour générer des paires de clés publiques et privées, mais l'outil open source
OpenSSL et OpenSSH sont les plus utilisés. Il a été inclus sur toutes les principales plates-formes et offre une
interface de ligne de commande simple pour générer des clés.
Bien que le chiffrement d'un fichier avec un mot de passe à partir de la ligne de commande à l'aide d'OpenSSL
soit très utile en soi, la véritable puissance de la bibliothèque OpenSSL est sa capacité à prendre en charge
l'utilisation d'un cryptographe à clé publique pour chiffrer ou valider des données sans surveillance (où le mot de
passe n'est pas requis pour crypter) se fait avec des clés publiques.
Il y a toujours eu un souci d'assurer la confidentialité des communications, en essayant de garantir qu'un
message ne puisse être lu que par le destinataire prévu. Imaginez le défi que représente le maintien d'un tel
niveau de confidentialité dans le monde d'aujourd'hui, où l'on utilise massivement et intensivement les
communications numériques sur Internet. La cryptographie joue un rôle fondamental dans la réalisation de cet
objectif, en nous aidant à établir des communications sécurisées grâce à l'application d'algorithmes et de
protocoles de sécurité.
Dans ce cours, nous allons apprendre à effectuer quelques opérations cryptographiques élémentaires telles que
la génération d'une paire de clés, et le cryptage. Pour ce faire, nous utiliserons RSA, en tant qu'algorithme de
cryptage asymétrique, et OpenSSL.
A. D'où vient le nom RSA et comment fonctionne-t-il ?
Introduction
Le nom RSA vient des initiales de ses trois créateurs, Rivest, Shamir et Adleman, en 1977. Il s'agit d'un algorithme de
chiffrement asymétrique, ou clé publique, et l'un des plus utilisés aujourd'hui. En effet, la plupart des sites web
intègrent aujourd'hui la sécurité SSL/TLS, et permettent l'authentification via RSA.
RSA étant un crypteur asymétrique, il fonctionne avec deux clés : une publique et une privée. En somme, le contenu
qui a été crypté avec la clé publique peut être décrypté à l'aide de la clé privée, et vice versa, tout le contenu crypté
avec la clé privée peut être décrypté à l'aide de la clé publique.
Erratum vidéo : la date de 1978 mentionnée dans la vidéo est en réalité 1977.
Imaginons que nous ayons besoin d'envoyer des informations confidentielles sur Internet et que nous souhaitions
que seul le destinataire les voie. Une façon de le faire serait de mettre les informations dans un coffre-fort et de le
fermer avec une certaine combinaison. Nous expédions ensuite le coffre-fort au destinataire, et le destinataire
pourra voir son contenu tant qu'il connaît la même combinaison qui a été utilisée pour le fermer.
C'est le concept de la cryptographie symétrique, une seule clé ou combinaison pour ouvrir la boîte. Ce schéma a un
problème : l'échange de la clé. Comment faire parvenir la clé au destinataire sans que personne ne la voie ? Bien
entendu, si l'origine envoie une simple lettre avec la clé au destinataire, toute personne pouvant intercepter le
coffre-fort et la lettre en cours de route, pourra ouvrir la boîte.
Ce fondement de la cryptographie asymétrique, et l'un des algorithmes asymétriques les plus courants aujourd'hui
est l'algorithme RSA. Ainsi, la cryptographie asymétrique élimine l'un des principaux problèmes de la cryptographie
symétrique : l'échange de la clé.
Exercice : Quizsolution
Comment générer des clés RSA sous OpenSSL ?
Lors de l'utilisation du cryptage RSA, la longueur des données cryptées doit être identique à la longueur de la clé
RSA. Si les données sont trop courtes, elles seront complétées.
Si nous l'assimilons à notre exemple d'utilisation du coffre-fort, cela équivaudrait à ce que le destinataire crée les
clés, l'une pour pouvoir fermer le coffre-fort (clé publique) et une autre pour pouvoir l'ouvrir (clé privée).
Exercice : Quiz [solution n°1 p.13]
Question 1
Le nom RSA vient de :
Rayan, Sami et Amine
Rivest, Shamir et Adleman
Question 2
RSA est un système de ligne de commandes ?
Vrai
Faux
Question 3
Avec combien de clefs fonctionne l'algorithme RSA ?
1 clef
2 clefs
Question 4
Quand on utilise le cryptage RSA, la longueur des données doit être différente de la longueur de la clé RSA ?
Vrai
Faux
Question 5
L'une des meilleures capacités de la bibliothèque OpenSSL est :
OpenSSL offre une interface de ligne de commande simple pour générer des clés
OpenSSL prend en charge l'utilisation d'un cryptographe à clé publique pour valider des données sans
surveillance
OpenSSL prend en charge l'utilisation d'un cryptographe à clé privé pour valider des données sans
surveillance
4 Tous droits réservés à STUDI - Reproduction interdite
Création de clés RSA avec OpenSSL
III. Création de clés RSA avec OpenSSL
A. Créer la paire de clés RSA
Méthode
Pour commencer à créer notre paire de clés RSA nous allons utiliser notre machine cliente, qui est la machine que
nous utilisons habituellement.
Ensuite, depuis notre Terminal, nous devrons exécuter en ligne de commande l'instruction suivante :
openssl genrsa -out [Link] 1024
Cette commande s'occupera du processus de création des fichiers de clés, c'est-à-dire de nos clés privée et
publique. Le nom toto va être le nom de notre clef qui est obtenue au format PEM ça veut dire (Privacy Enhanced
Mail en format en base 64) et le numéro 1024 va être la taille exprimée en bits.
Méthode Affichage du fichier de la clé privée RSA
La commande cat [Link] va nous permettre de voir le contenu entier d'un fichier. Dans le cas de la
démonstration, le fichier est [Link]
Et comme nous pouvons le constater, lorsque nous entrons la commande, elle nous montre les clés privées RSA
que nous avons créées.
Tous droits réservés à STUDI - Reproduction interdite 5
Création de clés RSA avec OpenSSL
Méthode Visualiser les clés RSA
Dans le cas où nous souhaiterions voir l'affichage des clés RSA nous devons utiliser la commande openssl rsa
-in [Link] -text -noout.
Cette commande rsa va permettre de visualiser le contenu d'un fichier au format PEM.
L'option -text demandera le décodage de la clé et l'option -noout nous permettra de supprimer la sortie
produite par la commande rsa.
Sur la capture d'écran ci-dessous, on peut voir tout le contenu de notre création clef RSA.
6 Tous droits réservés à STUDI - Reproduction interdite
Création de clés RSA avec OpenSSL
Tous droits réservés à STUDI - Reproduction interdite 7
Création de clés RSA avec OpenSSL
Méthode Chiffrement d'un fichier de clés privées RSA
Il n'est pas du tout sûr de laisser les clés à découvert, surtout les clés privées. Ce que nous pouvons faire avec la
commande RSA, c'est crypter les clés. Nous avons trois options (-des, -des3 et -idea) qui vont spécifier
l'algorithme de cryptage symétrique à utiliser, dans notre cas nous allons utiliser la commande -des3.
La commande à exécuter pour le cryptage d'un fichier de clés privées RSA est la suivante :
openssl rsa -in [Link] -des3 -out [Link]
Comme vous pouvez le voir dans la capture ci-dessous, une phrase sera demandée afin de générer une clé
symétrique qui protégera l'accès à la clé que nous avons créée. La même clé devra être saisie deux fois, car une
confirmation de la clé est sollicitée.
Méthode Exportation d'une clé publique
Ce que nous allons faire maintenant est l'exportation de notre clé publique afin qu'elle puisse être partagée avec
d'autres, et pour cela nous devrons utiliser la commande suivante :
openssl rsa -in [Link] -pubout -out [Link]
Puis il faudra entrer notre passphrase pour confirmer l'exportation de la clé et la demande sera acceptée en
appuyant sur la touche Entrée
8 Tous droits réservés à STUDI - Reproduction interdite
Exercice : Quizsolution
Méthode Vérification de l'exportation de la clé publique
Dans ce bloc, nous allons procéder à la vérification de l'exportation de notre clé publique.
Pour cela, il suffit d'exécuter la commande : openssl rsa -in [Link] -pubin.
Dans la capture ci-dessous, on peut observer le contenu de notre clé publique. Cela signifie que l'exportation a
été faite correctement.
Exercice : Quiz [solution n°2 p.14]
Question 1
La première étape consiste à afficher le fichier de clé privée RSA.
Vrai
Faux
Question 2
C'est la commande [Link] qui va permettre l'affichage du contenu entier d'un fichier.
Vrai
Faux
Question 3
Tous droits réservés à STUDI - Reproduction interdite 9
Essentiel
Il est possible de laisser les clés à découvert sans soucis.
Oui
Non
Question 4
Nous avons utilisé OpenSSH pour permettre la création des clés RSA.
Vrai
Faux
Question 5
On a utilisé l'option -des pour chiffrer le fichier d'une clé privée RSA.
Vrai
Faux
V. Essentiel
Au-delà de l'utilisation d'algorithmes sécurisés avec des niveaux de protection élevés, il est nécessaire que les
utilisateurs soient prudents dans l'utilisation des mots de passe et prudents sur le type de sites qu'ils utilisent pour
échanger des informations sensibles. La cryptographie asymétrique apporte un bon niveau de sécurité en intégrant
une deuxième clé dans le processus de cryptage/décryptage. La clé privée est conservée par chacun des
interlocuteurs alors que la clé publique de chacun servira à décrypter les données reçues. Il faut bien respecter les
étapes de cryptage et de partage des clés et ne pas oublier la passphrase qui les protège.
VI. Auto-évaluation
Exercice 1 [solution n°3 p.14]
Nous allons maintenant passer à un exercice qui permettra de voir si vous maîtrisez les étapes de la création et de
la gestion des clés RSA avec OpenSSL.
Ci-dessous vous avez les titres des étapes dans l'ordre à exécuter pour la création et la gestion des clés RSA. À vous
de les relier avec les bonnes lignes de commandes.
[Link] -pubin openssl rsa -in [Link] -text -noout
openssl rsa -in [Link] -pubout -out [Link] cat [Link]
openssl genrsa -out [Link] 1024
Openssl rsa -in [Link] -des3 -out [Link]
10 Tous droits réservés à STUDI - Reproduction interdite
Solutions des exercices
Création de la Affichage du Visualisation Cryptage d'un Exportation Vérification de
paire de clés fichier de la clé des clés RSA fichier de clés d'une clé l'exportation
RSA privée RSA privées RSA publique
Exercice 2 : Quiz [solution n°4 p.15]
Question 1
Quel rôle joue la cryptographie ?
Aide à changer d'interface de commandes
Aide à établir des communications sécurisées
Question 2
Le contenu non crypté qui a été crypté avec la clé publique peut être décrypté avec la clé privée.
Vrai
Faux
Question 3
La cryptographie asymétrique ne peut pas éliminer l'un des principaux problèmes de la cryptographie
symétrique.
Vrai
Faux
Question 4
Dans la création des clés, le numéro 1024 est le format PEM.
Vrai
Faux
Question 5
Que signifie PEM ?
Private Enlaced Mel
Privacy Enhanced Mail
Solutions des exercices
Tous droits réservés à STUDI - Reproduction interdite 11
Solutions des exercices
Exercice p. 4 Solution n°1
Question 1
Le nom RSA vient de :
Rayan, Sami et Amine
Rivest, Shamir et Adleman
Le nom RSA vient des initiales de ses trois créateurs, Rivest, Shamir et Adleman.
Question 2
RSA est un système de ligne de commandes ?
Vrai
Faux
RSA est un algorithme de chiffrement asymétrique.
Question 3
Avec combien de clefs fonctionne l'algorithme RSA ?
1 clef
2 clefs
L'algorithme RSA fonctionne avec deux clés, une publique et une privée.
Question 4
Quand on utilise le cryptage RSA, la longueur des données doit être différente de la longueur de la clé RSA ?
Vrai
Faux
La longueur des données cryptées doit être identique à la longueur de la clé RSA. Si les données sont trop
courtes, elles seront complétées.
Question 5
L'une des meilleures capacités de la bibliothèque OpenSSL est :
OpenSSL offre une interface de ligne de commande simple pour générer des clés
OpenSSL prend en charge l'utilisation d'un cryptographe à clé publique pour valider des données sans
surveillance
OpenSSL prend en charge l'utilisation d'un cryptographe à clé privé pour valider des données sans
surveillance
La bibliothèque OpenSSL a la capacité prend en charge l'utilisation d'un cryptographe à clé publique pour
valider des données sans surveillance
Tous droits réservés à STUDI - Reproduction interdite 13
Solutions des exercices
Exercice p. 9 Solution n°2
Question 1
La première étape consiste à afficher le fichier de clé privée RSA.
Vrai
Faux
La première étape consiste à créer les clés RSA.
Question 2
C'est la commande [Link] qui va permettre l'affichage du contenu entier d'un fichier.
Vrai
Faux
C'est la commande cat [Link] qui va permettre l'affichage du contenu entier d'un fichier.
Question 3
Il est possible de laisser les clés à découvert sans soucis.
Oui
Non
Il n'est pas du tout sûr de laisser les clés à découvert surtout les clés privées, car le mot de passe ne change
pas.
Question 4
Nous avons utilisé OpenSSH pour permettre la création des clés RSA.
Vrai
Faux
Nous avons utilisé l'outil OpenSSL directement pour créer les clés RSA.
Question 5
On a utilisé l'option -des pour chiffrer le fichier d'une clé privée RSA.
Vrai
Faux
On a utilisé l'option -des3 pour crypter le fichier d'une clé privée RSA.
Exercice p. 10 Solution n°3
14 Tous droits réservés à STUDI - Reproduction interdite
Solutions des exercices
Nous allons maintenant passer à un exercice qui permettra de voir si vous maîtrisez les étapes de la création et de
la gestion des clés RSA avec OpenSSL.
Ci-dessous vous avez les titres des étapes dans l'ordre à exécuter pour la création et la gestion des clés RSA. À vous
de les relier avec les bonnes lignes de commandes.
Création de Affichage du Visualisation Cryptage d'un Exportation d'une clé Vérification de
la paire de fichier de la des clés RSA fichier de clés publique l'exportation
clés RSA clé privée privées RSA
RSA
openssl openssl rsa -in [Link]
openssl rsa -in Openssl [Link] -pubout -pubin
genrsa - cat [Link] rsa -in -out
out [Link] -text - [Link] [Link]
[Link] noout -des3 -out
1024 [Link]
Étapes à exécuter Lignes de commandes
Création de la paire de clés RSA openssl genrsa -out [Link] 1024
Affichage du fichier de la clé privée RSA cat [Link]
Visualisation des clés RSA openssl rsa -in [Link] -text -noout
Openssl rsa -in [Link] -des3 -out
Cryptage d'un fichier de clés privées RSA
[Link]
openssl rsa -in [Link] -pubout -
Exportation d'une clé publique
out [Link]
Vérification de l'exportation [Link] -pubin
Exercice p. 11 Solution n°4
Question 1
Quel rôle joue la cryptographie ?
Aide à changer d'interface de commandes
Aide à établir des communications sécurisées
Aide à établir des communications sécurisées grâce à l'application d'algorithmes et de protocoles de sécurité.
Question 2
Le contenu non crypté qui a été crypté avec la clé publique peut être décrypté avec la clé privée.
Vrai
Faux
Et vice versa, tout le contenu crypté avec la clé privée peut être décrypté à l'aide de la clé publique.
Tous droits réservés à STUDI - Reproduction interdite 15
Solutions des exercices
Question 3
La cryptographie asymétrique ne peut pas éliminer l'un des principaux problèmes de la cryptographie symétrique.
Vrai
Faux
La cryptographie asymétrique élimine l'un des principaux problèmes de la cryptographie symétrique qui
l'échange de la clé.
Question 4
Dans la création des clés, le numéro 1024 est le format PEM.
Vrai
Faux
Le numéro 1024 va être la taille exprimée en bits.
Question 5
Que signifie PEM ?
Private Enlaced Mel
Privacy Enhanced Mail
PEM signifie Privacy Enhanced Mail basé sous le format 64.
16 Tous droits réservés à STUDI - Reproduction interdite