「[[マイクロソフト系技術情報 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]]

* 目次 [#ff55f5a3]
#contents

*概要 [#i38da113]
OAuth 2.0 Threat Model and Security ConsiderationsのFlowに着目したセキュリティに関する考慮事項。

* Authorization code [#v5721a5d]

**codeの盗聴または漏洩 [#u5dfaabe]

***影響 [#uea5e361]
-codeを用いたアクセストークン・リクエストが可能になる。~
(access_token, refresh_tokenの開示)

-ただし、client_secretも必要。

***攻撃 [#h7eab0fb]
-[[オープンリダイレクタ>OAuth 2.0 Threat Model and Security Considerations#mb0f0219]]

-HTTP referer~
認可エンドポイント → Redirectエンドポイントへのリダイレクト。

-WWWサーバの要求ログ

-WWWブラウザの履歴情報

***対策 [#xcaf95ff]
-SSL/TLSの利用
-クライアント認証
-短い有効期限
-1回限りの使用制限

-ブラウザキャッシュを自動的にクリーンアップするために、~
redirect_uriのターゲットページをリロードする。

**DBからcodeを盗難 [#a69b0a36]
***影響 [#uc8c688c]
すべてのcodeの開示
-合わせて、client_idやredirect_uriの漏洩
-codeを用いたアクセストークン・リクエストが可能
-ただし、client_secretも必要。

***攻撃 [#s3c22cf9]
-データベースへのアクセス権を取得
-SQLインジェクション攻撃

***対策 [#v1fb9d8a]
-システムのセキュリティ対策を実施
-標準のSQLインジェクション対策を実施
-codeハッシュのみを格納

**オンライン推測によるcodeの取得 [#nf3c8c21]
***影響 [#y471fae0]
-codeを用いたアクセストークン・リクエストが可能になる。~
(access_token, refresh_tokenの開示)

-ただし、client_secretも必要。

***攻撃 [#hd7112de]
***対策 [#e7dc0993]
-codeに高いエントロピーを使用
-強力なクライアント認証
-有効期間を短くする。
-トークンに署名する。
-codeをredirect_uriに紐付ける。

**悪意のあるClientを認可してしまう [#j8c50476]
***影響 [#j164b0c0]
-パブリック・クライアントの登録が可能なケースで、
-悪意のあるClientが、Tokenを取得できる。

***攻撃 [#ze01a730]
フロー中のユーザ同意のシミュレートするなど。

***対策 [#t31ea4f0]
-信頼度は、クライアントのタイプによって異なる。
--Webアプリケーション~
グローバルに一意なネットワークエンドポイント
--ネイティブクライアント~
デバイスローカルリソース(カスタムスキーム)

-クライアント認証
-redirect_uri検証

-認可画面の表示
--目的(scope)の提示
--client_idに対応する名称
--access_tokenの期間

--自動再認証の抑止
--スクリーン・スクレイピングの防止(CAPTCHAs)

**codeフィッシング [#e11c5a29]

***影響 [#n52986ab]
codeを用いたアクセストークン・リクエストが可能になる。~
(access_token, refresh_tokenの開示)

***攻撃 [#v3499c66]
-クライアントに対するDNSまたはARPスプーフィングが行われる。
-悪意のあるClientに誘導してcodeを入手する。

***対策 [#gdfc03c4]
-クライアント認証
-redirect_uriをSSL/TLS(サーバ証明)で保護

**セッション・ハイジャック [#gb0b1185]
[[前述>#e11c5a29]]の、パブリック・クライアント版。

***影響 [#h9d1b672]
-パブリック・クライアントの登録が可能なケースで、
-codeを用いたアクセストークン・リクエストが可能になる。~
(access_token, refresh_tokenの開示)

***攻撃 [#f681ed6a]
-パブリック・クライアントが登録される。
-悪意のあるClientに対するDNSまたはARPスプーフィングが行われる。
-悪意のあるClientに誘導してcodeを入手する。


***対策 [#jf102672]
※ クライアント認証は無効
-redirect_uriをSSL/TLS(サーバ証明)で保護

**悪意のあるClientによるcode漏洩 [#p8bd5a13]

***影響 [#a67d0e68]
攻撃者は、悪意のあるClientを使用して、~
正規のClientの被害者のリソースにアクセスできる。

***攻撃 [#mab43d26]
-既存のパブリック・クライアントのredirect_uriを編集・追加する。
-悪意のあるClientに誘導してcodeを取得する。
-codeを他の正規のクライアントに向けて注入する。

***対策 [#gd3bf925]
-クライアント認証
-redirect_uriの事前登録と検証
-他のフローの使用を検討

**redirect-uriに対するCSRF [#z08fc60f]

***影響 [#e45f294b]
脆弱なClientによって被害者は攻撃者のアカウントでリソースにアクセスする。

***攻撃 [#a76152b7]
-攻撃者は、codeを収集し、
-CSRFのリンクを踏ませるなどのCSRF攻撃を行う。

***対策 [#seeda7ff]
-"state"パラメータを使用
-ユーザの教育(偽造Clientの識別)


**認証に対するクリックジャッキング [#ifb8644d]
***影響 [#i4595058]
***攻撃 [#r77cfba2]
***対策 [#o63d98a7]

----
Tags: [[:認証基盤]], [[:クレームベース認証]], [[:OAuth]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS