Re: [TLS] simplistic renego protection

Michael D'Errico <mike-list@pobox.com> Tue, 17 November 2009 05:02 UTC

Return-Path: <mike-list@pobox.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 932CA3A689C for <tls@core3.amsl.com>; Mon, 16 Nov 2009 21:02:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.428
X-Spam-Level:
X-Spam-Status: No, score=-2.428 tagged_above=-999 required=5 tests=[AWL=0.172, 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 jt5SU7D8F4Kr for <tls@core3.amsl.com>; Mon, 16 Nov 2009 21:02:53 -0800 (PST)
Received: from sasl.smtp.pobox.com (a-pb-sasl-quonix.pobox.com [208.72.237.25]) by core3.amsl.com (Postfix) with ESMTP id 9F5423A63C9 for <tls@ietf.org>; Mon, 16 Nov 2009 21:02:53 -0800 (PST)
Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id F198D809B6 for <tls@ietf.org>; Tue, 17 Nov 2009 00:02:50 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=message-id :date:from:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; s=sasl; bh=3Yzlh5c/WqXa nsTYpLPfVZmnM30=; b=mQ47LZYtpTGWKxo2bCDmfG9U1fOLdbqzHtdGD2aKMeC5 7KTXcOPNZhtUTbLJ7c2hSgccDoTQ4kbLRRog8XU60bcXiLyEzzrVKF2xINqdRsMd 8N81rw3G6BJUVpBkI558vHfg2btMdswOIvOrTkes4hnMCYKZBa6tEu2n+awA8lY=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=message-id:date :from:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; q=dns; s=sasl; b=IAdAUA DEvVwRjDcxzKBFLkTYJg9KnCNsxq2B8CVslL6+JzCTD3MXSA9XzEKw3RznHWJWvD NcJFKj/iFSSCg/2m38vhxdx/HzeBCbkyjfEA2M0c7fmJWxP3/wKLKl2vdY0n7tKb wLjgGnGrIWjbXifWxCqVgJXNff1fbUm7ZTSVY=
Received: from a-pb-sasl-quonix. (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id EDADF809B5 for <tls@ietf.org>; Tue, 17 Nov 2009 00:02:50 -0500 (EST)
Received: from administrators-macbook-pro.local (unknown [24.234.114.35]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 7B664809B4 for <tls@ietf.org>; Tue, 17 Nov 2009 00:02:50 -0500 (EST)
Message-ID: <4B022EBB.5030108@pobox.com>
Date: Mon, 16 Nov 2009 21:03:55 -0800
From: Michael D'Errico <mike-list@pobox.com>
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: tls@ietf.org
References: <200911161725.nAGHPWaA014181@fs4113.wdf.sap.corp> <089F31C221374096B0FE619F@446E7922C82D299DB29D899F>
In-Reply-To: <089F31C221374096B0FE619F@446E7922C82D299DB29D899F>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Pobox-Relay-ID: 74D26F3C-D336-11DE-A5BA-9F3FEE7EF46B-38729857!a-pb-sasl-quonix.pobox.com
Subject: Re: [TLS] simplistic renego protection
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, 17 Nov 2009 05:02:54 -0000

> If you want your alternative proposal to be considered, submit an 
> Internet draft and get some running code and feedback from 
> implementations showing your proposal would deploy protection to more 
> users than draft-rescorla-tls-renegotiation-00.  Then you may sway 
> people to your viewpoint.

Here is how draft-rescorla-tls-renegotiation-00 fails to protect the
most people:

   - there are so many interoperability problems with TLS extensions
     that even the author of the draft suggests that a "lenient"[*]
     client not send the extension on its initial connection

   - there will be a transition period where some servers absolutely
     need to continue allowing unpatched clients to perform the current
     vulnerable renegotiation.

   - a lenient client's handshake without the RI extension looks just
     like an unpatched client that these unfortunate servers need to
     continue supporting

   - a man-in-the-middle can take advantage of these three points to
     victimize a patched client talking to a patched server!

Just today many of us have converged on an alternate solution that does
not have this serious problem.  Instead of using extensions with all
the myriad problems, the only bits-on-the-wire change is to include a
single special cipher suite that signals to the server that the client
wishes to use a new calculation of the Finished messages that includes
the verify_data from the previous handshake.  I suggested that an alert
message could be used for the server to acknowledge back to the client.

This uses only features that are present in SSLv3, so it is much more
likely to be implemented quickly and correctly, and it does not require
implementations to add any code for extension processing if they don't
already support extensions.  It also protects the lenient client and
unfortunate servers above since there is no reason not to include the
magic cipher suite in ALL handshakes.

Here is a pointer to a summary of the proposal:

   http://www.ietf.org/mail-archive/web/tls/current/msg04393.html

I am not a spec. writer, so someone else should write it up.  If it is
adopted I will implement it in my test server in short order for anyone
to test against.

Mike


[*] a lenient client is one that would connect to any server regardless
of whether it is patched or not.  Since there is a not-insignificant
chance that a server will barf on the use of extensions, and the lenient
client wouldn't abort the handshake even if the extension is not
returned by the server, it is less painful to just do what's always
been done.