Internet DRAFT - draft-thomson-httpbis-http-tls

draft-thomson-httpbis-http-tls







HTTPBIS                                                       M. Thomson
Internet-Draft                                                   Mozilla
Intended status: Standards Track                            May 14, 2014
Expires: November 15, 2014


              Using Transport Layer Security for http URIs
                   draft-thomson-httpbis-http-tls-00

Abstract

   This describes how HTTP URIs can be resolved using Transport Layer
   Security (TLS).

Status of 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 November 15, 2014.

Copyright Notice

   Copyright (c) 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.






Thomson                 Expires November 15, 2014               [Page 1]

Internet-Draft                TLS for http:                     May 2014


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Conventions and Terminology . . . . . . . . . . . . . . .   2
   2.  Alternative Services  . . . . . . . . . . . . . . . . . . . .   2
   3.  Server Authentication . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Interaction with HTTPS URIs . . . . . . . . . . . . . . .   3
   4.  Persisting use of TLS . . . . . . . . . . . . . . . . . . . .   4
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   5
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   6

1.  Introduction

   The resolution of HTTP URIs [I-D.ietf-httpbis-p1-messaging] provides
   essentially no security guarantees.  This document describes a
   mechanism that would grant a measure of protection against passive
   monitoring by opportunistically using Transport Layer Security (TLS)
   [RFC5246].

   This document describes a ways that alternative services
   [I-D.ietf-httpbis-alt-svc] can be used in combination with HTTP/2
   [I-D.ietf-httpbis-http2] or HTTP/1.1 [I-D.ietf-httpbis-p1-messaging]
   over TLS [RFC2818] to resolve HTTP URIs using TLS.

   A strawman proposal that enables some protection against active
   attacks, is included in Section 4.

1.1.  Conventions and Terminology

   At times, this document falls back on shorthands for establishing
   interoperability requirements on implementations: the capitalized
   words "MUST", "SHOULD" and "MAY".  These terms are defined in
   [RFC2119].

2.  Alternative Services

   A server that supports the resolution of HTTP URIs can provide an
   alternative service advertisement [I-D.ietf-httpbis-alt-svc] for a
   protocol that uses TLS, such as "h2" ([I-D.ietf-httpbis-http2]), or
   "http/1.1" ([RFC2818]).

   A client that sees this advertisement can direct future requests for
   the associated origin to the alternative service.



Thomson                 Expires November 15, 2014               [Page 2]

Internet-Draft                TLS for http:                     May 2014


   A client that places the importance of passive protections over
   performance might choose to send no further requests over cleartext
   connections if it detects the alternative service advertisement.  If
   the alternative service cannot be successfully connected, the client
   might resume its use of the cleartext connection.

   A client can also explicitly probe for an alternative service
   advertisement by sending a request that bears little or no sensitive
   information, such as one with the "OPTIONS" method.  Clients with
   expired alternative services information could make a similar request
   in parallel to an attempt to contact an alternative service, to
   minimize the delays that might be incurred by failing to contact the
   alternative service.

3.  Server Authentication

   There are no expectations with respect to security when it comes to
   resolving HTTP URIs.  Requiring server authentication, as described
   in [RFC2818], creates a number of deployment challenges that would
   adversely affect adoption.  Therefore, server authentication is not
   mandatory for HTTP URIs.

   When connecting to a service, clients do not perform the server
   authentication procedure described in Section 3.1 of [RFC2818].  A
   server is therefore able to provide any certificate, or even select
   TLS cipher suites that do not include authentication.

   A client MAY perform additional checks on the certificate that it is
   offered (if the server does not select an unauthenticated TLS cipher
   suite).  For instance, a client could examine the certificate to see
   if it has changed over time.

