「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>OAuth 2.0 Threat Model and Security Considerations]] * 目次 [#sa0ed533] #contents *概要 [#j0f9297f] OAuth 2.0 Threat Model and Security ConsiderationsのAccessに着目した脅威モデル。 -[[Token Endpoint (Refresh)>#f64b702b]] -[[Resources Server Endpoint (WebAPI)>#eaab3837]] *Token Endpoint (Refresh) [#f64b702b] **refresh_tokenの盗聴 [#faad9812] ***影響 [#i0ef5b3e] 影響は、[[コチラ>OAuth 2.0 Threat Model (Role)#hf690590]]と同じ。 ***攻撃 [#i403e34f] 盗聴 ***対策 [#y09f020b] -SSL/TLSの利用 -SSL/TLSの利用できない場合。 --有効期間を短くする。 --スコープを制限する。 -client_idにrefresh_tokenをバインド **DBからrefresh_tokenを盗難 [#t1405624] ***影響 [#ye11af8c] すべての[[refresh_tokenの開示>OAuth 2.0 Threat Model (Role)#hf690590]] ***攻撃 [#e8806ab3] -データベースへのアクセス権を取得 -SQLインジェクション攻撃 ***対策 [#mdb3e53b] -システムのセキュリティ対策を実施 -標準のSQLインジェクション対策を実施 -client_idにrefresh_tokenをバインド **refresh_tokenのオンライン推測 [#j7fc5fd1] ***影響 [#cfbb67c0] 影響は、[[コチラ>OAuth 2.0 Threat Model (Role)#hf690590]]と同じ。 ***攻撃 [#he07aaa0] refresh_tokenのオンライン推測 ***対策 [#pb91a799] -クライアント認証 -トークン・ハンドルに高いエントロピーを使用 -自己完結型トークンに署名をしたアサーションを使用 -client_idにrefresh_tokenをバインド **偽造Authorization Serverによるrefresh_tokenフィッシング [#bf6eb687] ***影響 [#n9e3f1c4] 影響は、[[コチラ>OAuth 2.0 Threat Model (Role)#hf690590]]と同じ。 ***攻撃 [#w3418ab3] Authorization Serverへの要求をプロキシする。~ ※ 偽造Authorization Serverにより横取りする的な意味か。 ***対策 [#s907505d] SSL/TLS(サーバ証明)の利用 SSL/TLS([[サーバ証明>OAuth 2.0 Security Considerations (General)#rf5914dc]])の利用 *Resources Server Endpoint (WebAPI) [#eaab3837] **access_tokenの盗聴 [#ifd33efc] ***影響 [#dd700b73] 影響は、[[コチラ>OAuth 2.0 Threat Model (Role)#a1503bb7]]と同じ。 ***攻撃 [#gcf6cdd3] 盗聴 ***対策 [#u1b159d8] -SSL/TLSの利用 -SSL/TLSの利用できない場合。 --有効期間を短くする。 --スコープを制限する。 -client_idにaccess_tokenをバインド~ ([[認証されたリクエスト>OAuth 2.0 Security Considerations (Role)#g49766f4]]の利用) **有効な要求の再生 [#ec7e94fe] ***影響 [#ie77054a] ユーザーデータの変更/破棄 ***攻撃 [#ic468af6] 攻撃者は有効な要求をキャプチャ&リプレイ ***対策 [#bd69bb0a] -SSL/TLS(サーバ証明)の利用 -SSL/TLS([[サーバ証明>OAuth 2.0 Security Considerations (General)#rf5914dc]])の利用 -SSL/TLSの代替 --[[署名されたリクエスト>OAuth 2.0 Security Considerations (Role)#ab4b2f83]]の利用 --若しくはnonceとtimestampを使用 **access_tokenのオンライン推測 [#z45968eb] ***影響 [#nc0ce891] 影響は、[[コチラ>OAuth 2.0 Threat Model (Role)#a1503bb7]]と同じ。 ***攻撃 [#f52ebba1] access_tokenのオンライン推測 ***対策 [#n61594b4] -トークン・ハンドルに高いエントロピーを使用 -自己完結型トークンに署名をしたアサーションを使用 -有効期間を短くすることで更に強化される。 **偽造Resource Serverによるaccess_tokenフィッシング [#fba8410a] ***影響 [#b19bf5e3] 影響は、[[コチラ>OAuth 2.0 Threat Model (Role)#a1503bb7]]と同じ。 ***攻撃 [#fe6f6f99] 偽造Resource Serverによるaccess_tokenフィッシング ***対策 [#r7a7dabc] -SSL/TLS(サーバ証明)~ -SSL/TLS([[サーバ証明>OAuth 2.0 Security Considerations (General)#rf5914dc]])~ 不明なResource Serverへaccess_tokenを使用してリクエストしない。 -access_tokenのaudに対して、Endpointを関連付ける。 --事前にAuthorization ServerがResource ServerのEndpoint URLを通知する必要がある。 --Endpointの検証ポリシーは ---厳密(完全一致) ---または緩やか(たとえば、同じホスト) -[[認証されたリクエスト>OAuth 2.0 Security Considerations (Role)#g49766f4]]の+クライアント証明書などで、Resource Serverはクライアント認証する。 -access_tokenの制限 --scopeを制限 --特定のResource Serverに制限する。 **access_tokenの不正使用 [#d05f27b3] ***影響 [#n6de4342] 不正使用(意図していないResource Serverでの利用が拡大する)。 ***攻撃 [#p2da7f08] -Resource Serverが、別のResource Serverにaccess_tokenを使用してリクエスト -ClientやUserAgentが、別のResource Serverにaccess_tokenを使用してリクエスト ***対策 [#m0a059c3] access_tokenは、特定のResource Serverに制限する(audを使用する)。 **HTTP proxyによる機密情報の漏洩 [#o0b6d121] ***影響 [#v84b9735] 影響は、[[コチラ>OAuth 2.0 Threat Model (Role)#a1503bb7]]と同じ。 ***攻撃 [#f148787f] Authorization と WWW-Authenticate ヘッダの読み取り。 ***対策 [#h1181389] -Client --Cache-Control: no-store~ Webサーバから返されてくるコンテンツをキャッシュに記録するな、という指示。 -Resource Server --Cache-Control: private~ Webサーバから返されるコンテンツが1人のユーザのためのものであることを示す。 ---共有キャッシュに記録されるべきではないことを表す。 ---ブラウザのキャッシュ等への記録はされる。 -軽減 --有効期間を短くする。 --スコープを制限する。 **ログやHTTP refererからのaccess_token漏洩 [#k8a61c41] ***影響 [#r12c7a61] 影響は、[[コチラ>OAuth 2.0 Threat Model (Role)#a1503bb7]]と同じ。 ***攻撃 [#v9bfe6f8] Query String利用時、(記録から)漏洩 -HTTP referer -WWWサーバの要求ログ -WWWブラウザの履歴情報 ***対策 [#xf4447ee] -AuthorizationヘッダまたはPOSTパラメタを使用する。 -認証済みリクエストの利用~ アサーションのsubと認証済みリクエストのidを検証 -軽減 --有効期間を短くする。 --スコープを制限する。 --ワンタイム・トークン ---- Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]