Detector de caracteres enganosos
Dois endereços podem parecer idênticos na tela e ainda assim ser feitos de caracteres diferentes. Cole aquele em que você não confia. Nós o desmontamos, damos nome a cada caractere e apontamos os impostores.
Uma letra na tela é um número por baixo
Os computadores guardam texto como números chamados pontos de código. O “a” minúsculo latino é U+0061. O “а” minúsculo cirílico é U+0430. As fontes desenham os dois com o mesmo formato, então os seus olhos não conseguem diferenciá-los, mas para o sistema de nomes de domínio eles são tão diferentes quanto “a” e “z”. O Unicode define mais de 150.000 caracteres em mais de 160 sistemas de escrita, e muitos deles se parecem bastante com letras latinas, ou são idênticos a elas.
Durante décadas, os nomes de domínio se limitaram a letras ASCII, algarismos e hífens. Os nomes internacionalizados vieram depois, e a regra na rede nunca mudou. Um nome com outros caracteres é convertido para uma forma ASCII que começa com xn--, chamada punycode. münchen.de trafega como xn--mnchen-3ya.de. Um nome escrito com letras cirílicas que parecem “apple” trafega como xn--80ak6aa92e.com, e pertence a quem o registrou.
Esse truque se chama ataque de homógrafos. Os navegadores se defendem dele na barra de endereço mostrando a forma xn-- quando um nome mistura sistemas de escrita. Programas de e-mail, aplicativos de conversa, arquivos PDF e QR codes impressos, em geral, nem se dão ao trabalho.
O que o detector testa
Ele começa encontrando o nome do host dentro do que você colou, seja um link completo, um endereço de e-mail ou um domínio sozinho. Depois roda estes testes no seu navegador:
- Sistema de escrita de cada caractere
- Um rótulo que mistura latim com cirílico, grego, armênio, cherokee, lisu, georgiano ou copta é marcado em vermelho. O mesmo vale para um rótulo escrito inteiramente num desses sistemas quando cada letra tem uma gêmea latina. Latim misturado com chinês, japonês ou coreano é uso normal e não é sinalizado.
- Tabela de sósias
- Cerca de 180 caracteres conhecidos por imitar uma letra latina, um algarismo ou um sinal de pontuação, além das formas de largura total e das letras matemáticas. Pontos, barras e hífens que não são os verdadeiros ficam em vermelho, porque mudam o limite do domínio.
- Caracteres invisíveis e de direção
- Espaços e junções de largura zero, hífens condicionais e os controles bidirecionais. U+202E, a substituição da direita para a esquerda, faz
invoice[U+202E]fdp.exeaparecer como “invoiceexe.pdf”. - Semelhança com marcas
- O nome é reduzido ao que um leitor apressado vê: sósias convertidos para o latim, acentos removidos,
0lido comoo,1comol,rncomom,vvcomow,clcomod. Essa forma reduzida é comparada com cerca de 95 dos nomes que o phishing mais imita: grandes bancos da América do Norte e da Europa, serviços de pagamento, transportadoras de encomendas, órgãos de impostos, contas de e-mail e de streaming. - Estrutura do endereço
- Uma parte de usuário antes do
@num link (https://paypal.com@example.net/vai para example.net), um domínio de marca usado como subdomínio de outro, um endereço IP puro.
Como ler o resultado
O resumo tem quatro contadores: sistemas de escrita presentes, caracteres sósias, caracteres invisíveis e a marca com que o nome se parece, se houver. Abaixo dele, “O que você vê, o que é” lista o mesmo nome de quatro formas:
- Exibido: como aparece, com os caracteres suspeitos destacados e o domínio registrável em negrito.
- Forma técnica: o punycode que o navegador realmente pede.
- Lido às pressas: a forma reduzida usada na comparação com marcas.
- Domínio que conta: o domínio registrável, a parte que alguém teve de comprar. Tudo o que fica à esquerda dele é decidido pelo dono, então
paypal.com.secure-login.neté uma página desecure-login.net.
Depois disso, a tabela de caracteres mostra cada caractere com o seu ponto de código e sistema de escrita. Vermelho marca sósias e caracteres invisíveis. Amarelo marca sinais combinantes e caracteres de controle. Azul é só informativo, para uma letra latina acentuada ou uma letra de outro sistema usada sozinha.
A semelhança com marcas tem quatro níveis. Três deles são vermelhos: a mesma grafia reduzida, uma grafia a uma letra de distância (duas para nomes de dez letras ou mais) e um domínio de marca real usado como prefixo. Um nome de marca que apenas aparece dentro de um domínio mais longo fica em amarelo, já que revendedores e parceiros fazem isso por motivos honestos.
Limites de uma verificação de caracteres
O detector julga como um nome é escrito, não o site por trás dele. secure-account-verify.com não tem nenhum caractere enganoso nem marca, então passa limpo, mesmo sendo uma armadilha óbvia. Para a reputação, use a consulta de sites perigosos.
A lista de marcas é curta de propósito. Um banco regional ou uma loja pequena não está nela, então as imitações deles só são pegas quando usam letras estrangeiras ou caracteres invisíveis. Nomes de marca muito curtos (três ou quatro letras) só são comparados como rótulo inteiro. Do contrário, estaríamos sinalizando palavras comuns que por acaso os contêm.
Um nome também pode ser sinalizado e ser honesto. Empresas reais registram domínios em cirílico ou grego para quem lê essas línguas. O que você está verificando é se o sistema de escrita combina com o remetente e com o idioma da mensagem.
Perguntas frequentes
O que significa um domínio que começa com xn--?
É a codificação ASCII (punycode) de um domínio que contém caracteres fora de a–z, 0–9 e do hífen. Isso não é suspeito por si só, e xn--caf-dma.com é simplesmente café.com. Cole aqui para ver os caracteres em que ele se decodifica.
Como saber se um link é falso antes de clicar?
Copie o endereço do link sem abri-lo, cole aqui e leia a linha “Domínio que conta”. Se esse domínio não for o que a organização usa no site oficial, não abra o link, diga o resto do endereço o que disser.
O meu navegador me protege de domínios homógrafos?
Em parte. Chrome, Firefox, Edge e Safari mostram a forma xn-- na barra de endereço quando um rótulo mistura sistemas de escrita ou corresponde a um padrão confundível conhecido. Isso só ajuda depois que você abriu a página, e só na barra de endereço. Ninguém verifica o texto de um link num e-mail.
Um endereço de e-mail pode conter caracteres invisíveis?
Sim. Um espaço de largura zero ou um hífen condicional pode ser enfiado em qualquer ponto de um texto. Os servidores de e-mail geralmente os recusam na parte do domínio, mas eles aparecem em nomes de exibição, em textos de links e em nomes de arquivos, onde ajudam uma mensagem a passar pelos filtros de palavras-chave.
Por que paypa1.com é sinalizado se só usa caracteres normais?
Porque o truque está em como você lê, não em como está codificado. Leia o algarismo 1 como a letra l e o nome vira “paypal”, que está na lista de marcas, enquanto o domínio não é um dos domínios do PayPal.