Punycode e homógrafos: quando um domínio falso parece o verdadeiro

Atualizado em 25 de setembro de 2026

Olhe estes dois endereços: paypal.com e pаypal.com. Idênticos? Para os nossos olhos, sim. Para um computador, de jeito nenhum: no segundo, o segundo “а” é uma letra do alfabeto cirílico, não um “a” latino. São dois domínios diferentes, que podem pertencer a duas pessoas diferentes. Esse é o princípio dos ataques por homógrafos, e para entendê-los é preciso dar uma voltinha pela forma como a internet escreve os nomes.

Unicode, ASCII e Punycode: três palavras, uma ideia simples

Na origem, os nomes de domínio só aceitavam um alfabeto bem pequeno, chamado ASCII: as letras de a a z sem acento, os números e o hífen. Nada de “é”, nada de “ç”, muito menos árabe, chinês ou cirílico.

Só que o mundo escreve em dezenas de alfabetos. O Unicode é o grande catálogo que dá um número a cada caractere de cada escrita: o “a” latino tem o número U+0061, o “а” cirílico, o U+0430. Mesmo desenho, números diferentes.

Para permitir nomes de domínio em todas as línguas sem mudar a rede inteira, inventou-se um tradutor: o Punycode. Ele transforma um nome escrito em Unicode em um nome que só usa o alfabeto ASCII, e o marca com o prefixo xn--. O navegador mostra a versão bonita; a rede só vê a versão traduzida.

Esquema: à esquerda, o que vemos (Unicode); à direita, o que a rede vê (ASCII, forma xn--); no meio, o tradutor Punycode. Uso normal: société.fr vira xn--socit-esab.fr, um site francês honesto. Armadilha: pаypal.com com um “а” cirílico vira xn--pypal-4ve.com, um domínio totalmente diferente. O reflexo: um xn-- no endereço, olhar de perto.
Figura 1: o Punycode traduz um nome em Unicode para uma forma ASCII que começa com “xn--”. Muito útil… e às vezes desviado.

Como funciona um domínio em “xn--”

Vamos a um exemplo perfeitamente honesto: o domínio francês société.fr (“sociedade”). A rede não sabe ler o “é”. O Punycode põe de lado as letras especiais, mantém as comuns e acrescenta no fim um pequeno código que diz onde recolocar os acentos:

société.fr   →   xn--socit-esab.fr

Encontramos “socit” (as letras comuns) e depois “esab”, o código que indica quais caracteres inserir e onde. O prefixo xn-- só avisa: “atenção, este nome foi traduzido”. Milhões de nomes legítimos funcionam assim, em alemão, árabe, chinês, russo, português. Um xn-- não é suspeito por si só. Ele se torna suspeito quando imita uma marca conhecida.

Os ataques por homóglifo: os falsos gêmeos

Um homóglifo é um caractere que se parece demais com outro. E o Unicode tem muitos: o “а”, o “е”, o “о”, o “р” e o “с” cirílicos são sósias perfeitos dos nossos a, e, o, p e c. O “ο” grego imita o “o”.

Ilustração: dois personagens idênticos carregam cada um a letra a; um é o “a” latino U+0061, o outro o “а” cirílico U+0430. Tabela de sósias comuns: a, e, o, p, c, i e seus equivalentes cirílicos ou gregos. Mesmo sem Unicode, “rn” imita “m” e “1” imita “l”. Exemplo famoso de 2017: аррӏе.com, todo em cirílico, corresponde a xn--80ak6aa92e.com, e alguns navegadores o mostravam então como apple.com, sem alerta.
Figura 2: os falsos gêmeos. Idênticos aos olhos, totalmente diferentes para o computador.

O golpista compra um domínio em que uma ou mais letras são trocadas pelo seu sósia. Em 2017, um pesquisador demonstrou isso de forma espetacular: registrou xn--80ak6aa92e.com, que se escreve аррӏе.com com letras todas cirílicas, e vários grandes navegadores mostravam então simplesmente “apple.com” na barra de endereço. Desde então, os navegadores corrigiram esse caso.

Por que o endereço pode parecer legítimo

