Re: [TLS] Summarizing identity change discussion so far

Martin Rex <mrex@sap.com> Fri, 18 December 2009 01:31 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 8D5913A680D for <tls@core3.amsl.com>; Thu, 17 Dec 2009 17:31:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.197
X-Spam-Level:
X-Spam-Status: No, score=-6.197 tagged_above=-999 required=5 tests=[AWL=0.052, 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 02wz9w6c0wC1 for <tls@core3.amsl.com>; Thu, 17 Dec 2009 17:31:30 -0800 (PST)
Received: from smtpde03.sap-ag.de (smtpde03.sap-ag.de [155.56.68.140]) by core3.amsl.com (Postfix) with ESMTP id 722ED3A67B5 for <tls@ietf.org>; Thu, 17 Dec 2009 17:31:30 -0800 (PST)
Received: from mail.sap.corp by smtpde03.sap-ag.de (26) with ESMTP id nBI1VDYW014595 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 18 Dec 2009 02:31:13 +0100 (MET)
From: Martin Rex <mrex@sap.com>
Message-Id: <200912180131.nBI1VCoS002680@fs4113.wdf.sap.corp>
To: aerowolf@gmail.com
Date: Fri, 18 Dec 2009 02:31:12 +0100
In-Reply-To: <6b9359640912171715p75ad2266y2a07f057ed8a7b63@mail.gmail.com> from "Kyle Hamilton" at Dec 17, 9 05:15:30 pm
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Scanner: Virus Scanner virwal08
X-SAP: out
Cc: tls@ietf.org
Subject: Re: [TLS] Summarizing identity change discussion so far
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, 18 Dec 2009 01:31:31 -0000

Kyle Hamilton wrote:
> 
> I'll just state this: I believe that defining the semantics of
> identity credentials provided during the course of the TLS protocol's
> execution is NOT within the legitimate realm of the design of the TLS
> protocol.  TLS explicitly references PKIX, and PKIX is really the only
> place that uses 'identity', but (on further reading) it doesn't
> describe precisely what 'identity' is.
> 
> So, I'll take a stab at a potential guidance for those who don't have
> the time to research in-depth, taking into account Pasi's and
> everyone's ideas: If there is a match between ANY one of the new
> certificate's Subject/sAN and the old certificate's Subject/sAN,
> including all path components in the same order for that entity, AND
> is issued by the same authority, it SHOULD be regarded as being the
> same identity, though exceptions will undoubtedly exist.  Differences
> in the Certificate Policy, kU, or eKU fields SHOULD be evaluated as
> well, to ensure that the new certificate is valid for the kind of
> connection and transactions being performed.


*I* would really prefer that a TLS spec does _NOT_ open that can of worms
called X.509 Certificate at all.

You don't know how many trust anchors there are (some software comes
preloaded with more than one hundred) and you don't know how long the
CA hierarchies are and whether those trust anchors all have path
length limits.  If you only look at Subject/sAN, you can be fooled
with certs from different CAs, and if add the issuer of the
end-entity cert, then you can be fooled if your attacker can
obtain a specific intermediate CA cert under some other root, and on and on.

I also see absolutely no reason to duplicate code and functionality
here that may get out of sync all too easily.

The application was able to perform the initial authentication
(log-on or ACL-check), so it is the duty of the application to
perform any reauthentication in the very same fashion when
renegotiation results in a different cert(chain).  Everything
else will result in endless pain.


...and that is a reason why personally, I prefer that the necessity
for cert renewal requires a new connection and full initial handshake--
because that is exaclty the code path which has all of the
functionality and checks that we are looking for!


-Martin