Re: [TLS] Last Call: draft-ietf-tls-renegotiation (Transport Layer

Marsh Ray <marsh@extendedsubset.com> Thu, 03 December 2009 01:19 UTC

Return-Path: <marsh@extendedsubset.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 703123A67A2 for <tls@core3.amsl.com>; Wed, 2 Dec 2009 17:19:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.504
X-Spam-Level:
X-Spam-Status: No, score=-2.504 tagged_above=-999 required=5 tests=[AWL=0.095, 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 o-SmpOFogSS2 for <tls@core3.amsl.com>; Wed, 2 Dec 2009 17:19:21 -0800 (PST)
Received: from mho-01-ewr.mailhop.org (mho-01-ewr.mailhop.org [204.13.248.71]) by core3.amsl.com (Postfix) with ESMTP id 831F53A6358 for <tls@ietf.org>; Wed, 2 Dec 2009 17:19:17 -0800 (PST)
Received: from xs01.extendedsubset.com ([69.164.193.58]) by mho-01-ewr.mailhop.org with esmtpa (Exim 4.68) (envelope-from <marsh@extendedsubset.com>) id 1NG0Ld-000ACE-52; Thu, 03 Dec 2009 01:19:09 +0000
Received: from [127.0.0.1] (localhost [127.0.0.1]) by xs01.extendedsubset.com (Postfix) with ESMTP id 14868603C; Thu, 3 Dec 2009 01:19:08 +0000 (UTC)
X-Mail-Handler: MailHop Outbound by DynDNS
X-Originating-IP: 69.164.193.58
X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/mailhop/outbound_abuse.html for abuse reporting information)
X-MHO-User: U2FsdGVkX19pBXCATguu8t4wbjzsq8MJ5aei92oy+HI=
Message-ID: <4B171209.2020307@extendedsubset.com>
Date: Wed, 02 Dec 2009 19:19:05 -0600
From: Marsh Ray <marsh@extendedsubset.com>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: Nelson B Bolyard <nelson@bolyard.me>
References: <200912021419.nB2EJr13019589@fs4113.wdf.sap.corp> <357DD72C025D423B8C814E16@446E7922C82D299DB29D899F> <4B16EFBA.8060907@bolyard.me> <4B16F7A5.30803@extendedsubset.com> <4B16FE0E.5010602@bolyard.me>
In-Reply-To: <4B16FE0E.5010602@bolyard.me>
X-Enigmail-Version: 0.96.0
OpenPGP: id=1E36DBF2
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Cc: tls@ietf.org
Subject: Re: [TLS] Last Call: draft-ietf-tls-renegotiation (Transport Layer
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: Thu, 03 Dec 2009 01:19:22 -0000

Nelson B Bolyard wrote:
> On 2009-12-02 15:26 PST, Marsh Ray wrote:
>> Hold on now, is there any reasonable interpretation of
>> draft-ietf-tls-renegotiation which "codifies the behavior of those
>> non-conformant servers"?
> 
> Any proposal which would have us send the "Magic Cipher Suite" *INSTEAD OF*
> (rather than in addition to) the RI extension is such an attempt.
> Such proposals now exist.

Hmm, I hadn't thought of it that way.

>> TLS implementations have every right under current specs to send and
>> receive hello extensions. Higher-level protocols have the right even to
>> require them.
> 
> And some server vendors believe they have every right to reject client
> hellos that include any hello extensions.

Personally, I believe I have the right to write a server app that
rejects any kind of client I want. I wouldn't claim that such a server
follows the spirit of the TLS RFCs though.

Looking through RFCs 3546, 4366 though, I can't find specific wording
which requires servers to ignore extensions on the client hello that
they don't support.

RFC 5246 says "the rules specified in [TLSEXT] require servers to ignore
extensions they do not understand."

But..
>    [TLSEXT]   Eastlake, D., 3rd, "Transport Layer Security (TLS)
>               Extensions:  Extension Definitions", Work in Progress,
>               February 2008.


> They now vociferously propose
> that we design the solution to the renegotiation vulnerability so that,
> even after they have patched their servers for this vulnerability, their
> servers can CONTINUE to reject client hellos with hello extensions.
> That's the issue here.

I think the goal of fixing this vulnerability (which will require
patching every client and server in the world) is already ambitious
enough that it doesn't need to take on other causes. It is also
worthwhile enough that it should specifically avoid taking on any other
causes because to do so is to risk the primary goal.

> Those servers MUST be patched now.  It's a simple thing to patch them to
> be tolerant of (that is, to IGNORE) client hellos.  But they steadfastly
> refuse. Instead they demand that we retroactively modify the definition
> of TLS to explicitly recognize and legitimize this extension-intolerant
> behavior.

Well that's quite silly of them. I can't imagine why anyone would want
to continue shipping a product which doesn't interoperate well when the
fix is so easy. (Well, I can imagine some reasons but they're all bad ones.)

>> The recognition of this reality, done purely in consideration of the end
>> users of this technology, does not in any way "codify the behavior of
>> those servers".
> 
> If it effectively requires that new client products MUST implement fallback
> to be interoperable with conformant servers, then it most certainly does
> codify that behavior.

I don't think it requires new clients to implement fallback. It just
provides for clients that choose fall back or want to to be tolerant of
extension-intolerant servers.

Just because the fix doesn't actively break something that previously
worked outside the spec doesn't mean that the spec endorses it.

> I think you've got it backwards with respect to who is asking whom about
> the ripping out.  The browsers WANT to rip it out.

There's more to TLS than just browsers.

The bigger problem is that nobody knows has any idea many apps would
have to be changed if we did not provide a solution for SSLv3. Nobody
knows how many connections would fail if the fix required an extension
on the initial hello.

> They want to eliminate the latency associated with the fallback.

At some point, the gain in market share from the reduced latency will be
greater than the loss due to removing the fallback.

> The attempt in some present
> proposals to permanently legitimize those old servers that never ignored
> unrecognized extensions tells the browsers that they can never rip it out.
> 
> It is doubly ironic that the proponents of this approach are using the
> existent of fall-back and the justification for their proposal.  The
> argument seems to be "We once forced browsers to fall back, and the browsers
> have never removed that feature.  Now we claim the on-going
> existence of that fall back amounts to on-going demand for the behavior
> of our old servers.  So, the standards MUST now explicitly provide for
> our servers."

That is a bit ironic.

Sounds to me like there probably is some customer demand for the
fallback logic, or you would have ripped it out of your browser code
already. Maybe that demand dried up years ago and the logic is leftover
only because no one has the guts to remove it. Probably only by actually
disabling it and seeing who complains can we find out how great that
demand is.

This bug fix is not the place for that experiment.

Or perhaps you were hoping that this bug would be an external event
which forced all competing browsers to remove it, that way you wouldn't
have to be the only one to stick your neck out for this
strict-compliance principle?

This bug fix is not the time for that either.

Good news though. I've talked to developers on all the major browser
vendors now, and you all feel the same way about the fallback logic!

Quit waiting for some cataclysmic opportunity and just do it.

- Marsh