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?
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
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