Clear Text PasswordがWebサービスプロデューサーに保存されていない場合、PasswordDigestの代替とは何ですか?
-
29-09-2019 - |
質問
シナリオ:
Webサービスプロデューサーには、データベースに保存されているパスワードのSHA-1ハッシュのみがあります。ユーザー名/パスワードの組み合わせを使用して、Webサービスユーザーを認証する必要があります。
WebサービスセキュリティUsernAmetokenプロファイル この目的のために石鹸ヘッダーを追加できます。
この要素は、ユーザー名を提供する方法として、WSS:SOAPメッセージセキュリティドキュメントに導入されています。
要素内で、要素を指定できます。タイプのPasswordTextとPasswordDigestのパスワードは、実際のパスワードに限定されませんが、これは一般的なケースです。 (146-151)
PasswordTextパスワードタイプとは、パスワードがワイヤー上で送信されることを意味します。これは、トランスポートレベルのセキュリティメカニズムを使用していない場合、セキュリティの問題です。 PasswordDigestは、単純なテキストのパスワードの送信を避け、ハッシュを送信します。ただし、リプレイ攻撃を避けるため(つまり、ハッシュされたパスワードをキャプチャして別のリクエストで再送信するためにWiretapを使用して攻撃者)。パスワードディジェストは、ハッシュを計算する前にタイムスタンプと乱数をパスワードに追加します。この追加は、次の制限をもたらします。
PasswordDigestは、リクエスターと受信者の両方がプレーンテキストパスワード(またはパスワード等価)が利用できる場合にのみ使用できることに注意してください。 (196-197)
しかし、私たちの場合、単純なテキストパスワードはありません。私の質問は、サーバーでプレーンテキストのパスワードを使用できるようにするために、他にどのような代替品を持っていますか?
解決
SHA-1は、「平文」パスワードとして完全に使用できます。
- ユーザーにパスワードに尋ねます
- SHA-1に変換します
- PasswordDigestのものを通してそれを実行します
- サーバーはデータベース内のSHA-1で同じことをします
- サーバーは、彼らが一致してアクセスを許可することを見つけます