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

Nelson B Bolyard <nelson@bolyard.me> Wed, 02 December 2009 23:54 UTC

Return-Path: <nelson@bolyard.me>
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 DB0DD3A689A for <tls@core3.amsl.com>; Wed, 2 Dec 2009 15:54:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.462
X-Spam-Level:
X-Spam-Status: No, score=-2.462 tagged_above=-999 required=5 tests=[AWL=0.137, 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 vcO6Z4qVkQVX for <tls@core3.amsl.com>; Wed, 2 Dec 2009 15:54:06 -0800 (PST)
Received: from smtpauth16.prod.mesa1.secureserver.net (smtpauth16.prod.mesa1.secureserver.net [64.202.165.22]) by core3.amsl.com (Postfix) with SMTP id F405E3A67A2 for <tls@ietf.org>; Wed, 2 Dec 2009 15:54:05 -0800 (PST)
Received: (qmail 23047 invoked from network); 2 Dec 2009 23:53:51 -0000
Received: from unknown (24.5.142.42) by smtpauth16.prod.mesa1.secureserver.net (64.202.165.22) with ESMTP; 02 Dec 2009 23:53:51 -0000
Message-ID: <4B16FE0E.5010602@bolyard.me>
Date: Wed, 02 Dec 2009 15:53:50 -0800
From: Nelson B Bolyard <nelson@bolyard.me>
Organization: Network Security Services
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.9.1b1pre) Gecko/20081004 NOT Firefox/2.0 SeaMonkey/2.0a2pre
MIME-Version: 1.0
To: tls@ietf.org
References: <200912021419.nB2EJr13019589@fs4113.wdf.sap.corp> <357DD72C025D423B8C814E16@446E7922C82D299DB29D899F> <4B16EFBA.8060907@bolyard.me> <4B16F7A5.30803@extendedsubset.com>
In-Reply-To: <4B16F7A5.30803@extendedsubset.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
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: Wed, 02 Dec 2009 23:54:06 -0000

On 2009-12-02 15:26 PST, Marsh Ray wrote:
> Nelson B Bolyard wrote:
>>  ... for servers that have never been conformant with the standards that
>> require them to ignore unknown extensions, yes.  Another way to say this is:
>> non-conformant servers are a known interop problem for conformant clients.
>> That fact is manifestly obvious now, as we see attempts to retroactively
>> codify the behavior of those non-conformant servers as we try to fix this
>> problem.
> 
> 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.

> 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.  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.

> This is an urgent bug fix, not an upgrade, and as such most of us share
> the goal of causing absolutely minimal disruption to existing systems.
> 
> Sometimes even perfectly-conformant clients are asked to connect to TCP
> port numbers on which a few *gasp* imperfect servers are listening.
> Since this sometimes results in a hung connection, the condition can
> only be detected after a (relatively) long timeout.

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.

> 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.

>>> While I've seen evidence of bugs in TLS extension handling, and backwards 
>>> compatibility fallback code that's been present in browsers since 1999, 
>>> I've seen no evidence that extensions are an interoperability problem for 
>>> correct standards-compliant TLS implementations or that such fallback code 
>>> is necessary in operation today.
>> +1.
> 
> I agree in principle.
> 
> In this case though, it would be asking application code owners to rip
> out their fallback logic. Many of them would be willing to do it of
> course, but it would still fall short of our goal to engineer a fix
> which is deliverable as a patch only to the TLS library.

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.  They want to eliminate
the latency associated with 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."

Regards,
/Nelson