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
1
340
[KC3 Meet! vol.1]ちょっとだけわかるPasskey
https://kc3.connpass.com/event/295871/
Yuki Watanabe
October 15, 2023
Tweet
Share
More Decks by Yuki Watanabe
See All by Yuki Watanabe
【つよナレ#1】初心者こそバニラなPHPでWebアプリを作るべき
ukwhatn
0
55
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
1
500
10分間でエンジニア就活について話す #ニックトレイン
ukwhatn
3
970
基礎からわかろうOAuth2/OpenID Connect
ukwhatn
0
340
データベース入門(数珠つなぎオンライン勉強会 #03)
ukwhatn
1
180
バックエンドロードマップ(数珠つなぎオンライン勉強会 #02)
ukwhatn
0
410
サーバ入門(概論〜Webサーバ構築)
ukwhatn
0
250
Other Decks in Technology
See All in Technology
AWSの生成AIサービス Amazon Bedrock入門!(2025年1月版)
minorun365
PRO
7
470
30分でわかる「リスクから学ぶKubernetesコンテナセキュリティ」/30min-k8s-container-sec
mochizuki875
3
450
20250116_JAWS_Osaka
takuyay0ne
2
200
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.5k
タイミーのデータ活用を支えるdbt Cloud導入とこれから
ttccddtoki
1
160
三菱電機で社内コミュニティを立ち上げた話
kurebayashi
1
360
AWSマルチアカウント統制環境のすゝめ / 20250115 Mitsutoshi Matsuo
shift_evolve
0
120
Unsafe.BitCast のすゝめ。
nenonaninu
0
200
デジタルアイデンティティ人材育成推進ワーキンググループ 翻訳サブワーキンググループ 活動報告 / 20250114-OIDF-J-EduWG-TranslationSWG
oidfj
0
540
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
13
2.2k
メンバーがオーナーシップを発揮しやすいチームづくり
ham0215
2
140
2025年のARグラスの潮流
kotauchisunsun
0
800
Featured
See All Featured
Bash Introduction
62gerente
610
210k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Building an army of robots
kneath
302
45k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Rails Girls Zürich Keynote
gr2m
94
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
A Philosophy of Restraint
colly
203
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 おかげでだいぶ便利になった