GNU/Linux >> Tutoriels Linux >  >> Linux

Comment chiffrer un gros fichier dans openssl en utilisant la clé publique

Solution pour encoder n'importe quel fichier en toute sécurité et haute sécurité dans OpenSSL et en ligne de commande :

Vous devriez avoir sous la main un certificat X.509 pour chiffrer les fichiers au format PEM.

Crypter le fichier :

openssl smime -encrypt -binary -aes-256-cbc -in plainfile.zip -out encrypted.zip.enc -outform DER yourSslCertificate.pem

Qu'est-ce que c'est :

  • soupir - commande ssl pour l'utilitaire S/MIME (smime(1))
  • -chiffrer - méthode choisie pour le traitement du dossier
  • -binaire - utiliser un processus de fichier sécurisé. Normalement, le message d'entrée est converti au format "canonique" comme requis par la spécification S/MIME, ce commutateur le désactive. Il est nécessaire pour tous les fichiers binaires (comme les images, les sons, les archives ZIP).
  • -aes-256-cbc - choix du chiffrement AES en 256 bits pour le chiffrement (fort). Si non spécifié, RC2 40 bits est utilisé (très faible). (Chiffres pris en charge)
  • -dans plainfile.zip - nom du fichier d'entrée
  • -encrypted.zip.enc - nom du fichier de sortie
  • -outform DER - encoder le fichier de sortie en binaire. Si n'est pas spécifié, le fichier est encodé en base64 et la taille du fichier sera augmentée de 30 %.
  • votreSslCertificate.pem - nom de fichier de votre certificat. Cela devrait être au format PEM.

Cette commande peut très efficacement chiffrer fortement les gros fichiers quel que soit leur format.
Problème connu : Une erreur se produit lorsque vous essayez de chiffrer un fichier volumineux (> 600 Mo). Aucune erreur n'est générée, mais le fichier crypté sera corrompu. Vérifiez toujours chaque fichier ! (ou utilisez PGP - qui prend en charge le cryptage de fichiers avec une clé publique)

Déchiffrer le fichier :

openssl smime -decrypt -binary -in encrypted.zip.enc -inform DER -out decrypted.zip -inkey private.key -passin pass:your_password

Qu'est-ce que c'est :

  • -informer DER - identique à -outform ci-dessus
  • -inkey private.key - nom de fichier de votre clé privée. Celui-ci doit être au format PEM et peut être chiffré par mot de passe.
  • -passin pass :votre_mot de passe - votre mot de passe pour chiffrer la clé privée. (arguments de phrase de passe)

La cryptographie à clé publique ne sert pas à chiffrer des fichiers arbitrairement longs. On utilise un chiffrement symétrique (disons AES) pour faire le chiffrement normal. Chaque fois qu'une nouvelle clé symétrique aléatoire est générée, utilisée, puis chiffrée avec le chiffrement RSA (clé publique). Le texte chiffré ainsi que la clé symétrique chiffrée sont transférés au destinataire. Le destinataire déchiffre la clé symétrique à l'aide de sa clé privée, puis utilise la clé symétrique pour déchiffrer le message.

La clé privée n'est jamais partagée, seule la clé publique est utilisée pour chiffrer le chiffrement symétrique aléatoire.


Linux
  1. Comment chiffrer et déchiffrer des fichiers et des répertoires à l'aide de Tar et OpenSSL

  2. Comment chiffrer et déchiffrer des fichiers/dossiers sous Linux à l'aide de GnuPG

  3. Comment se connecter à l'instance OpenStack ou à la VM via PuTTY à l'aide de Key ?

  4. Comment chiffrer et déchiffrer un fichier à l'aide de GnuPG sous Linux

  5. Comment supprimer un fichier sans utiliser rm ?

Comment utiliser OpenSSL et Internet PKI sur les systèmes Linux

Comment créer un gros fichier de 1 Go ou 10 Go sous Linux

Comment chiffrer un fichier sous Linux

Comment ajouter une clé publique SSH au serveur

Comment :une introduction à l'utilisation de Git

Ajouter la clé publique au fichier known_hosts