FIDO2(WebAuthn)はなぜ偽サイトを無力化できるのか?オリジンバインディングの暗号学的仕組み
最近、GoogleやApple、各種Webサービスで「パスキー」への対応が急速に進んでいます。スマートフォンの指紋認証や顔認証を使ってパスワードなしでログインできるため、利便性の向上に注目が集まりがちです。
しかし、パスキーの基盤規格である「FIDO2 / WebAuthn」の真の価値は、単にパスワードの入力を省くことではなく、巧妙に作られた偽サイト(フィッシング詐欺)を暗号の仕組みによって完全に無力化できる点にあります。
なぜ偽画面に騙されてログイン操作をしてしまってもアカウントが盗まれないのか、その中核である「オリジンバインディング」と公開鍵暗号の仕組みを整理しました。
1. そもそも「FIDO2 / WebAuthn / パスキー」とは何か?
まず用語の整理として、これらは同じ安全なログインエコシステムを異なるレイヤーから指しています。
- FIDO2:業界団体FIDOアライアンスが策定した、パスワードを使わない安全な認証規格の総称。
- WebAuthn(Web Authentication API):FIDO2をWebブラウザ上で動作させるための標準API規格(W3C標準)。
- パスキー(Passkeys):ユーザーが日常的に利用しやすいよう、FIDO2/WebAuthnの仕組みをAppleやGoogle、MicrosoftがOSレベルで統合した機能の通称。
従来の「パスワードをサーバーに送信して照合する」方式とは異なり、端末内に厳重に保管された「秘密鍵」を使って電子署名を行う公開鍵暗号方式が採用されています。
2. 従来の認証がフィッシング詐欺に破られる理由
パスワードはもちろん、SMSや認証アプリを使ったワンタイムパスワード(二段階認証)であっても、巧妙なフィッシング攻撃の前には突破されてしまう弱点がありました。
人間の「目視」に依存する認証方式の限界
攻撃者が本物と見分けがつかない偽のログイン画面を用意し、ユーザーを誘導した場合、従来の方式では次の流れで認証情報が盗まれてしまいます。
- ユーザーが偽サイトの入力欄にパスワードやワンタイムコードを打ち込む
- 攻撃者のサーバーがその文字列をリアルタイムで取得する
- 攻撃者が取得した文字列を使って、即座に本物のサイトへログインを完了させる(中間者攻撃:AiTM)
パスワードや認証コードは単なる「文字列(共有された秘密)」であるため、人間が見た目に騙されて入力してしまうと、その文字列を攻撃者に中継・横取りされるのを防ぐ手段がありませんでした。
3. なぜ偽サイトを完全に無力化できるのか?(オリジンバインディング)
FIDO2/WebAuthnがフィッシング詐欺を100%遮断できる理由は、ブラウザが通信先ドメインを機械的に識別し、鍵と厳密に紐付ける「オリジンバインディング」という仕組みにあります。
1. ブラウザが接続先ドメイン(オリジン)を自動取得する
ユーザーがログイン操作を行う際、ブラウザ(ChromeやSafariなど)はアドレスバーに表示されている正確な接続先ドメイン(オリジン:例えば login.example.com)を自ら取得します。
この情報はブラウザ内部で機械的に処理されるため、人間がURLの綴り(1文字違いの偽ドメインなど)を見落としても、ブラウザは本物か偽物かを1ミリ秒の狂いもなく正確に識別します。
2. 秘密鍵が本物以外のドメインへの署名を拒否する
端末(スマートフォンやセキュリティキー)の中に保管されている秘密鍵は、サービス登録時に「そのサービスの正規ドメイン(RP ID)」と固く紐付け(バインド)されています。
偽サイト(例: login.examp1e.com)に誘導されたユーザーがうっかり生体認証(指紋や顔)を通してしまっても、次のような処理が行われます。
- 偽サイトがブラウザ経由で「署名を作成してほしい」と端末に要求する。
- ブラウザは現在の接続先である「偽ドメイン」を端末の認証器(セキュアチップ)に渡す。
- 認証器は「この秘密鍵は本物のドメイン用であり、渡されたドメインと一致しない」と判定し、署名の生成を即座に自動拒否する。
3. 盗むべき「パスワード」自体が存在しない
そもそも端末からWebサーバーへ送られるのは「その場限りの電子署名」だけであり、秘密鍵やパスワードそのものがネットワーク上を流れることはありません。
仮に何らかの通信が傍受されたとしても、盗み取れる固定の秘密情報は存在せず、他のサイトで使い回すことも不可能です。
まとめ
フィッシング詐欺に対する従来の対策は、「不審なメールのリンクを開かない」「URLのアドレスバーをよく確認する」といった人間の注意深さに依存していました。
しかし、FIDO2 / WebAuthn(パスキー)は、「人間がどれほど巧妙な偽画面に騙されても、ブラウザと認証器がドメインの不一致を検知して暗号署名を拒否する」という数理的・構造的な防壁を築いています。
パスキーへの移行は、ログインの手間を減らすだけでなく、インターネット最大の脅威であるフィッシング詐欺を根絶するための決定的な一歩といえます。