WebAuthn
パスワードレス認証を実現するFIDO2の仕様の一部であり、WebサイトがWebブラウザのJavascriptを介して認証器の情報にアクセスできるようにするインターフェースを定義したもの
1. あらかじめ認証器の公開鍵/秘密鍵の鍵ペアを作成し、ユーザー情報とその公開鍵をサーバに登録しておく
2. クライアントがWebサーバに接続する
3. Webサーバはクライアントにチャレンジと呼ばれる乱数とオリジン(サーバのURL情報など)を送付する
4. クライアントで生体認証またはPIN認証を行う
5. クライアントは認証情報、チャレンジとオリジンを合成したものに秘密鍵で署名し、Webサーバへ返す
6. Webサーバはクライアントの公開鍵を利用して署名を確認し、チャレンジ、オリジン、認証情報を検証する
7. 攻撃者が偽のサイトで認証情報を盗んだとしても、WebAuthnではログインに必要な条件(チャレンジ、オリジン、署名)が一致しないため、攻撃者はその情報を使って正規のサイトにログインすることができません。