Comment chiffrer et déchiffrer des fichiers et des répertoires à l'aide d'OpenSSL et Linux
Le cryptage et le déchiffrement des fichiers et des répertoires en toute sécurité sont essentiels pour protéger les données sensibles. OpenSSL, un puissant outil open source, offre des capacités robustes de cryptage et de déchiffrement capables de gérer des fichiers de toute taille, des petits fichiers texte aux gros fichiers binaires, et même des répertoires entiers. Ce didacticiel vous guidera à travers le processus de cryptage et de déchiffrement de fichiers et de répertoires à l'aide d'OpenSSL sur des systèmes Linux tels que Redhat, Ubuntu, Debian, CentOS et Fedora.
Dans ce didacticiel, vous apprendrez :
- Comment créer un exemple de fichier ou de répertoire
- Comment générer une paire de clés publique et privée RSA
- Comment chiffrer un fichier ou un répertoire à l'aide d'OpenSSL
- Comment décrypter le fichier ou le répertoire crypté pour revenir à son état d'origine
Création d'un exemple de fichier ou de répertoire et génération de clés RSA
Pour commencer, vous aurez besoin d'un fichier ou d'un répertoire que vous souhaitez crypter. À des fins de démonstration, créons un exemple de fichier ou de répertoire et générons une paire de clés RSA.
Créer un exemple de fichier ou de répertoire : vous pouvez créer un fichier ou un répertoire en fonction de ce que vous souhaitez chiffrer. Voici les commandes pour les deux :Pour un fichier :
$ fallocate -l 100M sample_file.img
Cette commande crée un fichier nommé
sample_file.img
d'une taille de 100 Mo.Pour un annuaire :
$ mkdir sample_directory touch sample_directory/file1.txt sample_directory/file2.txt
Générer une paire de clés publique et privée RSA : maintenant, générez une paire de clés publique et privée à l'aide de la commande OpenSSL :
$ openssl req -x509 -nodes -newkey rsa:2048 -keyout private-key.pem -out public-key.pem
Cette commande crée une paire de clés RSA de 2 048 bits. La clé privée est stockée dans
private-key.pem
et la clé publique est stockée danspublic-key.pem
. Au cours de ce processus, vous serez invité à fournir les détails du certificat, mais vous pouvez les ignorer en appuyant surENTER
.$ ls -l *.pem
Assurez-vous que la clé privée reste sécurisée, car sa perte vous empêchera de déchiffrer vos fichiers ou répertoires.
Cela crée un répertoire nommé sample_directory
contenant deux fichiers texte.
Chiffrer un fichier ou un répertoire à l'aide d'OpenSSL
Maintenant que nous avons les clés et un exemple de fichier ou de répertoire, passons au cryptage.
Chiffrer le fichier ou le répertoire : selon que vous chiffrez un fichier ou un répertoire, le processus est légèrement différent.Pour un fichier :
$ openssl smime -encrypt -binary -aes-256-cbc -in sample_file.img -out sample_file.img.enc -outform DER public-key.pem
Cette commande crypte
sample_file.img
à l'aide d'AES-256-CBC et stocke la sortie cryptée soussample_file.img.enc
.Pour un annuaire :
Tout d'abord, compressez le répertoire dans une archive tar :$ tar -czf sample_directory.tar.gz sample_directory/
Ensuite, chiffrez l'archive tar :
$ openssl smime -encrypt -binary -aes-256-cbc -in sample_directory.tar.gz -out sample_directory.tar.gz.enc -outform DER public-key.pem
Vérifiez le cryptage : pour vous assurer que le processus de cryptage a réussi, générez la somme de contrôle MD5 des fichiers ou répertoires d'origine et cryptés à des fins de comparaison.Pour un fichier :
$ md5sum sample_file.img*
Pour un annuaire :
$ md5sum sample_directory.tar.gz*
Les sommes de contrôle doivent être différentes, confirmant que le fichier ou le répertoire a été chiffré.
Cette commande crypte sample_directory.tar.gz
et stocke la sortie cryptée sous sample_directory.tar.gz.enc
.
Décrypter un fichier ou un répertoire à l'aide d'OpenSSL
Une fois votre fichier ou répertoire crypté, vous devrez savoir comment le déchiffrer.
Déchiffrer le fichier ou le répertoire chiffré : selon que vous déchiffrez un fichier ou un répertoire, utilisez les commandes suivantes.Pour un fichier :
$ openssl smime -decrypt -in sample_file.img.enc -binary -inform DER -inkey private-key.pem -out decrypted_sample_file.img
Cette commande déchiffre
sample_file.img.enc
et stocke le résultat sousdecrypted_sample_file.img
.Pour un annuaire :
Tout d’abord, décryptez l’archive :$ openssl smime -decrypt -in sample_directory.tar.gz.enc -binary -inform DER -inkey private-key.pem -out decrypted_sample_directory.tar.gz
Ensuite, extrayez le répertoire :
$ tar -xzf decrypted_sample_directory.tar.gz
Vérifier le déchiffrement : pour vérifier que le déchiffrement a réussi, générez la somme de contrôle MD5 du fichier ou du répertoire déchiffré et comparez-la avec la somme de contrôle du fichier ou du répertoire d'origine.Pour un fichier :
$ md5sum decrypted_sample_file.img sample_file.img
Pour un annuaire :
$ md5sum decrypted_sample_directory.tar.gz sample_directory.tar.gz
Les sommes de contrôle des fichiers ou répertoires d'origine et déchiffrés doivent correspondre, indiquant que le décryptage a réussi.
Cette commande restaure le sample_directory
d'origine.
Conclusion
En suivant les étapes décrites dans ce didacticiel, vous pouvez facilement crypter et déchiffrer des fichiers et des répertoires à l'aide d'OpenSSL sous Linux. Que vous traitiez de petits fichiers, de gros fichiers ou de répertoires entiers, OpenSSL fournit une méthode fiable et efficace pour sécuriser vos données. N'oubliez jamais de conserver votre clé privée en sécurité, car elle est essentielle pour décrypter vos fichiers ou répertoires.