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
410
[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
280
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
1
550
10分間でエンジニア就活について話す #ニックトレイン
ukwhatn
3
1.3k
基礎からわかろうOAuth2/OpenID Connect
ukwhatn
0
430
データベース入門(数珠つなぎオンライン勉強会 #03)
ukwhatn
1
260
バックエンドロードマップ(数珠つなぎオンライン勉強会 #02)
ukwhatn
0
540
サーバ入門(概論〜Webサーバ構築)
ukwhatn
0
340
Other Decks in Technology
See All in Technology
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
660
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
170
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
450
roppongirb_20250911
igaiga
1
240
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
250
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
300
研究開発と製品開発、両利きのロボティクス
youtalk
1
530
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
0
190
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
450
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
120
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
270
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Designing Experiences People Love
moore
142
24k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Into the Great Unknown - MozCon
thekraken
40
2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building an army of robots
kneath
306
46k
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 おかげでだいぶ便利になった