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
470
「単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる」のか検証してみた
てらら
July 19, 2024
Tweet
Share
More Decks by てらら
See All by てらら
freeeにおけるOAuth_OIDCの活用とAuthleteへの移行
terara
1
100
ID連携基盤のマイクロサービス移行プラクティス(freee技術の日)
terara
0
3.5k
Other Decks in Technology
See All in Technology
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
170
5分でわかるDuckDB
chanyou0311
10
3.2k
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
450
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
MLOps の現場から
asei
5
620
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
1
230
私なりのAIのご紹介 [2024年版]
qt_luigi
1
110
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
31k
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
170
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
130
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
160
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
222
9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
The Language of Interfaces
destraynor
154
24k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
160
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
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さんに⾞庫の鍵渡していいの? おけぺこー 鍵の受け渡し書と家主との契約証明です 鍵の受け渡し書と 家主との契約証明 不動産証明書 ⾞庫の鍵 あんた、不動産会社と契約した てららさんやったんかー。 不動産会社から貰った契約証明を持っ てうちの契約も済ましとくわ。 知らない⼈として来てみる
検証結果: 昔は⾞が通れるけど、 最近の不動産会社はしっかりしている