[論文レビュー] A Comprehensive Formal Security Analysis of OAuth 2.0
この論文は、現実のウェブ相互作用を捉える表現力の高いウェブモデルを用いて、OAuth 2.0の最初の包括的な形式的セキュリティ分析を提示する。4つの以前に未知の攻撃—307リダイレクト、IdPミックスアップ、ステートリーク、ナーヴィ RP セッション整合性攻撃—を同定し、修正策を提案。修正されたプロトコルが標準的なセキュリティベストプラクティスのもとで、強力な承認、認証、セッション整合性を達成することを形式的に証明した。
The OAuth 2.0 protocol is one of the most widely deployed authorization/single sign-on (SSO) protocols and also serves as the foundation for the new SSO standard OpenID Connect. Despite the popularity of OAuth, so far analysis efforts were mostly targeted at finding bugs in specific implementations and were based on formal models which abstract from many web features or did not provide a formal treatment at all. In this paper, we carry out the first extensive formal analysis of the OAuth 2.0 standard in an expressive web model. Our analysis aims at establishing strong authorization, authentication, and session integrity guarantees, for which we provide formal definitions. In our formal analysis, all four OAuth grant types (authorization code grant, implicit grant, resource owner password credentials grant, and the client credentials grant) are covered. They may even run simultaneously in the same and different relying parties and identity providers, where malicious relying parties, identity providers, and browsers are considered as well. Our modeling and analysis of the OAuth 2.0 standard assumes that security recommendations and best practices are followed, in order to avoid obvious and known attacks. When proving the security of OAuth in our model, we discovered four attacks which break the security of OAuth. The vulnerabilities can be exploited in practice and are present also in OpenID Connect. We propose fixes for the identified vulnerabilities, and then, for the first time, actually prove the security of OAuth in an expressive web model. In particular, we show that the fixed version of OAuth (with security recommendations and best practices in place) provides the authorization, authentication, and session integrity properties we specify.
研究の動機と目的
- 現実的なウェブモデルにおけるOAuth 2.0標準の形式的かつ包括的なセキュリティ分析を提供すること。
- 強力なセキュリティ特性である承認、認証、セッション整合性の定義と形式的検証を行うこと。
- OAuth 2.0およびその派生プロトコルOpenID Connectにおける以前に未知の攻撃の同定と分析を行うこと。
- 発見された脆弱性に対する実用的な修正策を提案し、その有効性を形式的に証明すること。
- OAuth 2.0がセキュリティベストプラクティスと組み合わせられれば、現実的な脅威モデルにおいて強力なセキュリティ保証を達成できることを確立すること。
提案手法
- ブラウザ、依存先パートナー(Relying Party)、IDプロバイダー、ネットワーク攻撃者を含むOAuth 2.0の相互作用を形式的に表現するためのFKSウェブモデルを開発した。
- 同じ形式的フレームワーク内で、OAuth 2.0の全4つの権限付与タイプ(承認コード、インプリシット、リソースオーナーパスワード、クライアント資格情報)をモデル化した。
- 形式的セキュリティ特性を定義した:承認(承認済みユーザーのみがリソースにアクセス可能)、認証(ユーザーが正しく識別される)、セッション整合性(セッション状態が改ざんから保護される)。
- 攻撃者の能力を、悪意ある依存先パートナー、悪意あるIDプロバイダー、悪意あるブラウザ、ネットワークレベルの操作(例:DNSスプーフィング、307リダイレクト)を含むように形式化した。
- シンボリック実行とモデルチェックイングの技術を用いて、修正済みOAuth 2.0プロトコルが定義されたすべてのセキュリティ特性を満たしていることを検証した。
- イベントシーケンス、トークン処理、コンponents間の状態一貫性に関する補題を活用した構造化された証明アウトラインを用いて、セキュリティ定理を証明した。
実験結果
リサーチクエスチョン
- RQ1形式的モデルは、現実的なウェブ環境におけるOAuth 2.0の相互作用の完全な複雑性を捉えることができるか?
- RQ2OAuth 2.0の文脈において、強力な承認、認証、セッション整合性の形式的定義は何か?
- RQ3現実的な脅威モデル下で、形式的に同定され、利用可能なOAuth 2.0およびOpenID Connectの脆弱性は何か?
- RQ4同定された脆弱性に対する提案された修正策は、意図されたセキュリティ保証を回復させるか?
- RQ5定義されたセキュリティ特性および攻撃者モデルのもとで、修正済みOAuth 2.0は形式的に証明可能に安全か?
主な発見
- 4つの新しい攻撃が形式的に発見された:307リダイレクト、IdPミックスアップ、ステートリーク、ナーヴィ RP セッション整合性攻撃。これらは実際の環境でも利用可能であり、OpenID Connectにも存在する。
- 307リダイレクト攻撃では、攻撃者がHTTP 307リダイレクトを操作することで、ユーザーの承認フローを悪意あるIDプロバイダーにリダイレクトできる。
- IdPミックスアップ攻撃では、攻撃者が依存先パートナーに別のIDプロバイダーのトークンを受け入れさせることで、ユーザーを偽装できる。
- ステートリーク攻撃は、ステートパラメータが適切に検証されない場合に発生し、セッション固定化とリクエスト偽装を可能にする。
- ナーヴィ RP セッション整合性攻撃は、依存先パートナーがアクセストークンの送信元を正しく認証しない場合に発生し、セッションハイジャックを引き起こす。
- 提案された修正策を適用した後、形式的証明により、強化されたOAuth 2.0プロトコルが、承認、認証、セッション整合性のすべての定義済みセキュリティ特性を満たしていることが確認された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。