Re: [TLS] Summarizing identity change discussion so far

"Joseph Salowey (jsalowey)" <jsalowey@cisco.com> Mon, 28 December 2009 22:21 UTC

Return-Path: <jsalowey@cisco.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 190553A687C for <tls@core3.amsl.com>; Mon, 28 Dec 2009 14:21:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.516
X-Spam-Level:
X-Spam-Status: No, score=-6.516 tagged_above=-999 required=5 tests=[AWL=0.083, BAYES_00=-2.599, 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 PzWfb7L4-9TE for <tls@core3.amsl.com>; Mon, 28 Dec 2009 14:21:00 -0800 (PST)
Received: from sj-iport-6.cisco.com (sj-iport-6.cisco.com [171.71.176.117]) by core3.amsl.com (Postfix) with ESMTP id EC4DD3A6848 for <tls@ietf.org>; Mon, 28 Dec 2009 14:20:59 -0800 (PST)
Authentication-Results: sj-iport-6.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ApoEAFi+OEurR7H+/2dsb2JhbAC/R5Rygi+CBAQ
X-IronPort-AV: E=Sophos;i="4.47,464,1257120000"; d="scan'208";a="457847723"
Received: from sj-core-2.cisco.com ([171.71.177.254]) by sj-iport-6.cisco.com with ESMTP; 28 Dec 2009 22:20:41 +0000
Received: from xbh-sjc-231.amer.cisco.com (xbh-sjc-231.cisco.com [128.107.191.100]) by sj-core-2.cisco.com (8.13.8/8.14.3) with ESMTP id nBSMKf18024330; Mon, 28 Dec 2009 22:20:41 GMT
Received: from xmb-sjc-225.amer.cisco.com ([128.107.191.38]) by xbh-sjc-231.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 28 Dec 2009 14:20:41 -0800
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 28 Dec 2009 14:20:39 -0800
Message-ID: <AC1CFD94F59A264488DC2BEC3E890DE509592EBC@xmb-sjc-225.amer.cisco.com>
In-Reply-To: <808FD6E27AD4884E94820BC333B2DB775840CE3382@NOK-EUMSG-01.mgdnok.nokia.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [TLS] Summarizing identity change discussion so far
Thread-Index: AcqAGzeDAkldwC8qQjWRqwGgxqQqxQAVK08QAMx9ZaABD/G1kA==
References: <Acp35q+5MB/IK2o8TM+TSRCqs64JxA==><808FD6E27AD4884E94820BC333B2DB774F31A4FD08@NOK-EUMSG-01.mgdnok.nokia.com><6b9359640912171337j7ed5be63gf431e0fb12070944@mail.gmail.com><808FD6E27AD4884E94820BC333B2DB774F31F77BDC@NOK-EUMSG-01.mgdnok.nokia.com><AC1CFD94F59A264488DC2BEC3E890DE5095131C5@xmb-sjc-225.amer.cisco.com><4B2BDCAC.1040802@bolyard.me> <AC1CFD94F59A264488DC2BEC3E890DE50951355D@xmb-sjc-225.amer.cisco.com> <808FD6E27AD4884E94820BC333B2DB775840CE3382@NOK-EUMSG-01.mgdnok.nokia.com>
From: "Joseph Salowey (jsalowey)" <jsalowey@cisco.com>
To: <Pasi.Eronen@nokia.com>, <tls@ietf.org>
X-OriginalArrivalTime: 28 Dec 2009 22:20:41.0017 (UTC) FILETIME=[FD5C1A90:01CA880B]
Subject: Re: [TLS] Summarizing identity change discussion so far
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: Mon, 28 Dec 2009 22:21:04 -0000

 

> -----Original Message-----
> From: Pasi.Eronen@nokia.com [mailto:Pasi.Eronen@nokia.com] 
> Sent: Tuesday, December 22, 2009 11:35 PM
> To: Joseph Salowey (jsalowey); tls@ietf.org
> Subject: RE: [TLS] Summarizing identity change discussion so far
> 
> Based on earlier discussions, I don't think we have consensus 
> for this strong change ("SHOULD disable renegotiation by 
> default"). If you ship an updated TLS library with that 
> change, it will break all existing applications that use 
> renegotiation (since they are not aware of the API call to 
> re-enable it, which was probably added in the same update).
> 
[Joe] I agree. 

> I think we have rough consensus for "SHOULD have an API to 
> disable/enable renegotiation (depending on which is the 
> default setting)", but not for what the default setting should be.
> 
[Joe] I'm OK with text along those lines.  How about replacing the 3rd
paragraph with:

"TLS implementations SHOULD provide a mechanism to disable and enable
renegotiation. "

I would also favor adding something like the following to the 5th
paragraph, but I could live without it:

"To make life simpler for applications that do not expect the
certificate to change once it's been authenticated, TLS implementations
may also wish to offer the applications the option abort the
renegotiation if the peer tries to authenticate with a different
certificate and/or different server name (in the server_name extension)
than was used earlier.  TLS implementations may alternatively offer the
option to disable renegotiation once the client certificate has be
authenticated.  However, enabling these options by default for all
applications could break existing applications that depend on using
renegotiation to change from one certificate to another.  (For example,
long-lived TLS connections could change to a renewed certificate; or
renegotiation could select a different cipher suite that requires using
a different certificate.)



> Best regards,
> Pasi
> (wearing AD hat)
> 
> > -----Original Message-----
> > From: tls-bounces@ietf.org [mailto:tls-bounces@ietf.org] On 
> Behalf Of 
> > ext Joseph Salowey (jsalowey)
> > Sent: 19 December, 2009 08:03
> > To: Nelson B Bolyard; IETF TLS Working Group
> > Subject: Re: [TLS] Summarizing identity change discussion so far
> > 
> > 
> > 
> > 
> > > -----Original Message-----
> > > From: tls-bounces@ietf.org [mailto:tls-bounces@ietf.org] 
> On Behalf 
> > > Of Nelson B Bolyard
> > > Sent: Friday, December 18, 2009 11:49 AM
> > > To: IETF TLS Working Group
> > > Subject: Re: [TLS] Summarizing identity change discussion so far
> > >
> > > On 2009-12-17 23:27 PST, Joseph Salowey (jsalowey) wrote:
> > > > I share the opinion that identity checking belongs in the
> > > application,
> > > > performed according to whatever mechanism is appropriate.
> > > We should
> > > > not be mandating any particular PKIX processing in the 
> TLS specs.
> > > >
> > > > I also think if an application is not prepared to be aware of 
> > > > renegotiation and handle any identity change associated
> > > with it then
> > > > renegotiation should be disabled.  This implies that 
> renegotiation 
> > > > should be disabled by default and specifically enabled by an 
> > > > application.  So I would say
> > > >
> > > > "TLS implementations SHOULD disable renegotiation by
> > > default and offer
> > > > the applications the option to enable renegotiation.  When an 
> > > > application enables renegotiation it must handle identity
> > > processing
> > > > for each handshake."
> > >
> > > With my Idealist hat on, I agree with that 100%.  But after
> > > 13.25 years of working on SSL/TLS libraries, I know that 
> 98+% of the 
> > > app developers who use TLS have no idea what that means 
> or how to do 
> > > it.  IMO, they are likely to just call a function for 
> each handshake 
> > > that does the same thing as for the first handshake, 
> validating the 
> > > cert chain and (if we're
> > > lucky) checking that some aspect of the cert contains 
> some expected 
> > > name, without any regard to what prior certificates may have 
> > > contained.
> > >
> > >
> > > So, IMO, it makes sense of TLS implementations to offer 
> some sort of 
> > > "default" handling of certs to attempt to ensure continuity of 
> > > identity in the absence of something much better from the 
> > > application.  I'd suggest that, unless the applications 
> direct them 
> > > to do otherwise, perhaps by registering some callback, TLS 
> > > implementations should check that the cert in a 
> renegotiation is the 
> > > same one as in the previous full handshake, either by 
> memcmp of the 
> > > entire cert, or by memcmp of the subject name and
> > > subjectAltName (if any).   Anything less will ensure that
> > > most apps continue
> > > to get this wrong, IMO.
> > 
> > [Joe] So ideally renegotiation would be disabled (perhaps after the 
> > client is authenticated in a TLS handshake) unless 
> application enables
> > it.   The TLS implementation can implement some policy on 
> how to match
> > identity from on handshake to the next, but I'm not 
> confident that any 
> > single specific policy  will be the right policy for different 
> > applications and deployments.
> > 
> > > _______________________________________________
> > > TLS mailing list
> > > TLS@ietf.org
> > > https://www.ietf.org/mailman/listinfo/tls
> > >
> > _______________________________________________
> > TLS mailing list
> > TLS@ietf.org
> > https://www.ietf.org/mailman/listinfo/tls
>