Wie kann ich bei Verwendung von IPv6 vermeiden, meine MAC-Adresse offenzulegen?

140

Auf meinem Mac, jede IPv6 - Adresse enthält die MAC - Adresse eines bestimmten Computers ( nicht von meinem Router). Websites wie ipv6-test.com zeigen es nicht nur an, sondern sagen mir sogar, dass es zu einem Apple-Computer gehört.

Dies fühlt sich wie ein Super-Cookie an und kann auch auf andere Betriebssysteme angewendet werden. Wie kann ich verhindern, dass meine MAC-Adressen offengelegt werden?

Hintergrund: Die MAC-Adresse ist nicht in Sicht . Wie für 2001:0db8:1:2:60:8ff:fe52:f9d8:

  • Nehmen Sie die letzten 64 Bits (die Host - Kennung) und fügen Sie führende Nullen: 0060:08ff:fe52:f9d8.
  • Das ff:feTeil von der Mitte abziehen. Wenn dieser Bytes nicht da ist, dann gibt es keine MAC - Adresse.
  • Für das erste Byte: Ergänzen Sie das zweite niederwertige Bit (das universelle / lokale Bit; wenn das Bit eine 1 ist, machen Sie es zu 0, und wenn es eine 0 ist, machen Sie es zu 1). Also: 0x00(00000000) wird 0x02(00000010).
  • Presto: 60:8ff:fe52:f9d8Übersetzt zurück zur MAC-Adresse 02:60:08:52:f9:d8.

Hinweis: Seit macOS 10.12 Sierra hat Apple laut Ars Technica einen neuen Weg eingeschlagen, stabile Adressen zu generieren, die nicht auf einer MAC-Adresse basieren , wie es Windows anscheinend schon seit Jahren tut.


Diese Frage war eine Super User Frage der Woche .
Lesen Sie den Blog - Eintrag , um weitere Informationen oder tragen zu dem Blog selbst

Arjan
quelle
14
Wow ich wusste das nicht über IPV6, netter Fund.
Supercereal
18
Nun, natürlich zeigt es einen Apple-Computer. Immerhin ist es eine MAC-Adresse.
Graeme Perrow
@Kronos, im Blogeintrag ist ein Bild verschwunden. blog.superuser.com/2011/02/11/… Das Hinzufügen von ".stack" zur URL hilft: i.stack.imgur.com/RNXoA.png
Arjan
... aber, @KronoS, durch Hinzufügen von ".stack" verschwindet tatsächlich ein anderes Bild aus demselben Blog-Beitrag, wie i.imgur.com/vjK73.png (okay) vs i.stack.imgur.com/vjK73.png ( nicht Okay). Mit anderen Worten: Vielleicht sollten alle Bilder auf dem Blog, die derzeit nicht verwendet .stackwerden, erneut hochgeladen werden ...?
Arjan
@Arjan Ich bin mir nicht sicher. Ich werde mich darum kümmern müssen. Ich möchte für eine Funktion, dass alle Bilder, die in den Blog hochgeladen werden, automatisch in das imgur-Konto von stack hochgeladen werden. Ähnlich wie es die regulären Websites derzeit tun
James Mertz

Antworten:

134

Dies wird durch zwei Erweiterungen von IPv6 gelöst:

  • Mit RFC 4941 (auch bekannt als "Privacy Addressing") können ausgehende Verbindungen temporäre, zufällig generierte Adressen verwenden (die alle paar Stunden gewechselt werden).
  • Mit RFC 7217 kann die primäre statische Adresse aus einem undurchsichtigen Hash generiert werden, der keine Informationen enthält.

Mindestens eine, aber zunehmend auch beide Methoden werden von gängigen Betriebssystemen unterstützt.

Beachten Sie, dass diese Merkmale orthogonal sind. Sie können beide gleichzeitig verwenden, wenn Sie möchten.

Stabile Privatadressen

