パスキーは、パスワードの代わりに、スマートフォンやパソコンなどの端末に保存された暗号鍵を使ってログインする仕組みです。
ログイン画面で顔認証、指紋認証、または端末のPINを求められるため、パスキーを「顔認証や指紋認証の別名」だと思われることがあります。しかし、顔や指紋そのものがWebサービスのログイン情報になるわけではありません。
このページでは、技術的な専門知識がなくても、なぜボタンを押すだけのログインが安全なのかを理解できるように解説します。
これまでのWebサービスでは、IDとパスワードを入力し、さらにSMSやメールで届いたワンタイムパスワードを入力する方法が広く使われてきました。
しかし、正規サイトとよく似た偽サイトへ利用者を誘導し、ID、パスワード、ワンタイムパスワードを続けて入力させるリアルタイム型のフィッシングでは、二要素認証を設定していても被害を防げない場合があります。
金融庁や警察庁は、金融機関をかたるフィッシング被害への対策として、パスキーなどのフィッシング耐性のある認証方式の導入を推進しています。
金融機関や証券会社では、ログイン、出金、登録情報の変更などの重要な操作から、パスキーなどを優先的に利用する方向へ移行が進んでいます。今後は金融分野だけでなく、一般的なWebサービスでも利用が広がると考えられます。
パスワードという「本人しか知らない文字列」で確認する方式から、本人の端末に保存された「本人しか使えない鍵」で確認する方式への転換です。
パスキーの正体は、端末やパスキー管理サービスに保存される公開鍵と秘密鍵の組み合わせです。
顔認証、指紋認証、PINは、Webサイトへ送信するログイン情報ではありません。端末内に保存された秘密鍵を、今操作している人に使わせてよいかを端末が判断するための本人確認です。
生体認証を利用した場合でも、Webサービス側が利用者の顔写真や指紋データを受け取って照合するわけではありません。顔や指紋の照合は端末側で行われ、Webサービスには秘密鍵を使って作られた認証結果が返されます。
PINも同様です。ここで入力するPINは、そのWebサービスのパスワードではなく、端末のロックを解除し、秘密鍵の使用を許可するための番号です。
パスワードやワンタイムパスワードは、人が文字を見てWebサイトへ入力します。そのため、偽サイトを本物だと信じて入力してしまうと、入力した情報が第三者に渡る可能性があります。
パスキー認証では、パスワードや秘密鍵そのものをWebサイトへ送信しません。Webサイトから届いた一度限りの確認データに対して、端末内の秘密鍵でデジタル署名を作成し、その署名だけを返します。
Webサービス側は、登録時に預かった公開鍵を使い、その署名が正しいかを検証します。
秘密鍵を持たない第三者が、パスワードを入力するだけで本人になりすますことはできません。
パスキーを登録すると、その認証情報は登録したWebサービスのドメインに結び付けられます。
攻撃者が正規サイトと同じロゴやデザインの偽サイトを作っても、偽サイトのドメインは正規サイトとは異なります。そのため、正規サイト用のパスキーは偽サイトでは利用できません。
パスワードは、人が見た目を信じて入力します。
パスキーは、端末がドメインを確認してから動作します。
利用者が偽サイトを本物だと思い込んでも、端末とブラウザが正規のドメインではないと判断すれば、そのサイトに対応するパスキーは呼び出されません。
これが、パスキーにフィッシング耐性があるとされる大きな理由です。
パスキーの登録時には、互いに対応する公開鍵と秘密鍵が作られます。
ログインするとき、Webサービスは毎回異なる確認データを端末へ送ります。端末は秘密鍵を使ってそのデータに署名し、Webサービスへ返します。
Webサービスは公開鍵を使い、署名が正しいことを確認します。正しい署名を作れるのは、対応する秘密鍵を持つ端末だけです。
公開鍵は知られても、そこから秘密鍵を簡単に作ることはできません。そのため、Webサービス側のデータベースに公開鍵を保存しても、パスワードと同じ共有秘密を預かる構造にはなりません。
パスキーは、特定の1社だけが管理する独自のログイン方式ではありません。パスワードへの依存を減らすことを目的に、FIDO AllianceとW3Cを中心として標準化された技術を基礎にしています。
Webサイトやアプリで公開鍵認証を利用するための枠組みです。一般的には、WebAuthnとCTAPを組み合わせた仕組みとして説明されます。
Webサイトがブラウザを通じて、パスキーの登録や認証を行うためのWeb標準APIです。W3Cによって標準化されています。
パソコンやスマートフォンなどのクライアントと、セキュリティキーや別のスマートフォンなどの認証器が通信するための仕様です。FIDO Allianceが策定しています。
Apple、Google、Microsoftをはじめ、多くのOS、ブラウザ、端末、Webサービスが共通仕様に対応しているため、パスキーは広い環境で利用できるようになっています。
パスキーには、特定の端末やセキュリティキーの中だけで利用する方式があります。この方式では、その端末を持っていることが認証の重要な条件になります。
現在広く利用されているのが、Apple、Google、Microsoftなどのアカウントを通じて、複数の端末で利用できる同期パスキーです。
例えば、スマートフォンで作成したパスキーを、同じプラットフォームアカウントで利用している別の端末でも使用できる場合があります。端末を買い替えたときも、アカウントへ安全にサインインすることで、パスキーを引き継げる場合があります。
顔画像や指紋情報がクラウドへ同期され、Webサービスへ共有されるわけではありません。同期の対象は、保護されたパスキーの認証情報です。
代表的な保存・管理環境には、AppleのiCloudキーチェーンやPasswords、Google パスワード マネージャー、Microsoftアカウントに対応したパスキー管理機能などがあります。利用できる範囲や同期方法は、OS、ブラウザ、端末、アカウントの設定によって異なります。
利用者が長い文字列を作成したり、記憶したり、定期的に変更したりする必要はありません。
Webサービス側に保存されるのは、本人確認に使用する公開鍵です。ログインに必要な秘密鍵は利用者側で保護されます。
パスワードや秘密鍵そのものを送信せず、毎回異なる確認データに対して作られた署名で本人確認を行います。
パスキーは、安全性を高めるために操作を複雑にする仕組みではありません。
パスワードを覚える、入力する、使い回しを避ける、ワンタイムパスワードを転記するといった負担を減らしながら、フィッシングによる不正ログインを防ぎやすくします。
安全性と使いやすさを同時に改善できることが、パスキーがこれからの標準的なログイン方式として期待されている理由です。
本ページは、以下の公的機関・標準化団体が公開する情報を参考に、一般利用者向けに内容を整理しています。