Questão Como evitar a exposição do meu endereço MAC ao usar o IPv6?


Nos meus Macs, cada endereço IPv6 inclui o endereço MAC de um computador específico (não do meu roteador). Sites como ipv6-test.com não só mostra, mas até me diz que pertence a um computador Apple.

Isso parece um super cookie e pode se aplicar a outros sistemas operacionais também. Como posso evitar que meus endereços MAC sejam expostos?

Antecedentes: o endereço MAC é não à vista. Como por 2001:0db8:1:2:60:8ff:fe52:f9d8:

  • Pegue os últimos 64 bits (o identificador de host) e adicione zeros à esquerda: 0060:08ff:fe52:f9d8.
  • Tira o ff:fe parte do meio. Se esses bytes não estiverem lá, então não há endereço MAC.
  • Para o primeiro byte: complemente o segundo bit de baixa ordem (o bit universal / local; se o bit for 1, torne-o 0, e se for 0, faça 1). Assim: 0x00 (00000000) torna-se 0x02 (00000010)
  • Presto: 60:8ff:fe52:f9d8 traduz de volta para o endereço MAC 02:60:08:52:f9:d8.

Nota: desde macOS 10.12 Sierra, de acordo com Ars Technica A Apple adotou uma nova maneira de gerar endereços estáveis ​​que não são baseados em um endereço MAC, que o Windows aparentemente já vinha fazendo há anos.


Esta questão foi uma Pergunta de super usuário da semana.
  Leia o entrada de blog para mais detalhes ou contribuir para o blog você mesmo


131


origem


Wow eu não sabia que sobre IPV6, bom encontrar. - Not Kyle stop stalking me
Bem, claro que mostra um computador da Apple. É um endereço MAC, afinal. - Graeme Perrow
@ Kronos, uma imagem desapareceu na entrada do blog; blog.superuser.com/2011/02/11 Adicionar ".stack" ao URL ajuda: i.stack.imgur.com/RNXoA.png - Arjan
... mas, @KronoS, adicionando ".stack" na verdade faz outra forma de imagem que o mesmo post do blog desaparecer, como i.imgur.com/vjK73.png (ok) vs i.stack.imgur.com/vjK73.png (não está bem). Em outras palavras: talvez todos imagens no blog que não usam atualmente .stack deve ser re-carregado ...? - Arjan
@Arjan não tenho certeza. Eu vou ter que verificar isso. Eu gostaria de um recurso que todas as imagens enviadas para o blog sejam automaticamente enviadas para a conta imgur da pilha. Semelhante ao que os sites comuns fazem atualmente - KronoS


Respostas:


Isto é o que o IPv6 Endereçamento de Privacidade é para. Quando ativado, o sistema irá gerar um endereço temporário com um sufixo aleatório, além do endereço baseado em EUI-64.

  • janelas (começando com o XP SP2) - habilitado por padrão no XP, Vista, 7:

    netsh interface ipv6 set privacy state=enabled
    

    Observe que o Windows não usa mais o endereço MAC para IPv6 de qualquer maneira - ele começou a usar um esquema semelhante ao RFC 7217, com endereços exclusivos por rede.

  • Linux com o NetworkManager:

    As versões recentes do NetworkManager lidam com RA por conta própria, embora os dois valores abaixo tenham significados idênticos ao sysctl (2 = prefira o endereço de privacidade, 1 = prefira o endereço principal):

    nmcli con modify <name> ipv6.ip6-privacy 2
    

    Além disso, a partir de 1.2.0, um modo melhor tornou-se disponível, o que muda a a Principal endereço para não ser mais baseado em MAC, mas exclusivo para todas as redes (RFC 7217):

    nmcli con modify <name> ipv6.addr-gen-mode stable-privacy
    

    (Observe que o endereçamento de privacidade é ortogonal ao add-gen-mode; é possível usar os dois.)

    Nota lateral: A partir de 1.4.0, o NM permite randomizar o próprio endereço MAC também. Conjunto wifi.cloned-mac-address para stable ter um MAC diferente para cada rede (recomendado) ou random para randomizá-lo para cada conexão (pode causar problemas).

    Em todos os casos, <name> deve ser o nome da conexão, por exemplo SSID WiFi ou "Wired Connection 1". Usar nmcli con para listar todos.

    Para tornar isso o padrão para Novo conexões, a partir de 1.2.0 você pode mudar /etc/NetworkManager/NetworkManager.conf:

    [connection]
    ipv6.addr-gen-mode=stable-privacy
    wifi.cloned-mac-address=stable
    
  • Linux com RA do kernel:

    Para habilitar endereços temporários e torná-los preferidos para conexões de saída:

    sysctl net.ipv6.conf.all.use_tempaddr=2
    sysctl net.ipv6.conf.default.use_tempaddr=2
    

    Para habilitar a geração de endereços temporários, mas mantenha o endereço antigo (Autoconf) como preferencial:

    sysctl net.ipv6.conf.all.use_tempaddr=1
    sysctl net.ipv6.conf.default.use_tempaddr=1
    

    o all ou default parte pode ser substituída por um nome de interface específico; por exemplo. net.ipv6.conf.eth0.use_tempaddr.

    (Eu usei ip link set eth0 down && ip link set eth0 up para forçar uma atribuição de endereço, mas você também pode executar rdisc6 eth0 ou apenas espere alguns minutos para a próxima publicação periódica do roteador.)

  • Mac OS X - ativado por padrão desde o OS X 10.7 Lion:

    sysctl -w net.inet6.ip6.use_tempaddr=1
    

    Endereços temporários, se ativados, serão preferidos.

  • FreeBSD:

    sysctl net.inet6.ip6.use_tempaddr=1
    
    sysctl net.inet6.ip6.prefer_tempaddr=1
    
  • NetBSD:

    sysctl -w net.inet6.ip6.use_tempaddr=1
    

    Preferência de endereços temporários? Eu não faço ideia. O endereço do autoconf parece ser o preferido. ifconfig não parece listar nenhuma propriedade de endereço.

  • OpenBSD - suporte adicionado em 5,2; ativado e preferido por padrão em 5,3.

    ifconfig em0 autoconfprivacy
    

    ifconfig mostra "autoconfprivacy" ao lado de endereços temporários.

