Création de clefs RSA¶
1. Objectif du cours¶
Expliquer le principe de l'algorithme RSA et apprendre à générer, protéger et exporter une paire de clefs RSA à l'aide d'OpenSSL depuis une interface en ligne de commande.
2. Notions et définitions essentielles¶
- RSA : algorithme de chiffrement asymétrique créé par Rivest, Shamir et Adleman (1977).
- Clé publique / clé privée : paire de clés où l'une sert à chiffrer/valider et l'autre à déchiffrer/valider.
- PEM : Privacy Enhanced Mail, format base64 utilisé pour stocker des clés.
- Passphrase : mot de passe protégeant une clé privée chiffrée.
- OpenSSL : outil open source fournissant une interface CLI pour générer et manipuler des clés.
3. Fonctionnement et principes¶
- RSA est asymétrique : l'émetteur peut utiliser la clé publique du destinataire pour chiffrer ; seul le détenteur de la clé privée peut déchiffrer (et inversement pour la signature).
- Le principal avantage par rapport au chiffrement symétrique est la suppression du problème d'échange sécurisé de la clé.
- Lors du chiffrement RSA, la longueur des données doit correspondre à la longueur de la clé RSA ; si elles sont plus courtes, elles sont complétées (padding).
- La taille d'une clé (ex. 1024) est exprimée en bits ; elle détermine le niveau de sécurité et la capacité de chiffrement.
- OpenSSL est largement disponible sur Windows et Linux et permet de gérer génération, visualisation, chiffrement et export de clés.
4. Commandes et manipulations¶
Regroupées par procédure (extraites strictement du PDF) :
- Création de la paire de clés :
-
openssl genrsa -out tototo.pem 1024
(génère une clé RSA privée au format PEM, taille en bits = 1024) -
Affichage du fichier de clé privée :
-
cat tototo.pem
(affiche le contenu entier du fichier PEM) -
Visualisation détaillée de la clé :
-
openssl rsa -in tototo.pem -text -noout
(décodage et affichage des éléments de la clé sans sortie PEM brute) -
Chiffrement de la clé privée (protéger avec passphrase) :
-
openssl rsa -in tototo.pem -des3 -out tototo.pem
(chiffre la clé privée avec l'algorithme symétrique -des3 ; le cours mentionne aussi les options -des et -idea) -
Exportation de la clé publique et vérification :
- openssl rsa -in tototo.pem -pubout -out tototoPublique.pem
(exporte la clé publique dérivée de la clé privée) - openssl rsa -in tototoPublique.pem -pubin
(vérifie/affiche la clé publique importée)
5. Sécurité et bonnes pratiques¶
- Ne pas laisser les clés privées à découvert ; elles doivent être conservées secrètes.
- Protéger la clé privée par une passphrase et ne pas l'oublier : la passphrase est requise pour l'accès après chiffrement.
- Être vigilant sur les sites et les canaux utilisés pour échanger des informations sensibles.
- Respecter les étapes de création, chiffrement et partage : créer la paire, chiffrer la clé privée, exporter et vérifier la clé publique.
- Conserver des copies sûres et documenter la passphrase : perdre la passphrase revient à perdre l'accès à la clé privée.
6. Points essentiels à retenir pour le TSSR¶
- RSA = Rivest, Shamir et Adleman (1977).
- RSA est asymétrique : utilise toujours deux clés (publique + privée).
- OpenSSL est l'outil CLI présenté pour générer et manipuler les clés RSA.
- Le format PEM est du base64 lisible, indiqué par l'en-tête/footers des fichiers de clés.
- La taille de la clé (ex. 1024 bits) définit la longueur maximale des données chiffrables et le niveau de sécurité.
- Les données plus courtes que la clé sont complétées (padding) lors du chiffrement RSA.
- Chiffrer la clé privée avec une passphrase (ex. via -des3) est recommandé.
- Vérifier l'exportation de la clé publique après manipulation.
- Ne pas confondre OpenSSL (outil utilisé) et OpenSSH (autre outil) ; le cours utilise OpenSSL.
- Être prudent avec mots de passe et canaux d'échange d'informations sensibles.
7. Tableau récapitulatif¶
| Élément | Propriétés | Risque / Remarque |
|---|---|---|
| RSA | Asymétrique, 2 clés (publique/privée) | Élimine l'échange secret de la clé |
| PEM | Format base64 lisible | Contient en-têtes/footers ; portable |
| Taille de clé (ex. 1024 bits) | Définit capacité et sécurité | Plus grand = plus sûr, impacte compatibilité |
| Clé privée | Doit rester secrète, peut être chiffrée par passphrase | La perte de la passphrase bloque l'accès |
| OpenSSL | Outil CLI pour générer/visualiser/exporter | Largement disponible sur Windows/Linux |
8. Vérifications pratiques¶
(uniquement les vérifications abordées dans le cours, sans répéter les commandes)
- S'assurer que le fichier de la clé privée contient le bloc PEM attendu (en-tête/footers) après création.
- Vérifier que la visualisation détaillée montre les éléments de la clé (modulus, exponent, etc.), confirmant une clé valide.
- Lors du chiffrement de la clé privée, vérifier que l'outil demande une passphrase pour confirmer la protection.
- Vérifier l'exportation publique : le fichier de clé publique doit afficher le contenu attendu en format PEM, prouvant une exportation réussie.
9. Flashcards Anki¶
Le nom RSA vient de :: Rivest, Shamir et Adleman
RSA est un chiffrement asymétrique :: Vrai
Combien de clés utilise RSA ? :: Deux (publique et privée)
Que signifie PEM ? :: Privacy Enhanced Mail
Que représente le nombre 1024 dans la création d'une clé ? :: La taille exprimée en bits
Quel outil est utilisé dans le cours pour gérer les clés RSA ? :: OpenSSL
Que se passe-t-il si les données sont trop courtes pour la clé RSA ? :: Elles seront complétées (padding)
Nommer une option mentionnée pour chiffrer une clé privée :: -des3
Quel problème la cryptographie asymétrique aide-t-elle à résoudre ? :: L'échange sécurisé de la clé (problème de la cryptographie symétrique)
Où doit être conservée la clé privée ? :: Conservée secrètement par chaque interlocuteur (ne pas la laisser à découvert)