Internet DRAFT - draft-hoffman-uta-opportunistic-tls

draft-hoffman-uta-opportunistic-tls







Network Working Group                                         P. Hoffman
Internet-Draft                                            VPN Consortium
Intended status: Standards Track                        February 2, 2014
Expires: August 6, 2014


                   Opportunistic Encryption Using TLS
               draft-hoffman-uta-opportunistic-tls-00

Abstract

   This document defines the term "opportunistic encryption using TLS"
   as it applies to application protocols that use 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 August 6, 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.

1.  Introduction




Hoffman                  Expires August 6, 2014                 [Page 1]

Internet-Draft              Opportunistic TLS              February 2014


   The term "opportunistic encryption" has many informal definitions,
   and this panoply of definitions has made discussion of using
   opportunistic encryption in particular protocols more difficult.  The
   term has acquired many different meanings in different contexts, so
   having a single definition that can be used by protocol
   specifications and application developers will benefit the Internet
   community.

   Opportunistic encryption using TLS is considered a good way to
   prevent passive monitoring of communications that would otherwise be
   sent unencrypted.  It is clear that such monitoring is fairly
   pervasive in many Internet environments, and it is also clear that
   many people would like prevent their communications from being
   watched by governments, companies, groups, and individuals whom they
   do not know.  Opportunistic encryption using TLS causes the start of
   application communication to happen later than it normally would have
   due to the round trips and mathematical computations required to
   establish a TLS session.  The creators of an application program must
   weigh these and other factors when deciding whether or not to use
   opportunistic encryption in their program.  Similarly, protocol
   designers need to take these and other factors into account when
   deciding whether or not to require, suggest, or even allow
   opportunistic encryption using TLS in their protocol specifications.

   The definition of opportunistic encryption using TLS in this document
   explicitly sets user interface requirements for applications.
   Although this is rarely done in other IETF standards, doing so is
   required here for security reasons.

   Note that "opportunistic encryption using TLS" is different than
   "unauthenticated TLS".  The latter describes a similar but distinct
   concept, and it applies to different scenarios.  There is a wide
   industry agreement that unauthenticated TLS is almost always a bad
   practice.  The two terms are often confused, and thus
   "unauthenticated TLS" is described only in an appendix of this
   document.

   This document applies to all versions of TLS, including TLS 1.2
   [RFC5246], TLS 1.1 [RFC4346], and TLS 1.0 [RFC2246].  It may or may
   not apply to future versions of TLS.  The definition of
   "opportunistic encryption using TLS" in this document applies to any
   protocol that can be protected with TLS; this means that it mostly
   applies to layer 7 protocols, also known as "application layer
   protocols".  This document only defines opportunistic encryption
   using TLS; it does not describe opportunistic encryption with other
   encrypting protocols such as IPsec.





Hoffman                  Expires August 6, 2014                 [Page 2]

Internet-Draft              Opportunistic TLS              February 2014


1.1.  Terminology

   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 RFC 2119, BCP 14
   [RFC2119].

2.  Definition of 'Opportunistic Encryption Using TLS'

   An application supports opportunistic encryption using TLS if the
   application attempts to perform TLS negotiation without the user who
   is running the application knowing whether or not TLS is in use.  The
   application MUST NOT have any user-visible configuration that enables
   opportunistic encryption using TLS.  Stated another way, it is
   impossible for a program to have a configuration option for
   opportunistic encryption: having such an option inherently is not for
   opportunistic encryption.

   When an application that supports opportunistic encryption negotiates
   TLS, that application might or might not authenticate the TLS server.
   It is expected that the common case is that applications that
   supports opportunistic encryption will not authenticate the TLS
   servers they connect to.  However, it is acceptable for an
   application that supports opportunistic encryption to only complete
   the TLS negotiation if the TLS server can be validated.

   When an application that is doing opportunistic encryption
   successfully creates a TLS session, that application MUST NOT show
   the user any indication that TLS is in use.

   An application that does opportunistic encryption using TLS finds the
   appropriate TLS server using one or more of many mechanisms, none of
   which are described here in detail.  Some of those mechanisms include
   in-protocol upgrade to TLS, in-protocol pointers to TLS servers, DNS
   queries whose responses indicate the presence of appropriate TLS
   servers, and simply trying a TCP port on which TLS is expected.

3.  IANA Considerations

   None

4.  Security Considerations

   Opportunistic encryption using TLS prevents observation by passive
   attackers on the network.  However, it doesn't completely prevent the
   attacker from knowing anything about the contents of the encrypted
   information.  For example, the attacker can know what protocol is
   being encrypted, the approximate size of the encrypted messages, and



Hoffman                  Expires August 6, 2014                 [Page 3]

Internet-Draft              Opportunistic TLS              February 2014


   so on.  The attacker can also learn about the cryptographic
   capabilities of the client and server by observing the TLS handshake.

   The purpose for the requirement that the application not have any
   user-visible configuration that enables opportunistic encryption is
   that having user-visible configuration is likely to cause lower
   security for the Internet.  A widely-used setting that says "use TLS
   even when it is not called for" would cause server operators to
   become more lax with their TLS deployments, such as not bothering to
   renew (or even get) widely-accepted certificates for their sites
   because they know that most applications could reach them with TLS
   anyway.

   The purpose for the requirement that the application not show that
   TLS is in use if the TLS was established with opportunistic
   encryption is that such an indication is likely to cause lower
   security for the Internet, particularly in web browsers.

5.  References

5.1.  Normative References

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

5.2.  Informative References

   [RFC2246]  Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
              RFC 2246, January 1999.

   [RFC4346]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.1", RFC 4346, April 2006.

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

Appendix A.  Unauthenticated TLS

   The term "unauthenticated encryption", when used in the context of
   TLS, is fairly straight-forward.  However, in discussions on many
   security and protocol mailing lists, it is often confused with
   "opportunistic encryption using TLS".

   Unauthenticated encryption for TLS is the act of setting up a TLS
   session at the request of a user where the TLS client does not
   authenticate the TLS server.





Hoffman                  Expires August 6, 2014                 [Page 4]

Internet-Draft              Opportunistic TLS              February 2014


   When the TLS session is being set up at the request of the user, such
   as when the user enters a URL that should only be resolved with TLS,
   using unauthenticated TLS is rarely the expected or desired result.
   In such a situation, the application might allow unauthenticated TLS
   after giving the user some warning, or the application might even
   have a configuration setting that tells the application to allow
   unauthenticated TLS even when trying to set up an explicit TLS
   session.

   Many security-conscious protocol developers are severely critical of
   applications that allow unauthenticated encryption with TLS, even if
   the application gives the user warnings when authentication failed.
   Similarly, many security-conscious protocol developers are severely
   critical of applications that allow unauthenticated encryption to be
   configured at all.

   Note that "opportunistic encryption using TLS" may allow the TLS
   session to be set up without the client authenticating the server.
   This is a completely different scenario than "unauthenticated
   encryption" using TLS.  The definition of opportunistic encryption
   with TLS precludes the TLS session being set up at the request of the
   user; the definition of unauthenticated encryption with TLS requires
   that the TLS session is being set up at the request of the user.

Author's Address

   Paul Hoffman
   VPN Consortium

   Email: paul.hoffman@vpnc.org





















Hoffman                  Expires August 6, 2014                 [Page 5]