ñ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.comO rótulo está escrito inteiramente com letras cirílicas ou gregas idênticas a letras latinas. Ele pode estar se passando por um domínio conhecido: confira a forma xn-- antes de confiar no link.
Codifique ou decodifique qualquer texto com o algoritmo Punycode puro, sem o prefixo xn-- nem a normalização de domínios. Útil para depurar uma implementação própria.
maana-ptaComo funciona
O DNS só aceita letras ASCII, dígitos e hifens, então um domínio como ñandú.com.ar não pode trafegar como está. Os domínios internacionalizados (IDN) resolvem isso com Punycode (RFC 3492): cada rótulo que tem caracteres fora do ASCII é codificado com um algoritmo que mantém as letras comuns e acrescenta no final a posição das especiais, e recebe o prefixo xn-- na frente. Assim, ñandú vira xn--and-6ma2c.
Antes de codificar, o IDNA normaliza o nome: converte para minúsculas, unifica as formas Unicode e converte pontos alternativos como o 。 japonês. Esta ferramenta usa o mesmo mapeamento (UTS #46) que o navegador aplica ao abrir um endereço, de modo que o resultado coincide com o que ele acaba consultando no DNS. Nos e-mails, converte só o domínio e, nas URLs, só o host.
Além disso, detalha cada rótulo com seu comprimento e as escritas que usa, e avisa quando um domínio mistura alfabetos ou está escrito com letras cirílicas ou gregas idênticas às latinas: essa é a base dos ataques homógrafos, em que um link parece ser de um site conhecido.
Exemplos
ñandú.com.arxn--and-6ma2c.com.arSó muda o rótulo que tem caracteres especiais; com e ar permanecem iguais. É a forma que deve ser cadastrada no DNS e nos SANs de um certificado.faß.dexn--fa-hia.deNo IDNA2008, o ß alemão é uma letra válida e é codificado. No padrão anterior, ele virava ss e apontava para fass.de, um domínio diferente: por isso alguns sistemas antigos resolvem outra coisa.аррӏе.comxn--80ak6aa92e.comO homógrafo publicado por Xudong Zheng em 2017: cinco letras cirílicas que parecem exatamente apple. Desde então, o Chrome e o Firefox exibem esse tipo de domínio na forma xn--.пример.рфxn--e1afmkfd.xn--p1aiOs domínios de primeiro nível também podem ser internacionais: .рф é o da Rússia em cirílico e, no DNS, é escrito xn--p1ai.Casos de uso
- Obter a forma xn-- de um domínio com acentos ou cedilha para cadastrar registros no DNS, na configuração do nginx ou do Apache ou nos SANs de um certificado.
- Entender qual domínio real está por trás de um xn-- que aparece em um log, em um relatório de phishing ou na barra do navegador.
- Analisar um link suspeito para detectar letras cirílicas ou gregas que imitam as latinas.
- Converter o domínio de um endereço de e-mail internacionalizado para um servidor que não suporta SMTPUTF8.
- Verificar se um domínio internacional não ultrapassa 63 caracteres por rótulo depois de codificado.
Perguntas frequentes
O que significa o prefixo xn--?
É o prefixo ACE (ASCII Compatible Encoding), que indica que o rótulo está em Punycode. Os rótulos com hifens na terceira e na quarta posição ficaram reservados para esses prefixos, então os registros não permitem criar um domínio que comece com xn-- se não for um IDN válido.
Qual forma devo usar no DNS, no servidor web e no certificado?
A forma ASCII, com xn--, em todos os lugares técnicos: registros DNS, server_name do nginx, ServerName do Apache, SANs do certificado e cabeçalhos Host. A forma Unicode serve apenas para exibição às pessoas; os navegadores a convertem antes de fazer a consulta.
O que é um ataque homógrafo?
É registrar um domínio que parece idêntico a outro usando letras de outro alfabeto, como o a cirílico no lugar do latino. Os navegadores exibem a forma xn-- quando um rótulo mistura escritas ou se parece com um domínio conhecido. Se um link parece normal, mas sua forma ASCII começa com xn--, desconfie.
É possível usar acentos em um endereço de e-mail?
No domínio, sim, e ele pode ser convertido para xn-- para qualquer servidor. A parte antes da arroba é outra história: com caracteres não ASCII, ela exige que todos os servidores do caminho suportem SMTPUTF8 (RFC 6531), e não tem uma forma Punycode equivalente.
Por que meu domínio com maiúsculas mudou?
Os nomes de domínio não diferenciam maiúsculas de minúsculas, e o IDNA converte tudo para minúsculas antes de codificar: MÜNCHEN.de e münchen.de são o mesmo domínio, xn--mnchen-3ya.de. Já o Punycode puro preserva as maiúsculas, por isso o conversor sem prefixo dá resultados diferentes.