Network Working Group                                      M. Nottingham
Internet-Draft                                         December 11, 2013
Intended status: Standards Track                              M. Thomson
Expires: June 14, November 21, 2014                                       Mozilla
                                                            May 20, 2014

                 Opportunistic Encryption for HTTP URIs
                  draft-nottingham-http2-encryption-02
                  draft-nottingham-http2-encryption-03

Abstract

   This document proposes two changes to HTTP/2.0; first, it suggests describes how "http" URIs can be accessed using ALPN Protocol Identifies to identify the specific stack of
   protocols in use, including TLS, and second, it proposes a way Transport Layer
   Security (TLS) to
   opportunistically encrypt HTTP/2.0 using TLS for HTTP URIs. mitigate pervasive monitoring attacks.

Status of this This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on June 14, November 21, 2014.

Copyright Notice

   Copyright (c) 2013 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3   2
     1.1.  Goals and Non-Goals . . . . . . . . . . . . . . . . . . . . 3   2
     1.2.  Notational Conventions  . . . . . . . . . . . . . . . . . .   3
   2.  Proposal: Indicating Security Properties in Protocol
       Identifiers  Using HTTP URIs over TLS  . . . . . . . . . . . . . . . . . .   3
   3.  Server Authentication . . . . . . . . . . . . . . . . . . . .   3
     2.1.  Proposal: The "h2r" Protocol
   4.  Interaction with "https" URIs . . . . . . . . . . . . . . . .   4
   3.  Security Considerations
   5.  Requiring Use of TLS  . . . . . . . . . . . . . . . . . . . . 5
     3.1.  Downgrade Attacks   4
     5.1.  The HTTP-TLS Header Field . . . . . . . . . . . . . . . .   5
     5.2.  Operational Considerations  . . . . . 5
   4.  References . . . . . . . . . .   6
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
     4.1.  Normative References
     6.1.  Security Indicators . . . . . . . . . . . . . . . . . . . 6
     4.2.  Informative References   7
     6.2.  Downgrade Attacks . . . . . . . . . . . . . . . . . . 6
   Appendix A.  Acknowledgements . .   7
     6.3.  Privacy Considerations  . . . . . . . . . . . . . . . . .   7
   Appendix B.  Recent History and Background
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
   Appendix C.  Frequently Asked Questions
     7.1.  Normative References  . . . . . . . . . . . . . . 8
     C.1.  Will this make encryption mandatory in HTTP/2.0? . . . .   7
     7.2.  Informative References  . 9
     C.2.  No certificate checks? Really? . . . . . . . . . . . . . . 9
     C.3.  Why do this if a downgrade attack is so easy? . .   8
   Appendix A.  Acknowledgements . . . . . . . . 9
     C.4.  Why Have separate relaxed protocol identifiers? . . . . . . 9
   Author's Address . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . 9 .   8

1.  Introduction

   In discussion at IETF87, it was proposed that the current means of
   bootstrapping encryption in HTTP [I-D.ietf-httpbis-p1-messaging] -
   using the "HTTPS" URI scheme - unintentionally gives the server
   disproportionate power in determining whether encryption (through use
   of TLS [RFC6246]) is used.

   This document proposes using the new "alternate services" layer
   described in [I-D.nottingham-httpbis-alt-svc] describes a use of HTTP Alternative Services
   [I-D.ietf-httpbis-alt-svc] to decouple the URI scheme from the use
   and configuration of underlying encryption, allowing a "http://" "http" URI to
   be upgraded to use TLS opportunistically.

   Additionally, because accessed using TLS [RFC5246] opportunistically.

   Currently, "https" URIs requires acquiring and configuring a valid
   certificate, which means that some deployments may find supporting it TLS
   difficult.  Therefore, this document also proposes describes a "relaxed" profile of
   HTTP/2.0 usage model whereby
   sites can serve "http" URIs over TLS that does not require without being required to
   support strong server authentication,
   specifically authentication.

   A mechanism for use limiting the potential for active attacks is
   described in Section 5.  This provides clients with "http://" URIs. additional
   protection against them for a period after successfully connecting to
   a server using TLS.  This 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

   The immediate goal is to make the use of HTTP URIs more robust in the face
   of pervasive passive monitoring.

   Such passive attacks are often opportunistic; they rely on sensitive
   information being available in the clear.  Furthermore, they are
   often broad, where all available data monitoring [RFC7258].

   A secondary goal is collected en masse, being
   analyzed separately to limit the potential for relevant information. active attacks.  It is
   not a goal intended to offer the same level of this document protection as afforded to
   "https" URIs, but instead to address increase the likelihood that an active or targeted
   attacks, although future solutions may
   attack can be complementary.

   Other goals include detected.

   A final (but significant) goal is to provide for ease of implementation
   implementation, deployment and deployment, with operation.  This mechanism should have
   a minimal impact upon performance (in keeping with the goals of
   HTTP/2.0). performance, and should not require extensive
   administrative effort to configure.

