WebAuthn うぇぶおーとん
簡単に言うとこんな感じ!
「パスワードなしでログインできる仕組みの世界標準ルール」だよ!指紋やFaceIDで「本人確認」して、パスワードを入力しなくてもサイトにログインできるようにする技術の取り決めなんだ。フィッシング詐欺にも強くて、今いちばん注目されている認証の仕組みってこと!
WebAuthnとは
WebAuthn(Web Authentication) は、W3C(World Wide Web Consortium)とFIDO Alliance(ファイドー・アライアンス)が共同で策定した、パスワードに頼らないWeb認証の国際標準仕様です。2019年にW3C勧告(正式な国際標準)となり、現在はChrome・Safari・Firefox・Edgeといった主要ブラウザすべてで利用できます。
仕組みの核心は公開鍵暗号方式です。ユーザーがサービスに登録するとき、デバイス(スマートフォンやPCなど)の中に「秘密鍵」を生成して安全に保管し、「公開鍵」だけをサービス側のサーバーに送ります。ログイン時はサーバーからの「チャレンジ(使い捨ての乱数)」に対して、デバイスが秘密鍵で署名して返すだけ。パスワードはネットワーク上を一切流れないため、フィッシングやパスワード漏洩のリスクを根本から排除できます。
利用者から見ると「指紋認証やFaceIDでログイン」「PINを入力してログイン」という体験になります。実際には裏側でWebAuthnが動いており、パスキー(Passkey) と呼ばれる新しい認証情報の形式で普及が進んでいます。Google・Apple・Microsoftが足並みをそろえてパスキーを推進しており、認証のしくみはいまWebAuthnを中心に大きく変わりつつあります。
WebAuthnの仕組みと構成要素
WebAuthnには登場人物が3つあります。
| 登場人物 | 英語名 | 役割 |
|---|---|---|
| ユーザーのデバイス(認証器) | Authenticator(オーセンティケーター) | 鍵の生成・保管・署名を行う。スマホの指紋センサーやFaceIDなど |
| ブラウザ | Client | デバイスとサーバーの間を仲介するWebAuthn APIを提供 |
| Webサービス | Relying Party(RP) | ログインを受け付けるサービス側。公開鍵を保管する |
登録フロー(初回)
ユーザー操作 ブラウザ(Client) サーバー(RP)
| | |
|── 「登録」ボタン押す ──> | |
| |── 登録リクエスト ──────> |
| |<── チャレンジ発行 ───── |
|<─ 生体認証を求める ──────| |
|── 指紋認証 ─────────> | |
| | デバイス内で鍵ペア生成 |
| |── 公開鍵 + 署名 ───────>|
| | 公開鍵を保存|
|<── 登録完了 ─────────── | |
ログインフロー(2回目以降)
ユーザー操作 ブラウザ(Client) サーバー(RP)
| | |
|── 「ログイン」ボタン ──> | |
| |── 認証リクエスト ───────>|
| |<── チャレンジ発行 ────── |
|<─ 生体認証を求める ──────| |
|── 指紋認証 ─────────> | |
| | 秘密鍵でチャレンジに署名|
| |── 署名 ────────────────>|
| | 公開鍵で検証|
|<── ログイン成功 ───────── | |
なぜフィッシングに強いのか
WebAuthnは登録時にサービスのドメイン(origin)を鍵と紐づけて記録します。偽サイト(例: bank-login.evil.com)に誘導されても、正規ドメイン(bank.com)向けの鍵は使われないため、そもそも認証が成立しません。パスワードなら気づかずに入力してしまいますが、WebAuthnにはその余地がありません。
歴史と背景
- 2012年 — FIDO Alliance設立。業界横断でパスワードレス認証の標準化を目指す
- 2014年 — FIDO 1.0(UAF・U2F)仕様を公開。ハードウェアトークンや生体認証の基礎を策定
- 2016年 — W3CとFIDO Allianceが協力し、WebブラウザAPI(WebAuthn)の仕様策定を開始
- 2018年 — Chrome・Firefox・Edgeがいち早くWebAuthnをサポート
- 2019年3月 — W3C勧告として正式な国際標準に。FIDO2の中核仕様として位置づけられる
- 2020年〜 — Apple(Safari・iOS)も対応完了。主要プラットフォームが出揃う
- 2022年5月 — Google・Apple・Microsoftが「パスキー(Passkey)」として共同プロモーションを開始。OS標準機能として組み込みが進む
- 2023年〜現在 — Amazon・GitHub・Yahoo! JAPANなど主要サービスがパスキー対応。急速に普及フェーズへ
パスワードは1960年代のメインフレーム時代から使われてきた仕組みです。しかしフィッシング・リスト型攻撃・パスワード使い回しなどの問題が深刻化し、「パスワードそのものをなくす」という発想でWebAuthnが生まれました。
WebAuthn・FIDO2・パスキーの関係
混乱しやすい3つの言葉の関係を整理します。
| 用語 | 何者か | 誰が決めた |
|---|---|---|
| FIDO2 | パスワードレス認証の規格セット(総称) | FIDO Alliance |
| WebAuthn | ブラウザとサーバー間のAPI仕様 | W3C + FIDO Alliance |
| CTAP | ブラウザと外部認証器(YubiKeyなど)間のプロトコル | FIDO Alliance |
| パスキー(Passkey) | WebAuthnを使った認証情報のユーザー向け呼称 | Google・Apple・Microsoft |
認証器の種類
| 種類 | 例 | 特徴 |
|---|---|---|
| プラットフォーム認証器 | TouchID・FaceID・Windows Hello | デバイス内蔵。持ち運び不要 |
| ローミング認証器 | YubiKey・Titan Security Key | 物理キー。どのデバイスでも使える |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| W3C Web Authentication Level 2 | WebAuthnの現行勧告(2021年)。APIの詳細仕様 |
| FIDO2 / CTAP 2.1 | 認証器とクライアント間の通信プロトコル |
| RFC 8809 | WebAuthnのアテステーション証明書フォーマット |
| RFC 9421 | HTTP Message Signatures(WebAuthn周辺技術) |