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

Marsh Ray <marsh@extendedsubset.com> Wed, 02 December 2009 17:20 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 B22403A6953; Wed, 2 Dec 2009 09:20:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.493
X-Spam-Level:
X-Spam-Status: No, score=-2.493 tagged_above=-999 required=5 tests=[AWL=0.106, 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 YFd-O3gEBAtI; Wed, 2 Dec 2009 09:20:03 -0800 (PST)
Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) by core3.amsl.com (Postfix) with ESMTP id 4728C3A67A5; Wed, 2 Dec 2009 09:20:02 -0800 (PST)
Received: from xs01.extendedsubset.com ([69.164.193.58]) by mho-02-ewr.mailhop.org with esmtpa (Exim 4.68) (envelope-from <marsh@extendedsubset.com>) id 1NFsro-000H2q-Tx; Wed, 02 Dec 2009 17:19:54 +0000
Received: from [127.0.0.1] (localhost [127.0.0.1]) by xs01.extendedsubset.com (Postfix) with ESMTP id 74902603C; Wed, 2 Dec 2009 17:19:50 +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: U2FsdGVkX193hkCVm4d8lP65PmLBtAdapBS0vRpWw/U=
Message-ID: <4B16A1B4.2050400@extendedsubset.com>
Date: Wed, 02 Dec 2009 11:19:48 -0600
From: Marsh Ray <marsh@extendedsubset.com>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: mrex@sap.com
References: <200912021419.nB2EJr13019589@fs4113.wdf.sap.corp>
In-Reply-To: <200912021419.nB2EJr13019589@fs4113.wdf.sap.corp>
X-Enigmail-Version: 0.96.0
OpenPGP: id=1E36DBF2
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Cc: Chris Newman <Chris.Newman@Sun.COM>, ietf@ietf.org, 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: Wed, 02 Dec 2009 17:20:04 -0000

Martin Rex wrote:
> Chris Newman wrote:
>> Evaluation relative to draft-mrex-tls-secure-renegotiation-03:
>>
>> Kudos to Martin Rex for producing such a good alternate proposal.  The 
>> introductory text up to and including section 4.1 is very good and would 
>> improve draft-ietf-tls-renegotiation.  While I would support a consensus to 
>> publish the mrex document as the solution, I presently prefer 
>> draft-ietf-tls-renegotiation-01 for four reasons:
>>
>> 1. Running code: multiple implementations and interop testing was
>>    performed on an earlier version of draft-ietf-tls-renegotiation.
> 
> Even EKR admitted that implementing the update is an insignificant
> amount of work.
> 
> Pushing this point, that there were interoperable implementations
> when this proposal was made in the IETF smells very much like
> a request for rubber stamping. 

My goal had been to present a usable solution along with the disclosure
of the vulnerability. When it comes to closing exploitable security
holes, a usable solution today is better than a perfect solution next
year. If that's rubber stamping to you, well sorry.

>> 2. Impact to core protocol handshake: The mrex proposal alters the 
>>    handshake to include data that is not exchanged in-protocol.
>>    If this impacts PKCS#11 hardware tokens or other SSL accelerators
>>    (an issue mentioned by Dr Stephen Henson on the TLS list on
>>    that could severely impact deployment.
> 
> Crypto hardware in general and PKCS#11 are not affected.  What I am
> changing is the plaintext input to a hash or hash-like function.

Agree.

> What might be affected is hardware implementations of SSL/TLS
> or hardware-support for SSL/TLS in TLS endpoints.  It might be
> a firmware rather than hardware issue there.
> 
> So far, I haven't seen any vendor/implementor that is facing such
> difficulties raising such concerns.
> 
> Which could mean two things:
>  1. there is no problem
>  2. those vendors/implementors have not looked at / evaluated
>     the current proposals.
> 
> (1) would make it a non-issue and (2) would indicate than a decision
> in the IETF is _premature_, we would have to ask some of those
> vendors/implementers for feedback before making a decision.

I am a bit disappointed that we have not had better participation from
the vendors, particularly hardware. My suspicion is that they're
reticent to discuss what they're up against either publicly or privately.

We can't delay the solution for the large percentage of affected
deployments that are represented by vendors who did choose to
participate in the discussion for the sake of those who did not.

>> 4. The mrex proposal requires use of TLS_RENEGO_PROTECTION_REQUEST in some 
>>    circumstances.  That approach is untested in the field and I have
>>    concerns it will negatively impact middleboxes.
> 
> Huh?  That sounds extremely unbelievable.

I suspect that some inspecting firewall or IDS box somewhere is going to
take issue with the new cipher suite value and have to be reconfigured.
I also believe that it's a minimal concern and it's the least-breaking
of all the possible signaling methods.

> Do any of the browser vendors cut down on ciphersuites in their
> current reconnect fallbacks -- and remove ciphersuites like
> those with AES?
> 
> A quick glance indicates that Firefox 3.0.15 happily sends
> a list of 18 ciphersuites, including Camellia, in an SSLv2 ClientHello
> on reconnect fallback.

My experiments were showing that some clients would advertise a reduced
list of cipher suites in the renegotiation hello.

>>    As draft-ietf-tls-renegotiation allows use of either the cipher suite
>>    value or the extension for C->S signaling, that mitigates the concern -- 
>>    the field can choose the mechanism that works best.
> 
> I consider this a defect in draft-ietf-tls-renegotiation-01.
> There should be exactly **ONE** signaling mechanism for the initial
> ClientHello on a connection so that extensions-tolerant but
> extensions-free Servers will not be force to wade through lists
> of extensions sent by clients.

It's a three-to-five line 'for' loop.

> The existing fallbacks or conservative approaches give you a hint
> where you may expect interop problems.  TLS extensions are a known
> interop problem.

Those servers need to be patched or you wouldn't want to trust
connecting to them anyway. Client implementations can use the MCSV
(magic cipher suite value) on the initial hello if they prefer.

>> My take on some controversial issues:
>>
>> * There may not be a sufficient number of "extension intolerant" SSL/TLS 
>> servers in operation to justify the added complexity of 
>> TLS_RENEGO_PROTECTION_REQUEST.  However, I do not object to inclusion as 
>> it's possibly helpful for some alleged extension intolerant servers 
>> compliant with early drafts of SSLv3 and it helped move closer to WG 
>> consensus.
> 
> That cipher suite value is definitely not added complexity.
> On the contrary, it is significantly reduced complexity.

Well, there are now three ways to signal in an initial client hello. The
extension, the MCSV, or both.

Some implementations will find the MCSV simpler, some the extension.

> We are not discussing about a new optional feature here, but instead
> about something that should be patched into as many old clients and
> servers as possible.  And a number of clients MUST remain interoperable
> with servers that will _not_ be patched.  Therefore requiring anything
> that will break interop in the productive installed base is completely
> inacceptable when it can be avoided (which it easily can be).

+1

- Marsh