1.2.  Notational Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

2.  Proposal: Indicating Security Properties in Protocol Identifiers

   In past discussions, there has been general agreement to reusing  Using HTTP URIs over TLS

   An origin server that supports the
   ALPN resolution of HTTP URIs can
   indicate support for this specification by providing an alternative
   service advertisement [I-D.ietf-httpbis-alt-svc] for a protocol
   identifier [I-D.ietf-tls-applayerprotoneg] for all
   negotiation mechanisms in HTTP/2.0, not just TLS.

   This document proposes putting additional information into them to
   identify the use of encryption as well that uses TLS, such as configuration of "h2" [I-D.ietf-httpbis-http2].

   A client that
   encryption, independent of the URI scheme in use.

   Thus, we won't have just one protocol identifier receives such an advertisement MAY direct future
   requests for HTTP/2.0, but
   two; one with and one without the use of TLS.  As such, associated origin to the following
   identifiers are recommended if this approach is adopted:

   o  h1 - http/1.x over TCP
   o  h1t - http/1.x over TLS over TCP (as per [RFC2818])
   o  h2 - http/2.x over TCP
   o  h2t - http/2.x over TLS over TCP identified service (as per [RFC2818])
   o  h2r - http/2.x over TLS over TCP (see Section 2.1)

   Draft implementations could be indicated with a suffix; e.g., h2t-
   draft10.

   Most of these are already latently defined
   specified by HTTP/2.0, with the
   exception being h2r, defined below.  Note [I-D.ietf-httpbis-alt-svc]).

   A client that places the focus importance of this
   proposal is on the semantics of the identifiers; passive protections over
   performance might choose to withold requests until an exact syntax for
   them encrypted
   connection is not part of it.

   By indicating the use of TLS in the protocol identifier allows available.  However, if such a
   client and server to negotiate connection cannot be
   successfully established, the client MAY resume its use of TLS for "http://" URIs; if
   the server offers h2t, the
   cleartext connection.

   A client can select also explicitly probe for an alternative service
   advertisement by sending a request that protocol, start TLS
   and use it.

   Note that, bears little or no sensitive
   information, such as discussed one with the OPTIONS method.  Clients with
   expired alternative services information could make a similar request
   in Section 3.1, there may parallel to an attempt to contact an alternative service, to
   minimize the delays that might be situations
   (e.g,.  ALPN) where advertising some of these profiles incurred by failing to contact the
   alternative service.

3.  Server Authentication

   There are
   inapplicable or inadvisable. no existing expectations with respect to cryptographically
   strong server authentication when it comes to resolving HTTP URIs.
   Establishing it, as described in [RFC2818], creates a number of
   operational challenges.  For example, these reasons, server authentication is
   not mandatory for HTTP URIs when using the mechanism described in
   this specification.

   When connecting to an ALPN negotiation alternative service for
   a "https://" an "http" URI, it is only sensible clients
   are required to offer h1t and h2t.

   If adopted, this proposal would be effected by adjusting perform the text server authentication procedure described
   in Section 3 3.1 of [I-D.ietf-httpbis-http2] ("Starting HTTP/2.0") along the
   lines described above.  Note that the specific protocol identifiers
   above are suggestions only.

