Slide 1

Slide 1 text

ͦͷQRίʔυɺ҆શͰ͔͢ʁ ΫϩεσόΠεͷೝূೝՄϑϩʔʹજΉڴҖͱରࡦ 2024/8/22 @ritou (Ryo Ito)

Slide 2

Slide 2 text

എܠ 2

Slide 3

Slide 3 text

ೝূཁૉͷมԽ: ஌ࣝ৘ใ͔Βॴ࣋৘ใ+α΁ • ύεϫʔυೝূ͔ΒύεΩʔೝূ • ϚΠφϯόʔΧʔυͱ҉ূ൪߸ͰϚΠφϙʔλϧ(ΞϓϦ)ʹϩάΠϯ 3

Slide 4

Slide 4 text

ΫϩεσόΠεͳϑϩʔͷඞཁੑ • ར༻؀ڥͷଟ༷ԽɺෳࡶԽ • PCɺϞόΠϧ୺຤ɺεϚʔτσόΠε… • ϞόΠϧ୺຤Λத৺ͱͨ͠αʔϏεઃܭ 4

Slide 5

Slide 5 text

QRίʔυͷར༻ • ॊೈͳσʔλදݱͱऔΓѻ͍΍͢͞ • ҟͳΔσόΠεɺࢴͳͲͷഔମ͔ΒσόΠε΁ͷ઀ଓ • ࣗಈೝࣝ΍ਓؒʹΑΔ஥հͳͲଟ༷ͳϢʔεέʔεʹద༻Մೳ 5

Slide 6

Slide 6 text

QRίʔυͷऑ఺ • ಡΈࠐΉ·Ͱͦͷ಺༰͕Θ͔Βͣɺ”ਖ਼نͷ΋ͷ”Ͱ͋Δ൑அ͕ࠔ೉ • ୹ॖURLͱͷ૊Έ߹ΘͤͳͲ΋͋ΓಘΔͷͰ࠷ऴతʹ౸ୡ͢ΔURL Λૣ͍ஈ֊Ͱݕ஌͢Δͷ͸ࠔ೉ • QRίʔυͷʮఏࣔʯʮಡΈࠐΈʯΛਓ͕ؒߦ͏ϑϩʔͰ͸ʮ૝ఆ͠ ͍ͯͳ͍ୈ̏ऀͱͷೖΕସ͑ʯ͕༰қʹى͜Γ͏Δ <- ࠓճͷ࿩ • ※QRίʔυ ”͚ͩ” ͕ةͳ͍Θ͚Ͱ͸ͳ͍ <- λΠτϧ͸ϛεϦʔυ 6

Slide 7

Slide 7 text

ࣄྫ: QRίʔυΛ༻͍ͨϑΟογϯά߈ܸ • QRίʔυʹΞΫηε͢ΔͱϑΟογϯάαΠτʹ༠ಋ • ΫϨσϯγϟϧɺݸਓ৘ใɺΫϨΧ΍ޱ࠲ͳͲͷܾࡁ৘ใ • MitM ʹΑΓଟཁૉೝূΛಥഁͯ͠ϩάΠϯηογϣϯΛୣ͏ 7

Slide 8

Slide 8 text

ࣄྫ: QRίʔυܾࡁͰଞਓͷεΫγϣΛఏࣔ • ΩϟογϡϨεܾࡁͰ“ଞਓͷεΫγϣ”Λళһʹఏ͔ࣔʮඇৗʹ໡఺ ͩʯͱઐ໳Ո΋ڻ͍ͨ࠮ٗ൜ͷखޱͱରࡦ https://news.yahoo.co.jp/ articles/e627f4e43a3c48eafe013ae8a212bc522e3a6d58 8

Slide 9

Slide 9 text

৘ใηΩϡϦςΟ10େڴҖ 2024 [ݸਓ] ΫϩεσόΠεϑϩʔʹ͓͚ΔڴҖͱରࡦ͸े෼ʹೝࣝ͞Ε͍ͯΔʁ 9

Slide 10

Slide 10 text

͜͏͍͏ͷ͸҆શͱݴ͑·͔͢ʁ 10

Slide 11

Slide 11 text

