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
熊でもわかるFIDO2
Search
Shohei Kobayashi
June 04, 2023
Technology
0
71
熊でもわかるFIDO2
FIDO2 / PassKey / Webauthnの概念から設計・実装まで
Shohei Kobayashi
June 04, 2023
Tweet
Share
More Decks by Shohei Kobayashi
See All by Shohei Kobayashi
CI/CD/インフラ勉強会Vol4 Amazon ECS編 Part1
srockstyle
0
96
熊でもわかるCI/CD/モダンインフラ Vol3 AWS CDK
srockstyle
0
310
熊でもわかるCI/CDモダンインフラ Github Action編
srockstyle
0
270
熊でもわかるCI/CD/モダンインフラVol1:用語を覚えよう編
srockstyle
0
430
Chefとnginxで作るPHPアプリケーションのReliable Blue Green Deployment
srockstyle
6
23k
Other Decks in Technology
See All in Technology
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
3
620
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
460
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
150
Google Cloud Next '24 Recap(Cloud Run/k8s)
mokocm
0
330
ルーターでプレゼンする
puhitaku
1
3.2k
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
140
認知症フレンドリーテックとスタックチャン
naokiuc
0
180
.NET Profiler in 2024.
kkamegawa
2
1k
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
1
360
require(ESM)とECMAScript仕様
uhyo
4
960
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
18k
Featured
See All Featured
Happy Clients
brianwarren
92
6.4k
KATA
mclloyd
16
12k
Clear Off the Table
cherdarchuk
85
310k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
43k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Why Our Code Smells
bkeepers
PRO
331
56k
RailsConf 2023
tenderlove
8
550
A designer walks into a library…
pauljervisheath
201
23k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
19
6.9k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
7
3.4k
Transcript
۽ͰΘ͔Δ FIDO2
༻ޠղઆ
ύεϫʔυΛΘͣʹೝূΛߦ͏ʮύεϫʔυϨεʯೝূͷ࠷৽ͷٕज़ن֨ ެ։伴Λࣄલʹొ͢Δ ϩάΠϯͷཁٻ νϟϨϯδίʔυΛ͚ͭͯ ೝূΛґཔ ࢿ֨ใͷೖྗ ʢࢦೝূͳͲʣ νϟϨϯδίʔυʹର͠ ൿີ伴Ͱॺ໊ ެ։伴ʹΑΔݕূ
ϩάΠϯڐՄ ൿີ伴ͷอ࣋ ެ։伴ͷอ࣋ '*%0ͱ 8FCαΠτ
'*%0ͷΈͷ՝ ެ։伴Λࣄલʹొࡁ ϩάΠϯͷཁٻ ެ։伴ʹΑΔݕূ ϩάΠϯڐՄ ൿີ伴#ͷอ࣋ ެ։伴ͷอ࣋ ൿີ伴"ͷอ࣋ ެ։伴ະొ ϩάΠϯͷཁٻ
ެ։伴ʹΑΔݕূ ϩάΠϯڐՄͰ͖ͳ͍ ެ։伴ొࡁ 1$ͱεϚϗ྆ํ͔ΒΞΫηε͍͕ͨ͠ɺ εϚϗͷൿີ伴͔͠ొͯ͠ͳ͍ͷͰ 1$͔ΒϩάΠϯͰ͖ͳ͍ͷͭΒ͍ 8FCαΠτ
ύεΩʔʢNVMUJEFWJDF'*%0DSFEFOUJBMʣ ΫϥυͰൿີ伴Λอଘ͠ڞ༗͢Δ͜ͱͰϚϧνσόΠεରԠ͢Δ๏ํ ൿີ伴ΛΫϥυͰڞ༗ ϩάΠϯͷཁٻ ެ։伴ʹΑΔݕূ ϩάΠϯڐՄ ެ։伴ͷอ࣋ ϩάΠϯͷཁٻ εϚϗͰ࡞ͬͨൿີ伴Λ1$Ͱ ڞ༗Ͱ͖ΔͷͰɺ
྆ํͰ'*%0ͰͷϩάΠϯ͕Ͱ͖Δʂ ެ։伴ʹΑΔݕূ ϩάΠϯڐՄ 8FCαΠτ
'*%0ೝূ͢Δ͜ͱʹύεΩʔͱ͍͏จ຺Ͱ ͏ਓ͍ΔͷͰؾΛ͚ͭΑ͏ɻ ʢຊͷҙຯҧ͏Αʣ
࣮
8FCBVUIO ύϒϦοΫΩʔೝূͷΠϯλʔϑΣΠεΛ8FCΞϓϦέʔγϣϯͰඪ४Խ͢ΔͨΊͷ8FCඪ४ɻ ެ։伴Λࣄલʹొ͢Δ ϩάΠϯͷཁٻ νϟϨϯδίʔυΛ͚ͭͯ ೝূΛґཔ 1*/ͷೖྗ UPVDI*% νϟϨϯδίʔυʹର͠
ൿີ伴Ͱॺ໊ ެ։伴ʹΑΔݕূ ϩάΠϯڐՄ ೝূػ 8FC"VUIO $MJFOU ϒϥβ 8FCαΠτ
8FCBVUIO ඞཁͳཁ݅ 1*/ͷೖྗ UPVDI*% ೝূػ 8FC"VUIO $MJFOU ϒϥβ 8FCαΠτ
WebAuthn Relying Partyʹ४ڌ͢Δ͜ͱ WebAutn Clientʹ ରԠ͢Δ͜ͱ FIDO2 authenticaterͱ ޓੑΛอͭ͜ͱ
8FCBVUIO ϒϥβͷରԠঢ়گ V67ʙ V87ʙ V13ʙ V60ʙ Vʙ &EHF)5.-࣌ʹ ରԠࡁΈ 2023/5
V113 2023/5 V16 2023/5 V113 2023/5 V40
8FCBVUIO࣮લ४උ ࢀߟ63- pedz/rails-7-passkey-demo https://github.com/pedz/rails-7-passkey-demo cedarcode/webauthn-ruby https://github.com/cedarcode/webauthn-ruby 'SPOUFOE #BDLFOE $npm install
webauthn-json $gem install webauthn-ruby
8FCBVUIO ೝূػ 8FC"VUIO $MJFOU ϒϥβ 8FCαΠτ Θ͚ͯߟ͑ΔͱΘ͔Γ͍͢Ͱ͢ Web Backend Database
Web Frontend
8FCBVUIO࣮ొ࣌ WebAuthn Client (ϒϥβ) Web Backend Web Frontend Database webauth
register API webautn callback API Home API ৽نొ ϩάΠϯ໊ཁٻ ϩάΠϯ໊1045 ϩάΠϯ໊1045 ϩάΠϯ໊ͷ6TFSΛ࡞ 8FCBVUO*%Λ࡞͠%#ʹอଘ DBMMCBDL"1*Λฦ͢ ެ։伴࡞ґཔ ެ։伴࡞ґཔ ೝূঢ়͚ͭͯ1045 ύϥϝʔλ͔ΒೝূใΛอଘ ϩάΠϯ0, ϩάΠϯ0, ೝূ͖ϖʔδΞΫηε ೝূ͖"1* ΞΫηε ೝূ͖ใΛ ฦ͢ ೝূ͖ใΛ දࣔ
8FCBVUIO࣮όοΫΤϯυͰ࣮͢Δͷ Web Backend Database webauth register API webautn callback API
Home API register API ϢʔβొˍνϟϨϯδίʔυൃߦ"1* register callback API ൿີ伴ͷొηογϣϯ։࢝"1* session API طଘͷϢʔβݕࡧˍνϟϨϯδίʔυൃߦ"1* session callback API ൿີ伴ͷ֬ೝɾηογϣϯ։࢝"1* ͭ"1*Λ࣮͢Δඞཁ͕͋Γɻ தطଘͷͷΛࢀর͢Δ͔৽ن࡞͔ͷҧ͍͔͠ͳ͠ɻ ͜Εطଘͷೝূඞਢ"1*ͳͷͰ ৽ͨʹ࣮͍Βͳ͍Α
8FCBVUIO࣮ϑϩϯτΤϯυͰ࣮͢Δͷ Sign Up Ϣʔβొ ൿີ伴࡞ґཔ SFHJTUFS"1*ͱDBMMCBDL"1*Λೋ࣮ͭߦ͢Δ Sign In طଘͷϢʔβͰϩάΠϯ ൿີ伴ݕࡧґཔ
TFTTJPO"1*ͱDBMMCBDL"1*Λೋ࣮ͭߦ͢Δ Credentials Management Page ൿີ伴ͷཧϖʔδ ͭը໘Λ࣮͢Δඞཁ͕͋Γɻ ͨͩϩάΠϯ෦ͷϩδοΫ͕1045͢Δ͚ͩͰͳ͍ͷͰҙɻ 8FC"VUIO+TPOΛͬͯൿີ伴ͷ࡞Λϒϥβʹଅ࣮͕͢ඞཁɻ Web Frontend
8FCBVUO՝
None
8FCαΠτ 1$ 4BGBSJൿີ伴 $ISPNFൿີ伴 ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ೝূ ϩάΠϯ/( ൿີ伴ͷڞ༗ ϒϥβؒͰ
ڞ༗ͯ͘͠Εͳ͍ ϒϥβؒͰͷڞ༗ߦΘΕͳ͍
8FCαΠτ macOS 4BGBS࡞ൿີ伴 $ISPNF࡞ൿີ伴 ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ͷڞ༗ "QQMF1BTT,FZͱ͍͏ΈͰJ$MPVEܦ༝ͰσόΠεؒڞ༗͕Մೳ
iOS ൿີ伴ೝূ ϩάΠϯ0,
8FCαΠτ macOS ࡞ͨ͠ൿີ伴 ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ͷཧ iOS
8FCαΠτ macOS ࡞ͨ͠ൿີ伴 ൿີ伴ೝূ ϩάΠϯ0, ൿີ伴ͷཧ iOS Windows Andoid
ݱঢ়ͷղܾࡦ 8FCαΠτ NBD04J04ͷެ։伴 $ISPNFͷެ։伴 8JOEPXTͷެ։伴 macOS ࡞ͨ͠ൿີ伴 iOS Windows Andoid
"OESPJEͷެ։伴 αΠτଆͰҰਓͷϢʔβʹରͯ͠ެ։伴Λෳ࣋ͭ
'*%0ͷ·ͱΊͱײ w ൿີ伴ͷڞ༗ํ๏Λ͏·͘ΕΕ*1"44ํࣜʹऔͬͯมΘΔͰ͠ΐ͏ w Ϣʔβ໊ͱૹ৴Ϙλϯԡͤηογϣϯ։͍࢝खଆ͔Β͢ΔͱϚδͰָ w ෳ伴ཧϢʔβଆαʔϏεఏڙଆ໘ͳͷͰϢʔβެ։伴ʹ͍ͨ͠
Blog: https://www.srockstyle.com/ • Twitterɿhttps://twitter.com/srockstyle • Facebookɿhttps://www.facebook.com/srockstyle • Githubɿhttps://github.com/srockstyle • Qiitaɿhttp://qiita.com/srockstyle
• Wantedlyɿhttps://www.wantedly.com/users/2279 • YOUTRUST: https://youtrust.jp/users/srockstyle • Slideshareɿhttp://www.slideshare.net/srockstyle ۀҕୗͷࣄɺਖ਼ࣾһͱͯ͠ͷεΧτ͓ͪͯ͠·͢