| < draft-ietf-httpbis-http2-encryption-00.txt | draft-ietf-httpbis-http2-encryption-01.txt > | |||
|---|---|---|---|---|
| Network Working Group M. Nottingham | HTTPbis Working Group M. Nottingham | |||
| Internet-Draft | Internet-Draft | |||
| Intended status: Experimental M. Thomson | Intended status: Experimental M. Thomson | |||
| Expires: December 14, 2014 Mozilla | Expires: June 18, 2015 Mozilla | |||
| June 12, 2014 | December 15, 2014 | |||
| Opportunistic Encryption for HTTP URIs | Opportunistic Security for HTTP | |||
| draft-ietf-httpbis-http2-encryption-00 | draft-ietf-httpbis-http2-encryption-01 | |||
| Abstract | Abstract | |||
| This describes how "http" URIs can be accessed using Transport Layer | This document describes how "http" URIs can be accessed using | |||
| Security (TLS) to mitigate pervasive monitoring attacks. | Transport Layer Security (TLS) to mitigate pervasive monitoring | |||
| attacks. | ||||
| 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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 December 14, 2014. | This Internet-Draft will expire on June 18, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 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 | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Goals and Non-Goals . . . . . . . . . . . . . . . . . . . 2 | 1.1. Goals and Non-Goals . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Notational Conventions . . . . . . . . . . . . . . . . . 3 | 1.2. Notational Conventions . . . . . . . . . . . . . . . . . 3 | |||
| 2. Using HTTP URIs over TLS . . . . . . . . . . . . . . . . . . 3 | 2. Using HTTP URIs over TLS . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Server Authentication . . . . . . . . . . . . . . . . . . . . 3 | 3. Server Authentication . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Interaction with "https" URIs . . . . . . . . . . . . . . . . 4 | 4. Interaction with "https" URIs . . . . . . . . . . . . . . . . 4 | |||
| 5. Requiring Use of TLS . . . . . . . . . . . . . . . . . . . . 4 | 5. Requiring Use of TLS . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5.1. The HTTP-TLS Header Field . . . . . . . . . . . . . . . . 5 | 5.1. The HTTP-TLS Header Field . . . . . . . . . . . . . . . . 5 | |||
| 5.2. Operational Considerations . . . . . . . . . . . . . . . 6 | 5.2. Operational Considerations . . . . . . . . . . . . . . . 6 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 6.1. Security Indicators . . . . . . . . . . . . . . . . . . . 7 | 6.1. Security Indicators . . . . . . . . . . . . . . . . . . . 7 | |||
| 6.2. Downgrade Attacks . . . . . . . . . . . . . . . . . . . . 7 | 6.2. Downgrade Attacks . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6.3. Privacy Considerations . . . . . . . . . . . . . . . . . 7 | 6.3. Privacy Considerations . . . . . . . . . . . . . . . . . 7 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 6.4. Confusion Regarding Request Scheme . . . . . . . . . . . 8 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 7 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 8 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 8 | |||
| Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 8 | 7.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
| 1. Introduction | 1. Introduction | |||
| This document describes a use of HTTP Alternative Services | This document describes a use of HTTP Alternative Services | |||
| [I-D.ietf-httpbis-alt-svc] to decouple the URI scheme from the use | [I-D.ietf-httpbis-alt-svc] to decouple the URI scheme from the use | |||
| and configuration of underlying encryption, allowing a "http" URI to | and configuration of underlying encryption, allowing a "http" URI to | |||
| be accessed using TLS [RFC5246] opportunistically. | be accessed using TLS [RFC5246] opportunistically. | |||
| Currently, "https" URIs requires acquiring and configuring a valid | Currently, "https" URIs require acquiring and configuring a valid | |||
| certificate, which means that some deployments find supporting TLS | certificate, which means that some deployments find supporting TLS | |||
| difficult. Therefore, this document describes a usage model whereby | difficult. Therefore, this document describes a usage model whereby | |||
| sites can serve "http" URIs over TLS without being required to | sites can serve "http" URIs over TLS without being required to | |||
| support strong server authentication. | support strong server authentication. | |||
| A mechanism for limiting the potential for active attacks is | Opportunistic Security [I-D.dukhovni-opportunistic-security] does not | |||
| described in Section 5. This provides clients with additional | provide the same guarantees as using TLS with "https" URIs; it is | |||
| protection against them for a period after successfully connecting to | vulnerable to active attacks, and does not change the security | |||
| a server using TLS. This does not offer the same level of protection | context of the connection. Normally, users will not be able to tell | |||
| as afforded to "https" URIs, but increases the likelihood that an | that it is in use (i.e., there will be no "lock icon"). | |||
| active attack be detected. | ||||
| By its nature, this technique is vulnerable to active attacks. A | ||||
| mechanism for partially mitigating them is described in Section 5. | ||||
| It does not offer the same level of protection as afforded to "https" | ||||
| URIs, but increases the likelihood that an active attack be detected. | ||||
| 1.1. Goals and Non-Goals | 1.1. Goals and Non-Goals | |||
| The immediate goal is to make the use of HTTP more robust in the face | The immediate goal is to make the use of HTTP more robust in the face | |||
| of pervasive passive monitoring [RFC7258]. | of pervasive passive monitoring [RFC7258]. | |||
| A secondary goal is to limit the potential for active attacks. It is | A secondary goal is to limit the potential for active attacks. It is | |||
| not intended to offer the same level of protection as afforded to | not intended to offer the same level of protection as afforded to | |||
| "https" URIs, but instead to increase the likelihood that an active | "https" URIs, but instead to increase the likelihood that an active | |||
| attack can be detected. | attack can be detected. | |||
| skipping to change at page 3, line 20 ¶ | skipping to change at page 3, line 28 ¶ | |||
| administrative effort to configure. | administrative effort to configure. | |||
| 1.2. Notational Conventions | 1.2. Notational Conventions | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| 2. Using HTTP URIs over TLS | 2. Using HTTP URIs over TLS | |||
| An origin server that supports the resolution of HTTP URIs can | An origin server that supports the resolution of "http" URIs can | |||
| indicate support for this specification by providing an alternative | indicate support for this specification by providing an alternative | |||
| service advertisement [I-D.ietf-httpbis-alt-svc] for a protocol | service advertisement [I-D.ietf-httpbis-alt-svc] for a protocol | |||
| identifier that uses TLS, such as "h2" [I-D.ietf-httpbis-http2]. | identifier that uses TLS, such as "h2" [I-D.ietf-httpbis-http2]. | |||
| A client that receives such an advertisement MAY direct future | A client that receives such an advertisement MAY make future requests | |||
| requests for the associated origin to the identified service (as | intended for the associated origin ([RFC6454]) to the identified | |||
| specified by [I-D.ietf-httpbis-alt-svc]). | service (as specified by [I-D.ietf-httpbis-alt-svc]). | |||
| A client that places the importance of passive protections over | A client that places the importance of protection against passive | |||
| performance might choose to withold requests until an encrypted | attacks over performance might choose to withhold requests until an | |||
| connection is available. However, if such a connection cannot be | encrypted connection is available. However, if such a connection | |||
| successfully established, the client MAY resume its use of the | cannot be successfully established, the client MAY resume its use of | |||
| cleartext connection. | the cleartext connection. | |||
| A client can also explicitly probe for an alternative service | A client can also explicitly probe for an alternative service | |||
| advertisement by sending a request that bears little or no sensitive | advertisement by sending a request that bears little or no sensitive | |||
| information, such as one with the OPTIONS method. Clients with | information, such as one with the OPTIONS method. Likewise, clients | |||
| expired alternative services information could make a similar request | with existing alternative services information could make such a | |||
| in parallel to an attempt to contact an alternative service, to | request before they expire, in order minimize the delays that might | |||
| minimize the delays that might be incurred by failing to contact the | be incurred. | |||
| alternative service. | ||||
| 3. Server Authentication | 3. Server Authentication | |||
| There are no existing expectations with respect to cryptographically | By their nature, "http" URIs do not require cryptographically strong | |||
| strong server authentication when it comes to resolving HTTP URIs. | server authentication; that is only implied by "https" URIs. | |||
| Establishing it, as described in [RFC2818], creates a number of | Furthermore, doing so (as per [RFC2818]) creates a number of | |||
| operational challenges. For these reasons, server authentication is | operational challenges. For these reasons, server authentication is | |||
| not mandatory for HTTP URIs when using the mechanism described in | not mandatory for "http" URIs when using the mechanism described in | |||
| this specification. | this specification. | |||
| When connecting to an alternative service for an "http" URI, clients | When connecting to an alternative service for an "http" URI, clients | |||
| are required to perform the server authentication procedure described | are not required to perform the server authentication procedure | |||
| in Section 3.1 of [RFC2818]. The server certificate, if one is | described in Section 3.1 of [RFC2818]. The server certificate, if | |||
| proffered by the alternative service, is not necessarily checked for | one is proffered by the alternative service, is not necessarily | |||
| validity, expiration, issuance by a trusted certificate authority or | checked for validity, expiration, issuance by a trusted certificate | |||
| matched against the name in the URI. Therefore, the alternative | authority or matched against the name in the URI. Therefore, the | |||
| service MAY provide any certificate, or even select TLS cipher suites | alternative service MAY provide any certificate, or even select TLS | |||
| that do not include authentication. | cipher suites that do not include authentication. | |||
| A client MAY perform additional checks on the certificate that it is | A client MAY perform additional checks on the offered certificate if | |||
| offered (if the server does not select an unauthenticated TLS cipher | the server does not select an unauthenticated TLS cipher suite. This | |||
| suite). For instance, a client could examine the certificate to see | document doesn't define any such checks, though clients could be | |||
| if it has changed over time. | configured with a policy that defines what is acceptable. | |||
| In order to retain the authority properties of "http" URIs, and as | As stipulated by [I-D.ietf-httpbis-alt-svc], clients MUST NOT use | |||
| stipulated by [I-D.ietf-httpbis-alt-svc], clients MUST NOT use | alternative services with a host other than the origin's, unless the | |||
| alternative services that identify a host other than that of the | alternative service itself is strongly authenticated (as the origin's | |||
| origin, unless the alternative service itself is strongly | host); for example, using TLS with a certificate that validates as | |||
| authenticated (as the origin's host). This is not currently possible | per [RFC2818]. | |||
| for "http" URIs on cleartext transports. | ||||
| 4. Interaction with "https" URIs | 4. Interaction with "https" URIs | |||
| An alternative service that is discovered to support "http" URIs | When using alternative services, both "http" and "https" URIs might | |||
| might concurrently support "https" URIs, because HTTP/2 permits the | use the same connection, because HTTP/2 permits requests for multiple | |||
| sending of requests for multiple origins (see [RFC6454]) on the one | origins on the same connection. | |||
| connection. Therefore, when using alternative services, both HTTP | ||||
| and HTTPS URIs might be sent on the same connection. | ||||
| "https" URIs rely on server authentication. Therefore, if a | Since "https" URIs rely on server authentication, a connection that | |||
| connection is initially created without authenticating the server, | is initially created for "http" URIs without authenticating the | |||
| requests for "https" resources cannot be sent over that connection | server cannot be used for "https" URIs until the server certificate | |||
| until the server certificate is successfully authenticated. | is successfully authenticated. Section 3.1 of [RFC2818] describes | |||
| Section 3.1 of [RFC2818] describes the basic mechanism, though the | the basic mechanism, though the authentication considerations in | |||
| authentication considerations in [I-D.ietf-httpbis-alt-svc] could | [I-D.ietf-httpbis-alt-svc] also apply. | |||
| also apply. | ||||
| Connections that are established without any means of server | Connections that are established without any means of server | |||
| authentication (for instance, the purely anonymous TLS cipher | authentication (for instance, the purely anonymous TLS cipher | |||
| suites), cannot be used for "https" URIs. | suites), cannot be used for "https" URIs. | |||
| 5. Requiring Use of TLS | 5. Requiring Use of TLS | |||
| Editors' Note: this is a very rough take on an approach that would | Editors' Note: this is a very rough take on an approach that would | |||
| provide a limited form of protection against downgrade attack. It's | provide a limited form of protection against downgrade attack. It's | |||
| unclear at this point whether the additional effort (and modest | unclear at this point whether the additional effort (and modest | |||
| skipping to change at page 5, line 24 ¶ | skipping to change at page 5, line 31 ¶ | |||
| Given that the primary goal of this specification is to prevent | Given that the primary goal of this specification is to prevent | |||
| passive attacks, these are not critical failings (especially | passive attacks, these are not critical failings (especially | |||
| considering the alternative - HTTP over cleartext). However, a | considering the alternative - HTTP over cleartext). However, a | |||
| modest form of protection against active attacks can be provided for | modest form of protection against active attacks can be provided for | |||
| clients on subsequent connections. | clients on subsequent connections. | |||
| When an alternative service is able to commit to providing service | When an alternative service is able to commit to providing service | |||
| for a particular origin over TLS for a bounded period of time, | for a particular origin over TLS for a bounded period of time, | |||
| clients can choose to rely upon its avilability, failing when it | clients can choose to rely upon its avilability, failing when it | |||
| cannot be contacted. Effectively, this makes the alternative service | cannot be contacted. Effectively, this makes the choice to use a | |||
| "sticky" in the client. | secured protocol "sticky" in the client. | |||
| One drawback with this approach is that clients need to strongly | ||||
| authenticate the alternative service to act upon such a commitment; | ||||
| otherwise, an attacker could create a persistent denial of service. | ||||
| 5.1. The HTTP-TLS Header Field | 5.1. The HTTP-TLS Header Field | |||
| A alternative service can make this commitment by sending a "HTTP- | A alternative service can make this commitment by sending a "HTTP- | |||
| TLS" header field: | TLS" header field: | |||
| HTTP-TLS = 1#parameter | HTTP-TLS = 1#parameter | |||
| When it appears in a HTTP response from a strongly authenticated | When it appears in a HTTP response from a strongly authenticated | |||
| alternative service, this header field indicates that the | alternative service, this header field indicates that the | |||
| availability of the origin through TLS-protected alternative services | availability of the origin through TLS-protected alternative services | |||
| is "sticky", and that the client MUST NOT fall back to cleartext | is "sticky", and that the client MUST NOT fall back to cleartext | |||
| protocols while this information is considered fresh. | protocols while this information is considered fresh. | |||
| For example: | For example: | |||
| GET /index.html HTTP/1.1 | ||||
| Host: example.com | ||||
| HTTP/1.1 200 OK | HTTP/1.1 200 OK | |||
| Content-Type: text/html | Content-Type: text/html | |||
| Cache-Control: 600 | Cache-Control: 600 | |||
| Age: 30 | Age: 30 | |||
| Date: Thu, 1 May 2014 16:20:09 GMT | Date: Thu, 1 May 2014 16:20:09 GMT | |||
| HTTP-TLS: ma=3600 | HTTP-TLS: ma=3600 | |||
| Note that the commitment is not bound to a particular alternative | This header field creates a commitment from the origin [RFC6454] of | |||
| service; clients SHOULD use other alternative services that they | the associated resource (in the example, "http://example.com"). For | |||
| become aware of, as long as the requirements regarding authentication | the duration of the commitment, clients SHOULD strongly authenticate | |||
| and avoidance of cleartext protocols are met. | the server for all subsequent requests made to that origin, though | |||
| this creates some risks for clients Section 5.2. | ||||
| When this header field appears in a response, clients MUST strongly | Authentication for HTTP over TLS is described in Section 3.1 of | |||
| authenticate the alternative service, as described in Section 3.1 of | ||||
| [RFC2818], noting the additional requirements in | [RFC2818], noting the additional requirements in | |||
| [I-D.ietf-httpbis-alt-svc]. The header field MUST be ignored if | [I-D.ietf-httpbis-alt-svc]. The header field MUST be ignored if | |||
| strong authentication fails. | strong authentication fails; otherwise, an attacker could create a | |||
| persistent denial of service by falsifying a commitment. | ||||
| Persisted information expires after a period determined by the value | The commitment to use authenticated TLS persists for a period | |||
| of the "ma" parameter. See Section 4.2.3 of | determined by the value of the "ma" parameter. See Section 4.2.3 of | |||
| [I-D.ietf-httpbis-p6-cache] for details of determining response age. | [RFC7234] for details of determining response age. | |||
| ma-parameter = delta-seconds | ma-parameter = delta-seconds | |||
| Requests for an origin that has a persisted, unexpired value for | The commitment made by the "HTTP-TLS" header field applies only to | |||
| "HTTP-TLS" MUST fail if they cannot be made over an authenticated TLS | the origin of the resource that generates the "HTTP-TLS" header | |||
| connection. | field. Requests for an origin that has a persisted, unexpired value | |||
| for "HTTP-TLS" MUST fail if they cannot be made over an authenticated | ||||
| TLS connection. | ||||
| Note that the commitment is not bound to a particular alternative | ||||
| service. Clients SHOULD use alternative services that they become | ||||
| aware of. However, clients MUST NOT use an unauthenticated | ||||
| alternative service for an origin with this commitment. Where there | ||||
| is an active commitment, clients MAY instead ignore advertisements | ||||
| for unsecured alternatives services. | ||||
| 5.2. Operational Considerations | 5.2. Operational Considerations | |||
| To avoid situations where a persisted value of "HTTP-TLS" causes a | To avoid situations where a persisted value of "HTTP-TLS" causes a | |||
| client to be unable to contact a site, clients SHOULD limit the time | client to be unable to contact a site, clients SHOULD limit the time | |||
| that a value is persisted for a given origin. A lower limit might be | that a value is persisted for a given origin. A lower limit might be | |||
| appropriate for initial observations of "HTTP-TLS"; the certainty | appropriate for initial observations of "HTTP-TLS"; the certainty | |||
| that a site has set a correct value - and the corresponding limit on | that a site has set a correct value - and the corresponding limit on | |||
| persistence - can increase as the value is seen more over time. | persistence - can increase as the value is seen more over time. | |||
| Once a server has indicated that it will support authenticated TLS, a | Once a server has indicated that it will support authenticated TLS, a | |||
| client MAY use key pinning [I-D.ietf-websec-key-pinning] or any other | client MAY use key pinning [I-D.ietf-websec-key-pinning] or any other | |||
| mechanism that would otherwise be restricted to use with HTTPS URIs, | mechanism that would otherwise be restricted to use with "https" | |||
| provided that the mechanism can be restricted to a single HTTP | URIs, provided that the mechanism can be restricted to a single HTTP | |||
| origin. | origin. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| 6.1. Security Indicators | 6.1. Security Indicators | |||
| User Agents MUST NOT provide any special security indicia when an | User Agents MUST NOT provide any special security indicia when an | |||
| "http" resource is acquired using TLS. In particular, indicators | "http" resource is acquired using TLS. In particular, indicators | |||
| that might suggest the same level of security as "https" MUST NOT be | that might suggest the same level of security as "https" MUST NOT be | |||
| used (e.g., using a "lock device"). | used (e.g., using a "lock device"). | |||
| skipping to change at page 7, line 28 ¶ | skipping to change at page 7, line 37 ¶ | |||
| clients have no prior information (see Section 6.3), or when | clients have no prior information (see Section 6.3), or when | |||
| persisted commitments have expired. | persisted commitments have expired. | |||
| For example, because the "Alt-Svc" header field | For example, because the "Alt-Svc" header field | |||
| [I-D.ietf-httpbis-alt-svc] likely appears in an unauthenticated and | [I-D.ietf-httpbis-alt-svc] likely appears in an unauthenticated and | |||
| unencrypted channel, it is subject to downgrade by network attackers. | unencrypted channel, it is subject to downgrade by network attackers. | |||
| In its simplest form, an attacker that wants the connection to remain | In its simplest form, an attacker that wants the connection to remain | |||
| in the clear need only strip the "Alt-Svc" header field from | in the clear need only strip the "Alt-Svc" header field from | |||
| responses. | responses. | |||
| As long as a client is willing to use cleartext TCP to contact a | Downgrade attacks can be partially mitigated using the "HTTP-TLS" | |||
| server, these attacks are possible. The "HTTP-TLS" header field | header field, because when it is used, a client can avoid using | |||
| provides an imperfect mechanism for establishing a commitment. The | cleartext to contact a supporting server. However, this only works | |||
| advantage is that this only works if a previous connection is | when a previous connection has been established without an active | |||
| established where an active attacker was not present. A continuously | attacker present; a continuously present active attacker can either | |||
| present active attacker can either prevent the client from ever using | prevent the client from ever using TLS, or offer its own certificate. | |||
| TLS, or offer a self-signed certificate. This would prevent the | ||||
| client from ever seeing the "HTTP-TLS" header field, or if the header | ||||
| field is seen, from successfully validating and persisting it. | ||||
| 6.3. Privacy Considerations | 6.3. Privacy Considerations | |||
| Clients that persist state for origins can be tracked over time based | Cached alternative services can be used to track clients over time; | |||
| on their use of this information. Persisted information can be | e.g., using a user-specific hostname. Clearing the cache reduces the | |||
| cleared to reduce the ability of servers to track clients. Clients | ability of servers to track clients; therefore clients MUST clear | |||
| MUST clear persisted alternative service information when clearing | cached alternative service information when clearing other origin- | |||
| other origin-based state (i.e., cookies). | based state (i.e., cookies). | |||
| 6.4. Confusion Regarding Request Scheme | ||||
| Many existing HTTP/1.1 implementations use the presence or absence of | ||||
| TLS in the stack to determine whether requests are for "http" or | ||||
| "https" resources. This is necessary in many cases because the most | ||||
| common form of an HTTP/1.1 request does not carry an explicit | ||||
| indication of the URI scheme. | ||||
| HTTP/1.1 MUST NOT be sent over HTTP/1.1 or earlier versions of the | ||||
| protocol. Opportunistically secured HTTP requests MUST include an | ||||
| explicit scheme identifier. | ||||
| 7. References | 7. References | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [I-D.ietf-httpbis-alt-svc] | [I-D.ietf-httpbis-alt-svc] | |||
| Nottingham, M., McManus, P., and J. Reschke, "HTTP | Nottingham, M., McManus, P., and J. Reschke, "HTTP | |||
| Alternative Services", draft-ietf-httpbis-alt-svc-01 (work | Alternative Services", draft-ietf-httpbis-alt-svc-05 (work | |||
| in progress), April 2014. | in progress), December 2014. | |||
| [I-D.ietf-httpbis-http2] | [I-D.ietf-httpbis-http2] | |||
| Belshe, M., Peon, R., and M. Thomson, "Hypertext Transfer | Belshe, M., Peon, R., and M. Thomson, "Hypertext Transfer | |||
| Protocol version 2", draft-ietf-httpbis-http2-12 (work in | Protocol version 2", draft-ietf-httpbis-http2-16 (work in | |||
| progress), April 2014. | progress), November 2014. | |||
| [I-D.ietf-httpbis-p6-cache] | ||||
| Fielding, R., Nottingham, M., and J. Reschke, "Hypertext | ||||
| Transfer Protocol (HTTP/1.1): Caching", draft-ietf- | ||||
| httpbis-p6-cache-26 (work in progress), February 2014. | ||||
| [I-D.ietf-websec-key-pinning] | [I-D.ietf-websec-key-pinning] | |||
| Evans, C., Palmer, C., and R. Sleevi, "Public Key Pinning | Evans, C., Palmer, C., and R. Sleevi, "Public Key Pinning | |||
| Extension for HTTP", draft-ietf-websec-key-pinning-13 | Extension for HTTP", draft-ietf-websec-key-pinning-21 | |||
| (work in progress), May 2014. | (work in progress), October 2014. | |||
| [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, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. | [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, August 2008. | (TLS) Protocol Version 1.2", RFC 5246, August 2008. | |||
| 7.2. Informative References | ||||
| [RFC6454] Barth, A., "The Web Origin Concept", RFC 6454, December | [RFC6454] Barth, A., "The Web Origin Concept", RFC 6454, December | |||
| 2011. | 2011. | |||
| [RFC7234] Fielding, R., Nottingham, M., and J. Reschke, "Hypertext | ||||
| Transfer Protocol (HTTP/1.1): Caching", RFC 7234, June | ||||
| 2014. | ||||
| 7.2. Informative References | ||||
| [I-D.dukhovni-opportunistic-security] | ||||
| Dukhovni, V., "Opportunistic Security: Some Protection | ||||
| Most of the Time", draft-dukhovni-opportunistic- | ||||
| security-06 (work in progress), November 2014. | ||||
| [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | |||
| Attack", BCP 188, RFC 7258, May 2014. | Attack", BCP 188, RFC 7258, May 2014. | |||
| Appendix A. Acknowledgements | Appendix A. Acknowledgements | |||
| Thanks to Patrick McManus, Eliot Lear, Stephen Farrell, Guy Podjarny, | Thanks to Patrick McManus, Eliot Lear, Stephen Farrell, Guy Podjarny, | |||
| Stephen Ludin, Erik Nygren, Paul Hoffman, Adam Langley, Eric Rescorla | Stephen Ludin, Erik Nygren, Paul Hoffman, Adam Langley, Eric Rescorla | |||
| and Richard Barnes for their feedback and suggestions. | and Richard Barnes for their feedback and suggestions. | |||
| Authors' Addresses | Authors' Addresses | |||
| End of changes. 37 change blocks. | ||||
| 118 lines changed or deleted | 141 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/ | ||||