ࠓճͷ಺༰ • ΫϩεσόΠεͷೝূೝՄϑϩʔʹ͓͚ΔڴҖͱରࡦ • IETF OAuth WGͰਐΊΒΕ͍ͯΔυΩϡϝϯτΛ঺հͭͭ͠ • ࢲ͕ͨͪ͢΂͖͜ͱͱ͸ʁ • ࢓༷ࡦఆऀɺαʔϏε։ൃऀɺϢʔβʔ 11

Slide 12

Slide 12 text

Cross-Device Flows: Security Best Current Practice (Draft 08) 12

Slide 13

Slide 13 text

Cross-Device Flows: Security Best Current Practice (Draft 08) • https://datatracker.ietf.org/doc/html/draft-ietf-oauth-cross-device- security • ΫϩεσόΠεϑϩʔʹؔ͢ΔڴҖɺରࡦ(؇࿨ࡦ)ɺϓϩτίϧબ୒ ͷΨΠμϯεɺܗࣜ෼ੳͷ֓ཁ 13

Slide 14

Slide 14 text

ొ৔͢Δϓϩτίϧ • IETF OAuth 2.0 Device Authorization Grant [RFC8628] • ೖྗػೳʹ੍ݶ͕͋ΔσόΠε΁ϦιʔεΞΫηεΛڐՄ • OpenID Foundation Client Initiated Back-Channel Authentication (CIBA) • Ϣʔβʔ΁ͷ௨஌Λϕʔεͱͨ͠ΫϩεσόΠεͳID࿈ܞ • FIDO2 / WebAuthn (hybrid transports) • ΫϩεσόΠεͳύεΩʔೝূ 14

Slide 15

Slide 15 text

ΫϩεσόΠεϑϩʔͷొ৔ਓ෺ ফඅσόΠε ೝՄσόΠε Ϣʔβʔ 15

Slide 16

Slide 16 text

ΫϩεσόΠεϑϩʔύλʔϯ • ΫϩεσόΠεೝՄ(ೝূ) • ফඅσόΠε͔ΒೝՄσόΠε΁Ϣʔβʔ͕ೝՄϦΫΤετΛసૹ: OAuth 2.0 AuthZ Grant • ফඅσόΠε͔ΒೝՄσόΠε΁ೝՄϦΫΤετ͕όοΫνϟϯωϧͰసૹ: CIBA • ೝՄσόΠε͔ΒফඅσόΠε΁Ϣʔβʔ͕ೝՄϨεϙϯεΛసૹ: OAuth 1.0 (callback = oob) • σόΠεؒͷηογϣϯసૹ • ೝՄσόΠε͔ΒফඅσόΠε΁Ϣʔβʔ͕ηογϣϯΛసૹ: OID4VCI 16

Slide 17

Slide 17 text

ΫϩεσόΠεϑϩʔͷѱ༻ • ୈ̏ऀͷಉҙΛಘ֤ͯछτʔΫϯΛऔಘ͢Δ͜ͱ: Cross-Device Consent Phishing(CDCP) • ߈ܸऀ͸ೝূ͞Ε͍ͯͳ͍νϟϯωϧΛར༻ͯ͠ɺϢʔβʔίϯςΩετΛ ඃ֐ऀͷ΋ͷʹมߋ͢Δ • ୈ̏ऀͷϩάΠϯηογϣϯΛऔಘ͢Δ͜ͱ: Cross-Device Session Phishing(CDSP) • ߈ܸऀ͸ೝূ͞Ε͍ͯͳ͍νϟϯωϧΛར༻ͯࣗ͠਎ͷσόΠεʹඃ֐ऀ ͷηογϣϯΛసૹͤ͞Δ 17

Slide 18

Slide 18 text

Ϣʔβʔ͕ೝՄϦΫΤετΛసૹ 18

Slide 19

Slide 19 text

όοΫνϟϯωϧͰೝՄϦΫΤετΛసૹ 19

Slide 20

Slide 20 text

Ϣʔβʔ͕ೝՄϨεϙϯεΛసૹ 20

Slide 21

Slide 21 text

σόΠεؒͷηογϣϯసૹ 21

Slide 22

Slide 22 text

