Vad är en IDN?
En IDN (Internationalized Domain Name) är ett domännamn som innehåller tecken utanför det traditionella ASCII-set som användes i den ursprungliga DNS-specifikationen. IDN:er möjliggör domännamn på modersmål som kinesiska (中文.com), arabiska (مثال.com), kyrilliska (пример.com) och många andra.
Varför IDN:er är viktiga
Den ursprungliga DNS designades för engelsktalande, vilket begränsade domännamnen till:
- Bokstäver a-z (skiftlägeokänsligt)
- Siffror 0-9
- Bindestreck (inte vid start eller slut)
Detta uteslöt miljarder människor vars språk inte använder det latinska alfabetet. IDN:er demokratiserar internet genom att möjliggöra:
- Webbadresser på modersmål: Användare kan skriva URL:er på sitt eget språk
- Varumärkesskydd: Företag kan säkra sina namn i flera skript
- Kulturell tillgänglighet: Minskar barriären för internetdeltagande
Hur IDN:er fungerar: Punycode-anslutningen
DNS-infrastrukturen förstår endast ASCII, så IDN:er använder ett smart kodningssystem som kallas Punycode. När du registrerar eller öppnar en IDN:
1. Användaren skriver: 中文.com (kinesiska för "kinesiska")
2. Webbläsaren kodar: xn--fiq228c.com (Punycode-representation)
3. DNS löser: Standard ASCII-sökning
4. Webbläsaren visar: 中文.com (originalform)
Prefixt "xn--" indikerar en Punycode-kodad sträng. Detta sker transparent för användare.
Punycode-exempel
| IDN | Punycode |
|---|---|
| münchen.de | xn--mnchen-3ya.de |
| 中文.com | xn--fiq228c.com |
| правда.рф | xn--80aafi6cg.xn--p1ai |
IDN-stöd över TLD:er
IDN-stöd varierar enligt TLD:
Fullt stöd
De flesta moderna gTLD:er och många ccTLD:er stödjer IDN:er:
- .com, .net, .org (Verisign)
- .de (tyska tecken)
- .jp (japanska)
- .cn (kinesiska)
Internationaliserade TLD:er
Några TLD:er är själva IDN:er:
- .рф (Ryssland, kyrilliska)
- .中国 (Kina)
- .भारत (Indien, Devanagari)
- .السعودية (Saudiarabien, arabiska)
Begränsat eller inget stöd
Några TLD:er begränsar IDN:er eller stödjer dem inte alls. Verifiera alltid IDN-stöd för din måldomän.
Säkerhetshänsyn: Homographattacker
IDN:er introducerar säkerhetskänslan genom homographattacker, där visuellt liknande tecken från olika skript skapar vilseledande domäner:
apple.com (legitim - latinska bokstäver)
аpple.com (attack - kyrillisk 'а' ser ut som latinsk 'a')
Båda visar identiskt i vissa typsnitt men är olika domäner.
Skydd mot homographattacker
Webbläsarbeteende: Moderna webbläsare visar Punycode för misstänkta IDN:er istället för Unicode-formen, vilket avslöjar attacken. Registerpolicyer: Vissa register begränsar vilka teckenset som kan kombineras i en enda domän. Domänövervakning: Verktyg som DomScans typosquatting-upptäckt kan identifiera registrerade homograph-varianter av ditt varumärke.Implementering av IDN-stöd
För utvecklare som bygger domänverktyg:
Validering
// Kontrollera om domän innehåller icke-ASCII
function isIDN(domain) {
return /[^\x00-\x7F]/.test(domain);
}
Konvertering
// Konvertera till Punycode för DNS-frågor
const punycode = require('punycode/');
const ascii = punycode.toASCII('中文.com'); // xn--fiq228c.com
const unicode = punycode.toUnicode('xn--fiq228c.com'); // 中文.com
RDAP-frågor
De flesta RDAP-servrar accepterar båda formerna:
# Båda fungerar
curl "https://rdap.verisign.com/com/v1/domain/xn--fiq228c.com"
curl "https://rdap.verisign.com/com/v1/domain/中文.com"
Bästa praxis
När du arbetar med IDN:er:
1. Lagra och bearbeta alltid Punycode-formen internt
2. Visa Unicode-formen för användare
3. Implementera homograph-detektering för säkerhetsfunktioner
4. Verifiera TLD-specifika IDN-policyer innan registrering