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 July 6, 2024 | |||
Expires: June 12, 2019 | Expires: January 7, 2025 | |||
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 January 7, 2025. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2024 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/ |