Re: [TLS] Single round trip abbreviated handshake

"Brian Smith" <brian@briansmith.org> Tue, 09 February 2010 19:46 UTC

Return-Path: <brian@briansmith.org>
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 CC68928C1CA for <tls@core3.amsl.com>; Tue, 9 Feb 2010 11:46:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.449
X-Spam-Level:
X-Spam-Status: No, score=-2.449 tagged_above=-999 required=5 tests=[AWL=-0.150, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3]
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 cu12CFTXZRg1 for <tls@core3.amsl.com>; Tue, 9 Feb 2010 11:46:50 -0800 (PST)
Received: from mxout-08.mxes.net (mxout-08.mxes.net [216.86.168.183]) by core3.amsl.com (Postfix) with ESMTP id 308B73A67F6 for <tls@ietf.org>; Tue, 9 Feb 2010 11:46:40 -0800 (PST)
Received: from T60 (unknown [70.132.143.82]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id B75F1509DA; Tue, 9 Feb 2010 14:47:40 -0500 (EST)
From: Brian Smith <brian@briansmith.org>
To: 'Ravi Ganesan' <ravi@findravi.com>, 'Michael Tüxen' <Michael.Tuexen@lurchi.franken.de>
References: <3561bdcc1002022012s2867aac2vaa154013b62e8489@mail.gmail.com> <000601caa694$cf3e2ed0$6dba8c70$@org> <3561bdcc1002051905r24d9dadbi7d815d0d1dc4a19c@mail.gmail.com> <0d6201caa9af$d2217760$76646620$@briansmith.org> <20100209163937.D0DA76E7DF9@kilo.networkresonance.com> <B2A5E458-6AFC-4D5E-804C-FC719F39B8B3@lurchi.franken.de> <3561bdcc1002091035h4c92965ds497a8a4466caa14e@mail.gmail.com>
In-Reply-To: <3561bdcc1002091035h4c92965ds497a8a4466caa14e@mail.gmail.com>
Date: Tue, 09 Feb 2010 13:47:41 -0800
Message-ID: <002e01caa9d1$84a5d540$8df17fc0$@briansmith.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQK3EY0bo4Ss8IReb7cv2eP2noLxrAJdZBT7Ac9wtWMCYeTZcAFcZf6sAopFUPIBwQbU1QHSkoHs
Content-Language: en-us
Cc: tls@ietf.org
Subject: Re: [TLS] Single round trip abbreviated handshake
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: Tue, 09 Feb 2010 19:46:50 -0000

Michael Tüxen wrote:
> ... not if you run DTLS over a connection oriented transport
> protocol like DCCP or SCTP. For the new transport connection
> you need to establish a new DTLS connection.

That's true. But, MashSSL is TLS tunneled through HTTP over TCP, so it has a lot of flexibility in how it defines a "HTTP over TCP transport connection." MashSSL already lets that transport connection span multiple TCP connections (AFAICT).

> Michael Tüxen wrote:
> > I assume that he just "continues to use an existing DTLS connect", or
> > am I wrong?

You both understand the idea.

Ravi Ganesan wrote:
> I do not know about DTLS, but in regular TLS one cannot say open a fresh socket,
> send a client_hello with an existing session ID, do a change cipher_spec and
> start sending data using keys from old session.
> You really need to go through the abbreviated handshake dance for a number of
> reasons, including fresh keys to keep cut and paste attacks at bay, etc. It would
> be very ironic if we ended up with holes that were fixed in the SSL 2.0 to 3.0
> transition. (See section 3.0 and 4.0 of this paper
> http://www.schneier.com/paper-ssl.pdf).

DTLS and even regular TLS wouldn’t work if that was true. I think it will be help to look at how DTLS works--in particular, how it distinguishes the start of a new DTLS handshake from a continuation of an existing DTLS connection.

Unfortunately, I can't really devote enough time to this topic to explain everything clearly. Maybe in a few weeks I will have time to work on it some more.

Regards,
Brian