パスキーデモ & WebAuthn テスター

WebAuthn API で本物のパスキーを作成し、デコードされたクレデンシャルを確認し、サインインしてサーバーが実行するすべての検証ステップを観察できます。すべて WebCrypto を使ってブラウザ内のローカルで処理されます。アカウント不要で、データがデバイスの外に出ることはありません。

Checking WebAuthn support…

お客様のデータの安全を最優先にしています。パスキーの作成、クレデンシャルの確認、署名の検証は、WebAuthn API と WebCrypto API を使ってすべてブラウザ内で完結します。バックエンドは存在せず、このツールがデバイスの外に何かを送信・保存することはありません。ソースコード: https://github.com/oursky/authgear-web

パスキーデモの仕組み

ステップ 1.
作成オプションを選ぶ:
オーセンティケーターの種類、ユーザー検証、レジデントキー、アテステーション、アルゴリズムを選びます。PublicKeyCredentialCreationOptions の JSON は変更に応じてリアルタイムに更新されます。
ステップ 2.
パスキーを作成する:
ブラウザが navigator.credentials.create() を呼び出し、デバイスが Face ID、Touch ID、Windows Hello、またはセキュリティキーを求めます。
ステップ 3.
クレデンシャルを確認する:
ツールが clientDataJSON をデコードし、アテステーションオブジェクトを CBOR デコードします。フラグ、署名カウント、AAGUID(オーセンティケーターのモデル)、クレデンシャル ID、そして JWK と PEM 形式の公開鍵を表示します。
ステップ 4.
パスキーでサインインする:
navigator.credentials.get() がアサーションを生成します。保存済みクレデンシャルの一覧から選ぶか、空の allow-list を使った discoverable credential フローで行います。
ステップ 5.
サーバーのように検証する:
実際のサーバーが行うすべてのチェックに、説明付きの合格/不合格バッジが付きます。セレモニーの種類、チャレンジ、オリジン、RP ID ハッシュ、フラグ、WebCrypto による署名検証です。

自分のアプリにパスキーを追加する準備はできましたか? パスキー実装の開発者ガイドを読む

対応プラットフォーム

パスキーはすべての主要プラットフォームで動作し、各エコシステム内で同期されます。このデモは WebAuthn に対応したあらゆるブラウザで実行できます。

Apple
iOS 16 以降と macOS 13 以降。Face ID または Touch ID、iCloud キーチェーンで同期。
Android & Chrome
Android 9 以降。指紋または画面ロック、Google パスワードマネージャーで同期。
Windows
Windows 10 と 11。Windows Hello の顔認証、指紋、または PIN。
パスワードマネージャー
1Password、Bitwarden、Dashlane、Proton Pass などがパスキーをクロスプラットフォームで保存・同期します。
セキュリティキー
YubiKey などの FIDO2 ハードウェアキーは、クロスプラットフォーム(USB/NFC)トランスポートで動作します。

WebAuthn とは?

WebAuthn(Web Authentication)は、パスキーを支える W3C 標準のブラウザ API です。共有のパスワードの代わりに、デバイスがサイトごとに公開鍵と秘密鍵のペアを作成します。秘密鍵はオーセンティケーターの外に出ず、サイトは公開鍵だけを保存します。サインインはチャレンジレスポンス方式の署名で行われます。ブラウザがすべてのクレデンシャルを作成元のオリジンに厳密に結び付けるため、パスキーはフィッシングに耐性があります。 パスキー実装の開発者ガイドをご覧ください。

ここでパスキーを作成しても安全ですか?

はい。このページで作成されるパスキーは本物ですが、このサイトだけに限定されており、このデモ以外には使えません。秘密鍵はデバイスのオーセンティケーターに留まり、公開鍵とクレデンシャルのメタデータはブラウザの localStorage にのみ保存されます。サーバーが存在しないため、どこにも送信されません。デモの記録はワンクリックで削除でき、パスキー自体もいつでもデバイスから削除できます。

デモのパスキーをデバイスから削除するには?

ツール内の「Forget」はこのページの記録を削除するだけです。パスキーをデバイスから削除するには:
iOS / macOS: 設定 → パスワード(またはパスワードアプリ)→ このサイトを探す → パスキーを削除。
Android / Chrome: Google パスワードマネージャー → パスワード → このサイトを探す → 削除。
Windows: 設定 → アカウント → パスキー → このサイトを探す → 削除。
パスワードマネージャー(1Password、Bitwarden など): このサイトの項目を探して、そこで削除します。

AAGUID とは?

AAGUID(Authenticator Attestation Globally Unique Identifier)は、個々のデバイスではなくオーセンティケーターのモデル(例: Google パスワードマネージャーや YubiKey 5)を識別する 16 バイトの ID です。このツールは、コミュニティが管理する passkey-authenticator-aaguids リストのスナップショットと照合して解決します。アテステーションが「none」(デフォルト)の場合、多くのオーセンティケーターはプライバシーのためにこれをゼロにします。

署名カウントが 0 と表示されるのはなぜ?

署名カウンターは複製されたクレデンシャルを検出するために設計されたもので、使用ごとに増えるはずのものです。しかし同期されるパスキーは複数のデバイスに同時に存在し、単一の共有カウンターを維持できません。そのため、ほとんどのパスキープロバイダー(iCloud キーチェーン、Google パスワードマネージャー)は常に 0 を返し、「カウンター非対応」を意味します。ハードウェアセキュリティキーは通常、カウンターを増やします。