メインコンテンツまでスキップ

5. Security Considerations (セキュリティに関する考慮事項)

5. Security Considerations (セキュリティに関する考慮事項)

認可サーバーがアクセストークンの無効化をサポートしていない場合、対応するリフレッシュトークンが無効化されても、アクセストークンは直ちに無効化されません。デプロイメントは、セキュリティリスク分析を実施する際にこれを考慮に入れなければなりません。

無効化を使用してトークンをクリーンアップすることは、放棄されたトークンの悪用の可能性を減らすため、全体的なセキュリティとプライバシーに貢献します。本仕様は一般に、トークンの盗難や悪用に対する対策を提供することを意図していません。それぞれの脅威と対策の議論については、OAuth コア仕様 [RFC6749] のセクション 10 と OAuth 脅威モデル文書 [RFC6819] に記載されているセキュリティに関する考慮事項を参照してください。

悪意のあるクライアントは、新しいエンドポイントを使用して認可サーバーへの denial-of-service (サービス拒否) 攻撃を試みる可能性があります。トークンエンドポイントにもあるべき適切な対策を、無効化エンドポイントにも適用しなければなりません (MUST)([RFC6819]、セクション 4.4.1.11 を参照)。具体的には、無効なトークンタイプヒントは、認可サーバーを誤解させ、追加のデータベースルックアップを引き起こす可能性があります。悪意のあるクライアントがサービス拒否攻撃を開始するためにこの機能を悪用するのを防ぐために、注意しなければなりません (MUST)。

悪意のあるクライアントは、潜在的なトークン文字列に対して無効化リクエストを行うことで、このエンドポイントで有効なトークンを推測しようとする可能性があります。本仕様によれば、クライアントのリクエストには、パブリッククライアントの場合は有効な client_id、機密クライアントの場合は有効なクライアント資格情報が含まれていなければなりません。無効化されるトークンも、リクエスト元のクライアントに属していなければなりません。攻撃者がパブリッククライアントの client_id とそのトークンの 1 つ、またはプライベートクライアントの資格情報とそのトークンの 1 つを正しく推測できた場合、トークンを無効にするよりも、他の場所でトークンを使用することで、はるかに悪い損害を与える可能性があります。彼らがトークンを無効にすることを選択した場合、正当なクライアントはその認可グラントを失い、ユーザーに再度プロンプトを表示する必要があります。それ以上の損害は行われず、推測されたトークンは無価値になります。

無効化エンドポイントはセキュリティ資格情報を扱っているため、クライアントはその場所を信頼できるソースからのみ取得する必要があります。そうしないと、攻撃者は偽造された無効化エンドポイントを利用して有効なセキュリティトークンをキャプチャする可能性があります。さらに、偽造された無効化エンドポイントを検出するために、クライアントは無効化エンドポイントを認証しなければなりません (MUST)(証明書の検証など)。