Re: [certid] Why require EKU for certid?
Stefan Santesson <stefan@aaa-sec.com> Thu, 30 September 2010 06:36 UTC
Return-Path: <stefan@aaa-sec.com>
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 ED45C3A6D4D for <certid@core3.amsl.com>;
Wed, 29 Sep 2010 23:36:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.671
X-Spam-Level:
X-Spam-Status: No, score=-102.671 tagged_above=-999 required=5 tests=[AWL=0.578,
BAYES_00=-2.599, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_LOW=-1,
USER_IN_WHITELIST=-100]
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 Wuy4TFemBRYu for
<certid@core3.amsl.com>; Wed, 29 Sep 2010 23:36:29 -0700 (PDT)
Received: from s87.loopia.se (s87.loopia.se [194.9.95.115]) by core3.amsl.com
(Postfix) with ESMTP id 879863A6B5B for <certid@ietf.org>;
Wed, 29 Sep 2010 23:36:18 -0700 (PDT)
Received: from s29.loopia.se (s34.loopia.se [194.9.94.70]) by s87.loopia.se
(Postfix) with ESMTP id BF4EC2D48F1 for <certid@ietf.org>;
Thu, 30 Sep 2010 08:37:03 +0200 (CEST)
Received: (qmail 36742 invoked from network); 30 Sep 2010 06:37:01 -0000
Received: from 213-64-142-247-no153.business.telia.com (HELO [192.168.1.5])
(stefan@fiddler.nu@[213.64.142.247]) (envelope-sender <stefan@aaa-sec.com>)
by s29.loopia.se (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for
<paul.hoffman@vpnc.org>; 30 Sep 2010 06:37:01 -0000
User-Agent: Microsoft-Entourage/12.26.0.100708
Date: Thu, 30 Sep 2010 08:36:58 +0200
From: Stefan Santesson <stefan@aaa-sec.com>
To: Paul Hoffman <paul.hoffman@vpnc.org>
Message-ID: <C8C9FCAA.F771%stefan@aaa-sec.com>
Thread-Topic: [certid] Why require EKU for certid?
Thread-Index: ActgaeFs+jnNRppEw069h7GuV0BxvA==
In-Reply-To: <p0624084fc8c98553729e@[10.20.30.163]>
Mime-version: 1.0
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Cc: IETF cert-based identity <certid@ietf.org>
Subject: Re: [certid] Why require EKU for certid?
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: Thu, 30 Sep 2010 06:36:48 -0000
On 10-09-30 2:13 AM, "Paul Hoffman" <paul.hoffman@vpnc.org> wrote: > At 1:20 AM +0200 9/30/10, Stefan Santesson wrote: >> My point is more that it is good practice to have serverAuth set when the CN >> attribute is allowed to carry a DN. > > Yes it is. However, that is irrelevant to this document. It would be relevant > to a document saying how to create a well-formed server certificate for TLS. > >> Absent the serverAuth EKU it is hard to programmatically be sure that the CN >> actually contains a DNS name. Yes you can probably be pretty sure but there >> is just a slight chance for problems due to overloaded semantics. > > Even if the serverAuth EKU is set, you cannot be sure the CN actually contains > a DNS name. The two are orthogonal. > You are correct. But IF you accept the domain name from the CN attribute and the serverAuth, you do at least know that the certificate is issued to a TLS server endpoint. It thus holds the name of a TLS server. >> ServerAuth provides a much cleaner indication than parsing the CN attribute >> only. I see potential security problems if a CA allows you to for example >> set your CN as a friendly name while other attributes such as givenName and >> SureName are checked against your registered name. The friendly name may be >> hard to check as it may differ from your registered name (ex Tim Polk). >> Thus some not so careful implementation may have poor checks and allow you >> to choose a domain name as your friendly name. This certificate may never be >> intended to be used for server authentication, but following the rules of >> the draft this certificate now allows spoofing and you would never detect >> that. > > See both points above. > See point above. You can't possibly mean that the risk of spoofing is the same regardless of whether serverAuth is checked. >> More importantly it has to do with name constraints processing. If you >> accept the CN attribute as a domain name you need to make sure that it also >> matches any name constraints set for the dNSName of the path. It is much >> cleaner again to use the serverAuth as a mechanism for switching in this >> logic. > > Then there should be a PKIX document saying this. It is not relevant to a > document that tells how to match a domain name the client has in its left hand > against the identities in the cert it holds in its right hand. > AFAIK there is no PKIX document supporting the use of CN to carry a domain name. This is a non standard practice. >> Absent this check, the domain name may violate name constraints and you >> would never know. This is the most important point. > > If the TLS client is doing full certificate path validation, the certificate > cannot violate name constraints. That is quite different than what you just > said. > That is just a game with words Paul. Of course the certificate does not violate name constraints. It is the USE of the certificate that violates the name constraints of the path. CA-X in the path has stated "You can only rely on this CA certificate to validate claims about domain names within the example.com namespace" If the end certificate holds the domain name "foo.com" in the CN, But no dNSName SAN, and you accept this claim then you are in fact trusting the CA-X certificate beyond its declared scope. This document is about best current practice right? I'm not an advocate for hopelessly rigid requirements and I do respect legacy. But I think it is reasonable to at least recommend clients to check any domain name against dNSName name constraints regardless of what attribute they pulled that information from. I also think it would be good practice to not blindly accept domain names from any attribute unless you have some indication that it is likely to hold a domain name. A large percentage of installed TLS clients perform these checks, so it is not taken from nowhere. I don't think we can create perfect, but we could limit the risks with reasonable recommendations. /Stefan
- [certid] Fwd: Review of draft-saintandre-tls-serv… Paul Hoffman
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Bernard Aboba
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… James Schaad
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Shumon Huque
- Re: [certid] Review of draft-saintandre-tls-serve… Shumon Huque
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Shumon Huque
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Paul Hoffman
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Shumon Huque
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Shumon Huque
- Re: [certid] Review of draft-saintandre-tls-serve… Richard L. Barnes
- Re: [certid] Review of draft-saintandre-tls-serve… Dave Cridland
- Re: [certid] Review of draft-saintandre-tls-serve… Martin Rex
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] [TLS] Review of draft-saintandre-tls… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Dave Cridland
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Dave Cridland
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Dave Cridland
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] [TLS] Review of draft-saintandre-tls… James Schaad
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Stefan Santesson
- Re: [certid] Review of draft-saintandre-tls-serve… Dave Cridland
- Re: [certid] Review of draft-saintandre-tls-serve… Shumon Huque
- Re: [certid] Review of draft-saintandre-tls-serve… Dave Cridland
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- Re: [certid] Review of draft-saintandre-tls-serve… Peter Saint-Andre
- [certid] Why require EKU for certid? Paul Hoffman
- Re: [certid] Why require EKU for certid? Peter Saint-Andre
- Re: [certid] [TLS] Why require EKU for certid? Jim Schaad
- Re: [certid] Why require EKU for certid? Martin Rex
- Re: [certid] Why require EKU for certid? Henry B. Hotz
- [certid] CN-ID and name constraints Matt McCutchen
- Re: [certid] CN-ID and name constraints Martin Rex
- Re: [certid] CN-ID and name constraints Matt McCutchen
- Re: [certid] CN-ID and name constraints Martin Rex
- Re: [certid] CN-ID and name constraints Matt McCutchen
- Re: [certid] CN-ID and name constraints (oops) Matt McCutchen
- Re: [certid] CN-ID and name constraints Matt McCutchen
- Re: [certid] Why require EKU for certid? Peter Saint-Andre
- Re: [certid] CN-ID and name constraints Peter Saint-Andre
- Re: [certid] CN-ID and name constraints Jim Schaad
- Re: [certid] Why require EKU for certid? Peter Saint-Andre
- Re: [certid] Why require EKU for certid? Paul Hoffman
- Re: [certid] Why require EKU for certid? Stefan Santesson
- Re: [certid] Why require EKU for certid? Paul Hoffman
- Re: [certid] Why require EKU for certid? Martin Rex
- Re: [certid] Why require EKU for certid? Stefan Santesson
- Re: [certid] Why require EKU for certid? Peter Saint-Andre
- Re: [certid] Why require EKU for certid? Peter Saint-Andre
- Re: [certid] CN-ID and name constraints Peter Saint-Andre
- Re: [certid] CN-ID and name constraints Jim Schaad
- Re: [certid] CN-ID and name constraints Carl Wallace