2.1.  Proposal: [RFC2818].  The "h2r" Protocol

   If the proposal above server certificate, if one is adopted, a separate proposal
   proffered by the alternative service, is to define a
   separate protocol identifier not necessarily checked for "relaxed"
   validity, expiration, issuance by a trusted certificate authority or
   matched against the name in the URI.  Therefore, the alternative
   service MAY provide any certificate, or even select TLS operation.

   Servers cipher suites
   that support do not include authentication.

   A client MAY perform additional checks on the "h2r" protocol indicate certificate that they support it is
   offered (if the server does not select an unauthenticated TLS for access to URIs with cipher
   suite).  For instance, a client could examine the "http" URI scheme using HTTP/2.0 or
   greater.

   Servers MAY advertise certificate to see
   if it has changed over time.

   In order to retain the "h2r" profile for resources with a authority properties of "http"
   origin scheme; they URIs, and as
   stipulated by [I-D.ietf-httpbis-alt-svc], clients MUST NOT advertise it use
   alternative services that identify a host other than that of the
   origin, unless the alternative service indication itself is strongly
   authenticated.  This is not currently possible for resources "http" URIs on
   cleartext transports.

4.  Interaction with a "https" origin.

   When a client connects URIs

   An alternative service that is discovered to an "h2r" alternate service, it MUST use
   TLS1.1 or greater, support "http" URIs
   might concurrently support "https" URIs, because HTTP/2 permits the
   sending of requests for multiple origins (see [RFC6454]) on the one
   connection.  Therefore, when using alternative services, both HTTP
   and MUST use HTTP/2.x.  HTTP/2.0 SHOULD HTTPS URIs might be used as
   soon as TLS negotiation is completed; i.e., sent on the "Upgrade dance"
   SHOULD NOT be performed.

   When connecting to an "h2r" service, same connection.

   "https" URIs rely on server authentication.  Therefore, if a
   connection is initially created without authenticating the algorithm server,
   requests for authenticating "https" resources cannot be sent over that connection
   until the server described in [RFC2818] certificate is successfully authenticated.
   Section 3.1 changes; of [RFC2818] describes the client
   does not necessarily validate its certificate basic mechanism, though the
   authentication considerations in [I-D.ietf-httpbis-alt-svc] could
   also apply.

   Connections that are established without any means of server
   authentication (for instance, the purely anonymous TLS cipher
   suites), cannot be used for expiry, hostname
   match or relationship to "https" URIs.

5.  Requiring Use of TLS

   Editors' Note: this is a known certificate authority (as it very rough take on an approach that would
   with "normal" HTTPS).

   However,
   provide a limited form of protection against downgrade attack.  It's
   unclear at this point whether the additional effort (and modest
   operational cost) is worthwhile.

   The mechanism described in this specification is trival to mount an
   active attack against, for two reasons:

   o  A client MAY that doesn't perform additional checks on authentication an easy victim of
      server impersonation, through man-in-the-middle attacks.

   o  A client that is willing to use cleartext to resolve the certificate
   and make a decision as resource
      will do so if access to its validity before using any TLS-enabled alternative services is
      blocked at the network layer.

   Given that the server.
   Definition primary goal of such additional checks this specification is to prevent
   passive attacks, these are out not critical failings (especially
   considering the alternative - HTTP over cleartext).  However, a
   modest form of scope protection against active attacks can be provided for
   clients on subsequent connections.

   When an alternate service is able to commit to providing service for
   a particular origin over TLS for a bounded period of time, clients
   can choose to rely upon its avilability, failing when it cannot be
   contacted.  Effectively, this
   specification.

   Upon initial adoption makes the alternative service "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

   A alternative service can make this proposal, commitment by sending a "HTTP-
   TLS" header field:

   HTTP-TLS     = 1#parameter

   When it appears in a HTTP response from a strongly authenticated
   alternative service, this header field indicates that the
   availability of the origin through TLS-protected alternative services
   is expected "sticky", and that no such
   additional checks will be performed.  Therefore, the client MUST NOT
   use the "h2r" profile fall back to connect cleartext
   protocols while this information is considered fresh.

   For example:

   HTTP/1.1 200 OK
   Content-Type: text/html
   Cache-Control: 600
   Age: 30
   Date: Thu, 1 May 2014 16:20:09 GMT
   HTTP-TLS: ma=3600

   Note that the commitment is not bound to alternate a particular alternative
   service; clients SHOULD use other alternative services whose host
   does not match that they
   become aware of, as long as the requirements regarding authentication
   and avoidance of cleartext protocols are met.

   When this header field appears in a response, clients MUST strongly
   authenticate the alternative service, as described in Section 3.1 of
   [RFC2818], noting the origin (as per
   [I-D.nottingham-httpbis-alt-svc]), unless additional checks are
   performed.

   Servers SHOULD use requirements in
   [I-D.ietf-httpbis-alt-svc].  The header field MUST be ignored if
   strong authentication fails.

   Persisted information expires after a period determined by the same certificate consistently value
   of the "ma" parameter.  See Section 4.2.3 of
   [I-D.ietf-httpbis-p6-cache] for details of determining response age.

   ma-parameter     = delta-seconds

   Requests for an origin that has a persisted, unexpired value for
   "HTTP-TLS" MUST fail if they cannot be made over time, an authenticated TLS
   connection.