߈ܸͷಛ௃ • ιʔγϟϧΤϯδχΞϦϯάΛۦ࢖ͯ͠ɺ࠷ऴతʹ߈ܸऀͷσόΠε ্Ͱͷඃ֐ऀͷίϯςΩετͰͷೝূॲཧɺ߈ܸऀͷσόΠε΁ͷ ηογϣϯసૹΛ࣮ݱ͢Δ • ॲཧͷ్தͰѻΘΕΔೝՄϦΫΤετɺϨεϙϯεͳͲ͸ਖ਼نͷ΋ͷ Ͱ͋Γɺվ᜵ͳͲΛ͢Δඞཁ͸ͳ͍ 22

Slide 23

Slide 23 text

ରࡦ • ࣮༻తͳ؇࿨ࡦʹΑΔଟ૚๷ޚͱ͍͏ߟ͑ํ 1. ߈ܸΛ։࢝͞Εͳ͍ 2. ։࢝͞Εͨ߈ܸΛ્ࢭͰ͖Δ 3. ߈ܸ͕੒ޭͨ͠৔߹ʹ΋ɺӨڹΛܰݮͨ͠ΓϦΧόϦʔͰ͖Δ 23

Slide 24

Slide 24 text

؇࿨ࡦ(1) • ۙ઀ੑͷཱ֬ • QRίʔυɺϢʔβʔίʔυͷ੍ݶ(༗ޮظݶɺ࢖༻ճ਺ɺϢχʔΫੑ ͳͲ) • ίϯςϯπϑΟϧλϦϯά • ݕग़ͱϦΧόϦʔ • ৴པͰ͖ΔσόΠεɺωοτϫʔΫ 24

Slide 25

Slide 25 text

؇࿨ࡦ(2) • ϦιʔεΞΫηεʹඞཁͳτʔΫϯͷ੍ݶ(είʔϓ΍༗ޮظݶ) • Ϩʔτ੍ݶ • Sender-Constrained ͳτʔΫϯ • UXɺϢʔβʔڭҭ • ೝূ͔ͯ͠Β։࢝ • ϦΫΤετ։࢝ͷݕূɺOOBσʔλΛ༻͍ͨϦΫΤετόΠϯσΟϯά 25

Slide 26

Slide 26 text

؇࿨ࡦͷಛੑΛߟྀ͠ɺ૊Έ߹ΘͤΔ 26

Slide 27

Slide 27 text

୭͕ԿΛ͢΂͖͔ 27

Slide 28

Slide 28 text

ࢲ͕ͨͪ͢΂͖͜ͱ • ࢓༷ࡦఆऀ • ܗࣜ෼ੳΛར༻ͨ͠ڴҖ෼ੳͱରࡦݕ౼ɺϕετϓϥΫςΟεͷఏࣔ • αʔϏεͷ։ൃऀ • ্هΛࢀর͠ͳ͕Β࣮૷ɺϢʔβʔʹਖ਼͍͠ར༻ํ๏Λఏࣔ • Ϣʔβʔ • αʔϏε͕ఏࣔ͢Δར༻ํ๏Λकͬͯར༻ 28

Slide 29

Slide 29 text

·ͱΊ 29

Slide 30

Slide 30 text

·ͱΊ • QRίʔυΛ࢖ͬͨΫϩεσόΠεͷೝূೝՄϑϩʔʹ஫໨ • ೝূ͞Ε͍ͯͳ͍νϟϯωϧΛར༻ͯ͠ୈ̏ऀͷϩάΠϯηογϣϯɺ ΞΫηεڐՄΛૂ͏ڴҖ͕ଘࡏ͢Δ • ιʔγϟϧΤϯδχΞϦϯάΛۦ࢖ͯ͠ਖ਼نͷϦΫΤετɺϨεϙϯ εͷϢʔβʔίϯςΩετΛมߋ͢Δ • ؇࿨ࡦΛ૊Έ߹ΘͤΔଟ૚๷ޚͱ͍͏ߟ͑ • ࢓༷ࡦఆऀɺ։ൃऀɺϢʔβʔͦΕͧΕͰ͢΂͖͜ͱΛ͠·͠ΐ͏ 30