Re: [TLS] Certificate validation can of worms

mrex@sap.com (Martin Rex) Tue, 08 April 2014 19:33 UTC

Return-Path: <mrex@sap.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 225491A023E for <tls@ietfa.amsl.com>; Tue, 8 Apr 2014 12:33:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.552
X-Spam-Level:
X-Spam-Status: No, score=-6.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JUmoiuyb3Q5C for <tls@ietfa.amsl.com>; Tue, 8 Apr 2014 12:33:15 -0700 (PDT)
Received: from smtpde02.sap-ag.de (smtpde02.sap-ag.de [155.56.68.140]) by ietfa.amsl.com (Postfix) with ESMTP id 001A71A070B for <tls@ietf.org>; Tue, 8 Apr 2014 12:33:14 -0700 (PDT)
Received: from mail05.wdf.sap.corp by smtpde02.sap-ag.de (26) with ESMTP id s38JXBAj019504 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 8 Apr 2014 21:33:11 +0200 (MEST)
In-Reply-To: <4262AC0DB9856847A2D00EF817E81139178FE7@scygexch10.cygnacom.com>
To: Santosh Chokhani <SChokhani@cygnacom.com>
Date: Tue, 08 Apr 2014 21:33:11 +0200
X-Mailer: ELM [version 2.4ME+ PL125 (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="US-ASCII"
Message-Id: <20140408193311.61C931ACB0@ld9781.wdf.sap.corp>
From: mrex@sap.com
X-SAP: out
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/ETRW2f2dvctvfPfdcscWhhAT4dw
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Certificate validation can of worms
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
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/options/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: Tue, 08 Apr 2014 19:33:17 -0000

Santosh Chokhani wrote:
> 
> The EKU is generally only applies to the leaf certificate
> (per X.509 and RFC 5280) and is not involved in path processing.

EKU applies *ONLY* to higher layer protocols where the higher layer
protocol specifies behaviour for a list of EKUs.  For TLS,
such specification simply do not exist.

Potentially, there is something in the CABrowser Forum Baseline
requirements.  But I'm not a Browser implementor, so I don't know
and don't care.  I'm a maintainer of a TLS library and application
level wrapper to TLS for programmatic use.


> 
> While TLS applications may or may not be able to set policies,
> the interactions among policy related extensions and path validation
> state machine can make the path invalid if the policy intersection
> is null and the require explicit policy flag has been turned on.

Aside from what the CABForum & Browser folks may have defined to
create fancy GUI chrome, I'm not currently aware of any X-over-TLS
spec that gives meaning to policies.  So the easiest approach is
to entirely ignore them -- during path validation as well as
on the end entity certs.


> 
> Path building need not be tied to path validation.  That is your choice.
> Name constraints for the hierarchical name form types are not a mess
> as you say.

To me, the idea behind X.509 11/2008 Appendix G.3.3 looks like a
pretty big mess, and it requires an iterative approach of building
a certification path, failing, building an alternative path and succeeding,
and this is where the whole name constraints processing becomes out of
scope of PKIX/rfc5280.


> 
> I see lot of misunderstandings and exaggerations about problems in X.509
> and RFC 5280 and folks with incorrect implementations having an axe to grind. 

I see a huge amount of needless complexity


A while ago I had an inquiry from a governmental customer because our
library rejected their "pretty" certificate chains on the TLS server cert.
They had a critical policy constraints extension in one of their
path CA certs

  https://tools.ietf.org/html/rfc5280#section-4.2.1.11

with the field "inhibitPolicyMapping" present(!)

To me, this particular extension looks like a pretty stupid design flaw.

-Martin