IPv6/Adressierung: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 9: Zeile 9:


= Privacy-Extensions =
= Privacy-Extensions =
== Privacy Extensions nach RFC 4941 ==
[[IPv6/Privacy Extensions]]
; Erzeugung des Interface-Identifiers
* Die Erzeugung des Interface-Identifiers aus der global eindeutigen MAC-Adresse ermöglicht die Nachverfolgung von Benutzern
 
; Privacy-Extensions (PEX, RFC 4941)
* hebt die permanente Kopplung der Benutzeridentität an die IPv6-Adressen auf
 
; Zufällig generiert und regelmäßig gewechselt
* Indem der Interface-Identifier zufällig generiert wird und regelmäßig wechselt, soll ein Teil der Anonymität von IPv4 wiederhergestellt werden
 
; Täglich wechselndes Präfix wünschenswert
* Im Privatbereich lässt das Präfix allein recht sicher auf einen Nutzer schließen
* Daher ist aus Datenschutzgründen ein vom Provider dynamisch zugewiesenes Präfix wünschenswert
** in Verbindung mit den Privacy Extensions
** z. B. täglich wechselnd
 
; Whois-Datenbank
* Statische Adresszuteilung erfordern meist ein Eintrag in der öffentlichen Whois-Datenbank
* In Deutschland hat der Deutsche IPv6-Rat Datenschutzleitlinien formuliert, die auch eine dynamische Zuweisung von IPv6-Präfixen vorsehen
 
== Stateless Address Autoconfiguration (SLAAC) ==
Nutzt auf einigen Betriebssystemen per Vorgabe die Hardware-Adresse der Netzwerkschnittstelle
 
; Solche Adressen sind im Internet leicht wiederzuerkennen
 
; Abhilfe schaffen die Privacy Extensions
* die zusätzliche, über Zufallszahlen generierte und wechselnde IPv6-Adressen erzeugen
 
; Stateless Address Autoconfiguration
* schiebt in der Mitte der nur 48 Bit langen MAC-Adresse zusätzlich die Bytes ff:fe ein
* erzeugt daraus den Local Identifier, also die hinteren 64 Bit einer IPv6-Adresse
* Die ersten 64 Bit gehören dem Netzwerk-Präfix, das der IPv6-Router im Netzwerk bekannt gibt und das der Rechner in die globale IPv6-Adresse übernimmt.
 
== Privacy Extensions nach RFC 4941 ==
; Linux
* <s>leiten ohne Eingriff ihre globale IPv6-Adresse aus der Hardware ab</s>
* <s>damit offenbaren sie Informationen über den Benutzer</s>
 
; Windows
* <s>erzeugt immer eine temporäre IPv6-Adresse</s>
* <s>die dem Nutzer mehr Privatheit verschafft</s>
 
== Privacy Extensions nach RFC 4941 ==
Den IPv6-Entwicklern fiel schnell auf dass dieses Verfahren die Privatsphäre von Rechner und Nutzer gefährdet
* Solche statischen IPv6-Adressen wirken wie eine eindeutige Hardware-ID, die der Rechner bei jedem Kontakt zu einem IPv6-tauglichen Server überträgt.
* Brisant ist das bei Geräten wie Tablets oder Smartphones, denn sie werden in der Regel nur von einer Person genutzt.
* Die für jeden Serverbetreiber und Netzbeobachter zugängliche MAC-Adresse erlaubt es damit, diese Person wiederzuerkennen.
 
; Privacy Extensions for Stateless Address Autoconfiguration in IPv6
* Daher definierten sie nachträglich das Verfahren "Privacy Extensions for Stateless Address Autoconfiguration in IPv6" (RFC 4941)
* mit dem sich zusätzlich zu diesen statischen Adressen temporäre erzeugen lassen
* die der Rechner für seine Anfragen ins IPv6-Internet einsetzt
 
; Der Host Identifier dieser Adressen wird über Zufallszahlen ermittelt
* Allerdings setzen längst nicht alle aktuellen Betriebssysteme diese Erweiterung ab Werk ein
 
; Derzeit hat einzig Windows die Privacy Extensions eingeschaltet
* Andere wie Mac OS und Linux beherrschen das Verfahren
* man muss es aber per Hand aktivieren
 
== Privacy Extensions nach RFC 4941 ==
; Windows
 
; Ohne dass der Nutzer eingreifen muss
Richten die Desktop-Versionen von Windows per Stateless Autoconfiguration bereits temporäre IPv6-Adressen ein.
* Wie im RFC vorgesehen wechselt Windows diese Adressen in Intervallen
* die sich wie auch andere IPv6-Parameter über das Kommando netsh einstellen lassen
 
