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
[KC3 Meet! vol.1]ちょっとだけわかるPasskey
Search
Yuki Watanabe
October 15, 2023
Technology
460
2
Share
[KC3 Meet! vol.1]ちょっとだけわかるPasskey
https://kc3.connpass.com/event/295871/
Yuki Watanabe
October 15, 2023
More Decks by Yuki Watanabe
See All by Yuki Watanabe
【つよナレ#1】初心者こそバニラなPHPでWebアプリを作るべき
ukwhatn
0
400
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
1
580
10分間でエンジニア就活について話す #ニックトレイン
ukwhatn
3
1.4k
基礎からわかろうOAuth2/OpenID Connect
ukwhatn
0
500
データベース入門(数珠つなぎオンライン勉強会 #03)
ukwhatn
1
300
バックエンドロードマップ(数珠つなぎオンライン勉強会 #02)
ukwhatn
0
630
サーバ入門(概論〜Webサーバ構築)
ukwhatn
0
470
Other Decks in Technology
See All in Technology
建設的な現実逃避のしかた / How to practice constructive escapism
pauli
4
320
ふりかえりがなかった職能横断チームにふりかえりを導入してみて学んだこと 〜チームのふりかえりを「みんなで未来を考える場」にするプロローグ設計〜
masahiro1214shimokawa
0
350
Claude Teamプランの選定と、できること/できないこと
rfdnxbro
1
2.2k
Azure Lifecycle with Copilot CLI
torumakabe
3
350
ある製造業の会社全体のAI化に1エンジニアが挑んだ話
kitami
2
900
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
3
340
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
23k
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
2
590
暗黙知について一歩踏み込んで考える - 暗黙知の4タイプと暗黙考・暗黙動へ
masayamoriofficial
0
1.4k
申請待ちゼロへ!AWS × Entra IDで実現した「権限付与」のセルフサービス化
mhrtech
1
280
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.2k
え!?初参加で 300冊以上 も頒布!? これは大成功!そのはずなのに わいの財布は 赤字 の件
hellohazime
0
130
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
270
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
Abbi's Birthday
coloredviolet
2
6.5k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
Fireside Chat
paigeccino
42
3.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
150
Navigating Team Friction
lara
192
16k
Transcript
パスワードを捨て、Passkeyを使おう ちょっとだけわかるPasskey Yuki Watanabe (@ukwhatn)
SPEAKER • 渡邉 雄貴 / Yuki Watanabe ◦ 近畿大学 理工学部
B3 ▪ KINDAI Info-Tech HUB 役員 ▪ NPO法人NxTEND(KC3運営委員会) 理事 ◦ Webバックエンド・インフラエンジニア ▪ 長期インターンシップ・業務委託での開発 ▪ 転職型プログラミングスクール メンター
SPEAKER • 渡邉 雄貴 / Yuki Watanabe ◦ この夏は...... ▪
仕事! ▪ 仕事!!! ▪ 仕事!!!!!(280時間 / 月) • RecruitやDMMのサマーインターンに行ってました ◦ 気になる人は懇親会で!
SPEAKER • 渡邉 雄貴 / Yuki Watanabe ◦ SKILLS ▪
Webバックエンド • Ruby(Rails) / Python(FastAPI, Flask) / Kotlin / TS ▪ Webフロントエンド • TS(React) / JS / HTML-CSS ▪ インフラ・その他 • Linux / AWS / Docker / DB / 認証・認可
SPEAKER • 渡邉 雄貴 / Yuki Watanabe ◦ SKILLS ▪
Webバックエンド • Ruby(Rails) / Python(FastAPI, Flask) / Kotlin / TS ▪ Webフロントエンド • TS(React) / JS / HTML-CSS ▪ インフラ・その他 • Linux / AWS / Docker / DB / 認証・認可
もくじ 認証・認可の違い おさらい 01 FIDO / FIDO2 / WebAuthn 人類のパスワードとの戦いの歴史
02 Passkeyとは Passkeyは何を解決したのか 03
資料完成 2023/10/15 09:16
認証・認可の違い
認証・認可 知ってる人?
認証ってなに? • 認証/Authentication(Authn) ◦ サービスの利用者が本人であることを確認する ▪ What you are •
生体認証 ▪ What you have • 所有物認証(カギやセキュリティキーなど) ▪ What you know • 知識認証(パスワード・秘密の質問) 認証・認可の違い
認証ってなに? • 認証/Authentication(Authn) ◦ サービスの利用者が本人であることを確認する ▪ What you are •
生体認証 ▪ What you have • 所有物認証(カギやセキュリティキーなど) ▪ What you know • 知識認証(パスワード・秘密の質問) 認証・認可の違い
認可ってなに? • 認可/Authorization(Authz) ◦ サービスの利用者に適切な権限を与える仕組み ▪ リソースへのアクセス権限・操作権限など ▪ 外部サービスに対して操作を許可することが多い •
Twitterへの代理投稿 • メールのRead/Write 認証・認可の違い
認可ってなに? • 認可/Authorization(Authz) ◦ サービスの利用者に適切な権限を与える ▪ リソースへのアクセス権限・操作権限など ▪ 外部サービスに対して操作を許可することが多い •
Twitterへの代理投稿 • メールのRead/Write 認証・認可の違い
パスワード認証 • パスワード認証のメリデメ ◦ メリット ▪ 覚えていればどこでも使える ▪ 壊れたりすることはない ◦
デメリット ▪ 失くさないけど忘れる ▪ 盗難される可能性がわりとある(フィッシングなど) ▪ 覚えるコストを避け、簡単なパスワードを使いまわしがち 前提
パスワード認証 • パスワード認証のメリデメ ◦ メリット ▪ 覚えていればどこでも使える ▪ 壊れたりすることはない ◦
デメリット ▪ 失くさないけど忘れる ▪ 盗難される可能性がわりとある(フィッシングなど) ▪ 覚えるコストを避け、簡単なパスワードを使いまわしがち 前提
パスワード認証の強化 • どうしたら強くなるのか? ◦ パスワードポリシー ▪ パスワードに制約をかける ◦ パスワードマネージャ ▪
アプリでIDやパスワードを管理する ◦ ID連携(Sign in with XXX) ▪ パスワードの数を減らす 前提
パスワード認証の強化 • どうしたら強くなるのか? ◦ MFA ▪ 多要素認証により安全性を高める • SMS:SIM Swapにより盗難可能
• Authenticator:フィッシング・ブルートフォース可能 ◦ パスワードレス ▪ そもそもパスワード使わなきゃ良くない? 前提
パスワード認証の強化 • パスワードレス ◦ 種類 ▪ TOTP/指紋認証 ▪ FIDO /
FIDO2 ▪ WebAuthn ▪ Passkeys 前提
パスワード認証の強化 • パスワードレス ◦ 種類 ▪ TOTP/指紋認証 ▪ FIDO /
FIDO2 ▪ WebAuthn ▪ Passkeys 前提
FIDO2 / WebAuthn
FIDO / FIDO2 / WebAuthn • FIDO ◦ Fast IDentity
Online ▪ パスワードレス認証技術の開発・標準化団体 ▪ 認証技術自体の名称 • FIDO UAF (Universal Authentication Framework) ◦ 生体を用いたパスワードレス認証フレームワーク • FIDO U2F (Universal 2nd Factor) ◦ U2F対応HWをFIDOクライアントとする認証技術
FIDO / FIDO2 / WebAuthn • FIDO認証モデルの特徴 ◦ サーバに秘密情報が送信・保存されない ▪
登録の流れ 1. サーバがチャレンジを発行し、ブラウザに送信 2. クライアント側のFIDO認証器が鍵ペアを作成 3. 公開鍵・署名されたチャレンジがサーバに送信される 4. サーバ側でチャレンジを検証、問題なければ公開鍵を保存 ◦ 秘密情報が一度も送られていない!
FIDO / FIDO2 / WebAuthn • FIDO認証モデルの特徴 ◦ サーバに秘密情報が送信・保存されない ▪
認証の流れ 1. サーバがチャレンジを発行し、ブラウザに送信 2. FIDO認証器が生体認証を用いてユーザを本人確認 3. 保存されている暗号鍵でチャレンジを署名して送信 4. サーバ側でチャレンジを検証、問題なければ成功
FIDO / FIDO2 / WebAuthn • FIDO ◦ 不便なところ ▪
実装が共通化されていなかった • UAFはPayPal、U2FはGoogleがFIDO Allianceと共に策定 ◦ 実装によってUXが異なる
FIDO / FIDO2 / WebAuthn • FIDO2 ◦ より使いやすくしたFIDO ▪
2つの規格の組み合わせで実現 • WebAuthn ◦ W3Cの規格 • CTAP2(Client To Authenticator Protocol) ◦ FIDO Allianceの規格
FIDO / FIDO2 / WebAuthn • FIDO2 ◦ WebAuthn ▪
W3Cが策定 ▪ RPへのCredentialの登録・認証のプロトコル • さっきのFIDO認証モデルを Webブラウザ上で完結させられるようにしたもの
FIDO / FIDO2 / WebAuthn • FIDO2 ◦ WebAuthn ▪
いいところ • フィッシング耐性が高い ◦ ブラウザが認証を要求しているサイトのドメインと 要求された鍵に紐づいたドメインをチェック ▪ 問題なければ通ってよし!
FIDO / FIDO2 / WebAuthn • FIDO2 ◦ CTAP2 ▪
FIDO Allianceが策定 ▪ 外部認証器とClientとの通信プロトコル • PC等の認証器をもたないクライアントと 外部のセキュリティキーやモバイル端末との通信を可能に ◦ どんなデバイスでもWebAuthnが可能に
FIDO / FIDO2 / WebAuthn • FIDO2 ◦ CTAP2 ▪
FIDO Allianceが策定 ▪ 外部認証器とClientとの通信プロトコル • PC等の認証器をもたないクライアントと 外部のセキュリティキーやモバイル端末との通信を可能に ◦ どんなデバイスでもWebAuthnが可能に
FIDO / FIDO2 / WebAuthn • FIDO2 ◦ 不便なところ ▪
認証情報(秘密鍵)がデバイスに保存される • 安全ではある • でもめんどくさい ◦ 知っていればいいパスワードと違い、 登録したデバイスを持っていなければならない ◦ スマホ落としたら詰む/よりセキュアでない認証に戻る
Passkey
Passkey • Passkey ◦ FIDO2の秘密鍵、同期したら全部解決じゃね? ▪ 秘密鍵をプラットフォームに預け、端末間同期 • UXのためにセキュリティをちょっと犠牲にした ◦
それでもパスワードよりはセキュア ▪ パスワードリスト/スプレー攻撃への耐性 ▪ フィッシングへの耐性(ブラウザによるドメインチェック)
Passkey • Passkey ◦ 残る課題 ▪ クロスプラットフォームでの同期はできない • iPhone/Android間での同期は不可能 ◦
最近1Passwordなどのパスワードマネージャが プラットフォームとして振る舞っている ▪ OSSやIDaaS・SaaSの選択肢が少ない • keycloakがFIDO2対応してるくらい
Passkey • Passkey ◦ 残る課題 ▪ OIDC等の外部ID連携とのセットでの普及 • サービスが直接FIDO2を導入すると、 その数だけ鍵ペアを管理しなければならない
• OpenIDはそもそもID・Passの管理コストを下げる目的 ◦ FIDO2に対応したIdPと連携することでFIDOの恩恵を享受
まとめ • 今回のまとめ ◦ FIDO / FIDO2は、パスワードの脆弱性をクリアしようとするもの ◦ バラバラに規格化されたFIDOを統一したのがFIDO2 ◦
FIDO2では、WebAuthnによるブラウザ上での認証と CTAPによる外部認証器のサポートが主な機能となっている ◦ FIDO2では同期できなかった秘密鍵を 同期できるようにしたのがPasskey おかげでだいぶ便利になった