Internationalized domain name

An internationalized domain name (IDN) is an Internet domain name that contains at least one label that is displayed in software applications, in whole or in part, in a language-specific script or alphabet, such as Arabic, Chinese, Cyrillic, Devanagari, Hebrew or the Latin alphabet-based characters with diacritics or ligatures, such as French. These writing systems are encoded by computers in multibyte Unicode. Internationalized domain names are stored in the Domain Name System (DNS) as ASCII strings using Punycode transcription.
The DNS, which performs a lookup service to translate user-friendly names into network addresses for locating Internet resources, is restricted in practice to the use of ASCII characters, a practical limitation that initially set the standard for acceptable domain names. The internationalization of domain names is a technical solution to translate names written in language-native scripts into an ASCII text representation that is compatible with the DNS. Internationalized domain names can only be used with applications that are specifically designed for such use; they require no changes in the infrastructure of the Internet.
IDN was originally proposed in December 1996 by Martin Dürst and implemented in 1998 by Tan Juay Kwang and Leong Kok Yong under the guidance of Tan Tin Wee. After much debate and many competing proposals, a system called "Internationalizing Domain Names in Applications" (IDNA) was adopted as a standard, and has been implemented in several top-level domains.
In IDNA, the term "internationalized domain name" means specifically any domain name consisting only of labels to which the IDNA ToASCII algorithm (see below) can be successfully applied. In March 2008, the IETF formed a new IDN working group to update the current IDNA protocol. In April 2008, UN-ESCWA together with the Public Interest Registry (PIR) and Afilias launched the Arabic Script in IDNs Working Group (ASIWG), which comprised experts in DNS, ccTLD operators, business, academia, as well as members of regional and international organizations. Chaired by Afilias' Ram Mohan, ASIWG aims to develop a unified IDN table for the Arabic script, and constituted an example of community collaboration that helps local and regional expertise engage in global policy development as well as technical standardization.
In October 2009, the Internet Corporation for Assigned Names and Numbers (ICANN) approved the creation of internationalized country code top-level domains (IDN ccTLDs) in the Internet that use the IDNA standard for native language scripts. In May 2010 the first IDN ccTLD were installed in the DNS root zone.
Internationalizing Domain Names in Applications.
Internationalizing Domain Names in Applications (IDNA) is a mechanism defined in 2003 for handling internationalized domain names containing non-ASCII characters.
Although the Domain Name System supports non-ASCII characters, applications such as e-mail and web browsers restrict the characters which can be used as domain names for purposes such as a hostname. Strictly speaking, it is the network protocols these applications use that have restrictions on the characters which can be used in domain names, not the applications that have these limitations or the DNS itself. To retain backwards compatibility with the installed base, the IETF IDNA Working Group decided that internationalized domain names should be converted to a suitable ASCII-based form that could be handled by web browsers and other user applications. IDNA specifies how this conversion between names written in non-ASCII characters and their ASCII-based representation is performed.
An IDNA-enabled application is able to convert between the internationalized and ASCII representations of a domain name. It uses the ASCII form for DNS lookups but can present the internationalized form to users who presumably prefer to read and write domain names in non-ASCII scripts such as Arabic or Hiragana. Applications that do not support IDNA will not be able to handle domain names with non-ASCII characters, but will still be able to access such domains if given the (usually rather cryptic) ASCII equivalent.
ICANN issued guidelines for the use of IDNA in June 2003, and it was already possible to register .jp domains using this system in July 2003 and .info domains in March 2004. Several other top-level domain registries started accepting registrations in 2004 and 2005. IDN Guidelines were first created in June 2003, and have been updated to respond to phishing concerns in November 2005. An ICANN working group focused on country code domain names at the top level was formed in November 2007 and promoted jointly by the country code supporting organization and the Governmental Advisory Committee. Additionally, ICANN supports the community led Universal Acceptance Steering Group, which seeks to promote the usability of IDNs and other new gTLDS in all applications, devices and systems.
Mozilla 1.4, Netscape 7.1, Opera 7.11 were among the first applications to support IDNA. A browser plugin is available for Internet Explorer 6 to provide IDN support. Internet Explorer 7.0 and Windows Vista's URL APIs provide native support for IDN.
ToASCII and ToUnicode.
The conversions between ASCII and non-ASCII forms of a domain name are accomplished by algorithms called ToASCII and ToUnicode. These algorithms are not applied to the domain name as a whole, but rather to individual labels. For example, if the domain name is www.example.com, then the labels are "www", "example", and "com". ToASCII or ToUnicode is applied to each of these three separately.
The details of these two algorithms are complex, and are specified in RFC 3490. The following gives an overview of their function.
ToASCII leaves unchanged any ASCII label, but will fail if the label is unsuitable for the Domain Name System. If given a label containing at least one non-ASCII character, ToASCII will apply the Nameprep algorithm, which converts the label to lowercase and performs other normalization, and will then translate the result to ASCII using Punycode before prepending the four-character string "xn--". This four-character string is called the ASCII Compatible Encoding ("ACE") prefix, and is used to distinguish Punycode encoded labels from ordinary ASCII labels. The ToASCII algorithm can fail in several ways; for example, the final string could exceed the 63-character limit of a DNS label. A label for which ToASCII fails cannot be used in an internationalized domain name.
The function ToUnicode reverses the action of ToASCII, stripping off the ACE prefix and applying the Punycode decode algorithm. It does not reverse the Nameprep processing, since that is merely a normalization and is by nature irreversible. Unlike ToASCII, ToUnicode always succeeds, because it simply returns the original string if decoding fails. In particular, this means that ToUnicode has no effect on a string that does not begin with the ACE prefix.
Example of IDNA encoding.
IDNA encoding may be illustrated using the example domain codice_1. (.) This domain name has two labels, "Bücher" and "example". The second label is pure ASCII, and is left unchanged. The first label is processed by Nameprep to give codice_2, and then converted to Punycode to result in codice_3. It is then prefixed with codice_4 to produce codice_5. The resulting name suitable for use in DNS records and queries is therefore "codice_6".
Arabic Script IDN Working Group (ASIWG).
While the Arab region represents 5 per cent of the world's population, it accounts for a mere 2.6 per cent of global Internet usage. Moreover, the percentage of Internet users among the population in the Arab world is a low of 11 per cent, compared to the global rate of 21.9 per cent. However, Internet usage in the region has grown by 1,426 per cent between the years 2000 and 2008, which represents a large increase, particularly compared to the average world growth rate of 305.5 per cent over the same period. It is reasonable to infer, therefore, that the usage growth could have been even more significant if DNS was available in Arabic characters. The introduction of IDNs offers many potential new opportunities and benefits for Arab Internet users by allowing them to establish domains in their native languages and alphabets, and to create a whole range of services and localized applications on top of those domains.
ASIWG Chair Ram Mohan presented the case for the development of a multilingual internet at the Internet Governance Forum in Hyderabad, India (December 3–6, 2008).
Top-level domain implementation.
In 2009, ICANN decided to implement a new class of top-level domains, assignable to countries and independent regions, similar to the rules for country code top-level domains. However, the domain names may be any desirable string of characters, symbols, or glyphs in the language-specific, non-Latin alphabet or script of the applicant's language, within certain guidelines to assure sufficient visual uniqueness.
The process of installing IDN country code domains began with a long period of testing in a set of subdomains in the test top-level domain. Eleven domains used language-native scripts or alphabets, such as δοκιμή, meaning "test" in Greek.
These efforts culminated in the creation of the first internationalized country code top-level domains (IDN ccTLDs) for production use in 2010.
In the Domain Name System, these domains use an ASCII representation consisting of the prefix "xn--" followed by the Punycode translation of the Unicode representation of the language-specific alphabet or script glyphs. For example, the Cyrillic name of Russia's IDN ccTLD is "рф". In Punycode representation, this is "p1ai", and its DNS name is "xn--p1ai".
Non-IDNA or non-ICANN registries that support non-ASCII domain names.
There are other registries that support non-ASCII domain names. The company ThaiURL.com in Thailand supports .com registrations via its own IDN encoding, ThaiURL. However, since most modern browsers only recognize IDNA/punycode IDNs, ThaiURL-encoded domains must be typed in or linked to in their encoded form, and they will be displayed thus in the address bar. This limits their usefulness; however, they are still valid and universally accessible domains.
Several registries support punycoded emoji characters as emoji domains.
ASCII spoofing concerns.
The use of Unicode in domain names makes it potentially easier to spoof web sites as the visual representation of an IDN string in a web browser may make a spoof site appear indistinguishable to the legitimate site being spoofed, depending on the font used. For example, Unicode character U+0430, Cyrillic small letter a, can look identical to Unicode character U+0061, Latin small letter a, used in English. As a concrete example, using Cyrillic letters а, е ("Ie"/“Ye", U+0435, looking essentially identical to Latin letters a, e), Belarusian-Ukrainian і (U+0456, essentially identical to Latin letter i), р ("Er", U+0440, essentially identical to Latin letter p), the URL wіkіреdіа.org is formed ("xn--wkd-8cdx9d7hbd.org" in encoded form), which is virtually indistinguishable from the visual representation of the legitimate wikipedia.org (possibly depending on fonts).
Top-level domains accepting IDN registration.
Many top-level domains have started to accept internationalized domain name registrations at the second or lower levels. Afilias (.INFO) offered the first gTLD IDN second level registrations in 2004 in the German language.
DotAsia, the registrar for the TLD Asia, conducted a 70-day sunrise period starting May 11, 2011 for second-level domain registrations in the Chinese, Japanese and Korean scripts.