RFC 8399
Internationalization Updates to RFC 5280
Internet Engineering Task Force (IETF) β¨ R. Housley π Request for Comments: 8399 π¦ Vigil Security π Updates: 5280 π May 2018 πΈ Category: Standards Track π ISSN: 2070-1721
Okay so this is RFC 8399, titled Internationalization Updates to RFC 5280 π. Bestie, the author is R. Housley from Vigil Security π«Ά. It's on the Standards Track π, so it's an actual official Internet standard, not just a vibe. It was published in May 2018 π , and it updates RFC 5280 π₯, which is the big X.509 certificate spec. Nothing is obsoleted here, it just patches a few parts of 5280.
Part 2 is coming with the rest of the document, so stay tuned π.
Abstract β¨
Okay so the whole point of this doc is to bring RFC 5280 up to speed π . It lines things up with the 2008 spec for Internationalized Domain Names (IDNs) π, and it adds support for internationalized email addresses inside X.509 certificates π§. It's giving glow-up energy, honestly π¦.
Status of This Memo π
This is an Internet Standards Track document π.
It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community π«Ά. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG) π. If you want more on Internet Standards, check Section 2 of RFC 7841 πΈ.
For the current status, any errata, and how to give feedback, go to https://www.rfc-editor.org/info/rfc8399 π. Literally the official page, no cap.
Copyright Notice π
Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved π.
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they were on the date of publication π. Read them carefully, because they explain your rights and restrictions π. Code Components pulled out of this document have to include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty as described in that license π.
This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008 β¨. The people controlling copyright in some of that older material might not have given the IETF Trust permission to allow modifications outside the IETF Standards Process π. So unless you get an adequate license from them, this document may not be modified outside the IETF Standards Process, and derivative works may not be created outside it either. The only exceptions are formatting it for publication as an RFC or translating it into languages other than English π§.
Table of Contents π
- Introduction ....................................................3 1.1. Terminology ................................................3
- Updates to RFC 5280 .............................................3 2.1. Update in the Introduction (Section 1) .....................4 2.2. Update in Name Constraints (Section 4.2.1.10) ..............4 2.3. Update in IDNs in GeneralName (Section 7.2) ................5 2.4. Update in IDNs in Distinguished Names (Section 7.3) ........6 2.5. Update in Internationalized Electronic Mail Addresses (Section 7.5) ....................................6
- Security Considerations .........................................7
- IANA Considerations .............................................8
- References ......................................................8 5.1. Normative References .......................................8 5.2. Informative References .....................................9 Acknowledgements ...................................................9 Author's Address ...................................................9
1. Introduction π¦
Okay so this doc updates three things in RFC 5280 [RFC5280] π . First, the Introduction in Section 1. Second, the Name Constraints certificate extension discussion in Section 4.2.1.10. Third, the Processing Rules for Internationalized Names in Section 7. The goal is to line everything up with the 2008 spec for Internationalized Domain Names (IDNs) and add support for internationalized email addresses in X.509 certificates πΈ.
An IDN in Unicode (native character) form has at least one U-label [RFC5890] π. With one exception, IDNs go into certificates in ACE-encoded form π. That means all the U-labels in an IDN get converted to A-labels π. You can find how to convert a U-label to an A-label in [RFC5891] β¨.
The GeneralName structure supports lots of name forms, including otherName for extensibility π§. RFC 8398 [RFC8398] specifies the SmtpUTF8Mailbox for internationalized email addresses, and that includes IDNs with U-labels π.
Heads up, the Internationalized Domain Names in Applications specs from 2003 (IDNA2003) [RFC3490] and 2008 (IDNA2008) [RFC5890] both point to the Punycode algorithm for conversion [RFC3492] π.
1.1. Terminology π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] π when, and only when, they appear in all capitals, as shown here π.
2. Updates to RFC 5280 π
This section has the updates to a few paragraphs of RFC 5280 [RFC5280] π . For clarity, if the whole section isn't replaced, the original text and the replacement text both get shown π«Ά.
2.1. Update in the Introduction (Section 1) β¨
This update adds references for IDNA2008 π.
OLD
- Enhanced support for internationalized names is specified in Section 7, with rules for encoding and comparing Internationalized Domain Names, Internationalized Resource Identifiers (IRIs), and distinguished names. These rules are aligned with comparison rules established in current RFCs, including [RFC3490], [RFC3987], and [RFC4518].
NEW
- Enhanced support for internationalized names is specified in Section 7, with rules for encoding and comparing Internationalized Domain Names, Internationalized Resource Identifiers (IRIs), and distinguished names. These rules are aligned with comparison rules established in current RFCs, including [RFC3987], [RFC4518], [RFC5890], and [RFC5891].
2.2. Update in Name Constraints (Section 4.2.1.10) π₯
This update removes the ability to include constraints for a particular mailbox π. Nobody was using it, so removing it lets name constraints apply to email addresses in rfc822Name and SmtpUTF8Mailbox [RFC8398] inside otherName π.
OLD
A name constraint for Internet mail addresses MAY specify a particular mailbox, all addresses at a particular host, or all mailboxes in a domain. To indicate a particular mailbox, the constraint is the complete mail address. For example, "root@example.com" indicates the root mailbox on the host "example.com". To indicate all Internet mail addresses on a particular host, the constraint is specified as the host name. For example, the constraint "example.com" is satisfied by any mail address at the host "example.com". To specify any address within a domain, the constraint is specified with a leading period (as with URIs). For example, ".example.com" indicates all the Internet mail addresses in the domain "example.com", but not Internet mail addresses on the host "example.com".
NEW
A name constraint for Internet mail addresses MAY specify all addresses at a particular host or all mailboxes in a domain. To indicate all Internet mail addresses on a particular host, the constraint is specified as the host name. For example, the constraint "example.com" is satisfied by any mail address at the host "example.com". To specify any address within a domain, the constraint is specified with a leading period (as with URIs). For example, ".example.com" indicates all the Internet mail addresses in the domain "example.com" but not Internet mail addresses on the host "example.com".
2.3. Update in IDNs in GeneralName (Section 7.2) πΈ
This update lines things up with IDNA2008 π§. Since all of Section 7.2 gets replaced, there's no OLD text π.
NEW
Internationalized Domain Names (IDNs) may be included in certificates and CRLs in the subjectAltName and issuerAltName extensions, name constraints extension, authority information access extension, subject information access extension, CRL distribution points extension, and issuing distribution point extension. Each of these extensions uses the GeneralName type; one choice in GeneralName is the dNSName field, which is defined as type IA5String.
IA5String is limited to the set of ASCII characters. To accommodate IDNs, U-labels are converted to A-labels. The A-label is the encoding of the U-label according to the Punycode algorithm [RFC3492] with the ACE prefix "xn--" added at the beginning of the string.
When comparing DNS names for equality, conforming implementations MUST perform a case-insensitive exact match on the entire DNS name. When evaluating name constraints, conforming implementations MUST perform a case-insensitive exact match on a label-by-label basis. As noted in Section 4.2.1.10, any DNS name that may be constructed by adding labels to the left-hand side of the domain name given as the constraint is considered to fall within the indicated subtree.
Implementations SHOULD convert IDNs to Unicode before display. Specifically, conforming implementations convert A-labels to U-labels for display.
Implementation consideration: There are increased memory requirements for IDNs. An IDN ACE label will begin with the four additional characters "xn--", and an IDN can require as many as five ASCII characters to specify a single international character.
2.4. Update in IDNs in Distinguished Names (Section 7.3) π
This update lines things up with IDNA2008 β¨.
OLD
Domain Names may also be represented as distinguished names using domain components in the subject field, the issuer field, the subjectAltName extension, or the issuerAltName extension. As with the dNSName in the GeneralName type, the value of this attribute is defined as an IA5String. Each domainComponent attribute represents a single label. To represent a label from an IDN in the distinguished name, the implementation MUST perform the "ToASCII" label conversion specified in Section 4.1 of RFC 3490. The label SHALL be considered a "stored string". That is, the AllowUnassigned flag SHALL NOT be set.
NEW
Domain names may also be represented as distinguished names using domain components in the subject field, the issuer field, the subjectAltName extension, or the issuerAltName extension. As with the dNSName in the GeneralName type, the value of this attribute is defined as an IA5String. Each domainComponent attribute represents a single label. To represent a label from an IDN in the distinguished name, the implementation MUST convert all U-labels to A-labels.
2.5. Update in Internationalized Electronic Mail Addresses (Section 7.5) π§π
okay so this update is all about making email addresses work with IDNA2008 and [RFC8398], which is giving alignment energy π«Ά Since all of Section 7.5 gets replaced, there's no OLD text to show, just the NEW version π
NEW
Email addresses can show up in certificates and CRLs inside the subjectAltName and issuerAltName extensions, the name constraints extension, the authority information access extension, the subject information access extension, the issuing distribution point extension, or the CRL distribution points extension. Every one of these uses the GeneralName construct π If the email address has an IDN in it but the local-part can be written in ASCII, the address goes in the rfc822Name choice of GeneralName, which is typed as IA5String. If the local-part can't be written in ASCII, the internationalized email address goes in the otherName choice of GeneralName, following the conventions in [RFC8398] π¦
7.5.1. Local-Part Contains Only ASCII Characters
When the host-part has an IDN, conforming implementations MUST convert all U-labels to A-labels πΈ
Two email addresses are considered to match if:
- the local-part of each name is an exact match, AND
- the host-part of each name matches using a case-insensitive ASCII comparison.
Implementations SHOULD convert the host-part of internationalized email addresses in these extensions to Unicode before display. To be specific, conforming implementations convert A-labels to U-labels for display β¨
7.5.2. Local-Part Contains Non-ASCII Characters
When the local-part has non-ASCII characters, conforming implementations MUST place the internationalized email address in the SmtpUTF8Mailbox inside the otherName choice of GeneralName, as specified in Section 3 of [RFC8398] π Note that the UTF8 encoding of the internationalized email address MUST NOT contain a Byte-Order-Mark (BOM) [RFC3629] to aid comparison. No BOM, no drama π
ββοΈ
The comparison of two internationalized email addresses is specified in Section 5 of [RFC8398] π
Implementations SHOULD convert the host-part of internationalized email addresses in these extensions to Unicode before display. To be specific, conforming implementations convert A-labels to U-labels for display π
3. Security Considerations π‘οΈ
okay this part is SERIOUS bestie, so read carefully π Conforming CAs SHOULD ensure that IDNs are valid. You can do that by validating all code points according to IDNA2008 [RFC5892]. If you don't use valid A-labels and valid U-labels, you might end up with a domain name that can't be correctly represented in the Domain Name System (DNS). That is a whole mess π Also, the CA/Browser Forum has some guidance about internal server names in certificates [CABF], so go check that out π
4. IANA Considerations π§
This document has no IANA actions β¨ Nothing to register here, bestie π
5. References
5.1. Normative References π
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.
[RFC3492] Costello, A., "Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)", RFC 3492, DOI 10.17487/RFC3492, March 2003, <https://www.rfc-editor.org/info/rfc3492>.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November 2003, <https://www.rfc-editor.org/info/rfc3629>.
[RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource Identifiers (IRIs)", RFC 3987, DOI 10.17487/RFC3987, January 2005, <https://www.rfc-editor.org/info/rfc3987>.
[RFC4518] Zeilenga, K., "Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation", RFC 4518, DOI 10.17487/RFC4518, June 2006, <https://www.rfc-editor.org/info/rfc4518>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, <https://www.rfc-editor.org/info/rfc5280>.
[RFC5890] Klensin, J., "Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework", RFC 5890, DOI 10.17487/RFC5890, August 2010, <https://www.rfc-editor.org/info/rfc5890>.
[RFC5891] Klensin, J., "Internationalized Domain Names in Applications (IDNA): Protocol", RFC 5891, DOI 10.17487/RFC5891, August 2010, <https://www.rfc-editor.org/info/rfc5891>.
[RFC5892] Faltstrom, P., Ed., "The Unicode Code Points and Internationalized Domain Names for Applications (IDNA)", RFC 5892, DOI 10.17487/RFC5892, August 2010, <https://www.rfc-editor.org/info/rfc5892>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8398] Melnikov, A., Ed. and W. Chuang, Ed., "Internationalized Email Addresses in X.509 Certificates", DOI 10.17487/RFC8398, May 2016, <http://www.rfc-editor.org/info/rfc8398>.
5.2. Informative References π
[CABF] CA/Browser Forum, "Internal Server Names and IP Address Requirements for SSL: Guidance on the Deprecation of Internal Server Names and Reserved IP Addresses provided by the CA/Browser Forum", Version 1.0, June 2012, <https://cabforum.org/internal-names/>.
[RFC3490] Faltstrom, P., Hoffman, P., and A. Costello, "Internationalizing Domain Names in Applications (IDNA)", RFC 3490, DOI 10.17487/RFC3490, March 2003, <https://www.rfc-editor.org/info/rfc3490>.
Acknowledgements π«Ά
Huge thanks to Alexey Melnikov for the encouragement to write this update π Thanks also to John Klensin and Patrik Falstrom for confirming many of the details in this update. And thanks to Ben Campbell, Wei Chuang, Spencer Dawkins, Phillip Hallam-Baker, Warren Kumari, Alexey Melnikov, Adam Roach, Tim Ruehsen, and Sean Turner for their careful review and comments π
Author's Address π
Russ Housley Vigil Security, LLC 918 Spring Knoll Drive Herndon, VA 20170 United States of America
Email: housley@vigilsec.com
π¦ where this page comes from
- ietf: rfc8399 2018-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms