Internationalized domain name

Een internationalized domain name (IDN) is een domeinnaam waar in minstens één label, één of meerdere niet-ASCII-tekens voorkomen. Deze tekens zijn bijvoorbeeld letters van het Latijns alfabet mét diakritische tekens of karakters van een ander schrift of alfabet, zoals Chinese karakters of Arabische letters.

Voorbeeld van een IDN met (vereenvoudigde) Chinese karakters. Merk op dat de ccTLD eveneens uit Chinese karakters bestaat.

Meer dan de helft van de 1,6 miljard internetgebruikers spreekt een taal met een niet-Latijns schrift.[1]

Internationalized Domain Names in Applications bewerken

Het Domain Name System (DNS)-protocol legt beperkingen op wat betreft de toegestane tekens in de labels van domeinnamen. Een van deze beperkingen is de LDH-regel[2] die stelt dat een label alleen cijfers, letters en het koppelteken uit de ASCII-tekenset mag bevatten. Wat de letters betreft betekent dat dat alleen de gebruikelijke 26 letters, zonder diakrieten, mogen worden gebruikt. Bovendien mag het koppelteken niet vooraan of achteraan in een label voorkomen.[3]

Om te voorkomen dat de bestaande DNS-infrastructuur moet worden aangepast om niet-ASCII-tekens te ondersteunen, werd besloten om een systeem te ontwerpen waar webbrowsers (en andere gebruikerstoepassingen) de niet-ASCII-labels in een domeinnaam omzetten naar ASCII-labels. Internationalized Domain Names in Applications (IDNA) specificeert hoe deze omzetting dient te gebeuren.[4]

Voor de omzetting van een niet-ASCII-label naar een ASCII-label, wordt eerst gebruikgemaakt van het Nameprep-algoritme.[5] Nameprep voert verscheidene normalisaties uit zoals het omzetten van hoofdletters in kleine letters. Het resultaat van deze bewerking wordt vervolgens via Punycode[6] omgezet naar een ASCII-label. Nadien wordt het prefix xn-- toegevoegd. Het resultaat is de zgn. ASCII Compatible Encoding (ACE)-string.

Voorbeeld van IDNA-codering bewerken

IDNA-codering kan worden geïllustreerd aan de hand van de volgende domeinnaam: www.Café.eu. Deze domeinnaam heeft drie labels, namelijk "www", "Café" en "eu". Het eerste en laatste label bestaan uitsluitend uit tekens uit de ASCII-tekenset en worden bijgevolg niet gewijzigd door IDNA. Het tweede label wordt eerst door Nameprep omgezet in "café" en vervolgens door Punycode omgezet in "caf-dma". Ten slotte wordt het prefix toegevoegd, met als resultaat de ACE-string "xn--caf-dma". Samengevat, de domeinnaam www.Café.eu wordt via IDNA omgezet in www.xn--caf-dma.eu

Voorbeelden van IDN-domeinnamen bewerken

Dit zijn enkele klikbare voorbeelden van IDN-domeinnamen:

Misbruik van IDN met homogliefen bewerken

In de Unicode-tekenset komen veel homogliefen voor. Een homoglief is een karakter dat (op het eerste gezicht) er identiek uitziet als één of meerdere andere karakters. Bijvoorbeeld, de Latijnse letter a (U+0061)[7] ziet er identiek uit als de Cyrillische letter а (U+0430).[8] Hoewel de karakters visueel niet te onderscheiden zijn, gaat het hier technisch wel degelijk om verschillende tekens in de Unicode-tekenset.

Oplichters kunnen hiervan misbruik maken door een domeinnaam te registreren die visueel niet te onderscheiden is van een bonafide domeinnaam. De malafide domeinnaam kan dan gebruikt worden in phishing-aanvallen om gevoelige data van nietsvermoedende gebruikers te ontfutselen.[9]

Merk op dat dit geen ontwerpfout is van IDN. Homogliefen kunnen ook voorkomen in ASCII-labels, bijvoorbeeld de letter O en het cijfer 0. Door het groot aantal tekens in de Unicode-tekenset, zijn er in IDN-domeinnamen meer potentiële homogliefen.

Onder meer daarom hebben sommige registrars van IDN-domeinnamen één of meer van de volgende maatregelen getroffen:

  • bundelen van visueel identieke of gelijkaardige domeinnamen[10]
  • niet toestaan om verschillende schriften in één domeinnaam te gebruiken[11]
  • alleen een beperkte (taaleigen) subset van de Unicode-tekenset toestaan[12]
  • voorlopig uitstellen van het implementeren van IDN[13]

Voorbeeld:

IDN-topleveldomeinen bewerken

Sinds 16 november 2009 kunnen landen (en gebieden) bij ICANN een aanvraag indienen voor IDN ccTLD's, zodat ook de landcodes (zoals .nl) in het eigen schrift kunnen worden gebruikt.[14] In mei 2010 werden de eerste 21 op IDN gebaseerde topleveldomeinen in de DNS-rootzone geïnstalleerd.[15] Landen met geïnternationaliseerde ccTLD's houden daarnaast ook hun traditionele ASCII-ccTLD's aan.

In december 2014 waren er 45 geïnternationaliseerde ccTLD's ingevoerd. De populairste waren .рф (Rusland) met meer dan 900.000 domeinnamen, .台灣 (Taiwan) met ongeveer 500.000 en .中国 (China) met ongeveer 200.000.[16]

Hoewel het hier wordt geacht te gaan om landcodes, gebruiken sommige landen hele woorden voor de ccTLD. Zo is bijvoorbeeld السعودية (as-Suʻūdiyya) geen afkorting van "Saudi-Arabië" maar de algemeen gangbare korte naam van het land in het Arabisch.

Merk op dat voor de URL in het Arabisch schrift, het topleveldomein het label tussen "http://" en het puntje is, en dus niet het label rechts van het puntje. Het Arabisch schrift wordt immers van rechts naar links geschreven.

Browserondersteuning bewerken

IDN-domeinnamen worden onder meer ondersteund door volgende browsers[17]: Internet Explorer 7+, Firefox 0.8+, Mozilla 1.4+, Netscape 7.1+, Opera 7.22+ en Safari 1.2+ voor MacOS X.

Firefox en Opera maken gebruik van een whitelist met topleveldomeinen van registries die maatregelen nemen tegen homoglief-misbruiken. Standaard wordt in deze browsers een IDN URL als ACE-string weergegeven (o.a. in de adresbalk), alleen voor topleveldomeinen die in de whitelist voorkomen wordt de URL in Unicode weergegeven.[18]

In Internet Explorer kan de gebruiker instellen welke talen in Unicode moeten worden weergegeven. Wanneer er meerdere schriften in een domeinnaam voorkomen, wordt deze domeinnaam als ACE-string weergegeven. Er zijn wel uitzonderingen waardoor schriften soms toch als Unicode weergegeven worden als ze samen gebruikt worden.[19][20]

Aanbevolen literatuur bewerken