Notas sobre configuração:

  • No Linux, OS X e todos os BSDs, edite /etc/sysctl.conf para tornar a configuração permanente.

  • No Windows, as alterações persistirão automaticamente.

    (Acrescentar store=active ao netsh comando se você quiser que ele só durar até a reinicialização.)


Parcialmente baseado em Sistemas Operacionais IPv6 em IPv6INT.net. Veja também Notas gerais sobre IPv6


Se o endereço de hardware for usado no endereço IPv6, isso geralmente significa que sua rede usa a configuração automática sem estado IPv6. Nesse caso, você pode simplesmente escolher seu próprio sufixo de endereço e configurar o IPv6 manualmente.

No entanto, mesmo que o endereço adicionado manualmente não tenha suas informações de hardware, ele ainda será estático (diferentemente do Privacy Addressing, que altera os endereços de vez em quando). Além disso, endereços estáticos podem causar problemas em uma rede maior que 2-3 dispositivos.


125



Bom efeito colateral no meu Mac e em um FRITZ! Box 7340: recebo dois endereços ifconfig. Conexões de saída usam o aleatório autoconf temporaryendereço, que muda de vez em quando. Boa! Mas para conexões de entrada (quando aberto no meu roteador), eu ainda posso usar o autoconf endereço. Eu não me importo de expor isso nos registros de DNS (embora talvez eu pudesse escolher de alguma forma outro endereço para isso também). - Arjan
Ahh, depois whois-spamming agora recebemos spam de IPv6: dig -t AAAA www.v6.facebook.com ;-) - Arjan
@Arjan: endereços IPv6 ao longo das linhas de de4d:b33f não são tão ruins para memorizar; Além disso, eles são colocados no lugar por seu dono, enquanto whois spam é a) irritante eb) causado por pessoas de fora que não têm controle sobre seu domínio. - grawity
Como um aparte: parece (alguns dos) acima pode dizer ao SO para preferir o endereço temporário, mas os aplicativos ainda poderiam substituir essa preferência. - Arjan
AFAICS usando endereços temporários (privacidade IPv6) é efetivamente inutilizável com alguns ISPs devido a propagandas de roteadores com uma duração máxima absurda de 40s, o que substitui as configurações do kernel. Linux veja ip a para preferred_lft. assim ssh as conexões irão quebrar a cada 40s se você ativar esse recurso. Não é nem mesmo utilizável para os internautas normais, já que cada download deve ser finalizado dentro dos 40s também. - Tino


FYI, isso só se aplica a certos esquemas de endereçamento IP. É mais do que provável que você (ou seu ISP) esteja usando a autoconfiguração do IPv6, o que requer um grande bloco de IPs para realizar, em primeiro lugar. A solução poderia ser desativar esse recurso. Seu ISP pode usar o DHCP para atribuir endereços também, o que ainda é possível com o IPv6.


1



Quanto aos grandes blocos: de acordo para a Wikipedia em "Alocação geral": Os RIRs atribuem blocos menores aos ISPs, que distribuem isso em / 48 partes de tamanho para seus clientes. De fato, meu ISP também atribui / 48 prefixos para assinantes de nível de consumidor. Não é muito estranho então? - Arjan
Então culpe a Wikipedia e o rascunho de Arin Planos de Endereçamento IPv6: Todos os clientes recebem um / 48, a menos que possam mostrar que precisam de mais de 65 mil sub-redes. Mas também: Se você tem muitos clientes consumidores, você pode querer atribuir / 56s a sites de residência privados - que ainda é mais do que eu sempre necessidade. ;-) Mas, as coisas podem mudar: meu ISP nunca prometido isso, embora obviamente seus clientes tenham configurado modem / roteadores com base nisso. - Arjan
Eu acho que quando Arin diz "cliente" eles querem dizer "ISP". Qualquer ISP (incluindo muito, muito grandes) pode alocar um único / 64 para toda a sua rede e ser feito com ele. Nenhum roteamento adicional é necessário. Mas alocar blocos de endereços IP numéricos em trilhões para clientes residenciais médios é totalmente imprudente. - Ernie Dunbar
Pelo visto, uma razão para atribuir pelo menos /56: "ISPs que distribuem apenas um único /64 impedi-lo de qualquer sub-rede em tudo. Se isso /64 está na interface WAN, então você nunca obterá IPv6 decente em sua LAN (s). Esta é a falha dos ISPs e eles devem corrigir isso, dando uma quantidade decente (/48 ou /56) de endereços. " - Arjan
A / 64 não é "um bloco razoavelmente grande"; é o menor bloco de alocação razoável para uma sub-rede. Vários recursos do IPv6 exigem que uma sub-rede seja / 64 e você esqueceu (ou não percebeu) que o IPv6 foi projetado em grande parte para impedir que alguém sempreficando sem endereços novamente. Você deve libertar sua mente do velho pensamento de precisar conservar endereços preciosos; não tem lugar no IPv6. - Michael Hampton