; Wechselnde Adressen auf Servern wenig sinnvoll
Daher hat Microsoft die Privacy Extensions auf Windows-Server-Versionen nicht eingeschaltet
* Anders als andere erzeugen Windows-Rechner ihre statische IPv6-Adresse auch nicht aus der
Hardware-Adresse der jeweiligen Schnittstelle.
* Stattdessen würfelt Windows die Adresse einmal, meist bei der Installation, aus
 
; Abschalten
Dieses Verhalten lässt sich als Administrator ändern
* Mit folgendem Befehl nutzt Windows für seine statische, globale IPv6-Adresse nun die MAC der Netzwerkschnittstelle
netsh interface ipv6 set global randomizeidentifiers=disabled
 
; Nachschauen
Die aktuelle Einstellung zeigt das folgende Kommando in der Ausgabezeile an
netsh interface ipv6 show global
 
== Privacy Extensions nach RFC 4941 ==
; Windows
 
; Aktuelle IPv6-Adressen aller Netzwerkkarten
 
netsh interface ipv6 show addresses
 
; Vorgaben für die Privacy Extensions ausgeben
 
netsh interface ipv6 show privacy
Der aktive Status wird abgefragt...
Parameter für temporäre Adressen
------------------------------------------------
Temporäre Adresse verwenden        : enabled
Versuch, doppelte Adr. zu entdecken : 5
Maximale Gültigkeitsdauer          : 7d
Maximale bevorzugte Gültigkeitsdauer: 1d
Regenerationszeit                  : 5s
Maximale Verzögerungszeit          : 10m
Verzögerungszeit                    : 0s
 
== Privacy Extensions nach RFC 4941 ==
; Windows
[[File:ipv6Adressierung20.png|600px]]
 
Windows erzeugt seine feste IPv6-Adresse nicht über die MAC, die Privacy Extensions hat Microsoft ab Werk aktiviert.
 
== Privacy Extensions nach RFC 4941 ==
; Windows
 
; Die Ausgabe bestätigt, dass die Privacy Extensions (Temporäre Adresse verwenden)
aktiv sind.
 
; Maximale bevorzugte Gültigkeitsdauer
* legt fest, nach welcher Zeit (hier in Tagen) der Rechner eine neue temporäre Adresse erzeugt
und für ausgehende Pakete auch einsetzt.
 
; Maximale Gültigkeitsdauer
* Eingehende Verbindungen akzeptiert der Rechner deutlich länger auf einer temporären Adresse,
was etwa für Peer-to-Peer-Anwendungen nützlich sein kann.
 
; Temporären IPv6-Adressen vollständig abschalten
netsh interface ipv6 set privacy state=disabled
 
; Gültigkeitsdauer setzen
netsh interface ipv6 set privacy maxpreferredlifetime=12h
* Schlüssel maxpreferredlifetime und maxvalidlifetime
* Zeitangaben in Tagen (d), Stunden (h), Minuten (m) und Sekunden (s)
 
== Privacy Extensions nach RFC 4941 ==
; Linux
 
; Alle großen Linux-Distributionen aktivieren IPv6, die Privacy Extensions jedoch nicht
* Das bemerkt man schnell an den aus der Hardware-Adresse abgeleiteten Adressen, die im hinteren Teil die Bytes ff und fe enthalten.
 
; Die Privacy Extensions lassen sich über das Sysctl-System dauerhaft einschalten
* Am einfachsten gelingt das, wenn man für jede Netzwerkschnittstelle im Computer eine Zeile in die Datei /etc/sysctl.conf nachträgt.
net.ipv6.conf.IF.use_tempaddr = 2
 
Den Platzhalter IF müssen Sie dabei durch die Schnittstellenbezeichnung ersetzen, also etwa eth0 für die erste Ethernet-Karte oder wlan0 für das WLAN-Interface.
 
; Testweise können Sysctl-Werte auch über die Shell eingeben werden
sysctl net.ipv6.conf.wlan0.use_tempaddr=2
 
* Damit Linux die Netzwerkschnittstelle mit einer temporären IPv6-Adresse versorgt, müssen Sie die Schnittstelle einmal aus- und wieder einschalten (etwa über den Network Manager).
* Anschließend zeigt ifconfig an der Schnittstelle eine weitere IPv6-Adresse, deren hinterer Teil
nicht mehr aus der Hardware-Adresse abgeleitet wurde.
* Dass es sich tatsächlich um eine temporäre Adresse handelt, zeigt der Befehl ip -6 addr show
über den Bezeichner "temporary" in seinen Ausgaben an.
* Bei Ubuntu muss zusätzlich der Wert net.ipv6.conf.default.use_tempaddr=2 in der Datei
/etc/sysctl.conf setzen.
 
