FAPI 2.0 Security Profile
FAPI 2.0 Security Profile は、FAPI 1.0 の経験を活かして再設計された次世代のセキュリティプロファイルです。
目次
第1部: 概要編
FAPI 2.0 とは?
FAPI 2.0 は、FAPI 1.0 を簡素化しつつ、より強力なセキュリティを提供する新しいプロファイルです。
FAPI 2.0 の特徴:
1. 簡素化
- Hybrid Flow 廃止
- 認可コードフローのみ
- 複雑なオプションを削減
2. 強化
- PAR 必須
- Sender-Constrained Tokens 必須
- JARM または iss パラメータ
3. 新機能
- RFC 9396 RAR サポート
- Grant Management サポート
- DPoP サポート
なぜ FAPI 2.0 が必要なのか?
背景と歴史
FAPI 1.0 は2017-2019年に策定され、世界中のオープンバンキングで採用されました。しかし、実装者から以下の課題が指摘されました:
| FAPI 1.0 の課題 | FAPI 2.0 の改善 |
|---|---|
| Hybrid Flow が複雑 | 認可コードフローのみに統一 |
| Request Object の扱いが分かりにくい | PAR で統一、シンプル化 |
| mTLS の導入障壁が高い | DPoP を代替手段として追加 |
| 細かい仕様の曖昧さ | 明確化、実装しやすく |
FAPI 2.0 は 2021年から策定が始まり、2023年に Draft 仕様として公開されました。FAPI 1.0 との互換性はありませんが、より実装しやすく、より安全な設計となっています。
脅威モデル
FAPI 2.0 が対処する主な脅威:
-
認可リクエスト改ざん攻撃
攻撃シナリオ:
1. 攻撃者がブラウザのURLパラメータを改ざん
/authorize?amount=100 → /authorize?amount=10000
2. ユーザーが改ざんされた内容で認可
3. 攻撃者が不正な金額で取引実行
対策: PAR (Pushed Authorization Requests)
- すべてのパラメータをバックチャネルで送信
- ブラウザに機密情報が渡らない
- AS側でパラメータを保護 -
トークン盗難攻撃
攻撃シナリオ:
1. 攻撃者がアクセストークンを盗難
(ネットワーク盗聴、マルウェア等)
2. 攻撃者が盗んだトークンでAPIにアクセス
3. 成功(Bearer トークンは誰でも使用可能)
対策: DPoP または mTLS
- トークンを公開鍵/証明書にバインド
- 盗んだトークンだけでは使用不可
- 秘密鍵/証明書も必要