Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
熊でもわかるFIDO2
Search
Shohei Kobayashi
June 04, 2023
Technology
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
熊でもわかるFIDO2
FIDO2 / PassKey / Webauthnの概念から設計・実装まで
Shohei Kobayashi
June 04, 2023
More Decks by Shohei Kobayashi
See All by Shohei Kobayashi
非同期処理実行基盤 Delayed脱出 → Solid Queue完全移行への旅路。
srockstyle
3
3.5k
CI/CD/インフラ勉強会Vol4 Amazon ECS編 Part1
srockstyle
0
190
熊でもわかるCI/CD/モダンインフラ Vol3 AWS CDK
srockstyle
0
440
熊でもわかるCI/CDモダンインフラ Github Action編
srockstyle
0
430
熊でもわかるCI/CD/モダンインフラVol1:用語を覚えよう編
srockstyle
0
640
Chefとnginxで作るPHPアプリケーションのReliable Blue Green Deployment
srockstyle
6
25k
Other Decks in Technology
See All in Technology
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
260
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.4k
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
170
振り返りこそエンジニアの本領
negima
0
350
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
120
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
1
480
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
140
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
240
Reactの設計論
uhyo
13
6.3k
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
4
940
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
250
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
370
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
820
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
Code Review Best Practice
trishagee
74
20k
Git: the NoSQL Database
bkeepers
PRO
432
67k
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 ۀҕୗͷࣄɺਖ਼ࣾһͱͯ͠ͷεΧτ͓ͪͯ͠·͢