chiffrement de fichiers avec openssl


Chiffrer un fichier avec openSSL

Peu de personnes le savent. OpenSSL ne permet pas seulement de manipuler des clefs asymétriques (certificats TLS), mais également de gérer des clefs symétriques. On peut donc utiliser ce logiciel à des fins de chiffrement réversible, pour des échanges de fichiers ou un chiffrement de sauvegardes, ou autres.

Comment chiffrer

openssl enc est l’outil dont vous avez besoin.

Comment l’utiliser, quels paramètres ?

  • -e / -d : pour chiffrer (« encoding ») ou déchiffrer (« decoding »)
  • -pass : pour spécifier un mot de passe ou un fichier de mot de passe (préférable) ; exemple de syntaxe : -pass file:pass.txt
  • -salt : pour rajouter un salage
  • -aes-256-cbc : ou n’importe quelle autre méthode de chiffrement (-ciphers pour connaître la liste de tous les algorithmes compatibles)
  • -md : choix de l’algorithme de signature

Exemple de commande : openssl enc -e -aes-256-cbc -salt -pass file:pass.txt -md sha-256 -in <plainfile> -out <cipheredfile>.

Erreurs courantes

Le fichier résultat est juste un fichier binaire. Il ne stocke pas sa méthode de chiffrement. Il faut donc savoir comment il a été chiffré afin de le déchiffrer !

  • Si vous avez chiffré vos données en AES 256 CBC, alors si vous ne spécifiez pas cet algorithme lors du déchiffrement, openSSL produira une erreur.
  • Si vous avez salé votre fichier, alors vous devez le spécifier lors du déchiffrement.
  • ainsi de suite

L’erreur la plus courante est de ne pas spécifier toutes les valeurs en ligne de commande. D’une version d’openSSL à une autre, ces valeurs peuvent changer. Le dernier changement en date est celui de la signature : les vieilles versions d’openSSL signaient en MD5 par défaut, les nouvelles versions signent en SHA2. Donc si vous avez chiffré des fichiers avec une ancienne version d’openSSL sans expliciter l’algorithme de signature, alors le déchiffrement avec une version récente d’openSSL produira une erreur (« EVP_DecryptFinal_ex:bad decrypt« ) tant que vous ne préciserez pas « -md md5« .

Pour aller plus loin

Le programme « GnuPG » (https://www.gnupg.org/) est souvent préféré à OpenSSL. Les deux utilisent les mêmes algorithmes de chiffrement, mais l’implémentation est différente (et non compatible entre les deux logiciels).

Souvent, on préfère OpenSSL pour ses API ou son intégration dans d’autres programmes.

Souvent, on préfère GnuPG pour sa facilité d’utilisation en ligne de commande (et on rejette OpenSSL pour les problèmes listés dans le paragraphe ci-dessus).


Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *