Comment éviter d'exposer mon adresse MAC lors de l'utilisation d'IPv6?

140

Sur mon Mac, chaque adresse IPv6 inclut l'adresse MAC d'un ordinateur spécifique (et non de mon routeur). Des sites tels que ipv6-test.com non seulement le montrent, mais me disent même qu'il appartient à un ordinateur Apple.

Cela ressemble à un super cookie et pourrait également s’appliquer à d’autres systèmes d’exploitation. Comment puis-je éviter que mes adresses MAC soient exposées?

Fond: l'adresse MAC n'est pas en vue . Comme pour 2001:0db8:1:2:60:8ff:fe52:f9d8:

  • Prenez les 64 derniers bits (l'identifiant hôte) et ajouter des zéros à gauche: 0060:08ff:fe52:f9d8.
  • Dénudez la ff:fepartie du milieu. Si ces octets ne sont pas là, il n'y a pas d'adresse MAC.
  • Pour le premier octet: complétez le deuxième bit de poids faible (le bit universel / local; si le bit est un 1, définissez-le sur 0, et si c'est un 0, définissez-le sur 1). Donc: 0x00(00000000) devient 0x02(00000010).
  • Presto: 60:8ff:fe52:f9d8traduit en adresse MAC 02:60:08:52:f9:d8.

Remarque: depuis macOS 10.12 Sierra, selon Ars Technica, Apple a adopté un nouveau moyen de générer des adresses stables qui ne sont pas basées sur une adresse MAC , ce que Windows faisait apparemment depuis des années.


Cette question était une question de super utilisateur de la semaine .
Lisez l' entrée du blog pour plus de détails ou contribuez vous-même au blog

Arjan
la source
14
Wow, je ne savais pas que sur IPV6, belle découverte.
Supercereal
18
Bien sûr, cela montre un ordinateur Apple. C'est une adresse MAC, après tout.
Graeme Perrow
@Kronos, une image a disparu de l'entrée de blog; blog.superuser.com/2011/02/11/… L'ajout de ".stack" à l'URL aide: i.stack.imgur.com/RNXoA.png
Arjan
... mais, @KronoS, l'ajout de ".stack" fait en sorte que le même article disparaisse sous une autre forme d'image, comme i.imgur.com/vjK73.png (okay) vs i.stack.imgur.com/vjK73.png ( pas bien). En d'autres termes: peut-être que toutes les images du blog qui ne sont pas utilisées actuellement .stackdevraient être re-téléchargées ...?
Arjan
@ Arjan je ne suis pas sûr. Je vais devoir vérifier. Je voudrais pour une fonctionnalité que toutes les images téléchargées sur le blog soient automatiquement téléchargées sur le compte imgur de la pile. Semblable à ce que les sites réguliers font actuellement
James Mertz

Réponses:

134

Ceci est résolu par deux extensions IPv6:

  • La RFC 4941, également appelée " Adresse de confidentialité", permet aux connexions sortantes d'utiliser des adresses temporaires, générées aléatoirement (qui font l'objet d'une rotation toutes les quelques heures).
  • La RFC 7217 permet de générer l'adresse statique principale à partir d'un hachage opaque qui ne révèle aucune information.

Au moins une, mais de plus en plus les deux méthodes sont pris en charge par les systèmes d'exploitation.

Notez que ces fonctionnalités sont orthogonales. Vous pouvez utiliser les deux en même temps, si vous voulez.

Adresses privées stables

Dans certains systèmes d'exploitation, l'adresse MAC (EUI-48) n'est tout simplement plus utilisée pour les identificateurs d'interface. À la place, un identifiant aléatoire ou basé sur un hachage est utilisé, généralement conformément à la RFC 7217.

  • Windows utilise par défaut un modèle personnalisé commençant par Windows Vista.

    Pour vérifier si la fonctionnalité est active, exécutez une commande PowerShell:

    Get-NetIPv6Protocol | fl RandomizeIdentifiers
    

    Pour activer / désactiver la fonctionnalité:

    Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
    Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
    
  • Linux (NetworkManager) prend en charge la RFC 7217 à partir de NetworkManager version 1.2.0, en utilisant l'identifiant UUID du profil de connexion dans la graine. Cette fonctionnalité est active par défaut dans les versions récentes de NM.

    Pour activer ou désactiver cette fonctionnalité:

    nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
    nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
    
  • Linux (noyau SLAAC) prend en charge la RFC 7217 à partir de la version 4.1.0 du noyau; cependant, il doit être activé manuellement en stockant la graine secrète via sysctl.

    La clé secrète est une chaîne hexadécimale de 128 bits (en forme d'adresse IPv6), qui doit être stockée dans le net.ipv6.conf.default.stable_secretsysctl. Pour le rendre persistant, il peut être inséré /etc/sysctl.d/50-rfc7217.confou similaire:

    net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
    

    La définition du secret active automatiquement ce mode pour toutes les interfaces réseau. Pour vérifier si la fonctionnalité est active, recherchez "addrgenmode stable_secret" dans ip -d linkou la valeur "2" dans sysctl net.ipv6.conf.<ifname>.addr_gen_mode.

Adresses privées temporaires

Comme défini dans la RFC 4941, les adresses de confidentialité temporaires sont générées aléatoirement et pivotées toutes les quelques heures.

  • Windows prend en charge les adresses temporaires à partir de Windows XP SP2.

    Pour activer / désactiver cette fonctionnalité:

    netsh interface ipv6 set privacy state=enabled
    netsh interface ipv6 set privacy state=disabled
    

    Notez que Windows n'utilise plus les adresses principales basées sur les adresses MAC à partir de Windows Vista.

  • Linux (NetworkManager) : les versions récentes de NetworkManager gèrent l'autorité d'enregistrement de manière autonome, bien que les deux valeurs ci-dessous aient des significations identiques à celles de sysctl (2 = adresse préférentielle, 1 = adresse principale):

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

    En outre, à partir de la version 1.2.0, un meilleur mode est devenu disponible, ce qui modifie l' adresse principale pour qu'elle ne soit plus basée sur MAC, mais unique pour chaque réseau (RFC 7217):

    (Notez que l'adressage de confidentialité est orthogonal au mode addr-gen; il est possible d'utiliser les deux.)

    Note secondaire: À partir de la version 1.4.0, NM permet également de randomiser l'adresse MAC elle-même. Définissez l'option wifi.cloned-mac-addresspour stableavoir un MAC différent pour chaque réseau (recommandé) ou randompour le rendre aléatoire pour chaque connexion (peut causer des problèmes).

    Dans tous les cas, il <name>doit s'agir du nom de la connexion, par exemple WiFi SSID ou "Wired Connection 1". Utilisez nmcli conpour lister tout.

    Pour en faire la valeur par défaut pour les nouvelles connexions, à partir de la version 1.2.0, vous pouvez modifier /etc/NetworkManager/NetworkManager.conf:

     [connection]
     ipv6.addr-gen-mode=stable-privacy
     wifi.cloned-mac-address=stable
    
  • Linux (noyau SLAAC) prend en charge les adresses temporaires, mais ne les utilise pas par défaut. Ils peuvent être activés via sysctls.

    Pour activer les adresses temporaires et les privilégier pour les connexions sortantes:

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

    Pour activer la génération d'adresses temporaires tout en conservant l'adresse statique SLAAC:

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

    La allou defaultpartie peut être remplacée par un nom d'interface spécifique; par exemple net.ipv6.conf.eth0.use_tempaddr.

    (J'avais l'habitude ip link set eth0 down && ip link set eth0 upde forcer une affectation d'adresse, mais vous pouvez également exécuter rdisc6 eth0ou attendre quelques minutes pour la prochaine publication périodique du routeur.)

  • Mac OS X - activé par défaut depuis OS X 10.7 Lion:

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

    Les adresses temporaires, si activées, seront préférées.

  • FreeBSD :

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

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

    Préférence d'adresses temporaires? Je n'ai aucune idée. L'adresse autoconf semble être préférée. ifconfigne semble pas lister les propriétés de l'adresse.

  • OpenBSD - support ajouté en 5.2 ; activé et préféré par défaut en 5.3 .

     ifconfig em0 autoconfprivacy
    

    ifconfig affiche "autoconfpracy" à côté des adresses temporaires.

Remarques sur la configuration:

  • Sous Linux, OS X et tous les BSD, éditez /etc/sysctl.confpour rendre le paramètre permanent.

  • Sous Windows, les modifications persisteront automatiquement. (Vous pouvez ajouter store=activeà la netshcommande si vous voulez qu'elle ne dure que jusqu'au redémarrage.)


Partiellement basé sur les systèmes d'exploitation IPv6 sur IPv6INT.net. Voir aussi Notes générales sur IPv6


Si l'adresse matérielle est utilisée dans l'adresse IPv6, cela signifie généralement que votre réseau utilise la configuration automatique sans état IPv6. Dans ce cas, vous pouvez simplement choisir votre propre suffixe d'adresse et configurer IPv6 manuellement.

Cependant, même si l'adresse ajoutée manuellement ne contiendra pas vos informations matérielles, celles-ci resteront statiques (contrairement à Privacy Addressing, qui change d'adresse de temps en temps). De plus, les adresses statiques peuvent être pénibles dans un réseau de plus de 2-3 appareils.

Grawity
la source
2
Bel effet secondaire sur mon Mac et un routeur FRITZ! Box 7340: je reçois deux adresses ifconfig. Les connexions sortantes utilisent l' autoconf temporaryadresse aléatoire , qui change de temps en temps. Bien! Mais pour les connexions entrantes (quand ouvert dans mon routeur), je peux toujours utiliser l' autoconfadresse. Cela ne me dérange pas d’exposer cela dans les enregistrements DNS (même si je pourrais peut-être même choisir une autre adresse pour cela aussi).
Arjan
Ahh, après le spam, nous obtenons maintenant le spam IPv6: dig -t AAAA www.v6.facebook.com ;-)
Arjan
6
@Arjan: les adresses IPv6 dans le sens de de4d:b33fne sont pas si mauvaises pour la mémorisation; de plus, ils sont mis en place par leur propriétaire, alors que les whoisspams sont a) gênants et b) causés par des tiers qui ne contrôlent pas votre domaine.
Grawity
1
Soit dit en passant: il semble que ce qui précède pourrait (en partie) indiquer au système d'exploitation de préférer l'adresse temporaire, mais les applications pourraient toujours remplacer cette préférence .
Arjan
AFAICS utilisant des adresses temporaires (confidentialité IPv6) est effectivement inutilisable avec certains FAI en raison des annonces de routeur ayant une durée de vie absurde maximale de 40 secondes, qui a priorité sur les paramètres du noyau. Linux voir ip apour preferred_lft. Ainsi, les sshconnexions se briseront toutes les 40 si vous activez cette fonctionnalité. Il n'est même pas utilisable par les internautes normaux, car chaque téléchargement doit être terminé dans les 40 ans.
Tino
1

