Passkeys とは
Passkeys は、パスワードの代わりに公開鍵暗号を使ってログインする仕組みです。MDN では、Web Authentication API、つまり WebAuthn は Credential Management API の拡張であり、公開鍵暗号による強力な認証を可能にすると説明されています。
WebAuthn では、サーバーにパスワードそのものを保存しません。ユーザー側の認証器に秘密鍵を保持し、サーバーは公開鍵で署名を検証します。フィッシング耐性やパスワード漏えい時の被害軽減が大きな利点です。
なぜパスワードより強いのか
パスワードは、使い回し、推測、漏えい、フィッシングの問題を抱えます。WebAuthn では、ログイン時に origin が関係するため、偽サイトに誘導されても同じ署名を使い回せません。
また、サーバーに保存されるのは公開鍵なので、データベース漏えい時にそのままログインに使われる危険が小さくなります。
実装時の注意
| 観点 | 注意 |
|---|---|
| challenge | 十分にランダムな値を使う |
| origin | 想定したドメインか検証する |
| user verification | 生体認証や PIN の扱いを決める |
| recovery | 端末紛失時の復旧設計を用意する |
学習時の見方
認証は Web アプリで最も重要な分野の一つです。最初は session、cookie、JWT、OAuth を学び、その後に WebAuthn と Passkeys を見ると理解しやすくなります。
ポートフォリオで認証機能を作る場合は、独自実装で無理をするより、まず安全なライブラリや認証サービスを使い、仕組みを説明できるようにするのが現実的です。
まとめ
このニュースは、今すぐ全員が対応すべき話か、学習や新規開発で前提を更新しておく話かを分けて読むことが重要です。まずは公式情報で対象バージョンと影響範囲を確認し、自分の環境に関係する部分から見直してください。