Re: [TLS] What would be the point of removing signalling in TLS 1.3?

David-Sarah Hopwood <david-sarah@jacaranda.org> Sat, 28 November 2009 03:50 UTC

Return-Path: <djhopwood@googlemail.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 242003A684E for <tls@core3.amsl.com>; Fri, 27 Nov 2009 19:50:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 RFSq-md+uwxq for <tls@core3.amsl.com>; Fri, 27 Nov 2009 19:50:37 -0800 (PST)
Received: from mail-ew0-f214.google.com (mail-ew0-f214.google.com [209.85.219.214]) by core3.amsl.com (Postfix) with ESMTP id E30AC3A672E for <tls@ietf.org>; Fri, 27 Nov 2009 19:50:36 -0800 (PST)
Received: by ewy6 with SMTP id 6so1184826ewy.29 for <tls@ietf.org>; Fri, 27 Nov 2009 19:50:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :x-enigmail-version:content-type; bh=5+fmhOA3jMd3qd/WA3voyFv47shZazYwi81N/5iSuX0=; b=ZLwLDNVVu8VRVYOHhxrClfaKpDFe0m8RjmU1EMVXA9UA2De27cxy8/2CUvAvdk3sNO YZq8lcGwBAmyT0eYPro7ZOowgfaKhdtwL/oDJSc2z5qruaDGPTiSjNcc32JW3d8UE/aU AKsL4PTPOY5T5mvtJA/4Y7W1dYbOb4twcLF9Q=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:subject :references:in-reply-to:x-enigmail-version:content-type; b=uVGMN4kLbOjPMl3zo1QPygl4iikBiVYF/BFsvJ3CPouBw6qwTzK5SChpn+umrEAgpK 81a2v3tAY0LteddZmJr3DGWwvo5jEL7mkAXMgO0jBiRB7tBg376fRsqtmEbFtnItFNgG +1Z3mFN7o2rzoFwyF0SFrNgcpT/HEV8RenTx8=
Received: by 10.216.91.84 with SMTP id g62mr587455wef.216.1259380227608; Fri, 27 Nov 2009 19:50:27 -0800 (PST)
Received: from ?192.168.0.2? (5adcc5d2.bb.sky.com [90.220.197.210]) by mx.google.com with ESMTPS id t2sm5248083gve.24.2009.11.27.19.50.25 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 27 Nov 2009 19:50:26 -0800 (PST)
Sender: David-Sarah Hopwood <djhopwood@googlemail.com>
Message-ID: <4B109DDE.3040200@jacaranda.org>
Date: Sat, 28 Nov 2009 03:49:50 +0000
From: David-Sarah Hopwood <david-sarah@jacaranda.org>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.8.1.3) Gecko/20070326 Thunderbird/2.0.0.0 Mnenhy/0.7.5.666
MIME-Version: 1.0
To: tls@ietf.org
References: <C734A556.6B8A%stefan@aaa-sec.com>
In-Reply-To: <C734A556.6B8A%stefan@aaa-sec.com>
X-Enigmail-Version: 0.96.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="------------enig89149D38B779E53A639F334E"
Subject: Re: [TLS] What would be the point of removing signalling in TLS 1.3?
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, 28 Nov 2009 03:50:38 -0000

[top-posting fixed]

Stefan Santesson wrote:
> On 09-11-26 8:01 PM, "David-Sarah Hopwood" <david-sarah@jacaranda.org>
> wrote:
> 
>> Stefan Santesson wrote:
>>> Consequently, if we design an updated Finished calculation now, we can keep
>>> that in TLS 1.3 and just remove the signaling we now add for SSLv3 -> TLS
>>> 1.2.
>>
>> I really don't see any advantage in removing the signalling in TLS 1.3.
>> It doesn't simplify anything.
>>
>> For removing the signalling to work, we would have to specify in the
>> *current* fix that:
>>
>>  - sending a client version of {0x03, 0x04} or higher has the same
>>    meaning as sending the client->server signal.
>>
>>  - negotiating {0x03, 0x04} or higher has the same meaning as sending
>>    the server->client signal.
[...]
>
> If you fix the Finished message calculation, making it immune to the
> renegotiation attack, and making it the standard Finished calculation for
> 1.3.... Then why would you need to signal that you are using the standard
> Finished calculation?

Suppose that a client is "strict", i.e. only wants to connect to patched
servers. Since it doesn't know in advance that the server supports TLS 1.3,
then it must send the c->s signal in order to find out whether the server
is patched. If the c->s signal is not sent, then the s->c signal can't be
sent either, so the client wouldn't know whether the server was patched,
whenever TLS 1.2 or earlier is negotiated.

This is important because an initial handshake by a patched client can
correspond to a renegotiation at an unpatched server. So, it isn't
sufficient that the client uses the updated Finished computation for
renegotiations.

Sending a client version >= TLS 1.3 can be treated as implying the c->s
signal, and negotiating TLS 1.3 can be treated as implying the s->c signal,
but this won't eliminate any of the code that was handling signalling for
downrev versions. So this just adds code paths; it doesn't remove any.

Of course, it is possible that at some point in the fairly distant future,
TLS 1.3 will be the *minimum* version that a given implementation will
negotiate. At that point there would be a potential simplification -- but
it isn't at all clear that it outweighs the complication until then.
(Note: I have a "Buxton index" of about 20 years, and I still don't think
this eventual simplification is worthwhile.)

-- 
David-Sarah Hopwood  ⚥  http://davidsarah.livejournal.com