Re: [TLS] Security concerns around co-locating TLS and non-secure on same port (WGLC: draft-ietf-tsvwg-iana-ports-08)

Nicolas Williams <Nicolas.Williams@oracle.com> Mon, 08 November 2010 20:12 UTC

Return-Path: <Nicolas.Williams@oracle.com>
X-Original-To: tsvwg@core3.amsl.com
Delivered-To: tsvwg@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A60B23A688D; Mon, 8 Nov 2010 12:12:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.381
X-Spam-Level:
X-Spam-Status: No, score=-6.381 tagged_above=-999 required=5 tests=[AWL=0.217, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, UNPARSEABLE_RELAY=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZKmc9SVOlhGc; Mon, 8 Nov 2010 12:12:21 -0800 (PST)
Received: from rcsinet10.oracle.com (rcsinet10.oracle.com [148.87.113.121]) by core3.amsl.com (Postfix) with ESMTP id 7500C3A6834; Mon, 8 Nov 2010 12:12:21 -0800 (PST)
Received: from rcsinet13.oracle.com (rcsinet13.oracle.com [148.87.113.125]) by rcsinet10.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id oA8KCXSv004890 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 8 Nov 2010 20:12:34 GMT
Received: from acsmt355.oracle.com (acsmt355.oracle.com [141.146.40.155]) by rcsinet13.oracle.com (Switch-3.4.2/Switch-3.4.1) with ESMTP id oA8KCUUe026942; Mon, 8 Nov 2010 20:12:32 GMT
Received: from abhmt007.oracle.com by acsmt355.oracle.com with ESMTP id 758458791289247144; Mon, 08 Nov 2010 12:12:24 -0800
Received: from oracle.com (/129.153.128.104) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 08 Nov 2010 12:12:23 -0800
Date: Mon, 08 Nov 2010 14:12:19 -0600
From: Nicolas Williams <Nicolas.Williams@oracle.com>
To: Paul Hoffman <paul.hoffman@vpnc.org>
Subject: Re: [TLS] Security concerns around co-locating TLS and non-secure on same port (WGLC: draft-ietf-tsvwg-iana-ports-08)
Message-ID: <20101108201218.GN6536@oracle.com>
References: <E1PFKZ3-0002jp-Bu@login01.fos.auckland.ac.nz> <p06240843c8fd6c508084@[130.129.55.1]>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <p06240843c8fd6c508084@[130.129.55.1]>
User-Agent: Mutt/1.5.20 (2010-03-02)
X-Mailman-Approved-At: Tue, 09 Nov 2010 00:05:46 -0800
Cc: magnus.westerlund@ericsson.com, tsvwg@ietf.org, mike-list@pobox.com, tls@ietf.org, Peter Gutmann <pgut001@cs.auckland.ac.nz>
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tsvwg>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Nov 2010 20:12:22 -0000

On Mon, Nov 08, 2010 at 05:07:42PM +0800, Paul Hoffman wrote:
> At 6:46 PM +1300 11/8/10, Peter Gutmann wrote:
> >What is this claim based on?
> 
> "some security issues": See the long Security Considerations section on RFC 3207.

In-band (StartTLS) and out-of-band (separate ports) negotiation have
almost the same overall security considerations regarding downgrades.
One difference, for example: in the in-band case the client has to re-do
any other negotiations after starting TLS, if it did do any other
negotiations -- but this is easily avoided by doing no other
negotiations prior to starting TLS.  The fact that the former are
documented where the in-band negotiation protocol may be misleading some
to believe that the out-of-band negotiation is much safer than in-band.

> "be complexer to implement than using two ports": See the state
> machine described in section 4 and its subsections in RFC 3207. That's
> much more complex than "OK, let's go".

This is true.  Specifically it complicates the task of making the
security layer transparent to the application.  But really, not _that_
much.  Most StartTLS protocols involve an in-band negotiation of whether
to start TLS, then a switch to raw TLS (as opposed to encapsulating TLS
records in the application protocol's message framing) followed by
continuing the application protocol over raw TLS -- not very
complicated, even for implementations that use external processes to
handle the TLS security layer.

> "thus less popular": Developers would like fewer code paths and more
> failure states.

Maybe the lack of popularity has more to do with StartTLS requiring a
smidgen more thought and design than raw TLS of port XYZ :)

OTOH, we've seen requests for StartTLS support in some applications
where the user preferred StartTLS.  So popularity is in the eye of the
beholder.  For example, more TCP ports -> more firewall rule complexity.
Yes, opening the regular port requires a leap of faith that StartTLS
will be used, but if the firewall admin can ensure that the servers
implement and require StartTLS, then fewer ports -> simpler.

Nico
--