== 付録：Web Authentication入門

=== パスワード認証の限界 ===


=== Web Authentication仕様とは ===

Web Authenticationは、W3Cで仕様策定が進められている、Webアプリケーションの新しいセキュアな認証方式仕様。
ローカル認証や公開鍵認証、Origin別の鍵管理を組み合わせることで、
フィッシングなど認証プロセスに対する攻撃に対して堅固な認証が実現出来ます。
主要ブラウザでの実装が進みつつあり、セキュリティ、利便性を重視するユーザーに選択肢を提供します。
当初はFIDO AllianceでFIDO2.0として仕様策定が進められていましたが、現在はW3Cに移管されました。

=== WebAuthnがサポートする認証フロー ===

ユーザー検証をサポートした認証デバイスを単独で利用し、認証するフロー
パスワード認証と、ユーザー検証をサポートしない認証トークンを組み合わせて認証するフロー
が存在します。

=== 単独認証要素としての認証フロー ===

単独認証要素としてWebAuthnの認証デバイスを使用する場合、以下のようなフローとなります。

==== ユーザー登録 ====


==== ユーザー認証 ====


=== 第二認証要素としての認証フロー ===

第二認証要素としてWebAuthnの認証デバイスを使用する場合、以下のようなフローとなります。

==== ユーザー登録 ====



==== ユーザー認証 ====

=== WebAuthnの特徴 ===

==== 生体情報の保護 ====

生体認証を用いた認証デバイスであっても、生体情報は認証器のローカルに保存され、サーバーには、公開鍵のみが保存されます。
万が一サーバーが攻撃されて情報が流出した場合も、生体情報が攻撃者の手に渡ることはありません。耐タンパ性を持った認証デバイスを用いることで、
生体情報は有効に保護することが出来ます。

==== 認証プロパティの署名 ====
TODO:認証プロパティではなく、正しい用語の使用
ユーザー認証時、認証デバイスは認証プロパティに対して署名を行い、サーバーは署名を検証することで、認証プロパティの真正性を確認できます。
認証プロパティには、ドメイン名が含まれるため、攻撃者によって運営されるフィッシングサイトでユーザーが認証アサーションを生成してしまったとしても、
攻撃者はその認証アサーションを正規のサイトへのログインに用いることは出来ません。







