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

第一回 SPEDU セミナー パスキーのすべて

Avatar for kura kura
October 08, 2025

第一回 SPEDU セミナー パスキーのすべて

第一回 SPEDU セミナーの講演資料になります。
https://spedu-catalog.jp/news/738/

Avatar for kura

kura

October 08, 2025
Tweet

More Decks by kura

Other Decks in Technology

Transcript

  1. パスワードを狙った攻撃手法 • リスト攻撃をはじめとするパスワードを狙った攻撃手法が今も用いられている 4
 攻撃手法 概要 1 リスト攻撃 (Credential Stuffing)

    これは、他のウェブサイトから漏洩したユーザー名とパスワードのリストを使用して、別のサービスへのログインを 試みる手法です。攻撃者は、多くの人が複数のサイトで同じパスワードを使い回していることを利用します。 2 ブルートフォース攻撃 (Brute-Force Attack) この手法では、考えられるすべてのパスワードの組み合わせを試行して、正解を見つけようとします。辞書攻撃(よ く使われる単語やフレーズのリストを試す)もこれに含まれます。 3 フィッシング( Phishing) 偽のウェブサイトやメール、メッセージなどを使って、ユーザーにパスワードを入力させるように誘導する手法です。 例えば、銀行や有名なサービスになりすまして、ログイン情報を盗み取ろうとします。 4 マルウェア( Malware) キーロガー(キーボード入力を記録するソフトウェア)やトロイの木馬などのマルウェアをコンピュータやデバイスに 感染させ、パスワードを盗み取る手法です。 5 ソーシャルエンジニアリング (Social Engineering) 人間心理の隙をついて、パスワードなどの機密情報を聞き出そうとする手法です。電話や対面で、信頼できる人物 になりすますなどして情報を得ようとします。 6 パスワードスプレー攻撃 (Password Spraying) これは、少数の一般的なパスワードを、多数のユーザーアカウントに対して試行する手法です。アカウントロックア ウトを防ぎつつ、パスワードの使い回しを狙います。 7 辞書攻撃( Dictionary Attack) ブルートフォース攻撃の一種ですが、一般的な単語、フレーズ、または以前に漏洩したパスワードのリスト(辞書)を 使用してパスワードを推測します。
  2. パスワードリスト攻撃被害 • 推測されやすいパスワードや漏洩したパスワードは市場で出回り、現在も各社サービス でリスト型攻撃が繰り返され被害が後をたたない 5
 時期 事例 2024年12月 メールアカウントの不正使用によるフィッシングメールの送信について -

    北海道大学病院 2024年3月 お茶の水女子大学研究室サーバへの不正アクセスについて 2023年3月 「エン転職」への不正ログイン発生に関するお詫びとお願い - エン・ジャパン 2023年12月 「ショップチャンネル」で不正ログイン注文 - Security NEXT 2022年10月 不正アクセスとアカウント管理に関するご注意 - スクウェア・エニックス 2022年9月 「ニトリアプリ」への不正アクセスによる個人情報流出の可能性に関する お詫びとお知らせ - ニトリ ホールディングス 2022年7月 サンドラッグの複数関連サイトにPWリスト攻撃 - Security NEXT
  3. フィッシング攻撃被害 • 金融系をはじめユーザーを偽サイトへ誘導してパスワードなどのクレデンシャルを盗み出す • フィッシング攻撃の被害も継続している 7
 時期 事例 2025年08月06日 SMBC日興証券をかたるフィッシング

    2025年07月31日 アコムをかたるフィッシング 2025年06月16日 岩井コスモ証券をかたるフィッシング 2025年06月16日 大和証券をかたるフィッシング 2025年05月21日 PayPayカードをかたるフィッシング 2025年04月30日 GMOクリック証券をかたるフィッシング 2025年04月21日 三菱UFJモルガン・スタンレー証券をかたるフィッシング 2025年04月09日 東京ガスをかたるフィッシング 時期 事例 2025年04月09日 ANA をかたるフィッシング 2025年04月09日 LINE をかたるフィッシング 2025年04月08日 松井証券をかたるフィッシング 2025年04月01日 野村證券をかたるフィッシング 2025年04月01日 楽天証券をかたるフィッシング 2025年04月01日 SBI証券をかたるフィッシング 2025年03月31日 マネックス証券をかたるフィッシング 2025年03月05日 Apple をかたるフィッシング フィッシング対策協議会 https://www.antiphishing.jp/news/database/
  4. 用語集 • クレデンシャル情報 ◦ パスワードや生体情報などユーザー認証に必要な情報 • RP (Relying Party) ◦

    ユーザーのIDを登録、認証し管理するサーバー( FIDO2 Server) • Authenticator(認証器) ◦ 秘密鍵・公開鍵のペアを生成し、 RPへ送信する署名を生成する • Client-Side ◦ Authenticatorやユーザー端末などの総称 • WebAuthn Client ◦ ブラウザーなどのUser Agent 16

  5. パスキー登録フロー 30 Relying Party
 (FIDO2 Server) End-User Authenticator Web Browser

    (WebAuthn Client) Client-Side パスキーはサーバーがRP
  6. 31 0-2.ログインID 0-1.登録開始 Relying Party
 (FIDO2 Server) End-User Authenticator Web

    Browser (WebAuthn Client) Client-Side 既存のログインIDに対して パスキーの登録を開始 ※ ログインIDがない場合もある パスキー登録フロー
  7. 32 0-2.ログインID 2.認証要求 0-1.登録開始 1.navigator.credentials.create() Relying Party
 (FIDO2 Server) End-User

    Authenticator Web Browser (WebAuthn Client) Client-Side JavaScript API経由でユーザー認証と Authenticatorへ鍵ペアの生成を要求 パスキー登録フロー
  8. 33 0-2.ログインID 3.認証要求 2.認証要求 4.認証 5.秘密鍵/公開鍵生成 秘密鍵格納 0-1.登録開始 1.navigator.credentials.create() Relying

    Party
 (FIDO2 Server) End-User Authenticator Web Browser (WebAuthn Client) Client-Side Authenticatorが指紋や顔などの認証を要求し、認 証を終えると鍵ペアを生成、 秘密鍵をAuthenticatorないに保存 パスキー登録フロー
  9. 34 0-2.ログインID 3.認証要求 2.認証要求 4.認証 5.秘密鍵/公開鍵生成 秘密鍵格納 0-1.登録開始 1.navigator.credentials.create() Relying

    Party
 (FIDO2 Server) End-User Authenticator Web Browser (WebAuthn Client) Client-Side パスキーの秘密鍵はプラットフォームに よってサーバーに保管される(一部を除く) パスキー登録フロー
  10. 35 0-2.ログインID 3.認証要求 7.公開鍵 2.認証要求 4.認証 6.公開鍵 5.秘密鍵/公開鍵生成 秘密鍵格納 8.ログインIDに

    公開鍵を保存 0-1.登録開始 1.navigator.credentials.create() Relying Party
 (FIDO2 Server) End-User Authenticator Web Browser (WebAuthn Client) Client-Side 公開鍵のみをRPへ送信し ログインIDへ紐付けて保存 パスキー登録フロー
  11. 36 0-2.ログインID 3.認証要求 7.公開鍵 2.認証要求 9.登録完了 10.登録完了 4.認証 6.公開鍵 5.秘密鍵/公開鍵生成

    秘密鍵格納 8.ログインIDに 公開鍵を保存 0-1.登録開始 1.navigator.credentials.create() Relying Party
 (FIDO2 Server) End-User Authenticator Web Browser (WebAuthn Client) Client-Side パスキー登録フロー
  12. 38 0-2.ログインID 0-1.ログイン開始 Relying Party
 (FIDO2 Server) End-User Authenticator Web

    Browser (WebAuthn Client) Client-Side 登録しているログインIDを 指定して認証を開始 パスキー認証フロー
  13. 39 0-2.ログインID 3.認証要求 2.navigator.credentials.get() 1.challenge生成 0-1.ログイン開始 Relying Party
 (FIDO2 Server)

    End-User Authenticator Web Browser (WebAuthn Client) Client-Side challengeを生成しWebAuthn Clientへ送信 JavaScript API経由で Authenticatorに保存した秘密鍵を取得 パスキー認証フロー
  14. 6.秘密鍵を検索
 challengeを秘密鍵で署名 40 0-2.ログインID 4.認証要求 3.認証要求 5.認証 2.navigator.credentials.get() 1.challenge生成 0-1.ログイン開始

    Relying Party
 (FIDO2 Server) End-User Authenticator Web Browser (WebAuthn Client) Client-Side パスキーによって端末間でも 秘密鍵が同期される(一部を除く) パスキー認証フロー
  15. 6.秘密鍵を検索
 challengeを秘密鍵で署名 41 0-2.ログインID 4.認証要求 3.認証要求 5.認証 2.navigator.credentials.get() 1.challenge生成 0-1.ログイン開始

    Relying Party
 (FIDO2 Server) End-User Authenticator Web Browser (WebAuthn Client) Client-Side Authenticatorが認証を要求し、 認証が完了すると 秘密鍵でchallengeに署名 パスキー認証フロー
  16. 6.秘密鍵を検索
 challengeを秘密鍵で署名 42 0-2.ログインID 4.認証要求 8.署名されたchallenge 3.認証要求 5.認証 7.署名されたchallenge 9.署名を


    公開鍵で検証 2.navigator.credentials.get() 1.challenge生成 0-1.ログイン開始 Relying Party
 (FIDO2 Server) End-User Authenticator Web Browser (WebAuthn Client) Client-Side 署名されたchallengeを RPに保存している公開鍵で検証 パスキー認証フロー
  17. 6.秘密鍵を検索
 challengeを秘密鍵で署名 43 0-2.ログインID 4.認証要求 8.署名されたchallenge 3.認証要求 10.認証完了 11.認証完了 5.認証

    7.署名されたchallenge 9.署名を
 公開鍵で検証 2.navigator.credentials.get() 1.challenge生成 0-1.ログイン開始 Relying Party
 (FIDO2 Server) End-User Authenticator Web Browser (WebAuthn Client) Client-Side パスキー認証フロー
  18. 同期しないパスキーの方が安全なのでは? • 同期するパスキーと同期しないパスキーの2種類がある ◦ 同期しないパスキーは認証器の仕様に依存するため、パスキーが作成できない 場合もある • 同期しないパスキーであれば、セキュリティキーなどを物理的に 窃取されない限りはリモート攻撃は不可能 •

    同期パスキーよりも同期しないパスキーの方が安全ではある • 一方で、同期しないパスキーを登録した認証器に依存するため、 ログインやアカウントリカバリーの観点でUXが低下することを 考慮しなければいけない 45

  19. パスキーにアクセスできなくなったら? • 同期するパスキーであっても、パスワードマネージャーが使えない ブラウザーや同期できないOSの場合には、パスキーにアクセス できないことがある • 導入サービス(Relying Party)はパスキー以外の認証方法やアカウントリ カバリーを用意しておく必要がある 47


    Windows macOS iOS/iPadOS Android Linux ChromeOS Googleパスワードマネージャー 🔄*1 *2 🔄*1 🔄 🔄 🔄*1 🔄*1 Appleパスワード 🔄 🔄 Windows Hello ✅ 3rd Partyパスワードマネージャー 🔄*3 🔄*3 🔄 🔄 🔄*3 🔄*3 *1 Chromeのみ *2 要TPM *3 拡張機能として
  20. IDaaSのパスキー対応状況 51
 • 主要なIDaaSにおいても従業員認証(Workforce Identity)および顧客認証(Customer Identity and Access Management: CIAM)の両方、またはそのいずれかでパスキーを

    活用するための機能を提供している。 提供企業 サービス IDaaSの種類 Microsoft Microsoft Intra ID (旧Azure AD) Workforce / CIAM Okta Okta Identity Cloud Workforce / CIAM Auth0 (現 Okta Customer Identity Cloud) CIAM Google Google Workspace Workforce 提供企業 サービス IDaaSの種類 Amazon (AWS) Amazon Cognito CIAM Ping Identity Ping Identity Platform Workforce / CIAM ForgeRock ForgeRock Identity Platform Workforce / CIAM
  21. 55
 「パスキーのすべて」の概要 「パスキー」はパスワードレス認証を実現する認証技術です。 本書では、開発者はもちろん、企画職やデザイン職、セキュリティ担当などの 認証に携わる方々に向けた内容になっています。 • 従来の認証技術の課題と比較して何が優れているのか • パスキーの導入で知っておくべき特性 •

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

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

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