用語辞典・プライバシー・認証

パスキー

パスキーとは

パスキーは、公開鍵暗号を使い、端末のロック解除などで安全にログインするパスワード代替の認証方式です。英語ではpasskey(パスキー)と書き、FIDO2とWebAuthn(Web Authentication/ウェブ・オーセンティケーション)の仕組みを利用します。

サービスには公開鍵を登録し、対応する秘密鍵は端末やセキュリティ鍵の認証器側へ置きます。ログイン時はサービスが新しいチャレンジを送り、認証器が正しいサイトであることと利用者操作を確認して署名します。

秘密鍵も指紋画像もサービスへ送りません。サービスは公開鍵で署名を検証し、「登録済み認証器が、このサイト向けの新しい問いへ応答した」ことを確かめます。

登録で鍵組を作り、認証では毎回異なるチャレンジへ署名する秘密鍵は認証器に残し、公開鍵だけをサービスへ預ける
端末内で公開鍵と秘密鍵の組を作成して公開鍵だけをサーバーへ登録し、ログイン時はサーバーからの一回限りの問いへ端末が署名し、偽の接続先では鍵を使わない流れを示すピクトグラム図解
図1端末間同期型でも、サービス側には復号可能な秘密鍵を保存しません。同期事業者と端末群の保護、アカウント回復条件は別に確認します。

登録とログインを分けて読む

Register 1サービスが登録条件を送る

チャレンジ、サービスを表すRP ID、利用者情報、対応アルゴリズムなどをブラウザーへ渡します。

Register 2認証器が鍵組を作る

利用者同意を得てサイト専用認証情報を作り、秘密鍵を安全な領域へ保持します。

Register 3公開鍵を登録する

サービスは認証情報ID、公開鍵、認証器情報を利用者アカウントへ結び付けます。

Sign in 1新しいチャレンジを受ける

過去の応答を再利用できない十分な乱数と、許可認証情報の条件を受け取ります。

Sign in 2利用者を端末内で確認する

顔、指紋、端末PINなどで、目の前の利用者が秘密鍵を使ってよいか確認します。

Sign in 3署名をサービスが検証する

チャレンジ、RP ID、オリジン、公開鍵、カウンター等を照合し、セッションを開始します。

偽サイトへ強い理由は接続先を鍵へ結び付けるから

パスワードやOTPは、利用者が似た見た目のサイトへ手入力すると盗まれます。パスキーではブラウザーと認証器が、現在のオリジンと登録時のRP ID(Relying Party Identifier/リライイング・パーティー・アイデンティファイア)を照合します。

別ドメインの偽サイトは本物サイト用認証情報を要求できず、署名を中継して別のチャレンジへ使うこともできません。ただし端末自体の乗っ取り、サービスの認可不備、回復経路の弱さまで自動で解決するわけではありません。

生体認証とパスキーは同じものではない

指紋や顔は、多くの場合、端末内で秘密鍵を使う人を確認する利用者検証です。サービスが検証する主な証拠は秘密鍵による署名です。生体を使わず端末PINで解除する構成もあります。

画面ロックを解除した状態だけで使用できる設定と、ログインごとに利用者確認を求める設定では保証が違います。サービスは重要度に応じ、利用者検証済みの応答を要求できます。

同期型と端末固定型では紛失時の流れが違う

syncedパスキーは事業者のエンドツーエンド保護を通して複数端末へ利用可能になります。機種変更に強い一方、同期アカウントの防御と回復が重要です。device-boundパスキーは特定のセキュリティ鍵や端末から出ないため、予備認証器の登録が重要です。

サービス側には複数のパスキーを登録し、端末名と登録時期を確認して個別に削除できるようにします。紛失端末の画面ロック、リモートerase、同期アカウントのセッションも見直します。

パスキーの安全性は「パスワードを入力しない」だけでなく、サイト専用の鍵、毎回異なるチャレンジ、オリジン確認、端末内利用者確認を組み合わせることで生まれます。

パスキーのWeb認証処理とRP・credentialの確認資料:W3C「Web Authentication: An API for accessing Public Key Credentials」FIDO Alliance「Passkeys」

関連用語