The Domain Name System, 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 Domain Name System. 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.
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. These names either are Latin letters with diacritics (ñ, é) or are written in languages or scripts which do not use the Latin alphabet: Arabic, Hangul, Hiragana and Kanji for instance. 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.
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.
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 are 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 name. 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.
IDNA encoding may be illustrated using the example domain Bücher.ch. “Bücher” is German for “books”, and .ch is the ccTLD of Switzerland. This domain name has two labels, Bücher and ch. The second label is pure ASCII, and is left unchanged. The first label is processed by Nameprep to give bücher, and then converted to Punycode to result in bcher-kva. It is then prefixed with xn-- to produce xn--bcher-kva. The resulting label suitable for use in the DNS is therefore xn--bcher-kva.ch.
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.
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.
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 letter e), Byelorussian-Ukrainian і (U+0456, essentially identical to Latin letter i), р (“Er”, U+0440, essentially identical to Latin letter p), we form the URL wіkіреdіа.org (xn--wkd-8cdx9d7hbd.org in encoded form), which is virtually indistinguishable from the visual representation of the legitimate wikipedia.org (possibly depending on fonts).
1996-12: Martin Dürst's original Internet Draft proposing UTF5 (the first example of what is known today as an ASCII-compatible encoding (ACE)) – UTF-5 was first defined by Martin Dürst at the University of Zürich
1998-03: Early Research on IDN at National University of Singapore (NUS), Center for Internet Research (formerly Internet Research and Development Unit – IRDU) led by Prof. Tan Tin Wee (T.W.Tan) (IDN Project team – Tan Juay Kwang and Leong Kok Yong) and subsequently continued under a team at Bioinformatrix Pte. Ltd. (BIX Pte. Ltd.) – an NUS spin-off company led by Prof. S. Subbiah.
1998-07: Geneva INET'98 conference with a BoF discussion on iDNS and APNG General Meeting and Working Group meeting.
1998-07: Asia Pacific Networking Group (APNG, now still in existence and distinct from a gathering known as APSTAR) iDNS Working Group formed.
1998-10: James Seng, a former student of Tan Tin Wee at Sheares Hall, NUS, and student researcher at Technet and IRDU, Computer Centre, NUS, was recruited by CEO S. Subbiah to lead further IDN development at BIX Pte. Ltd.
1999-02: iDNS Testbed launched by BIX Pte. Ltd. under the auspices of APNG with participation from CNNIC, JPNIC, KRNIC, TWNIC, THNIC, HKNIC and SGNIC led by James Seng
1999-02: Presentation of Report on IDN at Joint APNG-APTLD meeting, at APRICOT'99
1999-03: Endorsement of the IDN Report at APNG General Meeting 1 March 1999.
1999-06: Grant application by APNG jointly with the Centre for Internet Research (CIR), National University of Singapore, to the International Development Research Center (IDRC), a Canadian Government funded international organisation to work on IDN for IPv6. This APNG Project was funded under the Pan Asia R&D Grant administered on behalf of IDRC by the Canadian Committee on Occupational Health and Safety (CCOHS). Principal Investigator: Tan Tin Wee of National University of Singapore.
1999-07 Tout, Walid R. (WALID Inc.) Filed IDNA patent application number US1999000358043 Method and system for internationalizing domain names. Published 2001-01-30
1999-07: Internet Draft on UTF5 by James Seng, Martin Dürst and Tan Tin Wee. Renewed 2000.
1999-08: APTLD and APNG forms a working group to look into IDN issues chaired by Kilnam Chon.
1999-10: BIX Pte. Ltd. and National University of Singapore together with New York Venture Capital investors, General Atlantic Partners, spun off the IDN effort into 2 new Singapore companies – i-DNS.net International Inc. and i-Email.net Pte. Ltd. that created the first commercial implementation of an IDN Solution for both domain names and IDN email addresses respectively.
1999-11: IETF IDN Birds-of-Feather in Washington was initiated by i-DNS.net at the request of IETF officials.
1999-12: i-DNS.net InternationalPte. Ltd. launched the first commercial IDN. It was in Taiwan and in Chinese characters under the top-level IDN TLD ".gongsi" (meaning loosely ".com") with endorsement by the Minister of Communications of Taiwan and some major Taiwanese ISPs with reports of over 200 000 names sold in a week in Taiwan, Hong Kong, Singapore, Malaysia, China, Australia and USA.
Late 1999: Kilnam Chon initiates Task Force on IDNS which led to formation of MINC, the Multilingual Internet Names Consortium.
2000-01: The second ever commercial IDN launch was IDN TLDs in the Tamil Language, corresponding to .com, .net, .org, and .edu. These were launched in India with IT Ministry support by i-DNS.net International.
2000-02: Multilingual Internet Names Consortium(MINC) Proposal BoF at IETF Adelaide.
2000-03: APRICOT 2000 Multilingual DNS session.
2000-04: WALID Inc. (with IDNA patent pending application 6182148) started Registration & Resolving Multilingual Domain Names.
2000-05: Interoperability Testing WG, MINC meeting. San Francisco, chaired by Bill Manning and Y. Yoneya 12 May 2000.
2000-06: Inaugural Launch of the Multilingual Internet Names Consortium (MINC) in Seoul to drive the collaborative roll-out of IDN starting from the Asia Pacific.
2000-07: Joint Engineering TaskForce (JET) initiated in Yokohama to study technical issues led by JPNIC (K.Konishi)and TWNIC (Kenny Huang)
2001-07: Japanese Domain Name Association : JDNA Launch Ceremony (July 13, 2001) in Tokyo, Japan.
2001-07: Urdu Internet Names System (July 28, 2001) in Islamabad, Pakistan, Organised Jointly by SDNP and MINC.
2001-07: Presentation on IDN to the Committee Meeting of the Computer Science and Telecommunications Board, National Academies USA (JULY 11–13, 2001) at University of California School of Information Management and Systems, Berkeley, CA.
2001-08: MINC presentation and outreach at the Asia Pacific Advanced Network annual conference, Penang, Malaysia 20 August 2001
2001-10: Joint MINC-CDNC Meeting in Beijing 18–20 October 2001
2008-06: ICANN board votes to develop final fast-track implementation proposal for a limited number of IDN ccTLDS.
2008-10: ICANN Seeks Interest in IDN ccTLD Fast-Track Process 
2009-09: ICANN puts IDN ccTLD proposal on agenda for Seoul meeting in October 2009
2009-10: ICANN approves the registration of IDN names in the root of the DNS through the IDN ccTLD Fast-Track process at its meeting in Seoul, Oct. 26–30, 2009.
2010-01: ICANN announces that Egypt, the Russian Federation, Saudi Arabia, and the United Arab Emirates were the first countries to have passed the Fast Track String Evaluation within the IDN ccTLD domain application process.
2010-05: The first implementations go live. They are the ccTLDs in the Arabic alphabet for Egypt, Saudi Arabia and the United Arab Emirates.
2010-08: The IETF publishes the updated "IDNA2008" specifications as RFC 5890 - 5894