Encoders & Utilities

Convertitore Punycode

Converte nomi di dominio internazionalizzati (IDN ↔ ASCII).

Domain or IDN Paste a domain in any script — we will convert to both Punycode (xn--…) and Unicode. Email-style user@host works too.
приклад.укр
Unicode → ASCII
Unicode form
приклад.укр
ASCII / Punycode form
xn--80aikifvh.xn--j1amh
Per-label breakdown
Unicode ASCII Scripts
приклад xn--80aikifvh Cyrillic
укр xn--j1amh Cyrillic

Informazioni su questo strumento

Punycode (RFC 3492) è la codifica che il sistema DNS utilizza per rappresentare caratteri non ASCII nei nomi di dominio. Il nome cirillico пример.рф diventa xn--e1afmkfd.xn--p1ai nelle effettive query DNS; un dominio cinese 例え.テスト diventa xn--r8jz45g.xn--zckzah. La traduzione è completamente bidirezionale — si incolla una delle due forme e si ottiene l'altra. Lo strumento gestisce una singola etichetta, un dominio completo o diversi domini separati da spazi in un'unica operazione.

La codifica fa parte dello standard IDNA (Internationalized Domain Names in Applications). Browser, server di posta e librerie TLS eseguono questa conversione internamente — ma nel momento in cui si esegue il debug di un problema DNS, si configura una regola firewall o si firma un certificato SSL, di solito serve la forma punycode in prima persona. Il prefisso xn-- è un marcatore fisso che indica "questa etichetta è codificata in punycode".

Quando usare questo strumento

  • Ispezione di un link sospetto. Le campagne di phishing mascherano gli URL mescolando alfabeti — decodifica qualsiasi link per verificare se раypal.com sia realmente PayPal oppure un sosia cirillico (attacco omografo).
  • Certificati SSL per domini IDN. La maggior parte delle CA richiede la forma punycode come SAN.
  • Configurazioni firewall e DNS. Router, BIND e la maggior parte delle allow-list richiedono la forma ASCII — l'Unicode leggibile è per la barra degli indirizzi del browser, non per il file di configurazione.
  • Record DNS per la posta. SPF, DKIM e DMARC fanno tutti riferimento alla forma punycode del dominio.

Sugli attacchi omografi (sosia visivi)

Unicode contiene molti caratteri che assomigliano visivamente alle lettere latine — cirillico а (U+0430) contro latino a (U+0061), greco ο contro latino o. Punycode li smaschera istantaneamente: un "legittimo" example.com reso con caratteri a script misto diventa qualcosa come xn--exampe-9he.com in punycode. Se un dominio familiare si decodifica in qualcosa con prefisso xn--, si sospetti lo spoofing omografo.

Domande frequenti

Cos'è il prefisso xn--?

Il "prefisso ACE" — il marcatore fisso che identifica un'etichetta DNS come codificata in punycode. Qualsiasi parte di dominio che inizia con xn-- deve essere decodificata in Unicode prima di essere mostrata all'utente. Il prefisso è riservato esclusivamente a questo scopo dal IDNA-2003; ci si può fare affidamento per distinguere nomi Unicode reali da corrispondenze accidentali.

Questo strumento mi protegge dai domini sosia?

Li espone. Quando si incolla un link sospetto e la forma punycode inizia con xn-- mentre il testo visualizzato sembra puramente latino, si tratta di un attacco omografo — caratteri cirillici, greci o armeni travestiti da latini. I browser moderni mostrano la forma punycode autonomamente quando gli script sono misti, ma se si ha qualche dubbio su un URL ricevuto, decodificarlo qui fornisce una risposta definitiva.

Perché a volte anche i TLD contengono xn--?

Perché esistono i TLD IDN: .рф (Russia), .中国 (Cina), .укр (Ucraina), .한국 (Corea) e decine di altri. Ognuno di questi si risolve in un equivalente punycode (.xn--p1ai, .xn--fiqs8s, .xn--j1amh, .xn--3e0b707e). Quando un dominio utilizza sia un'etichetta IDN sia un TLD IDN, entrambi i segmenti inizieranno con xn--.

Posso utilizzare script misti in una singola etichetta?

Tecnicamente sì, ma i registri lo vietano per motivi di sicurezza. Le regole IDNA di ICANN e la maggior parte dei registri proibiscono di mescolare script all'interno di una singola etichetta (ad esempio latino + cirillico nella stessa parola), proprio per neutralizzare gli attacchi omografi. L'encoder punycode elaborerà comunque la stringa, ma il dominio risultante non sarebbe registrabile presso alcun registrar importante. Si utilizzi sempre un solo script per etichetta.