Re: [TLS] Comments on draft-rescorla-tls-renegotiation-01.txt

Nicolas Williams <Nicolas.Williams@sun.com> Wed, 25 November 2009 00:14 UTC

Return-Path: <Nicolas.Williams@sun.com>
X-Original-To: tls@core3.amsl.com
Delivered-To: tls@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 31F243A67F7 for <tls@core3.amsl.com>; Tue, 24 Nov 2009 16:14:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.825
X-Spam-Level:
X-Spam-Status: No, score=-5.825 tagged_above=-999 required=5 tests=[AWL=0.221, BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, RCVD_IN_DNSWL_MED=-4]
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 swhmwwlDPNJO for <tls@core3.amsl.com>; Tue, 24 Nov 2009 16:14:39 -0800 (PST)
Received: from sca-ea-mail-3.sun.com (sca-ea-mail-3.Sun.COM [192.18.43.21]) by core3.amsl.com (Postfix) with ESMTP id 354A13A6825 for <tls@ietf.org>; Tue, 24 Nov 2009 16:14:39 -0800 (PST)
Received: from dm-central-01.central.sun.com ([129.147.62.4]) by sca-ea-mail-3.sun.com (8.13.6+Sun/8.12.9) with ESMTP id nAP0EQGw002633 for <tls@ietf.org>; Wed, 25 Nov 2009 00:14:26 GMT
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM [129.153.128.104]) by dm-central-01.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL, v2.2) with ESMTP id nAP0EQ09005077 for <tls@ietf.org>; Tue, 24 Nov 2009 17:14:26 -0700 (MST)
Received: from binky.Central.Sun.COM (localhost [127.0.0.1]) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3) with ESMTP id nAONtG1A005031; Tue, 24 Nov 2009 17:55:16 -0600 (CST)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3/Submit) id nAONtGFK005030; Tue, 24 Nov 2009 17:55:16 -0600 (CST)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to Nicolas.Williams@sun.com using -f
Date: Tue, 24 Nov 2009 17:55:16 -0600
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Kyle Hamilton <aerowolf@gmail.com>
Message-ID: <20091124235516.GB773@Sun.COM>
References: <6b9359640911241522q6e31633bp3fd48bc2922c0cdf@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <6b9359640911241522q6e31633bp3fd48bc2922c0cdf@mail.gmail.com>
User-Agent: Mutt/1.5.7i
Cc: tls@ietf.org
Subject: Re: [TLS] Comments on draft-rescorla-tls-renegotiation-01.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: Wed, 25 Nov 2009 00:14:40 -0000

On Tue, Nov 24, 2009 at 03:22:57PM -0800, Kyle Hamilton wrote:
> This is absolutely essential.  TLS extensions exist, but SSL 3 is
> still commonly used.  There's no reason why SSL 3 shouldn't benefit
> from anything that happens after-the-fact, even though it was never an
> actual IETF protocol.

There is no fixing re-negotiation without protocol changes.

As far as SSLv3 goes the only real issue is: how hard are protocol
changes to implement?  (And that's assuming that there are SSLv3
implementors who will bother patching, as opposed to telling their
customers to just upgrade.)

> The only issue I see is... we've got an issue in signalling back to
> the client that it knows how to do the updated handshake.  Would a
> slightly modified HelloRequest do it?

For initial negotiations:

 - The C->S signal has to be a client hello extension.

 - The S->C signal can be either or both of a server hello extension
   and/or a server Finished message verify_data computation change.

   (Note that either way you can fallback on unsafe behavior, if you
   like.)

We do need signalling in both directions during the initial
negotiations.

For re-negotiations:

 - No signal is needed -- just modify the client and server Finished
   message verify_data computation to include a channel binding.

    - The RI proposal does this via hello extensions carrying parts of
      the channel binding, which indirectly gets them into the Finished
      message verify_data computation.

      The advantage to the RI approach is that if you have a TLS 1.1+
      stack then this change just fits the existing extensibility model
      that the stack was written for.

      The disadvantages to the RI approach are: it doesn't fit as well
      for pre-TLS 1.1 implementations, and, more importantly, it
      requires that the peers check the hello extension data sent.
      Whereas just adding the data to the verify_data computation
      without actually sending doesn't require any such checking.

Nico
--