Conversione Punycode (nomi di dominio internazionalizzati)
Converte nei due sensi i nomi di dominio internazionalizzati, che contengono caratteri non latini, e la loro codifica Punycode, compatibile con l'alfabeto ASCII.
A che cosa serve Punycode
Il DNS ha storicamente trattato soltanto ASCII. Eppure si volevano nomi di dominio con caratteri quali i kanji e i kana, sul modello di 日本語.jp, e Punycode (RFC 3492) fu ideato come ponte. Converte in modo reversibile una stringa Unicode in una stringa ASCII che comincia con xn--, rendendo così possibili i nomi di dominio internazionalizzati senza toccare il DNS esistente.
Che il risultato risulti illeggibile a una persona rientra nel disegno: 日本語.jp diventa xn--wgv71a119e.jp. I browser celano la forma convertita e mostrano nella barra degli indirizzi i caratteri originali, perciò di norma passa inosservato. Quello scarto d'aspetto, tuttavia, è anche una debolezza esposta all'abuso nel phishing: domini contraffatti costruiti con caratteri indistinguibili, come la «а» cirillica contro la «a» latina, hanno provocato danni reali. Questo strumento converte in entrambi i versi e tutto viene eseguito nel suo browser.
Come convertire
- Scelga il verso Selezioni da nome di dominio a Punycode, oppure da Punycode a nome di dominio.
- Inserisca il nome di dominio Lo inserisca per intero, dominio di primo livello compreso, come in 日本語.jp.
-
Legga il risultato
Ottiene la stringa convertita che comincia con
xn--, oppure i caratteri originali. - Confronti i due La forma ASCII le consente di verificare se vi si siano insinuati caratteri ingannevoli.
Consigli per sfruttarlo al meglio
- Anche i nomi formati da più etichette, cioè da parti separate dal punto, vengono convertiti riconoscendo automaticamente ciascuna etichetta: quelle di soli caratteri ASCII restano invariate, mentre solo quelle che contengono caratteri non ASCII assumono il prefisso
xn--. - Nella modalità dal nome di dominio al Punycode viene applicata la stessa pre-elaborazione di IDNA: le maiuscole diventano minuscole, le lettere e le cifre a larghezza piena vengono riportate alla larghezza normale, e i caratteri a larghezza piena «。» e «.» sono trattati anch'essi come separatori di etichetta. Per esempio,
Bücher.dediventaxn--bcher-kva.dee例え。テストdiventaxn--r8jz45g.xn--zckzah. - Nella modalità dal Punycode al nome di dominio vengono decodificate soltanto le etichette che iniziano con
xn--, mentre le altre restano invariate. - La stessa logica di conversione si applica non solo ai nomi di dominio, ma anche alla parte che segue la chiocciola in un indirizzo di posta elettronica.
- Digitando nella barra degli indirizzi un dominio internazionalizzato, la maggior parte dei browser lo converte internamente in Punycode prima di risolverlo nel sistema dei nomi di dominio.
Quando torna utile
Registrare o configurare un dominio internazionalizzato
I file di zona del DNS e i certificati del server richiedono talvolta la forma Punycode.
Verificare il mittente di un messaggio
Un nome visualizzato che pare legittimo può rivelarsi, una volta convertito, un dominio del tutto diverso. Casi del genere esistono davvero.
Leggere una stringa xn-- in un registro
Scopra a che cosa rimandi realmente una stringa xn-- comparsa nei registri di accesso o in un rapporto.
Convalidare un file di configurazione
Utile per accertare se un nome internazionalizzato possa essere scritto così com'è nella configurazione di nginx o Apache.
I termini di Punycode spiegati
- Punycode
- Lo schema che converte in modo reversibile una stringa Unicode in ASCII (RFC 3492).
xn--non fa parte dell'output del Punycode: è un prefisso che IDNA aggiunge quando il risultato viene usato in un nome di dominio. - Nome di dominio internazionalizzato
- Un nome di dominio con caratteri fuori da ASCII. Internamente viene convertito in Punycode per attraversare il DNS.
- xn--
- Il prefisso che contrassegna un'etichetta come codificata in Punycode. È noto come prefisso ACE.
- Etichetta
- Ciascun elemento di un nome di dominio separato da punti. La conversione avviene etichetta per etichetta.
- Attacco omografico
- Costruire un dominio contraffatto con caratteri dall'aspetto simile. Convertire nella forma Punycode lo smaschera.
- IDNA
- L'insieme delle specifiche per trattare i nomi internazionalizzati nel DNS. La versione in uso è IDNA2008 (dall'RFC 5890 in poi).
Domande frequenti
xn--.xn--, quando rilevano combinazioni sospette.
A proposito — come si è arrivati ai domini scritti in altri alfabeti
Il dibattito sui nomi di dominio internazionalizzati comincia nella seconda metà degli anni Novanta, ma la standardizzazione richiese molto tempo. Furono proposti più metodi per gestire i caratteri non ASCII senza modificare le fondamenta del sistema dei nomi, e alla fine si adottò l'approccio Punycode, standardizzato nel 2003 con la RFC 3492: la codifica e la decodifica avvengono a livello applicativo, sul lato client, mentre i server dei nomi restano invariati.
Il Punycode è stato definito nella RFC 3492, pubblicata nel marzo 2003. L'autore, Adam M. Costello dell'Università della California a Berkeley, vi definisce un algoritmo di uso generale chiamato Bootstring, che rappresenta qualsiasi stringa con un insieme ristretto di caratteri, e chiama Punycode la variante con i parametri scelti per i nomi di dominio. Come mostrano gli esempi di conversione della RFC 3492, privi di xn--, quel prefisso viene aggiunto da IDNA e non dal Punycode stesso. La RFC non spiega l'origine del nome Punycode.
Oggi sono registrati e in uso nomi di dominio nei più diversi alfabeti e persino con emoji, ma dietro le quinte avviene sempre questa conversione. Anche il bel dominio scritto in caratteri non latini che compare nella barra degli indirizzi viaggia, nel dialogo con i server dei nomi, come una prosaica stringa ASCII che comincia con xn--.