パスキーの仕組み
FIDOのユーザー認証標準は公開鍵暗号技術を活用して、ユーザーがパスキーを使用してサイ ンインすることを可能にする、ユーザーフレンドリーでフィッシング耐性のある認証を提供しています。
次の動画では、パスキーの実際の使用についてご覧いただけます。
オンラインサービスでのパスキー登録
まずユーザーは、オンラインサービスにパスキーを登録します。通常、登録の開始は(ユーザー自らが発見する)サインイン設定ページ、またはユーザーに対する設定のプロモーション(サインイン時にオンラインサービスによってユーザーに表示されるCTA (call to action) など)のいずれかを通じて行われます。
パスキーの登録プロセスは通常、ユーザーが既存の認証手段を使ってオンラインサービスのアカウントにサインインした後に発生します。ユーザーはプロンプトが表示されたらデバイスのロックを解除することで、パスキーの作成を承認します。パスキーはユーザーのクレデンシャル・マネージャー(従前においてはパスワードマネージャー)に保存されます。ユーザーがクレデンシャル・マネージャーをインストールしていない場合は、オペレーティングシステムに標準搭載されているクレデンシャル・マネージャーが使用されます。ユーザーがセキュリティキー(ハードウェアデバイス)を使用することを選択した場合、パスキーはデバイスのクレデンシャル・マネージャーではなく、セキュリティキー上に保存されます。
パスキーは、デバイス間で同期したりクレデンシャル・マネージャーやセキュリティキーに保存したりできます。
パスキーを使用したオンラインサービスへのサインイン
ユーザーがオンラインサービスへのサインインを試みると、使用したいアカウントを選択するよう求めるプロンプトが表示され、その後、生体認証またはローカルPINを使ってデバイス(またはセキュリティキー)のロックを解除するよう求めるプロンプトが表示されます。ユーザーが認証されると、オンラインアカウントにサインインします。ブラウザ、オペレーティングシステム(OS)、およびクレデンシャル・マネージャー(またはセキュリティキー)が連携することで、このシームレスなエクスペリエンスを実現します。
技術的概要
登録時には、クレデンシャル・マネージャー(またはセキュリティキー)が、その特定のオンラインサービス上の特定アカウントに固有の暗号鍵ペアを作成 します。クレデンシャル・マネージャー(またはセキュリティキー)は秘密鍵を保持し、公開鍵はオンラインサービスに登録されます。
ユーザーがオンラインサービスへのサインインを試みると、サーバーはユーザーのデバイスにランダムなチャレンジを送信します。クレデンシャル・マネージャー(またはセキュリティキー)は、ユーザーがデバイスのロックを解除してサインインを承認したことを確認した後に、適切な秘密鍵を使用してこのチャレンジに署名します。署名はサーバーに返信され、記録されている公開鍵と照合して検証されます。
ユーザーが新しいデバイスにクレデンシャル・マネージャーをインストールすると、秘密鍵がその新しいデバイスに同期されます。これにより、ユーザーは新しいデバイスからオンラインサービスにサインインできるようになります。
ユーザーがパスキーの保存にセキュリティキーを使用している場合、秘密鍵は同期されず、その特定のセキュリティキーのデバイス上に残ります。新しいデバイスでセキュリティキーを使用するには、ユーザーはセキュリティキーをタップするか、新しいデバイスに差し込みます。
デザイン上、安全なパスキー(Secure by Design)
デザイン上、パスキーは登録されたサイトにのみ提示されます。ユーザーが誤って攻撃者のサイトで入力す ることはありません。さらに、オンラインサービスにはパスワードハッシュに相当するものが存在しないため、攻撃者がサーバーから盗んでクラッキングし、パスワードを割り出す恐れもありません。オンラインサービスには公開鍵のみがあり、暗号理論における数学問題の困難性により公開鍵から秘密鍵を抽出することは計算上不可能です。
デザイン上、プライベートなパスキー(Privacy by Design)
各ドメインとアカウントごとに一意のパスキーが生成されます。従って、複数のオンラインサービスが連携してユーザーを追跡することはありません。(生体認証やPINを使用した)デバイスのロック解除はローカルのままです。オンラインサービスは、ユーザーのデバイスから公開鍵と署名のみを確認します。ユーザーが秘密鍵を使用するために、パスワード・マネージャーはオペレーティングシステムから提供されるAPIを使用して、デバイスのオペレーティングシステムが長年にわたって搭載してきた使い馴染みのあるデバイスロック解除機能を直接活用します。すなわち、設計上プライバシーが考慮されています。
オンラインサービスにパスキーを登録する
ユーザーがオンラインサービスのアカウントにパスキーを登録する手順は、以下の通りです。
- ユーザーがアプリまたはウェブサイトにアクセスする。
- ユーザーがオンラインサービスからパスキーを作成するよう求めるプロンプトを受け取るか、アカウント設定でパスキーの作成を開始する。
- ユーザーはデバイスを使用し、生体認証やローカルPINなどのローカル認証手段を介して、またはFIDOセキュリティキーをタッチすることで、パスキーの作成を認証する。
- ユーザーのデバイスがローカルデバイス、オンラインサービス、およびユーザーのアカウントに固有の新しい公開/秘密鍵ペア(パスキー)を作成する。
- 公開鍵がオンラインサービスに送信され、ユーザーのアカウントと関連付けられる。ローカルの認証手段に関するあらゆる情報(例えば、生体情報)は、ローカルデバイスから流出することはありません。
以降のサインインにパスキーを使用する
- クライアントデバイス上で、ユーザーがパスキーを使ってサインインするよう求めるプロンプトを受け取る。
- 複数のアカウントを使用しているユーザーは、使用するアカウントを選択するよう要求される。
- ユーザーは生体認証やローカルPINを使って、またはFIDOセキュリティキーをタッチして、ローカルの認証手段を完了するよう求めるプロンプトを受け取る。
- クライアントデバイスが署名されたチャレンジをサービスに送り返し、サービスはその署名を保存された公開鍵と照合させて検証することで、ユーザーをサインインさせる。