Re: [TLS] simplistic renego protection

Simon Josefsson <simon@josefsson.org> Wed, 18 November 2009 14:41 UTC

Return-Path: <simon@josefsson.org>
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 9AD713A67A6 for <tls@core3.amsl.com>; Wed, 18 Nov 2009 06:41:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.449
X-Spam-Level:
X-Spam-Status: No, score=-1.449 tagged_above=-999 required=5 tests=[AWL=-1.150, 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 Cc2x62t-Nrhu for <tls@core3.amsl.com>; Wed, 18 Nov 2009 06:41:37 -0800 (PST)
Received: from yxa-v.extundo.com (yxa-v.extundo.com [83.241.177.39]) by core3.amsl.com (Postfix) with ESMTP id 5D1F93A693C for <tls@ietf.org>; Wed, 18 Nov 2009 06:41:36 -0800 (PST)
Received: from mocca.josefsson.org (c80-216-24-211.bredband.comhem.se [80.216.24.211]) (authenticated bits=0) by yxa-v.extundo.com (8.14.3/8.14.3/Debian-5) with ESMTP id nAIEfVGF004973 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 18 Nov 2009 15:41:32 +0100
From: Simon Josefsson <simon@josefsson.org>
To: Pasi.Eronen@nokia.com
References: <200911161725.nAGHPWaA014181@fs4113.wdf.sap.corp> <089F31C221374096B0FE619F@446E7922C82D299DB29D899F> <4B022EBB.5030108@pobox.com> <808FD6E27AD4884E94820BC333B2DB774F30FE106F@NOK-EUMSG-01.mgdnok.nokia.com>
OpenPGP: id=B565716F; url=http://josefsson.org/key.txt
X-Hashcash: 1:22:091118:pasi.eronen@nokia.com::Gezh34nyFOFJDx1e:YZC
X-Hashcash: 1:22:091118:mike-list@pobox.com::rYznZAQA+TdMHgdK:57XW
X-Hashcash: 1:22:091118:tls@ietf.org::QXpvr0vxHxIPOA/K:Y2fr
Date: Wed, 18 Nov 2009 15:41:31 +0100
In-Reply-To: <808FD6E27AD4884E94820BC333B2DB774F30FE106F@NOK-EUMSG-01.mgdnok.nokia.com> (Pasi Eronen's message of "Wed, 18 Nov 2009 14:40:14 +0100")
Message-ID: <87skcbyjxg.fsf@mocca.josefsson.org>
User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-Virus-Scanned: clamav-milter 0.95.2 at yxa-v
X-Virus-Status: Clean
Cc: tls@ietf.org
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 14:41:38 -0000

<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