Re: [TLS] Analysis of Interop scenarios TLS extension RI w/MCSV

Martin Rex <mrex@sap.com> Fri, 11 December 2009 15:11 UTC

Return-Path: <mrex@sap.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 2038C3A6AE6 for <tls@core3.amsl.com>; Fri, 11 Dec 2009 07:11:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.193
X-Spam-Level:
X-Spam-Status: No, score=-6.193 tagged_above=-999 required=5 tests=[AWL=0.056, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
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 4btaEOuqoF18 for <tls@core3.amsl.com>; Fri, 11 Dec 2009 07:11:17 -0800 (PST)
Received: from smtpde03.sap-ag.de (smtpde03.sap-ag.de [155.56.68.140]) by core3.amsl.com (Postfix) with ESMTP id 4E2F43A6AE4 for <tls@ietf.org>; Fri, 11 Dec 2009 07:11:17 -0800 (PST)
Received: from mail.sap.corp by smtpde03.sap-ag.de (26) with ESMTP id nBBFB4cU023013 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 11 Dec 2009 16:11:04 +0100 (MET)
From: Martin Rex <mrex@sap.com>
Message-Id: <200912111511.nBBFB3Ej008905@fs4113.wdf.sap.corp>
To: david-sarah@jacaranda.org
Date: Fri, 11 Dec 2009 16:11:03 +0100
In-Reply-To: <4B21BFF5.2020909@jacaranda.org> from "David-Sarah Hopwood" at Dec 11, 9 03:43:49 am
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Scanner: Virus Scanner virwal05
X-SAP: out
Cc: tls@ietf.org
Subject: Re: [TLS] Analysis of Interop scenarios TLS extension RI w/MCSV
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: mrex@sap.com
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: Fri, 11 Dec 2009 15:11:19 -0000

David-Sarah Hopwood wrote:
> 
> Martin Rex wrote:
> > Michael Gray wrote:
> >>> in order to reliably provide this,
> >>>
> >>>   - MCSV is defined to represent an empty TLS extension RI
> >>>
> >>>   - MSCV MUST be included in *ALL* initial ClientHello handshakes
> >>>     messages _plus_ all renegotiation ClientHellos in backwards
> >>>     interop scenarios (independent of full handshake or session resume).
> >>>
> >>>   - empty TLS extension RI MUST NOT be sent, ever!
> >>
> >> This looks good to me, the only thing I would change is I think MUST NOT
> >> would be better as SHOULD NOT as the later requires that the implementer
> >> examine the conditions and implications etc to make the best decision.
> > 
> > You are right.  I'm sorry.  I got a little carried away.
> > 
> > A SHOULD NOT for sending _empty_ TLS extension RI is more appropriate.
> 
> Why? What is the point of allowing the client to send an empty extension,
> when a patched client MUST send the MSCV, and a patched server MUST use
> *only* the MSCV to determine whether the client is patched? You'd just be
> adding the option to send an extension that has no defined meaning.

I have mixed feelings about this.  Maybe we do need a MUST to make
things clear.

There *IS* no point in doing that (which is why I lightheartedly wrote
MUST NOT).  An implementation that is sending it will just waste
code and network bandwidth.

As far as I understand there seem to be architectures where the
ServerHello extensions parser will only search for replies to
TLS extensions it requested (and ignore others).  Now for the
RENEGO_PROTECTION to reliably work against downgrade attacks in
backwards interop scenarios, that code MUST be changed to process
a TLS extension RI reply in ServerHello in cases where it did _NOT_
send an empty TLS extension RI in ClientHello--otherwise there
would be no downgrade MitM attack protection.

Therefore a mere SHOULD NOT might lead to defective/vulnerable
implementations in case these implementations allow backwards
interoperability or extension-less SSLv3 ClientHellos
or SSLv2 ClientHellos.


-Martin