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
次世代の認証(WebAuthn/FIDO2)について説明を試みる
Search
OSCA
November 09, 2018
Technology
2
1.5k
次世代の認証(WebAuthn/FIDO2)について説明を試みる
2018年11月09日(金) に開催された「WEBエンジニア勉強会 #10」で 、Web Authentication (WebAuthn) / FIDO2 について発表しました。
OSCA
November 09, 2018
Tweet
Share
More Decks by OSCA
See All by OSCA
人工肉を食べよう / Let's eat fake meat
oscasierra
4
1.3k
WEBサイトを HTTP/2 に移行した話 / HTTP2
oscasierra
1
2.2k
WEBサイトが「できた」と安心する前に最終チェックすること
oscasierra
1
2k
Service Worker
oscasierra
1
1.5k
Growth of Podcast
oscasierra
0
1.5k
AIの知識無しでもAIを活用したQ&Aページを作る方法
oscasierra
1
1.2k
はじめてのサーバレス関数 (WEBエンジニア勉強会 #06)
oscasierra
0
970
みんなテストってどうやってるの?
oscasierra
0
500
HTTPレイヤーで行うパフォーマンスチューニング (WEBエンジニア勉強会 #05)
oscasierra
1
3.3k
Other Decks in Technology
See All in Technology
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1.1k
Android Audio: Beyond Winning On It
atsushieno
0
3.4k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
10
75k
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
3
590
LLM時代のパフォーマンスチューニング:MongoDB運用で試したコンテキスト活用の工夫
ishikawa_pro
0
170
エンジニアが主導できる組織づくり ー 製品と事業を進化させる体制へのシフト
ueokande
1
110
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
180
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
400
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
390
AWSで始める実践Dagster入門
kitagawaz
1
750
「その開発、認知負荷高すぎませんか?」Platform Engineeringで始める開発者体験カイゼン術
sansantech
PRO
2
920
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
460
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Visualization
eitanlees
148
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Typedesign – Prime Four
hannesfritz
42
2.8k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Raft: Consensus for Rubyists
vanstee
140
7.1k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
How GitHub (no longer) Works
holman
315
140k
A better future with KSS
kneath
239
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
930
Transcript
04$" ᖛҰೋࡾ !FOHJOFFS@PTDB ࣍ੈͷೝূʹ͍ͭͯઆ໌ΛࢼΈΔ 8FC"VUIFOUJDBUJPO"1*'*%0 8&#ΤϯδχΞษڧձ
ࣗݾհ © OSCA 04$"ᖛҰೋࡾ ·ͷ͔ͣ;Έ 4*FSܠࣸਅՈ * ʮ8&#ΤϯδχΞษڧձʯΛओ࠵ *
+BWB 1)1ܥͷ8&#ΤϯδχΞ * ਓೳ "* ͷ։ൃͬͯΔ * ݸਓͰ714आΓͯ8&#αʔϏεΛӡӦ͢Δͷ͕झຯ * ເͷࠃɹెาݍॅΈ * !FOHJOFFS@PTDB!PTDBQIPUP!EJTOFZ@PTDB
© OSCA ͲΜͳ͜ͱ͢ͷʁ
ʮύεϫʔυೝূʯͷ՝Λղܾ͢Δ࣍ੈͷೝূ © OSCA ΞΧϯτ ύεϫʔυ ϩάΠϯ 8&#ͷੈքʹ͓͍ͯύεϫʔυΛར༻ͨ͠ೝূʹมΘ Δɺ৽͍͠ೝূٕज़͕ීٴ͠͡ΊΑ͏ͱ͍ͯ͠·͢ɻ
ʮύεϫʔυೝূʯͷ՝Λղܾ͢Δ࣍ੈͷೝূ © OSCA ͱ͍͏͍ͷதͰɺ ʮͲΜͳͷͳͷ͔ʯͱ͍͏֓ཁΛ͓͍͑ͨ͠ͱࢥ͍·͢ɻ
© OSCA ࠓ͢͜ͱʹؔ࿈͢Δχϡʔε
© OSCA ݄1VCMJDLFZ ύεϫʔυʹґଘ͠ͳ͍ೝূʮ8FC"VUIOʯΛ$ISPNF'JSFGPY&EHF͕࣮։ ࢝ɺ8$͕ඪ४Խɻ8FCύεϫʔυʹґଘ͠ͳ͍ΑΓ҆શͰศརͳͷ IUUQTXXXQVCMJDLFZKQCMPHXFCBVUIODISPNFGJSFGPYFEHFXDXFCIUNM l(PPHMFɺ.P[JMMBɺϚΠΫϩιϑτ͕ ʮ8FC"VUIOʯͷ࣮Λ։࢝ɻ͜ΕʹΑ ͬͯʮ'*%0ʯͷීٴ͕ظ͞Εɺ8FC ϒϥβ͔ΒࢦೝূإೝূͳͲͰ؆
୯ʹ8FCαΠτͷϩάΠϯࢧ͍ͷ ঝೝͱ͍ͬͨૢ࡞͕࣮ݱ͞Εͦ͏ͩɻz
© OSCA ݄*5NFEJBΤϯλʔϓϥΠζ ʮ'JSFGPYʯެ։ɺύεϫʔυʹґଘ͠ͳ͍ೝূʮ8FC"VUIOʯΛαϙʔτ IUUQXXXJUNFEJBDPKQFOUFSQSJTFBSUJDMFTOFXTIUNM l৽͍͠ηΩϡϦςΟػೳͱͯ͠ɺύεϫ ʔυʹґଘ͠ͳ͍ೝূํ๏ͷʮ8FC "VUIFOUJDBUJPOʢ8FC"VUIOʣʯΛα ϙʔτͨ͠ɻz
© OSCA ݄;%/FU+BQBO ʮ(PPHMF$ISPNFʯ҆ఆ൛ϦϦʔεʮ4QFDUSFʯ؇ࡦɺʮ8FC"VUIOʯର ԠͳͲ IUUQTKBQBO[EOFUDPNBSUJDMF l݅ͷηΩϡϦςΟमਖ਼Λࢪͨ͠΄ ͔ɺύεϫʔυʹґଘ͠ͳ͍৽ͨͳೝূ ํࣜʮ8FC"VUIOʯʹσϑΥϧτͰରԠ ͢Δɻ
தུ ࢦεϚʔτϑΥϯʹอ ଘ͞Εͨإը૾ͷΑ͏ͳੜମೝূใɺ ͋Δ͍:VCJLFZͷೝূσόΠεͷΑ͏ ͳ64#ϋʔυΣΞΛར༻ͯ͠Σϒα ΠτʹαΠϯΞοϓ͢ΔखஈΛఏڙ͢ Δɻz
© OSCA ݄1VCMJDLFZ ϚΠΫϩιϑτɺ8FC"VUIOΛ&EHFʹ࣮ɻύεϫʔυෆཁɺੜମೝূ1*/Ͱ 8FCαΠτϩάΠϯՄೳʹɻळͷ8JOEPXTΞοϓσʔτͰ IUUQTXXXQVCMJDLFZKQCMPHXFCBVUIOFEHFQJOXFCXJOEPXT@IUNM lϚΠΫϩιϑτɺ݄ࠒʹ༧ ఆ͞Ε͍ͯΔ8JOEPXTͷେܕΞοϓ σʔτʢ34ʣʹ͚ͯ։ൃதͷ࠷৽Ϗ ϧυɺ8JOEPXTCVJMEͰɺ
ύεϫʔυෆཁͰ8FCαΠτʹϩάΠϯ Ͱ͖Δඪ४༷ʮ8FC"VUIOʯΛ .JDSPTPGU&EHFʹ࣮ͨ͜͠ͱΛ໌Β ͔ʹ͠·ͨ͠ɻz
© OSCA ݄1VCMJDLFZ $ISPNF͔Βɺ8FC"VUIOͰ.BDͷ5PVDI*%ͱ"OESPJEͷࢦೝূ͕σϑΥϧ τͰར༻Մೳʹɻ8FCαΠτͷϩάΠϯλονͰ IUUQTXXXQVCMJDLFZKQCMPHDISPNF@XFCBVUIONBDUPVDIJEBOESPJEIUNM l(PPHMF݄ʹϦϦʔεͨ͠$ISPNF Ͱ8FC"VUIOͷରԠΛߦ͍·ͨ͠ ͕ɺ݄ʹϦϦʔε͞ΕΔ$ISPNF Ͱ࣮ΛਐԽͤ͞ɺσϑΥϧτͰ.BD
ͷ5PVDI*%ͱ"OESPJEͷࢦೝূʹରԠ ͢Δ͜ͱΛ໌Β͔ʹ͠·ͨ͠ɻz
© OSCA ݄Ϡϑʔגࣜձࣾ Ϡϑʔɺ৽ͨͳΣϒೝূͷن֨ʮ'*%0ʯͷ'*%0$FSUJGJFEʢೝఆʣΛࠃا ۀͰ།ҰऔಘɹύεϫʔυΛΘͳ͍҆શͳϩάΠϯڥͷ࣮ݱʹલਐ IUUQTBCPVUZBIPPDPKQQSSFMFBTFB lϠϑʔגࣜձࣾɺੜମೝূͳͲͷ࣍ੈ ೝূͷඪ४ԽΛఏএ͢Δۀքஂମ '*%0ʢϑΝΠυʣΞϥΠΞϯεͷ৽ͨͳ ن֨ʮ'*%0ʯͷೝఆΛɺ݄ʹ
ੈքͰॳΊͯ։࠵͞Εͨʮ'*%0ʯೝఆ ςετʹ͓͍ͯɺ͜ͷͨͼऔಘͨ͜͠ͱ Λ͓Βͤ͠·͢ɻࠃاۀͰ།Ұͷ ೝఆऔಘͱͳΓ·͢ɻz
© OSCA ݄Ϡϑʔגࣜձࣾ Ϡϑʔɺ"OESPJEεϚʔτϑΥϯͷΣϒϒϥβʔ্ͰͷϩάΠϯ͕ࢦೝূͳ ͲͷੜମೝূʹରԠ IUUQTBCPVUZBIPPDPKQQSSFMFBTFB l"OESPJEεϚʔτϑΥϯͷΣϒϒϥ βʔ্ʹ͓͍ͯɺϠϑʔͷαʔϏεʹࢦ ೝূͳͲͷੜମೝূΛ༻ͯ͠ϩάΠ ϯͰ͖ΔΑ͏ʹͳΓ·ͨ͠ɻz
l·ͣ"OESPJEͷදతͳΣϒϒϥ βʔͰ͋Δʮ(PPHMF$ISPNFʯʹରԠ ͍ͨ͠·͢ɻຊػೳɺ:BIPP+"1"/ *%ʹϩάΠϯ্ͨ͠Ͱɺੜମೝূͷઃఆ ʹɺ༻͢Δ"OESPJEεϚʔτϑΥϯΛ ొ͢Δ͜ͱͰར༻Ͱ͖·͢ɻz
© OSCA χϡʔε͔ΒಡΈऔΕΔ͜ͱʁ
֤छϒϥβ͕ʮ8FC"VUIOʯʹରԠ © OSCA ݄ 'JSFGPY ݄ (PPHMF$ISPNF ·ͳ͘ .JDSPTPGU&EHF
֤छϒϥβ͕ʮ8FC"VUIOʯʹରԠ © OSCA ݄ 'JSFGPY ݄ (PPHMF$ISPNF ·ͳ͘ .JDSPTPGU&EHF ύεϫʔυ͕ෆཁͷ
ೝূํࣜΒ͍͠
Ϡϑʔגࣜձࣾࠃ།Ұͷ'*%0ೝఆऔಘ © OSCA
© OSCA '*%0ΞϥΠΞϯε
'*%0ΞϥΠΞϯε 'BTU*%FOUJUZ0OMJOF"MMJBODF © OSCA ੜମೝূΛϕʔεͱͨ͠ศརͰ҆શͳΦϯϥΠϯೝূΛ࣮ݱ ͢ΔͨΊʹɺʹ݁͞Εͨۀքஂମɻ <Ճໍஂମൈਮ> .JDSPTPGU (PPHMF "NB[PO
.BTUFS$BSE 7*4" ࢜௨ υίϞ -*/& େຊҹ ָఱ ࡾඛ6'+ Ϡϑʔ
8FC"VUIOͷي © OSCA 8$ʹ'*%0ͷ8FC"1*෦Λఏग़ɻ 8$8FC"VUIFOUJDBUJPOϫʔΩϯάάϧʔϓൃɻ 8FC"VUIFOUJDBUJPO 8FC"VUIO "1*קࠂީิʹɻ
© OSCA Έͷ֓ཁ
ύεϫʔυೝূͷ՝ © OSCA ଟ͘ͷ8&#αΠτͰར༻͞Ε͍ͯΔʮύεϫʔυೝূʯɺ ࣍ͷΑ͏ͳ՝͕͋Γ·͢ɻ ✓ ͓͔֮͑ͯͳ͍ͱ͍͚ͳ͍ ֮͑ΒΕͳ͍ ✓
ೖྗ͕໘͍͘͞ ✓ ࿙Ӯ͍͢͠ ✓ ࠶ར༻͕Մೳ རศੑ ҆શੑ
ύεϫʔυೝূͷ՝ © OSCA ʮΞΧϯτʯͱʮύεϫʔυʯͷೝূͰɺωοτϫʔΫ தΛʮύεϫʔυʯ͕ྲྀΕͯ͠·͍ͬͯΔɻ tGb9T3hM!gLaThB14P ೝূ
ύεϫʔυೝূͷ՝ © OSCA ͬͱzศརzͰz҆શzͳΈ͕͋Εྑ͍ͷʹɾɾɾ
৽͍͠ೝূͷΈ ֓ཁ © OSCA ➢ ύεϫʔυ େͳͷ ΛωοτϫʔΫதʹྲྀ͞ͳ͍ɻ tGb9T3hM!gLaThB14P
৽͍͠ೝূͷΈ ֓ཁ © OSCA ➢ ύεϫʔυ େͳͷ ΛωοτϫʔΫதʹྲྀ͞ͳ͍ɻ ➢ ೝূσόΠεଆͷzศརͳํ๏lͰߦ͏ɻ
tGb9T3hM!gLaThB14P ೝূ
৽͍͠ೝূͷΈ ֓ཁ © OSCA ➢ ύεϫʔυ େͳͷ ΛωοτϫʔΫதʹྲྀ͞ͳ͍ɻ ➢ ೝূσόΠεଆͷzศརͳํ๏zͰߦ͏ɻ
➢ ೝূ݁ՌΛαʔόʔʹૹ৴͢Δɻ tGb9T3hM!gLaThB14P ೝূ݁Ռ ೝূ
৽͍͠ೝূͷΈ ֓ཁ © OSCA ͜͜·Ͱͷઆ໌͚ͩͩͱ ʮೝূ݁ՌΛӕ͔ͭΕͨΒͲ͏͢ΔΜͩʁʯ ͱࢥ͑ͯ͠·͏͚Ͳɺ͔ͦͬ͜͠Γߟ͑ΒΕ͍ͯΔɻ
© OSCA Έ ৄࡉ
ొ͢Δͷ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ʮೝূثʯʮϒϥβʯʮαʔόʔʯ
ొ͢Δͷ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ʮೝূثʯʮϒϥβʯʮαʔόʔʯ ࢦηϯλʔ Χϝϥ 64#Ωʔ ͳͲ
ొ͢Δͷ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ʮೝূثʯʮϒϥβʯʮαʔόʔʯ 8FC"VUIOʹ ରԠͨ͠ϒϥβ
ొ͢Δͷ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ೝূثͷʮൿີ伴ʯʮެ։伴ʯ ެ։伴҉߸ํࣜ ൿີ伴 ެ։伴
ొ͢Δͷ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ೝূثͷʮൿີ伴ʯʮެ։伴ʯ ެ։伴҉߸ํࣜ ൿີ伴 ެ։伴 ೝূثݻ༗ͷ ൿີ伴ɾެ։伴Λ࣋ͭ
ԡ͓͖͑ͯͭ͘͞ͷॲཧ © OSCA ೝূʹར༻͢Δೝূثͷొ ೝূثΛར༻ͨ͠ೝূ
ೝূʹར༻͢Δೝূثͷొ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ϩάΠϯೝূͳͲͰར༻͍ͨ͠ೝূثΛɺ αʔϏεΛఏڙ͍ͯ͠Δαʔόʔʹొ͠·͢ɻ
ೝূʹར༻͢Δೝূثͷొ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ϩάΠϯೝূͳͲͰར༻͍ͨ͠ೝূثΛɺ αʔϏεΛఏڙ͍ͯ͠Δαʔόʔʹొ͠·͢ɻ ࠓޙར༻͢Δೝূث Λڭ͑ͯʔʂ
ೝূʹར༻͢Δೝূثͷొ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ϩάΠϯೝূͳͲͰར༻͍ͨ͠ೝূثΛɺ αʔϏεΛఏڙ͍ͯ͠Δαʔόʔʹొ͠·͢ɻ ೝূث͝ͱͷॴఆͷ खஈͰɺϢʔβݕূ
ೝূʹར༻͢Δೝূثͷొ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ϩάΠϯೝূͳͲͰར༻͍ͨ͠ೝূثΛɺ αʔϏεΛఏڙ͍ͯ͠Δαʔόʔʹొ͠·͢ɻ ൿີ伴ɾެ։伴͕ੜ ͞ΕΔ ൿີ伴 ެ։伴
ೝূʹར༻͢Δೝূثͷొ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ϩάΠϯೝূͳͲͰར༻͍ͨ͠ೝূثΛɺ αʔϏεΛఏڙ͍ͯ͠Δαʔόʔʹొ͠·͢ɻ ެ։伴ͳͲΛؚΉ ใΛૹΓฦ͢ɻ ൿີ伴 ެ։伴
ೝূʹར༻͢Δೝূثͷొ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ϩάΠϯೝূͳͲͰར༻͍ͨ͠ೝূثΛɺ αʔϏεΛఏڙ͍ͯ͠Δαʔόʔʹొ͠·͢ɻ Ϣʔβใͱެ։伴 Λඥ͚ͮΔɻ ʮྃղʂొͨ͠ʂʯ ൿີ伴 ެ։伴
ೝূʹར༻͢Δೝূثͷొ © OSCA ҎޙɺରʹͳΔʮൿີ伴ʯͰॺ໊͞Εͨσʔλɺ ొ͞Εͨೝূث͔Βͷσʔλͩͱ͍͏͜ͱʹͳΔɻ ެ։伴҉߸ํࣜͷಛʹΑΓ
ೝূثΛར༻ͨ͠ೝূ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ೝূ࣌ɺొࡁΈͷೝূث͔Βͷ݁ՌΛ৴པ͢Εྑ͍ɻ ൿີ伴 ެ։伴 ೝূΑΖ͘͠
ೝূثΛར༻ͨ͠ೝূ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ೝূ࣌ɺొࡁΈͷೝূث͔Βͷ݁ՌΛ৴པ͢Εྑ͍ɻ ൿີ伴 ެ։伴 ೝূث͝ͱͷॴఆͷ खஈͰɺϢʔβݕূ
ೝূثΛར༻ͨ͠ೝূ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ೝূ࣌ɺొࡁΈͷೝূث͔Βͷ݁ՌΛ৴པ͢Εྑ͍ɻ ൿີ伴 ެ։伴 ೝূثͰͷೝূ݁Ռ Λൿີ伴Λར༻ͯ͠ॺ ໊͢Δɻ ೝূ݁Ռ
ೝূثΛར༻ͨ͠ೝূ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ೝূ࣌ɺొࡁΈͷೝূث͔Βͷ݁ՌΛ৴པ͢Εྑ͍ɻ ൿີ伴 ެ։伴 ॺ໊͞Εͨೝূ݁Ռ ΛૹΓฦ͢ɻ ೝূ݁Ռ
ೝূثΛར༻ͨ͠ೝূ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ೝূ࣌ɺొࡁΈͷೝূث͔Βͷ݁ՌΛ৴པ͢Εྑ͍ɻ ൿີ伴 ެ։伴 ެ։伴Λར༻ͯ͠ɺ ೝূ݁ՌΛݕূ͠ɺ ͳ͚ΕϢʔβΛ ಛఆͰ͖Δɻ ೝূ݁Ռ
© OSCA ීٴʹ͚ͯ
ීٴʹ͚ͯ © OSCA ϒϥβ Web Authentication API αʔόʔ ೝূث "VUIFOUJDBUPS
ϒϥβ͚͕ͩ8FC"VUIOʹରԠ͢Εྑ͍༁Ͱͳ͘ɺ ೝূثɾαʔόʔରԠͨ͠ͷ͕ඞཁͰ͋Δɻ
© OSCA ·ͱΊɾॴײ
·ͱΊ © OSCA ➢ ֤ϒϥβͰ8FC"VUIFOUJDBUJPO"1* 8FC"VUIO ͷ࣮͕ਐΊΒΕ͍ͯΔ͜ͱͰɺϒϥβͰ'*%0ೝূ͕ ࣮ݱͰ͖ΔΑ͏ʹͳ͖ͬͯͨɻ ➢
ࠃͰϠϑʔ͕͍ͪૣ͘ରԠΛߦͬͨɻ ➢ ͕ʮݩʯʹͳΔ͔ʂʁ
ؾʹͳ͍ͬͯΔ © OSCA ➢ 8FC"VUIO '*%0 ͷରԠίετ ✓ ʮνରԠ͍ͨ͠ʯͱͳͬͨͱ͖ɺͲͷ͘Β͍େมͳͷ͔ʁ ✓
'*%0ن֨ͷқʁ
ૉࡐར༻ 4*-)06&55&*--645 IUUQTXXXTJMIPVFUUFJMMVTUDPN © OSCA