WebAuthn

Web Authentication（WebAuthn）とは、ユーザーののインターフェイスをウェブ型のアプリケーションやサービスへと標準化するための、World Wide Web Consortium (W3C)によるウェブ標準の1つでFIDO Allianceから支援を受けている。ユーザーの証明をやり取りする時にウェブサイトとウェブブラウザ間の相互作用を形式化する試みであるW3Cのより一般的なAPIの拡張を実装する。

2019年3月4日に、ウェブ標準として承認された。

概要 
前身のFIDO 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  2.0に準じている。

対応アプリケーション、デバイス 
Web Authenticationレベル1の仕様は2019年3月4日にによってW3C推薦として承認された。

対応ウェブブラウザ
 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から対応している。

Web Authenticationは各アカウント固有の「ユーザーハンドル」識別子を参照する機能を追加したことで古いハードウェアトークンを保存することができなくなったにもかかわらず既存のFIDO U2FセキュリティキーはWebAuthn標準とほぼ互換性がある。最初のFIDO2互換の1つはYubicoの第2世代セキュリティキーであることが2018年4月10日に発表されている。

Dropboxは2018年5月8日にWeb Authenticationログイン(2段階認証として)に対応したと発表した。

批判 
2018年8月、Paragon Initiative Enterprisesは予定されているWebAuthn標準のセキュリティ検査を行った。この時は特定の悪用は発見されなかったが、この標準が使用し権限を与える基礎的な暗号の方法においていくつかの重大な脆弱性を発見したとしている。

批判の主要な点は、過去に他の暗号化システムで問題になっていた2つの潜在的問題を中心に回っていて、そのために同じようなサイバー攻撃の被害に遭うのを避けなければいけないという点である:

 COSE (RFC 8152) の強制使用によりWebAuthnもを活用したRSA暗号に対応している。この特定のパッディングスキームは最低20年間に対して脆弱性があり、過去他のプロトコルとRSA暗号の実装で攻撃に成功している。WebAuthnの環境では与えられた条件下では悪用するのは難しいが、より安全性の高い暗号プリミティブとパッディングスキームがある場合、これは未だに悪い選択肢で、暗号専門家などの間では最も良い試みとは考えられていない。

 FIDO allianceはECDAAと呼ばれる非対称暗号スキームを標準化した。これは楕円曲線をベースにしたバージョンであり、WebAuthnのケースにおいて、認証器の整合性を確認するために使用されることを意図しつつ、ハンドルの世界的な相互関係を受け入れないことでユーザーのプライバシーを保護する。しかし、ECDAAは楕円曲線暗号の領域での過去数十年の研究で培われた教訓の一部を取り入れておらず、選択した曲線はこの曲線の種類固有のセキュリティ上の欠陥が複数あり、セキュリティの保証を著しく低下させている。さらにECDAA標準は過去に問題を起こしたことがある手当たり次第かつ非決定的な署名を含んでいる。

脚注

外部リンク 
Web Authentication: An API for accessing Public Key Credentials Level 1
Web Authentication Working Group
Web Authentication API - Web API | MDN

認証技術
識別
ウェブ技術
W3C勧告