Skip to content

パスキーのフィッシング耐性とドメインバインディング

パスキーがフィッシング詐欺に対して圧倒的な耐性を持つ理由は、ドメイン結合(Domain Binding)公開鍵暗号方式によって、ユーザーが騙されても物理的に情報を渡せない構造になっているから。

1. ドメイン結合(Domain Binding)の仕組み

パスキーは作成時に特定の正規ドメイン(例:netflix.com)と数学的に紐付けられる。

パスキー登録時:
  デバイス → 鍵ペアを生成(秘密鍵 + 公開鍵)
            → 公開鍵に "登録ドメイン: netflix.com" を紐付け → サーバーへ

ログイン時:
  ブラウザ/OS が現在のURLを確認
  → 「netflix.com」に一致するパスキーのみを提示
  → 「netfl1x.com」(偽サイト)→ 一致するパスキーが存在しないため認証不可
  • 自動照合:ブラウザ・OSがドメインを検証するため、URLが1文字だけ違う巧妙な偽サイトでも認証プロセスが開始されない
  • 人為的ミスの排除:ユーザーが偽サイトと気づかずアクセスしても、システム側で自動的にブロックする

2. 秘密の情報をネットワークに流さない

パスキーは公開鍵暗号方式を採用しており、サーバーと「秘密」を共有しない。

  • 秘密鍵はデバイス内のみ:認証に不可欠な秘密鍵はデバイス内の安全な領域に保管され、外部に送信されることは決してない
  • 署名による認証:サーバーから送られる使い捨ての乱数(チャレンジ)に対し、デバイス内で秘密鍵を使ってデジタル署名を施し、その結果だけをサーバーに返す
  • リプレイ攻撃への耐性:攻撃者が通信を盗聴しても、署名は一度きりのもので再利用してログインすることは不可能

3. サーバーが攻撃されても安全

  • サーバー側には「公開鍵」しか保存されていない
  • 公開鍵は誰に見られても問題ない情報であり、これだけではログインできない
  • 万が一サーバーがハッキングされても、攻撃者はアカウントを乗っ取るための武器を得られない

4. 多要素認証(MFA)が標準で組み込まれている

パスキーによる認証は以下の2要素を1操作で同時に検証する:

  • 所有要素:パスキーが保存された「デバイスそのもの」を所有していること
  • 生体・知識要素:指紋・顔認証やPINコードによって「本人であること」を確認すること

これにより、リモートの攻撃者がパスワードを知るだけでログインできるような隙がない。

パスワードとの比較

パスワード パスキー
偽サイトへの入力 即座に盗まれる ドメイン不一致で認証が開始されない
サーバー漏洩時 パスワード(ハッシュ)が流出 公開鍵のみ流出(悪用不可)
中間者攻撃 通信の傍受でパスワードが盗まれる チャレンジ署名は使い捨てで再利用不可

関連

引用元: NotebookLM