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/