Re: [TLS] simplistic renego protection
Michael D'Errico <mike-list@pobox.com> Wed, 18 November 2009 16:32 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 107E83A6981 for <tls@core3.amsl.com>; Wed, 18 Nov 2009 08:32:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.328
X-Spam-Level:
X-Spam-Status: No, score=-1.328 tagged_above=-999 required=5 tests=[AWL=-1.029, BAYES_00=-2.599, MANGLED_TOOL=2.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 1h1vpH3jnRWq for <tls@core3.amsl.com>; Wed, 18 Nov 2009 08:32:10 -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 B8D523A6953 for <tls@ietf.org>; Wed, 18 Nov 2009 08:32:10 -0800 (PST)
Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id E473F80F64 for <tls@ietf.org>; Wed, 18 Nov 2009 11:32:07 -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=Nu0QrszBLEif MvHBM0hFBm8eFBg=; b=vM/RyVF/5QCA5qEd/JW5J5geLUsblRRByAaEZebZrMpz MB5JTQvPhDMi9oqV89reFNSQGXqFUq+8MvLTRtDT3MtyccSdi1pVQ/FtZ4kxt8NG 4LPmHLxELgqRKq+UvvLt6HEclVkZ3Up8NDiHTWfZhv/fFT/hLA81Hyuyjzuhjmk=
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=IRMK8f Ti9cQp0JG+4sS8BuVoL+9Gtesdb3Hd4xv/vGqtrWSUktPZ4/1nYhXTD+dksumUep +kyIlfb6bop+UGeOZANX8JhVBT4bJdunsOhZddIQDehWumJdfDubMsvaZ3Gyd9bk H5ORE7tawGeCipr+BgVhtuVkQFOxUyM5i+mIY=
Received: from a-pb-sasl-quonix. (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id D3FF380F63 for <tls@ietf.org>; Wed, 18 Nov 2009 11:32:07 -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 323D280F62 for <tls@ietf.org>; Wed, 18 Nov 2009 11:32:07 -0500 (EST)
Message-ID: <4B0421D0.50509@pobox.com>
Date: Wed, 18 Nov 2009 08:33:20 -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: <C729D3AF.668F%stefan@aaa-sec.com>
In-Reply-To: <C729D3AF.668F%stefan@aaa-sec.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Pobox-Relay-ID: E9DE81D8-D45F-11DE-812E-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: Wed, 18 Nov 2009 16:32:12 -0000
Stefan Santesson wrote: > I started off thinking that the simplistic approach is too much of a quick > and dirty fix to be considered seriously, but I'm slowly beginning to like > it more and more. > > I see some compelling arguments. > > 1) Is what has been stated before about the problems with extensions. If > there are a considerable amount of implementations where adding extension > support introduce significant problems, an extension less approach has > merit. Agreed. > 2) Is that we seem to agree that TLS 1.3 will have an updated finished > calculation anyway, not requiring the use of extensions. If we define that > "future" finished calculation now and use it in the simplistic approach, > then that would actually be closer to future versions of TLS, compared with > an extension approach. This is one of the reasons I so dislike RI. The alternative presented modifies the Finished calculation in a way that is forward-compatible; it can be the default for future TLS versions, and that is the way it is implemented in my code now. If people don't like adding the previous verify_data to the stream of handshake messages so it gets hashed along with the rest, then please suggest a better way. One note: at first I didn't like the idea of inserting the verify_data immediately after the ServerHello, but when I implemented it, that was actually the most natural place to put it. > If we consider the magic cipher suite signaling anyway in the extension > approach. In that case, what is the added value of using extensions over > just invoking the "future" and fixed finished calculation? None as far as I can tell. Mike > Is it necessary for the server to signal to the client that is supports the > upgraded finished calculation? It seems to me that an upgraded client could > calculate it both ways and detect the server's capability based on which > finished message the server sends. It may not be not optimal, but seems > feasible. > > > /Stefan > > > > On 09-11-18 3:41 PM, "Simon Josefsson" <simon@josefsson.org> wrote: > >> <Pasi.Eronen@nokia.com> writes: >> >>> It seems many of the drawbacks of tls-renegotiation-00 you mention >>> are in fact addressed (to some degree) in version -01? (mainly >>> by including the "magic cipher suite") Compared to -01, what do >>> you think the main differences are? >> As far as I can tell, -01 does not fix (*) the problem for >> clients/servers that uses >> >> a) a SSLv3 implementation, or >> b) a original TLSv1 implementation (e.g., RFC 2246), or >> c) a TLSv1.1 implementation without support for extensions. >> >> Providing a solution only for the latest version of TLS is akin to ask >> people to upgrade to the latest release of a particular software rather >> than provide a simple fix to the existing deployed software. >> >> I'm hoping Martin will submit a draft on his ideas soon so we can >> compare the two. >> >> (*) Where "fix" means that TLS renegotiation works and is secure. >> >> /Simon >> >>> Best regards, >>> Pasi >>> (not wearing any hats) >>> >>>> -----Original Message----- >>>> From: tls-bounces@ietf.org [mailto:tls-bounces@ietf.org] On Behalf Of >>>> ext Michael D'Errico >>>> Sent: 17 November, 2009 07:04 >>>> To: tls@ietf.org >>>> Subject: Re: [TLS] simplistic renego protection >>>> >>>>> 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. >>>> _______________________________________________ >>>> TLS mailing list >>>> TLS@ietf.org >>>> https://www.ietf.org/mailman/listinfo/tls >> _______________________________________________ >> TLS mailing list >> TLS@ietf.org >> https://www.ietf.org/mailman/listinfo/tls > > > _______________________________________________ > TLS mailing list > TLS@ietf.org > https://www.ietf.org/mailman/listinfo/tls >
- Re: [TLS] simplistic renego protection Chris Newman
- [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Joseph Salowey (jsalowey)
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Marsh Ray
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Blumenthal, Uri - 0662 - MITLL
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Marsh Ray
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Marsh Ray
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Nelson B Bolyard
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection peter.robinson
- Re: [TLS] simplistic renego protection Yngve N. Pettersen (Developer Opera Software ASA)
- Re: [TLS] simplistic renego protection Stephen Farrell
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Nasko Oskov
- Re: [TLS] simplistic renego protection Blumenthal, Uri - 0662 - MITLL
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Yair Elharrar
- Re: [TLS] simplistic renego protection Steve Dispensa
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Marsh Ray
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Robert Dugal
- Re: [TLS] simplistic renego protection Pasi.Eronen
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Simon Josefsson
- Re: [TLS] simplistic renego protection Stefan Santesson
- Re: [TLS] simplistic renego protection Stefan Santesson
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Eric Rescorla
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Marsh Ray
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection Marsh Ray
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection Nasko Oskov
- Re: [TLS] simplistic renego protection Nelson B Bolyard
- Re: [TLS] simplistic renego protection Nelson B Bolyard
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Michael D'Errico
- Re: [TLS] simplistic renego protection Nelson B Bolyard
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- [TLS] Definition of "lenient server" David-Sarah Hopwood
- Re: [TLS] simplistic renego protection Stefan Santesson
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection Stefan Santesson
- Re: [TLS] simplistic renego protection Ben Laurie
- Re: [TLS] simplistic renego protection Stefan Santesson
- Re: [TLS] simplistic renego protection Bill Frantz
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection Stefan Santesson
- Re: [TLS] simplistic renego protection Marsh Ray
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection Ben Laurie
- Re: [TLS] simplistic renego protection David-Sarah Hopwood
- Re: [TLS] simplistic renego protection Ben Laurie
- Re: [TLS] simplistic renego protection Pasi.Eronen
- Re: [TLS] simplistic renego protection Martin Rex
- Re: [TLS] simplistic renego protection Pasi.Eronen
- Re: [TLS] simplistic renego protection Yngve Nysaeter Pettersen
- Re: [TLS] simplistic renego protection Peter Gutmann
- Re: [TLS] simplistic renego protection Kyle Hamilton