[TLS] Simple way to drop re-negotiation in HTTP (Re: draft-rescorla-tls-renegotiate.txt)

Nicolas Williams <Nicolas.Williams@sun.com> Sat, 07 November 2009 00:06 UTC

Return-Path: <Nicolas.Williams@sun.com>
X-Original-To: tls@core3.amsl.com
Delivered-To: tls@core3.amsl.com
Received: from localhost (localhost []) by core3.amsl.com (Postfix) with ESMTP id CD7263A6898 for <tls@core3.amsl.com>; Fri, 6 Nov 2009 16:06:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.015
X-Spam-Status: No, score=-6.015 tagged_above=-999 required=5 tests=[AWL=0.031, BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([]) by localhost (core3.amsl.com []) (amavisd-new, port 10024) with ESMTP id GFjsIH5c+lNd for <tls@core3.amsl.com>; Fri, 6 Nov 2009 16:06:36 -0800 (PST)
Received: from brmea-mail-4.sun.com (brmea-mail-4.Sun.COM []) by core3.amsl.com (Postfix) with ESMTP id E27713A67A2 for <tls@ietf.org>; Fri, 6 Nov 2009 16:06:35 -0800 (PST)
Received: from dm-central-02.central.sun.com ([]) by brmea-mail-4.sun.com (8.13.6+Sun/8.12.9) with ESMTP id nA706xg6015305 for <tls@ietf.org>; Sat, 7 Nov 2009 00:06:59 GMT
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM []) by dm-central-02.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL, v2.2) with ESMTP id nA706xF5063988 for <tls@ietf.org>; Fri, 6 Nov 2009 17:06:59 -0700 (MST)
Received: from binky.Central.Sun.COM (localhost []) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3) with ESMTP id nA6Nlwoc010497; Fri, 6 Nov 2009 17:47:58 -0600 (CST)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3/Submit) id nA6NlwJb010496; Fri, 6 Nov 2009 17:47:58 -0600 (CST)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to Nicolas.Williams@sun.com using -f
Date: Fri, 6 Nov 2009 17:47:58 -0600
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Marsh Ray <marsh@extendedsubset.com>
Message-ID: <20091106234757.GN1105@Sun.COM>
References: <200911061959.nA6JxnnB001831@fs4113.wdf.sap.corp> <4AF497C5.5060801@REDHAT.COM> <4AF4A091.3070609@pobox.com> <4AF4B423.2000309@extendedsubset.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4AF4B423.2000309@extendedsubset.com>
User-Agent: Mutt/1.5.7i
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: [TLS] Simple way to drop re-negotiation in HTTP (Re: draft-rescorla-tls-renegotiate.txt)
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 07 Nov 2009 00:06:36 -0000

On Fri, Nov 06, 2009 at 05:41:23PM -0600, Marsh Ray wrote:
> Michael D'Errico wrote:
> > 
> > A server can still negotiate an SSLv3 connection as it does today.
> > It just can't re-negotiate that connection later.
> But on the server question:
> There is a large, but unknown, group of sites that really depend on
> being able to serve different requirements for client certs from the
> same IP.

The simplest way to drop re-negotiation in web servers is this (based on
an idea by Nelson Bolyard):

 - start two instances of the web server, one on an alternate port
   number, with the same contents

 - the primary instance will accept TLS user authentication, but will
   not require it

 - the instance on the alternate port will always require TLS user

 - neither instance accepts TLS re-negotiations

 - whenever the primary instance of the web server would request user
   authentication via TLS do this instead: re-direct to client to the
   same resource on the alternate port.

That's almost entirely automatic.  The only thing a webmaster must do is
pick a suitable port number for the instance that requires user

The redirects will add some round-tripage.  They can be avoided somewhat
by re-writing URLs in contents served to point to the right server

Ugly, yes, but automatable.