[cabfpub] Fwd: Ballot 202 - Underscore and Wildcard Characters

Erwann Abalea Erwann.Abalea at docusign.com
Wed Jul 26 01:54:58 MST 2017


Resent to the list, once back to work.

Cordialement,
Erwann Abalea

Début du message réexpédié :

De: Erwann Abalea <eabalea at gmail.com<mailto:eabalea at gmail.com>>
Objet: Rép : [cabfpub] Ballot 202 - Underscore and Wildcard Characters
Date: 25 juillet 2017 23:24:02 UTC+2
À: Peter Bowen <pzb at amzn.com<mailto:pzb at amzn.com>>, "CA/Browser Forum Public Discussion List" <public at cabforum.org<mailto:public at cabforum.org>>
Cc: Erwann Abalea <Erwann.Abalea at docusign.com<mailto:Erwann.Abalea at docusign.com>>

Replying from home, so the list won't see it...

2017-07-25 21:01 GMT+02:00 Peter Bowen via Public <public at cabforum.org<mailto:public at cabforum.org>>:
Erwann,

Thank you for your detailed feedback and I appreciate you providing context for your vote.

With regards to reserved IP addresses, the definition in the current BRs allows a CA to deliver a certificate for 192.0.0.9.  They also allow a CA to deliver a certificate for 192.168.1.1.  This is because the current language (which has been in the BRs since at least V1) says “Reserved IP Address” is only defined by the whole /8 being reserved.  This means only 0/8, 10/8, 127/8 and 224/3 are currently Reserved IP v4 addresses.  While I agree we may be able to further restrict issuance, this ballot covers the common cases.

See the footnotes of the IPv4 registry; footnote 10 reserves 192.0.0.0/24<http://192.0.0.0/24>, footnote 9 reserves 192.168.0.0/16<http://192.168.0.0/16>.

The ballot references RFC 5890 section 2.2 for the definition of Domain Label.  This RFC is very specific on allowed characters; it is not any character. Notably your example is not valid because ‘*’ (0x2a) is a DISALLOWED character.  RFC 5890 points to RFC 5892 for the full list; https://tools.ietf.org/html/rfc5892#appendix-B.1 shows that the only ASCII characters that are allowed are hyphen-minus, digit 0 to digit 9, and letter a to letter z.  Therefore *.*.domain.com<http://domain.com/> is not a valid Wildcard Domain Name according to the definition in ballot 202.

While at the same time, the redlined PDF says "For example "www.example.net<http://www.example.net/>" and "*.example.net<http://example.net/>" are Domain Names."

RFC5890 section 2.2 does not say that a domain label is limited to an LDH label, it tries to simplify the DNS terminology, presenting LDH code points (and therefore LDH-labels), and refers to other RFCs (1123 and 2181) for other than LDH-labels. RFC2181 explicitly says that any binary string can be used as a label for a record or the value of a record.