== Privacy Extensions nach RFC 4941 ==
; Linux: Vorgaben ändern
 
; Vorgaben zum Wechseln der temporären IPv6-Adresse lassen sich via sysctl
anpassen
* Die Sysctl-Schlüssel
 
net.ipv6.conf.IF.temp_valid_lft
net.ipv6.conf.IF.temp_prefered_lft
 
* setzen die maximale Zeit in Sekunden, in der Linux die Adresse für eingehende und
ausgehende Anfragen nutzt.
* Der letzte Schlüssel hat typischerweise den Wert 86400 (24 Stunden), eingehende Pakete
akzeptiert Linux sieben Tage an dieser Adresse.
* Den Platzhalter IF müssen Sie dabei wie oben durch den Schnittstellennamen ersetzen.
 
== Privacy Extensions nach RFC 4941 ==
; Android
 
; Googles Smartphone-Betriebssystem setzt auf Linux auf
* das zufällige und wechselnde IPv6-Adressen erzeugen kann
* Andererseits hat Google die dafür nötigen Vorgaben nicht gesetzt, sodass bislang jede Android-
Version ohne die Privatsphäre schützenden IPv6-Adressen auskommen muss.
* Auch lassen sie sich nicht einfach einschalten, denn die Mobilfunk-Provider und Handy-Hersteller
vernageln den dafür nötigen Root-Zugang.
* Zwei Befehle genügen und ein gerootetes Android surft über die wechselnden und nicht aus der
Hardware abgeleitetden IPv6-Adressen.
* Wie auch auf iPhones bleibt nur der Weg über das nachträgliche
Freischalten des Root-Zugangs oder über die Installation von
Custom-ROMs:
* Mit dem für solche Verwaltungsaufgaben nötigen Root-Benutzer
lassen sich dann wieder die Sysctl-Werte setzen, die die
Privacy Extensions für IPv6 aktivieren.
* Steht auf dem Telefon das Kommando sysctl bereit, reichen die Befehle
 
su
sysctl -w net.ipv6.conf.default.use_tempaddr=2
sysctl -w net.ipv6.conf.all.use_tempaddr=2
 
* Nach einem Neustart vergisst Android diese Einstellungen jedoch wieder.
* Man kann die beiden Befehle allerdings in eine Datei namens /data/local/userinit.sh schreiben.
* Existiert diese Datei, führt Cyanogenmod die darin aufgelisteten Befehle beim Systemstart aus.
 
== Privacy Extensions nach RFC 4941 ==
; Mac OS X
 
; Auch Apples Betriebssystem Mac OS X über die Privacy Extensions ermittelte IPv6-
; Adressen erzeugen und einsetzen
* Allerdings hat Apple dafür keinen Schalter vorgesehen.
* Das Programm IPv6 Anonymizer von c't
** zeigt den Status der Privacy Extensions,
** schaltet sie an oder aus und
** sorgt dafür, dass die Funktion auch
beim Neustart zur Verfügung steht.
 
; Kommandozeile
* Die Privacy Extensions lassen sich im Terminal (im Dienstprogramme-Ordner) mit einem Befehl
aktivieren
 
sudo sysctl -w net.inet6.ip6.use_tempaddr=1
 
* Damit das klappt, müssen Sie mit einem Benutzer angemeldet sein, der den Mac verwalten darf.
* Leider verschwindet die Einstellung nach einem Neustart.
 
== Privacy Extensions nach RFC 4941 ==
iPhone und iPad (IOS)
 
; Noch schlechter als auf dem Apple-Desktop sah es bis vor kurzem unter den Mobil-
; Betriebssystemen für iPhones und iPads aus
* Bis zur Version 4.3 waren auch dort die Privacy Extensions abgeschaltet. Erst das Update aktiviert die
Erweiterung.
* Im Unterschied zu Mac OS X steht aber auf den Mobilbetriebssystemen für iPhone und iPad kein vom
Hersteller vorgesehener Weg offen, die Privacy Extensions zu aktivieren oder abzuschalten.
* Will man auf Geräten mit der IOS-Version kleiner als 4.3 die Privacy Extensions einschalten, hat man
nur dann eine Chance, wenn man einen Administrator-Zugang zum Betriebssystem hat (Jailbreak): In
diesem Fall reicht der Aufruf von
 
sudo sysctl -w net.inet6.ip6.use_tempaddr=1
 
* respektive der Eintrag in die Datei /etc/sysctl.conf:
 
