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.4k
次世代の認証(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.2k
WEBサイトを HTTP/2 に移行した話 / HTTP2
oscasierra
1
2.1k
WEBサイトが「できた」と安心する前に最終チェックすること
oscasierra
1
2k
Service Worker
oscasierra
1
1.4k
Growth of Podcast
oscasierra
0
1.4k
AIの知識無しでもAIを活用したQ&Aページを作る方法
oscasierra
1
1.2k
はじめてのサーバレス関数 (WEBエンジニア勉強会 #06)
oscasierra
0
940
みんなテストってどうやってるの?
oscasierra
0
490
HTTPレイヤーで行うパフォーマンスチューニング (WEBエンジニア勉強会 #05)
oscasierra
1
3.1k
Other Decks in Technology
See All in Technology
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
29
12k
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
180
.NET 9 のパフォーマンス改善
nenonaninu
0
850
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
330
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
Qiita埋め込み用スライド
naoki_0531
0
4.7k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9.1k
How to Ace a Technical Interview
jacobian
276
23k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Into the Great Unknown - MozCon
thekraken
33
1.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Code Reviewing Like a Champion
maltzj
520
39k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
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