Em algum canto de toda discussão sobre conta banida, alguém dá o mesmo conselho: troque o seu endereço MAC, é assim que eles sabem que é você. Parece fazer sentido. O endereço MAC é gravado na sua placa de rede ainda na fábrica, é globalmente único e parece exatamente o identificador que um site pegaria primeiro.
Ele também é justamente o identificador que um site não consegue obter. O motivo está uma camada abaixo de qualquer coisa que um site controla: seu endereço MAC nunca passa do seu próprio roteador, e nada dentro de um navegador vai entregá-lo. O widget nesta página tenta mesmo assim, e mostra o que um site vê no lugar.
Seu endereço MAC desce logo no primeiro salto
Um endereço MAC responde a uma única pergunta: qual placa de rede desta rede deve receber este frame? Quando o seu notebook envia uma requisição para um site, ele embrulha o pacote em um frame carimbado com o seu MAC como origem e o MAC do seu roteador como destino. O roteador arranca esse frame, fica com o pacote e monta um frame novinho para o trecho seguinte, com o próprio endereço como origem. Cada roteador entre você e o servidor faz a mesma coisa de novo. Quando a sua requisição chega, o MAC de origem que vai nela pertence ao roteador que estiver mais perto do servidor. O seu nunca saiu da sua sala de estar.
- Seu dispositivoembrulha a requisição em um frame endereçado ao roteadorsrc MAC
3C:22:FB:9A:41:D6o seu - Seu roteador última parada do seu MACarranca o frame e monta um novo para o próximo saltosrc MAC
9C:53:22:71:0B:E4o do roteador - Seu provedor, e cada roteador depois delecada salto repete a reescrita com o próprio endereçosrc MAC
…o do último roteador que encaminhou - O siterecebe o seu endereço IP público e os cabeçalhos da sua requisiçãoseu MAC: não está no pacote
O JavaScript consegue pegar o seu endereço MAC?
Não, e esse lado é tão fechado quanto o lado da rede. O navegador conta a qualquer script o seu idioma e a quantidade de núcleos da sua CPU através do navigator, e o WebGL oferece de bandeja o modelo da sua GPU, tudo sem nenhum pedido de permissão, mas nada com formato de MAC existe em lugar nenhum da plataforma web. “Como pegar o endereço MAC com JavaScript” tem a mesma resposta no Stack Overflow há quase duas décadas: não dá, e quem pergunta recebe o conselho de gerar o próprio identificador em vez disso.
Por que respostas antigas de fórum dizem que um site consegue lê-lo
Pesquise essa pergunta e você ainda vai encontrar respostas afirmando que um site consegue lê-lo, desde que tenha os “scripts especiais” certos nos servidores. Essas respostas foram escritas em um navegador diferente. Na era dos plugins, um applet Java assinado podia chamar NetworkInterface.getHardwareAddress(), e um controle ActiveX no Internet Explorer podia simplesmente perguntar ao Windows. Essa classe inteira de brecha desapareceu: o Chrome abandonou o suporte a plugins em 2015, o Firefox em 2017, e o próprio Internet Explorer foi aposentado em 2022. Nada que um navegador moderno executa tem esse tipo de alcance dentro do sistema operacional.
O outro fantasma é o IPv6. O esquema de endereçamento original montava o seu endereço IPv6 público em parte a partir do seu MAC, um formato chamado EUI-64, o que significava que o seu endereço de hardware literalmente viajava dentro de cada pacote. Isso foi reconhecido como uma brecha de privacidade quase de imediato: as extensões de privacidade corrigiram o problema (a RFC 3041, em 2001, refinada na RFC 4941), e todo sistema operacional popular usa endereços aleatorizados por padrão há anos. Tanto a leitura direta quanto o vazamento indireto estão fechados; os posts de fórum que dizem o contrário são simplesmente mais velhos que as correções.
Quem consegue ver o seu endereço MAC (e por que o seu celular mente para eles)
O seu MAC é totalmente visível na rede em que você está conectado. O seu roteador o registra, todo dispositivo no mesmo Wi-Fi consegue vê-lo, e o mesmo vale para quem administra esse Wi-Fi: seu empregador, o hotel, o aeroporto, a cafeteria. Quando a página de login de um hotel cumprimenta você pelo dispositivo, é o gateway da rede entregando o próprio conhecimento ao próprio portal, não o seu navegador abrindo mão de alguma coisa. Essa é uma superfície de rastreamento real. Empresas de análise de varejo chegavam a seguir celulares pelos shoppings usando os probes de Wi-Fi que eles transmitem, e foi por isso que os fabricantes de sistema operacional se mexeram. O iOS 14 passou a dar a cada rede Wi-Fi o seu próprio “endereço privado” em 2020, o Android 10 tornou a aleatorização por rede o padrão, o Windows oferece endereços de hardware aleatórios por rede, e o macOS se alinhou no Sequoia. Os aplicativos perderam o acesso ainda antes: desde o iOS 7, um app que pede o MAC recebe 02:00:00:00:00:00 de volta, e o Android 6 aplica o mesmo truque. A exceção famosa foi o TikTok, que o Wall Street Journal flagrou coletando endereços MAC no Android por pelo menos 15 meses, através de uma manobra que driblava o bloqueio do Android 6: um app abusando do acesso ao sistema operacional, não um site lendo o seu navegador.
Tudo isso protege você do operador da rede, não dos sites. Os sites nunca tiveram o endereço, para começo de conversa.
Uma VPN esconde o seu endereço MAC?
Não, e ela não precisa. Uma VPN criptografa o seu tráfego e troca o endereço IP que a internet vê. O seu MAC vive no trecho entre o seu notebook e o seu roteador, antes de qualquer coisa disso acontecer, e ele não vai além, com ou sem o túnel. O seu roteador vê o seu MAC de qualquer jeito; o site não o vê de jeito nenhum. Se um provedor de VPN anuncia proteção de MAC como recurso, ele está protegendo você de algo que não estava acontecendo.
O que os sites conseguem deduzir sobre usuários de VPN é real; os vazamentos apenas moram em outro lugar: o fuso horário, os idiomas, o dono da faixa de IP. Nós desmontamos isso em como os sites detectam a sua VPN.
Em que um “banimento de dispositivo” realmente se apoia
O que nos leva ao motivo de a maioria das pessoas perguntar sobre endereços MAC em primeiro lugar: uma plataforma disse que o seu dispositivo foi banido, e o MAC é a coisa com o nome mais parecido com “dispositivo” que você conhece. A tela SS06 de “device banned” do Snapchat, o bloqueio de dispositivo do Roblox, um banimento de fórum que sobrevive a uma conta nova. Se o site não consegue ver o seu MAC, o que ele capturou, então?
Na web, três coisas. Um identificador armazenado: algum cookie ou valor de localStorage gravado muito antes do banimento, que sobrevive ao logout. O seu endereço IP, ou a faixa inteira a que ele pertence. E o fingerprint do seu navegador: o hash de canvas, a lista de fontes, a string da GPU, o fuso horário, combinados em um identificador que não precisa de armazenamento nenhum. Os três têm vidas úteis muito diferentes, e é exatamente por isso que as plataformas usam todos ao mesmo tempo. É também por isso que não existe resposta única para quanto tempo dura um banimento de dispositivo: a metade dos cookies morre quando o armazenamento é limpo, a metade do IP quando o seu endereço rotaciona, e a metade do fingerprint só quando o navegador ou o hardware embaixo dele muda.
- sites: cegosEndereço MACnunca sai da sua rede local, e não existe API de navegador
- sites: cegosSeriais de hardware (HWID)lidos por anti-cheat de kernel dentro de jogos, nunca por uma página web
- sites: cegosIDs de dispositivo do celularentregues a apps nativos pelo sistema operacional; é o que um banimento do Snapchat usa
- sites leem issoEndereço IPem cada requisição; muda com a rede em que você está, ou com uma VPN
- sites leem issoCookies e armazenamento do sitesobrevive ao logout; é limpo nas configurações do navegador
- sites leem issoFingerprint do navegadorsobrevive à limpeza do armazenamento e à troca de IP
Aplicativos nativos e jogos praticam outro esporte, e os dois são confundidos o tempo todo. Um app de celular recebe do sistema operacional IDs de dispositivo da plataforma e atestação, que é o tipo de coisa em que um banimento de dispositivo do Snapchat se apoia. Jogos de PC com anti-cheat em nível de kernel, Vanguard, Easy Anti-Cheat, BattlEye, leem os seriais da placa-mãe e do disco de dentro do sistema operacional: isso, sim, é um banimento de HWID de verdade. Uma página web não consegue fazer nada disso. Um site pedindo a string do modelo da sua GPU já está no teto do que ele algum dia vai saber sobre o seu hardware, e mesmo isso chega como parte da superfície de fingerprint, não como um número de série.
O que realmente fazer
- Pare de resolver o problema do MAC para sites. Não há nada a resolver. Se um site continua reconhecendo você quando você acha que não deveria, o reconhecimento mora no armazenamento, no seu IP ou no seu fingerprint, e o scan completo do navegador mostra quais sinais o seu navegador está entregando.
- Ligue a aleatorização de MAC nas redes que não são suas. Essa é a ameaça para a qual o recurso foi criado, não custa nada, e em um celular atual ele provavelmente já está ligado.
- Se você gerencia múltiplas contas por motivos de trabalho, o fingerprint é a parte que de fato as conecta, e remendá-lo na mão cria as contradições que os sistemas de detecção caçam. O Incogniton dá a cada perfil o seu próprio fingerprint consistente e o seu próprio armazenamento, que é a camada onde a separação realmente acontece, sem nenhum trocador de MAC envolvido.
Quem decide se uma plataforma permite algo disso são as regras dela, então conheça-as antes de agir. Mas seja qual for a sua decisão, tome-a com base nos identificadores que um site consegue de fato ler. O widget acima lista cada um deles, e a linha do endereço MAC é a que nenhuma página vai preencher jamais.