web-dev-qa-db-fra.com

Impossible de déchiffrer des fichiers texte avec openssl sur Ubuntu 18.04

Je ne parviens pas à déchiffrer un certain nombre de fichiers texte que j'ai chiffrés avec openssl sur Ubuntu 16.04. Je reçois toujours ce message d'erreur:

$ openssl des3 -d < ~/ISRIC/credentials.txt.des3.old > ~/temp/credentials.txt.old.2
enter des-ede3-cbc decryption password:
bad decrypt
139771261990464:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:536:

Je suis à peu près sûr que le mot de passe est correct. Quel est le problème?

3
Luís de Sousa

L'algorithme de chiffrement basé sur mot de passe utilisé dans openssl est passé de MD5 dans la version 1.0.2 (fournie avec Ubuntu 16.04) à SHA256 dans la version 1.1.0 (Ubuntu 18.04). Pour cette raison, tous les fichiers chiffrés sur Ubuntu 16.04 ne peuvent pas être déchiffrés sur Ubuntu 18.04. La solution consiste à installer la version précédente de openssl, à déchiffrer les fichiers et à les chiffrer à nouveau avec la version la plus récente. Pas à pas:

Commencez par télécharger l’ancienne version de openssl (il s’agit de la version AMD64, pour les autres versions, vérifiez packages.ubuntu.com ):

wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.2g-1ubuntu13.6_AMD64.deb

Maintenant, installez le paquet directement avec dpkg, cela désactivera la nouvelle version:

$ Sudo dpkg -i openssl_1.0.2g-1ubuntu13.6_AMD64.deb

Assurez-vous d'avoir la bonne version:

$ openssl version
OpenSSL 1.0.2g  1 Mar 2016 (Library: OpenSSL 1.0.2n  7 Dec 2017)

Et maintenant décryptez le fichier:

$ openssl des3 -d < secret.des3 > secret.txt

Puis installez la dernière version de openssl, apt est une option:

$ Sudo apt install openssl

Assurez-vous que c'est la dernière version:

$ openssl version
OpenSSL 1.1.0g  2 Nov 2017

Et puis chiffrez à nouveau le fichier avec la dernière version:

$ openssl des3 < secret.txt > secret.des3

Enfin, supprimez le fichier .deb téléchargé au début:

$ rm openssl_1.0.2g-1ubuntu13.6_AMD64.deb
1
Luís de Sousa

Pour les fichiers déjà chiffrés, vous pouvez utiliser l'option md pour forcer l'ancienne méthode md5 password.

Cela corrigeait mon problème avec les fichiers chiffrés avec 1.0.2 avec aes-256-cbc qui ne déchiffreraient pas le 18.04 (openssl 1.1.0+).

Mon déchiffrement précédent:

cat encfile | openssl enc -d -aes-256-cbc -base64 >plainfile

Mon nouveau déchiffrer le 18.04:

cat encfile | openssl enc -md md5 -d -aes-256-cbc -base64 >plainfile

Remarque:
Cela ne fonctionnera pas avec les fichiers chiffrés le 18.04 (openssl 1.1.0g +), car ceux-ci auront utilisé la nouvelle méthode SHA password par défaut, comme l'indique Luis de Sousa.

Références:
https://askubuntu.com/a/1067765/873241 (réponse de Luis de Sousa)
https://bugzilla.redhat.com/show_bug.cgi?id=1520084
https://github.com/fastlane/fastlane/issues/9542