Web Authentication(WebAuthn:ウェブオースン)とは、FIDO2に基づくパスキーで使用されていて、ユーザーの公開鍵認証のインターフェイスをウェブ型のアプリケーションやサービスへと標準化するための、World Wide Web Consortium (W3C)によるウェブ標準である。FIDO Allianceから支援を受けている。ユーザーの証明をやり取りする時にウェブサイトとウェブブラウザ間の相互作用を形式化する試みであるW3Cのより一般的なクレデンシャル管理APIの拡張を実装する。
2019年3月4日に、Web Authentication レベル1がウェブ標準として承認された。
概要

前身のFIDO Universal Second Factor (U2F)のように、W3C Web Authentication (WebAuthn)は下記のようにウェブサイト、ウェブブラウザ、認証器が対応している:
- ウェブサイトはWebAuthn Relying Partyに準拠する。
- ブラウザはWebAuthn Clientに準拠する。
- 認証器はFIDO2 authenticatorでWebAuthn Clientと互換性があるとされる。
WebAuthnはWebAuthn Relying Partyと称する検証者に要求者が所有をどのように証明するかを明記し、FIDO2認証器をコントロールする。認証プロセスは準拠するウェブブラウザに過ぎないWebAuthn Clientと呼ばれるエンティティが取り持っている。
右図では、認証器はハードウェア認証器と仮定する。どちらの場合でも、認証器は多要素暗号認証器でWebAuthn Relying Partyを対象とした認証アサーションに証明するために公開鍵暗号を利用する。ユーザー確認にPINを使用すると仮定するとして、認証器は「ユーザーが持っているもの」でPINは「ユーザーが知っているもの」とする。
WebAuthn Relying PartyはJavaScriptを経由してWebAuthn Client(ウェブブラウザなど)に指示する。WebAuthn Clientはブラウザに実装されたJavaScriptのAPIをする認証器とやり取りする。認証器はFIDO Client to Authenticator Protocol 2.0に準じている。
仕様書
- Web Authentication レベル1の仕様は2019年3月4日にWeb Authentication Working GroupによってW3C推薦として承認された。
- Web Authentication レベル2の仕様は2021年4月8日に承認された。
- Web Authentication レベル3の仕様は現在作成中である。
対応ウェブブラウザ
全ての主要なウェブブラウザが Web Authentication に対応している。
- Google Chromeデスクトップ版ではバージョン67から対応している。Android 版はバージョン87から対応している。
- Mozilla Firefoxは、かつてはFIDO U2F標準に全て対応しているわけではなかったが、2018年5月9日に公開されたバージョン60でWeb Authenticationに対応した。
- Microsoft Edgeは、EdgeHTML 18およびBlink版でWeb Authenticationが実装されていて、Windows Helloや外部セキュリティキーと共に作動している。
- Safariは、バージョン13から対応している。
対応アプリケーション、デバイス
批判
2018年8月、Paragon Initiative Enterprisesは予定されているWebAuthn標準のセキュリティ検査を行った。この時は特定の悪用は発見されなかったが、この標準が使用し権限を与える基礎的な暗号の方法においていくつかの重大な脆弱性を発見したとしている。
批判の主要な点は、過去に他の暗号化システムで問題になっていた2つの潜在的問題を中心に回っていて、そのために同じようなサイバー攻撃の被害に遭うのを避けなければいけないという点である:
- COSE (RFC 8152) の強制使用によりWebAuthnもPKCS1v1.5パッディングを活用したRSA暗号に対応している。この特定のパッディングスキームは最低20年間特定の攻撃に対して脆弱性があり、過去他のプロトコルとRSA暗号の実装で攻撃に成功している。WebAuthnの環境では与えられた条件下では悪用するのは難しいが、より安全性の高い暗号プリミティブとパッディングスキームがある場合、これは未だに悪い選択肢で、暗号専門家などの間では最も良い試みとは考えられていない。
- FIDO allianceはECDAAと呼ばれる非対称暗号スキームを標準化した。これは楕円曲線をベースにした直接匿名認証バージョンであり、WebAuthnのケースにおいて、認証器の整合性を確認するために使用されることを意図しつつ、ハンドルの世界的な相互関係を受け入れないことでユーザーのプライバシーを保護する。しかし、ECDAAは楕円曲線暗号の領域での過去数十年の研究で培われた教訓の一部を取り入れておらず、選択した曲線はこの曲線の種類固有のセキュリティ上の欠陥が複数あり、セキュリティの保証を著しく低下させている。さらにECDAA標準は過去に問題を起こしたことがある手当たり次第かつ非決定的な署名を含んでいる。
