Video showing user flow for creating a passkey
出典: storage.googleapis.com

Googleは、指紋や顔認証、端末のPINを使ってログインする「パスキー」の設定方法を案内しました。パスワードを入力せずに認証でき、フィッシングへの耐性があります。

Googleアカウントでパスキーを作成する

Googleアカウント用のパスキーは、g.co/passkeysにアクセスし、「Create a passkey」を選んで画面の案内に従うと作成できます。パスキーは、アカウントとウェブサイトやアプリに結び付いたデジタル認証情報です。

利用者は、まず対象のサービスに既存の方法でログインし、パスキーの作成を選びます。保存される情報を確認した後、端末の画面ロックを使って作成を完了します。

次回以降は、サービスのログイン画面でアカウントを選び、表示されたパスキーを選択して端末を認証します。指紋や顔認証のほか、端末のPINやパターンも使えるため、本人確認の操作は端末のロック解除に似ています。

端末とサーバーが分担する認証

パスキーでは、作成時に公開鍵と秘密鍵のペアが生成されます。サービス側のサーバーに保存されるのは公開鍵で、秘密鍵から公開鍵を割り出すことはできません。

ログイン時には、サーバーが認証用のチャレンジを発行します。利用者が端末で本人確認すると、パスキーがチャレンジに署名し、サーバーが署名を検証します。署名が有効なら、利用者を認証します。

ブラウザー向けのWebAuthn APIやAndroidアプリ向けのCredential Manager APIは、端末とパスキープロバイダーのやり取りを担います。認証を完了するには、サービス側にも登録と認証の処理が必要です。WebAuthnは、ウェブサービスがパスキーを扱うための標準仕様です。

同期と別の端末からの利用

パスキーは端末上で暗号化されてから同期され、新しい端末で使うには復号が必要です。Googleパスワードマネージャーは、同じGoogleアカウントでログインしたAndroid端末とChromeブラウザーの間でパスキーを同期できます。

パスキーが同期されていないノートPCでも、手元のスマートフォンが近くにあれば、スマートフォンで承認してログインできる場合があります。パスキーはFIDO標準に基づいており、特定の端末だけに結び付く機能ではありません。

Googleは、生体情報は端末内にとどまり、同社と共有されないと説明しています。また、Googleパスワードマネージャーではパスキーの秘密情報をエンドツーエンドで暗号化しており、Googleのサーバーにバックアップされても、Googleが利用者になりすますためには使えないとしています。

フィッシング耐性と導入時の注意

パスキーは、作成したウェブサイトやアプリの識別情報に結び付いています。そのため、ブラウザーやOSが別のサイトでの利用を防ぎ、偽サイトに認証情報を入力させるフィッシングへの耐性があります。

FIDO Allianceは白書で、パスワードやSMSで届くワンタイムパスワードをフィッシング可能な方法に、パスキーをフィッシング耐性のある方法に分類しています。ワンタイムパスワードは、利用者が偽サイトに入力する可能性があるためです。

ただし、サービスがパスキーを任意の選択肢として追加しただけでは、パスワードなど従来のログイン方法への切り替えが残ります。FIDO Allianceは白書で、フィッシングへの耐性を高めるには、ログインだけでなくアカウント復旧の方法も段階的に強化する必要があるとし、急な切り替えによる利用者の負担にも配慮した導入を勧めています。