10

私は、さまざまな安全でない/ひどく安全でない MD5 ベースのパスワード ハッシュを使用して、いくつかのプロジェクトを更新している最中です。私は今、ベスト プラクティスについて少なくともいくらか詳しい情報を得ていますが、何か間違ったことをしているのではないかとまだ疑問に思っています。私が実装している特定のプロセスが他の場所で使用されているのを見たことがありませんが、少なくとも 1 人の SO ユーザーが同様のことをしたいと考えているようです。私の場合:

  • パスワード ハッシュは bcrypt を使用して生成されます。(適切なオプションは bcrypt、scrypt、または pbkdf2 のようで、bcrypt は PHP で最も簡単にアクセスできるためです。)

  • ハッシュごとに異なるランダムなソルトが使用されます。(攻撃者が単一の静的ソルトで計算されたカスタム レインボー テーブルを生成するのを防ぐため。)

  • ハッシュ、アルゴリズム設定、ソルトは一緒に保存されます。(これは、PHP の crypt 関数がハッシュ値として提供するものだからです。)

  • ログインが成功すると、ハッシュは新しいランダムソルトで再計算されます。

私が気になっているのはその最後のステップです。ここでの私の意図は、時間の経過とともにハッシュ アルゴリズムを更新できるようにすることです。これにより、定期的にログインするユーザーは、利用可能な最も安全な形式でパスワードを保存できます。

私の質問は次のとおりです。

  1. これは時間の無駄ですか?

  2. これを行うことに危険はありますか?

4

4 に答える 4

3

UDPATE

ごめん。新しいアルゴの使用についてのあなたのポイントを完全に逃しました。これは良いことです。:-)しかし、以下の私の元の答えで述べたように、アルゴが同じままであるとき、それは役に立たない。

オリジナル

攻撃者がすでにハッシュを取得している場合、何も妨げていないため、パスワードの再ハッシュは役に立ちません。

次のことを考慮してください。

  • 私はあなたのサイトのユーザーで、ハッシュは1234567890です。
  • 一部の攻撃者はそのハッシュを入手します。
  • 再度ログインするとハッシュが変更されます。
  • 攻撃者はハッシュの変更を気にしません。これは、破壊を試みるのに必要なハッシュが1つだけだからです。

したがって、何も妨げられていません。攻撃者はまだハッシュを持っており、それを破ろうとすることができます。攻撃者の可能性があるのは、ハッシュではなく、最終結果(パスワード)のみです。

于 2012-08-13T15:20:07.577 に答える
3

アップデート

Re delnanのコメント:すでにハッシュされたパスワードを再ハッシュしている場合は、知らないでください-ハッシュを連鎖させることでどのような脆弱性が発生し、発見されるかはわかりません。明らかに、その反対側は、ユーザーシークレットを検証するたびにハッシュチェーン全体を計算する必要があるため、クリアテキストを再ハッシュするだけです。

オリジナル

私は読書の途中で賛成した。あなたはこの種の仕事をするために正しい種類の質問をしている人のようです。

  1. 時間の無駄ではありません。
  2. 常に危険があります。誰かが拷問や、おそらくソーシャルエンジニアリングによってユーザーのパスワードを入手する可能性があります。誰かが膨大なリソースにアクセスする可能性があり、シャドウパスワードファイルと一緒にパスワードを解読することができます。誰かがサーバーを危険にさらし、ログインに成功したときにユーザーのクリアテキストパスワードを傍受するトロイの木馬を密かに挿入する可能性があります。

したがって、完全なセキュリティの保証はありません。これまで。しかし、あなたはすでにそれを知っていると確信しています。そのため、1つだけ追加したいと思います。

  • 解読しにくいパスワードを選択するようユーザーに促します。

そして、厳密に言えば、すべてのログインで再ハッシュする唯一の理由が、パスワードが常に最新の更新を使用して保存されるようにすることである場合、はい-すべてのユーザーのログインでアルゴリズムを更新しないと仮定すると、この方法は時間の無駄です。したがって、同じアルゴリズムと(推定される)セキュリティを2回続けてログインするために使用するリハッシュがあります。再ハッシュでの数クロックサイクルの無駄。厳密に言えば、最適化されていません。パスワードストアにアルゴバージョンを含めるだけでなく、システムアルゴがユーザーのハッシュアルゴよりも新しい場合は、ログイン時に再ハッシュしてください。

于 2012-08-13T15:23:15.603 に答える
0
  1. 誰かがハッシュにアクセスできるようになった場合、その人がすべての更新にアクセスして喜んで最初からやり直さない限り、毎回ハッシュを変更してもまったく役に立ちません。これは起こらないでしょうし、もしそうなら、それよりもはるかに大きな問題が発生するでしょう。

  2. サーバーリソースを浪費するだけで危険はありません。

于 2012-08-13T15:22:56.747 に答える
-1

実際には、初心者の Cookie 攻撃者が偽装するためだけに Cookie をブラウザーにコピーすることを防ぎます...そのため、所有者が後で変更されたハッシュを使用してログインすると、攻撃者はログアウトされ、ユーザー アカウントへの混乱が軽減されます。

于 2016-08-08T06:22:49.837 に答える