パスキーは、パスワードに代わるより安全でユーザー フレンドリーな方法です。パスキーを使用すると、ユーザーはデバイスの組み込みのロック解除メカニズム(パターン、PIN、パスワード、生体認証(指紋認証や顔認証など))を使用してウェブサイトやアプリにログインできます。Credential Manager API は、Web 認証標準に基づいて、パスキー認証フローの統合を容易にします。
パスキーのメリット
パスキーには、他の認証メカニズムに比べて多くのメリットがあります。
- ログイン エクスペリエンスの向上: ユーザーはパスワードを入力する代わりに、指紋認証や顔認証などの方法で認証できるため、ログインがスムーズかつ迅速になります。
- セキュリティの強化: パスキーは公開鍵暗号を使用するため、サービス プロバイダのデータ漏洩によってアカウントが侵害されることはありません。パスキーは、フィッシング攻撃の対象とならない業界標準の API とプロトコルに基づいています。
- デバイスとプラットフォームにわたる統一されたエクスペリエンス: デバイス間でパスキーを同期できるため、ユーザーは Windows、iOS、Linux など、使用するデバイスやプラットフォームに関係なく、認証を簡素化できます。
- 新しいデバイスでのシームレスな認証: パスキーは、認証情報の復元をサポートしており、ユーザーが新しいデバイスにシームレスにログインできます。
- ログイン時の煩わしさを軽減: パスキーではパスワードを覚える必要がないため、パスワードを忘れた場合の煩わしさが軽減されます。
これらのメリットを示す例については、パスキーを採用したアプリのケーススタディをご覧ください。
認証情報マネージャーでのパスキーの仕組み
証明書利用者クライアント アプリと証明書利用者アプリサーバーで Credential Manager API を使用して、パスキーによる認証ソリューションを作成します。
パスキーを作成する手順は次のとおりです。
- クライアント アプリが、認証情報の作成に必要なオプションをアプリサーバーにリクエストします。
- クライアント アプリは、これらのオプションを使用して Credential Manager API にリクエストを送信し、公開鍵と秘密鍵のペアを生成します。
- 公開鍵はアプリサーバーに保存され、秘密鍵は Google パスワード マネージャーなどの認証情報プロバイダを介してユーザーのデバイスに安全に保存されます。
パスキーでログインする手順は次のとおりです。
- クライアント アプリがアプリサーバーに認証情報リクエスト オプションをリクエストします。アプリサーバーはレスポンスとともにチャレンジを送信します。アプリサーバーは、後で確認できるようにこのチャレンジを安全に保存します。
- ユーザーがデバイスの画面ロックを使用してパスキーの使用に同意すると、認証情報プロバイダは保存された秘密鍵を使用してチャレンジに署名し、署名付きアサーションを作成します。
署名付きアサーションをアプリサーバーに送信し、次のチェックを行います。
- チャレンジが保存されているチャレンジと一致する場合。
- アサーションの署名を公開鍵で検証できる場合。
アプリサーバーがアサーションを正常に検証すると、ユーザーはログインします。
Android バージョンの互換性
Credential Manager のパスキー実装は、Android 9(API レベル 28)以降を搭載しているデバイスで動作します。
クロス プラットフォームのサポート
パスキーは、Android、Microsoft Windows、macOS、iOS など、複数のオペレーティング システムに対応しています。また、Chrome、Microsoft Edge、Safari など、さまざまな一般的なブラウザにも対応しています。
Chrome と Android でのサポート状況については、サポートされている環境をご覧ください。ウェブサイトにパスキーを追加する方法については、ウェブ上のパスキーをご覧ください。
さまざまなフォーム ファクタに対応
パスキーは、Android、Wear OS、Android XR など、Google が開発した他のフォーム ファクタでも機能します。詳しくは、フォーム ファクタをご覧ください。