3.1.  Interaction with HTTPS URIs

   A service that is discovered to support HTTP URIs might concurrently
   support HTTPS URIs.  HTTP/2 permits the sending of requests for
   multiple origins (see [RFC6454]) on the one connection.  When using
   alternative services, both HTTP and HTTPS URIs can be sent on the
   same connection.

   HTTPS URIs rely on server authentication.  Therefore, if a connection
   is initially created without authenticating the server, requests for
   HTTPS resources cannot be sent over that connection until the server
   certificate is successfully authenticated.  Section 3.1 of [RFC2818]
   describes the basic mechanism, though the authentication
   considerations in [I-D.ietf-httpbis-alt-svc] could also apply.





Thomson                 Expires November 15, 2014               [Page 3]

Internet-Draft                TLS for http:                     May 2014


4.  Persisting use of TLS

   [[Open Issue: it seems desirable that this could become sticky to
   avoid downgrade attacks.  Here's a strawman proposal for dealing with
   that.]]

   Two factors ensure that active attacks are trivial to mount:

   o  A client that doesn't perform 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 resource
      will do so if access to any TLS-enabled alternative services is
      blocked at the network layer.

   Both of these issues can be limited by having a server make a
   commitment to providing service over TLS in future requests.  A
   server makes this commitment by sending a "HTTP-TLS" header field.

   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

   A client that has has not authenticated the server MAY do so when it
   sees the "HTTP-TLS" header field.  The procedure described in
   Section 3.1 of [RFC2818] MUST be used, without regard to the value of
   the alternative services.  If server authentication is successful,
   the client can persistently store a record that the requested origin
   [RFC6454] can be retrieved over TLS.

      HTTP-TLS     = 1#parameter

   Persisted information expires after a period 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.

      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 TLS.

   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
   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 initial



Thomson                 Expires November 15, 2014               [Page 4]

Internet-Draft                TLS for http:                     May 2014


   occurrences of "HTTP-TLS"; the certainty that a site has set a
   correct value - and the corresponding limit on persistence - can
   increase as the value is 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.

5.  Security Considerations

   The basic mechanisms here do absolutely nothing against an active
   attack.  Section 4 describes a system whereby return business can be
   protected from active attack.

   Clients that persist state for origins can be tracked over time based
   on their use of this information.  Persisted information can be
   cleared to reduce the ability of servers to track clients.  A browser
   client MUST clear persisted all alternative service information when
   clearing other origin-based state (i.e., cookies).

6.  IANA Considerations

   TODO: Register HTTP-TLS if it makes sense to do so.

7.  Acknowledgements

   Mark Nottingham provided useful input, in particular
   [I-D.nottingham-http2-encryption].

8.  References

8.1.  Normative References

   [I-D.ietf-httpbis-alt-svc]
              mnot, 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., and M. Thomson, "Hypertext Transfer
              Protocol version 2", draft-ietf-httpbis-http2-12 (work in
              progress), April 2014.







Thomson                 Expires November 15, 2014               [Page 5]

Internet-Draft                TLS for http:                     May 2014


   [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-26 (work in progress), February 2014.

   [I-D.ietf-httpbis-p6-cache]
              Fielding, R., mnot, m., and J. Reschke, "Hypertext
              Transfer Protocol (HTTP/1.1): Caching", draft-ietf-
              httpbis-p6-cache-26 (work in progress), February 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.

   [RFC6454]  Barth, A., "The Web Origin Concept", RFC 6454, December
              2011.

   [RFC6797]  Hodges, J., Jackson, C., and A. Barth, "HTTP Strict
              Transport Security (HSTS)", RFC 6797, November 2012.

8.2.  Informative References

   [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), May 2014.

   [I-D.nottingham-http2-encryption]
              mnot, m., "Opportunistic Encryption for HTTP URIs", draft-
              nottingham-http2-encryption-02 (work in progress),
              December 2013.

Author's Address

   Martin Thomson
   Mozilla
   331 E Evelyn Street
   Mountain View, CA  94041
   US

   Email: martin.thomson@gmail.com






Thomson                 Expires November 15, 2014               [Page 6]