Pour votre information, cela ne s'applique qu'à certains schémas d'adressage IP. Il est plus que probable que vous (ou votre fournisseur de services Internet) utilisez la configuration automatique IPv6, qui nécessite un bloc d’adresses IP assez volumineux. La solution pourrait être de désactiver cette fonctionnalité. Votre fournisseur de services Internet peut également utiliser DHCP pour attribuer des adresses, ce qui est encore possible avec IPv6.

Ernie Dunbar
la source
3
En ce qui concerne les gros blocs: selon Wikipedia dans "Allocation générale": les RIR assignent des blocs plus petits aux FAI, qui les distribuent ensuite à / 48 pièces à leurs clients. En effet, mon fournisseur de services Internet attribue également / 48 préfixes aux abonnés du grand public. Pas trop étrange alors?
Arjan
3
Blâmez ensuite Wikipedia et les projets de plans d’adressage IPv6 d’ Arin : Tous les clients en reçoivent un / 48, à moins qu’ils ne puissent prouver qu’ils ont besoin de plus de 65 000 sous-réseaux. Mais aussi: Si vous avez beaucoup de clients grand public , vous pouvez attribuer / 56s à des sites de résidence privée - ce qui est encore plus que je jamais besoin. ;-) Mais, les choses pourraient changer: mon FAI n'a jamais promis cela, bien que leurs clients aient évidemment configuré un modem / routeur sur cette base.
Arjan
3
Je pense que quand Arin dit "client", ils veulent dire "FAI". Tout fournisseur de services Internet (y compris les très, très grands) peut attribuer un seul / 64 à l’ensemble du réseau et le faire. Aucun autre itinéraire requis. Cependant, attribuer des tranches de milliards d’adresses IP à des clients résidentiels moyens est tout à fait irréfléchi.
Ernie Dunbar
3
Apparemment, une raison d’attribuer au moins un/56 : "Les FAI qui vous en distribuent un seul /64vous empêchent de créer des sous-réseaux. Si cela se /64trouve sur l’interface WAN, vous n’obtiendrez jamais d’IPv6 correct sur votre (vos) réseau (s) LAN. la faute des FAI et ils devraient résoudre ce problème en donnant une quantité décente ( /48ou /56) d'adresses. "
Arjan
7
A / 64 n'est pas "un bloc assez grand"; c'est le plus petit bloc d'allocation raisonnable pour un sous-réseau. Plusieurs fonctionnalités IPv6 requièrent qu'un sous-réseau soit / 64 et vous avez oublié (ou ne réalisiez pas) que IPv6 a été conçu en grande partie pour éviter que quiconque ne manque jamais d'adresses. Vous devez libérer votre esprit de la pensée ancienne de devoir conserver des adresses précieuses; il n'a pas sa place dans IPv6.
Michael Hampton