5.2.  Operational Considerations

   To avoid situations where a persisted value of "HTTP-TLS" causes a
   client to
   aid future extensions be unable to contact a site, clients SHOULD limit the time
   that a value is persisted for a given origin.  A hard limit might be
   set to a month.  A lower limit might be appropriate for building trust initial
   observations of "HTTP-TLS"; the certainty that a site has set a
   correct value - and adding other services.

   [TODO: define "same"; likely not the same actual certificate. ]

   When corresponding limit on persistence - can
   increase as the h2r protocol value is in use, seen more over time.

   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
   mechanism that would otherwise be restricted to use with HTTPS URIs,
   provided that the mechanism can be restricted to a single HTTP
   origin.

6.  Security Considerations
6.1.  Security Indicators

   User Agents MUST NOT indicate the
   connection has provide any special security indicia when an
   "http" resource is acquired using TLS.  In particular, indicators
   that might suggest the same level of security as https:// (e.g. "https" MUST NOT be
   used (e.g., using a "lock device").

   If this proposal is adopted, the "h2r" protocol could be defined in
   [I-D.ietf-httpbis-http2] (most likely, Section 3), or in a separate
   document.

3.  Security Considerations

3.1.

6.2.  Downgrade Attacks

   A downgrade attack against the negotiation for TLS is possible,
   depending upon possible.  With
   the properties of the negotiation mechanism. "HTTP-TLS" header field, this is limited to occasions where
   clients have no prior information (see Section 6.3), or when
   persisted commitments have expired.

   For example, because the Alt-Svc "Alt-Svc" header field
   [I-D.nottingham-httpbis-alt-svc]
   [I-D.ietf-httpbis-alt-svc] likely appears in the clear for "http://"
   URIs, an unauthenticated and
   unencrypted channel, it is subject to downgrade by attackers that are able to Man-
   in-the-Middle the network connection; in attackers.
   In its simplest form, an attacker that wants the connection to remain
   in the clear need only strip the Alt-Svc "Alt-Svc" header field from
   responses.

   This proposal does not offer

   As long as a remedy for this risk.  However, it's
   important client is willing to note use cleartext TCP to contact a
   server, these attacks are possible.  The "HTTP-TLS" header field
   provides an imperfect mechanism for establishing a commitment.  The
   advantage is that it this only works if a previous connection is no worse than current
   established where an active attacker was not present.  A continuously
   present active attacker can either prevent the client from ever using
   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

   Clients that persist state for origins can be tracked over time based
   on their use of unencrypted
   HTTP in this information.  Persisted information can be
   cleared to reduce the face ability of such active attacks.

   Future proposals might attempt servers to address this risk.

