web-dev-qa-db-ja.com

***警告に従って暗号化を変更するにはどうすればよいですか?

ファイルを暗号化または復号化すると、*** WARNING : deprecated key derivation used. Using -iter or -pbkdf2 would be better.が返されます

これが何を意味するのか、手順をどのように変更すればよいのかわかりません。私たちを手伝ってくれますか? openssl des3 <input >output.des3で暗号化し、openssl des3 -d <input.des3 >outputで復号化します

環境について

Ubuntu 18.10

~$ openssl version OpenSSL 1.1.1 11 Sep 2018

10
Tommy Pollák

OpenSSLの2つのメインバージョンと最近のバージョンのSynopsysを比較して、manページを引用します。

OpenSSL1.1.0

openssl enc -ciphername [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

OpenSSL1.1.1

openssl enc -cipher [-help] [-ciphers] [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a] [-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md digest] [-iter count] [-pbkdf2] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-Rand file...] [-writerand file] [-engine id]

明らかにいくつかの大きな違いがあります。つまり、この質問を考慮すると、1.1.0には次の2つのスイッチがありません。

  • pbkdf2

  • iter


基本的に2つのオプションがあります。警告を無視するか、暗号化コマンドを次のように調整します。

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath

これらが切り替わる場所:

  • -aes-256-cbcは、最大の保護のために使用する必要があるものです、128ビットバージョン、3DES(トリプルDES)はしばらく前に放棄されましたが、AESは最近のCPU CPUに AES-NI命令セット があるかどうかを簡単に確認できます。たとえば、grep aes /proc/cpuinfoを使用します。 win、win

  • -md sha512SHA-256と比較してSHA-2関数ファミリーのより高速なバリアントです 少し安全ですが、 win、win

  • -pbkdf2PBKDF2 (パスワードベースのキー派生関数2)アルゴリズムを使用

  • -iter 1000は、マニュアルページを引用して、パスワードのデフォルトの繰り返し回数を上書きしています。

    暗号化キーを導出する際に、パスワードに所定の反復回数を使用します。値を大きくすると、結果のファイルをブルートフォースするのに必要な時間が長くなります。このオプションを使用すると、PBKDF2アルゴリズムを使用してキーを導出できます。

7