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
160
熊でもわかるFIDO2
FIDO2 / PassKey / Webauthnの概念から設計・実装まで
Shohei Kobayashi
June 04, 2023
Tweet
Share
More Decks by Shohei Kobayashi
See All by Shohei Kobayashi
非同期処理実行基盤 Delayed脱出 → Solid Queue完全移行への旅路。
srockstyle
3
2.6k
CI/CD/インフラ勉強会Vol4 Amazon ECS編 Part1
srockstyle
0
170
熊でもわかるCI/CD/モダンインフラ Vol3 AWS CDK
srockstyle
0
420
熊でもわかるCI/CDモダンインフラ Github Action編
srockstyle
0
410
熊でもわかるCI/CD/モダンインフラVol1:用語を覚えよう編
srockstyle
0
590
Chefとnginxで作るPHPアプリケーションのReliable Blue Green Deployment
srockstyle
6
25k
Other Decks in Technology
See All in Technology
toCプロダクトにおけるAI機能開発のしくじりと学び / ai-product-failures-and-learnings
rince
6
5.5k
2人で作ったAIダッシュボードが、開発組織の次の一手を照らした話― Cursor × SpecKit × 可視化の実践 ― Qiita AI Summit
noalisaai
1
370
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
120
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
430
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
330
Mosaic AI Gatewayでコーディングエージェントを配るための運用Tips / JEDAI 2026 新春 Meetup! AIコーディング特集
genda
0
150
Webhook best practices for rock solid and resilient deployments
glaforge
1
260
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
530
あたらしい上流工程の形。 0日導入からはじめるAI駆動PM
kumaiu
5
750
Agile Leadership Summit Keynote 2026
m_seki
1
290
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.5k
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
110
Paper Plane (Part 1)
katiecoart
PRO
0
4k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
440
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
64
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Site-Speed That Sticks
csswizardry
13
1.1k
Believing is Seeing
oripsolob
1
53
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
200
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
230
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.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 ۀҕୗͷࣄɺਖ਼ࣾһͱͯ͠ͷεΧτ͓ͪͯ͠·͢