[certid] Comments on draft-saintandre-tls-server-id-check-03

Nelson B Bolyard <nelson@bolyard.me> Sat, 03 April 2010 17:51 UTC

Return-Path: <nelson@bolyard.me>
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 7D8853A699F for <certid@core3.amsl.com>; Sat, 3 Apr 2010 10:51:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]
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 F0eJymasYSC5 for <certid@core3.amsl.com>; Sat, 3 Apr 2010 10:51:15 -0700 (PDT)
Received: from smtpauth13.prod.mesa1.secureserver.net (smtpauth13.prod.mesa1.secureserver.net [64.202.165.37]) by core3.amsl.com (Postfix) with SMTP id AEC583A67F6 for <certid@ietf.org>; Sat, 3 Apr 2010 10:51:12 -0700 (PDT)
Received: (qmail 25020 invoked from network); 3 Apr 2010 17:51:11 -0000
Received: from unknown (24.5.142.42) by smtpauth13.prod.mesa1.secureserver.net (64.202.165.37) with ESMTP; 03 Apr 2010 17:51:11 -0000
Message-ID: <4BB78081.3050504@bolyard.me>
Date: Sat, 03 Apr 2010 10:53:05 -0700
From: Nelson B Bolyard <nelson@bolyard.me>
Organization: Network Security Services
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.9.1b1pre) Gecko/20081004 NOT Firefox/2.0 SeaMonkey/2.0a2pre
MIME-Version: 1.0
To: certid@ietf.org
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Subject: [certid] Comments on draft-saintandre-tls-server-id-check-03
X-BeenThere: certid@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: certid@ietf.org
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, 03 Apr 2010 17:51:16 -0000

Hello certid,

In sections 3.8, 4.2.4, and in Appendix A.3 section 3.1.3 , reference is
made to
> the "leaf" (left-most) position within the Relative Distinguished Names
> (RDNs) of the subjectName
I would like to comment on that terminology, and suggest different
terminology.

I am the chief SSL developer for NSS, the crypto libraries used in Mozilla
products (Firefox, Thunderbird), and before that, Netscape products.  I have
been an NSS SSL developer for 13 years.  In that time I have seen numerous
problems with CAs issuing certs with RDNs in the "wrong order".

There are (or have been, during my career) MANY CAs that do not understand
that RDNs describe a path through a hierarchy, and that the order of the
RDNs, AS ENCODED IN THE CERTIFICATE, is from "most general" to "most
specific".  The various standards for translating a DER encoded Name into
a string call for the RDNs to be ordered, left to right, from most specific
to most general, the reverse of the order in which they appear in the
DER encoded certificate.  But sadly there are a number of popularly used
programs that do not conform, and translate between DER and string form
(in both directions) without reversing the order.  This contributes to the
problem of CAs putting CNs in the wrong places or wrong orders.

So, I suggest that this document not specify the CN's position among the
RDNs by its position in the string form, but rather by its position in the
DER encoded form in the certificate.  I suggest that the document state
that it must be the LAST of the CNs within the RDNs, as those RDNs are found
in the DER encoded Name in the certificate.

It may be useful for the document to explain, in an appendix, that the order
in which the RDNs appear in string form is supposed to be the reverse of the
order in which they are found in the DER encoded Name form in the
certificate, and that consequently, when seen in string form, the CN should
be the first (left-most) CN found in the RDNs.  But I'd add that as
informative text, not normative.

Also, Please add an additional sentence to section 4.2.4 saying:

A client MUST NOT check the Common Name if the identity set includes any
subjectAltName extension of type dNSName, SRVName, uniformResourceIdentifier
(or other application-specific subjectAltName extensions).

This may seem redundant, given the first sentence of 4.2.4, but there are
many developers who will ignore any statement that does not say MUST or
MUST NOT.  Hopefully, the sentence I suggest above makes it clear.

Thanks for your consideration.  Please reply to the list.

/Nelson Bolyard