Enviar pesquisa
Carregar
Idcon 17th ritou OAuth 2.0 CSRF Protection
•
12 gostaram
•
4,604 visualizações
Ryo Ito
Seguir
#idcon 17thで発表した内容に2つの内容が含まれていましたが、これはOAuth 2.0のCSRF対策の部分だけを抜き出したものです。
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 31
Baixar agora
Baixar para ler offline
Recomendados
SmartBBSとデスクトップアプリ
SmartBBSとデスクトップアプリ
kstmshinshu
Cognito User Pool
Cognito User Pool
Takeru Ujinawa
Facebookアクセストークンのセキュリティ再確認
Facebookアクセストークンのセキュリティ再確認
Yoichi Toyota
今更聞けないOAuth2.0
今更聞けないOAuth2.0
Takahiro Sato
TwitterのOAuth脆弱性
TwitterのOAuth脆弱性
Masahiro NAKAYAMA
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi
認証プロバイダによるソーシャルサインオンWebinar
認証プロバイダによるソーシャルサインオンWebinar
Salesforce Developers Japan
WebIntents × SNS
WebIntents × SNS
Ryo Ito
Recomendados
SmartBBSとデスクトップアプリ
SmartBBSとデスクトップアプリ
kstmshinshu
Cognito User Pool
Cognito User Pool
Takeru Ujinawa
Facebookアクセストークンのセキュリティ再確認
Facebookアクセストークンのセキュリティ再確認
Yoichi Toyota
今更聞けないOAuth2.0
今更聞けないOAuth2.0
Takahiro Sato
TwitterのOAuth脆弱性
TwitterのOAuth脆弱性
Masahiro NAKAYAMA
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi
認証プロバイダによるソーシャルサインオンWebinar
認証プロバイダによるソーシャルサインオンWebinar
Salesforce Developers Japan
WebIntents × SNS
WebIntents × SNS
Ryo Ito
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
Ryo Ito
iTree Company Profile
iTree Company Profile
rohanspatil
歴史から学ぶID 〜日本書紀から番号制度まで〜
歴史から学ぶID 〜日本書紀から番号制度まで〜
Masanori Kusunoki
OSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼン
Masanori Itoh
O Auth
O Auth
Taizo Matsuoka
Bitcoinの概要と論点
Bitcoinの概要と論点
Masanori Kusunoki
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
Hiroshi Hayakawa
Tokbind-fido
Tokbind-fido
Kaoru Maeda
Idcon gomi-052715-pub
Idcon gomi-052715-pub
Hidehito Gomi
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID Connect
Ryo Ito
W3C Presentation -FIDO Alliance -Tokyo Seminar -Smith
W3C Presentation -FIDO Alliance -Tokyo Seminar -Smith
FIDO Alliance
KICA Case Study: Bio-Authentication and PKI Trends in Korea -FIDO Alliance -T...
KICA Case Study: Bio-Authentication and PKI Trends in Korea -FIDO Alliance -T...
FIDO Alliance
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
Roy Sugimura, Ph.D
Introduction to FIDO Alliance: Vision and Status -Tokyo Seminar -Brett McDowell
Introduction to FIDO Alliance: Vision and Status -Tokyo Seminar -Brett McDowell
FIDO Alliance
20150723 最近の興味動向 fido編
20150723 最近の興味動向 fido編
Tatsuya (達也) Katsuhara (勝原)
FIDO Authentication: Its Evolution and Opportunities in Business -FIDO Allian...
FIDO Authentication: Its Evolution and Opportunities in Business -FIDO Allian...
FIDO Alliance
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
FIDO Alliance
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
Tatsuo Kudo
エンタープライズの視点からFIDOとFederationのビジネスを考える
エンタープライズの視点からFIDOとFederationのビジネスを考える
Masaru Kurahayashi
Thin Server Architectureでブログ作った #ikam
Thin Server Architectureでブログ作った #ikam
Toshiaki Maki
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
Mais conteúdo relacionado
Destaque
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
Ryo Ito
iTree Company Profile
iTree Company Profile
rohanspatil
歴史から学ぶID 〜日本書紀から番号制度まで〜
歴史から学ぶID 〜日本書紀から番号制度まで〜
Masanori Kusunoki
OSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼン
Masanori Itoh
O Auth
O Auth
Taizo Matsuoka
Bitcoinの概要と論点
Bitcoinの概要と論点
Masanori Kusunoki
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
Hiroshi Hayakawa
Tokbind-fido
Tokbind-fido
Kaoru Maeda
Idcon gomi-052715-pub
Idcon gomi-052715-pub
Hidehito Gomi
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID Connect
Ryo Ito
W3C Presentation -FIDO Alliance -Tokyo Seminar -Smith
W3C Presentation -FIDO Alliance -Tokyo Seminar -Smith
FIDO Alliance
KICA Case Study: Bio-Authentication and PKI Trends in Korea -FIDO Alliance -T...
KICA Case Study: Bio-Authentication and PKI Trends in Korea -FIDO Alliance -T...
FIDO Alliance
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
Roy Sugimura, Ph.D
Introduction to FIDO Alliance: Vision and Status -Tokyo Seminar -Brett McDowell
Introduction to FIDO Alliance: Vision and Status -Tokyo Seminar -Brett McDowell
FIDO Alliance
20150723 最近の興味動向 fido編
20150723 最近の興味動向 fido編
Tatsuya (達也) Katsuhara (勝原)
FIDO Authentication: Its Evolution and Opportunities in Business -FIDO Allian...
FIDO Authentication: Its Evolution and Opportunities in Business -FIDO Allian...
FIDO Alliance
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
FIDO Alliance
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
Tatsuo Kudo
エンタープライズの視点からFIDOとFederationのビジネスを考える
エンタープライズの視点からFIDOとFederationのビジネスを考える
Masaru Kurahayashi
Destaque
(20)
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
iTree Company Profile
iTree Company Profile
歴史から学ぶID 〜日本書紀から番号制度まで〜
歴史から学ぶID 〜日本書紀から番号制度まで〜
OSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼン
O Auth
O Auth
Bitcoinの概要と論点
Bitcoinの概要と論点
OAuth 2.0の概要とセキュリティ
OAuth 2.0の概要とセキュリティ
Tokbind-fido
Tokbind-fido
Idcon gomi-052715-pub
Idcon gomi-052715-pub
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID Connect
W3C Presentation -FIDO Alliance -Tokyo Seminar -Smith
W3C Presentation -FIDO Alliance -Tokyo Seminar -Smith
KICA Case Study: Bio-Authentication and PKI Trends in Korea -FIDO Alliance -T...
KICA Case Study: Bio-Authentication and PKI Trends in Korea -FIDO Alliance -T...
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
Introduction to FIDO Alliance: Vision and Status -Tokyo Seminar -Brett McDowell
Introduction to FIDO Alliance: Vision and Status -Tokyo Seminar -Brett McDowell
20150723 最近の興味動向 fido編
20150723 最近の興味動向 fido編
FIDO Authentication: Its Evolution and Opportunities in Business -FIDO Allian...
FIDO Authentication: Its Evolution and Opportunities in Business -FIDO Allian...
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
エンタープライズの視点からFIDOとFederationのビジネスを考える
エンタープライズの視点からFIDOとFederationのビジネスを考える
Semelhante a Idcon 17th ritou OAuth 2.0 CSRF Protection
Thin Server Architectureでブログ作った #ikam
Thin Server Architectureでブログ作った #ikam
Toshiaki Maki
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
Azure Container Services and Microservices design pattern
Azure Container Services and Microservices design pattern
Yoshio Terada
SORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデート
SORACOM,INC
Mk vpp for-containers-vppug
Mk vpp for-containers-vppug
Miya Kohno
Kong meetup tokyo 2018.10.26 ブリスコラ
Kong meetup tokyo 2018.10.26 ブリスコラ
briscola-tokyo
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
Spring Cloud Gateway on Kubernetes
Spring Cloud Gateway on Kubernetes
Takeshi Ogawa
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
Tatsuo Kudo
ロボット管理プラットフォーム「 RoboticBase 」の紹介
ロボット管理プラットフォーム「 RoboticBase 」の紹介
Kazuki Urabe
JavaOne 2016 Report for Java EE
JavaOne 2016 Report for Java EE
Yoshio Terada
SharePoint Business Connectivity Services を使用した外部アプリケーション連携
SharePoint Business Connectivity Services を使用した外部アプリケーション連携
Atsuo Yamasaki
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
Naohiro Fujie
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Toru Yamaguchi
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
Isao Takaesu
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
fisuda
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
fisuda
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.14.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.14.0対応)
fisuda
Semelhante a Idcon 17th ritou OAuth 2.0 CSRF Protection
(20)
Thin Server Architectureでブログ作った #ikam
Thin Server Architectureでブログ作った #ikam
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Azure Container Services and Microservices design pattern
Azure Container Services and Microservices design pattern
SORCOM UG #2 | SORACOM アップデート
SORCOM UG #2 | SORACOM アップデート
Mk vpp for-containers-vppug
Mk vpp for-containers-vppug
Kong meetup tokyo 2018.10.26 ブリスコラ
Kong meetup tokyo 2018.10.26 ブリスコラ
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Spring Cloud Gateway on Kubernetes
Spring Cloud Gateway on Kubernetes
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
ロボット管理プラットフォーム「 RoboticBase 」の紹介
ロボット管理プラットフォーム「 RoboticBase 」の紹介
JavaOne 2016 Report for Java EE
JavaOne 2016 Report for Java EE
SharePoint Business Connectivity Services を使用した外部アプリケーション連携
SharePoint Business Connectivity Services を使用した外部アプリケーション連携
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.13.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.15.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.14.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 1.14.0対応)
Mais de Ryo Ito
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
Ryo Ito
idcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirect
Ryo Ito
OpenID-TechNight-11-LT-mixi
OpenID-TechNight-11-LT-mixi
Ryo Ito
Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1
Ryo Ito
OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1
Ryo Ito
Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1
Ryo Ito
BackplaneProtocol超入門
BackplaneProtocol超入門
Ryo Ito
UserManagedAccess_idcon13
UserManagedAccess_idcon13
Ryo Ito
Idcon11 implicit demo
Idcon11 implicit demo
Ryo Ito
OpenID_Connect_Spec_Demo
OpenID_Connect_Spec_Demo
Ryo Ito
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC Authentication
Ryo Ito
OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj
Ryo Ito
Ritou idcon7
Ritou idcon7
Ryo Ito
Summary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memo
Ryo Ito
Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1
Ryo Ito
0905xx Hybrid Memo
0905xx Hybrid Memo
Ryo Ito
Anonymous OAuth Test
Anonymous OAuth Test
Ryo Ito
091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou
Ryo Ito
Mais de Ryo Ito
(19)
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
idcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirect
OpenID-TechNight-11-LT-mixi
OpenID-TechNight-11-LT-mixi
Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1
OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1
Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1
BackplaneProtocol超入門
BackplaneProtocol超入門
UserManagedAccess_idcon13
UserManagedAccess_idcon13
Idcon11 implicit demo
Idcon11 implicit demo
OpenID_Connect_Spec_Demo
OpenID_Connect_Spec_Demo
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC Authentication
OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj
Ritou idcon7
Ritou idcon7
Summary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memo
Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1
0905xx Hybrid Memo
0905xx Hybrid Memo
Anonymous OAuth Test
Anonymous OAuth Test
091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou
Idcon 17th ritou OAuth 2.0 CSRF Protection
1.
OAuth2.0のCSRF対策拡張を 考えて導入した話 Ryo Ito(@ritou) 2013/11/29 #idcon Vol.17 #idcon
vol.17 1
2.
本発表の内容 • “OAuthのセキュリティ強化を目的とする拡 張仕様を導入しました” – http://alpha.mixi.co.jp/2013/12020/ #idcon
vol.17 2
3.
CSRF (Cross Site Request
Forgeries) #idcon vol.17 3
4.
CSRF脆弱性を持つ 日記投稿サービス • ユーザー認証機能あり • 投稿フォームからPOSTリクエストにより日記 コンテンツをWebサーバーに送信 •
Webサーバーは受け取ったコンテンツをログ イン中のユーザーの日記として保存、公開 #idcon vol.17 4
5.
日記投稿サービス に対するCSRF例 3. 日記投稿サービスは、悪意のある サービスからのリクエストをユーザーAの 投稿として処理 ユーザーA 日記投稿サービス 2. 悪意のあるサービスが 日記投稿サービスにリクエストを送る 1.
悪意のあるサービスに誘導される (spamメール、メッセージ、攻撃者が 投稿した日記の中のリンクなどから) #idcon vol.17 悪意のあるサービス 5
6.
リスク • ユーザーが意図しない投稿をされるおそれ • 投稿された日記に悪意のあるサービスへの 誘導用リンクが入っていたら、次から次へと... #idcon
vol.17 6
7.
日記投稿サービスがとるべき CSRF対策 • セッションIDを投稿フォームのhiddenパラメー タに含む – 攻撃者は第3者のセッションIDを知らない •
リクエストを受け取ったら、セッションIDの値を 検証する #idcon vol.17 7
8.
日記投稿サービスがとるべき CSRF対策 3. 日記投稿サービスは、リクエスト中の セッションIDとユーザーAのセッションを 検証し、不正なリクエストをブロック! ユーザーA 日記投稿サービス 2. 悪意のあるサービスが 日記投稿サービスにリクエストを送る 1.
悪意のあるサービスに誘導される (spamメール、メッセージ、攻撃者が 投稿した日記の中のリンクなどから) #idcon vol.17 悪意のあるサービス 8
9.
CSRF脆弱性を持つ ログインサーバー • ログインフォームからPOSTリクエストにより ID/パスワードをWebサーバーに送信 • Webサーバーは受け取ったID/パスワードを 検証し、有効な組み合わせであればログイン 処理を行う #idcon
vol.17 9
10.
ログインサーバー に対するCSRF例 3. ログインサーバーは、 悪意のあるサービスからのリクエストを ユーザーAのログイン試行として処理 ログインサーバー 2. 悪意のあるサービスが ログインサーバーに攻撃者の ID/PWを送る ユーザーA 1.
悪意のあるサービスに誘導 #idcon vol.17 悪意のあるサービス 10
11.
リスク • 攻撃者のアカウントとしてログインさせられて しまう • その後、気付かずに保存したデータなどに攻 撃者からアクセスされる可能性 –
プライベートな画像 – 住所情報 – クレジットカード情報など #idcon vol.17 11
12.
ログインサーバーがとるべき CSRF対策も同じ • セッションIDをログインフォームのhiddenパラ メータに含む – 攻撃者は第3者のセッションIDを知らない •
リクエストを受け取ったら、セッションIDの値を 検証する #idcon vol.17 12
13.
ここまでは一般的な話 • Web Application
Frameworkで対策されてい るものもある #idcon vol.17 13
14.
OAuth 2.0とCSRF • 認可フローにおけるCSRFのリスクとは •
まずは認可フローの復習から #idcon vol.17 14
15.
Client ユーザーA Server 0. 認可処理開始 1. 認可要求 2.
リソースアクセスを許可 3. 認可応答 認可コード ユーザーAの セッションに 紐付く OAuth 2.0の認可フロー 4.アクセストークン 取得 認可コード アクセストークン 15
16.
OAuth 2.0におけるCSRF • 第3者(もしくは第3者のセッション)に攻撃者の アクセストークンを紐づけさせようとする攻撃 •
標的となるユーザーのセッション上で自らの 認可応答をClientに渡す #idcon vol.17 16
17.
標的 攻撃者 ユーザーB ユーザーA Client Server 0. 認可処理開始 1. 認可要求 認可応答を ユーザーBの セッションで 処理させる 2.
リソースアクセスを許可 3. 認可応答 認可コード ユーザーAの アクセストークンが ユーザーBの セッションに紐付く 4.アクセストークン 取得 認可コード アクセストークン OAuth 2.0の認可フローにおけるCSRF 17
18.
リスクはログインのCSRFと同等 • その後のAPIアクセスで取り扱われるデータ はServerにとっては攻撃者のものとなる • OAuthを認証に使っている場合は攻撃者に アカウントを乗っ取られる可能性もある •
攻撃者としては認可応答のURLを他人のブ ラウザで実行されるだけでよい #idcon vol.17 18
19.
stateパラメータによる対策 • Clientがセッションに紐づくstateパラメータを 生成 • Clientがstateパラメータを認可要求に指定 •
Serverが認可応答にstateパラメータを指定 • Clientがstateパラメータとセッションの整合性 を検証してからトークンを取得する #idcon vol.17 19
20.
Client ユーザーA 0. 認可処理開始 1. 認可要求 Server ユーザーAの セッションに 紐付くstateを 払い出す state 2.
リソースアクセスを許可 3. 認可応答 認可要求に 含まれるstateを そのまま指定 認可コード state stateがユーザーAの セッションに紐づくことを 検証 -> 成功 4.アクセストークン 取得 認可コード アクセストークン OAuth 2.0の認可フロー(stateパラメータあり) 20
21.
標的 攻撃者 ユーザーB ユーザーA Client 0. 認可処理開始 1. 認可要求 Server ユーザーAの セッションに 紐付くstateを 払い出す state 認可応答を ユーザーBの セッションで 処理させる 2.
リソースアクセスを許可 3. 認可応答 認可コード state stateが ユーザーBの セッションに 紐づくことを 検証 -> 失敗 OAuth 2.0の認可フローにおけるCSRF (stateパラメータあり) 21
22.
Clientの実装に依存 • Clientがセッションに紐づくstateパラメータを 生成 • Clientがstateパラメータを認可要求に指定 •
Serverが認可応答にstateパラメータを指定 • Clientがstateパラメータとセッションの整合性 を検証してからトークンを取得する #idcon vol.17 22
23.
Clientの実装をどう信用するか • 認可要求にstateパラメータつけないかも • 認可要求にstateパラメータがついてきても、 セッションに関係しない値を利用してるかも •
認可要求にstateパラメータがついてきても、 認可応答の値を検証してないかも これらをServer側で動的に確認することは困難 #idcon vol.17 23
24.
Server側で対策をとれる拡張 • Serverがserver_stateパラメータを生成 • Clientがserver_stateパラメータをセッション に紐づけ、認可要求に指定 •
Serverが認可コードにserver_stateパラメー タを紐付け、認可応答には含まない • Clientはセッションに紐づくserver_stateを認 可コードとともに送り、トークンを要求する • Serverは認可コードとserver_stateを検証 #idcon vol.17 24
25.
Client ユーザーA 0. 認可処理開始 セッションと server_stateを 紐付け Server 1. server_state取得 server_state 2.
認可要求 server_state 3. リソースアクセスを許可 4. 認可応答 認可コード セッションと紐づく server_state を指定 5.アクセストークン 取得 認可コード 認可コードと server_stateを 紐付け 認可コードと server_stateの 検証に成功 server_state アクセストークン OAuth 2.0の認可フロー(server_stateパラメータあり) 25
26.
標的 攻撃者 ユーザーB ユーザーA Client 0. 認可処理開始 セッションと server_stateを 紐付け Server 1. server_state取得 server_state 2.
認可要求 認可応答を ユーザーBの セッションで 処理させる server_state 3. リソースアクセスを許可 4. 認可応答 認可コード ユーザーBの セッションと紐づく 5.アクセストークン 取得 認可コード server_state server_state を指定 OAuth 2.0の認可フローにおけるCSRF (server_stateパラメータあり) 認可コードと server_stateの 検証に失敗 26
27.
ポイント • Clientが実装を省略できない – server_stateをセッションと紐付けて管理しなけ ればアクセストークンを取得できない #idcon
vol.17 27
28.
ネイティブアプリへの適用 • Client Credentialが安全に管理できない状況 における”認可応答の奪取”の問題 割愛 –
redirect_uriを被せて認可応答を受け取る手口 • Authorization Code Grant + server_stateを 利用することで、認可要求を作成したClient のみがトークンを取得できる – Client Secretは空でよい #idcon vol.17 28
29.
導入状況 • OAuth 2.0の認可を利用するしくみに導入 –
mixi Graph API/mixiアプリ/mixiページアプリ • 既存のClientへの影響から、server_stateパ ラメータの利用は任意 • API(scope)単位で必須化を検討中 – お金や大事な情報を扱うAPIへの認可 – 認証連携のためのAPIへの認可 #idcon vol.17 29
30.
まとめ • 既存のstateパラメータによる対策に課題を感 じていた • server_stateを用いた拡張を導入した •
この拡張の利用はOpenID Connect用の scopeなどで必須化したい #idcon vol.17 30
31.
終わり • • • • • Ryo Ito (@ritou) 株式会社ミクシィ OIDF-J
エヴァンジェリスト : http://openid.or.jp/ Blog : http://d.hatena.ne.jp/ritou/ Gihthub : https://github.com/ritou #idcon vol.17 31
Baixar agora