パスキーって何?──パスワードが要らない仕組みと、なぜフィッシングに強いのか
パスキーは公開鍵暗号(WebAuthn / FIDO2)を使った認証で、秘密鍵は端末から出ず生体認証で守られます。サーバには公開鍵だけを登録するから、漏れない・使い回せない・偽サイトで動かない。その仕組みと安全性の理由を解説します。
ログイン画面で「パスキーで続ける」というボタンを見かける機会が増えました。Touch ID や顔認証だけでログインできて、パスワードを入力しない。便利そうだけど、「結局これって何が起きてるの?」「パスワードを使わずに、どうやって本人だと確認しているの?」と気になっている方は多いはずです。
「生体認証だから安全らしい」となんとなく使っている方も、その安全性の根っこを知ると、パスキーがどれだけパスワードと違うものかが見えてきます。
結論を先に書きます。
パスキーは「公開鍵暗号」を使った認証で、あなたの端末の中に『秘密鍵』が残り、サーバには『公開鍵』だけが渡ります。 パスワードのように「合言葉を送って照合する」のではなく、端末が秘密鍵で署名し、サーバが公開鍵で検証する仕組みです。だから、サーバが漏れても・サイトをまたいでも・偽サイトに誘導されても破られにくいのです。
パスワードとパスキーは「何が違う」のか
まず、両者の根本的な違いを表で押さえます。
| 項目 | パスワード | パスキー |
|---|---|---|
| 認証の方式 | 共有秘密(合言葉)を送って照合 | 公開鍵暗号(署名と検証) |
| サーバに保存されるもの | パスワードのハッシュ | 公開鍵のみ |
| あなたの手元に残るもの | 記憶 / パスワードマネージャ | 秘密鍵(端末から出ない) |
| 入力 | 文字列を打つ | 生体認証(指紋・顔・PIN) |
| 使い回し | できてしまう(危険) | 構造的に不可能 |
| 偽サイトでの動作 | 入力できてしまう | 動かない(ドメイン紐付け) |
パスワードは「あなたとサーバが同じ合言葉を知っている」という前提で成り立っています。だからこそ、その合言葉が漏れたり盗み見られたりすると、即座に他人がなりすませてしまう。
パスキーは、この「合言葉を共有する」という発想そのものを捨てています。代わりに使うのが公開鍵暗号です。
公開鍵暗号という土台(WebAuthn / FIDO2)
パスキーの正体は、WebAuthn と FIDO2 という標準仕様にもとづいた認証です。中身は「公開鍵暗号」というよく知られた暗号技術です。
公開鍵暗号では、ペアになった2つの鍵を作ります。
- 秘密鍵:署名を作るための鍵。絶対に外に出さない。
- 公開鍵:署名を検証するための鍵。誰に見られても問題ない。
この2つは数学的にペアになっていて、「秘密鍵で作った署名は、対応する公開鍵でしか検証できない」という性質を持ちます。
パスキーを作るとき、何が起きているかを順に見ます。
- あるサイトに登録するとき、端末(スマホ・PC・セキュリティキー)の中で鍵ペアを生成します。
- 秘密鍵は端末の安全な領域に保管され、外には一切出ません。取り出すには Touch ID / 顔認証 / Windows Hello / PIN といった生体認証や画面ロック解除が必要です。
- 公開鍵だけがサーバに送られて登録されます。
つまりサーバ側には「鍵を開ける本物」ではなく、「鍵が本物か確認するための照合用データ」しか置かれません。実際の登録・ログイン体験は パスキーの仕組みを整える で手を動かすとイメージが一気に掴めます。
ログインのときに起きていること
では、登録済みのパスキーでログインするとき、内部では何が起きているのでしょうか。ここがパスワードとの決定的な違いです。
- サーバが「チャレンジ」と呼ばれるランダムな文字列を送ってきます(毎回違う値)。
- あなたの端末は、生体認証で本人確認をしたうえで、秘密鍵を使ってそのチャレンジに署名します。
- 端末は署名だけをサーバに返します。秘密鍵そのものは送りません。
- サーバは、登録済みの公開鍵を使って署名を検証します。正しく検証できれば「本人だ」と確定します。
ポイントは、ネットワーク上を流れるのは「署名」だけで、合言葉(秘密)は一切流れないことです。チャレンジは毎回変わるので、たとえ署名を盗み見られても、次のログインには使い回せません。
パスワードは「合言葉そのもの」がネットワークを流れ、サーバにも(ハッシュ化されているとはいえ)保管されます。パスキーは「合言葉を送らない・保管しない」設計になっているわけです。
なぜフィッシングに強いのか──3つの理由
「便利」だけならパスワードマネージャでも実現できます。パスキーが本当に評価されているのは、安全性が仕組みのレベルで保証されている点です。理由は3つです。
① サーバが漏洩しても秘密鍵は漏れない
サーバに保存されているのは公開鍵だけです。公開鍵は「署名を検証する」ことしかできず、署名を作ることはできません。だから、サーバのデータベースが丸ごと流出しても、攻撃者はあなたになりすませません。
パスワードの場合、ハッシュが漏れれば総当たりや辞書攻撃で元のパスワードを割り出される危険がありました。パスキーにはその出発点になる「秘密の素」がサーバ側に存在しないのです。
② サイト間で使い回せない
パスキーはサイト(ドメイン)ごとに別々の鍵ペアが作られます。A サイト用のパスキーと B サイト用のパスキーは完全に別物です。
「同じパスワードを複数サイトで使い回していたせいで、1つ漏れたら芋づる式に被害が広がる」という典型的な事故が、パスキーでは構造的に起こりえません。使い回したくても、使い回せないのです。
③ 偽サイトでは動かない(フィッシング耐性)
ここがパスキー最大の強みです。パスキーは登録時に正しいドメインと紐付いて作られます。ログイン時、端末は「いま接続しているドメインが、登録時のドメインと一致するか」を確認してから署名します。
つまり、本物そっくりの偽サイト(example.com に似せた examp1e.com など)に誘導されても、ドメインが違えばパスキーは反応せず、署名そのものが行われません。
パスワードは、人間が偽サイトと気づかずに入力してしまえば、そのまま盗まれます。パスキーは「人間が騙されても、仕組みが騙されない」のです。フィッシングを根っこから封じられるのは、この自動的なドメイン照合があるからです。
同期パスキーとデバイス固定パスキー
パスキーには大きく2つのタイプがあります。
| タイプ | 保管場所 | 特徴 |
|---|---|---|
| 同期パスキー | iCloud キーチェーン / Google パスワードマネージャ など | 同じアカウントの複数端末で自動同期。機種変更でも引き継げる |
| デバイス固定パスキー | セキュリティキー(YubiKey 等)/ 特定端末 | その端末から移動しない。最も厳格だが端末紛失に注意 |
日常利用では同期パスキーが現実的です。新しいスマホに変えても、クラウド経由でパスキーが引き継がれるので「機種変更で全部ログインし直し」が起きにくい。
一方、より厳しい運用が必要な場面(管理者アカウントなど)では、物理的なセキュリティキーに固定するデバイス固定が選ばれます。
どちらの場合も、1つのアカウントに複数の端末・キーを登録しておくのが安心です。1台を紛失しても、別の登録済み端末からログインして再設定できます。
実際に作って試すには
仕組みは分かっても、一度自分の手で「作って・ログインする」体験をすると理解が定着します。パスキーの仕組みを整える では、
- ブラウザ上で実際にパスキーを生成してみる
- 生体認証(対応端末なら Touch ID / Windows Hello)でログインする流れを体験
- 「チャレンジ → 署名 → 検証」の各ステップが目で見える形で確認できる
- 公開鍵と秘密鍵がどこに置かれるのかを図で整理
といったことを、登録もインストールも不要でその場で試せます。「百聞は一見にしかず」で、パスワードとの違いが体感できます。
関連ツールとのシナジー
- パスキーが使えないサービスの2段階認証を強くするなら → TOTPを整える(時間ベースのワンタイムコードの仕組み)
- パスワードがサーバでどう保存されているかの裏側を知るなら → ハッシュを整える(なぜ平文で持たないのか)
- 「パスキー=公開鍵暗号」「2段階認証=TOTP」「保存=ハッシュ」をセットで押さえると、認証まわりの全体像が見えてきます
まとめ
- パスキーは 公開鍵暗号(WebAuthn / FIDO2) を使った認証
- 端末内で鍵ペアを生成し、秘密鍵は端末から出ず、生体認証で守られる。サーバには公開鍵だけ登録
- ログインは「チャレンジに秘密鍵で署名 → 公開鍵で検証」。合言葉(秘密)を送らない
- 強い理由は3つ:①サーバ漏洩でも秘密鍵は漏れない ②サイト間で使い回せない ③偽サイトでは動かない(フィッシング耐性)
- 同期パスキー(複数端末で便利)とデバイス固定(厳格)を使い分け、複数端末を登録しておくと安心
- まずは パスキーの仕組みを整える で作って試すのが理解の近道
「合言葉を共有しない」という発想の転換が、パスキーの強さの正体です。仕組みを一度押さえておけば、これから増える「パスキーで続ける」ボタンを、安心して押せるようになります。