Signed HTTP Exchangesが活躍するシーンとしてイメージしやすいのはAMP(Accelerated Mobile Pages)です。AMPはページロードの高速化を目的とした技術で、AMP HTMLと呼ばれるHTMLのサブセットを定義してWebページを構築する技術に一定の成約を設けることで、ページロードの最適化をしやすくしています。また、Googleをはじめとした検索エンジンがWebページをクロールする際に、ページがAMP HTMLで構築されていると認識されると、Webページのリソースがキャッシュされます。これによって、検索結果から遷移する時にキャッシュされたリソースをロードするため、高速にWebページを表示できるようになっています。しかし、このAMPの仕組みには、キャッシュの保存先がそれぞれのキャッシュサーバー(ここではGoogleのCDNとします)であるため、URLがGoogleオリジンのURLになってしまうという欠点があります。Googleの検索結果からアクセスしたページのURLをシェアしようとした時に、URLがhttps://google.com/amp/s/…となっていた経験は、皆さんにもあることでしょう。
Signed HTTP Exchangesは新しい技術ですが、既に実際のプロダクトに導入され始めています。Yahoo! Japanでは、もともとAMP実装のコンテンツが用意されていたYahoo! トラベルをSXGに対応させることで、AMPによる高速なページロードを維持しつつ、前述のURLの課題を解消しています。
Web BundlesによるWebコンテンツのバンドル
Web Bundlesは複数のHTTPリクエストとレスポンスをまとめる仕様です。Signed HTTP Exchangesは単一のHTTPリクエストとレスポンスに対する署名であるため、Webページを構成するたくさんのリソースを考えると、それらをまとめた結果を署名したほうが効率的であるのは想像に難くありません。
Web Authenticationは、前述のような認証器をブラウザから使うためのJavaScriptのインターフェースです。認証器には、前述したようなデバイスに含まれる生体認証だけでなく、接続方法によって分類が違うなど様々な仕様があり、これらはFIDO (Fast IDentity Online) Allianceが標準化を進めているFIDO 2の一部として定義されています。認証器の中には生体認証機能を持たず多要素認証の2要素目として利用されるものもありますが、macOSのTouch IDのように生体認証に加えてユーザーの所有性も含んでいる認証器をWebで利用できれば、認証要素のうち「所有」と「生体」を使って認証できることになります。これが実現することによって、パスワードを入力することなく指紋や顔などで認証が可能になり、大きな利便性をもたらしてくれます。
Web Authenticationについても、既に実際のプロダクトへの導入事例がいくつも存在します。GoogleやFacebookでも多要素認証のひとつとして採用されていますし、Yahoo! JAPANではサービスへのログイン機能にWeb Authenticationを導入することで、生体認証を使ったパスワードが不要なログイン体験を実現しています。