2009-06-16 7 views
9

Webサイトのユーザーのパスワードをテーブルに格納する方法の主題が何度か行われており、一般的なアドバイスはパスワードのハッシュ、最終的にHMACハッシュを格納することです。これは、基本認証またはフォームベースの認証(実際は同じもの)でうまく動作します。私の問題は、自分のサービスに接続する自動ツールを目指して、ダイジェスト認証も提供する必要があるということです。私はこの問題を見てきました。私が見ることができるように、格納できる唯一のハッシュはHA1 part of the Digestです:username : realm : passwordのハッシュです。この方法で、基本/フォームとダイジェストの両方を検証できます。テーブルにパスワードを格納するとダイジェスト認証

私の問題は、そうすることで何のメリットもないことです。実際に攻撃者はパスワードテーブルを保持する(ハッシュ値しかなく、クリアパスワードを送信する必要がある)ので、基本認証またはフォームベース認証を使用することはできませんが、ダイジェスト認証を使用して有効な応答私のサービス挑戦へ:彼はテーブルから事前に計算されたHA1から始まり、そこからの応答の作成を続けます(つまり、バックエンドでユーザーを検証するのと同じことです)。

何か不足していますか?ダイジェスト要件を追加すると、基本的に、ハッシュされたパスワードをセキュリティpovのノーオペレーションに格納することができますか?難読化は最高ですか?

答えて

7

事前計算されたハッシュを使用している理由は、攻撃からの保護ではなく、ユーザーのプライバシーを保護するためです。

攻撃者は確かに認証できますが、私の貴重なユーザーのパスワードを(簡単に)見ることができず、使用している他のサービスを妥協することはできません。