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

Eric Rescorla <ekr@networkresonance.com> Wed, 02 December 2009 20:07 UTC

Return-Path: <ekr@networkresonance.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 B28613A689B for <tls@core3.amsl.com>; Wed, 2 Dec 2009 12:07:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.056
X-Spam-Level:
X-Spam-Status: No, score=0.056 tagged_above=-999 required=5 tests=[AWL=0.038, BAYES_00=-2.599, FH_HOST_EQ_D_D_D_D=0.765, FH_HOST_EQ_D_D_D_DB=0.888, HELO_MISMATCH_COM=0.553, HOST_MISMATCH_NET=0.311, RDNS_DYNAMIC=0.1]
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 7rUmbjhuBpZe for <tls@core3.amsl.com>; Wed, 2 Dec 2009 12:07:41 -0800 (PST)
Received: from kilo.networkresonance.com (74-95-2-169-SFBA.hfc.comcastbusiness.net [74.95.2.169]) by core3.amsl.com (Postfix) with ESMTP id B61C328C0DF for <tls@ietf.org>; Wed, 2 Dec 2009 12:07:41 -0800 (PST)
Received: from kilo.local (localhost [127.0.0.1]) by kilo.networkresonance.com (Postfix) with ESMTP id B69636C4367; Wed, 2 Dec 2009 12:08:49 -0800 (PST)
Date: Wed, 02 Dec 2009 12:08:49 -0800
From: Eric Rescorla <ekr@networkresonance.com>
To: Marsh Ray <marsh@extendedsubset.com>
In-Reply-To: <4B13F367.6040307@extendedsubset.com>
References: <20091130153734.D44C63A6AA9@core3.amsl.com> <4B13F367.6040307@extendedsubset.com>
User-Agent: Wanderlust/2.15.5 (Almost Unreal) Emacs/22.3 Mule/5.0 (SAKAKI)
MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka")
Content-Type: text/plain; charset="US-ASCII"
Message-Id: <20091202200849.B69636C4367@kilo.networkresonance.com>
Cc: Eric Rescorla <ekr@rtfm.com>, tls@ietf.org
Subject: Re: [TLS] Last Call: draft-ietf-tls-renegotiation (Transport Layer Security (TLS) Renegotiation Indication Extension) to Proposed Standard
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 20:07:42 -0000

At Mon, 30 Nov 2009 10:31:35 -0600,
Marsh Ray wrote:
> 
> A few little suggestions, mostly wording.
> 
> The IESG wrote:
> > The IESG has received a request from the Transport Layer Security WG 
> > (tls) to consider the following document:
> > 
> > - 'Transport Layer Security (TLS) Renegotiation Indication Extension '
> >    <draft-ietf-tls-renegotiation-01.txt> as a Proposed Standard
> 
> http://tools.ietf.org/html/draft-ietf-tls-renegotiation-01
> 
> [Page 3]
> >    renegotiation handshakes to the enclosing TLS channel, thus allowing
> >    the server to differentiate renegotiation from initial negotiation,
> >    as well as preventing renegotiations from being spliced in between
> >    connections.  
> 
> "spliced in between sessions."

Hmm... I'm not sure that's quite what we want either. Maybe 
"between transport layer connections"?


> [Page 5]
> >    o  For ClientHellos which are renegotiating, this field contains the
> 
> "the renegotiated_connection field contains"

Agreed.


> >    Note that a minimal client which does not support renegotiation at
> >    all can simply use this cipher suite in all initial handshakes.  Any
> >    compliant server will reject any (apparent) attempt at renegotiation
> >    by such a client.  Clients which do support renegotiation MUST
> >    implement Section 3 as well.
> 
> I suggest we replace all uses of "cipher suite" in this section with the
> term "cipher suite value", and we add explicit wording "The
> TLS_RENEGO_PROTECTION_REQUEST cipher suite value is just a flag, it does
> not actually a refer to a set of cryptographic algorithms that could
> ever be used for data transmission."
> 
> This might seem obvious to all of us, but this wording change could
> conceivably speed review and fend off questions by some review board.

Works for me.


> >    TLS clients which support this draft MUST generate either the
> > 
> >    "renegotiation_info" extension or the TLS_RENEGO_PROTECTION_REQUEST
> >    cipher suite with every ClientHello.
> 
> Can they generate both?
> 
> If not, what does the server do if he receives both?

I see several possibilities:

- One or the other and the server MUST abort if he receives both. 
- Either or both on initial handshakes, but RI only on rehandshakes
- RI MUST be present on rehandshakes. The MCSV MAY be present
  but MUST be ignored.

The last of these would obviously require slightly altering the
"exactly the same" rule, so seems less desirable, but really any
of these are easy to do. I think my preference would be for the
first.


> >    Existing implementations which do not support this extension are
> >    widely deployed and in general must interoperate with newer
> >    implementations which do support it.  This section describes
> 
> s/must/need to/ to avoid confusion with MUST.

Works for me.


> >    If a client offers the "renegotiation_info" extension or the
> >    TLS_RENEGO_PROTECTION_REQUEST cipher suite and the server does not
> >    reply with "renegotiation_info" in the ServerHello, then this
> >    indicates that the server either does not support secure
> >    renegotiation or is unwilling to use it.
> 
> Is it allowed for a patched server to be "unwilling"?
> 
> If not, drop the "or is unwilling to use it" lest it give the impression
> that such behavior is condoned.

Works for me.


> >    If the client does not offer the "renegotiation_info" extension or
> >    the TLS_RENEGO_PROTECTION_REQUEST cipher suite then this indicates
> >    that the client does not support secure renegotiation or is unwilling
> >    to use it.  However, because the above attack looks like two
> 
> Again, is it allowed for a client to be conformant to this spec and
> still not send either the extension or magic cipher suite value?

Works for me.

-Ekr