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
そのQRコード、安全ですか? / Cross Device Flow
Search
ritou
August 22, 2024
Technology
4
410
そのQRコード、安全ですか? / Cross Device Flow
ritou
August 22, 2024
Tweet
Share
More Decks by ritou
See All by ritou
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 + α
ritou
0
63
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 @ AXIES 2024
ritou
4
1.6k
OIDF-J EIWG 振り返り
ritou
2
34
MIXI Mと社内外のサービスを支える認証基盤を作るためにやってきたこと #MTDC2024
ritou
3
510
Passkeys and Identity Federation @ OpenID Summit Tokyo 2024
ritou
2
740
Webアプリ開発者向け パスキー対応の始め方
ritou
4
6.2k
様々なユースケースに利用できる "パスキー" の 導入事例の紹介とUXの課題解説 @ DroidKaigi 2023
ritou
3
4.7k
パスキーはユーザー認証を どう変えるのか?その特徴と導入における課題 @ devsumi 2023 9-C-1
ritou
6
13k
Android/Chromeで体験できる 認証のための標準化仕様の 現在と未来 @ DroidKaigi 2022
ritou
2
7.2k
Other Decks in Technology
See All in Technology
Larkご案内資料
customercloud
PRO
0
470
テストアーキテクチャ設計で実現する高品質で高スピードな開発の実践 / Test Architecture Design in Practice
ropqa
3
450
Amazon Aurora バージョンアップについて、改めて理解する ~バージョンアップ手法と文字コードへの影響~
smt7174
1
460
マルチデータプロダクト開発・運用に耐えるためのデータ組織・アーキテクチャの遷移
mtpooh
1
400
A Hidden Pitfall of K8s DNS with Spring Webflux
musaprg
0
320
Amazon Location Serviceを使ってラーメンマップを作る
ryder472
2
260
技術的負債解消の取り組みと専門チームのお話 #技術的負債_Findy
bengo4com
1
1k
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
120k
talk_about_wasmwasi
junkishigaki
0
110
第13回 Data-Centric AI勉強会, 画像認識におけるData-centric AI
ksaito_osx
0
220
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
56k
APIファーストで実現する運用性の高い IoT プラットフォーム: SORACOMのアプローチ
soracom
PRO
0
150
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
29
4.5k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Unsuck your backbone
ammeep
669
57k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
300
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Transcript
ͦͷQRίʔυɺ҆શͰ͔͢ʁ ΫϩεσόΠεͷೝূೝՄϑϩʔʹજΉڴҖͱରࡦ 2024/8/22 @ritou (Ryo Ito)
എܠ 2
ೝূཁૉͷมԽ: ࣝใ͔Βॴ࣋ใ+α • ύεϫʔυೝূ͔ΒύεΩʔೝূ • ϚΠφϯόʔΧʔυͱ҉ূ൪߸ͰϚΠφϙʔλϧ(ΞϓϦ)ʹϩάΠϯ 3
ΫϩεσόΠεͳϑϩʔͷඞཁੑ • ར༻ڥͷଟ༷ԽɺෳࡶԽ • PCɺϞόΠϧɺεϚʔτσόΠε… • ϞόΠϧΛத৺ͱͨ͠αʔϏεઃܭ 4
QRίʔυͷར༻ • ॊೈͳσʔλදݱͱऔΓѻ͍͢͞ • ҟͳΔσόΠεɺࢴͳͲͷഔମ͔ΒσόΠεͷଓ • ࣗಈೝࣝਓؒʹΑΔհͳͲଟ༷ͳϢʔεέʔεʹద༻Մೳ 5
QRίʔυͷऑ • ಡΈࠐΉ·Ͱͦͷ༰͕Θ͔Βͣɺ”ਖ਼نͷͷ”Ͱ͋Δஅ͕ࠔ • ॖURLͱͷΈ߹ΘͤͳͲ͋ΓಘΔͷͰ࠷ऴతʹ౸ୡ͢ΔURL Λૣ͍ஈ֊Ͱݕ͢Δͷࠔ • QRίʔυͷʮఏࣔʯʮಡΈࠐΈʯΛਓ͕ؒߦ͏ϑϩʔͰʮఆ͠ ͍ͯͳ͍ୈ̏ऀͱͷೖΕସ͑ʯ͕༰қʹى͜Γ͏Δ <-
ࠓճͷ • ※QRίʔυ ”͚ͩ” ͕ةͳ͍Θ͚Ͱͳ͍ <- λΠτϧϛεϦʔυ 6
ࣄྫ: QRίʔυΛ༻͍ͨϑΟογϯά߈ܸ • QRίʔυʹΞΫηε͢ΔͱϑΟογϯάαΠτʹ༠ಋ • ΫϨσϯγϟϧɺݸਓใɺΫϨΧޱ࠲ͳͲͷܾࡁใ • MitM ʹΑΓଟཁૉೝূΛಥഁͯ͠ϩάΠϯηογϣϯΛୣ͏ 7
ࣄྫ: QRίʔυܾࡁͰଞਓͷεΫγϣΛఏࣔ • ΩϟογϡϨεܾࡁͰ“ଞਓͷεΫγϣ”Λళһʹఏ͔ࣔʮඇৗʹ ͩʯͱઐՈڻ͍ͨٗ൜ͷखޱͱରࡦ https://news.yahoo.co.jp/ articles/e627f4e43a3c48eafe013ae8a212bc522e3a6d58 8
ใηΩϡϦςΟ10େڴҖ 2024 [ݸਓ] ΫϩεσόΠεϑϩʔʹ͓͚ΔڴҖͱରࡦेʹೝࣝ͞Ε͍ͯΔʁ 9
͜͏͍͏ͷ҆શͱݴ͑·͔͢ʁ 10
ࠓճͷ༰ • ΫϩεσόΠεͷೝূೝՄϑϩʔʹ͓͚ΔڴҖͱରࡦ • IETF OAuth WGͰਐΊΒΕ͍ͯΔυΩϡϝϯτΛհͭͭ͠ • ࢲ͕͖ͨͪ͢͜ͱͱʁ •
༷ࡦఆऀɺαʔϏε։ൃऀɺϢʔβʔ 11
Cross-Device Flows: Security Best Current Practice (Draft 08) 12
Cross-Device Flows: Security Best Current Practice (Draft 08) • https://datatracker.ietf.org/doc/html/draft-ietf-oauth-cross-device-
security • ΫϩεσόΠεϑϩʔʹؔ͢ΔڴҖɺରࡦ(؇ࡦ)ɺϓϩτίϧબ ͷΨΠμϯεɺܗࣜੳͷ֓ཁ 13
ొ͢Δϓϩτίϧ • IETF OAuth 2.0 Device Authorization Grant [RFC8628] •
ೖྗػೳʹ੍ݶ͕͋ΔσόΠεϦιʔεΞΫηεΛڐՄ • OpenID Foundation Client Initiated Back-Channel Authentication (CIBA) • Ϣʔβʔͷ௨Λϕʔεͱͨ͠ΫϩεσόΠεͳID࿈ܞ • FIDO2 / WebAuthn (hybrid transports) • ΫϩεσόΠεͳύεΩʔೝূ 14
ΫϩεσόΠεϑϩʔͷొਓ ফඅσόΠε ೝՄσόΠε Ϣʔβʔ 15
ΫϩεσόΠεϑϩʔύλʔϯ • ΫϩεσόΠεೝՄ(ೝূ) • ফඅσόΠε͔ΒೝՄσόΠεϢʔβʔ͕ೝՄϦΫΤετΛసૹ: OAuth 2.0 AuthZ Grant •
ফඅσόΠε͔ΒೝՄσόΠεೝՄϦΫΤετ͕όοΫνϟϯωϧͰసૹ: CIBA • ೝՄσόΠε͔ΒফඅσόΠεϢʔβʔ͕ೝՄϨεϙϯεΛసૹ: OAuth 1.0 (callback = oob) • σόΠεؒͷηογϣϯసૹ • ೝՄσόΠε͔ΒফඅσόΠεϢʔβʔ͕ηογϣϯΛసૹ: OID4VCI 16
ΫϩεσόΠεϑϩʔͷѱ༻ • ୈ̏ऀͷಉҙΛಘ֤ͯछτʔΫϯΛऔಘ͢Δ͜ͱ: Cross-Device Consent Phishing(CDCP) • ߈ܸऀೝূ͞Ε͍ͯͳ͍νϟϯωϧΛར༻ͯ͠ɺϢʔβʔίϯςΩετΛ ඃऀͷͷʹมߋ͢Δ •
ୈ̏ऀͷϩάΠϯηογϣϯΛऔಘ͢Δ͜ͱ: Cross-Device Session Phishing(CDSP) • ߈ܸऀೝূ͞Ε͍ͯͳ͍νϟϯωϧΛར༻ͯࣗ͠ͷσόΠεʹඃऀ ͷηογϣϯΛసૹͤ͞Δ 17
Ϣʔβʔ͕ೝՄϦΫΤετΛసૹ 18
όοΫνϟϯωϧͰೝՄϦΫΤετΛసૹ 19
Ϣʔβʔ͕ೝՄϨεϙϯεΛసૹ 20
σόΠεؒͷηογϣϯసૹ 21
߈ܸͷಛ • ιʔγϟϧΤϯδχΞϦϯάΛۦͯ͠ɺ࠷ऴతʹ߈ܸऀͷσόΠε ্ͰͷඃऀͷίϯςΩετͰͷೝূॲཧɺ߈ܸऀͷσόΠεͷ ηογϣϯసૹΛ࣮ݱ͢Δ • ॲཧͷ్தͰѻΘΕΔೝՄϦΫΤετɺϨεϙϯεͳͲਖ਼نͷͷ Ͱ͋Γɺվ᜵ͳͲΛ͢Δඞཁͳ͍ 22
ରࡦ • ࣮༻తͳ؇ࡦʹΑΔଟޚͱ͍͏ߟ͑ํ 1. ߈ܸΛ։࢝͞Εͳ͍ 2. ։࢝͞Εͨ߈ܸΛ્ࢭͰ͖Δ 3. ߈ܸ͕ޭͨ͠߹ʹɺӨڹΛܰݮͨ͠ΓϦΧόϦʔͰ͖Δ 23
؇ࡦ(1) • ۙੑͷཱ֬ • QRίʔυɺϢʔβʔίʔυͷ੍ݶ(༗ޮظݶɺ༻ճɺϢχʔΫੑ ͳͲ) • ίϯςϯπϑΟϧλϦϯά • ݕग़ͱϦΧόϦʔ
• ৴པͰ͖ΔσόΠεɺωοτϫʔΫ 24
؇ࡦ(2) • ϦιʔεΞΫηεʹඞཁͳτʔΫϯͷ੍ݶ(είʔϓ༗ޮظݶ) • Ϩʔτ੍ݶ • Sender-Constrained ͳτʔΫϯ • UXɺϢʔβʔڭҭ
• ೝূ͔ͯ͠Β։࢝ • ϦΫΤετ։࢝ͷݕূɺOOBσʔλΛ༻͍ͨϦΫΤετόΠϯσΟϯά 25
؇ࡦͷಛੑΛߟྀ͠ɺΈ߹ΘͤΔ 26
୭͕ԿΛ͖͔͢ 27
ࢲ͕͖ͨͪ͢͜ͱ • ༷ࡦఆऀ • ܗࣜੳΛར༻ͨ͠ڴҖੳͱରࡦݕ౼ɺϕετϓϥΫςΟεͷఏࣔ • αʔϏεͷ։ൃऀ • ্هΛࢀর͠ͳ͕Β࣮ɺϢʔβʔʹਖ਼͍͠ར༻ํ๏Λఏࣔ •
Ϣʔβʔ • αʔϏε͕ఏࣔ͢Δར༻ํ๏Λकͬͯར༻ 28
·ͱΊ 29
·ͱΊ • QRίʔυΛͬͨΫϩεσόΠεͷೝূೝՄϑϩʔʹ • ೝূ͞Ε͍ͯͳ͍νϟϯωϧΛར༻ͯ͠ୈ̏ऀͷϩάΠϯηογϣϯɺ ΞΫηεڐՄΛૂ͏ڴҖ͕ଘࡏ͢Δ • ιʔγϟϧΤϯδχΞϦϯάΛۦͯ͠ਖ਼نͷϦΫΤετɺϨεϙϯ εͷϢʔβʔίϯςΩετΛมߋ͢Δ •
؇ࡦΛΈ߹ΘͤΔଟޚͱ͍͏ߟ͑ • ༷ࡦఆऀɺ։ൃऀɺϢʔβʔͦΕͧΕͰ͖͢͜ͱΛ͠·͠ΐ͏ 30