totonoe
雑学・読み物

パスキーって何?──パスワードが要らない仕組みと、なぜフィッシングに強いのか

パスキーは公開鍵暗号(WebAuthn / FIDO2)を使った認証で、秘密鍵は端末から出ず生体認証で守られます。サーバには公開鍵だけを登録するから、漏れない・使い回せない・偽サイトで動かない。その仕組みと安全性の理由を解説します。

ログイン画面で「パスキーで続ける」というボタンを見かける機会が増えました。Touch ID や顔認証だけでログインできて、パスワードを入力しない。便利そうだけど、「結局これって何が起きてるの?」「パスワードを使わずに、どうやって本人だと確認しているの?」と気になっている方は多いはずです。

生体認証だから安全らしい」となんとなく使っている方も、その安全性の根っこを知ると、パスキーがどれだけパスワードと違うものかが見えてきます。

結論を先に書きます。

パスキーは「公開鍵暗号」を使った認証で、あなたの端末の中に『秘密鍵』が残り、サーバには『公開鍵』だけが渡ります。 パスワードのように「合言葉を送って照合する」のではなく、端末が秘密鍵で署名し、サーバが公開鍵で検証する仕組みです。だから、サーバが漏れても・サイトをまたいでも・偽サイトに誘導されても破られにくいのです。


パスワードとパスキーは「何が違う」のか

まず、両者の根本的な違いを表で押さえます。

項目パスワードパスキー
認証の方式共有秘密(合言葉)を送って照合公開鍵暗号(署名と検証)
サーバに保存されるものパスワードのハッシュ公開鍵のみ
あなたの手元に残るもの記憶 / パスワードマネージャ秘密鍵(端末から出ない)
入力文字列を打つ生体認証(指紋・顔・PIN)
使い回しできてしまう(危険)構造的に不可能
偽サイトでの動作入力できてしまう動かない(ドメイン紐付け)

パスワードは「あなたとサーバが同じ合言葉を知っている」という前提で成り立っています。だからこそ、その合言葉が漏れたり盗み見られたりすると、即座に他人がなりすませてしまう。

パスキーは、この「合言葉を共有する」という発想そのものを捨てています。代わりに使うのが公開鍵暗号です。


公開鍵暗号という土台(WebAuthn / FIDO2)

パスキーの正体は、WebAuthnFIDO2 という標準仕様にもとづいた認証です。中身は「公開鍵暗号」というよく知られた暗号技術です。

公開鍵暗号では、ペアになった2つの鍵を作ります。

  • 秘密鍵:署名を作るための鍵。絶対に外に出さない。
  • 公開鍵:署名を検証するための鍵。誰に見られても問題ない。

この2つは数学的にペアになっていて、「秘密鍵で作った署名は、対応する公開鍵でしか検証できない」という性質を持ちます。

パスキーを作るとき、何が起きているかを順に見ます。

  1. あるサイトに登録するとき、端末(スマホ・PC・セキュリティキー)の中で鍵ペアを生成します。
  2. 秘密鍵は端末の安全な領域に保管され、外には一切出ません。取り出すには Touch ID / 顔認証 / Windows Hello / PIN といった生体認証や画面ロック解除が必要です。
  3. 公開鍵だけがサーバに送られて登録されます。

つまりサーバ側には「鍵を開ける本物」ではなく、「鍵が本物か確認するための照合用データ」しか置かれません。実際の登録・ログイン体験は パスキーの仕組みを整える で手を動かすとイメージが一気に掴めます。


ログインのときに起きていること

では、登録済みのパスキーでログインするとき、内部では何が起きているのでしょうか。ここがパスワードとの決定的な違いです。

  1. サーバが「チャレンジ」と呼ばれるランダムな文字列を送ってきます(毎回違う値)。
  2. あなたの端末は、生体認証で本人確認をしたうえで、秘密鍵を使ってそのチャレンジに署名します。
  3. 端末は署名だけをサーバに返します。秘密鍵そのものは送りません。
  4. サーバは、登録済みの公開鍵を使って署名を検証します。正しく検証できれば「本人だ」と確定します。

ポイントは、ネットワーク上を流れるのは「署名」だけで、合言葉(秘密)は一切流れないことです。チャレンジは毎回変わるので、たとえ署名を盗み見られても、次のログインには使い回せません。

パスワードは「合言葉そのもの」がネットワークを流れ、サーバにも(ハッシュ化されているとはいえ)保管されます。パスキーは「合言葉を送らない・保管しない」設計になっているわけです。


なぜフィッシングに強いのか──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つ:①サーバ漏洩でも秘密鍵は漏れない ②サイト間で使い回せない ③偽サイトでは動かない(フィッシング耐性)
  • 同期パスキー(複数端末で便利)とデバイス固定(厳格)を使い分け、複数端末を登録しておくと安心
  • まずは パスキーの仕組みを整える で作って試すのが理解の近道

合言葉を共有しない」という発想の転換が、パスキーの強さの正体です。仕組みを一度押さえておけば、これから増える「パスキーで続ける」ボタンを、安心して押せるようになります。

KOINOBORI ECOSYSTEM

私たちが運営するサイト