Wat is een IDN?
Een IDN (Internationalized Domain Name) is een domeinnaam met tekens buiten de traditionele ASCII-set uit de oorspronkelijke DNS-specificatie. IDN's maken domeinnamen in inheemse schriften mogelijk, zoals Chinees (中文.com), Arabisch (مثال.com), Cyrillisch (пример.com) en vele andere.
Waarom IDN's belangrijk zijn
De oorspronkelijke DNS is ontworpen voor Engelstaligen en beperkte domeinnamen tot:
- Letters a-z (niet hoofdlettergevoelig)
- Cijfers 0-9
- Koppeltekens (niet aan het begin of einde)
Hierdoor werden miljarden mensen uitgesloten van wie de taal het Latijnse alfabet niet gebruikt. IDN's maken het internet toegankelijker door het volgende mogelijk te maken:
- Adressen in de eigen taal: gebruikers kunnen URL's in hun eigen taal typen
- Merkbescherming: bedrijven kunnen hun naam in meerdere schriften vastleggen
- Culturele toegankelijkheid: de drempel voor deelname aan het internet wordt lager
Hoe IDN's werken: de Punycodeverbinding
De DNS-infrastructuur begrijpt alleen ASCII, daarom gebruiken IDN's een slim coderingssysteem dat Punycode heet. Wanneer u een IDN registreert of opent:
1. Gebruiker typt: 中文.com (Chinees voor "Chinese")
2. Browser codeert: xn--fiq228c.com (Punycode-weergave)
3. DNS resolveert: standaard ASCII-lookup
4. Browser toont: 中文.com (oorspronkelijke vorm)
Het voorvoegsel "xn--" geeft een met Punycode gecodeerde tekenreeks aan. Dit gebeurt transparant voor gebruikers.
Punycodevoorbeelden
| IDN | Punycode |
|---|---|
| münchen.de | xn--mnchen-3ya.de |
| 中文.com | xn--fiq228c.com |
| правда.рф | xn--80aafi6cg.xn--p1ai |
IDN-ondersteuning per TLD
IDN-ondersteuning verschilt per TLD:
Volledige ondersteuning
De meeste moderne gTLD's en veel ccTLD's ondersteunen IDN's:
- .com, .net, .org (Verisign)
- .de (Duitse tekens)
- .jp (Japanse tekens)
- .cn (Chinese tekens)
Geïnternationaliseerde TLD's
Sommige TLD's zijn zelf IDN's:
- .рф (Rusland, Cyrillisch)
- .中国 (China)
- .भारत (India, Devanagari)
- .السعودية (Saoedi-Arabië, Arabisch)
Beperkte of geen ondersteuning
Sommige TLD's beperken IDN's of ondersteunen ze helemaal niet. Controleer altijd IDN-ondersteuning voor uw doel-TLD.
Beveiligingsoverwegingen: homograafaanvallen
IDN's brengen beveiligingsrisico's met zich mee door homograafaanvallen, waarbij visueel vergelijkbare tekens uit verschillende schriften misleidende domeinen vormen:
apple.com (legitimate - Latin letters)
аpple.com (attack - Cyrillic 'а' looks like Latin 'a')
Bescherming tegen homograafaanvallen
Browsergedrag: moderne browsers tonen Punycode voor verdachte IDN's in plaats van de Unicode-vorm, waardoor de aanval zichtbaar wordt. Registrybeleid: sommige registries beperken welke tekensets in één domein mogen worden gecombineerd. Domeinmonitoring: tools zoals de typosquattingdetectie van DomScan kunnen geregistreerde homograafvarianten van uw merk vinden.IDN-ondersteuning implementeren
Voor ontwikkelaars die domeintools bouwen:
Validatie
// Check if domain contains non-ASCII
function isIDN(domain) {
return /[^\x00-\x7F]/.test(domain);
}
Conversie
// Convert to Punycode for DNS queries
const punycode = require('punycode/');
const ascii = punycode.toASCII('中文.com'); // xn--fiq228c.com
const unicode = punycode.toUnicode('xn--fiq228c.com'); // 中文.com
RDAP-query's
De meeste RDAP-servers accepteren beide vormen:
# Both work
curl "https://rdap.verisign.com/com/v1/domain/xn--fiq228c.com"
curl "https://rdap.verisign.com/com/v1/domain/中文.com"
Beste praktijken
Bij het werken met IDN's:
1. Sla de Punycode-vorm intern altijd op en verwerk die
2. Toon gebruikers de Unicode-vorm
3. Implementeer homograafdetectie voor beveiligingsfuncties
4. Controleer het IDN-beleid van de betreffende TLD vóór registratie