1. はじめに
このドキュメントは、UAが後続のトランスポート層セキュリティ(TLS)[RFC8446]接続で署名付き証明書タイムスタンプ(SCT)[RFC9162]の存在を期待するWebホストを識別できるようにする新しいHTTPヘッダーフィールド([RFC9110]、セクション6.3)を定義します。
Expect-CTヘッダーフィールドを提供するWebホストは、UAによって「既知のExpect-CTホスト」として記録されます。UAは、既知のExpect-CTホストへの各接続がUAの証明書の透明性(CT)ポリシーに準拠しているかどうかを評価します。接続がCTポリシーに違反している場合、UAはExpect-CTホストが設定したURIにレポートを送信したり、Expect-CTホストが選択した設定に応じて接続を失敗させたりします。
誤って設定された場合、Expect-CTは不要な接続失敗を引き起こす可能性があります(たとえば、ホストがExpect-CTを展開したが、証明書の透明性ログに記録されていない正当な証明書に切り替えた場合、またはWebホスト運営者が自分の証明書がすべてのUAのCTポリシーに準拠していると信じているが誤っている場合)。Webホスト運営者は、レポート機能を使用し、UAがホストを既知のExpect-CTホストと見なす時間間隔を徐々に増やすことで、予防措置を講じてExpect-CTを展開することをお勧めします。これらの予防措置は、Webホスト運営者がExpect-CTの展開が不要な接続失敗を引き起こしていないことを確信するのに役立ちます。
Expect-CTは、初回使用時の信頼(TOFU)メカニズムです。UAが初めてホストに接続するとき、接続にSCTを要求するために必要な情報が不足しています。したがって、UAはUAの最初のホストへの接続に対する攻撃を検出して阻止することはできません。それでも、Expect-CTは、1)UAが初期通信後にログに記録されていない証明書の使用を検出できるようにし、2)Webホストが、UAが公開監査可能な証明書のみを信頼していることを確信できるようにすることで、価値を提供します。
Expect-CTは、HTTP Strict Transport Security(HSTS)[RFC6797]およびHTTP Public Key Pinning(HPKP)[RFC7469]に似ています。HSTSはWebサイトが安全な接続を介してのみアクセス可能であることを宣言でき、HPKPはWebサイトが暗号化IDを宣言できます。同様に、Expect-CTはWebサイトがCTポリシーに準拠した接続を介してのみアクセス可能であることを宣言できます。
このExpect-CT仕様は[RFC6962]および[RFC9162]と互換性がありますが、証明書の透明性の将来のバージョンとは必ずしも互換性がありません。証明書の透明性の将来のバージョンを使用するWebホストからのExpect-CTヘッダーフィールドは、このドキュメントの将来のバージョンで処理方法が指定されない限り、UAによって無視されます。
1.1. 要件言語
このドキュメントのキーワード「しなければならない(MUST)」、「してはならない(MUST NOT)」、「要求される(REQUIRED)」、「するものとする(SHALL)」、「しないものとする(SHALL NOT)」、「すべきである(SHOULD)」、「すべきでない(SHOULD NOT)」、「推奨される(RECOMMENDED)」、「推奨されない(NOT RECOMMENDED)」、「してもよい(MAY)」、および「任意(OPTIONAL)」は、BCP 14 [RFC2119] [RFC8174]に記載されているように解釈されるものとし、ここに示すようにすべて大文字で表示される場合にのみ解釈されます。
1.2. 用語
このセクションで用語を定義します。
「証明書の透明性ポリシー(Certificate Transparency Policy)」
TLS接続に関連付けられた署名付き証明書タイムスタンプの数、ソース、および配信メカニズムに関するUAによって定義されたポリシー。このポリシーは、UAが接続をCT適格と見なすために満たす必要がある接続のプロパティを定義します。
「証明書の透明性適格(Certificate Transparency Qualified)」
十分な量と質の署名付き証明書タイムスタンプが提供されたとUAが判断したTLS接続を説明します。
「CT適格(CT Qualified)」
「証明書の透明性適格」の略語。
「CTポリシー(CT Policy)」
「証明書の透明性ポリシー」の略語。
「有効なExpect-CT日付(Effective Expect-CT Date)
UAが特定のホストの有効なExpect-CTヘッダーフィールドを観察した時刻。
「Expect-CTホスト(Expect-CT Host)」
Expect-CTのHTTPサーバー側面を実装する準拠ホスト。これは、Expect-CTホストが安全なトランスポート経由で送信されるHTTP応答メッセージでExpect-CT応答ヘッダーフィールドを返すことを意味します。この仕様では、「ホスト」という用語は「サーバー」と同等です。
「既知のExpect-CTホスト(Known Expect-CT Host)」
UAがそのように記録したExpect-CTホスト。詳細については、セクション2.3.2.1を参照してください。
「ユーザーエージェント(User Agent、UA)」
この仕様の目的上、UAは通常ユーザーによって積極的に操作されるHTTPクライアントアプリケーションです[RFC9110]。
「未知のExpect-CTホスト(Unknown Expect-CT Host)」
UAが記録していないExpect-CTホスト。