Re: [TLS] Last Call: draft-ietf-tls-renegotiation (Transport Layer Security (TLS) Renegotiation Indication Extension) to Proposed Standard

Marsh Ray <marsh@extendedsubset.com> Mon, 30 November 2009 21:53 UTC

Return-Path: <marsh@extendedsubset.com>
X-Original-To: ietf@core3.amsl.com
Delivered-To: ietf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C63DB3A6931; Mon, 30 Nov 2009 13:53:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.482
X-Spam-Level:
X-Spam-Status: No, score=-2.482 tagged_above=-999 required=5 tests=[AWL=0.117, 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 WbMZZXs81tAN; Mon, 30 Nov 2009 13:53:06 -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 C94E83A692C; Mon, 30 Nov 2009 13:53:06 -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 1NFEB1-0000C9-Ch; Mon, 30 Nov 2009 21:52:59 +0000
Received: from [127.0.0.1] (localhost [127.0.0.1]) by xs01.extendedsubset.com (Postfix) with ESMTP id 00EDF603C; Mon, 30 Nov 2009 21:52:56 +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: U2FsdGVkX1+1LfXoQxr962VkM3yyCcnDcGlqoK7gAk8=
Message-ID: <4B143EAC.9050301@extendedsubset.com>
Date: Mon, 30 Nov 2009 15:52:44 -0600
From: Marsh Ray <marsh@extendedsubset.com>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: Bodo Moeller <bmoeller@acm.org>
Subject: Re: [TLS] Last Call: draft-ietf-tls-renegotiation (Transport Layer Security (TLS) Renegotiation Indication Extension) to Proposed Standard
References: <20091130153734.D44C63A6AA9@core3.amsl.com> <F9E79A35-0360-401E-8D45-80589BFCDC98@acm.org>
In-Reply-To: <F9E79A35-0360-401E-8D45-80589BFCDC98@acm.org>
X-Enigmail-Version: 0.96.0
OpenPGP: id=1E36DBF2
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-Mailman-Approved-At: Tue, 01 Dec 2009 08:31:44 -0800
Cc: ietf@ietf.org, "tls@ietf.org Working Group" <tls@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Nov 2009 21:53:07 -0000

Bodo Moeller wrote:
> 
> There is no good reason for this asymmetry of having just the client's
> verify_data in the client's message, but both the client's and the
> server's verify_data in the server's message -- the latter is pure
> overhead, both in the specification and in the on-the-wire protocol.  To
> remove the overhead from both, the second sentence should be saying,
> "For ServerHellos which are renegotiating, this field contains the
> verify_data sent by the server on the immediately previous handshake"
> (according changes to dependent parts of the specification then should
> be made).

Good point.

> For earlier Internet Drafts in the series preceding
> draft-ietf-tls-renegotiation-01.txt
> (draft-rescorla-tls-renegotiation.00.txt, etc.), a reason to keep the
> current text would have been to maintain compatibility with early
> implementations of those Internet Drafts.  However,
> draft-ietf-tls-renegotiation-01 has a newer
> TLS_RENEGO_PROTECTION_REQUEST cipher suite and thus breaks compatibility
> with those early implementations anyway.
> 
> (This means that now, changing the ServerHello extension definition as
> suggested above gives the beneficial side-effect of exposing premature
> implementations, besides merely avoiding overhead.  Those incomplete
> implementations will be more obviously incompatible because they'd still
> be using the protocol variant with overhead, instead of just differing
> subtly in the behavior if faced with TLS_RENEGO_PROTECTION_REQUEST.)

I don't think any of those implementations have shipped, and I don't
think anyone has advertised that code as anything but experimental.

It might not hurt for the IANA to assign a different number to the
extension than what was used for testing.

> 2. The Security Considerations section of
> draft-ietf-tls-renegotiation-01.txt (section 7) includes language that
> unnecessarily restricts the flexibility that the TLS protocol
> specifically provides for, regulating areas that the TLS standard
> intentionally does not specify (RFC 5246 section 1) -- the current
> Internet Draft says:
> 
> "By default, TLS implementations conforming to this document MUST verify
> that once the peer has been identified and authenticated within the TLS
> handshake, the identity does not change on subsequent renegotiations.
> For certificate based cipher suites, this means bitwise equality of the
> end-entity certificate. If the other end attempts to authenticate with a
> different identity, the renegotiation MUST fail. If the server_name
> extension is used, it MUST NOT change when doing renegotiation."
> 
> There is no security reason for this restriction.

+1 Agree

> This sounds like a
> bad and incomplete workaround for certain problems with TLS that the
> updated protocol does not need a workaround for at all, because the
> protocol update is all about properly *solving* those problems.
> 
> Keeping this language in the specification would have the weird
> implication that applications that *need* the flexibility provided by
> the TLS protocol (e.g., to allow renegotiation handshakes to switch to a
> different ciphersuite, which may require a different certificate) would
> have to to *skip* implementing the protocol update, and thus stay
> vulnerable.

Excellent point.

Although the sentence after the one you quoted seems to say that
implementations are allowed to do it anyway if they choose. Which raises
the question as to what this language actually means for the wire
protocol, anyway.

> The new restriction that draft-ietf-tls-renegotiation-01.txt tries to
> sneak in thus seems harmful both for interoperability and for security. 
> I haven't seen any signs of working group consensus on including this
> new restriction.

Details about which certificates endpoints should be allowed or
forbidden to negotiate is outside the scope of this bugfix.

We should remove it.

- Marsh