Re: [certid] Need to define "most specific RDN"

Paul Tiemann <paul.tiemann.usenet@gmail.com> Fri, 16 July 2010 18:02 UTC

Return-Path: <paul.tiemann.usenet@gmail.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 18DDD3A67BD for <certid@core3.amsl.com>; Fri, 16 Jul 2010 11:02:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.602
X-Spam-Level:
X-Spam-Status: No, score=0.602 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_28=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 oBk5xDRH2r0R for <certid@core3.amsl.com>; Fri, 16 Jul 2010 11:01:59 -0700 (PDT)
Received: from mail-pw0-f44.google.com (mail-pw0-f44.google.com [209.85.160.44]) by core3.amsl.com (Postfix) with ESMTP id 6CE853A659C for <certid@ietf.org>; Fri, 16 Jul 2010 11:01:59 -0700 (PDT)
Received: by pwj1 with SMTP id 1so1233854pwj.31 for <certid@ietf.org>; Fri, 16 Jul 2010 11:02:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=MKUlI322f/NDWKq3e2wWeM04CeUz1WdLYxrobLZSNew=; b=KKnmoRN04B7qAtPCjUqpliTySQpGzsOjC96hwcBSlD5oUi2o8YCFdaIoOxStjAmf1k 2DRiHpMHwyPIvusD/SG65F3atlY9Gcnqy+lO3ayUH3wQdqhVaBxafFSQzDOk4UonU7jz zkKRv6kRVRwJdVpSvMaaBB/G/YWrymCiYkFIs=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=U3D83in3lJxWe84eOCLKVaDRrK/0tNp7io4+deh56S/JPwSLMBzOpeQioWAHs0mCSO E536NtWhcqao+U1tU4mSg5akvQgxXY6Ra5jdQRGAWgukLccRVNiG9HbUtO+4TMNKOSSD T+UJcblk4FqJIPGe1Z9l95aJ0GO8JEa9ZRUUY=
MIME-Version: 1.0
Received: by 10.114.130.10 with SMTP id c10mr2011375wad.72.1279303330800; Fri, 16 Jul 2010 11:02:10 -0700 (PDT)
Received: by 10.114.112.9 with HTTP; Fri, 16 Jul 2010 11:02:10 -0700 (PDT)
In-Reply-To: <4C3E979B.4050401@velox.ch>
References: <201006301746.o5UHkIsE019133@fs4113.wdf.sap.corp> <4C2B843A.5010206@stpeter.im> <4C305B93.9090001@velox.ch> <201007061435.29786.ludwig.nussel@suse.de> <4C335CE5.1090608@edelweb.fr> <4C3421B3.3070404@velox.ch> <4C3B4F6E.80903@stpeter.im> <4C3DDC18.4020808@bolyard.me> <4C3E979B.4050401@velox.ch>
Date: Fri, 16 Jul 2010 12:02:10 -0600
Message-ID: <AANLkTil-6PZ4iAE9SfysI3AuIjam40xbN8DywgLOMwI0@mail.gmail.com>
From: Paul Tiemann <paul.tiemann.usenet@gmail.com>
To: certid@ietf.org
Content-Type: multipart/alternative; boundary=00163645715c97ac84048b85040b
Subject: Re: [certid] Need to define "most specific RDN"
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: Fri, 16 Jul 2010 19:15:41 -0000

On Wed, Jul 14, 2010 at 11:07 PM, Kaspar Brand <ietf-certid@velox.ch> wrote:

>
> I'm doubtful if adding a MUST NOT for CN-IDs (vs. a SHOULD NOT) would
> have a considerable impact on future CA practices. Most of them probably
> don't want to risk compatibility issues with legacy implementations
> (which don't recognize the subjectAltName extension).
>
>
You're right about CAs:  They'll want maximum compatibility, and there are
still enough devices and clients in circulation that only do Common Name
matching.

See this page for a few devices that are known not to handle SANs:

http://www.digicert.com/subject-alternative-name-compatibility.htm

According to my research, and DigiCert's experience issuing certificates
with and without SAN extensions, here is a simple hierarchy of best-to-worst
compatibility for server certificates with only one FQDN (ex:
www.digicert.com) to match:

1) For best compatibility, issue the certificate with CN=www.digicert.com,
do not include SAN extension at all.

Everything currently supports non-wildcard CN matching.  Some platforms do
not support wildcards (Windows Mobile 5)

2) Only slightly less compatible: issue with CN=www.digicert.com, and
non-critical SAN=(dnsName=www.digicert.com)

There was some talk about always including the SAN extension a few months
ago on the CA/Browser forum.  To try to be a good CA citizen, I went ahead
and made a change so that our certificates would do this (add a 1-element
SAN even if there is only one server ID to be covered by the certificate)

I had to roll back, because within two days (it might have been the very
next day) we got a call from a customer whose server was not accepting the
certificate because the SAN extension was present.  I remember it was some
kind of issue with a blackberry server.  I asked for details about their
platform and version, but I don't believe I got them and I forgot to go back
and ask again.  For now, we're back to using method #1.

That said, there's a good chance I could switch back to this and never hear
of the problem again.  At least half of all our certificates include the SAN
extension and we've almost never had issues with products choking on the
mere presence of the extension (that really is very rare)

3) Still less compatible: issue with CN=www.digicert.com, and CRITICAL
SAN=(dnsName=www.digicert.com)

When the SAN extension is marked critical, some Java based clients or
servers will choke.  Perhaps it's all Java versions older than 2007, but
sadly that describes a fair amount of enterprise customers who run various
legacy applications on very old JVM versions.

4) Least compatible: issue with CN=DigiCert, Inc or no CN at all, and
non-critical SAN=(dnsName=www.digicert.com)

I agree with Nelson's recent post, however, that I would prefer it if the CN
were restricted to just one spot.  There are too many browsers already
behaving differently when there are more than one CN in a subject.  Dan
Kaminsky found Firefox, IE, and openssl behave differently when they see
more than one CN in a subject.  Almost all certificates I'm aware of have
only one CN in them -- and making it even more rare would be a step forward
in my opinion.

My opinion on steps for improvement from where we are now:

1) Clarify CN usage by strongly recommending only 1 CN in a subject.
2) Encourage ubiquitous usage of the SAN extension, so that almost all CA
issued certificates include the SAN extension, only deviating from that for
reasons of compatibility with legacy servers or clients which choke on the
SAN.
3) Make strong recommendations to stop using CN-IDs in subject
4) Stop using server-IDs in common names experimentally

On the topic of name constraints: What if there are ways to push Name
Constraints forward without necessarily having to wait for all legacy
clients to die and all the niche clients to become compatible?  Here's one
idea (admittedly not past v0.1 in my head)

1) Have the major browser vendors add a small mechanism to detect
certificates with Name Constraint violations, and give them a central,
automated way to "report" a certificate found with violated name constraints
which might pose a risk for all the non-compliant browsers and clients.
With something like that in place, the major browsers will be able to handle
name constraints correctly, and the constraints policing feature would help
to erase the incentive that the operator of a constrained CA certificate
would have for violating the constraints to trick legacy devices.
2) NetCraft could possibly help with Name Constraints monitoring, at least
for the public internet.
3) Eventually at some date in the distant future, all the legacy devices
will be dead, and all clients will be compatible, and the programs in #1 and
#2 could be dismantled.

Paul Tiemann
(CTO, DigiCert)