公開:

最終更新:

Momizi🍁 - パスキーベースの認証の概念実証のプロジェクト

目次


コンセプト

パスキーを大前提とした新しい認証手段の実験

FIDOとは?

あとで解説

やること - ロードマップ

GitHubを参照

やらないこと

  • パスワード認証
  • 2FA
  • バックアップ手段の実装

デモンストレーション

QRコードが必要な場合はここから

登録フロー

登録フローURLのQRコード

認証フロー

認証フローURLのQRコード


FIDO認証の概要

FIDO Alliance の使命と標準

FIDO(Fast IDentity Online)は、世界中のパスワードへの過度な依存を減らすことを使命とするオープンな業界団体「FIDOアライアンス」によって開発された認証標準です 1 2 3。FIDOアライアンスは、認証およびデバイス認証の標準の開発、使用、および準拠を促進することで、パスワードよりも安全で、消費者や従業員にとって使いやすく、サービスプロバイダーが導入と管理が容易なフィッシング耐性のあるサインインを実現しています 3 4

FIDO認証の技術的基盤

FIDO認証は、標準的な公開鍵暗号技術を使用してフィッシング耐性のある認証を提供し、ユーザーがパスキーを使ってサインインできるようにします 5 6 7。この技術では、パスワードマネージャー(またはセキュリティキー)が、その特定のオンラインサービスの特定のアカウントに固有の暗号キーペアを作成します 5 6

FIDO標準は、すべてのウェブサイトで一意で、ユーザーのデバイスから離れることがなく、サーバーに保存されることのない暗号化ログイン認証情報を使用します 5 6。このセキュリティモデルにより、フィッシング、あらゆる形態のパスワード盗難、リプレイ攻撃のリスクが排除されます 5 6 7

FIDO仕様の発展

FIDOアライアンスは現在、よりシンプルで強力な認証のために、FIDO Universal 2nd Factor(FIDO U2F)、FIDO Universal Authentication Framework(FIDO UAF)、およびFIDO2の3つのユーザー認証仕様を公開しています 5 8。FIDO2は、W3CのWeb認証(WebAuthn)仕様とFIDO Client to Authenticator Protocol(CTAP)を含む最新の規格です 5 8

パスキー技術の詳細分析

パスキーの定義と特徴

探索可能なFIDO2クレデンシャル=パスキー

  • パスキー(passkey) とは、探索可能(discoverable)なFIDOクレデンシャルのことです 4 5 9

    • WebAuthn仕様上はresident keydiscoverable credentialと呼ばれます 10 11
    • これは認証器(例:セキュリティキー、スマホ、PC)自体がユーザー識別子(user handle)と紐付けてクレデンシャルを保存しており、RP(サービス)側がユーザー名やcredentialIdを指定しなくても、認証器が「このRPで使えるクレデンシャル」を自動的に提示できるものです 10 11
    • パスキーは同期型(multi-device/synced passkey)でもデバイス固定型(device-bound passkey)でも、探索可能であればパスキーです 5 9
  • 非探索可能(non-discoverable)なクレデンシャルは、従来のU2FやFIDO2のnon-resident keyと呼ばれるものです 10 11

    • これらは認証器内にユーザー識別子を持たず、認証時にはRPがcredentialIdを明示的に指定する必要があります 10 11
    • 典型的なU2Fデバイスや、初期のFIDO2実装ではこの方式が主流でした 8 10
    • パスキーが搭乗する前のFIDO認証クレデンシャルはこの非探索可能なクレデンシャルを指します。 [筆者の整理]

パスキーの種類と実装方式

パスキー技術には、同期パスキー(Synced Passkey)とデバイス固定パスキー(Device-bound Passkey)の2つの主要な実装方式があります 9 12 13

同期パスキー

同期パスキーは、複数の端末間でパスキー情報の同期が可能な仕様で、Apple(iOS/iPadOS/macOS)ではiCloudキーチェーン、Google(Android)ではGoogle Password Managerなどのプラットフォームによって同期が行われます 9 12。この方式により、ユーザーは各サービスや各新規デバイスで新しいFIDOクレデンシャルを登録する必要がなく、デバイスを交換しても必要なときにいつでもパスキーを利用できます 9 12

なお、ユーザーがインストールしたパスワードマネージャでもパスキーを管理できる場合があります。例えば、Proton Passはその代表例です 14

デバイス固定パスキー

デバイス固定パスキーは、特定のデバイスまたはセキュリティキーに固定される方式で、単一の端末内でのみ秘密鍵が保持されるため、端末外にパスキー情報が漏れることはありません 9 12 13

技術的仕組みの詳細解説

公開鍵暗号方式による認証メカニズム

FIDO認証の核心は、非対称(公開鍵)暗号技術を使用し、認証器による検証を行うことです 6 7。登録ステップでは、パスワードマネージャー(またはセキュリティキー)がその特定のオンラインサービスの特定のアカウントに固有の暗号キーペアを作成します 6 7

