2016-09-17 7 views
0

XMPP認証フローの読み物です。このようなアルゴリズムを使用してクライアントで応答が計算されることを理解しました。XMPP DIGEST-md5応答を計算するアルゴリズム

  1. "username:realm:password"という形式の文字列を作成します。この文字列Xを呼び出します。
  2. Xの16オクテットMD5ハッシュを計算します。結果Yと呼んでください。
  3. "Y:nonce:cnonce:authzid"という形式の文字列を作成します。この文字列A1を呼び出します。
  4. "AUTHENTICATE:digest-uri"という形式の文字列を作成します。この文字列A2を呼び出します。
  5. A1の32桁の16進数のMD5ハッシュを計算します。結果HA1を呼び出します。
  6. A2の32進数のMD5ハッシュを計算します。結果HA2を呼び出します。
  7. "HA1:nonce:nc:cnonce:qop:HA2"という形式の文字列を作成します。この文字列KDを呼び出します。
  8. KDの32進数のMD5ハッシュを計算します。結果をZと呼びます。

これは構造内のレスポンスフィールドに埋め込まれています。

デコードされたチャレンジレスポンスの例は

username="rob",realm="cataclysm.cx",nonce="OA6MG9tEQGm2hh",cnonce="OA6MHXh6VqTrRk",nc=00000001,qop=auth,digesturi="xmpp/cataclysm.cx",response=d388dad90d4bbd760a152321f2143af7,charset=utf-8,authzid="[email protected]/myResource" 

あるしかし、私の懸念は、私は、その特定の応答フィールドは、サーバー上でどのように使われるかどこでも見られたhaventされますか?実際にこれを使用するユースケースはありますか?誰かが参考文献/洞察/実装を引用して回答フィールドがどのように使われているのか、それが実際にユーザーの真正性を判断する役割を果たすのか

ありがとうございます!

答えて

0

現在、私はダイジェストMD5認証の仕組みに取り組んでおり、RFC 2831を参照用に使用しています。サーバーはサーバーのサイトでその応答を再度生成し、それをクライアントから受信した応答フィールドと比較します一致する場合はクライアントが認証され、そうでない場合は認証が失敗します。文字列がハッシュ化された後、サーバがハッシュ値を計算し、私の場合は供給元の文字列が同じ

した場合、これらの値が等しくなりますので、今、このような比較が行われる理由は、それが元の文字列に戻すことはできませんされて

あなたの疑問を明らかにする答えがわからない

関連する問題