OpenID 2.0 : Verifying Signatures (署名検証)

http://openid.net/specs/openid-authentication-2_0.html#verifying_signatures

11.4.  Verifying Signatures (署名検証)

If the Relying Party has stored an association with the association handle specified in the assertion, it MUST check the signature on the assertion itself. If it does not have an association stored, it MUST request that the OP verify the signature via Direct Verification (Verifying Directly with the OpenID Provider).

RPがアサーションにしめされたアソシエーションハンドルのアソシエーションを保存しているのであれば、アサーションのシグネチャをそれで検証しなければなりません。もしも、アサーションががなければ直接検証によってOPにシグネチャを検証するようにリクエストする必要があります。



TOC


11.4.1.  Verifying with an Association (アソシエーションの検証:OP)

The Relying Party follows the same procedure that the OP followed in generating the signature (Generating Signatures), and then compares the signature in the response to the signature it generated. If the signatures do not match, the assertion is invalid.

RPは署名生成の手順と同じ手順にしたがって署名検証をします。署名が一致しなければアサーションは不正です。

If an authentication request included an association handle for an association between the OP and the Relying party, and the OP no longer wishes to use that handle (because it has expired or the secret has been compromised, for instance), the OP will send a response that must be verified directly with the OP, as specified in Section 11.4.2 (Verifying Directly with the OpenID Provider). In that instance, the OP will include the field "openid.invalidate_handle" set to the association handle that the Relying Party included with the original request.

認証要求がOPとRPのアソシーエションのハンドルを含んでいるのであれば、OPはそのハンドルを使いません。OPは応答を直接OPで検証するように返します。openid.invalidate_handleにRPがリクエストに入れたアソシエーションハンドルをセットするのです。



TOC


11.4.2.  Verifying Directly with the OpenID Provider(OPに直接検証する:RP)

To have the signature verification performed by the OP, the Relying Party sends a direct request (Direct Request) to the OP. To verify the signature, the OP uses a private association that was generated when it issued the positive assertion (Positive Assertions).

署名検証をOPにやってもらうためにはダイレクトリクエストを行います。署名を検証するために、OPは先に返答したポジティブ・アサーションに使ったプライベートアソシエーションを使います。



TOC


11.4.2.1.  Request Parameters
  • openid.mode

    Value: "check_authentication"

  • Exact copies of all fields from the authentication response, except for "openid.mode". (openid.mode以外のすべての認証応答のフィールドをコピーして指定します)

For verifying signatures an OP MUST only use private associations and MUST NOT use associations that have shared keys. If the verification request contains a handle for a shared association, it means the Relying Party no longer knows the shared secret, or an entity other than the RP (e.g. an attacker) has established this association with the OP.

OPはプライベートアソシエーションのみを使います。共有キーのあるアソシエーションを使ってはいけません。検証リクストが共有アソシエーションハンドルを含んでいるのであれば、それはRPが共有シークレットを知らないあ、あるいはRP以外(攻撃者)がOPにアソシーエションを確立しようとしているということになります。

To prevent replay attacks, the OP MUST NOT issue more than one verification response for each authentication response it had previously issued. An authentication response and its matching verification request may be identified by their "openid.response_nonce" values.

リプレー攻撃を防ぐために、OPは返答した認証応答ごとに1回だけしか検証応答を返答してはいけません。認証応答と対応する検証応答は”openid.response_nonce”で識別できます。



TOC


11.4.2.2.  Response Parameters
  • ns

    As specified in Section 5.1.2 (Direct Response).

  • is_valid

    Value: "true" or "false"; asserts whether the signature of the verification request is valid.

  • invalidate_handle

    Value: (optional) The "invalidate_handle" value sent in the verification request, if the OP confirms it is invalid.  (OPが無効にしたいハンドル)

    Description: If present in a verification response with "is_valid" set to "true", the Relying Party SHOULD remove the corresponding association from its store and SHOULD NOT send further authentication requests with this handle.  (is_valid=trueの応答であれば、RPは対応するアソシエーションを削除してこのハンドルを使った認証リクエストを二度と行わないこと)

    Note: This two-step process for invalidating associations is necessary to prevent an attacker from invalidating an association at will by adding "invalidate_handle" parameters to an authentication response. (二段階プロセスでアソシエーションを無効にするのは攻撃者が無効にする攻撃から防ぐため) 

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中