In einigen Betriebssystemen wird die MAC-Adresse (EUI-48) einfach nicht mehr für Schnittstellenkennungen verwendet. Stattdessen wird ein zufälliger oder hashbasierter Bezeichner verwendet, im Allgemeinen gemäß RFC 7217.

  • Windows verwendet ab Windows Vista standardmäßig ein benutzerdefiniertes Schema.

    Führen Sie einen PowerShell-Befehl aus, um zu überprüfen, ob die Funktion aktiv ist:

    Get-NetIPv6Protocol | fl RandomizeIdentifiers
    

    So aktivieren / deaktivieren Sie die Funktion:

    Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
    Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
    
  • Linux (NetworkManager) unterstützt RFC 7217 ab NetworkManager 1.2.0, wobei die UUID des Verbindungsprofils als Teil des Seeds verwendet wird. Diese Funktion ist in neueren NM-Versionen standardmäßig aktiviert.

    So aktivieren oder deaktivieren Sie diese Funktion:

    nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
    nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
    
  • Linux (Kernel SLAAC) unterstützt RFC 7217 ab Kernel v4.1.0; Es muss jedoch manuell aktiviert werden, indem der geheime Startwert über sysctl gespeichert wird.

    Der geheime Schlüssel ist eine 128-Bit-Hexadezimalzeichenfolge (in Form einer IPv6-Adresse), die im net.ipv6.conf.default.stable_secretsysctl gespeichert werden muss . Um es dauerhaft zu machen, könnte es in /etc/sysctl.d/50-rfc7217.confoder ähnlich gesetzt werden:

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

    Durch das Setzen des Geheimnisses wird dieser Modus automatisch für alle Netzwerkschnittstellen aktiviert. Um zu überprüfen, ob die Funktion aktiv ist, suchen Sie in nach "addrgenmode stable_secret" ip -d linkoder in nach dem Wert "2" sysctl net.ipv6.conf.<ifname>.addr_gen_mode.

Temporäre Privatadressen

Wie in RFC 4941 definiert, werden temporäre Datenschutzadressen nach dem Zufallsprinzip generiert und alle paar Stunden gewechselt.

  • Windows unterstützt temporäre Adressen ab Windows XP SP2.

    So aktivieren / deaktivieren Sie diese Funktion:

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

    Beachten Sie, dass Windows ab Windows Vista keine auf MAC-Adressen basierenden Primäradressen mehr verwendet.

  • Linux (NetworkManager) : Neuere Versionen von NetworkManager behandeln RA selbstständig, obwohl die beiden folgenden Werte mit sysctl identisch sind (2 = bevorzugte Datenschutzadresse, 1 = bevorzugte Hauptadresse):

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

    Auch als die 1.2.0 eine bessere Modus zur Verfügung steht , die die Änderungen Hauptadresse nicht mehr sein , MAC-basierte , sondern einzigartig für jedes Netzwerk (RFC 7217):

    (Beachten Sie, dass die Adressierung des Datenschutzes orthogonal zum ADR-GEN-Modus ist; es ist möglich, beide zu verwenden.)

    Randnotiz: Ab 1.4.0 erlaubt NM auch das Randomisieren der MAC-Adresse. Legen Sie fest wifi.cloned-mac-address, stabledass für jedes Netzwerk ein anderer MAC verwendet werden soll (empfohlen) oder randomdass für jede Verbindung ein zufälliger MAC verwendet werden soll (dies kann Probleme verursachen).

    In allen Fällen <name>muss der Verbindungsname sein, zB WiFi SSID oder "Wired Connection 1". Verwenden Sie, nmcli conum alle aufzulisten .

    Um dies zum Standard für neue Verbindungen zu machen, können Sie ab 1.2.0 Folgendes ändern /etc/NetworkManager/NetworkManager.conf:

     [connection]
     ipv6.addr-gen-mode=stable-privacy
     wifi.cloned-mac-address=stable
    
  • Linux (Kernel SLAAC) unterstützt temporäre Adressen, verwendet sie jedoch nicht standardmäßig. Sie können über sysctls aktiviert werden.

    So aktivieren Sie temporäre Adressen und bevorzugen sie für ausgehende Verbindungen:

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

    So aktivieren Sie die temporäre Adressgenerierung, behalten jedoch die bevorzugte statische SLAAC-Adresse bei:

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

    Der alloder defaultTeil kann durch einen bestimmten Schnittstellennamen ersetzt werden. zB net.ipv6.conf.eth0.use_tempaddr.

    (Früher habe ich ip link set eth0 down && ip link set eth0 upeine Adresszuweisung erzwungen, aber Sie können auch rdisc6 eth0die nächste regelmäßige Router-Ankündigung ausführen oder nur einige Minuten warten.)

  • Mac OS X - standardmäßig aktiviert seit OS X 10.7 Lion:

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

    Temporäre Adressen, falls aktiviert, werden bevorzugt.

  • 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äferenz für temporäre Adressen? Ich habe keine Ahnung. Die Autoconf-Adresse scheint bevorzugt zu sein. ifconfigscheint keine Adresseigenschaften aufzulisten.

  • OpenBSD - Unterstützung in 5.2 hinzugefügt ; Standardmäßig aktiviert und bevorzugt in 5.3 .

     ifconfig em0 autoconfprivacy
    

    ifconfig Zeigt "Autokonfivität" neben temporären Adressen an.

Hinweise zur Konfiguration:

  • Bearbeiten Sie /etc/sysctl.confdie Einstellung unter Linux, OS X und allen BSDs, um sie dauerhaft zu machen.

  • Unter Windows werden die Änderungen automatisch beibehalten. (Sie können store=activeden netshBefehl anhängen , wenn er nur bis zum Neustart gültig sein soll.)


Teilweise basierend auf IPv6-Betriebssystemen bei IPv6INT.net. Siehe auch Allgemeine IPv6-Hinweise


Wenn die Hardwareadresse in der IPv6-Adresse verwendet wird, bedeutet dies normalerweise, dass Ihr Netzwerk die zustandslose IPv6-Autokonfiguration verwendet. In diesem Fall können Sie einfach Ihr eigenes Adresssuffix auswählen und IPv6 manuell konfigurieren.

Auch wenn die manuell hinzugefügte Adresse keine Hardwareinformationen enthält, ist sie dennoch statisch (im Gegensatz zu Privacy Addressing, bei dem die Adressen von Zeit zu Zeit geändert werden). Statische Adressen können in einem Netzwerk mit mehr als 2-3 Geräten problematisch sein.

Grawity
quelle
2
Schöner Nebeneffekt auf meinem Mac und einem FRITZ! Box 7340-Router: Ich bekomme zwei Adressen in ifconfig. Ausgehende Verbindungen verwenden die zufällige autoconf temporaryAdresse, die sich von Zeit zu Zeit ändert. Gut! Aber für eingehende Verbindungen (wenn in meinem Router geöffnet) kann ich die autoconfAdresse weiterhin verwenden . Es macht mir nichts aus, das in DNS-Einträgen offenzulegen (obwohl ich vielleicht auch irgendwie eine andere Adresse dafür wählen könnte).
Arjan
Ahh, nach whois-Spam bekommen wir jetzt IPv6 Spam: dig -t AAAA www.v6.facebook.com ;-)
Arjan
6
@Arjan: IPv6-Adressen de4d:b33fsind nicht so schlecht zum Auswendiglernen. Außerdem werden sie von ihrem Eigentümer eingerichtet, wohingegen whoisSpam a) ärgerlich und b) von Außenstehenden verursacht wird, die nicht die Kontrolle über Ihre Domain haben.
Grawity
1
Übrigens: Es scheint, dass (einige) der oben genannten Punkte das Betriebssystem anweisen, die temporäre Adresse zu bevorzugen , aber Anwendungen könnten diese Präferenz dennoch außer Kraft setzen .
Arjan
AFAICS mit temporären Adressen (IPv6-Datenschutz) ist bei einigen Internetdienstanbietern aufgrund von Routerankündigungen mit einer absurden kurzen maximalen Lebensdauer von 40 Sekunden, die die Kerneleinstellungen außer Kraft setzen, praktisch unbrauchbar. Linux sehen ip afür preferred_lft. So sshwerden Verbindungen je 40er brechen , wenn Sie diese Funktion aktivieren. Es ist nicht einmal für normale Surfer verwendbar, da jeder Download ebenfalls innerhalb von 40s abgeschlossen sein muss.
Tino
1