4. track clients.  A browser
   client MUST clear persisted all alternative service information when
   clearing other origin-based state (i.e., cookies).

7.  References

4.1.

7.1.  Normative References

   [I-D.ietf-httpbis-alt-svc]
              Nottingham, M., McManus, P., and J. Reschke, "HTTP
              Alternative Services", draft-ietf-httpbis-alt-svc-01 (work
              in progress), April 2014.

   [I-D.ietf-httpbis-http2]
              Belshe, M., Peon, R., Thomson, M., and A. Melnikov, M. Thomson, "Hypertext Transfer
              Protocol version 2.0",
              draft-ietf-httpbis-http2-08 2", draft-ietf-httpbis-http2-12 (work in
              progress),
              November 2013.

   [I-D.ietf-tls-applayerprotoneg]
              Friedl, S., Popov, A., Langley, A., April 2014.

   [I-D.ietf-httpbis-p6-cache]
              Fielding, R., Nottingham, M., and S. Emile,
              "Transport Layer Security (TLS) Application Layer J. Reschke, "Hypertext
              Transfer Protocol
              Negotiation Extension", draft-ietf-tls-applayerprotoneg-03 (HTTP/1.1): Caching", draft-ietf-
              httpbis-p6-cache-26 (work in progress), October 2013.

   [I-D.nottingham-httpbis-alt-svc]
              Nottingham, M., "HTTP Alternate Services",
              draft-nottingham-httpbis-alt-svc-00 February 2014.

   [I-D.ietf-websec-key-pinning]
              Evans, C., Palmer, C., and R. Sleevi, "Public Key Pinning
              Extension for HTTP", draft-ietf-websec-key-pinning-13
              (work in progress),
              October 2013. May 2014.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008.

4.2.

7.2.  Informative References

   [I-D.ietf-httpbis-p1-messaging]
              Fielding, R. and J. Reschke, "Hypertext Transfer Protocol
              (HTTP/1.1): Message Syntax and Routing",
              draft-ietf-httpbis-p1-messaging-25 (work in progress),
              November 2013.

   [I-D.mbelshe-httpbis-spdy]
              Belshe, M. and R. Peon, "SPDY Protocol",
              draft-mbelshe-httpbis-spdy-00 (work in progress),
              February 2012.

   [RFC2804]  IAB and IESG, "IETF Policy on Wiretapping", RFC 2804,
              May 2000.

   [RFC3365]  Schiller, J., "Strong Security Requirements for Internet
              Engineering Task Force Standard Protocols", BCP 61,
              RFC 3365, August 2002.

   [RFC6246]  Sajassi,

   [RFC6454]  Barth, A., Brockners, F., Mohan, D., and Y. Serbest,
              "Virtual Private LAN Service (VPLS) Interoperability with
              Customer Edge (CE) Bridges", "The Web Origin Concept", RFC 6246, June 6454, December
              2011.

   [RFC6973]  Cooper, A., Tschofenig, H., Aboba, B., Peterson, J.,
              Morris, J., Hansen, M.,

   [RFC7258]  Farrell, S. and R. Smith, "Privacy
              Considerations for Internet Protocols", H. Tschofenig, "Pervasive Monitoring Is an
              Attack", BCP 188, RFC 6973,
              July 2013.

   [firesheep]
              Butler, E., "Firesheep", 2010,
              <http://codebutler.com/firesheep/>.

   [streetview]
              Kravets, D., "The Anatomy of Google's Wi-Fi Sniffing
              Debacle", 2012, <http://www.wired.com/threatlevel/2012/05/
              google-wifi-fcc-investigation/>.

   [xkeyscore]
              Greenwald, G., "NSA tool collects 'nearly everything a
              user does on the internet'", 2013, <http://
              www.theguardian.com/world/2013/jul/31/
              nsa-top-secret-program-online-data>. 7258, May 2014.

Appendix A.  Acknowledgements

   Thanks to Patrick McManus, Eliot Lear, Stephen Farrell, Guy Podjarny,
   Stephen Ludin, Erik Nygren, Paul Hoffman and Hoffman, Adam Langley Langley, Eric Rescorla
   and Richard Barnes for their feedback and suggestions.

