Introduction

Introduction

OpenSSL est une puissante boîte à outils de cryptographie. Beaucoup d'entre nous ont déjà utilisé OpenSSL pour créer des clés privées RSA ou une RSE (demande de signature de certificat). Cependant, saviez-vous que vous pouvez utiliser OpenSSL pour comparer la vitesse de votre ordinateur ou que vous pouvez également crypter des fichiers ou des messages? Cet article vous fournira quelques conseils simples à suivre sur la façon de chiffrer les messages et les fichiers à l'aide d'OpenSSL.

Crypter et décrypter les messages

Nous pouvons d'abord commencer par crypter des messages simples. La commande Linux suivante cryptera un message «Bienvenue à LinuxCareer.com ”Utilisation de Base64 Encoding:

$ echo "Bienvenue à LinuxCareer.com "| openssl enc -Base64
V2VSY29TZSB0BYBMAW51EENHCMVLCI5JB20K

La sortie de la commande ci-dessus est une chaîne cryptée contenant un message codé «Bienvenue à LinuxCareer.com ». Pour décrypter la chaîne codée à son message d'origine, nous devons inverser l'option de commande et d'attachement -D pour le décryptage:

$ echo "V2VSY29TZSB0BYBMAW51EENHCMVLCI5JB20K" | OpenSSL ENC -BASE64 -D
Bienvenue à LinuxCareer.com

Le chiffrement ci-dessus est simple à utiliser, cependant, il manque une fonctionnalité importante d'un mot de passe, qui devrait être utilisé pour le cryptage. Par exemple, essayez de décrypter la chaîne suivante avec un mot de passe "passer«:

U2fsdgvkx181xscmhkpia6j0qd76n / nsjjtc9nrduc0cbslpzqxq2db7ipd7KExj

Pour ce faire, utilisez OpenSSL à nouveau avec l'option -D et la méthode de codage AES-256-CBC:

echo "u2fsdgvkx181xscmhkpia6j0qd76n / nsjjtc9nrduc0cbslpzqxq2db7ipd7kexj" | OpenSSL ENC -AES-256-CBC -D -A

Comme vous l'avez probablement déjà deviné, pour créer un message chiffré avec un mot de passe comme celui ci-dessus, vous pouvez utiliser la commande Linux suivante:

 $ echo "OpenSSL" | OpenSSL ENC -AES-256-CBC -A Entrez le mot de passe de cryptage AES-256-CBC:
Vérification - Entrez le mot de passe de chiffrement AES-256-CBC:
U2fsdgvkx185e3h2me2d + qmcfkesxdtn8ncn / 4sblr8 =


Si vous souhaitez stocker la sortie d'OpenSSL dans un fichier au lieu de STDOUT, utilisez simplement la redirection STDOUT ">". Lors du stockage de la sortie chiffrée dans un fichier, vous pouvez également omettre -un Option car vous n'avez plus besoin que la sortie soit basée sur le texte ASCII:

$ echo "OpenSSL" | OpenSSL ENC -AES-256-CBC> OpenSSL.dat
Entrez le mot de passe de cryptage AES-256-CBC:
Vérification - Entrez le mot de passe de chiffrement AES-256-CBC:
$ Fichier OpenSSL.dat
OpenSSL.dat: données

Pour décrypter l'OpenSSL.Fichier DAT à son utilisation de message d'origine:

$ openssl enc -aes-256-cbc -d -in openssl.dat
Entrez le mot de passe de décryptage AES-256-CBC:
OpenSSL

Crypter et décrypter le fichier

Pour chiffrer les fichiers avec OpenSSL, il est aussi simple que de chiffrer les messages. La seule différence est qu'au lieu de le écho commande que nous utilisons le -dans Option avec le fichier réel que nous aimerions crypter et -dehors Option, qui instruira OpenSSL pour stocker le fichier crypté sous un prénom:

AVERTISSEMENT: Assurez-vous que le fichier de sortie crypté reçoit un nom de fichier différent de celui du fichier d'entrée simple d'origine. Il est également recommandé de faire peu de tests chiffrés / décrypt.

$ OpenSSL ENC -AES-256-CBC -in / etc / Services -out Services.dat