Os navegadores modernos aplicam regras de prudência: quando um nome mistura alfabetos de forma suspeita, ou se parece demais com um domínio conhecido, eles mostram a forma xn-- no lugar da versão bonita. É uma boa proteção, mas tem limites:

  • fora da barra de endereço, essas regras nem sempre valem: no texto de um e-mail, de um SMS, de um PDF ou de um aplicativo de mensagens, a versão “disfarçada” aparece como está;
  • as regras variam de um navegador, de uma versão e de um app para outro;
  • um olhar apressado, em uma tela pequena, não distingue dois caracteres idênticos. E nem sempre é preciso Unicode: rn imita m, 1 imita l, como explica o guia Phishing: como os golpistas fazem seus e-mails chegarem.

E, como em qualquer domínio armadilha, o site pode ter um certificado HTTPS válido e um cadeado bonito: eles provam que a conexão é criptografada, não que o site é honesto.

Como verificar de verdade um domínio

Na dúvida, não confiamos no que vemos: fazemos o nome verdadeiro falar.

  1. Não clicamos. Copiamos o link (clique direito, “copiar endereço do link”).
  2. Colamos em um conversor de Punycode (há muitos, gratuitos, on-line): se aparecer uma forma xn-- para um nome que deveria ser totalmente comum, é armadilha.
  3. Isolamos o domínio: a parte logo antes da primeira “/”. O guia Quishing: quando o phishing se esconde atrás de um QR code detalha essa leitura.
  4. Usamos um caminho seguro: um favorito salvo por nós mesmos ou o app oficial. Um gerenciador de senhas também ajuda: ele não se deixa enganar por um sósia e não sugere nada em um domínio falso.

O Baitback faz parte desse trabalho automaticamente: quando colamos um e-mail nele, ele aponta os links em Punycode (forma xn--) e os domínios sósias das marcas que conhece, inclusive por homóglifo, e verifica também o destino final depois dos redirecionamentos.

Identificar o registrador e a hospedagem

Para fazer o domínio sumir, procuramos quem o vendeu e quem o hospeda. Nas ferramentas de consulta, usamos sempre a forma xn--: é o nome verdadeiro, o que os registros conhecem.

  • Uma consulta RDAP ou WHOIS sobre o domínio mostra o registrador, seu endereço de denúncia (“abuse”) e a data de criação do domínio. Um sósia de marca criado na semana passada deixa pouca dúvida.
  • O endereço IP do site permite achar a hospedagem, ou a CDN que fica na frente, que também aceita denúncias e as repassa.

O registrador é aqui o ator mais eficaz: um domínio que imita uma marca por homóglifo é um caso de abuso muito claro, e a suspensão do nome derruba de uma vez o site, os e-mails e todas as páginas associadas.

Denunciar o domínio

Uma boa denúncia cabe em poucas linhas: a forma Unicode e a forma xn-- do domínio, a marca imitada, o endereço completo da página, um print, a data e a hora. Enviamos ao registrador e à hospedagem ou à CDN, e avisamos a marca imitada.

Se o domínio chegou por e-mail, começamos pelo Baitback: colamos o código-fonte completo da mensagem, a ferramenta encontra o servidor de envio e sua hospedagem, identifica os links suspeitos e prepara as mensagens de denúncia. Ela também lembra as plataformas dos navegadores (Google Safe Browsing, Microsoft, Netcraft…), que podem exibir um aviso vermelho a todos os visitantes em poucas horas.

O que guardar
  • Duas letras idênticas aos olhos podem ser dois caracteres diferentes para o computador: é o homóglifo.
  • O Punycode traduz nomes em Unicode para uma forma ASCII que começa com xn--.
  • Um xn-- não é suspeito por si só, mas é em um nome que deveria ser comum ou que imita uma marca.
  • Verificamos um domínio copiando o link, não olhando para ele, e usamos um favorito ou o app oficial.
  • Denunciamos ao registrador com as duas formas do nome: a suspensão derruba tudo de uma vez.

Recebeu um e-mail suspeito?

Cole-o no Baitback: a ferramenta encontra o servidor que o enviou e o provedor de hospedagem, e prepara suas denúncias em uma única etapa.

Analisar um e-mail

Todos os guias