RFC 9449: DPoP(Demonstrating Proof of Possession)
RFC 9449 は、アクセストークンを特定のクライアントにバインドするための仕様です。このドキュメントでは、DPoP の仕組みと実装方法を解説します。
第1部: 概要編
DPoP とは何か?
DPoP(ディーポップと読む)は「Demonstrating Proof of Possession」の略で、アクセストークンを特定の鍵ペアに紐づける(バインドする)仕組みです。
Bearer トークンの「盗まれたら誰でも使える」という問題を解決します。
なぜ DPoP が必要なのか?
従来の Bearer トークンには大きな弱点があります。
Bearer トークンの問題
攻撃者がトークンを盗んだ場合...
攻撃者 リソースサーバー
│ │
│ Authorization: Bearer xxx │
│ ────────────────────────────►│
│ │
│ 200 OK (リソース) │
│ ◄────────────────────────────│
│ │
→ 盗んだトークンをそのまま使用できてしまう!