O que é um IDN?
Um IDN (Nome de Domínio Internacionalizado) é um nome de domínio que contém caracteres fora do conjunto ASCII tradicional usado na especificação DNS original. IDNs permitem nomes de domínio em scripts nativos como chinês (中文.com), árabe (مثال.com), cirílico (пример.com) e muitos outros.
Por que IDNs São Importantes
O DNS original foi projetado para falantes de inglês, limitando nomes de domínio a:
- Letras a-z (sem distinção de maiúsculas/minúsculas)
- Números 0-9
- Hífens (não no início ou fim)
Isso excluía bilhões de pessoas cujas línguas não usam o alfabeto latino. IDNs democratizam a internet permitindo:
- Endereços em Idioma Nativo: Usuários podem digitar URLs em seu próprio idioma
- Proteção de Marca: Empresas podem proteger seus nomes em múltiplos scripts
- Acessibilidade Cultural: Reduz a barreira para participação na internet
Como IDNs Funcionam: A Conexão Punycode
A infraestrutura DNS só entende ASCII, então IDNs usam um sistema de codificação inteligente chamado Punycode. Quando você registra ou acessa um IDN:
1. Usuário Digita: 中文.com (chinês para "chinês")
2. Navegador Codifica: xn--fiq228c.com (representação Punycode)
3. DNS Resolve: Busca ASCII padrão
4. Navegador Exibe: 中文.com (forma original)
O prefixo "xn--" indica uma string codificada em Punycode. Isso acontece transparentemente para os usuários.
Exemplos de Punycode
| IDN | Punycode |
|---|---|
| münchen.de | xn--mnchen-3ya.de |
| 中文.com | xn--fiq228c.com |
| правда.рф | xn--80aafi6cg.xn--p1ai |
Suporte de IDN em TLDs
O suporte a IDN varia por TLD:
Suporte Completo
A maioria das gTLDs modernas e muitos ccTLDs suportam IDNs:
- .com, .net, .org (Verisign)
- .de (caracteres alemães)
- .jp (japonês)
- .cn (chinês)
TLDs Internacionalizados
Algumas TLDs são elas mesmas IDNs:
- .рф (Rússia, Cirílico)
- .中国 (China)
- .भारत (Índia, Devanagari)
- .السعودية (Arábia Saudita, Árabe)
Suporte Limitado ou Nenhum
Alguns TLDs restringem IDNs ou não os suportam. Sempre verifique suporte a IDN para sua TLD alvo.
Considerações de Segurança: Ataques Homógrafos
IDNs introduzem riscos de segurança através de ataques homógrafos, onde caracteres visualmente similares de diferentes scripts criam domínios enganosos:
apple.com (legítimo - letras latinas)
аpple.com (ataque - cirílico 'а' parece latim 'a')
Proteções Contra Ataques Homógrafos
Comportamento do Navegador: Navegadores modernos exibem Punycode para IDNs suspeitos em vez da forma Unicode, revelando o ataque. Políticas de Registry: Alguns registries restringem quais conjuntos de caracteres podem ser combinados em um único domínio. Monitoramento de Domínio: Ferramentas como detecção de typosquatting do DomScan podem identificar variantes homógrafas registradas de sua marca.Implementando Suporte a IDN
Para desenvolvedores construindo ferramentas de domínio:
Validação
// Verificar se domínio contém não-ASCII
function isIDN(domain) {
return /[^\x00-\x7F]/.test(domain);
}
Conversão
// Converter para Punycode para consultas DNS
const punycode = require('punycode/');
const ascii = punycode.toASCII('中文.com'); // xn--fiq228c.com
const unicode = punycode.toUnicode('xn--fiq228c.com'); // 中文.com
Consultas RDAP
A maioria dos servidores RDAP aceitam ambas as formas:
# Ambas funcionam
curl "https://rdap.verisign.com/com/v1/domain/xn--fiq228c.com"
curl "https://rdap.verisign.com/com/v1/domain/中文.com"
Melhores Práticas
Ao trabalhar com IDNs:
1. Sempre armazene e processe a forma Punycode internamente
2. Exiba a forma Unicode para usuários
3. Implemente detecção de homógrafos para recursos de segurança
4. Verifique políticas específicas de TLD antes do registro