パスキー認証は、公開鍵暗号方式およびチャレンジレスポンス認証を用いたパスワードレス認証として、FIDO Allianceによる標準化規格であるFIDO認証に含まれます 6 13。公開鍵暗号方式では、初回パスキー登録処理の中で、公開鍵をWebサービス側に保管し、秘密鍵をユーザーの端末側に保管します 6 13

登録と認証のプロセス

登録プロセスでは、ユーザーがサービスの利用を開始する際に、公開鍵と秘密鍵のペアを作成し、サービス提供者側に公開鍵を登録します 13 15。デバイス内に保存された秘密鍵で署名する際に、PCやスマホであればそのデバイスに搭載のロック解除機能(Windows Hello、Face IDなど)で本人確認を行います 13 15

認証プロセスでは、ユーザーがオンラインサービスにサインインしようとすると、サーバーがランダムなチャレンジをユーザーのデバイスに送信します 6 15。パスワードマネージャー(またはセキュリティキー)は、ユーザーがデバイスのロックを解除してサインインを承認することを確認した後、適切な秘密鍵を使用してこのチャレンジに署名します 6 15

WebAuthnとCTAPの統合

FIDO2は、W3CのWeb Authentication(WebAuthn)仕様とFIDOアライアンスの対応する Client-to-Authenticator ProtocolCTAP)で構成されています 5 8。WebAuthnは、サポートされているブラウザやプラットフォーム上でFIDOベースの認証を追加するためにウェブサイトがログインページを更新できるようにするウェブベースのAPIです 5 8

CTAPは、WebAuthnを補完するものであり、セキュリティキーや携帯電話などの外部認証機能を、WebAuthnをサポートするブラウザと連携させたり、デスクトップアプリケーションやウェブサービスの認証機能として利用したりすることができます 5 8。この仕組みを利用して、デバイスバウンド(device-bound)なパスキーでも、スマホに登録したパスキーを使ってパソコンのQRコードを読み取ることで、同期せずに認証を行うことが可能です。これは クロスデバイス認証Cross-Device Authentication)や ハイブリッドトランスポートと呼ばれ、パスワードマネージャやクラウドによるパスキーの同期とは明確に区別されます 16 17

  • デバイスバウンドパスキーは、原則として発行されたデバイス(例:スマホやセキュリティキー)から外部に秘密鍵が出ないため、他のデバイスには同期されません 9 12
  • しかし、クロスデバイス認証 (CDA)の仕組みを使えば、たとえばPCのWebサイトでQRコードを表示し、それをスマホで読み取ることで、スマホ内のパスキーを使ってPC上で認証できます 16 17
    • この場合、スマホとPCはBluetooth(またはインターネット経由の安全なチャネル)で一時的に通信し、スマホ上のパスキーで署名した認証レスポンスをPCに転送します。Bluetoothを使う理由は、近接性を確認しリモート攻撃を避けるためです 17
    • 秘密鍵自体はスマホから出ず、署名だけがPCに渡るため、セキュリティ要件も維持されます 17
    • CDAはRelying PartyやブラウザAPIにおいて特段のパラメータなどは不要です。しかしながら初回接続時には時間がかかる可能性があるため認証タイムアウトを長めに設定しておく配慮は必要です。

同期型パスキーとの違い

  • 同期型パスキーは、Apple iCloud KeychainやGoogle Password Managerなどのパスワードマネージャ/クラウドサービスを利用し、同じアカウントでログインしている複数のデバイス間でパスキー(秘密鍵)を安全に同期・複製する仕組みです 9 12

    • これにより、どのデバイスでも同じパスキーを使って認証できます。
  • クロスデバイス認証(CDA) は、パスキーを同期せず、スマホにしか存在しないデバイスバウンドパスキーを一時的に他のデバイス(PCなど)で利用するためのプロトコルです 16 17

    • この方式では、パスキー自体が他のデバイスにコピー・同期されることはありません。
    • 認証のたびにスマホが必要となり、スマホがオフラインや手元にないと認証できません。

セキュリティ優位性の科学的根拠

フィッシング攻撃に対する根本的対策

FIDO認証がフィッシング耐性を持つ理由は、URLに対してクレデンシャルを使用できるかをブラウザなどの信頼できるプログラムが検証するオリジンバインディングOrigin Binding)という仕組みに委ねられているからです 7 18。人間の視覚的な判断に頼らないため、フィッシングサイトに騙されるリスクが根本的に排除されます 7 18

パスキーは、システム(ブラウザ、OS、パスワードマネージャーなど)によって、ユーザーがデバイスのロックを解除して承認したときにのみ提示されます 4。システムは決して間違ったサイト(偽のオリジン)にクレデンシャルを提示することがないため、フィッシングの本質を無効化します 4 7

多要素認証の内蔵設計

パスキーは、認証に複数の要素を活用します:パスキーはユーザーのデバイスに保持され(ユーザーが「持っている」もの)、RPがユーザー検証を要求する場合、生体認証またはPIN(ユーザーが「である」または「知っている」もの)でのみ実行できます 4 9。これは実質的に多要素認証(MFA)を内蔵していると言えます 9 13

