Upgrade to Pro — share decks privately, control downloads, hide ads and more …

パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い

kura
February 13, 2025

パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い

ヌーラボ主催「パスキー開発者の集い」の講演資料になります。
https://nulab.connpass.com/event/341051/

2025年1月28日に「パスキーのすべて ── 導入・UX設計・実装」を発売しました。
https://gihyo.jp/book/2025/978-4-297-14653-5

著者よりパスキーの概要やポイントをお伝えしつつ、書籍の紹介をさせていただきました。

kura

February 13, 2025
Tweet

More Decks by kura

Other Decks in Programming

Transcript

  1. 3
 「パスキーのすべて」の概要 「パスキー」はパスワードレス認証を実現する認証技術です。 本書では、開発者はもちろん、企画職やデザイン職、セキュリティ担当などの認 証に携わる方々に向けた内容になっています。 • 従来の認証技術の課題と比較して何が優れているのか • パスキーの導入で知っておくべき特性 •

    パスキーの登録・認証・管理画面などのUX設計 • WebサイトだけでなくiOSやAndroidの具体的な実装 • パスキーが登場する以前の歴史から最新の仕様までの解説 • 読者の疑問や質問に答えるコラムも充実 2025年1月28日発売 紙版・電子版 絶賛発売中
  2. 本書の構成 4
 第1章 パスキー導入が求められる背景 ── 既存の認証方法とパスキーの背景を知ろう 第2章 パスキーを理解する ── パスキーの特徴や利点を理解しよう 第3章 パスキーのユーザー体験 ──

    パスキーの体験をイメージしよう 第4章 サポート環境 ── ユーザーの環境ごとに利用できる機能を確認しよう 第5章 パスキーの UXを実装する ── UXの実現に必要なメソッドやパラメータを知ろう 第6章 WebAuthn APIリファレンス ── クライアントとサーバの実装の詳細を確認しよう 第7章 スマホアプリ向けの実装 ── AndroidとiOSにおける実装を確認しよう 第8章 パスキーのより高度な使い方 ── より効果的な活用とUX向上方法を知ろう 第9章 パスキー周辺のエコシステム ── 標準化の流れや開発者向け情報を確認しよう 付録A クライアント用 Extensionの解説 ── 後方互換や先進的な活用のための拡張機能をみてみよう 付録B iOS実装サンプル ── サンプルアプリを動かしてみよう 本書についての詳細はこちら
  3. コラム一覧 5
 第1章 ❏ NIST SP 800-63 ❏ 公開鍵暗号をざっくりと理解する 第2章

    ❏ ディスカバラブルでないクレデンシャル ❏ パスキーは多要素認証ではない場合も あるのでは? ❏ アカウントのライフサイクルとパスキーの関係 性 第3章 ❏ パスキーの他人との共有 ❏ クロスデバイス認証のしくみ 第5章 ❏ PINを使わず,生体認証だけでパスキーを 利用できるようにすることはできますか? 第6章 ❏ パスキーの同期を禁止する方法はある? 第7章 ❏ アプリで利用している生体認証とパスキーは 何が違うの? 本書についての詳細はこちら
  4. なぜパスキーは必要とされるのか • パスワードによる認証の限界 ◦ 弱いパスワード(辞書攻撃) ◦ 再利用されたパスワード(リスト攻撃) ◦ フィッシング •

    パスワードマネージャー ◦ リテラシが高くなければ利用されない • 二要素認証(ワンタイムパスワード方式) ◦ フィッシング 8

  5. パスキーの利用環境 14
 Windows macOS iOS/iPadOS Android Linux ChromeOS Googleパスワードマネージャー 🔄*1*2

    🔄*1 🔄 🔄 🔄*1 🔄*1 Appleパスワード 🔄 🔄 Windows Hello ✅ 3Pパスワードマネージャー 🔄*3 🔄*3 🔄 🔄 🔄*3 🔄*3 *1 Chromeのみ *2 要TPM *3 拡張機能として
  6. Level3の主な修正点一覧 • Timeout 時間の変更 • BE, BS フラグ • クロスデバイス認証 (hybrid)

    • Attestationがnoneの場合もAAGUIDを付与できる • hints パラメータ • JSON シリアライゼーション • getClientCapabilities() メソッド • Conditional Get, Creation • Signal API • cross-origin iframe内でのパスキー作成 • Related Origins (複数ドメインでのパスキーの共有) 23

  7. Level3の主な修正点一覧 • Timeout 時間の変更 • BE, BS フラグ • クロスデバイス認証 (hybrid)

    • Attestationがnoneの場合もAAGUIDを付与できる • hints パラメータ • JSON シリアライゼーション • getClientCapabilities() メソッド • Conditional Get, Creation • Signal API • cross-origin iframe内でのパスキー作成 • Related Origins (複数ドメインでのパスキーの共有) 24
 FIDO2からパスキーに 移行するために必須な変更
  8. Level3の主な修正点一覧 • Timeout 時間の変更 • BE, BS フラグ • クロスデバイス認証 (hybrid)

    • Attestationがnoneの場合もAAGUIDを付与できる • hints パラメータ • JSON シリアライゼーション • getClientCapabilities() メソッド • Conditional Get, Creation • Signal API • cross-origin iframe内でのパスキー作成 • Related Origins (複数ドメインでのパスキーの共有) 25
 パスキーのUXを改善する ための変更
  9. Level3の主な修正点一覧 • Timeout 時間の変更 • BE, BS フラグ • クロスデバイス認証 (hybrid)

    • Attestationがnoneの場合もAAGUIDを付与できる • hints パラメータ • JSON シリアライゼーション • getClientCapabilities() メソッド • Conditional Get, Creation • Signal API • cross-origin iframe内でのパスキー作成 • Related Origins (複数ドメインでのパスキーの共有) 26
 パスキーの実装を簡単に するための機能追加
  10. Level3の主な修正点一覧 • Timeout 時間の変更 • BE, BS フラグ • クロスデバイス認証 (hybrid)

    • Attestationがnoneの場合もAAGUIDを付与できる • hints パラメータ • JSON シリアライゼーション • getClientCapabilities() メソッド • Conditional Get, Creation • Signal API • cross-origin iframe内でのパスキー作成 • Related Origins (複数ドメインでのパスキーの共有) 27
 パスキーの利便性を上げるため の機能追加(デモあり)
  11. Level3の主な修正点一覧 • Timeout 時間の変更 • BE, BS フラグ • クロスデバイス認証 (hybrid)

    • Attestationがnoneの場合もAAGUIDを付与できる • hints パラメータ • JSON シリアライゼーション • getClientCapabilities() メソッド • Conditional Get, Creation • Signal API • cross-origin iframe内でのパスキー作成 • Related Origins (複数ドメインでのパスキーの共有) 28
 パスキーを利用できる場所を拡 大するための変更