1

シナリオ:

Webサービスプロデューサーは、データベースに保存されているパスワードのSHA-1ハッシュのみを持っています。ユーザー名とパスワードの組み合わせを使用して、Webサービスユーザーを認証する必要があります。


WebサービスセキュリティUsernameTokenプロファイルを使用すると、この目的でsoapヘッダーを追加できます。

この要素は、ユーザー名を提供する方法として、WSS:SOAPメッセージセキュリティドキュメントで紹介されています。

要素内で、要素を指定できます。PasswordTextおよびPasswordDigestタイプのパスワードは、実際のパスワードに限定されませんが、これは一般的なケースです。 (146-151)

PasswordTextパスワードタイプは、パスワードがプレーンテキストとしてネットワーク経由で送信されることを意味します。これは、トランスポートレベルのセキュリティメカニズムを使用していない場合のセキュリティの問題です。PasswordDigestは、プレーンテキストのパスワードの送信を回避し、ハッシュを送信します。ただし、リプレイ攻撃(つまり、攻撃者が盗聴を使用してハッシュされたパスワードをキャプチャし、別のリクエストで再送信する)を回避するために、PasswordDigestは、ハッシュを計算する前にタイムスタンプと乱数をパスワードに追加します。この追加により、次の制限が発生します。

PasswordDigestは、要求者と受信者の両方がプレーンテキストのパスワード(または同等のパスワード)を使用できる場合にのみ使用できることに注意してください。(196-197)


しかし、私たちの場合、プレーンテキストのパスワードはありません。私の質問は、プレーンテキストのパスワードをサーバーで利用できるようにするために、他にどのような代替手段がありますか?

4

1 に答える 1

2

SHA-1 は「プレーンテキスト」パスワードとして完全に使用できます。

  • ユーザーにパスワードを尋ねる
  • それをSHA-1に変換します
  • PasswordDigest を介して実行します
  • サーバーはデータベース内のSHA-1で同じことを行います
  • サーバーはそれらが一致することを検出し、アクセスを許可します
于 2010-06-24T10:53:07.147 に答える