***警告に従って暗号化を変更するにはどうすればよいですか?廃止されたキー派生が使用されました


15

ファイルを暗号化または復号化すると、 *** 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


1
暗号化方式としての3DESは廃止されます。警告は、別の方法を使用することを示唆しています。詳細については、crypto.stackexchange.com / questions / 51629 /…を参照してください。
guiverc

1
このエラーは、あらゆる種類の暗号で発生します。暗号化コマンドと復号化コマンドの両方に-pbkdf2を追加する必要があります。
ダニエルデラフィオーレ

申し訳ありませんが、コマンドに-pbkdf2を追加する方法の例を教えていただけますか?追加する方法がわかりません。
トミーポラーク

1
あなたの例では、あなたはただやる必要がopenssl des3 -e -pbkdf2 < input > output.des3ありopenssl des3 -d -pbkdf2 < input.des3 > outputます。私もあなたの代わりに3DES(DESは1977年からである)の異なるブロック暗号を使用する必要があることを最初のコメントに同意することが起こる、それを行うための簡単な方法は、ただで交換することですaes256あなたが現在持っているところdes3(AESを使用するように、それらのコマンドに256ビットAESは現在のセキュリティ標準を満たしています。
ジョエルハルディ

ありがとう!現在、aes256を使用して警告なしで動作します。それで質問に答えます。
トミーポラーク

回答:


12

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

OpenSSL 1.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]

OpenSSL 1.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 100000 -salt -in InputFilePath -out OutputFilePath

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

  • -aes-256-cbc最大保護または128ビットバージョンに使用する必要があるものです。3DES(トリプルDES)はしばらく前に 廃止されました。トリプルDESはNISTによって2017年に非推奨になりました。CPUにAES-NI命令セットがあるかどうかを、たとえばを使用して簡単に確認できますgrep aes /proc/cpuinfo勝つ、勝つ

  • -md sha512 SHA-256と比較して、SHA-2関数ファミリのより高速なバリアントですが、もう少し安全です。勝つ、勝つ

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

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

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


1
ときに、どのようにそれを解読するために使用するopenssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -in InputFilePath -out OutputFilePath
リットルのmingzhi

1
単に追加することにより-d:コマンドにopenssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 1000 -salt -d -in InputFilePath
エドゥアルトItrich

1
この提案にはいくつかの問題があると確信しています。en.wikipedia.org/wiki/Key_derivation_functionに従って、キー派生アルゴリズムの最も遅いバリアントが必要です。つまり、en.wikipedia.org / wiki / PBKDF2に従ってsha512を使用しないでください。したがってin the year 2000 the recommended minimum number of iterations was 1000, but the parameter is intended to be increased over time as CPU speeds increase、1000回ではなく
10,000〜100,000

@oskarpearson確かに、今読んだことがあります。回答を更新しています。
LinuxSecurityFreak
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.