| draft-ietf-httpbis-expect-ct-08.txt | draft-ietf-httpbis-expect-ct-latest.txt | |||
|---|---|---|---|---|
| HTTP Working Group E. Stark | HTTP Working Group E. Stark | |||
| Internet-Draft Google | Internet-Draft Google | |||
| Intended status: Experimental December 9, 2018 | Intended status: Experimental October 13, 2025 | |||
| Expires: June 12, 2019 | Expires: April 16, 2026 | |||
| Expect-CT Extension for HTTP | Expect-CT Extension for HTTP | |||
| draft-ietf-httpbis-expect-ct-08 | draft-ietf-httpbis-expect-ct-latest | |||
| Abstract | Abstract | |||
| This document defines a new HTTP header field named Expect-CT, which | This document defines a new HTTP header field named Expect-CT, which | |||
| allows web host operators to instruct user agents to expect valid | allows web host operators to instruct user agents to expect valid | |||
| Signed Certificate Timestamps (SCTs) to be served on connections to | Signed Certificate Timestamps (SCTs) to be served on connections to | |||
| these hosts. Expect-CT allows web host operators to discover | these hosts. Expect-CT allows web host operators to discover | |||
| misconfigurations in their Certificate Transparency deployments. | misconfigurations in their Certificate Transparency deployments. | |||
| Further, web host operaters can use Expect-CT to ensure that, if a UA | Further, web host operaters can use Expect-CT to ensure that, if a UA | |||
| which supports Expect-CT accepts a misissued certificate, that | which supports Expect-CT accepts a misissued certificate, that | |||
| certificate will be discoverable in Certificate Transparency logs. | certificate will be discoverable in Certificate Transparency logs. | |||
| Note to Readers | ||||
| Discussion of this draft takes place on the HTTP working group | ||||
| mailing list (ietf-http-wg@w3.org), which is archived at | ||||
| https://lists.w3.org/Archives/Public/ietf-http-wg/ [1]. | ||||
| Working Group information can be found at http://httpwg.github.io/ | ||||
| [2]; source code and issues list for this draft can be found at | ||||
| https://github.com/httpwg/http-extensions/labels/expect-ct [3]. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on June 12, 2019. | This Internet-Draft will expire on April 16, 2026. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 2, line 35 ¶ | skipping to change at page 2, line 23 ¶ | |||
| 2. Server and Client Behavior . . . . . . . . . . . . . . . . . 5 | 2. Server and Client Behavior . . . . . . . . . . . . . . . . . 5 | |||
| 2.1. Response Header Field Syntax . . . . . . . . . . . . . . 5 | 2.1. Response Header Field Syntax . . . . . . . . . . . . . . 5 | |||
| 2.1.1. The report-uri Directive . . . . . . . . . . . . . . 6 | 2.1.1. The report-uri Directive . . . . . . . . . . . . . . 6 | |||
| 2.1.2. The enforce Directive . . . . . . . . . . . . . . . . 7 | 2.1.2. The enforce Directive . . . . . . . . . . . . . . . . 7 | |||
| 2.1.3. The max-age Directive . . . . . . . . . . . . . . . . 7 | 2.1.3. The max-age Directive . . . . . . . . . . . . . . . . 7 | |||
| 2.1.4. Examples . . . . . . . . . . . . . . . . . . . . . . 7 | 2.1.4. Examples . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.2. Host Processing Model . . . . . . . . . . . . . . . . . . 8 | 2.2. Host Processing Model . . . . . . . . . . . . . . . . . . 8 | |||
| 2.2.1. HTTP-over-Secure-Transport Request Type . . . . . . . 8 | 2.2.1. HTTP-over-Secure-Transport Request Type . . . . . . . 8 | |||
| 2.2.2. HTTP Request Type . . . . . . . . . . . . . . . . . . 8 | 2.2.2. HTTP Request Type . . . . . . . . . . . . . . . . . . 8 | |||
| 2.3. User Agent Processing Model . . . . . . . . . . . . . . . 8 | 2.3. User Agent Processing Model . . . . . . . . . . . . . . . 8 | |||
| 2.3.1. Missing or Malformed Expect-CT Header Fields . . . . 9 | 2.3.1. Missing or Malformed Expect-CT Header Fields . . . . 8 | |||
| 2.3.2. Expect-CT Header Field Processing . . . . . . . . . . 9 | 2.3.2. Expect-CT Header Field Processing . . . . . . . . . . 9 | |||
| 2.3.3. Reporting . . . . . . . . . . . . . . . . . . . . . . 11 | 2.3.3. Reporting . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 2.4. Evaluating Expect-CT Connections for CT Compliance . . . 11 | 2.4. Evaluating Expect-CT Connections for CT Compliance . . . 11 | |||
| 2.4.1. Skipping CT compliance checks . . . . . . . . . . . . 12 | 2.4.1. Skipping CT compliance checks . . . . . . . . . . . . 12 | |||
| 3. Reporting Expect-CT Failure . . . . . . . . . . . . . . . . . 12 | 3. Reporting Expect-CT Failure . . . . . . . . . . . . . . . . . 12 | |||
| 3.1. Generating a violation report . . . . . . . . . . . . . . 12 | 3.1. Generating a violation report . . . . . . . . . . . . . . 12 | |||
| 3.2. Sending a violation report . . . . . . . . . . . . . . . 14 | 3.2. Sending a violation report . . . . . . . . . . . . . . . 14 | |||
| 3.3. Receiving a violation report . . . . . . . . . . . . . . 15 | 3.3. Receiving a violation report . . . . . . . . . . . . . . 15 | |||
| 4. Usability Considerations . . . . . . . . . . . . . . . . . . 16 | 4. Usability Considerations . . . . . . . . . . . . . . . . . . 15 | |||
| 5. Authoring Considerations . . . . . . . . . . . . . . . . . . 16 | 5. Authoring Considerations . . . . . . . . . . . . . . . . . . 16 | |||
| 6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 16 | 6. Privacy Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | |||
| 7.1. Hostile header attacks . . . . . . . . . . . . . . . . . 17 | 7.1. Hostile header attacks . . . . . . . . . . . . . . . . . 17 | |||
| 7.2. Maximum max-age . . . . . . . . . . . . . . . . . . . . . 17 | 7.2. Maximum max-age . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 7.3. Amplification attacks . . . . . . . . . . . . . . . . . . 18 | 7.3. Amplification attacks . . . . . . . . . . . . . . . . . . 17 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 8.1. Header Field Registry . . . . . . . . . . . . . . . . . . 18 | 8.1. Header Field Registry . . . . . . . . . . . . . . . . . . 18 | |||
| 8.2. Media Types Registry . . . . . . . . . . . . . . . . . . 18 | 8.2. Media Types Registry . . . . . . . . . . . . . . . . . . 18 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 19 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 21 | 9.2. Informative References . . . . . . . . . . . . . . . . . 21 | |||
| 9.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 9.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| Appendix A. Changes . . . . . . . . . . . . . . . . . . . . . . 21 | Appendix A. Changes . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| A.1. Since -07 . . . . . . . . . . . . . . . . . . . . . . . . 21 | A.1. Since -07 . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| A.2. Since -06 . . . . . . . . . . . . . . . . . . . . . . . . 22 | A.2. Since -06 . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| A.3. Since -05 . . . . . . . . . . . . . . . . . . . . . . . . 22 | A.3. Since -05 . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| A.4. Since -04 . . . . . . . . . . . . . . . . . . . . . . . . 22 | A.4. Since -04 . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| A.5. Since -03 . . . . . . . . . . . . . . . . . . . . . . . . 22 | A.5. Since -03 . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| A.6. Since -02 . . . . . . . . . . . . . . . . . . . . . . . . 22 | A.6. Since -02 . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| A.7. Since -01 . . . . . . . . . . . . . . . . . . . . . . . . 22 | A.7. Since -01 . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| A.8. Since -00 . . . . . . . . . . . . . . . . . . . . . . . . 22 | A.8. Since -00 . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 23 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a new HTTP header field that enables UAs to | This document defines a new HTTP header field that enables UAs to | |||
| identify web hosts that expect the presence of Signed Certificate | identify web hosts that expect the presence of Signed Certificate | |||
| Timestamps (SCTs) [I-D.ietf-trans-rfc6962-bis] in subsequent | Timestamps (SCTs) [I-D.ietf-trans-rfc6962-bis] in subsequent | |||
| Transport Layer Security (TLS) [RFC8446] connections. | Transport Layer Security (TLS) [RFC8446] connections. | |||
| Web hosts that serve the Expect-CT HTTP header field are noted by the | Web hosts that serve the Expect-CT HTTP header field are noted by the | |||
| UA as Known Expect-CT Hosts. The UA evaluates each connection to a | UA as Known Expect-CT Hosts. The UA evaluates each connection to a | |||
| skipping to change at page 18, line 25 ¶ | skipping to change at page 18, line 16 ¶ | |||
| the rate at which they emit reports, but an attacker may alter the | the rate at which they emit reports, but an attacker may alter the | |||
| Expect-CT header's fields to induce UAs to submit different reports | Expect-CT header's fields to induce UAs to submit different reports | |||
| to different URIs to still cause the same effect. | to different URIs to still cause the same effect. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| 8.1. Header Field Registry | 8.1. Header Field Registry | |||
| This document registers the "Expect-CT" header field in the | This document registers the "Expect-CT" header field in the | |||
| "Permanent Message Header Field Names" registry located at | "Permanent Message Header Field Names" registry located at | |||
| https://www.iana.org/assignments/message-headers [4]. | https://www.iana.org/assignments/message-headers [1]. | |||
| Header field name: Expect-CT | Header field name: Expect-CT | |||
| Applicable protocol: http | Applicable protocol: http | |||
| Status: experimental | Status: experimental | |||
| Author/Change controller: IETF | Author/Change controller: IETF | |||
| Specification document(s): This document | Specification document(s): This document | |||
| skipping to change at page 19, line 43 ¶ | skipping to change at page 19, line 35 ¶ | |||
| Change controller: IETF | Change controller: IETF | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [I-D.ietf-trans-rfc6962-bis] | [I-D.ietf-trans-rfc6962-bis] | |||
| Laurie, B., Langley, A., Kasper, E., Messeri, E., and R. | Laurie, B., Langley, A., Kasper, E., Messeri, E., and R. | |||
| Stradling, "Certificate Transparency Version 2.0", draft- | Stradling, "Certificate Transparency Version 2.0", draft- | |||
| ietf-trans-rfc6962-bis-30 (work in progress), November | ietf-trans-rfc6962-bis-42 (work in progress), August 2021. | |||
| 2018. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: | [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: | |||
| Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, | Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, | |||
| <https://www.rfc-editor.org/info/rfc3339>. | <https://www.rfc-editor.org/info/rfc3339>. | |||
| skipping to change at page 21, line 33 ¶ | skipping to change at page 21, line 25 ¶ | |||
| [FETCH] WHATWG, "Fetch - Living Standard", n.d., | [FETCH] WHATWG, "Fetch - Living Standard", n.d., | |||
| <https://fetch.spec.whatwg.org>. | <https://fetch.spec.whatwg.org>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| 9.3. URIs | 9.3. URIs | |||
| [1] https://lists.w3.org/Archives/Public/ietf-http-wg/ | [1] https://www.iana.org/assignments/message-headers | |||
| [2] http://httpwg.github.io/ | ||||
| [3] https://github.com/httpwg/http-extensions/labels/expect-ct | ||||
| [4] https://www.iana.org/assignments/message-headers | ||||
| Appendix A. Changes | Appendix A. Changes | |||
| A.1. Since -07 | A.1. Since -07 | |||
| o Editorial changes | o Editorial changes | |||
| o Specify that the end-entity certificate appears first in the | o Specify that the end-entity certificate appears first in the | |||
| "validated-certificate-chain" field of an Expect-CT report. | "validated-certificate-chain" field of an Expect-CT report. | |||
| End of changes. 13 change blocks. | ||||
| 30 lines changed or deleted | 13 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||