Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hitachi, Ltd. OSS Solution Center.
PPTX, PDF
1,223 views
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
CloudNative Days Tokyo 2022
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Downloaded 23 times
1
/ 63
2
/ 63
3
/ 63
Most read
4
/ 63
5
/ 63
6
/ 63
7
/ 63
8
/ 63
9
/ 63
10
/ 63
11
/ 63
12
/ 63
13
/ 63
14
/ 63
15
/ 63
16
/ 63
17
/ 63
18
/ 63
19
/ 63
20
/ 63
21
/ 63
22
/ 63
23
/ 63
24
/ 63
25
/ 63
26
/ 63
27
/ 63
28
/ 63
29
/ 63
30
/ 63
31
/ 63
32
/ 63
33
/ 63
34
/ 63
35
/ 63
36
/ 63
37
/ 63
38
/ 63
39
/ 63
40
/ 63
41
/ 63
42
/ 63
43
/ 63
44
/ 63
45
/ 63
46
/ 63
47
/ 63
48
/ 63
49
/ 63
50
/ 63
51
/ 63
52
/ 63
Most read
53
/ 63
54
/ 63
55
/ 63
56
/ 63
57
/ 63
Most read
58
/ 63
59
/ 63
60
/ 63
61
/ 63
62
/ 63
63
/ 63
More Related Content
PPTX
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
PDF
Keycloak拡張入門
by
Hiroyuki Wada
PPTX
Keycloak入門
by
Hiroyuki Wada
PDF
OpenID Connect入門
by
土岐 孝平
PDF
認証の課題とID連携の実装 〜ハンズオン〜
by
Masaru Kurahayashi
PDF
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
by
Nov Matake
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PDF
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
by
富士通クラウドテクノロジーズ株式会社
KeycloakでAPI認可に入門する
by
Hitachi, Ltd. OSS Solution Center.
Keycloak拡張入門
by
Hiroyuki Wada
Keycloak入門
by
Hiroyuki Wada
OpenID Connect入門
by
土岐 孝平
認証の課題とID連携の実装 〜ハンズオン〜
by
Masaru Kurahayashi
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
by
Nov Matake
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
by
富士通クラウドテクノロジーズ株式会社
What's hot
PPTX
Keycloakのステップアップ認証について
by
Hitachi, Ltd. OSS Solution Center.
PPTX
NGINXをBFF (Backend for Frontend)として利用した話
by
Hitachi, Ltd. OSS Solution Center.
PDF
Keycloakの最近のトピック
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Keycloak入門-OpenID ConnectによるAPIセキュリティ
by
Yuichi Nakamura
PPTX
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
by
Hitachi, Ltd. OSS Solution Center.
PDF
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
by
Naoki Nagazumi
PDF
KeycloakのDevice Flow、CIBAについて
by
Hiroyuki Wada
PDF
これからのネイティブアプリにおけるOpenID Connectの活用
by
Masaru Kurahayashi
PDF
IDガバナンス&管理の基礎
by
Hitachi, Ltd. OSS Solution Center.
PDF
Fido認証概要説明
by
FIDO Alliance
PDF
FIDO認証によるパスワードレスログイン実装入門
by
Yahoo!デベロッパーネットワーク
PDF
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
by
Tatsuo Kudo
PDF
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
by
Masaru Kurahayashi
PPTX
Keycloakの実際・翻訳プロジェクト紹介
by
Hiroyuki Wada
PPTX
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
by
NTT DATA Technology & Innovation
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
PDF
BuildKitの概要と最近の機能
by
Kohei Tokunaga
PDF
Keycloak & midPoint の紹介
by
Hiroyuki Wada
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
Keycloakのステップアップ認証について
by
Hitachi, Ltd. OSS Solution Center.
NGINXをBFF (Backend for Frontend)として利用した話
by
Hitachi, Ltd. OSS Solution Center.
Keycloakの最近のトピック
by
Hitachi, Ltd. OSS Solution Center.
Keycloak入門-OpenID ConnectによるAPIセキュリティ
by
Yuichi Nakamura
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
by
Hitachi, Ltd. OSS Solution Center.
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
by
Naoki Nagazumi
KeycloakのDevice Flow、CIBAについて
by
Hiroyuki Wada
これからのネイティブアプリにおけるOpenID Connectの活用
by
Masaru Kurahayashi
IDガバナンス&管理の基礎
by
Hitachi, Ltd. OSS Solution Center.
Fido認証概要説明
by
FIDO Alliance
FIDO認証によるパスワードレスログイン実装入門
by
Yahoo!デベロッパーネットワーク
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
by
Tatsuo Kudo
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
by
Masaru Kurahayashi
Keycloakの実際・翻訳プロジェクト紹介
by
Hiroyuki Wada
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
by
NTT DATA Technology & Innovation
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
BuildKitの概要と最近の機能
by
Kohei Tokunaga
Keycloak & midPoint の紹介
by
Hiroyuki Wada
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
Similar to KeycloakでFAPIに対応した高セキュリティなAPIを公開する
PPTX
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
by
Hitachi, Ltd. OSS Solution Center.
PDF
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
by
Tatsuo Kudo
PDF
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
by
Tatsuo Kudo
PDF
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
by
Tatsuo Kudo
PDF
OAuth2.0によるWeb APIの保護
by
Naohiro Fujie
PPTX
FAPI and beyond - よりよいセキュリティのために
by
Nat Sakimura
PPTX
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
by
Hitachi, Ltd. OSS Solution Center.
PPTX
FIWARE の ID 管理、アクセス制御、API 管理
by
fisuda
PDF
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
by
Nat Sakimura
PDF
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
by
Tatsuo Kudo
PDF
Authentication and Authorization of The Latest Keycloak
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Keycloakの紹介と最新開発動向
by
Yuichi Nakamura
PDF
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
by
Hitachi, Ltd. OSS Solution Center.
PPTX
FIWARE アーキテクチャの保護 - FIWARE WednesdayWebinars
by
fisuda
PDF
Financial-grade API Hands-on with Authlete
by
Tatsuo Kudo
PPTX
【日商USA】webinar 2023.5.12 RSAカンファレンス2023 フィードバック
by
Sojitz Tech-Innovation USA
PDF
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
by
Tatsuo Kudo
PDF
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
by
FinTechLabs.io
PDF
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
by
Tatsuo Kudo
PDF
A security study on Raspberry pi version 0.2
by
Kiyoshi Ogawa
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
by
Hitachi, Ltd. OSS Solution Center.
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
by
Tatsuo Kudo
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
by
Tatsuo Kudo
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
by
Tatsuo Kudo
OAuth2.0によるWeb APIの保護
by
Naohiro Fujie
FAPI and beyond - よりよいセキュリティのために
by
Nat Sakimura
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
by
Hitachi, Ltd. OSS Solution Center.
FIWARE の ID 管理、アクセス制御、API 管理
by
fisuda
金融 API 時代のセキュリティ: OpenID Financial API (FAPI) WG
by
Nat Sakimura
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
by
Tatsuo Kudo
Authentication and Authorization of The Latest Keycloak
by
Hitachi, Ltd. OSS Solution Center.
Keycloakの紹介と最新開発動向
by
Yuichi Nakamura
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み
by
Hitachi, Ltd. OSS Solution Center.
FIWARE アーキテクチャの保護 - FIWARE WednesdayWebinars
by
fisuda
Financial-grade API Hands-on with Authlete
by
Tatsuo Kudo
【日商USA】webinar 2023.5.12 RSAカンファレンス2023 フィードバック
by
Sojitz Tech-Innovation USA
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
by
Tatsuo Kudo
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
by
FinTechLabs.io
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
by
Tatsuo Kudo
A security study on Raspberry pi version 0.2
by
Kiyoshi Ogawa
More from Hitachi, Ltd. OSS Solution Center.
PDF
KubeConRecap_nakamura.pdf
by
Hitachi, Ltd. OSS Solution Center.
PPTX
NGINXでの認可について考える
by
Hitachi, Ltd. OSS Solution Center.
PDF
Guide of authentication and authorization for cloud native applications with ...
by
Hitachi, Ltd. OSS Solution Center.
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Challenge to Implementing "Scalable" Authorization with Keycloak
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Security Considerations for API Gateway Aggregation
by
Hitachi, Ltd. OSS Solution Center.
PDF
KubeCon + CloudNativeCon North America セキュリティ周りrecap
by
Hitachi, Ltd. OSS Solution Center.
PDF
Securing AI Agent Infrastructure: AuthN/AuthZ Patterns for MCP and A2A
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Why Assertion-based Access Token is preferred to Handle-based one?
by
Hitachi, Ltd. OSS Solution Center.
PDF
Secure Authorization for Agentic AI in Multi-Domain Environments
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Mastering Authorization: Integrating Authentication and Authorization Data in...
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Exploring Best Practices for Implementing Authn and Authz in a Cloud-Native E...
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Hitachi’s Keycloak Journey - Evolution of Business and Community
by
Hitachi, Ltd. OSS Solution Center.
PPTX
What API Specifications and Tools Help Engineers to Construct a High-Security...
by
Hitachi, Ltd. OSS Solution Center.
PPTX
How Does a Workload Authenticate an API Request?: Implementing Transaction To...
by
Hitachi, Ltd. OSS Solution Center.
PDF
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
by
Hitachi, Ltd. OSS Solution Center.
PPTX
Securing Model Context Protocol with Keycloak: AuthN/AuthZ for MCP Servers
by
Hitachi, Ltd. OSS Solution Center.
PDF
Exploring Best Practice for Implementing Authn and Authz in a Cloud-Native En...
by
Hitachi, Ltd. OSS Solution Center.
PPTX
CloudNativeSecurityCon North America 2024 Overview
by
Hitachi, Ltd. OSS Solution Center.
PDF
Let’s Join Cloud Native Computing Foundation TAG Security APAC!
by
Hitachi, Ltd. OSS Solution Center.
KubeConRecap_nakamura.pdf
by
Hitachi, Ltd. OSS Solution Center.
NGINXでの認可について考える
by
Hitachi, Ltd. OSS Solution Center.
Guide of authentication and authorization for cloud native applications with ...
by
Hitachi, Ltd. OSS Solution Center.
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
by
Hitachi, Ltd. OSS Solution Center.
Challenge to Implementing "Scalable" Authorization with Keycloak
by
Hitachi, Ltd. OSS Solution Center.
Security Considerations for API Gateway Aggregation
by
Hitachi, Ltd. OSS Solution Center.
KubeCon + CloudNativeCon North America セキュリティ周りrecap
by
Hitachi, Ltd. OSS Solution Center.
Securing AI Agent Infrastructure: AuthN/AuthZ Patterns for MCP and A2A
by
Hitachi, Ltd. OSS Solution Center.
Why Assertion-based Access Token is preferred to Handle-based one?
by
Hitachi, Ltd. OSS Solution Center.
Secure Authorization for Agentic AI in Multi-Domain Environments
by
Hitachi, Ltd. OSS Solution Center.
Mastering Authorization: Integrating Authentication and Authorization Data in...
by
Hitachi, Ltd. OSS Solution Center.
Exploring Best Practices for Implementing Authn and Authz in a Cloud-Native E...
by
Hitachi, Ltd. OSS Solution Center.
Hitachi’s Keycloak Journey - Evolution of Business and Community
by
Hitachi, Ltd. OSS Solution Center.
What API Specifications and Tools Help Engineers to Construct a High-Security...
by
Hitachi, Ltd. OSS Solution Center.
How Does a Workload Authenticate an API Request?: Implementing Transaction To...
by
Hitachi, Ltd. OSS Solution Center.
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
by
Hitachi, Ltd. OSS Solution Center.
Securing Model Context Protocol with Keycloak: AuthN/AuthZ for MCP Servers
by
Hitachi, Ltd. OSS Solution Center.
Exploring Best Practice for Implementing Authn and Authz in a Cloud-Native En...
by
Hitachi, Ltd. OSS Solution Center.
CloudNativeSecurityCon North America 2024 Overview
by
Hitachi, Ltd. OSS Solution Center.
Let’s Join Cloud Native Computing Foundation TAG Security APAC!
by
Hitachi, Ltd. OSS Solution Center.
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
1.
© Hitachi, Ltd.
2022. All rights reserved. KeycloakでFAPIに対応した高セキュリティなAPIを公開する CloudNative Days Tokyo 2022 株式会社 日立製作所 田畑 義之
2.
1 © Hitachi, Ltd.
2022. All rights reserved. 自己紹介 田畑 義之 (たばた よしゆき) 株式会社 日立製作所 アーキテクチャセンタ ソフトウェアエンジニア GitHub: @y-tabata • 認証認可やAPI関連分野のソリューション開発&コンサルティング 金融、公共、社会、産業分野における API管理基盤や認証認可システムの導入支援 • 認証認可・API管理関連のOSSへのコントリビュート Keycloak (IAMのOSS) 3scale (API管理のOSS) • 情報発信 Keycloak書籍 ThinkIT/@ITでのWeb記事連載 Apidays/OAuth Security Workshop/CloudNative Daysなど、国内外のイベントでの登壇
3.
2 © Hitachi, Ltd.
2022. All rights reserved. セッション概要 • FAPI (Financial-grade API)という高セキュリティなAPIを公開するための仕様があります。 • システムのセキュリティは高ければ高いほど望ましいですが、実案件では対応コストやユー ザビリティとの トレードオフを見ていかないといけません。 一方で、FAPIに準拠しないにしても、どんな攻撃のリスクがあるかを知り、自システムで はどうやって対策 できるかを考えておくことは大切です。 低い対応コスト/ 高いユーザビリティ 高いセキュリティレベル • FAPIの概要のご説明 • FAPIに準拠するとどんな攻撃から身を守ることができるのかのご紹介 • IAMを実現するOSSであるKeycloakにおけるFAPI対応のご紹介 本セッションでは・・・
4.
© Hitachi, Ltd.
2022. All rights reserved. Contents 3 1. FAPIとは 2. FAPIに準拠することで防げる攻撃 ~8選~ 3. KeycloakにおけるFAPI対応
5.
© Hitachi, Ltd.
2022. All rights reserved. Contents 4 1. FAPIとは 2. FAPIに準拠することで防げる攻撃 ~8選~ 3. KeycloakにおけるFAPI対応
6.
5 © Hitachi, Ltd.
2022. All rights reserved. FAPIとは • Financial-grade API (FAPI)セキュリティプロファイルは、「API認可」のプロトコルとし てよく使われるOAuth 2.0や「SSO」のプロトコルとしてよく使われるOpenID Connect (OIDC)をベースに、高い レベルのセキュリティを必要とするあらゆる市場領域のAPIに適用するためのOAuth 2.0や OIDCの セキュアな使い方を定義している。 Financial-grade API Security Profile 1.0 Part 2: Advanced RFC 7519: JSON Web Token (JWT) RFC 7636: Proof Key for Code Exchange by OAuth Public Clients RFC 6819: OAuth 2.0 Threat Model and Security Considerations RFC 6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage RFC 6749: The OAuth 2.0 Authorization Framework OpenID Connect Core 1.0 RFC 8705: OAuth 2.0 Mutual- TLS Client Authentication and Certificate-Bound Access Tokens RFC 9126: OAuth 2.0 Pushed Authorization Requests Financial-grade API: JWT Secured Authorization Response Mode for OAuth 2.0 (JARM)
7.
© Hitachi, Ltd.
2022. All rights reserved. Contents 6 1. FAPIとは 2. FAPIに準拠することで防げる攻撃 ~8選~ 3. KeycloakにおけるFAPI対応
8.
7 © Hitachi, Ltd.
2022. All rights reserved. 前提 • OAuth 2.0/OIDCで最も推奨される認可コードフローを前提とします(ハイブリッドフロー を含む)。 ※インプリシットフローやリソースオーナパスワードクレデンシャルズフローだと、説明すべき攻撃方法の数が多くなってしまうため。 正当なユーザ クライアント リソースサーバ 認可サーバ アクセス 認可リクエスト ログイン画面 ログイン 認可レスポンス トークンリクエスト トークンレスポンス APIリクエスト APIレスポンス 画面表示
9.
8 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者の目的は何か ~ 1. 正当なユーザとしてクライアントにログインすること。 2. 正当なユーザのリソースにアクセスすること。 3. 正当なユーザに攻撃者としてログインさせること。 4. 正当なユーザに攻撃者のリソースにアクセスさせること。 ※参考: FAPI 2.0 Attacker Model https://openid.net/specs/fapi-2_0-attacker-model-00.html
10.
9 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者の目的は何か ~ 1. 正当なユーザとしてクライアントにログインすること。 2. 正当なユーザのリソースにアクセスすること。 3. 正当なユーザに攻撃者としてログインさせること。 4. 正当なユーザに攻撃者のリソースにアクセスさせること。 正当なユーザ 攻撃者 クライアント 正当なユーザ 正当なユーザとしてログインすることで以下のようなことができる。 • クライアントに設定している情報からの、正当なユーザの個人情報の取得 →住所や電話番号、プライベートな写真の取得など。 • 正当なユーザの周辺のユーザへの攻撃 →「友達」として登録されているユーザへのプリペイドカード番号の要求など。
11.
10 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者の目的は何か ~ 1. 正当なユーザとしてクライアントにログインすること。 2. 正当なユーザのリソースにアクセスすること。 3. 正当なユーザに攻撃者としてログインさせること。 4. 正当なユーザに攻撃者のリソースにアクセスさせること。 正当なユーザ 攻撃者 クライアント 正当なユーザ リソースサーバ 正当なユーザのリソースにアクセスすることで以下のようなことができる。 • リソースサーバに保存している情報からの、正当なユーザの個人情報の取得 →保存しているドキュメントや写真、動画の取得など。 • 金融取引をトリガーするために利用できるAPIのコール →正当なユーザの口座から攻撃者の口座への送金のリクエストなど。
12.
11 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者の目的は何か ~ 1. 正当なユーザとしてクライアントにログインすること。 2. 正当なユーザのリソースにアクセスすること。 3. 正当なユーザに攻撃者としてログインさせること。 4. 正当なユーザに攻撃者のリソースにアクセスさせること。 正当なユーザ 攻撃者 クライアント リソースサーバ 攻撃者 攻撃者 正当なユーザに攻撃者としてログインさせたり、攻撃者のリソースにアクセスさせることで以下のようなことができる。 • 攻撃者アカウントへ登録された正当なユーザの情報の取得 →正当なユーザが誤って攻撃者のアカウントへ登録してしまった個人情報や口座情報の取得など。 • 正当なユーザのアカウント情報を用いた他システムへのログイン →正当なユーザが誤って攻撃者のアカウントへ紐づけてしまった他システムのアカウントを用いたログインなど。
13.
12 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者はどんなことができる? ~ 1. ブラウザ等を用いて、各コンポーネントとメッセージのやり取りができる。 2. 正当なユーザにリンクを送付して、そこに訪問させることができる。 3. 正当なユーザのメッセージのやり取りを傍受・ブロック・改ざんすることができる。 4. ブラウザ履歴や各種ログなどから、認可リクエストや認可レスポンスを読み取ることができる。 5. トークンエンドポイントになりすまして、トークンリクエストを取得することができる。 6. リソースサーバの手前のリバプロでAPIリクエストやAPIレスポンスを読み取ったり、APIレスポ ンスを改ざんすることができる。 7. 認可サーバになりすまして、正当なユーザと認可サーバ/クライアントとのやり取りに参加し、認 可サーバからトークンを取得することができる。 ※参考: FAPI 2.0 Attacker Model https://openid.net/specs/fapi-2_0-attacker-model-00.html
14.
13 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者はどんなことができる? ~ 1. ブラウザ等を用いて、各コンポーネントとメッセージのやり取りができる。 正当なユーザ 攻撃者 クライアント リソースサーバ 認可サーバ 自作メッセージを 送付 改ざんした メッセージを送付 正当なメッセージを 送付
15.
14 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者はどんなことができる? ~ 2. 正当なユーザにリンクを送付して、そこに訪問させることができる。 正当なユーザ 攻撃者 クライアント リソースサーバ 認可サーバ 攻撃者のサイト リンクを 送付 訪問
16.
15 © Hitachi, Ltd.
2022. All rights reserved. 不正なWiFiアクセスポイントや 侵害したネットワーク内 まずは攻撃者を知ろう ~ 攻撃者はどんなことができる? ~ 3. 正当なユーザのメッセージのやり取りを傍受・ブロック・改ざんすることができる。 正当なユーザ 攻撃者 クライアント リソースサーバ 認可サーバ 復号化キーがなければ、 中身の読み取りまではできない。 傍受 ブロック 改ざん
17.
16 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者はどんなことができる? ~ 4. ブラウザ履歴や各種ログなどから、認可リクエストや認可レスポンスを読み取ることができ る。 正当なユーザ 攻撃者 クライアント リソースサーバ 認可サーバ ブラウザの 履歴の入手 認可サーバや 手前のリバプロのログの入手 認可リクエストや 認可レスポンスを読み取る 認可リクエスト
18.
17 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者はどんなことができる? ~ 5. トークンエンドポイントになりすまして、トークンリクエストを取得することができる。 クライアント管理者 攻撃者 クライアント リソースサーバ 認可サーバ エンドポイント 変更の通知 攻撃者のサーバ 正規のトークン リクエスト 誘導された トークンリクエスト トークン リクエストを取得 クライアント設定の変更
19.
18 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者はどんなことができる? ~ 6. リソースサーバの手前のリバプロでAPIリクエストやAPIレスポンスを読み取ったり、APIレ スポンスを改ざんすることができる。 正当なユーザ 攻撃者 クライアント リソースサーバ 認可サーバ リバプロ APIリクエスト APIリクエスト 盗聴・改ざん TLS 終端
20.
19 © Hitachi, Ltd.
2022. All rights reserved. まずは攻撃者を知ろう ~ 攻撃者はどんなことができる? ~ 正当なユーザ 攻撃者 クライアント リソースサーバ 認可サーバ 攻撃者配下の 認可サーバ 7. 認可サーバになりすまして、正当なユーザと認可サーバ/クライアントとのやり取りに参加 し、認可サーバからトークンを取得することができる。 メール等で 誘導 実際の やり取り トークンを取得 正当な やり取り 正当な やり取り 正当なユーザが 想定したやり取り
21.
20 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的 1. 正当なユーザとしてクライアントにログインすること。 1. 認可レスポンス横取り攻撃 2. 認可コード横取り攻撃 2. 正当なユーザのリソースにアクセスすること。 3. アクセストークン横取り攻撃 4. リダイレクトURI改ざん攻撃 5. トークンエンドポイントなりすまし攻撃 6. IdP mix-up攻撃 3. 正当なユーザに攻撃者としてログインさせること。 4. 正当なユーザに攻撃者のリソースにアクセスさせること。 7. 認可レスポンス挿入攻撃 8. 認可コード挿入攻撃
22.
21 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的 1. 正当なユーザとしてクライアントにログインすること。 1. 認可レスポンス横取り攻撃 2. 認可コード横取り攻撃 2. 正当なユーザのリソースにアクセスすること。 3. アクセストークン横取り攻撃 4. リダイレクトURI改ざん攻撃 5. トークンエンドポイントなりすまし攻撃 6. IdP mix-up攻撃 3. 正当なユーザに攻撃者としてログインさせること。 4. 正当なユーザに攻撃者のリソースにアクセスさせること。 7. 認可レスポンス挿入攻撃 8. 認可コード挿入攻撃
23.
22 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 1. 認可レスポンス横取り攻撃 正当なユーザの認可レスポンスを盗聴して自身のブラウザからクライアントに流し込めれば、正当なユー ザとしてクライアントにログインできる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス 盗聴 認可レスポンス トークンリクエスト トークンレスポンス 正当なユーザ としてログイン GET /cb? code=SplxlOBeZQQYbYS6WxSbIA HTTP/1.1 Host: client.example.org GET /cb? code=SplxlOBeZQQYbYS6WxSbIA HTTP/1.1 Host: client.example.org ※そのまま送る。 POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://client.example.org/cb &client_id=s6BhdRkqt3 GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email HTTP/1.1 Host: server.example.com
24.
23 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 1. 認可レスポンス横取り攻撃 ← stateを使った対抗策 stateを使って認可リクエストと認可レスポンスをバインドする。 正当なユーザ クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=af0ifjsldkj HTTP/1.1 Host: server.example.com セッションに stateを保存 認可レスポンスに 同一のstateを付与 セッションのstateと 認可レスポンスの stateを比較検証 GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=af0ifjsldkj HTTP/1.1 Host: client.example.org
25.
24 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 1. 認可レスポンス横取り攻撃 ← stateを使った対抗策 stateを使って認可リクエストと認可レスポンスをバインドする。攻撃者から送られてきた認可レスポン スには同一のstateを使ってバインドされた認可リクエストがないため、クライアントは攻撃を検知でき る。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス セッションに stateを保存 盗聴 認可レスポンス GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=af0ifjsldkj HTTP/1.1 Host: client.example.org ※そのまま送る。 認可レスポンスに 同一のstateを付与 GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=af0ifjsldkj HTTP/1.1 Host: client.example.org GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=af0ifjsldkj HTTP/1.1 Host: server.example.com 認可レスポンスと 同一のstateが セッションに無い ことを検知
26.
25 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 2. 認可コード横取り攻撃 事前に認可リクエストをトリガーし、stateを払い出しておく。正当なユーザの認可コードのみを盗聴し て攻撃者用の認可レスポンスを作成し、自身のブラウザからクライアントに流し込めれば、正当なユーザ としてクライアントにログインできる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス 盗聴 認可レスポンス トークンリクエスト トークンレスポンス 正当なユーザ としてログイン POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://client.example.org/cb &client_id=s6BhdRkqt3 アクセス 認可リクエスト GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=bk8kejboqlk HTTP/1.1 Host: client.example.org ※stateは自身のものを流用。 GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=af0ifjsldkj HTTP/1.1 Host: client.example.org GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=af0ifjsldkj HTTP/1.1 Host: server.example.com GET /authorize? response_type=code … &state=bk8kejboqlk HTTP/1.1 Host: server.example.com
27.
26 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 2. 認可コード横取り攻撃 ← JARM (JWT Secured Authorization Response Mode for OAuth 2.0) 認可レスポンスをJWT形式で返し、JWTに署名を入れる。 正当なユーザ クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス GET /authorize? response_type=code &response_mode=jwt &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=af0ifjsldkj HTTP/1.1 Host: server.example.com 署名を検証 GET /cb? response=eyJr… HTTP/1.1 Host: client.example.org <JARMレスポンス> { "aud": "s6BhdRkqt3", "code": "Splx…", "iss": "https://server.example.com/", "state": "af0ifjsldkj", "exp": 1594141090 } ※署名あり。
28.
27 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 2. 認可コード横取り攻撃 ← JARM (JWT Secured Authorization Response Mode for OAuth 2.0) 認可レスポンスをJWT形式で返し、JWTに署名を入れる。署名を検証することで、クライアントは認可 レスポンスの改ざんを検知できる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス 盗聴 認可レスポンス アクセス 認可リクエスト GET /cb? response=eyJr… HTTP/1.1 Host: client.example.org ※stateを自身のものを変えたとする。 GET /authorize? response_type=code &response_mode=jwt &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=af0ifjsldkj HTTP/1.1 Host: server.example.com GET /cb? response=eyJr… HTTP/1.1 Host: client.example.org <JARMレスポンス> { "aud": "s6BhdRkqt3", "code": "Splx…", "iss": "https://server.example.com/", "state": "af0ifjsldkj", "exp": 1594141090 } ※署名あり。 署名の検証で 改ざんを検知 GET /authorize? response_type=code … &state=bk8kejboqlk HTTP/1.1 Host: server.example.com
29.
28 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 2. 認可コード横取り攻撃 ← 分離署名としてのIDトークン OIDCのハイブリッドフローを使用し、認可レスポンスでIDトークンを返し、IDトークンには認可コー ドとstateのハッシュ値を含める。 正当なユーザ クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス GET /authorize? response_type=code id_token &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=af0ifjsldkj HTTP/1.1 Host: server.example.com 署名とハッシュ値 を検証 GET /cb# code=SplxlOBeZQQYbYS6WxSbIA &state=af0ifjsldkj &id_token=eyJr… HTTP/1.1 Host: client.example.org <IDトークン> { "sub": "1001", "aud": "s6BhdRkqt3", "c_hash": "QR2z…", "s_hash": "9s6C…", "auth_time": 1594140090, "iss": "https://server.example.com/", "exp": 1594140390, "iat": 1594140090 } ※署名あり。
30.
29 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 2. 認可コード横取り攻撃 ← 分離署名としてのIDトークン OIDCのハイブリッドフローを使用し、認可レスポンスでIDトークンを返し、IDトークンには認可コー ドとstateのハッシュ値を含める。IDトークンの署名とそれらハッシュ値を検証することで、クライアン トは認可レスポンスの改ざんを検知できる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス 盗聴 認可レスポンス アクセス 認可リクエスト GET /cb# code=SplxlOBeZQQYbYS6WxSbIA &state=bk8kejboqlk &id_token=eyJr… HTTP/1.1 Host: client.example.org ※stateを自身のものに変えたとする。 署名とハッシュ値の 検証で改ざんを 検知 GET /authorize? response_type=code id_token … &state=bk8kejboqlk HTTP/1.1 Host: server.example.com GET /cb# code=SplxlOBeZQQYbYS6WxSbIA &state=af0ifjsldkj &id_token=eyJr… HTTP/1.1 Host: client.example.org <IDトークン> { "sub": "1001", "aud": "s6BhdRkqt3", "c_hash": "QR2z…", "s_hash": "9s6C…", "auth_time": 1594140090, "iss": "https://server.example.com/", "exp": 1594140390, "iat": 1594140090 } ※署名あり。 GET /authorize? response_type=code id_token &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=af0ifjsldkj HTTP/1.1 Host: server.example.com
31.
30 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的 1. 正当なユーザとしてクライアントにログインすること。 1. 認可レスポンス横取り攻撃 2. 認可コード横取り攻撃 2. 正当なユーザのリソースにアクセスすること。 3. アクセストークン横取り攻撃 4. リダイレクトURI改ざん攻撃 5. トークンエンドポイントなりすまし攻撃 6. IdP mix-up攻撃 3. 正当なユーザに攻撃者としてログインさせること。 4. 正当なユーザに攻撃者のリソースにアクセスさせること。 7. 認可レスポンス挿入攻撃 8. 認可コード挿入攻撃
32.
31 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 3. アクセストークン横取り攻撃 TLS終端するリソースサーバの手前のリバプロのログからAPIリクエスト(アクセストークン含む)を盗聴 できれば、正当なユーザのリソースにアクセスできるアクセストークンを取得できる。 リソースサーバ 認可サーバ 攻撃者 APIリクエスト 盗聴 APIリクエス ト アクセストークン の取得 GET /resource HTTP/1.1 Host: resource.example.com Authorization: Bearer eyJr… ※そのまま送る GET /resource HTTP/1.1 Host: resource.example.com Authorization: Bearer eyJr… クライアント リバプロ
33.
32 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 3. アクセストークン横取り攻撃 ← アクセストークンへのクライアント証明書のバインド (RFC 8705) クライアント証明書をアクセストークンにバインドする。 正当なユーザ クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://client.example.org/cb &client_id=s6BhdRkqt3 クライアント証明書 を相互TLSで提示 リソースサーバ APIリクエスト クライアント証明書の ハッシュ値を比較検証 アクセストークンに クライアント証明書 のハッシュ値を バインドする クライアント証明書 を相互TLSで提示
34.
33 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 3. アクセストークン横取り攻撃 ← アクセストークンへのクライアント証明書のバインド (RFC 8705) クライアント証明書をアクセストークンにバインドする。たとえアクセストークンを取得しても攻撃者は クライアント証明書の秘密鍵は取得できず、その所持をリソースサーバに示すことができないため、保護 リソースを取得できなくなる。 リソースサーバ 認可サーバ 攻撃者 アクセス 盗聴 APIリクエス ト アクセストークン の取得 GET /resource HTTP/1.1 Host: resource.example.com Authorization: Bearer eyJr… ※そのまま送る GET /resource HTTP/1.1 Host: resource.example.com Authorization: Bearer eyJr… クライアント リバプロ 正当なユーザ APIリクエスト 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス クライアント証明書を提示しない/ クライアント証明書が一致しない 不正なリクエストを検知 クライアント証明書の秘密鍵は 提示されないので奪えない
35.
34 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 4. リダイレクトURI改ざん攻撃 リダイレクトURIを改ざんした認可リクエストを正当なユーザに送り付け、攻撃者のサイトで認可コード を盗聴して自身で 認可サーバに送ることができれば、正当なユーザのリソースにアクセスできるアクセストークンを取得で きる。 正当なユーザ リソースサーバ 認可サーバ 攻撃者のサイト 攻撃者 リンクの送付 認可リクエスト 認証 認可レスポンス 傍受 トークンリクエスト トークンレスポンス APIリクエスト アクセストークン の取得 GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://attacker.example.org/cb &scope=openid profile email HTTP/1.1 Host: server.example.com GET /cb? code=SplxlOBeZQQYbYS6WxSbIA HTTP/1.1 Host: attacker.example.org POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://attacker.example.org/cb &client_id=s6BhdRkqt3
36.
35 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 4. リダイレクトURI改ざん攻撃 ← リダイレクトURIの完全一致チェック 事前に登録されたクライアントのリダイレクトURIと認可リクエストに付与されたリダイレクトURIとの 完全一致を検証する。 正当なユーザ クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email HTTP/1.1 Host: server.example.com 事前に登録された リダイレクトURIと 認可リクエストの リダイレクトURIを 比較検証 事前にリダイレクトURIを 完全URIで登録
37.
36 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 4. リダイレクトURI改ざん攻撃 ← リダイレクトURIの完全一致チェック 事前に登録されたクライアントのリダイレクトURIと認可リクエストに付与されたリダイレクトURIとの 完全一致を検証する。 攻撃者が送り付けた認可リクエストはリダイレクトURIが一致しないため、認可サーバは攻撃を検知でき る。 正当なユーザ リソースサーバ 認可サーバ 攻撃者のサイト 攻撃者 リンクの送付 認可リクエスト GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://attacker.example.org/cb &scope=openid profile email HTTP/1.1 Host: server.example.com リダイレクトURIの完全一致の 検証でリダイレクトURIの不正 を検知
38.
37 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 4. リダイレクトURI改ざん攻撃 ← パブリッククライアントの非サポート トークンエンドポイントでのクライアント認証を強制する。 正当なユーザ クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://client.example.org/cb &client_id=s6BhdRkqt3 &client_secret=jngso0033i クライアント認証を強制し クライアントクレデンシャル を比較検証
39.
38 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 4. リダイレクトURI改ざん攻撃 ← パブリッククライアントの非サポート トークンエンドポイントでのクライアント認証を強制する。アクセストークンの入手にはクライアントク レデンシャルの取得も必要になり、盗聴した認可コードだけではアクセストークンを取得できなくなる。 正当なユーザ リソースサーバ 認可サーバ 攻撃者のサイト 攻撃者 リンクの送付 認可リクエスト 認証 認可レスポンス 傍受 トークンリクエスト GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://attacker.example.org/cb &scope=openid profile email HTTP/1.1 Host: server.example.com GET /cb? code=SplxlOBeZQQYbYS6WxSbIA HTTP/1.1 Host: attacker.example.org クライアントクレデンシャルを 提示しない不正なリクエストを 検知 POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://attacker.example.org/cb &client_id=s6BhdRkqt3
40.
39 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 5. トークンエンドポイントなりすまし攻撃 トークンエンドポイントの変更通知をクライアント管理者に送り付けてエンドポイントの設定を変更させ、 攻撃者のサイトでトークンリクエストを取得できれば、認可コードもクライアントクレデンシャルも取得 でき、それらでアクセストークンを取得できる。 正当なユーザ リソースサーバ 認可サーバ 攻撃者のサーバ 攻撃者 エンドポイント 変更通知 アクセス 認証 認可レスポンス 傍受 トークンリクエスト トークンレスポンス APIリクエスト アクセストークン の取得 POST /token HTTP/1.1 Host: attacker.example.org Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://attacker.example.org/cb &client_id=s6BhdRkqt3 &client_secret=jngso0033i クライアント管理者クライアント エンドポイント 変更 認可リクエスト トークンリクエスト 認可コードもクライアント クレデンシャルも取得できる
41.
40 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 5. トークンエンドポイントなりすまし攻撃 ← クライアント証明書を使ったクライアント認 証 (RFC 8705) クライアント証明書をクライアント認証に用いる。 正当なユーザ クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://client.example.org/cb &client_id=s6BhdRkqt3 クライアント証明書を使った クライアント認証を強制し クライアント証明書を比較検証
42.
41 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 5. トークンエンドポイントなりすまし攻撃 ← クライアント証明書を使ったクライアント認 証 (RFC 8705) クライアント証明書をクライアント認証に用いる。トークンリクエストを取得しても攻撃者はクライアン ト証明書の秘密鍵は取得できず、その所持を認可サーバに示すことができないため、クライアント認証に 失敗しアクセストークンを取得できなくなる。 正当なユーザ リソースサーバ 認可サーバ 攻撃者のサーバ 攻撃者 エンドポイント 変更通知 アクセス 認証 認可レスポンス 傍受 トークンリクエスト POST /token HTTP/1.1 Host: attacker.example.org Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://attacker.example.org/cb &client_id=s6BhdRkqt3 クライアント管理者クライアント エンドポイント 変更 認可リクエスト トークンリクエスト クライアント証明書の秘密鍵は 提示されないので奪えない クライアント証明書を提示しない 不正なリクエストを検知
43.
42 © Hitachi, Ltd.
2022. All rights reserved. 認可リクエスト 自身に対する 認可リクエストをトリガ FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 6. IdP mix-up攻撃 認可サーバを準備し、正当なクライアントの認可サーバとして、かつ正当な認可サーバのクライアントと して登録する。 正当なユーザを攻撃者配下の認可サーバに誘導することで、アクセストークンを取得できる。 正当なユーザ リソースサーバ 認可サーバ 攻撃者 アクセスを誘導 認証 認可レスポンス 傍受 APIリクエスト アクセストークン の取得 クライアント トークンリクエスト 正当なクライアントの認可サーバ として登録されている 攻撃者配下の 認可サーバ 認可リクエスト トークンリクエスト トークンレスポンス 正当な認可サーバのクライアント として登録されている POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://client.example.org/cb &client_id=o3ksnRuew2 GET /cb? code=SplxlOBeZQQYbY… &state=af0ifjsldkj HTTP/1.1 Host: client.example.org GET /authorize? response_type=code &client_id=o3ksnRuew2 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=af0ifjsldkj HTTP/1.1 Host: server.example.com
44.
43 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザのリソースにアクセスすること。 6. IdP mix-up攻撃 ← JARM (JWT Secured Authorization Response Mode for OAuth 2.0) 認可レスポンスをJWT形式で返し、JWTに署名を入れる。JWT内のissクレームとaudクレームを検証す ることで、クライアントは認可レスポンスの不正を検知できる。 認可リクエスト 自身に対する 認可リクエストをトリガ 正当なユーザ リソースサーバ 認可サーバ 攻撃者 アクセスを誘導 認証 認可レスポンス クライアント 攻撃者配下の 認可サーバ 認可リクエスト GET /cb? response=eyJr… HTTP/1.1 Host: client.example.org GET /authorize? response_type=code &response_mode=jwt &client_id=o3ksnRuew2 … HTTP/1.1 Host: attacker.example.com <JARMレスポンス> { "aud": "o3ksnRuew2", "iss": "https://server.example.com/", … } ※署名あり。 issクレームとaudクレームの検証で 意図した認可サーバからのレスポンスではないことや 自身宛てのレスポンスではないことを検知
45.
44 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的 1. 正当なユーザとしてクライアントにログインすること。 1. 認可レスポンス横取り攻撃 2. 認可コード横取り攻撃 2. 正当なユーザのリソースにアクセスすること。 3. アクセストークン横取り攻撃 4. リダイレクトURI改ざん攻撃 5. トークンエンドポイントなりすまし攻撃 6. IdP mix-up攻撃 3. 正当なユーザに攻撃者としてログインさせること。 4. 正当なユーザに攻撃者のリソースにアクセスさせること。 7. 認可レスポンス挿入攻撃 8. 認可コード挿入攻撃
46.
45 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザに攻撃者としてログインさせること。/正当なユーザに攻撃者のリソースにアクセスさせること。 7. 認可レスポンス挿入攻撃 攻撃者の認可レスポンスを正当なユーザに送り付け、正当なユーザのブラウザからクライアントに流し込 ませることができれば、攻撃者としてクライアントにログインさせることができる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス 送信 認可レスポンス トークンリクエスト トークンレスポンス 攻撃者として ログイン GET /cb? code=SplxlOBeZQQYbYS6WxSbIA HTTP/1.1 Host: client.example.org GET /cb? code=SplxlOBeZQQYbYS6WxSbIA HTTP/1.1 Host: client.example.org ※そのまま送る。 POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://client.example.org/cb &client_id=s6BhdRkqt3 GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email HTTP/1.1 Host: server.example.com
47.
46 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザとしてクライアントにログインすること。 7. 認可レスポンス挿入攻撃 ← stateを使った対抗策 stateを使って認可リクエストと認可レスポンスをバインドする。正当なユーザから送られてきた認可レ スポンスには同一のstateを使ってバインドされた認可リクエストがないため、クライアントは攻撃を検 知できる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス 送信 認可レスポンス GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=bk8kejboqlk HTTP/1.1 Host: client.example.org GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=bk8kejboqlk HTTP/1.1 Host: client.example.org ※そのまま送る。 GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=bk8kejboqlk HTTP/1.1 Host: server.example.com 認可レスポンスと 同一のstateが セッションに無い ことを検知
48.
47 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザに攻撃者としてログインさせること。/正当なユーザに攻撃者のリソースにアクセスさせること。 8. 認可コード挿入攻撃 事前に正当なユーザの認可リクエストを盗聴し、stateを取得しておく。攻撃者の認可コードのみを使っ て正当なユーザ用の認可レスポンスを作成し、クライアントに流し込ませることができれば、攻撃者とし てクライアントにログインさせることができる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス 送信 認可レスポンス トークンリクエスト トークンレスポンス 攻撃者として ログイン POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri= https://client.example.org/cb &client_id=s6BhdRkqt3 アクセス 認可リクエスト GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=af0ifjsldkj HTTP/1.1 Host: client.example.org ※stateは正当なユーザのものを流用。 GET /cb? code=SplxlOBeZQQYbYS6WxSbIA &state=bk8kejboqlk HTTP/1.1 Host: client.example.org GET /authorize? response_type=code &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=bk8kejboqlk HTTP/1.1 Host: server.example.com GET /authorize? response_type=code … &state=af0ifjsldkj HTTP/1.1 Host: server.example.com 盗聴
49.
48 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザに攻撃者としてログインさせること。/正当なユーザに攻撃者のリソースにアクセスさせること。 8. 認可コード挿入攻撃 ← PAR (OAuth 2.0 Pushed Authorization Requests) 認可リクエストパラメータから署名付きのJWT(リクエストオブジェクト)を作成し、事前に認可サーバに 登録する。 正当なユーザ クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス トークンリクエスト トークンレスポンス PARリクエスト PARレスポンス POST /par HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded client_assertion_type= urn:ietf:params:oauth:client- assertion-type:jwt-bearer &client_assertion=eyJr… &request=eyJr… &client_id=s6BhdRkqt3 <リクエストオブジェクト> { "aud": "https://server.example.com/", "nbf": 1594140030, "scope": "openid profile email", "iss": "s6BhdRkqt3", "response_type": "code id_token", "redirect_uri": "https://client.example.org/cb", "state": "af0ifjsldkj", "exp": 1594140390, "client_id": "s6BhdRkqt3“, "code_challenge": "K2-l…", "code_challenge_method": "S256" } ※署名あり。 GET /authorize? client_id=s6BhdRkqt3 &request_uri= urn:ietf:params:oauth: request_uri:6esc… HTTP/1.1 Host: server.example.com HTTP/1.1 201 Created Content-Type: application/json Cache-Control: no-cache, no-store { "request_uri": "urn:ietf:params:oauth: request_uri:6esc…", "expires_in": 60 } 事前にパラメータを JWTにまとめて送信 認可リクエストに パラメータは直接 含まれない
50.
49 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザに攻撃者としてログインさせること。/正当なユーザに攻撃者のリソースにアクセスさせること。 8. 認可コード挿入攻撃 ← PAR (OAuth 2.0 Pushed Authorization Requests) 認可リクエストパラメータから署名付きのJWT(リクエストオブジェクト)を作成し、事前に認可サーバに 登録する。認可 リクエストにはリクエストオブジェクトへの参照URIしか含まれないため、stateを取得できなくなる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト GET /authorize? client_id=s6BhdRkqt3 &request_uri= urn:ietf:params:oauth: request_uri:6esc… HTTP/1.1 Host: server.example.com 盗聴 PARリクエスト PARレスポンス POST /par HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded client_assertion_type= urn:ietf:params:oauth:client- assertion-type:jwt-bearer &client_assertion=eyJr… &request=eyJr… &client_id=s6BhdRkqt3 <リクエストオブジェクト> { "aud": "https://server.example.com/", "nbf": 1594140030, "scope": "openid profile email", "iss": "s6BhdRkqt3", "response_type": "code id_token", "redirect_uri": "https://client.example.org/cb", "state": "af0ifjsldkj", "exp": 1594140390, "client_id": "s6BhdRkqt3“, "code_challenge": "K2-l…", "code_challenge_method": "S256" } ※署名あり。 stateを盗聴できないので 攻撃が成立しない (正当なユーザ用の認可 レスポンスを作成できない)
51.
50 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 攻撃者の目的: 正当なユーザに攻撃者としてログインさせること。/正当なユーザに攻撃者のリソースにアクセスさせること。 8. 認可コード挿入攻撃 ← JARM (JWT Secured Authorization Response Mode for OAuth 2.0) 認可レスポンスをJWT形式で返し、JWTに署名を入れる。署名を検証することで、クライアントは認可 レスポンスの改ざんを検知できる。 正当なユーザ 攻撃者 クライアント 認可サーバ アクセス 認可リクエスト 認証 認可レスポンス 送信 認可レスポンス アクセス 認可リクエスト GET /cb? response=eyJr… HTTP/1.1 Host: client.example.org ※stateを正当なユーザのものに 変えたとする。 GET /authorize? response_type=code &response_mode=jwt &client_id=s6BhdRkqt3 &redirect_uri= https://client.example.org/cb &scope=openid profile email &state=bk8kejboqlk HTTP/1.1 Host: server.example.com GET /authorize? response_type=code … &state=af0ifjsldkj HTTP/1.1 Host: server.example.com 盗聴 GET /cb? response=eyJr… HTTP/1.1 Host: client.example.org <JARMレスポンス> { "aud": "s6BhdRkqt3", "code": "Splx…", "iss": "https://server.example.com/", "state": "af0ifjsldkj", "exp": 1594141090 } ※署名あり。 署名の検証で 改ざんを検知
52.
51 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠することで防げる攻撃8選 ~ まとめ ~ 1. 認可レスポンス横取り攻撃 • stateを使った対抗策 2. 認可コード横取り攻撃 • JARM (JWT Secured Authorization Response Mode for OAuth 2.0) • 分離署名としてのIDトークン 3. アクセストークン横取り攻撃 • アクセストークンへのクライアント証明書のバインド (RFC 8705) 4. リダイレクトURI改ざん攻撃 • リダイレクトURIの完全一致チェック • パブリッククライアントの非サポート 5. トークンエンドポイントなりすまし攻撃 • クライアント証明書を使ったクライアント認証 (RFC 8705) 6. IdP mix-up攻撃 • JARM (JWT Secured Authorization Response Mode for OAuth 2.0) 7. 認可レスポンス挿入攻撃 • stateを使った対抗策 8. 認可コード挿入攻撃 • PAR (OAuth 2.0 Pushed Authorization Requests) • JARM (JWT Secured Authorization Response Mode for OAuth 2.0)
53.
© Hitachi, Ltd.
2022. All rights reserved. Contents 52 1. FAPIとは 2. FAPIに準拠することで防げる攻撃 ~8選~ 3. KeycloakにおけるFAPI対応
54.
53 © Hitachi, Ltd.
2022. All rights reserved. 主な特徴 OAuth 2.0/OpenID ConnectやSAMLに対応 LDAPサーバやActive Directoryと連携可能 GitHubなどのユーザアカウントを利用した ソーシャルログインにも対応 Keycloakとは • Keycloakは、Red Hat社を中心に開発されている IAM (Identity and Access Management: IDアクセス管理)のOSS。 • シングルサインオンや、OAuth 2.0の認可サーバの機能を提供。 主要標準に対応したID連携 (OAuth 2.0の認可サーバーを含む) Keycloak LDAP Active Directory RDB OpenID Connect SAML GitHub Twitter Facebook ID管理と認証 ソーシャルログイン (Identity Brokering)
55.
54 © Hitachi, Ltd.
2022. All rights reserved. Keycloakの強み • 最先端の標準仕様にいち早く追従していく、コミュニティ力! • Keycloakメンテナの乗松さん(日立)が、FAPI-SIG (Financial-grade API Security : Special Interest Group)を立ち上げ、活動をリードしています。 標準仕様 Keycloakのサポート 日 OpenID Connect Client-Initiated Backchannel Authentication (CIBA) Flow - Core 1.0 2021/5 Financial-grade API (FAPI) Security Profile 1.0 - Part 1: Baseline 2021/6 Financial-grade API (FAPI) Security Profile 1.0 - Part 2: Advanced 2021/6 Financial-grade API: JWT Secured Authorization Response Mode for OAuth 2.0 (JARM) 2021/7 Financial-grade API: Client Initiated Backchannel Authentication Profile (FAPI-CIBA) 2021/7 RFC 9126: OAuth 2.0 Pushed Authorization Requests (PAR) 2021/7 Open Finance Brasil Financial-grade API Security Profile 1.0 2021/7 FAPI 2.0 Baseline Profile 絶賛作業中! Grant Management for OAuth 2.0 絶賛作業中! OAuth 2.0 Rich Authorization Requests (RAR) 絶賛作業中! OAuth 2.0 Demonstrating Proof-of-Possession at the Application Layer (DPoP) 絶賛作業中!
56.
55 © Hitachi, Ltd.
2022. All rights reserved. FAPIに準拠する際の一般的な課題 FAPIに準拠することで防げる攻撃 1. 認可レスポンス横取り攻撃 • stateを使った対抗策 2. 認可コード横取り攻撃 • JARM (JWT Secured Authorization Response Mode for OAuth 2.0) • 分離署名としてのIDトークン 3. アクセストークン横取り攻撃 • アクセストークンへのクライアント証明書のバインド (RFC 8705) 4. リダイレクトURI改ざん攻撃 • リダイレクトURIの完全一致チェック • パブリッククライアントの非サポート 5. トークンエンドポイントなりすまし攻撃 • クライアント証明書を使ったクライアント認証 (RFC 8705) 6. IdP mix-up攻撃 • JARM (JWT Secured Authorization Response Mode for OAuth 2.0) 7. 認可レスポンス挿入攻撃 • stateを使った対抗策 8. 認可コード挿入攻撃 • PAR (OAuth 2.0 Pushed Authorization Requests) • JARM (JWT Secured Authorization Response Mode for OAuth 2.0) • 設定項目が多すぎる。。。 ・・・ 今回ご紹介した以下のような対抗策を適切に設定する必要がある。 • 適切に設定されているか、つまりFAPIに準拠した状態になっているか、設定ミスによってセ キュリティホールが生じていないかを確認するのも大変。
57.
56 © Hitachi, Ltd.
2022. All rights reserved. • クライアントポリシーという機構を使います。 特定の条件(コンディション)に合致するクライアントに、FAPIのようなセキュリティプロファイルを適用することができま す。 セキュリティプロファイル コンディション KeycloakではFAPIをどのように設定するか myroleというロールを持つ myscopeというスコープを持つ FAPI 1.0 - Part 1 Baseline FAPI 1.0 - Part 2 Advanced FAPI-CIBA 例えば以下のようなことをクライアントポリシーで設定できます。 に合致する クライアントに を適用する。 など など • これによって何がうれしいか • 対象のクライアントを自動的にFAPIに準拠させてくれる! ← 細かな設定が不要に! • クライアントと紐づいたKeycloakへのリクエストがFAPIに準拠しているかどうかを チェックしてくれる。 • クライアントの設定がFAPIに準拠しているかをチェックしてくれる。
58.
57 © Hitachi, Ltd.
2022. All rights reserved. セキュリティプロファイル コンディション KeycloakではFAPIをどのように設定するか myroleというロールを持つ FAPI 1.0 - Part 2 Advanced 例えば以下のようなクライアントポリシーを作成した場合: に合致する クライアントに を適用する。 GET /realms/myrealm/protocol/openid-connect/auth? client_id=myclient &response_type=code &scope=openid &state=kci63sqvvwd &nonce=c93vbo8v8ead &redirect_uri=https://localhost:8082/callback HTTP/1.1 Host: localhost:8443 ログイン画面が表示される エラーが返される HTTP/1.1 302 Found Location: https://localhost:8082/callback? error=invalid_request &error_description= Missing parameter: ‘request’ or ‘request_uri’ &state=kci63sqvvwd リクエストオブジェクトがないという意 以下のようなリクエスト(FAPIに非準拠)を送ると・・・ myroleロールを持たないクライアントの場合: myroleロールを持つクライアントの場合: myroleロールを付けると myroleロールを取ると
59.
58 © Hitachi, Ltd.
2022. All rights reserved. セキュリティプロファイル コンディション KeycloakではFAPIをどのように設定するか myroleというロールを持つ FAPI 1.0 - Part 2 Advanced 例えば以下のようなクライアントポリシーを作成した場合: に合致する クライアントに を適用する。 GET /realms/myrealm/protocol/openid-connect/auth? client_id=myclient &response_type=code id_token &scope=openid &request=eyJraWQiOiI2R2l… HTTP/1.1 Host: localhost:8443 ログイン画面が表示される もちろんFAPIに準拠したリクエストを送ると・・・ myroleロールを持つクライアントでも
60.
59 © Hitachi, Ltd.
2022. All rights reserved. KeycloakではFAPIをどのように設定するか ちなみに、FAPIに準拠したリクエストを送るのがハードルが高いという方は・・・ 日立からOIDFのCertificationをパスしたFAPIのクライアント実装を公開していますので是非ご活用ください! 参考: https://openid.net/developers/certified/#FAPIRP
61.
60 © Hitachi, Ltd.
2022. All rights reserved. まとめ - FAPIの概要のご説明 OAuth 2.0やOIDCをベースにした、高いレベルのセキュリティを必要とするあら ゆる市場領域のAPIに適用できる仕様です。 - FAPIに準拠するとどんな攻撃から身を守ることができるのかのご紹介 1. 認可レスポンス横取り攻撃 ← stateを使った対抗策 2. 認可コード横取り攻撃 ← JARM、分離署名としてのIDトークン 3. アクセストークン横取り攻撃 ← アクセストークンへのクライアント証明書の バインド 4. リダイレクトURI改ざん攻撃 ← リダイレクトURIの完全一致チェック、パブ リッククライアントの 非サポート 5. トークンエンドポイントなりすまし攻撃 ← クライアント証明書を使ったクラ イアント認証 6. IdP mix-up攻撃 ← JARM、分離署名としてのIDトークン 7. 認可レスポンス挿入攻撃 ← stateを使った対抗策 8. 認可コード挿入攻撃 ← PAR、JARM、分離署名としてのIDトークン - KeycloakにおけるFAPI対応のご紹介
62.
61 © Hitachi, Ltd.
2022. All rights reserved. Trademarks • OpenID is a trademark or registered trademark of OpenID Foundation in the United States and other countries. • Red Hat is a registered trademark of Red Hat, Inc. in the United States and other countries. • Twitterは、Twitter,Inc.の登録商標です。 • Facebookは、Facebook,Inc.の登録商標です。 • Other brand names and product names used in this material are trademarks, registered trademarks, or trade names of their respective holders.
Download