ñandú.com.arxn--and-6ma2c.com.armünchen.dexn--mnchen-3ya.decontacto@correo.españa.escontacto@correo.xn--espaa-rta.eshttps://日本語.jp/ページhttps://xn--wgv71a119e.jp/%E3%83%9A%E3%83%BC%E3%82%B8аррӏе.comxn--80ak6aa92e.comLa etiqueta está escrita entera con letras cirílicas o griegas que se ven iguales a letras latinas. Puede hacerse pasar por un dominio conocido: revisá la forma xn-- antes de confiar en el enlace.
Codifica o decodifica cualquier texto con el algoritmo Punycode puro, sin el prefijo xn-- ni la normalización de dominios. Sirve para depurar una implementación propia.
maana-ptaCómo funciona
El DNS sólo acepta letras ASCII, dígitos y guiones, así que un dominio como ñandú.com.ar no puede viajar tal cual. Los dominios internacionalizados (IDN) resuelven eso con Punycode (RFC 3492): cada etiqueta que tiene caracteres fuera de ASCII se codifica con un algoritmo que conserva las letras comunes y agrega al final la posición de las especiales, y se le antepone el prefijo xn--. Así ñandú pasa a ser xn--and-6ma2c.
Antes de codificar, IDNA normaliza el nombre: pasa a minúsculas, unifica las formas Unicode y convierte puntos alternativos como el 。 japonés. Esta herramienta usa el mismo mapeo (UTS #46) que aplica el navegador al abrir una dirección, por lo que el resultado coincide con lo que termina pidiendo al DNS. En los correos convierte sólo el dominio y en las URL sólo el host.
Además desglosa cada etiqueta con su largo y las escrituras que usa, y avisa cuando un dominio mezcla alfabetos o está escrito con letras cirílicas o griegas idénticas a las latinas: es la base de los ataques homógrafos, en los que un enlace aparenta ser de un sitio conocido.
Ejemplos
ñandú.com.arxn--and-6ma2c.com.arSólo cambia la etiqueta que tiene caracteres especiales; com y ar quedan igual. Es la forma que hay que cargar en el DNS y en los SAN de un certificado.faß.dexn--fa-hia.deCon IDNA2008 la ß alemana es una letra válida y se codifica. Con el estándar anterior se convertía en ss y apuntaba a fass.de, un dominio distinto: por eso algunos sistemas viejos resuelven otra cosa.аррӏе.comxn--80ak6aa92e.comEl homógrafo que publicó Xudong Zheng en 2017: cinco letras cirílicas que se ven exactamente como apple. Desde entonces Chrome y Firefox muestran este tipo de dominios en su forma xn--.пример.рфxn--e1afmkfd.xn--p1aiTambién los dominios de primer nivel pueden ser internacionales: .рф es el de Rusia en cirílico y en el DNS se escribe xn--p1ai.Casos de uso
- Obtener la forma xn-- de un dominio con acentos o eñe para cargar registros en el DNS, en la configuración de nginx o Apache o en los SAN de un certificado.
- Entender qué dominio real hay detrás de un xn-- que aparece en un log, en un reporte de phishing o en la barra del navegador.
- Revisar un enlace sospechoso para detectar letras cirílicas o griegas que imitan a las latinas.
- Convertir el dominio de una dirección de correo internacionalizada para un servidor que no soporta SMTPUTF8.
- Comprobar que un dominio internacional no supere los 63 caracteres por etiqueta una vez codificado.
Preguntas frecuentes
¿Qué significa el prefijo xn--?
Es el prefijo ACE (ASCII Compatible Encoding) que marca que la etiqueta está en Punycode. Las etiquetas con guiones en la tercera y cuarta posición quedaron reservadas para esos prefijos, así que los registros no permiten crear un dominio que empiece con xn-- si no es un IDN válido.
¿Qué forma uso en el DNS, en el servidor web y en el certificado?
La forma ASCII, con xn--, en todos los lugares técnicos: registros DNS, server_name de nginx, ServerName de Apache, SAN del certificado y cabeceras Host. La forma Unicode es sólo para mostrarla a las personas; los navegadores la convierten antes de hacer la consulta.
¿Qué es un ataque homógrafo?
Es registrar un dominio que se ve igual a otro usando letras de otro alfabeto, como la a cirílica en lugar de la latina. Los navegadores muestran la forma xn-- cuando una etiqueta mezcla escrituras o se parece a un dominio conocido. Si un enlace se ve normal pero su forma ASCII empieza con xn--, desconfiá.
¿Se pueden usar acentos en una dirección de correo?
El dominio sí, y se puede convertir a xn-- para cualquier servidor. La parte antes de la arroba es otra historia: con caracteres no ASCII necesita que todos los servidores del camino soporten SMTPUTF8 (RFC 6531), y no tiene una forma Punycode equivalente.
¿Por qué mi dominio con mayúsculas cambió?
Los nombres de dominio no distinguen mayúsculas, y IDNA pasa todo a minúsculas antes de codificar: MÜNCHEN.de y münchen.de son el mismo dominio, xn--mnchen-3ya.de. Punycode puro sí conserva las mayúsculas, por eso el convertidor sin prefijo da resultados distintos.