Qithub-BOT/QiiCipher

archive で "deprecated key derivation used"出力される (OpenSSL のワーニング)

KEINOS opened this issue · 1 comments

bin/archive の openssl の暗号/復号でワーニングが出力されている-iter-pbkdf2 を指定すると、互換性のない仕様変更となると思われるので、現状はワーニングを出力する旨のテストを記載している。すべての環境で同じワーニングがでるのかは未確認。

*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.

( #47 (comment) より)

Issue 対応について

この Issue は、WARNING の英語表記を日本語にするだけとします。

-iter の回数や、相手が -pbkdf2 に対応していない場合などの仕様も決まっていませんが、セキュリティリスクがあることは明確なので、日本語で表示させることで QiiCipher の不具合ではないことを明確化するためです。

OpenSSH 7.2 以降で -pbkdf2 は使えるらしいので、#23 でディスカッションしている OpenSSL と OpenSSH の minimum バージョンの方向性が見えてきたら -pbkdf2 をデフォルトにしてもいいかもしれません。

参考情報

  • deprecated key derivation used.

    • TL; DR
      • OpenSSH 8.3 以降と OpenSSL v1.* の組み合わせで表示されるワーニング
    • TS; DR
      • openssl enc などで -salt オプションを有効(デフォルトで有効)にした状態かつ -pbkdf2 オプションが指定されていない、つまり古い関数(pbkdf1 = function 1)が使われている状態で OpenSSH が呼び出されると表示される。
      • "OpenSSH 8.3 released (and ssh-rsa deprecation notice)" | Linux Weekly News @ lwn.net
  • Using -iter or -pbkdf2 would be better

    • TL; DR
      • このまま使えるが、-iter オプションでキーストレッチ回数を指定するか、-pbkdf2 でパスワード・ハッシュに function 2(RSA SHA-2)を使わせる設定をすることをオススメしている。
    • キーストレッチ回数
      • 暗号化もしくは復号する際に使われる内部キーの作成を再帰的に繰り返す回数(イテレーションの回数)。キー作成を n 回繰り返すことで、復号時に遅延させる仕組み。これにより、ローカルでの総当たり攻撃時に 1 回ごとの復号チェックにかかる時間を伸ばして手間をかけさせる手法。
    • key derivation
      • 鍵導出関数、つまり「パスワード・ハッシュ関数」のこと。共通鍵暗号でパスコード付きの鍵を使う際に、そのままパスコードを使うのではなく、パスコードに salt 値を付けてハッシュ化した値をパスコードとすることで強度を強くさせる手法があり、「パスワード・ハッシュ関数」は専用(パスワード専用)のハッシュ関数のことを言う。その際のアルゴリズムに、デフォルトで SHA-1 を使うが -pbkdf2 オプションを使うと SHA-2 のアルゴリズムを使う。

メッセージ内容難しい ... こんな感じ?

*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
*** WARNING: 互換性のため旧形式(ssa-rsa)のアルゴリズムが使用されています。 (deprecated key derivation used.)
この警告は、将来的に新形式(ssa-rsa2)固定になるまで表示されます