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
670
4
Share
そのQRコード、安全ですか? / Cross Device Flow
ritou
August 22, 2024
More Decks by ritou
See All by ritou
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
2
1.2k
“パスワードレス認証への道" ユーザー認証の変遷とパスキーの関係
ritou
2
6.8k
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
12
7.8k
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 + α
ritou
1
170
Password-less Journey - パスキーへの移行を見据えたユーザーの準備 @ AXIES 2024
ritou
4
1.8k
OIDF-J EIWG 振り返り
ritou
2
110
MIXI Mと社内外のサービスを支える認証基盤を作るためにやってきたこと #MTDC2024
ritou
3
810
Passkeys and Identity Federation @ OpenID Summit Tokyo 2024
ritou
2
1.1k
Webアプリ開発者向け パスキー対応の始め方
ritou
4
7k
Other Decks in Technology
See All in Technology
Cortex Codeのコスト見積ヒントご紹介
yokatsuki
0
130
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
130
AI와 협업하는 조직으로의 여정
arawn
0
560
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
4
4.4k
AWS Transform CustomでIaCコードを自由自在に変換しよう
duelist2020jp
0
200
「責任あるAIエージェント」こそ自社で開発しよう!
minorun365
10
2.5k
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
4
1.6k
Standards et agents IA : un tour d’horizon de MCP, A2A, ADK et plus encore
glaforge
0
210
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
12
38k
Angular Architecture Revisited Modernizing Angular Architectural Patterns
rainerhahnekamp
0
100
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
170
ServiceNow Knowledge 26 の歩き方
manarobot
0
250
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
490
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
340
We Have a Design System, Now What?
morganepeng
55
8.1k
[SF Ruby Conf 2025] Rails X
palkan
2
980
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.6k
30 Presentation Tips
portentint
PRO
1
280
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Code Review Best Practice
trishagee
74
20k
The Curse of the Amulet
leimatthew05
1
12k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
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