Nous allons voir comment crypter en ligne de commande un message et ensuite le décrypter. Il existe plusieur contexte pour faire cette opération, comme avec un langage de programmation, mais cela reviens à utiliser un programme comme OpenSSL.
Pour faire ce tuto, je vous invite à regarder le tuto sur la création d’une clé SSH.
Contenu
Commande pour crypter sous bash
echo "Ton message secret" | openssl rsautl -encrypt -pubin -inkey id_rsa.pub > encrypted.txt
Il se peut que vous ayez une erreur du type : unable to load Private Key
Ceci vient du fait que vous avez une clé du type open SSH. Il faudrait une clé de type PEM. Voici la commande pour convertir en clé PEM. Mais avant veuillez faire un cat sur votre clé privée
cat id_rsa.pub Si vous voyez un texte commençant par -----BEGIN RSA PRIVATE KEY----- ce n'est pas bon il faut qu'il commence par -----BEGIN PUBLIC KEY-----
Essayez avec cette comamnde pour convertir votre clé
ssh-keygen -f id_rsa.pub -e -m pem > public.pem et regardez le début de votre clé privée, si ça commence toujours par -----BEGIN RSA PRIVATE KEY----- ce n'est toujours pas bon (vous pouvez vous enrendre compte en essaynt de crypter. Il vous faut faire la commande suivante : ssh-keygen -f id_rsa.pub -e -m PKCS8 > public.pem Grâce à l'ajout de PKCS8, en vérifiant le contenu de la clé qui doti avoir le bon en-tête Maintenant vous pouvez tenter de crypte avec la ligne suivante : echo "your secret message" | openssl rsautl -encrypt -pubin -inkey public.pem > encrypted.txt
Commande pour décrypter
Essayez d’afficher encrypted.txt, ce sera du charabia. Maintenant il faut faire l’opération inverse
openssl rsautl -decrypt -inkey id_rsa -in encrypted.txt Le message en clair va s'afficher
Récapitulatif
- Créer la paire de clés SSH, on se sert de la publique id_rsa.pub
- convertir la clé SSH publique au format PEM avec l’argument PKCS8
- utiliser la commande pour chiffrer
- utiliser la command pour déchiffrer
Où est la clé privée?
Vous avez remarqué que nous n’avons pas parlé de clé privée du tout, on en avait pas besoin. En fait l’usage de la clé privée sert dans un processus de signature, pas dans le contexte de chiffrement de message.
Deux Scénarios dans RSA
1. Confidentialité des données (Chiffrement standard)
- Chiffrer avec la clé publique : Tout le monde peut chiffrer des données en utilisant la clé publique.
- Déchiffrer avec la clé privée : Seul le propriétaire de la clé privée peut déchiffrer les données.
C’est le cas d’utilisation typique pour envoyer des messages en toute sécurité.
2. Signatures numériques (Authentification et intégrité)
- Signer avec la clé privée : La clé privée génère une signature pour un message.
- Vérifier avec la clé publique : Toute personne disposant de la clé publique peut vérifier que la signature a été générée par la clé privée correspondante.
Ce cas d’utilisation garantit l’authenticité des données et qu’elles n’ont pas été altérées.