Re: [TLS] client and server verify_data in draft-rescorla-tls-renegotiate.txt

Nicolas Williams <Nicolas.Williams@sun.com> Fri, 13 November 2009 20:41 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 A47EC3A67C0 for <tls@core3.amsl.com>; Fri, 13 Nov 2009 12:41:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.02
X-Spam-Level:
X-Spam-Status: No, score=-6.02 tagged_above=-999 required=5 tests=[AWL=0.026, 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 Qno7uCXniDmB for <tls@core3.amsl.com>; Fri, 13 Nov 2009 12:41:55 -0800 (PST)
Received: from brmea-mail-4.sun.com (brmea-mail-4.Sun.COM [192.18.98.36]) by core3.amsl.com (Postfix) with ESMTP id A20EA3A6783 for <tls@ietf.org>; Fri, 13 Nov 2009 12:41:55 -0800 (PST)
Received: from dm-central-01.central.sun.com ([129.147.62.4]) by brmea-mail-4.sun.com (8.13.6+Sun/8.12.9) with ESMTP id nADKgOpO015228 for <tls@ietf.org>; Fri, 13 Nov 2009 20:42:24 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 nADKgONS021091 for <tls@ietf.org>; Fri, 13 Nov 2009 13:42:24 -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 nADKNHvD019438; Fri, 13 Nov 2009 14:23:17 -0600 (CST)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3/Submit) id nADKNGdl019437; Fri, 13 Nov 2009 14:23:16 -0600 (CST)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to Nicolas.Williams@sun.com using -f
Date: Fri, 13 Nov 2009 14:23:16 -0600
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Robert Dugal <rdugal@certicom.com>
Message-ID: <20091113202316.GZ1105@Sun.COM>
References: <7E1DF37F1F42AB4E877E492C308E6AC402430344@XCH57YKF.rim.net>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <7E1DF37F1F42AB4E877E492C308E6AC402430344@XCH57YKF.rim.net>
User-Agent: Mutt/1.5.7i
Cc: tls@ietf.org
Subject: Re: [TLS] client and server verify_data in 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: Fri, 13 Nov 2009 20:41:56 -0000

On Fri, Nov 13, 2009 at 02:28:53PM -0500, Robert Dugal wrote:
> A co-worker an I have been discussing the draft and have some concerns
> about sending client and server verify_data in the extension.
> 
> In the ClientHello, the client sends the verify_data from the client's
> previous Finish message as the renegotiated_connection data.
> 
> In the ServerHello, the server sends both the cient's verify_data and
> the server's verify_data.
> 
> This data is not normally sent in the clear and I am wondering if this
> will provide additional data that can be used to mount some other form
> of attack .

See:

draft-altman-tls-channel-bindings-07.txt

which addresses your concern.

> The only reason we are sending any data at all is to prove that the
> renegotiation is bound to a previous handshake, so why not bind it with
> some data that is on the wire and visible to everyone?

One of my counter-proposals, which I ask to be considered if the use of
extensions is problematic for interop reasons, is to add the outer/old
connection's client Finished message as one more input in the inner/new
connection's Finished message verify_data computation (see post to
tls@ietf.org with message-ID <20091113005419.GQ1105@Sun.COM>.

The rationale for that proposal is not that Finished message verify_data
is sensitive (it is not), but that the use of extensions may be harmful
to interop (and if that's not the case, then that proposal is to be
ignored).

> One possability is to use the client and server randoms as the
> renegotiated_connection data.  This data is sent as plaintext on the
> wire so it reveals nothing the attacker doesn't already know.

I explained why that doesn't work in a post with message-ID
<20091105171308.GY1105@Sun.COM> posted on Thu, 5 Nov 2009 11:13:08
-0600 (subject: Re: [TLS] TLS renegotiation issue).

> Another alternative could be to use the client's encrypted Finish
> message rather than the verify_data from Client's Finish message, and
> server's encrypted Finish message.

See:

draft-altman-tls-channel-bindings-07.txt

Nico
--