「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>OAuth#t8e931a5]] * 目次 [#y9d6248c] #contents *概要 [#u2d822fd] -OAuth 2.0 の脅威モデルとセキュリティ考慮事項 (RFC 6819) -OAuth 2.0 の実装にあたり、脅威モデルとセキュリティ考慮事項を列挙 -セクション4以降からの内容で、[[OAuth]] 2.0 の前提は飛ばしている。 *脅威モデル [#j97033f0] OAuth 2.0の包括的なグループ化された脅威モデル。 **[[Role毎>OAuth 2.0 Threat Model (Role)]] [#j86c8ad5] **[[Flow毎>OAuth 2.0 Threat Model (Flow)]] [#if4ee696] **[[Access毎>OAuth 2.0 Threat Model (Access)]] [#if4ee696] *セキュリティ考慮事項 [#j8507837] 脅威を緩和するために推奨される対策。 **[[General>OAuth 2.0 Security Considerations (General)]] [#c355bcce] **[[Role毎>OAuth 2.0 Security Considerations (Role)]] [#k88abe91] *ざっくり [#x01ebfce] **対策 [#we5285d7] ***漏洩対策 [#ad4d0c5e] -SSL/TLS([[サーバ証明>OAuth 2.0 Security Considerations (General)#rf5914dc]])を利用する。 -正規のClientへ発行されたトークンの漏洩に注意。 --code(state):code置換攻撃が可能。 --access_token:access_tokenを利用可能。 ***エンドポイント防御 [#t5962331] -stateを付与・検証する。 -redirect_uri 検証を行う。 -クライアント認証を行う。 ***トークン堅牢化 [#gaa9854b] -低いエントロピーの値を使用しない。 -access_tokenを[[JWT]]化する。 ***トークン検証 [#u8e4bfa7] -([[JWT]]化した場合、)Client、Resource Serverでも、 --署名検証する。 --クレームセット検証する。 ---iss(issuer)~ issは署名検証があるので偽装困難 ---aud(client_id)~ Resource Serverでもaudによるクライアント検証を行う。 ---sub(ユーザID)~ ユーザへの明示に加え、~ Client、Resource Serverで認証済みリクエストでsub検証するなど。 -[[Authorization Serverを用いたaccess_token検証>OAuth 2.0 Token Introspection]] --署名検証する。 --クレームセット検証する。 ---iss(issuer) ---aud(client_id) ---sub(ユーザID) ---jti([[無効化>OAuth 2.0 Token Revocation]]状況) --クレームセットをJSONで返却~ Client、Resource Serverで検証を容易にする。 ***ユーザの教育 [#fa58c508] -偽造サーバの識別 -組み込みブラウザに注意 **注意 [#e5ec5286] ***オープン・リダイレクタ [#o43c7aa6] -完全なredirect_uriの事前登録と検証 -スターターとアクセストークン・リクエストでのredirect_uriの要求 ***自動再認証、認可画面非表示 [#c55f9143] -悪意のあるクライアントと組み合わさる。 -その際のscopeなど注意が必要。 ***クライアント登録機能 [#z5a20e1b] 悪意のあるクライアントが容易に登録可能。 ***パブリック・クライアント [#l2c8db1d] ネイティブアプリやJSアプリのようにsecretを秘匿に保てないタイプ。 -サーバより脅威が多い。 --盗難 --リエンジ --ストレージ --ウィルス --脆弱性 -ネイティブの場合は、[[OAuth PKCE]]を利用する。 *参考 [#o592275c] -RFC 6819 - OAuth 2.0 Threat Model and Security Considerations~ https://tools.ietf.org/html/rfc6819 -OAuth 2.0 Threat Model and Security Considerations~ http://openid-foundation-japan.github.io/rfc6819.ja.html ---- Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]