Cos'è un IDN?
Un IDN (Internationalized Domain Name) è un nome di dominio che contiene caratteri al di fuori dell'insieme ASCII tradizionale utilizzato nella specifica DNS originale. Gli IDN consentono i nomi di dominio negli script nativi come il cinese (中文.com), l'arabo (مثال.com), il cirillico (пример.com) e molti altri.
Perché gli IDN sono importanti
Il DNS originale è stato progettato per i parlanti di lingua inglese, limitando i nomi di dominio a:
- Lettere a-z (maiuscole/minuscole insensibile)
- Numeri 0-9
- Trattini (non all'inizio o alla fine)
Ciò escludeva miliardi di persone le cui lingue non utilizzano l'alfabeto latino. Gli IDN democratizzano internet consentendo:
- Indirizzi in lingua nativa: Gli utenti possono digitare gli URL nella loro lingua
- Protezione del marchio: Le aziende possono proteggere i loro nomi in più script
- Accessibilità culturale: Riduce la barriera alla partecipazione su internet
Come funzionano gli IDN: la connessione Punycode
L'infrastruttura DNS conosce solo ASCII, quindi gli IDN utilizzano un ingegnoso sistema di codifica chiamato Punycode. Quando registri o accedi a un IDN:
1. L'utente digita: 中文.com (cinese per "cinese")
2. Il browser codifica: xn--fiq228c.com (rappresentazione Punycode)
3. DNS risolve: Ricerca ASCII standard
4. Il browser visualizza: 中文.com (forma originale)
Il prefisso "xn--" indica una stringa codificata in Punycode. Questo accade in modo trasparente agli utenti.
Esempi di Punycode
| IDN | Punycode |
|---|---|
| münchen.de | xn--mnchen-3ya.de |
| 中文.com | xn--fiq228c.com |
| правда.рф | xn--80aafi6cg.xn--p1ai |
Supporto IDN su tutti i TLD
Il supporto IDN varia secondo il TLD:
Supporto completo
La maggior parte dei moderni gTLD e molti ccTLD supportano gli IDN:
- .com, .net, .org (Verisign)
- .de (caratteri tedeschi)
- .jp (giapponese)
- .cn (cinese)
TLD internazionalizzati
Alcuni TLD sono loro stessi IDN:
- .рф (Russia, cirillico)
- .中国 (Cina)
- .भारत (India, Devanagari)
- .السعودية (Arabia Saudita, arabo)
Supporto limitato o nessuno
Alcuni TLD limitano gli IDN o non li supportano affatto. Verifica sempre il supporto IDN per il tuo TLD target.
Considerazioni sulla sicurezza: attacchi omoglifi
Gli IDN introducono rischi di sicurezza attraverso gli attacchi omoglifi, in cui caratteri visivamente simili di script diversi creano domini ingannevoli:
apple.com (legittimo - lettere latine)
аpple.com (attacco - cirillico 'а' simile a latino 'a')
Protezioni contro gli attacchi omoglifi
Comportamento del browser: I browser moderni visualizzano Punycode per gli IDN sospetti invece della forma Unicode, rivelando l'attacco. Politiche del registro: Alcuni registri limitano quali set di caratteri possono essere combinati in un singolo dominio. Monitoraggio del dominio: Strumenti come il rilevamento della typosquatting di DomScan possono identificare varianti omoglifi registrate del tuo brand.Implementazione del supporto IDN
Per gli sviluppatori che creano strumenti di dominio:
Convalida
// Verifica se il dominio contiene caratteri non ASCII
function isIDN(domain) {
return /[^\x00-\x7F]/.test(domain);
}
Conversione
// Convertire a Punycode per le query DNS
const punycode = require('punycode/');
const ascii = punycode.toASCII('中文.com'); // xn--fiq228c.com
const unicode = punycode.toUnicode('xn--fiq228c.com'); // 中文.com
Query RDAP
La maggior parte dei server RDAP accettano entrambi i moduli:
# Entrambi funzionano
curl "https://rdap.verisign.com/com/v1/domain/xn--fiq228c.com"
curl "https://rdap.verisign.com/com/v1/domain/中文.com"
Procedure consigliate
Quando lavori con gli IDN:
1. Memorizza e elabora sempre la forma Punycode internamente
2. Visualizza la forma Unicode agli utenti
3. Implementa il rilevamento omoglifi per le funzioni di sicurezza
4. Verifica le politiche IDN specifiche del TLD prima della registrazione