Submit Search
Upload
OAuth 2.0の概要とセキュリティ
•
47 likes
•
18,852 views
Hiroshi Hayakawa
Follow
OAuth 2.0の概要とセキュリティについて。 個人的に勉強した内容をまとめたものですが、これをベースに会社の勉強会も開催したり。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 35
Download now
Download to read offline
Recommended
KeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについて
Hiroyuki Wada
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi
とある診断員とAWS
とある診断員とAWS
zaki4649
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
Tatsuo Kudo
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
Tatsuo Kudo
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
TAKUYA OHTA
Recommended
KeycloakのDevice Flow、CIBAについて
KeycloakのDevice Flow、CIBAについて
Hiroyuki Wada
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi
とある診断員とAWS
とある診断員とAWS
zaki4649
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
Tatsuo Kudo
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
Tatsuo Kudo
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
zaki4649
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
IT エンジニアのための 流し読み Windows 10 - Windows Hello for Business
TAKUYA OHTA
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
カジュアルにVPC作った結果がこれだよ!
カジュアルにVPC作った結果がこれだよ!
Emma Haruka Iwao
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
Tatsuo Kudo
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
abend_cve_9999_0001
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
Masatoshi Tada
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
FIDO認証によるパスワードレスログイン実装入門
FIDO認証によるパスワードレスログイン実装入門
Yahoo!デベロッパーネットワーク
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
Masaru Kurahayashi
OpenID Connect入門
OpenID Connect入門
土岐 孝平
Keycloakの最近のトピック
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
Keycloak入門
Keycloak入門
Hiroyuki Wada
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
OpenID Foundation Japan
今更聞けないOAuth2.0
今更聞けないOAuth2.0
Takahiro Sato
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
XSS再入門
XSS再入門
Hiroshi Tokumaru
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
Azureの学習にオススメな動画コンテンツまとめ.pptx
Azureの学習にオススメな動画コンテンツまとめ.pptx
mizuhiro
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
Tatsuo Kudo
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
Tatsuo Kudo
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
More Related Content
What's hot
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
カジュアルにVPC作った結果がこれだよ!
カジュアルにVPC作った結果がこれだよ!
Emma Haruka Iwao
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
Tatsuo Kudo
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
abend_cve_9999_0001
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
Masatoshi Tada
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
FIDO認証によるパスワードレスログイン実装入門
FIDO認証によるパスワードレスログイン実装入門
Yahoo!デベロッパーネットワーク
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
Masaru Kurahayashi
OpenID Connect入門
OpenID Connect入門
土岐 孝平
Keycloakの最近のトピック
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
Keycloak入門
Keycloak入門
Hiroyuki Wada
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
OpenID Foundation Japan
今更聞けないOAuth2.0
今更聞けないOAuth2.0
Takahiro Sato
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
Hitachi, Ltd. OSS Solution Center.
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
Nov Matake
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
XSS再入門
XSS再入門
Hiroshi Tokumaru
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
Azureの学習にオススメな動画コンテンツまとめ.pptx
Azureの学習にオススメな動画コンテンツまとめ.pptx
mizuhiro
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
Tatsuo Kudo
What's hot
(20)
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
カジュアルにVPC作った結果がこれだよ!
カジュアルにVPC作った結果がこれだよ!
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
FIDO認証によるパスワードレスログイン実装入門
FIDO認証によるパスワードレスログイン実装入門
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
OpenID Connect入門
OpenID Connect入門
Keycloakの最近のトピック
Keycloakの最近のトピック
Keycloak入門
Keycloak入門
OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
今更聞けないOAuth2.0
今更聞けないOAuth2.0
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
XSS再入門
XSS再入門
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Azureの学習にオススメな動画コンテンツまとめ.pptx
Azureの学習にオススメな動画コンテンツまとめ.pptx
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
Similar to OAuth 2.0の概要とセキュリティ
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
Tatsuo Kudo
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
Naohiro Fujie
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
Tatsuo Kudo
FIWARE の ID 管理、アクセス制御、API 管理
FIWARE の ID 管理、アクセス制御、API 管理
fisuda
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
Naohiro Fujie
OAuth2.0について
OAuth2.0について
iPride Co., Ltd.
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
Naohiro Fujie
How FIDO Works
How FIDO Works
Keiko Itakura
CLT-009_Windows 10 アプリとシングルサインオン ~Microsoft Passport の意義とその実装方法~
CLT-009_Windows 10 アプリとシングルサインオン ~Microsoft Passport の意義とその実装方法~
decode2016
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
Moriyoshi Koizumi
OCHaCafe#5 - 避けては通れない!認証・認可
OCHaCafe#5 - 避けては通れない!認証・認可
オラクルエンジニア通信
O Auth
O Auth
Taizo Matsuoka
100121 Scis2010 Itoh
100121 Scis2010 Itoh
Hiroki Itoh
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
Yoko TAMADA
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
0905xx Hybrid Memo
0905xx Hybrid Memo
Ryo Ito
クラウドセキュリティ 誤解と事実の壁
クラウドセキュリティ 誤解と事実の壁
KVH Co. Ltd.
PFI Seminar 2012/02/24
PFI Seminar 2012/02/24
Preferred Networks
Similar to OAuth 2.0の概要とセキュリティ
(20)
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
FIWARE の ID 管理、アクセス制御、API 管理
FIWARE の ID 管理、アクセス制御、API 管理
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
OAuth2.0について
OAuth2.0について
OAuth2.0によるWeb APIの保護
OAuth2.0によるWeb APIの保護
How FIDO Works
How FIDO Works
CLT-009_Windows 10 アプリとシングルサインオン ~Microsoft Passport の意義とその実装方法~
CLT-009_Windows 10 アプリとシングルサインオン ~Microsoft Passport の意義とその実装方法~
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
OCHaCafe#5 - 避けては通れない!認証・認可
OCHaCafe#5 - 避けては通れない!認証・認可
O Auth
O Auth
100121 Scis2010 Itoh
100121 Scis2010 Itoh
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
0905xx Hybrid Memo
0905xx Hybrid Memo
クラウドセキュリティ 誤解と事実の壁
クラウドセキュリティ 誤解と事実の壁
PFI Seminar 2012/02/24
PFI Seminar 2012/02/24
More from Hiroshi Hayakawa
Kubernetes × 可用性 -- cndjp第3回勉強会
Kubernetes × 可用性 -- cndjp第3回勉強会
Hiroshi Hayakawa
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回
Hiroshi Hayakawa
Kubernetes ときどき Serverless -- cndjp第1回勉強会
Kubernetes ときどき Serverless -- cndjp第1回勉強会
Hiroshi Hayakawa
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
Hiroshi Hayakawa
Fn project爆誕
Fn project爆誕
Hiroshi Hayakawa
Apiのことはすべてシーマンが教えてくれた
Apiのことはすべてシーマンが教えてくれた
Hiroshi Hayakawa
Api gatewayの話
Api gatewayの話
Hiroshi Hayakawa
Oracleがnode.jsをやり始めたというのだが!
Oracleがnode.jsをやり始めたというのだが!
Hiroshi Hayakawa
More from Hiroshi Hayakawa
(8)
Kubernetes × 可用性 -- cndjp第3回勉強会
Kubernetes × 可用性 -- cndjp第3回勉強会
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes in プロダクション! -- cndjp第2回
Kubernetes ときどき Serverless -- cndjp第1回勉強会
Kubernetes ときどき Serverless -- cndjp第1回勉強会
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
Fn project爆誕
Fn project爆誕
Apiのことはすべてシーマンが教えてくれた
Apiのことはすべてシーマンが教えてくれた
Api gatewayの話
Api gatewayの話
Oracleがnode.jsをやり始めたというのだが!
Oracleがnode.jsをやり始めたというのだが!
Recently uploaded
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Recently uploaded
(9)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
OAuth 2.0の概要とセキュリティ
1.
OAuth 2.0 の概要とセキュリティ 2013/12/27
2.
OAuth 2.0 概要
3.
OAuthとは • あるサービス(SP:Service Provider)が提供するAPIへのアクセ ス権を、他のサービス(Consumer)に与えるためのプロトコル
• アクセス権限の付与のためのプロトコルであって、認証のた めのプロトコルではない • アイデンティティ関連の各種技術が依って立つプロトコル (OAuth 2.0) – OpenID Connect:認証、フェデレーション – SCIM:プロビジョニング – UMA:アクセス権制御 ※ SCIM: System for Cross-‐domain IdenGty Management ※ UMA: User Managed Access
4.
OAuthとは • OAuth 2.0
は 2012年10月にRFCに – RFC 6749 -‐ The OAuth 2.0 AuthorizaGon Framework – RFC 6750 -‐ The OAuth 2.0 AuthorizaGon Framework: Bearer Token Usage – RFC 6819 -‐ The OAuth 2.0 Threat Model and Security ConsideraGons • 数々のメジャーなサービスで実装されている(2013年7月時点) – OAuth 2.0 • • • • Facebook Google GitHub LinkedIn – OAuth 1.0 • TwiZer
5.
登場人物 リソースを登録(サービスを利用) Resource Owner サービスを利用 SP: Service
Provider (Resource Server + Authoriza5on Server) APIを利用 (リソースの取得など) Consumer Consumerに、SPのAPIへの (OAuth Client) アクセス権を与えたい (セキュアな方法で)
6.
UX Consumerにログイン SPを選択
7.
UX SPにログイン 同意画面で、 ConsumerにSPへのアク
セス権限を与える この例では別の機能に 関する同意画面も出る
8.
OAuth 2.0のフロー • AuthorizaGon
Code Grant(認可コードグラント) – client_secretを秘密にできる(=リバースエンジニアリングされる 危険がない)Consumerの場合に利用する • つまりWebアプリケーションのこと • Implicit Grant(インプリシットグラント) – client_secretを秘密にできないクライアント(=リバースエンジニア リングの危険がある)Consumerの場合に利用する • ブラウザ上で実行される(JavaScript、Flash...)アプリケーション • モバイルアプリ – SCIMの文脈では、Consumerがファイアウォール内に存在する場 合にも利用される
9.
AuthorizaGon Code Grant
(認可コードグラント)
10.
AuthorizaGon Code Grant
(認可コードグラント)
11.
AuthorizaGon Code Grant
(認可コードグラント)
12.
Implicit Grant (インプリシットグラント)
13.
Implicit Grant (インプリシットグラント)
14.
Implicit Grant (インプリシットグラント)
15.
OAuth 2.0 セキュリティ上の考慮事項
16.
攻撃例(1) Consumerの偽装 • 攻撃手法
– Consumerの検証の不備があるSPを狙う – 攻撃用のConsumerを立てて、正当なConsumerとしてSPに認可 トークンを発行させる • 対策 – AuthorizaGon Code Grantの場合 • 事前にConsumerに対しクレデンシャル(Client Secret)を発行し、アクセス トークン発行前にConsumerを認証する – Implicit Grantの場合 • アクセストークンリクエストで使用するredirect_uriを事前にSPに登録して おき、アクセストークン発行前にredirect_uriが正当であることを確認す る(MUST) • Resource OwnerによるConsumerの確認を行うなどのステップを設けて も良い
17.
攻撃例(2) redirect_uriの改ざん • 攻撃手法
– 対象の環境 • redirect_uriの事前登録は行わない(認可リクエスト中のredirect_uriパラメータ をつかって、redirect_uriを渡す) • ↑ つまり、フローはAuthorizaGon Code Grant (Implicit Grantでは、redirect_uriの事前登録は必須) – 手順 1) 2) 3) 4) 5) 攻撃者は、正当なConsumerを使って認可リクエストを発行し、そのURIを取得 する 1)のURIのredirect_uriパラメータを罠サイトのURIに差し替えたものを用意す る 1)のURIのredirect_uriパラメータを保存しておく 攻撃者は、被害者を騙して 2)のURIのリンクをクリックさせる →被害者はSPと認証、認可操作を行い、罠サイトにリダイレクトされる 罠サイトは、3)で保持した正規のredirect_uriを使って、アクセストークンリクエ ストを発行する →罠サイトに対してアクセストークンが発行される
18.
攻撃例(2) redirect_uriの改ざん
19.
攻撃例(2) redirect_uriの改ざん • 対策
– SPで、認可リクエスト中のredirect_uriと、アクセストー クンリクエスト中のredirect_uriが一致することを検証 する(MUST) – redirect_uriがSPに事前登録される場合(SHOULD)、各 リクエスト中のredirect_uriと、登録されたredirect_uri の一致を確認することも有効 • RFC上の該当記述 – 10.6. AuthorizaGon Code RedirecGon URI ManipulaGon
20.
攻撃例(3) CSRF • 攻撃手法
– 手順 1) 攻撃者は、通常の手順で、SPでの認可までを行う 2) 認可後のリダイレクト先のURLを取得して、被害者にアク セスさせる → 攻撃者の認可トークンを被害者に使わせた状態で、 Consumerにアクセスさせる → Consumerを操作すると、攻撃者としてSPのAPIが実 行される
21.
攻撃例(3) CSRF
22.
攻撃例(3) CSRF • 対策
– “state”パラメータにより、認可リクエストとアクセストー クンリクエストが同じセッションで行われていることを チェックする • RFC上の該当記述 – 10.12. Cross-‐Site Request Forgery • 参考 – 「OAuthのセキュリティ強化を目的とする拡張仕様を導 入しました」hZp://alpha.mixi.co.jp/2013/12020/
23.
攻撃例(4) オープンリダイレクタ • 攻撃手法
– 対象の環境 • Consumerの検証をredirect_uriの事前登録に依存している • redirect_uriの登録をURIの一部のみで許可している – 手順 1) 攻撃者は、redirect_uriの一部を、正当なConsumerと共有する (正当性のチェックを通過できる)ようなConsumerを作成する 2) redirect_uriを攻撃用のConsumerのURIに差し替えた、認可リク エストURIを作成する 3) 攻撃者は、被害者を騙して 2)のURIのリンクをクリックさせる 4) 被害者は認証、認可操作を行う → 認可コード or アクセストークンが攻撃用のConsumerに送信され る
24.
攻撃例(4) オープンリダイレクタ
25.
攻撃例(4) オープンリダイレクタ • 対策
– AuthorizaGon Code Grantの場合 • client_id / client_secretを用いた認証など、redirect_uri に依存しないConsumer検証を行う – Implicit Grantの場合 • 事前登録するredirect_uriとして、URI全体を用いる • RFC上の該当記述 – 10.15. オープンリダイレクタ
26.
攻撃例(5) Implicit Grantにおけるトークン不正利用 •
攻撃手法 – 対象の環境 • Implicit Grantを利用しているConsumerで、OAuth 2.0のアクセストークン をリソースオーナーの認証に使用しているもの – 手順 1) 攻撃者は、攻撃対象のConsumerと同じSPを利用するConsumer(不正 Consumer)を作成する 2) 被害者が不正Consumerにアクセスし、これに対するアクセストークン を発行する 3) 攻撃者は、2)のアクセストークンを取得する 4) 攻撃者は、攻撃対象のConsumerにアクセスし、SPでの認証・認可操 作を行う 5) 攻撃対象のConsumerにリダイレクトされる際に、リクエスト中のアクセ ストークンを2)で取得したものに差し替える → 攻撃者は、被害者として、攻撃対象のConsumerにログインする
27.
攻撃例(5) Implicit Grantにおけるトークン不正利用
28.
攻撃例(5) Implicit Grantにおけるトークン不正利用
29.
攻撃例(5) Implicit Grantにおけるトークン不正利用 •
対策 – OAuth 2.0のアクセストークンを、認証に使わない → OAuthは認可のプロトコル。認証にはOpenIDを使用する • RFC上の該当記述 – 10.16. インプリシットフローにおけるリソースオーナーなり すましのためのアクセストークン不正利用 • 参考 – 「単なる OAuth 2.0 を認証に使うと、車が通れるほどのど でかいセキュリティー・ホールができる」 hZp://www.sakimura.org/2012/02/1487/
30.
他 • ここまでに示したもの以外にも、セキュリティ上の考 慮事項は大小多岐にわたる •
実装者はRFCを参照すべし – 「The OAuth 2.0 AuthorizaGon Protocol -‐ RFC 6749 10. Security ConsideraGons」 → Oauth 2.0仕様が定める考慮事項 – 「OAuth 2.0 Threat Model and Security ConsideraGons -‐ RFC 6819」 → Oauth 2.0仕様の範囲を超え、さらなるセキュ リティ上の検討項目を提示
31.
参考資料一覧
32.
OAuth 2.0 参考資料 •
入門編 – @IT 「デジタル・アイデンティティ技術最新動向」シ リーズ • 「第1回 「OAuth」の基本動作を知る」 hZp://www.atmarkit.co.jp/fsecurity/rensai/ digid01/01.html • 「第2回 RFCとなった「OAuth 2.0」――その要点は?」 hZp://www.atmarkit.co.jp/ait/arGcles/1209/10/ news105.html
33.
OAuth 2.0 参考資料 •
発展編① – OAuth 2.0 のRFCの日本語翻訳 • 「The OAuth 2.0 AuthorizaGon Protocol -‐ RFC 6749」 hZp://openid-‐foundaGon-‐japan.github.com/rfc6749.ja.html • 「The OAuth 2.0 AuthorizaGon Framework: Bearer Token Usage -‐ RFC 6750」 hZp://openid-‐foundaGon-‐japan.github.com/rfc6750.ja.html • 「OAuth 2.0 Threat Model and Security ConsideraGons -‐ RFC 6819」 hZp://openid-‐foundaGon-‐japan.github.com/rfc6819.ja.html – 書籍 • 「Gehng Started With OAuth 2.0 / Ryan Boyd(著)」 hZp://www.amazon.co.jp/dp/1449311601/
34.
OAuth 2.0 参考資料 •
発展編② – 主要サービスのAPIドキュメント • Facebook hZps://developers.facebook.com/docs/authenGcaGon/ • Google hZps://developers.google.com/accounts/docs/OAuth2 • GitHub hZp://developer.github.com/v3/oauth/ • LinedIn hZps://developer.linkedin.com/documents/authenGcaGon • TwiZer(OAuth 1.0) hZps://dev.twiZer.com/docs/auth/oauth
35.
OAuth 2.0 • マニアック編
– 仕様策定や、実装に関わっている人たちのブログ • 「OpenID ファウンデーション・ジャパン」(OpenID ファウ ンデーション・ジャパンの公式ブログ) hZp://blog.openid.or.jp/ • 「r-‐weblife」(mixiのエンジニア) hZp://d.hatena.ne.jp/ritou/ • 「.Nat Zone」(米国OpenID FoundaGon理事長) hZp://www.sakimura.org/
Download now