2

適切なPBKDF2設定についていくつか質問があります。私は答えをグーグルで検索し、ほとんど手ぶらで出てきました。

基本的に、2012年のテクノロジーの状態を考慮して、入力pbkdf2.php(ここにあります)の適切な値を知りたいと思います。私がエンコードするパスワードが非政府機関によってハッキングされないという合理的な期待を私に与えるものは何ですか?次の数年?

これが私が考えていることです:

define("PBKDF2_HASH_ALGORITHM", "sha512");
define("PBKDF2_ITERATIONS", 20000);
define("PBKDF2_SALT_BYTES", 512);
define("PBKDF2_HASH_BYTES", 512);

優れたセキュリティを実現するために、他にも多くのことが関係していることを理解しています。これが私が使用している他のセキュリティ対策の概要です:

  • 少なくとも2つの数字、2つの文字、および2つの記号を含む12桁のパスワード
  • 必要なパスワードは6か月ごとに変更されます
  • php mysqliは、すべてのデータベースアクセス用のステートメントを準備しました
  • すべてのフォームのトークン
  • 誤ったログインの場合は5秒の遅延、
  • 同じIPからの10回の誤ったログイン後のブラックリスト
  • 間違ったログインとブラックリストは同じ応答をトリガーします
  • HTTPS
  • 私はセッションを使用しており、ページにアクセスするたびに、10ページごとおよび機密性の高いページでセッション識別子を変更します。

私は何かが足りないのですか?

4

2 に答える 2

2

例として、最新のLinuxディストリビューションのsha512cryptのデフォルト設定(/ etc/shadowエントリの$6$)は、5000回の反復と16バイトのsaltを使用します。それはかなり遅いです。しかし、ハッシュに関しては、やり過ぎであなたを批判するつもりはありません;)

于 2012-10-02T20:02:20.653 に答える
0

アプリケーションごとに必要なセキュリティ レベルが異なるため、この質問に対する唯一の正解はありません。正しいことは、アプリケーションのベンチマークを行い、サーバーが応答性の高い方法で快適に処理できる限り高い設定を使用することです。(もちろん負荷試験中)

MD5 や SHA-1 などの「高速」で「メッセージ ダイジェスト」のようなアルゴリズムではなく、最初に PBKDF2 を実装するだけで、平均的なシステムよりもはるかに安全です。

于 2012-10-03T06:43:04.543 に答える