パスキー【passkey】
概要
業界団体のFIDOアライアンスが策定した「FIDO2」規格と、標準化団体のW3Cが策定した「WebAuthn」規格に基づいて運用される認証方式である。利用者はサービスの初回利用時などに認証情報の生成と登録を行えば、次回からは端末側の認証機能で本人確認を行うだけでよい。
ログイン時にパスワードなどの秘密の情報の入力や送受信を行わない「パスワードレス認証」の最も有力な方式の一つである。利用者はパスワードの登録や毎回のログイン時の入力などを行う必要がなく、簡便な操作で様々なサービスにログインすることができる。パスワードが無いため、攻撃者に盗み取られて「なりすまし」利用される心配もない。
パスキーの登録
サービスへのパスキーの登録は、ユーザー登録時や初回ログイン時などに行われる。Webブラウザやアカウントマネージャなどパスキー対応のクライアントは、登録手続きが開始されると内部で公開鍵暗号の公開鍵と秘密鍵の鍵ペアを作成する。
クライアントはオペレーティングシステム(OS)などが提供するユーザー認証機能(PIN入力や指紋認証など)を呼び出し、操作している利用者の本人確認を行う。確認できたら、公開鍵をサービス運営側の認証サーバへ送り、秘密鍵は内部の安全な領域に保管する。
パスキーによる認証
サービスへのログイン時には、まずサーバが「チャレンジ」(challenge)と呼ばれる、毎回ランダムに変化する符号列をクライアントに送る。クライアントは保管された秘密鍵とチャレンジから一定の計算手順でデジタル署名を生成し、サーバに送り返す。
サーバは登録されている公開鍵とチャレンジを用いて送られてきた署名を検証し、相手方が以前に公開鍵を送ってきた本人かどうかを確かめる。署名が正しければ認証成功となり、ログインしてサービスの利用を開始することができる。
パスキーはユーザー名など利用者の識別子と対応付けて保管することができ、ログイン時にクライアントから自動的にサーバ側に通知させることもできる。その場合はユーザー名の入力も不要で、OSによる本人確認のみで即座にログインすることができる。
パスキーの安全性
認証時にやり取りするのはその場で生成したデジタル署名のみであり、秘密の情報自体は送受信しない。暗号鍵だけでなく毎回変化するチャレンジ符号をもとに署名を生成するため、署名の符号列も毎回ランダムに変化する。攻撃者が継続的に通信を盗み見ることができたとしても、秘密鍵を復元するのは現実的ではない。
秘密の情報をサーバ側に渡すわけではないため、パスワードのようにサーバが攻撃を受けて秘密の情報が攻撃者の手に渡ることはない。また、著名なネットサービスにそっくりな外観の偽サイトに利用者をおびきよせ、ログイン試行させてパスワードを盗み取る「フィッシング」詐欺も無効である。
デバイス固定パスキーと同期パスキー
パソコンやスマートフォンなど、ある一台の端末に紐付けられ、その端末でのみ利用可能なパスキーを「デバイス固定パスキー」(device-bound passkey)という。他の端末から同じサービスを利用する場合には、その端末でもパスキー登録の手順を繰り返す必要がある。
一方、OSやネットサービスのアカウントに紐付けられ、同じアカウントで利用する他の端末にも自動的に同期・複製されるパスキーを「同期パスキー」(synced passkey)という。Appleアカウント、Googleアカウント、Microsoftアカウントなどに紐付けられるパスキーで、そのアカウントでログインした他の端末でも同じパスキーを使うことができる。端末の破損や紛失、買い替え時などにもパスキーを同期するだけですぐに利用可能になる。
