2

現在、API を保護するために WSSE プロトコルについて調査を行っています。

私はその根拠を理解しており、頭の中ではっきりしています。

しかし、私は問題に直面しています。

1 回限りのダイジェストを生成したいとしましょう。タイムスタンプ、ナンス、秘密のパスワードを連結する必要があります。

ただし、サーバー側では、クリア パスワードがデータベースに保存されていないため、ダイジェストを確認できません。

パスワードのクリアへの切り替えはオプションではありません。

パスワードのハッシュに使用されるアルゴリズムをクライアント側に提供することもできません。なぜなら、彼らはソルトを使用しており、クライアントはソルトを利用できないからです。

私が考えることができる唯一の解決策は、ダイジェストをハッシュせず、データを連結してbase64にすることです。

そうすれば、ユーザーのパスワードをエンコードして有効性を確認できます。

パスワードはプレーン テキストで送信されるため安全ではない可能性がありますが、HTTPS で認証を強制するとどうなりますか?

安全でしょうか?

4

1 に答える 1

1

パスワードはプレーンテキストで送信されるため、安全ではない可能性がありますが、HTTPSに認証を強制するとどうなりますか?

安全ですか?

はい、そして通常の制限内で、それはそれを安全にする唯一の方法です。

完全なパスワードを送信するだけですが、十分に保護されたTLS接続を介して送信してください。bryptやPBKDF2などの安全な鍵導出関数を使用し、保存されているランダムソルト(ユーザーごとに1つ)とパスワードを入力して「ハッシュ」を取得し、データベースに保存されているものにチェックすることができます。

クライアントからタイムスタンプを送信する必要はないことに注意してください。もちろん、認証の試行回数をログに記録して制限することをお勧めします。タイムスタンプをハッシュへの入力として使用することはできません。タイムスタンプが変更されるたびに結果が異なります。

于 2012-09-25T21:45:36.640 に答える