Zu Ihrer Information, dies gilt nur für bestimmte IP-Adressierungsschemata. Höchstwahrscheinlich verwenden Sie (oder Ihr ISP) die IPv6-Autokonfiguration, für die zunächst ein relativ großer IP-Block erforderlich ist. Die Lösung könnte darin bestehen, diese Funktion auszuschalten. Ihr Internetdienstanbieter verwendet möglicherweise auch DHCP, um Adressen zuzuweisen, was mit IPv6 weiterhin möglich ist.

Ernie Dunbar
quelle
3
Bei großen Blöcken: Laut Wikipedia unter "Allgemeine Zuordnung": RIRs weisen ISPs kleinere Blöcke zu, die diese in / 48-Teilen an ihre Kunden verteilen. Tatsächlich weist mein ISP Abonnenten mit Consumer-Status auch / 48-Präfixe zu. Dann nicht zu seltsam?
Arjan
3
Dann beschuldigen Sie Wikipedia und Arins Entwurf von IPv6-Adressierungsplänen : Alle Kunden erhalten eine / 48, es sei denn, sie können nachweisen, dass sie mehr als 65.000 Subnetze benötigen. Aber auch: Wenn Sie viele Privatkunden haben, können Sie private Wohnorte mit / 56s belegen - das ist immer noch mehr als ich jemals brauche. ;-) Aber die Dinge könnten sich ändern: Mein ISP hat dies nie versprochen , obwohl seine Kunden offensichtlich Modem / Router darauf basierend konfiguriert haben.
Arjan
3
Ich denke, wenn Arin "Kunde" sagt, meinen sie "ISP". Jeder ISP (einschließlich sehr, sehr großer) kann eine einzelne / 64 für sein gesamtes Netzwerk zuweisen und damit fertig werden. Kein weiteres Routing erforderlich. Aber die Zuweisung von IP-Adressblöcken in der Größenordnung von Billionen an durchschnittliche Privatkunden ist geradezu töricht.
Ernie Dunbar
3
Anscheinend gibt es einen Grund für die Zuweisung von mindestens einem/56 : "ISPs, die nur einen einzigen verteilen, /64verhindern, dass Sie überhaupt ein Subnetz erhalten. Wenn sich das /64auf der WAN-Schnittstelle befindet, werden Sie in Ihren LANs niemals ein anständiges IPv6 erhalten. Dies ist der ISPs Fehler und sie sollten dies beheben, indem sie eine anständige Menge ( /48oder /56) von Adressen ausgeben. "
Arjan
7
A / 64 ist kein "ziemlich großer Block"; Es ist der kleinste sinnvolle Zuweisungsblock für ein Subnetz. Für einige IPv6-Funktionen muss ein Subnetz / 64 sein, und Sie haben vergessen (oder nicht erkannt), dass IPv6 größtenteils so konzipiert wurde, dass niemandem mehr die Adressen ausgehen. Sie müssen Ihren Geist von dem alten Gedanken befreien, wertvolle Adressen bewahren zu müssen. In IPv6 hat es keinen Platz.
Michael Hampton