net.inet6.ip6.use_tempaddr=1
 
* Starten Sie dazu im Terminal einen Editor mit root-Rechten und fügen Sie die Zeile am Ende der Datei
an.
 
sudo pico /etc/sysctl.conf
 
* Nach einem Neustart der WLAN-Schnittstelle respektive einem Neustart des Geräts sollte die
Webseite http://ct.de/ip die zweite, über die Privacy Extensions erzeugte IPv6-Adresse anzeigen.
 
== RFC 4291 ==
; Adressnotation
 
; Reduktion durch Regel 3 darf nur einmal durchgeführt werden
* Es darf höchstens eine zusammenhängende Gruppe aus Null-Blöcken in der Adresse ersetzt
werden.
 
2001:0db8:0:0:8d3:0:0:0
 
darf gekürzt werden zu
2001:db8:0:0:8d3::
oder
2001:db8::8d3:0:0:0
 
; Wegen Mehrdeutigkeit Unzulässig
2001:db8::8d3::
 
2001:db8:0:0:0:8d3:0:0
* interpretiert werden könnte.
 
* Es empfiehlt sich den Block mit den meisten Null-Blöcken zu kürzen.


= TMP =
= TMP =

Version vom 14. Juli 2023, 23:00 Uhr

IPv6 Adressen

IPv6/Adresse

Interface Identifier

IPv6/Interface Identifier

Adressraum

IPv6/Adressraum

Privacy-Extensions

IPv6/Privacy Extensions

TMP

Adressnotation

IPv6-Adresse werden hexadezimal notiert
  • Acht Segmente zu je 16 Bit
  • Die Segmente sind durch Doppelpunkte voneinander getrennt
  • Führende Nullen innerhalb eines Segments können weggelassen werden
Segmente, die nur aus Nullen bestehen
  • können unter Umständen leer gelassen werden.
  • Daraus ergeben sich zwei aufeinander folgende Doppelpunkte
  • Wenn mehrere aufeinander folgende Segmente aus Nullen bestehen, können diese aufdieselbe Art notiert werden
  • Innerhalb einer einzelnen IPv6-Adresse kann nur einmal ein doppelter Doppelpunkt verwendet werden, weil sonst im mittleren Bereich nicht mehr eindeutig festgestellt werden kann, wo der Netzwerkanteil der Adresse endet bzw. der Host-Anteil beginnt.
Beispiel
fe80::20c:6eff:febe:22fc

Dies ergibt

fe80:0000:0000:0000:020c:6eff:febe:22fc
  • Hierbei handelt es sich übrigens um eine link-lokale Adresse
  • Diese Adressen werden nur für die Kommunikation innerhalb eines Netzwerksegments verwendet und sind nicht routingfähig
  • Die Host-Adresse kann ein IPv6-Host aus seiner MAC-Adresse selbst errechnen. Ein DHCP-Server ist deshalb zumindest in einfachen Netzwerken nicht erforderlich.

IPv6-Adressbereiche

IPv6 Präfixe

Bezeichnung Präfix Verwendung
Link Local Unicast fe80::/10 Rechner im eigenen Subnetz
Site Local Unicast fec0 - feff Standortlokale Adressen
Unique Local Unicast fc00 - fdff Private Adressen
Multicast ff00 Für mehrere Clients
Global Unicast 2000 - 3fff Weltweite eindeutige Adressen
2001 An Provider vergeben, die weiterverteilen.
2002 Tunnelmechanismus 6to4
NAT64 64:ff9b::/96 Übersetzungsmechanismus NAT64

Link-lokale Unicast-Adressen

  • Adressbereich fe80::/10 sind, wie weiter oben schon erwähnt, nur zur Kommunikation innerhalb desselben Netzwerksegments gedacht.
  • Routing ist mit diesen Adressen nicht möglich.

Unique-lokale Unicast-Adressen

  • Adressbereich fc00::/7 entsprechen den privaten Adressen des IPv4-Protokolls.
  • Sie lösen die inzwischen veralteten sitelokalen Unicast-Adressen ab und werden im Internet nicht geroutet.

Globale Unicast-Adressen

  • Hier sind mehrere Adressbereiche in Gebrauch.
  • Die endgültigen Bereiche scheinen noch nicht ganz festzustehen, sind für die LPI-Prüfung aber auch nicht von Belang
  • Der globale Bereich ist jedenfalls für die Kommunikation im Internet zuständig
  • Da diese Adressen bei den meisten Internet Service Providern noch nicht nativ zu bekommen sind, empfehle ich zum Experimentieren die Verwendung eines Tunnelbrokers