| < draft-ietf-idnabis-defs-12.txt | draft-ietf-idnabis-defs-13.txt > | |||
|---|---|---|---|---|
| Network Working Group J. Klensin | Network Working Group J. Klensin | |||
| Internet-Draft October 25, 2009 | Internet-Draft January 7, 2010 | |||
| Obsoletes: 3490 (if approved) | Obsoletes: 3490 (if approved) | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: April 28, 2010 | Expires: July 11, 2010 | |||
| Internationalized Domain Names for Applications (IDNA): Definitions and | Internationalized Domain Names for Applications (IDNA): Definitions and | |||
| Document Framework | Document Framework | |||
| draft-ietf-idnabis-defs-12.txt | draft-ietf-idnabis-defs-13.txt | |||
| Abstract | ||||
| This document is one of a collection that, together, describe the | ||||
| protocol and usage context for a revision of Internationalized Domain | ||||
| Names for Applications (IDNA), superseding the earlier version. It | ||||
| describes the document collection and provides definitions and other | ||||
| material that are common to the set. | ||||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
| provisions of BCP 78 and BCP 79. This document may contain material | provisions of BCP 78 and BCP 79. | |||
| from IETF Documents or IETF Contributions published or made publicly | ||||
| available before November 10, 2008. The person(s) controlling the | ||||
| copyright in some of this material may not have granted the IETF | ||||
| Trust the right to allow modifications of such material outside the | ||||
| IETF Standards Process. Without obtaining an adequate license from | ||||
| the person(s) controlling the copyright in such materials, this | ||||
| document may not be modified outside the IETF Standards Process, and | ||||
| derivative works of it may not be created outside the IETF Standards | ||||
| Process, except to format it for publication as an RFC or to | ||||
| translate it into languages other than English. | ||||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on April 28, 2010. | This Internet-Draft will expire on July 11, 2010. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2009 IETF Trust and the persons identified as the | Copyright (c) 2010 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents in effect on the date of | Provisions Relating to IETF Documents | |||
| publication of this document (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | ||||
| Abstract | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | ||||
| described in the BSD License. | ||||
| This document is one of a collection that, together, describe the | This document may contain material from IETF Documents or IETF | |||
| protocol and usage context for a revision of Internationalized Domain | Contributions published or made publicly available before November | |||
| Names for Applications (IDNA), superseding the earlier version. It | 10, 2008. The person(s) controlling the copyright in some of this | |||
| describes the document collection and provides definitions and other | material may not have granted the IETF Trust the right to allow | |||
| material that are common to the set. | modifications of such material outside the IETF Standards Process. | |||
| Without obtaining an adequate license from the person(s) controlling | ||||
| the copyright in such materials, this document may not be modified | ||||
| outside the IETF Standards Process, and derivative works of it may | ||||
| not be created outside the IETF Standards Process, except to format | ||||
| it for publication as an RFC or to translate it into languages other | ||||
| than English. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1. IDNA2008 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. IDNA2008 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1.1. Audiences . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1.1. Audiences . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1.2. Normative Language . . . . . . . . . . . . . . . . . . 5 | 1.1.2. Normative Language . . . . . . . . . . . . . . . . . . 5 | |||
| 1.2. Discussion Forum . . . . . . . . . . . . . . . . . . . . . 5 | 1.2. Discussion Forum . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.3. Roadmap of IDNA2008 Documents . . . . . . . . . . . . . . 5 | 1.3. Roadmap of IDNA2008 Documents . . . . . . . . . . . . . . 5 | |||
| 2. Definitions and Terminology . . . . . . . . . . . . . . . . . 6 | 2. Definitions and Terminology . . . . . . . . . . . . . . . . . 6 | |||
| skipping to change at page 3, line 4 ¶ | skipping to change at page 3, line 38 ¶ | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
| 4.1. General Issues . . . . . . . . . . . . . . . . . . . . . . 16 | 4.1. General Issues . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 4.2. U-label Lengths . . . . . . . . . . . . . . . . . . . . . 16 | 4.2. U-label Lengths . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 4.3. Local Character Set Issues . . . . . . . . . . . . . . . . 17 | 4.3. Local Character Set Issues . . . . . . . . . . . . . . . . 17 | |||
| 4.4. Visually Similar Characters . . . . . . . . . . . . . . . 17 | 4.4. Visually Similar Characters . . . . . . . . . . . . . . . 17 | |||
| 4.5. IDNA Lookup, Registration, and the Base DNS | 4.5. IDNA Lookup, Registration, and the Base DNS | |||
| Specifications . . . . . . . . . . . . . . . . . . . . . . 18 | Specifications . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 4.6. Legacy IDN Label Strings . . . . . . . . . . . . . . . . . 18 | 4.6. Legacy IDN Label Strings . . . . . . . . . . . . . . . . . 18 | |||
| 4.7. Security Differences from IDNA2003 . . . . . . . . . . . . 19 | 4.7. Security Differences from IDNA2003 . . . . . . . . . . . . 19 | |||
| 4.8. Summary . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 4.8. Summary . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 | 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . . 20 | 6.1. Normative References . . . . . . . . . . . . . . . . . . . 20 | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . . 21 | 6.2. Informative References . . . . . . . . . . . . . . . . . . 21 | |||
| Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 22 | Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 22 | |||
| A.1. Version -00 . . . . . . . . . . . . . . . . . . . . . . . 23 | A.1. Version -00 . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| A.2. Version -01 . . . . . . . . . . . . . . . . . . . . . . . 23 | A.2. Version -01 . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| A.3. Version -02 . . . . . . . . . . . . . . . . . . . . . . . 23 | A.3. Version -02 . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| A.4. Version -03 . . . . . . . . . . . . . . . . . . . . . . . 23 | A.4. Version -03 . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| A.5. Version -04 . . . . . . . . . . . . . . . . . . . . . . . 23 | A.5. Version -04 . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| A.6. Version -05 . . . . . . . . . . . . . . . . . . . . . . . 24 | A.6. Version -05 . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| A.7. Version -06 . . . . . . . . . . . . . . . . . . . . . . . 24 | A.7. Version -06 . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| A.8. Version -07 . . . . . . . . . . . . . . . . . . . . . . . 24 | A.8. Version -07 . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| A.9. Version -08 . . . . . . . . . . . . . . . . . . . . . . . 24 | A.9. Version -08 . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| A.10. Version -09 . . . . . . . . . . . . . . . . . . . . . . . 25 | A.10. Version -09 . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| A.11. Version -10 . . . . . . . . . . . . . . . . . . . . . . . 25 | A.11. Version -10 . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| A.12. Version -11 . . . . . . . . . . . . . . . . . . . . . . . 25 | A.12. Version -11 . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| A.13. Version -12 . . . . . . . . . . . . . . . . . . . . . . . 26 | A.13. Version -12 . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| A.14. Version -13 . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 26 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 1. Introduction | 1. Introduction | |||
| 1.1. IDNA2008 | 1.1. IDNA2008 | |||
| This document is one of a collection that, together, describe the | This document is one of a collection that, together, describe the | |||
| protocol and usage context for a revision of Internationalized Domain | protocol and usage context for a revision of Internationalized Domain | |||
| Names for Applications (IDNA) that was largely completed in 2008, | Names for Applications (IDNA) that was largely completed in 2008, | |||
| known within the series and elsewhere as IDNA2008. The series | known within the series and elsewhere as IDNA2008. The series | |||
| skipping to change at page 5, line 48 ¶ | skipping to change at page 6, line 48 ¶ | |||
| replaces RFC 3490. It is referred to informally in other | replaces RFC 3490. It is referred to informally in other | |||
| documents in the set as "Protocol". | documents in the set as "Protocol". | |||
| o A document [IDNA2008-Bidi] that specifies special rules ("Bidi") | o A document [IDNA2008-Bidi] that specifies special rules ("Bidi") | |||
| for labels that contain characters that are written from right to | for labels that contain characters that are written from right to | |||
| left. | left. | |||
| o A specification [IDNA2008-Tables] of the categories and rules that | o A specification [IDNA2008-Tables] of the categories and rules that | |||
| identify the code points allowed in a label written in native | identify the code points allowed in a label written in native | |||
| character form (defined more specifically as a "U-label" in | character form (defined more specifically as a "U-label" in | |||
| Section 2.3.2.1 below), based on Unicode 5.1 [Unicode51] code | Section 2.3.2.1 below), based on Unicode 5.2 [Unicode52] code | |||
| point assignments and additional rules unique to IDNA2008. The | point assignments and additional rules unique to IDNA2008. The | |||
| Unicode-based rules are expected to be stable across Unicode | Unicode-based rules are expected to be stable across Unicode | |||
| updates and hence independent of Unicode versions. That | updates and hence independent of Unicode versions. That | |||
| specification obsoletes RFC 3941 and IDN use of the tables to | specification obsoletes RFC 3941 and IDN use of the tables to | |||
| which it refers. It is referred to informally in other documents | which it refers. It is referred to informally in other documents | |||
| in the set as "Tables". | in the set as "Tables". | |||
| o A document [IDNA2008-Mapping] that discusses the issue of mapping | o A document [IDNA2008-Mapping] that discusses the issue of mapping | |||
| characters into other characters and that provides guidance for | characters into other characters and that provides guidance for | |||
| doing so when that is appropriate. This document provides advice; | doing so when that is appropriate. This document provides advice; | |||
| it is not a required part of IDNA. | it is not a required part of IDNA. | |||
| 2. Definitions and Terminology | 2. Definitions and Terminology | |||
| 2.1. Characters and Character Sets | 2.1. Characters and Character Sets | |||
| A code point is an integer value in the codespace of a coded | A code point is an integer value in the codespace of a coded | |||
| character set. In Unicode, these are integers from 0 to 0x10FFFF. | character set. In Unicode, these are integers from 0 to 0x10FFFF. | |||
| Unicode [Unicode51] is a coded character set with about 100,000 | Unicode [Unicode52] is a coded character set with about 100,000 | |||
| characters assigned to code points as of version 5.1. A single | characters assigned to code points as of version 5.1. A single | |||
| Unicode code point is denoted in these documents by "U+" followed by | Unicode code point is denoted in these documents by "U+" followed by | |||
| four to six hexadecimal digits, while a range of Unicode code points | four to six hexadecimal digits, while a range of Unicode code points | |||
| is denoted by two four to six digit hexadecimal numbers separated by | is denoted by two four to six digit hexadecimal numbers separated by | |||
| "..", with no prefixes. | "..", with no prefixes. | |||
| ASCII means US-ASCII [ASCII], a coded character set containing 128 | ASCII means US-ASCII [ASCII], a coded character set containing 128 | |||
| characters associated with code points in the range 0000..007F. | characters associated with code points in the range 0000..007F. | |||
| Unicode is a superset of ASCII and may be thought of as a | Unicode is a superset of ASCII and may be thought of as a | |||
| generalization of it; it includes all the ASCII characters and | generalization of it; it includes all the ASCII characters and | |||
| associates them with equivalent code points. | associates them with equivalent code points. | |||
| "Letters" are, informally, generalizations from the ASCII and common- | "Letters" are, informally, generalizations from the ASCII and common- | |||
| sense understanding of that term, i.e., characters that are used to | sense understanding of that term, i.e., characters that are used to | |||
| write text that are not digits, symbols, or punctuation. Formally, | write text that are not digits, symbols, or punctuation. Formally, | |||
| they are characters with a Unicode General Category value starting in | they are characters with a Unicode General Category value starting in | |||
| "L" (see Section 4.5 of [Unicode51]). | "L" (see Section 4.5 of [Unicode52]). | |||
| 2.2. DNS-related Terminology | 2.2. DNS-related Terminology | |||
| When discussing the DNS, this document generally assumes the | When discussing the DNS, this document generally assumes the | |||
| terminology used in the DNS specifications [RFC1034] [RFC1035] as | terminology used in the DNS specifications [RFC1034] [RFC1035] as | |||
| modified by [RFC1123] and [RFC2181]. The term "lookup" is used to | modified by [RFC1123] and [RFC2181]. The term "lookup" is used to | |||
| describe the combination of operations performed by the IDNA2008 | describe the combination of operations performed by the IDNA2008 | |||
| protocol and those actually performed by a DNS resolver. The process | protocol and those actually performed by a DNS resolver. The process | |||
| of placing an entry into the DNS is referred to as "registration", | of placing an entry into the DNS is referred to as "registration", | |||
| similar to common contemporary usage in other contexts. | similar to common contemporary usage in other contexts. | |||
| skipping to change at page 8, line 33 ¶ | skipping to change at page 9, line 33 ¶ | |||
| Punycode algorithm RFC 3492 [RFC3492] and those that are not (see | Punycode algorithm RFC 3492 [RFC3492] and those that are not (see | |||
| below). The XN-labels that are valid Punycode output are known as | below). The XN-labels that are valid Punycode output are known as | |||
| "A-labels" if they also meet the other criteria for IDNA-validity | "A-labels" if they also meet the other criteria for IDNA-validity | |||
| described below. Because LDH-labels (and, indeed, any DNS label) | described below. Because LDH-labels (and, indeed, any DNS label) | |||
| must not be more than 63 octets in length, the Punycode-algorithm- | must not be more than 63 octets in length, the Punycode-algorithm- | |||
| derived portion of XN-labels is limited to no more than 59 ASCII | derived portion of XN-labels is limited to no more than 59 ASCII | |||
| characters. Non-reserved LDH labels are the set of valid LDH labels | characters. Non-reserved LDH labels are the set of valid LDH labels | |||
| that do not have "--" in the third and fourth positions. | that do not have "--" in the third and fourth positions. | |||
| A consequence of the restrictions on valid characters in the native | A consequence of the restrictions on valid characters in the native | |||
| Unicode character form (see U-labels turns out to be that mixed-case | Unicode character form (see U-labels) turns out to be that mixed-case | |||
| annotation, of the sort outlined in RFC 3492 Appendix A [RFC3492], is | annotation, of the sort outlined in RFC 3492 Appendix A [RFC3492], is | |||
| never useful. Therefore, since a valid A-label is the result of | never useful. Therefore, since a valid A-label is the result of | |||
| Punycode encoding of a U-label, A-labels should be produced only in | Punycode encoding of a U-label, A-labels should be produced only in | |||
| lower case, despite matching other (mixed- or upper-case) potential | lower case, despite matching other (mixed- or upper-case) potential | |||
| labels in the DNS. | labels in the DNS. | |||
| Some labels that are prefixed with "xn--" may not be the output of | Some labels that are prefixed with "xn--" may not be the output of | |||
| the Punycode algorithm, or may fail the other tests outlined below or | the Punycode algorithm, or may fail the other tests outlined below or | |||
| violate other IDNA restrictions and thus are also not valid IDNA- | violate other IDNA restrictions and thus are also not valid IDNA- | |||
| labels. They are called "Fake A-Labels" for convenience. | labels. They are called "Fake A-Labels" for convenience. | |||
| skipping to change at page 20, line 48 ¶ | skipping to change at page 21, line 48 ¶ | |||
| and Support", STD 3, RFC 1123, October 1989. | and Support", STD 3, RFC 1123, October 1989. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [Unicode-UAX15] | [Unicode-UAX15] | |||
| The Unicode Consortium, "Unicode Standard Annex #15: | The Unicode Consortium, "Unicode Standard Annex #15: | |||
| Unicode Normalization Forms", March 2008, | Unicode Normalization Forms", March 2008, | |||
| <http://www.unicode.org/reports/tr15/>. | <http://www.unicode.org/reports/tr15/>. | |||
| [Unicode51] | [Unicode52] | |||
| The Unicode Consortium, "The Unicode Standard, Version | The Unicode Consortium, "The Unicode Standard, Version | |||
| 5.1.0", 2008. | 5.2.0", 2009. | |||
| defined by: The Unicode Standard, Version 5.0, Boston, MA, | defined by: The Unicode Standard, Version 5.0, Boston, MA, | |||
| Addison-Wesley, 2007, ISBN 0-321-48091-0, as amended by | Addison-Wesley, 2007, ISBN 0-321-48091-0, as amended by | |||
| Unicode 5.1.0 | Unicode 5.1.0 (2008) | |||
| (http://www.unicode.org/versions/Unicode5.1.0/). | (http://www.unicode.org/versions/Unicode5.1.0/) and | |||
| Unicode 5.2.0 (2009) | ||||
| (http://www.unicode.org/versions/Unicode5.2.0/). | ||||
| 6.2. Informative References | 6.2. Informative References | |||
| [IDNA2008-Bidi] | [IDNA2008-Bidi] | |||
| Alvestrand, H. and C. Karp, "An updated IDNA criterion for | Alvestrand, H. and C. Karp, "An updated IDNA criterion for | |||
| right to left scripts", August 2009, <https:// | right to left scripts", August 2009, <https:// | |||
| datatracker.ietf.org/drafts/draft-ietf-idnabis-bidi/>. | datatracker.ietf.org/drafts/draft-ietf-idnabis-bidi/>. | |||
| [IDNA2008-Mapping] | [IDNA2008-Mapping] | |||
| Resnick, P. and P. Hoffman, "Mapping Characters in IDNA", | Resnick, P. and P. Hoffman, "Mapping Characters in IDNA", | |||
| skipping to change at page 26, line 36 ¶ | skipping to change at page 27, line 36 ¶ | |||
| o Made another round of patches to the case-sensitivity of A-labels. | o Made another round of patches to the case-sensitivity of A-labels. | |||
| (James Mitchell, 20091014) | (James Mitchell, 20091014) | |||
| o Removed the "selected protocols" handwaving from Section 2.3.2.1. | o Removed the "selected protocols" handwaving from Section 2.3.2.1. | |||
| (Peter Saint-Andre, 20091019) | (Peter Saint-Andre, 20091019) | |||
| o Some minor corrections requested by Suresh Krishnan in the Gen-ART | o Some minor corrections requested by Suresh Krishnan in the Gen-ART | |||
| review of 20091016. | review of 20091016. | |||
| A.14. Version -13 | ||||
| Version incorporating IESG post-Last-Call review and evaluation | ||||
| comments. | ||||
| o Editorial and reference corrections, including bringing Unicode | ||||
| reference to 5.2. | ||||
| Author's Address | Author's Address | |||
| John C Klensin | John C Klensin | |||
| 1770 Massachusetts Ave, Ste 322 | 1770 Massachusetts Ave, Ste 322 | |||
| Cambridge, MA 02140 | Cambridge, MA 02140 | |||
| USA | USA | |||
| Phone: +1 617 245 1457 | Phone: +1 617 245 1457 | |||
| Email: john+ietf@jck.com | Email: john+ietf@jck.com | |||
| End of changes. 18 change blocks. | ||||
| 36 lines changed or deleted | 52 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||