web-dev-qa-db-ja.com

Ubuntu 18.04でopensslを使用してテキストファイルを復号化できない

Ubuntu 16.04でopensslで暗号化した多数のテキストファイルを復号化できません。常にこのエラーメッセージが表示されます。

$ 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:

パスワードが正しいと確信しています。何が問題ですか?

3
Luís de Sousa

opensslで使用されるパスワードベースの暗号化アルゴリズムは、バージョン1.0.2のMD5(Ubuntu 16.04に同梱)からバージョン1.1.0(Ubuntu 18.04)のSHA256に変更されました。そのため、Ubuntu 16.04で暗号化されたファイルは、Ubuntu 18.04で復号化できません。 解決策 は、以前のバージョンのopensslをインストールし、ファイルを復号化して、新しいバージョンで再度暗号化することです。ステップバイステップ:

古いバージョンのopensslをダウンロードすることから始めます(これはAMD64ビルドです。他のビルドのチェックは packages.ubuntu.com ):

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

dpkgを使用してパッケージを直接インストールします。これにより、新しいバージョンが無効になります。

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

適切なバージョンを使用していることを確認してください。

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

そして、ファイルを解読します:

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

次に、最新のopensslビルドをインストールします。aptはオプションです:

$ Sudo apt install openssl

最新バージョンであることを確認します。

$ openssl version
OpenSSL 1.1.0g  2 Nov 2017

そして、最新バージョンでファイルを再度暗号化します。

$ openssl des3 < secret.txt > secret.des3

最後に、最初にダウンロードした.debファイルを削除します。

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