Re: [certid] CN-ID and name constraints

Matt McCutchen <matt@mattmccutchen.net> Sat, 25 September 2010 20:30 UTC

Return-Path: <matt@mattmccutchen.net>
X-Original-To: certid@core3.amsl.com
Delivered-To: certid@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 2E1813A6B8A for <certid@core3.amsl.com>; Sat, 25 Sep 2010 13:30:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.985
X-Spam-Level:
X-Spam-Status: No, score=-1.985 tagged_above=-999 required=5 tests=[AWL=-0.586, BAYES_00=-2.599, J_CHICKENPOX_34=0.6, J_CHICKENPOX_42=0.6]
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 jMEHsTLmYjG6 for <certid@core3.amsl.com>; Sat, 25 Sep 2010 13:30:49 -0700 (PDT)
Received: from homiemail-a10.g.dreamhost.com (caiajhbdcaid.dreamhost.com [208.97.132.83]) by core3.amsl.com (Postfix) with ESMTP id 4BDE63A69B5 for <certid@ietf.org>; Sat, 25 Sep 2010 13:30:49 -0700 (PDT)
Received: from homiemail-a10.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a10.g.dreamhost.com (Postfix) with ESMTP id 1F285280074; Sat, 25 Sep 2010 13:31:24 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; c=nofws; d=mattmccutchen.net; h=subject:from :to:cc:in-reply-to:references:content-type:date:message-id :mime-version:content-transfer-encoding; q=dns; s= mattmccutchen.net; b=YwoO9LvLU+4wEMeT9M/j1stWf1mvVPj3UMlmWLaKZ6t uoP2BGgniaiDMowX1Mu4MDSPHgoO/BYqLWjJaYSSAiIkaPBcJzwrec5YZH6A+83Q GQ7Eu3sU7biN93n6vWN29uUkqn77g13Rk+vlhIT3gi2B4nyHXTORvnvjN3JP3GI4 =
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=mattmccutchen.net; h= subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:content-transfer-encoding; s= mattmccutchen.net; bh=B9UmklgVUR5eKcmVAwtagGcFaIA=; b=qluLLi2K5A cipZ7is8aKJbEhF4uY/Z4GMXdNaLGK1sN3LYEL01uP3dSfXXukoagm2b0EK9G5w9 lyMhFLe1UNmkyxaCthr7TrjeMApfGjBP8P/lBmZsEDmc9wSHZVS+pRNvfHgkljAq m9bbd1CMVm6I+wT4IKUtQ+y9x6SzMC9DA=
Received: from [129.2.249.209] (ml2.student.umd.edu [129.2.249.209]) (Authenticated sender: matt@mattmccutchen.net) by homiemail-a10.g.dreamhost.com (Postfix) with ESMTPA id D08FC280073; Sat, 25 Sep 2010 13:31:23 -0700 (PDT)
From: Matt McCutchen <matt@mattmccutchen.net>
To: mrex@sap.com
In-Reply-To: <201009250309.o8P39Sc7016343@fs4113.wdf.sap.corp>
References: <201009250309.o8P39Sc7016343@fs4113.wdf.sap.corp>
Content-Type: text/plain; charset="UTF-8"
Date: Sat, 25 Sep 2010 16:31:22 -0400
Message-ID: <1285446682.1940.21.camel@mattlaptop2.local>
Mime-Version: 1.0
X-Mailer: Evolution 2.30.4
Content-Transfer-Encoding: 7bit
Cc: certid@ietf.org
Subject: Re: [certid] CN-ID and name constraints
X-BeenThere: certid@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Representation and verification of identity in certificates <certid.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/certid>, <mailto:certid-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/certid>
List-Post: <mailto:certid@ietf.org>
List-Help: <mailto:certid-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/certid>, <mailto:certid-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 25 Sep 2010 20:30:58 -0000

On Sat, 2010-09-25 at 05:09 +0200, Martin Rex wrote: 
> Matt McCutchen wrote:
> > Matching a reference server name against a CN-ID that violates a dNSName
> > constraint defeats the purpose of name constraints.  With respect to
> > clients willing to do this, a name constraint is a security no-op.
> 
> No, it is not.  If there is anything wrong, then it is the
> server endpoint identification algorithm that is abusing X.509.
> 
> Name Constraints processing, as specified by PKIX, is NONE of the
> apps business.  Processing of name constraints is exclusively
> the task of the certificate path validation implementation
> within the PKI software, and the app doesn't need to know or
> care whether and which subtrees were collected while
> building the certification path and later processed during
> certificate path validation.

I was making an observation, not discussing blame or design.  Do you
deny the truth of the observation?

> > > Go kick the PKIX folks if you don't like how it is spec'ed,
> > > but leave the apps folks alone.  I believe that asking the apps
> > > folks to regurgitate and re-chew stuff that the PKIX part didn't
> > > process to someone's satisfaction is an _extremely_ bad idea.
> > 
> > server-id-check is built on PKIX, not vice versa, so server-id-check is
> > responsible for the security consequences of the CN-ID that it defines
> > for the name constraints defined by PKIX.  It has the option to solve
> > the problem or say "this breaks the security of name constraints and we
> > know it", which would be laughable for a standard.
> 
> 
> 10 years ago, the use of CN-ID has been deprecated by rfc-2818 and
> been specified to not be used when DNSName SAN is present.

Unfortunately, CN-IDs are still widely used, and the browser vendors
have little power to push for their eradication.  See:

https://bugzilla.mozilla.org/show_bug.cgi?id=552346

> 
> It seems like a bad idea to massively increase the complexity
> of a long deprecated server identification scheme, and in a
> fashion that is not only a magnitude more complex, but
> also amounts to a gruesome breach of the PKIX architecture.
> 
> 
> I'm sorry for having totally missed the TLS&IETF consenus to abandon
> subjectAltNames for server-id-check and to resurrect CN-IDs.
> 
> 
> There may not be an API in the PKI software for returning to
> the app the hierarchy of dNSName name constraints collected while
> composing the cert path and processed during cert path validation,
> which the app would need for a seconds constraints check
> when it decides to try a CN-ID matching fallback.
> 
> If doing DNSName constraints checking proactively during cert path
> validation should be allowed, then a REALLY big warning label
> would be necessary that CN AVAs must either contain a valid f.q.d.n
> or be ABSENT from the server cert subject DName to prevent false
> negatives (i.e. name constraints violation errors) in those
> new TLS implementations that adopt this fancy logic.

Or the server cert can include a dNSName SAN.  In that case, the CN is
not constrained because it is not used for matching anyway.

> > NSS now enforces name constraints on the CN-ID
> > (https://bugzilla.mozilla.org/show_bug.cgi?id=394919) and remains
> > backward compatible with the web by virtue of the fact that the public
> > CAs aren't using name constraints yet.  If the CAs start doing so, all
> > an inferior CA has to do for things to work is to include a dNSName SAN,
> > which is a SHOULD anyway.
> 
> 
> I think it would be more sensible to let CN-IDs rest in peace and
> simply skip the CN-ID matching fallback entirely if the CA cert,
> which signed the server cert, contains a name constraints extension.

That's another fine option, though it has the same problem 

-- 
Matt