Pour décrypter nos services d'utilisation du fichier:

$ OpenSSL ENC -AES-256-CBC -D -In Services.services de données.SMS
Entrez le mot de passe de décryptage AES-256-CBC:

Répertoire de crypte et de décryptage

Dans le cas où vous deviez utiliser OpenSSL pour crypter un répertoire entier que vous feriez, FIRS, T DORES DE CRÉER GZIP TARBALL, puis crypter le tarball avec la méthode ci-dessus ou vous pouvez faire les deux en même temps en utilisant un tuyau:

# TAR CZ / ETC | OpenSSL ENC -AES-256-CBC -out, etc.le goudron.gz.dat
Tar: supprimer le principal «/» des noms des membres
Entrez le mot de passe de cryptage AES-256-CBC:
Vérification - Entrez le mot de passe de chiffrement AES-256-CBC:

Pour décrypter et extraire l'ensemble, etc

# OpenSSL ENC -AES-256-CBC -D -IN, etc.le goudron.gz.dat | Tar XZ
Entrez le mot de passe de décryptage AES-256-CBC:

La méthode ci-dessus peut être très utile pour les sauvegardes cryptées automatisées.



Utilisation de clés publiques et privées

Dans cette section, nous montrerons comment crypter et décrypter des fichiers à l'aide de clés publiques et privées. Nous devons d'abord générer des clés privées et publiques. Cela peut simplement être fait par:

$ openssl Genrsa -out private_key.PEM 1024
Génération de la clé privée RSA, module de 1024 bits
… ++++++
… ++++++
E est 65537 (0x10001)

À partir de la clé privée, nous pouvons alors générer une clé publique:

$ openssl rsa -in private_key.pem -out public_key.pem -outform pem -pubout
Écriture de la clé RSA

À ce stade, vous devriez avoir une clé privée et publique disponible dans votre répertoire de travail actuel.

$ ls
Clé privée.pem public_key.pem

Ensuite, nous créons un exemple de fichier appelé Encrypt.txt avec n'importe quel texte arbitraire:

$ echo "Bienvenue à LinuxCareer.com "> crypter.SMS
$ Cat Encrypt.SMS
Bienvenue à LinuxCareer.com

Nous sommes maintenant prêts à crypter ce fichier avec une clé publique:

$ openssl rsautl -encrypt -inkey public_key.pem -pubin -in crypt.Txt -out Encrypt.dat
$ ls
Crypter.Encrypte DAT.txt private_key.pem public_key.pem
$ File Encrypt.dat
Crypter.dat: données

Comme vous pouvez le voir notre nouvelle crypte.Le fichier DAT n'est plus des fichiers texte. Pour décrypter ce fichier, nous devons utiliser une clé privée:

$ openssl rsautl -decrypt -inkey private_key.pem -in crypt.dat -out new_encrypt.SMS
$ cat new_encrypt.SMS
Bienvenue à LinuxCareer.com

La syntaxe ci-dessus est assez intuitive. Comme vous pouvez le voir, nous avons déchiffré un fichier crypt.dat à sa forme d'origine et enregistrez-le comme new_encrypt.SMS. Vous pouvez par exemple combiner cette syntaxe avec les répertoires de cryptage Exemple ci-dessus pour créer un script de sauvegarde chiffré automatisé.

Conclusion

Ce que vous venez de lire était une introduction de base à OpenSSL Encryption. En ce qui concerne OpenSSL en tant que boîte à outils de chiffrement, il n'a littéralement aucune limite à ce que vous pouvez faire. Pour voir comment utiliser différentes méthodes d'encodage, voir la page manuelle OpenSSL: Homme OpenSSL

Tutoriels Linux connexes:

  • Comment configurer un serveur OpenVPN sur Ubuntu 20.04
  • Comment générer un certificat SSL auto-signé sur Linux
  • Choses à installer sur Ubuntu 20.04
  • Test de référence USB Drive sur Linux
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Comment comparer les performances du disque sur Linux
  • Tester les clients HTTPS utilisant OpenSSL pour simuler un serveur
  • Masterring Bash Script Loops
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…