データ侵害とサーバー攻撃への対策

パスキーのもう一つの重要なセキュリティ利点は、サーバー側に秘密情報(パスワードなど)を保存しない点です 4 7。従来のパスワードハッシュのデータベースが盗まれた場合とは異なり、パスキーが使用する非対称暗号により、サーバー側のデータベースには公開鍵のセットのみが含まれます 4 7

暗号学の数学的性質により、公開鍵から秘密鍵を導出することは計算上実行不可能です 6 7。したがって、攻撃者がこのデータベースを手に入れたとしても、秘密鍵はユーザーのデバイス上にのみ存在するため、不正にサインインすることはできません 4 7

実装と技術的対応状況

ブラウザとプラットフォームのサポート

WebAuthnは現在、Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safariの主要なウェブブラウザと、Windows、macOS、iOS、Androidなどのプラットフォームでサポートされています 5 16

業界での採用と普及状況

主要技術企業であるMicrosoft、Google、Appleは、従来のパスワードに代わるパスキーの世界的な採用を推進しています 19。2022年の3社による共同発表以降、このイニシアチブは主要なプラットフォームで実装が進んでいます 19

課題と将来展望

現在の導入障壁

パスキーはまだ新しい技術であるため、対応しているWebサイトやアプリが限られています 13 15。また、パスキー(特にデバイス固定型)は利用するデバイスと密接に関連しているため、対象のデバイスを紛失してしまった場合、サインインできなくなる恐れがあります 9 13。レガシーシステムとの互換性や、ユーザーへの教育と理解促進も重要な課題です 9 13

将来性と発展方向

パスキー技術は、パスワードや従来のMFAソリューションよりもセキュリティ、使いやすさ、拡張性を向上させることが期待されています 9 13。今後、パスキーの採用はさらに広がり、より安全なデジタル社会の基盤となる可能性があります 9 13

FIDO認証とパスキー技術は、現代のサイバーセキュリティにおける革命的な進歩であり、従来のパスワードベース認証の根本的な脆弱性を解決する包括的なソリューションを提供しています 1 5 6。公開鍵暗号方式、フィッシング耐性、多要素認証の内蔵設計、およびシームレスなユーザーエクスペリエンスの組み合わせにより、これらの技術は次世代の認証標準として確立されつつあります 4 7

主要技術企業による積極的なサポートと標準化の推進により、パスキー技術の普及は加速しており、より安全で便利なデジタル認証環境の実現に向けた重要な一歩となっています 19。残存する課題はあるものの、FIDO認証とパスキー技術は、パスワードレス社会への移行を促進し、サイバーセキュリティの向上とユーザーエクスペリエンスの改善を同時に実現する革新的なソリューションとして、今後ますます重要な役割を果たすことが期待されます 1 9

参考文献

Footnotes

  1. FIDO Alliance. "What is the FIDO Alliance?" Yubico. 2 3

  2. Wikipedia. "FIDO Alliance".

  3. FIDO Alliance. "概要". 2

  4. FIDO Alliance. "Passkeys (パスキー)". 2 3 4 5 6 7 8 9

  5. FIDO Alliance. "User Authentication Specifications Overview". 2 3 4 5 6 7 8 9 10 11 12 13

  6. DoubleOctopus. "FIDO Authentication Guide: Passkey, WebAuthn & Best Practices". 2 3 4 5 6 7 8 9 10 11 12

  7. FIDO Alliance. "Passkey Security". 2 3 4 5 6 7 8 9 10 11 12

  8. Yubico Product Documentation. "FIDO2 overview". 2 3 4 5 6

  9. Authsignal. "Synced vs Device-Bound Passkeys: How User Convenience and Authentication Experiences Vary". 2 3 4 5 6 7 8 9 10 11 12 13 14 15

  10. Yubico Developer Guide. "Resident Keys". 2 3 4 5

  11. Turnkey. "Passkeys: Discoverable vs. Non-Discoverable". 2 3 4

  12. Büttner, A., & Gruschka, N. (2025). "Device-Bound vs. Synced Credentials: A Comparative Evaluation of Passkey Authentication". arXiv. 2 3 4 5 6

  13. FIDO Alliance. "White Paper: Replacing Password-Only Authentication with Passkeys in the Enterprise". 2 3 4 5 6 7 8 9 10 11 12

  14. Proton. "What is a passkey?".

  15. Macnica. "パスキー(Passkeys)とは?仕組みやメリット・デメリット、導入事例を解説". 2 3 4 5

  16. Microsoft Learn. "Reference for passkeys - Cross-Device authentication". 2 3 4

  17. Corbado. "WebAuthn Passkey QR Codes & Bluetooth: Hybrid Transport". 2 3 4 5

  18. IBM Community. "What makes FIDO and WebAuthn Phishing Resistent?". 2

  19. TeamPassword. "Passkey Technology Explained: What It Is and How It Works". 2 3