396 lines
10 KiB
Plaintext
396 lines
10 KiB
Plaintext
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Network Working Group P. Hoffman
|
|||
|
Request for Comments: 3491 IMC & VPNC
|
|||
|
Category: Standards Track M. Blanchet
|
|||
|
Viagenie
|
|||
|
March 2003
|
|||
|
|
|||
|
|
|||
|
Nameprep: A Stringprep Profile for
|
|||
|
Internationalized Domain Names (IDN)
|
|||
|
|
|||
|
Status of this Memo
|
|||
|
|
|||
|
This document specifies an Internet standards track protocol for the
|
|||
|
Internet community, and requests discussion and suggestions for
|
|||
|
improvements. Please refer to the current edition of the "Internet
|
|||
|
Official Protocol Standards" (STD 1) for the standardization state
|
|||
|
and status of this protocol. Distribution of this memo is unlimited.
|
|||
|
|
|||
|
Copyright Notice
|
|||
|
|
|||
|
Copyright (C) The Internet Society (2003). All Rights Reserved.
|
|||
|
|
|||
|
Abstract
|
|||
|
|
|||
|
This document describes how to prepare internationalized domain name
|
|||
|
(IDN) labels in order to increase the likelihood that name input and
|
|||
|
name comparison work in ways that make sense for typical users
|
|||
|
throughout the world. This profile of the stringprep protocol is
|
|||
|
used as part of a suite of on-the-wire protocols for
|
|||
|
internationalizing the Domain Name System (DNS).
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
This document specifies processing rules that will allow users to
|
|||
|
enter internationalized domain names (IDNs) into applications and
|
|||
|
have the highest chance of getting the content of the strings
|
|||
|
correct. It is a profile of stringprep [STRINGPREP]. These
|
|||
|
processing rules are only intended for internationalized domain
|
|||
|
names, not for arbitrary text.
|
|||
|
|
|||
|
This profile defines the following, as required by [STRINGPREP].
|
|||
|
|
|||
|
- The intended applicability of the profile: internationalized
|
|||
|
domain names processed by IDNA.
|
|||
|
|
|||
|
- The character repertoire that is the input and output to
|
|||
|
stringprep: Unicode 3.2, specified in section 2.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hoffman & Blanchet Standards Track [Page 1]
|
|||
|
|
|||
|
RFC 3491 IDN Nameprep March 2003
|
|||
|
|
|||
|
|
|||
|
- The mappings used: specified in section 3.
|
|||
|
|
|||
|
- The Unicode normalization used: specified in section 4.
|
|||
|
|
|||
|
- The characters that are prohibited as output: specified in section
|
|||
|
5.
|
|||
|
|
|||
|
- Bidirectional character handling: specified in section 6.
|
|||
|
|
|||
|
1.1 Interaction of protocol parts
|
|||
|
|
|||
|
Nameprep is used by the IDNA [IDNA] protocol for preparing domain
|
|||
|
names; it is not designed for any other purpose. It is explicitly
|
|||
|
not designed for processing arbitrary free text and SHOULD NOT be
|
|||
|
used for that purpose. Nameprep is a profile of Stringprep
|
|||
|
[STRINGPREP]. Implementations of Nameprep MUST fully implement
|
|||
|
Stringprep.
|
|||
|
|
|||
|
Nameprep is used to process domain name labels, not domain names.
|
|||
|
IDNA calls nameprep for each label in a domain name, not for the
|
|||
|
whole domain name.
|
|||
|
|
|||
|
1.2 Terminology
|
|||
|
|
|||
|
The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
|
|||
|
in this document are to be interpreted as described in BCP 14, RFC
|
|||
|
2119 [RFC2119].
|
|||
|
|
|||
|
2. Character Repertoire
|
|||
|
|
|||
|
This profile uses Unicode 3.2, as defined in [STRINGPREP] Appendix A.
|
|||
|
|
|||
|
3. Mapping
|
|||
|
|
|||
|
This profile specifies mapping using the following tables from
|
|||
|
[STRINGPREP]:
|
|||
|
|
|||
|
Table B.1
|
|||
|
Table B.2
|
|||
|
|
|||
|
4. Normalization
|
|||
|
|
|||
|
This profile specifies using Unicode normalization form KC, as
|
|||
|
described in [STRINGPREP].
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hoffman & Blanchet Standards Track [Page 2]
|
|||
|
|
|||
|
RFC 3491 IDN Nameprep March 2003
|
|||
|
|
|||
|
|
|||
|
5. Prohibited Output
|
|||
|
|
|||
|
This profile specifies prohibiting using the following tables from
|
|||
|
[STRINGPREP]:
|
|||
|
|
|||
|
Table C.1.2
|
|||
|
Table C.2.2
|
|||
|
Table C.3
|
|||
|
Table C.4
|
|||
|
Table C.5
|
|||
|
Table C.6
|
|||
|
Table C.7
|
|||
|
Table C.8
|
|||
|
Table C.9
|
|||
|
|
|||
|
IMPORTANT NOTE: This profile MUST be used with the IDNA protocol.
|
|||
|
The IDNA protocol has additional prohibitions that are checked
|
|||
|
outside of this profile.
|
|||
|
|
|||
|
6. Bidirectional characters
|
|||
|
|
|||
|
This profile specifies checking bidirectional strings as described in
|
|||
|
[STRINGPREP] section 6.
|
|||
|
|
|||
|
7. Unassigned Code Points in Internationalized Domain Names
|
|||
|
|
|||
|
If the processing in [IDNA] specifies that a list of unassigned code
|
|||
|
points be used, the system uses table A.1 from [STRINGPREP] as its
|
|||
|
list of unassigned code points.
|
|||
|
|
|||
|
8. References
|
|||
|
|
|||
|
8.1 Normative References
|
|||
|
|
|||
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
|||
|
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
|||
|
|
|||
|
[STRINGPREP] Hoffman, P. and M. Blanchet, "Preparation of
|
|||
|
Internationalized Strings ("stringprep")", RFC 3454,
|
|||
|
December 2002.
|
|||
|
|
|||
|
[IDNA] Faltstrom, P., Hoffman, P. and A. Costello,
|
|||
|
"Internationalizing Domain Names in Applications
|
|||
|
(IDNA)", RFC 3490, March 2003.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hoffman & Blanchet Standards Track [Page 3]
|
|||
|
|
|||
|
RFC 3491 IDN Nameprep March 2003
|
|||
|
|
|||
|
|
|||
|
8.2 Informative references
|
|||
|
|
|||
|
[STD13] Mockapetris, P., "Domain names - concepts and
|
|||
|
facilities", STD 13, RFC 1034, and "Domain names -
|
|||
|
implementation and specification", STD 13, RFC 1035,
|
|||
|
November 1987.
|
|||
|
|
|||
|
9. Security Considerations
|
|||
|
|
|||
|
The Unicode and ISO/IEC 10646 repertoires have many characters that
|
|||
|
look similar. In many cases, users of security protocols might do
|
|||
|
visual matching, such as when comparing the names of trusted third
|
|||
|
parties. Because it is impossible to map similar-looking characters
|
|||
|
without a great deal of context such as knowing the fonts used,
|
|||
|
stringprep does nothing to map similar-looking characters together
|
|||
|
nor to prohibit some characters because they look like others.
|
|||
|
|
|||
|
Security on the Internet partly relies on the DNS. Thus, any change
|
|||
|
to the characteristics of the DNS can change the security of much of
|
|||
|
the Internet.
|
|||
|
|
|||
|
Domain names are used by users to connect to Internet servers. The
|
|||
|
security of the Internet would be compromised if a user entering a
|
|||
|
single internationalized name could be connected to different servers
|
|||
|
based on different interpretations of the internationalized domain
|
|||
|
name.
|
|||
|
|
|||
|
Current applications might assume that the characters allowed in
|
|||
|
domain names will always be the same as they are in [STD13]. This
|
|||
|
document vastly increases the number of characters available in
|
|||
|
domain names. Every program that uses "special" characters in
|
|||
|
conjunction with domain names may be vulnerable to attack based on
|
|||
|
the new characters allowed by this specification.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hoffman & Blanchet Standards Track [Page 4]
|
|||
|
|
|||
|
RFC 3491 IDN Nameprep March 2003
|
|||
|
|
|||
|
|
|||
|
10. IANA Considerations
|
|||
|
|
|||
|
This is a profile of stringprep. It has been registered by the IANA
|
|||
|
in the stringprep profile registry
|
|||
|
(www.iana.org/assignments/stringprep-profiles).
|
|||
|
|
|||
|
Name of this profile:
|
|||
|
Nameprep
|
|||
|
|
|||
|
RFC in which the profile is defined:
|
|||
|
This document.
|
|||
|
|
|||
|
Indicator whether or not this is the newest version of the
|
|||
|
profile:
|
|||
|
This is the first version of Nameprep.
|
|||
|
|
|||
|
11. Acknowledgements
|
|||
|
|
|||
|
Many people from the IETF IDN Working Group and the Unicode Technical
|
|||
|
Committee contributed ideas that went into this document.
|
|||
|
|
|||
|
The IDN Nameprep design team made many useful changes to the
|
|||
|
document. That team and its advisors include:
|
|||
|
|
|||
|
Asmus Freytag
|
|||
|
Cathy Wissink
|
|||
|
Francois Yergeau
|
|||
|
James Seng
|
|||
|
Marc Blanchet
|
|||
|
Mark Davis
|
|||
|
Martin Duerst
|
|||
|
Patrik Faltstrom
|
|||
|
Paul Hoffman
|
|||
|
|
|||
|
Additional significant improvements were proposed by:
|
|||
|
|
|||
|
Jonathan Rosenne
|
|||
|
Kent Karlsson
|
|||
|
Scott Hollenbeck
|
|||
|
Dave Crocker
|
|||
|
Erik Nordmark
|
|||
|
Matitiahu Allouche
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hoffman & Blanchet Standards Track [Page 5]
|
|||
|
|
|||
|
RFC 3491 IDN Nameprep March 2003
|
|||
|
|
|||
|
|
|||
|
12. Authors' Addresses
|
|||
|
|
|||
|
Paul Hoffman
|
|||
|
Internet Mail Consortium and VPN Consortium
|
|||
|
127 Segre Place
|
|||
|
Santa Cruz, CA 95060 USA
|
|||
|
|
|||
|
EMail: paul.hoffman@imc.org and paul.hoffman@vpnc.org
|
|||
|
|
|||
|
|
|||
|
Marc Blanchet
|
|||
|
Viagenie inc.
|
|||
|
2875 boul. Laurier, bur. 300
|
|||
|
Ste-Foy, Quebec, Canada, G1V 2M2
|
|||
|
|
|||
|
EMail: Marc.Blanchet@viagenie.qc.ca
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hoffman & Blanchet Standards Track [Page 6]
|
|||
|
|
|||
|
RFC 3491 IDN Nameprep March 2003
|
|||
|
|
|||
|
|
|||
|
13. Full Copyright Statement
|
|||
|
|
|||
|
Copyright (C) The Internet Society (2003). All Rights Reserved.
|
|||
|
|
|||
|
This document and translations of it may be copied and furnished to
|
|||
|
others, and derivative works that comment on or otherwise explain it
|
|||
|
or assist in its implementation may be prepared, copied, published
|
|||
|
and distributed, in whole or in part, without restriction of any
|
|||
|
kind, provided that the above copyright notice and this paragraph are
|
|||
|
included on all such copies and derivative works. However, this
|
|||
|
document itself may not be modified in any way, such as by removing
|
|||
|
the copyright notice or references to the Internet Society or other
|
|||
|
Internet organizations, except as needed for the purpose of
|
|||
|
developing Internet standards in which case the procedures for
|
|||
|
copyrights defined in the Internet Standards process must be
|
|||
|
followed, or as required to translate it into languages other than
|
|||
|
English.
|
|||
|
|
|||
|
The limited permissions granted above are perpetual and will not be
|
|||
|
revoked by the Internet Society or its successors or assigns.
|
|||
|
|
|||
|
This document and the information contained herein is provided on an
|
|||
|
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
|||
|
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
|||
|
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
|||
|
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
|||
|
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|||
|
|
|||
|
Acknowledgement
|
|||
|
|
|||
|
Funding for the RFC Editor function is currently provided by the
|
|||
|
Internet Society.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hoffman & Blanchet Standards Track [Page 7]
|
|||
|
|