Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
「単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールが...
Search
てらら
July 19, 2024
Technology
0
440
「単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる」のか検証してみた
てらら
July 19, 2024
Tweet
Share
More Decks by てらら
See All by てらら
ID連携基盤のマイクロサービス移行プラクティス(freee技術の日)
terara
0
2.6k
Other Decks in Technology
See All in Technology
CyberAgent 生成AI Deep Dive with Amazon Web Services / genai-aws
cyberagentdevelopers
PRO
1
290
クライアントサイドでよく使われる Debounce処理 をサーバサイドで3回実装した話
yoshiori
1
110
顧客が本当に必要だったもの - パフォーマンス改善編 / Make what is needed
soudai
14
2.3k
GopherのMakefile愛はどこからきているのか教えてほしい #fukuokago/Gophers love Makefile
quiver
2
200
現実のRuby/Railsアップグレード
takeyuweb
3
2.8k
VPoE Meetup Vol.1 VPoEとして実践してきたことと反省点
coconala_engineer
3
240
Snowflakeでスロークエリ改善に取り組んだ話
tabata0208
0
160
Java x Spring Boot Warm up
kazu_kichi_67
2
390
KaigiOnRails2024
igaiga
6
2.9k
オニオンアーキテクチャで実現した 本質課題を解決する インフラ移行の実例
hryushm
11
2.3k
CI/CDやテスト自動化の開発プロジェクトへの適用
megascus
2
300
内製化によるシステムモダナイゼーションの実践
kazokmr
3
500
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Optimising Largest Contentful Paint
csswizardry
32
2.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
Unsuck your backbone
ammeep
668
57k
What's new in Ruby 2.0
geeforr
342
31k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
Fireside Chat
paigeccino
32
3k
Optimizing for Happiness
mojombo
376
69k
Agile that works and the tools we love
rasmusluckow
327
21k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
3
360
Transcript
「単なる OAuth 2.0 を認証に使うと、車が通れる ほどのどでかいセキュリティー・ホールができる」 のか検証してみた
車はカーシェア派 てらら プロフィール画像の トリミング⽅法
The problem with OAuth for Authentication. | Thread Safe (2012-01-29
John Bradley著) 単なる OAuth 2.0 を認証に使うと、⾞が通れるほどのどでかいセキュリティー‧ホールができる (Nat著) 今⽇話すこと
本当に⾞が通れるの?
親の顔よりも⾒たシーケンス(implicit flow) UA Client AZ RS 連携開始 認可リクエストURL リダイレクト 本⼈確認
& Clientへのアクセス権限許可 おけぺこー access_token access_token access_token
家と⾞に置き換えてみる UA Client AZ RS 家主 家 中古⾞ 販売店 不動産会社
access_token ⾞庫の鍵
家と⾞に置き換えてみる 家主 中古⾞販売店 A 不動産会社 家 家の駐⾞場に⾞置 きたい うちの店舗の証明書や ⾞庫の鍵くれ
⾞屋の証明書持ってきたんで⾞庫の鍵くれ 中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー ほな⾞庫の鍵や ⾞庫の鍵 ⾞庫開けて⾞⼊れるでー
おや…?中古車販売店Aさんの様子が…? 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置 きたい うちの店舗の証明書や ⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ
中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー ほな⾞庫の鍵や ⾞庫の鍵 ⾞庫開けて⾞⼊れるでー 中古⾞販売店Bはんに鍵渡したろ!
中古車販売店Bはんに鍵を渡してみるテスト 中古⾞販売店A 中古⾞販売店B 不動産会社 家主の家 家の駐⾞場に⾞置 きたい うちの店舗の証明書や ⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ
中古⾞販売店Bさんに⾞庫の鍵渡していいの? おけぺこー ほな中古⾞販売店Aさんの⾞庫の鍵や 家主の⾞庫の鍵 ⾞庫開けて⾞⼊れるでー 中古⾞販売店B「中古⾞販売店Aさんの⾞庫だ と思っていたのに、知らない家主さんの⾞庫 だった件」
結果 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置 きたい うちの店舗の証明書や ⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ
中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー ほな⾞庫の鍵や ⾞庫の鍵 ⾞庫開けて⾞⼊れるでー
Q.E.D.
親の顔よりも見たシーケンス(Authz code flow) 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置 きたい うちの店舗の証明書や
⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ 中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー 鍵の受け渡し書を渡しといて 鍵の受け渡し書 鍵の受け渡し書 ⾞庫の鍵 中古⾞販売店Aさんに直接鍵渡す からね
親の顔よりも見たシーケンス(Authz code flow + state) 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置
きたい うちの店舗の証明書や ⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ 中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー pass付き鍵の受け渡し書を渡しといて pass付き鍵の受け渡し書 鍵の受け渡し書 ⾞庫の鍵 証明書に秘密の⾔葉 付けとくから後で返してね 秘密の⾔葉検証するぞ
親の顔よりも見たシーケンス(Authz code flow + PKCE) 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置
きたい うちの店舗の証明書や ⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ 中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー 鍵の受け渡し書を渡しといて 鍵の受け渡し書 鍵の受け渡し書と パスワード ⾞庫の鍵 証明書に不動産会社さん⽤のパ スワード付けなあかんなった このパスワードは確かに中古⾞ 販売店Aさんやな
親の顔よりも見たシーケンス(PAR、JAR、RAR) 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置 きたい 紹介状渡してくれ ⾞屋から紹介状持ってきたっす 中古⾞販売店Aさんに⾞庫の鍵1本と予備にも
う1本渡していいの? 事前に紹介状書いてもらうのがPAR 依頼内容を検証できるのがJAR 家主さんの⾞庫の鍵くれ 依頼内容は署名付きっす 家主さん⽤の紹介状や おけぺこー 鍵の受け渡し書を渡しといて 中古⾞販売店Aが家主へのリクエスト内 容を細かく指定できるのがRAR
親の顔よりも見たシーケンス(Authz code flow + DPoP) 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置
きたい うちの店舗の証明書や ⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ 中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー 鍵の受け渡し書書を渡しといて 鍵の受け渡し書 鍵の受け渡し書 + OTP登録 ⾞庫の鍵 ⾞庫の鍵を使う際にワンタイム パスワードを付与せないかん なった(公開鍵の例えむずい) 所有者の検証ができるように なった ⾞庫の鍵 + OTP
車庫の鍵だけで済めば良いけど… 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置 きたい うちの店舗の証明書や ⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ
中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー ほな⾞庫の鍵や ⾞庫の鍵 ⾞庫開けて⾞⼊れるでー なんなら家の鍵も渡していい? って聞かれているケースもある (必要以上の権限要求)
そもそもここまで 家主を当⼈認証していないよね
最初のシーケンスに立ち返ると 家主 中古⾞販売店A 不動産会社 家 家の駐⾞場に⾞置 きたい うちの店舗の証明書や ⾞庫の鍵くれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ
中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー ほな⾞庫の鍵や ⾞庫の鍵 ⾞庫開けて⾞⼊れるでー ここまで、中古⾞販売店Aさんと 家主は契約済みの状態だった なので家主のこと ⾊々知ってます
親の顔よりも見たシーケンス(OIDC) 家主 中古⾞販売店A 不動産会社 家 不動産で家買ったから ⾞置きたいのよね うちの店舗の証明書や 不動産会社に⾞庫の鍵くれ⾔ってくれ ⾞屋の証明書持ってきたんで⾞庫の鍵くれ
中古⾞販売店Aさんに⾞庫の鍵渡していいの? おけぺこー 鍵の受け渡し書と家主との契約証明です 鍵の受け渡し書と 家主との契約証明 不動産証明書 ⾞庫の鍵 あんた、不動産会社と契約した てららさんやったんかー。 不動産会社から貰った契約証明を持っ てうちの契約も済ましとくわ。 知らない⼈として来てみる
検証結果: 昔は⾞が通れるけど、 最近の不動産会社はしっかりしている