Appendix B.  Recent History and Background

   One of the design goals for SPDY [I-D.mbelshe-httpbis-spdy] was
   increasing the use of encryption on the Web, achieved by only
   supporting the protocol over a connection protected by TLS [RFC5246].

   This was done, in part, because sensitive information - including not
   only login credentials, but also personally identifying information
   (PII) and even patterns of access - are increasingly prevalent on the
   Web, being evident in potentially every HTTP request made.

   Attacks such as FireSheep [firesheep] showed how easy it is to gather
   such information when it is sent in the clear, and incidents such as
   Google's collection of unencrypted data by its StreetView Cars
   [streetview] further illustrated the risks.

   In adopting SPDY as the basis of HTTP/2 [I-D.ietf-httpbis-http2], the
   HTTPbis Working Group agreed not to make TLS mandatory to implement
   (MtI) or mandatory to use (MtU) in our charter, despite an IETF
   policy to prefer the "best security available" [RFC3365].

   There were a variety of reasons for this, but most significantly,
   HTTP is used for much more than the traditional browsing case, and
   encryption is not needed for all of these uses.  Making encryption
   MtU or MtI was seen as unlikely to succeed because of the wide
   deployment of HTTP URIs.

   However, since making that decision, there have been developments
   that have caused the Working Group to discuss these issues again:

   1.  Active contributors to some browser implementations have stated
       that their products will not use HTTP/2 over unencrypted
       connections.  If this eventuates, it will prevent wide deployment
       of the new protocol (i.e., it couldn't be used with those
       products for HTTP URIs; only HTTPS URIs).
   2.  It has been reported that surveillance of HTTP traffic takes
       place on a broad scale [xkeyscore].  While the IETF does not take
       a formal, moral position on wiretapping, we do have a strongly
       held belief "that both commercial development of the Internet and
       adequate privacy for its users against illegal intrusion requires
       the wide availability of strong cryptographic technology"
       [RFC2804].  This requirement for privacy is further reinforced by
       [RFC6973].

   As a result, we decided to revisit the issue of how encryption is
   used in HTTP/2.0 at IETF87.

Appendix C.  Frequently Asked Questions
C.1.  Will this make encryption mandatory in HTTP/2.0?

   Not in the sense that this proposal would have it required (with a
   MUST) in the specification.

   What might happen, however, is that some browser implementers will
   take the flexibility that this approach grants and decide to not
   negotiate for HTTP/2.0 without one of the encryption profiles.  That
   means that servers would need to implement one of the encryption-
   enabling profiles to interoperate using HTTP/2.0 for HTTP URIs.

C.2.  No certificate checks? Really?

   h2r has the effect of relaxing certificate checks on "http://" - but
   not "https://" - URIs when TLS is in use.  Since TLS isn't in use for
   any "http://" URIs today, there is no net loss of security, and we
   gain some privacy from passive attacks.

   This makes TLS significantly simpler to deploy for servers; they are
   able to use a self-signed certificate.

   Additionally, it is possible to detect some attacks by remembering
   what certificate is used in the past "pinning" or third-party
   verification of the certificate in use.  This may offer a way to gain
   stronger authentication of the origin server's identity, and mitigate
   downgrade attacks (although doing so is out of the scope of this
   document).

C.3.  Why do this if a downgrade attack is so easy?

   There are many attack scenarios (e.g., third parties in coffee shops)
   where active attacks are not feasible, or much more difficult.

   Additionally, active attacks can often be detected, because they
   change protocol interactions; as such, they bring a risk of
   discovery.

C.4.  Why Have separate relaxed protocol identifiers?

   If all implementations agree that using TLS for "http://" URIs always
   means that the certificate checks are "relaxed", it could be that
   there is no need for a separate protocol identifier.  However, this
   needs to be discussed.

Author's Address

Authors' Addresses

   Mark Nottingham

   Email: mnot@mnot.net
   URI:   http://www.mnot.net/
   Martin Thomson
   Mozilla

   Email: martin.thomson@gmail.com