RFC5892 lists the different code points that are allowed in an U-label, not the characters accepted in a A-label. Therefore, any A-label containing an underscore would be invalid (since the punycode decoder doesn't transform ASCII characters), while a NON-LDH label could contain an underscore and a subcategory of them would be valid. This will add confusion.


Rewriting this in BNF:

BR-DomainLabel ::= label-from-RFC5890-sect-2-2

BR-DomainName ::= domainname-from-RFC5890-sect-2-2 | BR-WildcardDomainName

BR-FQDN ::= BR-DomainName     ; this shall also be linked to the Internet DNS

label-from-RFC5890-sect-2-2 ::= label-from-RFC2181   ; there's no definition there, and RFC2181 allows anything to be a label

label-from-RFC2181 ::= .. any binary string ..   ; up to 63 octets long

BR-WildcardDomainName ::= '*' '.' BR-DomainName


With such a circular reference, it's hard to say that *.*.domain.com<http://domain.com/> is not a conformant BR-WildcardDomainName. It's linked to the Internet DNS (with "domain.com<http://domain.com/>"), it contains only valid labels ("*" is a valid label), and it starts with a "*.".


Thanks,
Peter


On Jul 25, 2017, at 11:39 AM, Erwann Abalea via Public <public at cabforum.org<mailto:public at cabforum.org>> wrote:

Bonsoir,

DocuSign France votes No.

While there are good clarifications around domain names, FQDNs, wildcards, and reserved labels, there are a few drawbacks:

1. Underscores in SAN:dNSName entries. It’s not the current BR that disallows underscores in dNSNames, it’s X.509 and RFC5280 (and current DNS specifications), and there is no justification about allowing underscores other than « it’s done by some admins » or « Microsoft allows it ». While domain names can contain anything (even characters such as '[({*$!?" ), dNSName shall contain a host name, and host names shall only be composed of LDH labels. I’d prefer the standards to be changed instead of explicitly allowing deviations from the standard.

2. « Reserved IP address ». The new definition now allows a CA to deliver a certificate for an obviously invalid IP (I doubt anyone could claim « owning » 192.0.0.9 or 192.0.0.10, and I haven’t fully checked the others).

3. « Wildcard Domain Name ». The new definition is not robust enough. An FQDN is a sequence of Domain Labels —which can contain any character—, so « *.domain.com<http://domain.com/> » is a valid FQDN, so « *.*.domain.com<http://domain.com/> » is a valid Wildcard Domain Name according to this definition.


Cordialement,
Erwann Abalea

Le 12 juil. 2017 à 19:24, Ben Wilson via Public <public at cabforum.org<mailto:public at cabforum.org>> a écrit :


Ballot 202 - Underscore and Wildcard Characters

The current Baseline Requirements do not expressly allow underscore characters in Subject Alternative Names. This ballot seeks to clarify that one or more underscore characters (“_”) are allowed in FQDNs. In many places it also replaces the term "FQDN" with "Domain Name" because "Domain Name" now means either "FQDN" or "Wildcard Domain Name". The ballot clarifies validation of wildcard domain names. It also cleans up some of the language in Sections 3.2.2.4 and 7.1.4.2.1 of the Baseline Requirements.

The following motion has been proposed by Ben Wilson of DigiCert and endorsed by Peter Bowen of Amazon and Ryan Sleevi of Google to introduce new Final Maintenance Guidelines for the "Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates" (Baseline Requirements).

--Motion Begins--

A. In Sections 1.3.2, 1.6 (Base Domain Name), 2.2, 3.2.2.4, 3.2.2.4.5, 3.2.2.4.6, 3.2.2.4.10, 3.2.2.4.11, 4.2.1, 4.9.1.1.6, and 4.9.11 of the Baseline Requirements, REPLACE the words "Fully Qualified Domain Name" and "FQDN" with "Domain Name".

B. In Section 1.6.1 of the Baseline Requirements, REPLACE the definition for "Authorization Domain Name" with the following: The Domain Name used to obtain authorization for certificate issuance for a given Domain Name. The CA may use the FQDN returned from a DNS CNAME lookup as the Domain Name for the purposes of domain validation. If the Domain Name is a Wildcard Domain Name, then the CA MUST remove “*.” from the left most portion of requested Domain Name. The CA may prune zero or more labels from left to right until encountering a Base Domain Name and may use any one of the intermediate values for the purpose of domain validation.

C. In Section 1.6.1 of the Baseline Requirements, INSERT the following definition: "Domain Label: An individual component of a Domain Name."

D. In Section 1.6.1 of the Baseline Requirements, REPLACE the definition for "Domain Name" with the following: A set of one or more Domain Labels, each separated by a single full stop character (".").

E. In Section 1.6.1 of the Baseline Requirements, REPLACE the definition for "Fully-Qualified Domain Name" with the following: A Domain Name that includes the Domain Labels of all superior nodes in the Internet Domain Name System.

F. In Section 1.6.1 of the Baseline Requirements, REPLACE the definition for "Reserved IP Address" with the following: An IPv4 or IPv6 address that the IANA has "False" for Globally Reachable in either of the IANA Special-Purpose IP Address Registries:

https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml or

https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml

G. In Section 1.6.1 of the Baseline Requirements, REPLACE the definition for "Wildcard Certificate" with the following: A Certificate containing a Wildcard Domain Name in any of the Subject Alternative Names in the Certificate.

H. In Section 1.6.1 of the Baseline Requirements, INSERT the following definition: "Wildcard Domain Name: A Domain Name consisting of a single asterisk character ("*") followed by a single full stop character (".") followed by a Fully-Qualified Domain Name."

I. In Section 2.2 of the Baseline Requirements, INSERT the word "requested" in the fourth sentence between the words "processing CAA records for" and "Domain Names" so that it reads, "processing CAA records for requested Domain Names".

J. REPLACE the second paragraph of Section 3.2.2.4 of the Baseline Requirements so that it reads, "The CA SHALL confirm that, as of the date the Certificate issues, the CA has validated each Domain Name listed in the Certificate using at least one of the methods listed below, or is within the Domain Namespace of a Fully Qualified Domain Name (FQDN) that has been validated using at least one of the methods listed below (not including the method defined in section 3.2.2.4.8)."

K. REPLACE Section 3.2.2.6 of the Baseline Requirements in its entirety with:

3.2.2.6. Additional Validation for Wildcard Certificates

Before issuing a Wildcard Certificate, the CA MUST establish and follow a documented procedure[^pubsuffix] that determines if the FQDN portion of any Wildcard Domain Name in the certificate is “registry-controlled” or is a “public suffix” (e.g. “*.com”, “*.co.uk<http://co.uk/>”, see RFC 6454 Section 8.2 for further explanation).

If the FQDN portion of any Wildcard Domain Name in the certificate is "registry-controlled" or is a "public suffix", CAs MUST refuse issuance unless the applicant proves its rightful control of the entire Domain Namespace. (e.g. CAs MUST NOT issue "*.co.uk<http://co.uk/>" or "*.local", but MAY issue "*.example.com<http://example.com/>" to Example Co.).

[^pubsuffix] Determination of what is “registry-controlled” versus the registerable portion of a Country Code Top-Level Domain Namespace is not standardized at the time of writing and is not a property of the DNS itself. Current best practice is to consult a “public suffix list” such as http://publicsuffix.org/ (PSL), and to retrieve a fresh copy regularly. If using the PSL, a CA SHOULD consult the "ICANN DOMAINS" section only, not the "PRIVATE DOMAINS" section. The PSL is updated regularly to contain new gTLDs delegated by ICANN, which are listed in the "ICANN DOMAINS" section. A CA is not prohibited from issuing a Wildcard Certificate to the Registrant of an entire gTLD, provided that control of the entire namespace is demonstrated in an appropriate way.

L. REPLACE Section 7.1.4.2.1 of the Baseline Requirements in its entirety with:

7.1.4.2.1 Subject Alternative Name Extension

Certificate Field: extensions:subjectAltName

Required/Optional: Required

Contents: This extension MUST contain at least one entry. Each entry MUST be one of the following types:

1. dNSName: the entry MUST contain either a Fully-Qualified Domain Name or Wildcard Domain Name that the CA has validated in accordance with section 3.2.2.4. FQDNs and the FQDN portion of Wildcard DNs must comply with RFC 5280 section 4.2.1.6 with the following exception: underscore characters ("_") are allowed in Domain Labels such that replacing all underscore characters with hyphen characters ("-") would result in a valid Domain Label. CAs MUST NOT include Domain Labels which have hyphens as the third and fourth characters unless the first character is "x" or "X", the second character is "n" or "N", and the fifth and later characters are a valid Punycode string. CAs MUST additionally validate that Wildcard DNs are consistent with section 3.2.2.6. The entry MUST NOT contain an Internal Name.

2. iPAddress: the entry MUST contain an IP address that the CA has validated in accordance with Section 3.2.2.5. The entry MUST NOT contain a Reserved IP Address.

M. REPLACE subsection a. of Section 7.1.4.2.2 of the Baseline Requirements with:

a. Certificate Field: subject:commonName (OID 2.5.4.3)

Required/Optional: Deprecated (Discouraged, but not prohibited)

Contents: If present, this field MUST contain a single IP address or Domain Name that is one of the values contained in the Certificate’s subjectAltName extension (see Section 7.1.4.2.1). When including a Domain Name in a common name, CAs MUST only use LDH labels as defined in RFC 5890 and MUST NOT use U-labels. When including an IPv6 address in a common name, CAs MUST use a format conforming to Section 4 or Section 5 of RFC 5952. When including an IPv4 address in a common name, CAs MUST encode the name as an IPv4Address as defined in RFC 3986.

--Motion Ends--

The procedure for approval of this Final Maintenance Guideline ballot is as follows (exact start and end times may be adjusted to comply with applicable Bylaws and IPR Agreement):

BALLOT 202 Status: Final Maintenance Guideline Start time (22:00 UTC) End time (22:00 UTC)

Discussion (7 to 14 days) July 12, 2017 to July 19, 2017

Vote for approval (7 days) July 19, 2017 to July 26, 2017

If a vote of the Forum approves this ballot, the Chair will initiate a 30-day IPR Review Period by sending out an IPR Review Notice.

After 30 days of announcing the IPR Review period by the Chair:

(a) If Exclusion Notice(s) are filed, this ballot approval is rescinded and a PAG will be created; or (b) If no Exclusion Notices are filed, this ballot becomes effective at end of the IPR Review Period.

From Bylaw 2.3: If the Draft Guideline Ballot is proposing a Final Maintenance Guideline, such ballot will include a redline or comparison showing the set of changes from the Final Guideline section(s) intended to become a Final Maintenance Guideline, and need not include a copy of the full set of guidelines. Such redline or comparison shall be made against the Final Guideline section(s) as they exist at the time a ballot is proposed, and need not take into consideration other ballots that may be proposed subsequently, except as provided in Bylaw Section 2.3(j).

Votes must be cast by posting an on-list reply to this thread on the Public list. A vote in favor of the motion must indicate a clear 'yes' in the response. A vote against must indicate a clear 'no' in the response. A vote to abstain must indicate a clear 'abstain' in the response. Unclear responses will not be counted. The latest vote received from any representative of a voting member before the close of the voting period will be counted. Voting members are listed here: https://cabforum.org/members/

In order for the motion to be adopted, two thirds or more of the votes cast by members in the CA category and greater than 50% of the votes cast by members in the browser category must be in favor. Quorum is half of the number of currently active Members, which is the average number of Member organizations that have participated in the previous three Forum-wide meetings (both teleconferences and face-to-face meetings). Under Bylaw 2.2(g), at least the required quorum number must participate in the ballot for the ballot to be valid, either by voting in favor, voting against, or abstaining.


<Ballot 202.pdf>_______________________________________________
Public mailing list
Public at cabforum.org<mailto:Public at cabforum.org>
https://cabforum.org/mailman/listinfo/public

_______________________________________________
Public mailing list
Public at cabforum.org<mailto:Public at cabforum.org>
https://cabforum.org/mailman/listinfo/public


_______________________________________________
Public mailing list
Public at cabforum.org<mailto:Public at cabforum.org>
https://cabforum.org/mailman/listinfo/public




--
Erwann.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cabforum.org/pipermail/public/attachments/20170726/fcd01c7a/attachment-0001.html>


More information about the Public mailing list