IPv6-Sicherheit
Alle Apple-Betriebssysteme unterstützen IPv6 und implementieren verschiedene Mechanismen zum Schutz der Privatsphäre der Benutzer und der Stabilität des Netzwerkstapels. Bei einer SLAAC-Konfiguration (Stateless Address Autoconfiguration) werden die IPv6-Adressen aller Schnittstellen so generiert, dass das Tracking der Geräte über Netzwerke verhindert wird, gleichzeitig aber ein gutes Benutzererlebnis gewährleistet ist, indem die Stabilität der Adressen sichergestellt wird, sofern kein Wechsel des Netzwerks erfolgt. Der Algorithmus für die Adressgenerierung basiert auf kryptografisch generierten Adressen gemäß RFC 3972; er wird durch einen schnittstellenspezifischen Modifikator erweitert, sodass gewährleistet ist, dass auch unterschiedliche Schnittstellen im gleichen Netzwerk unterschiedliche Adressen haben. Darüber hinaus werden temporäre Adressen mit einem bevorzugten Zeithorizont von 24 Stunden erstellt, die standardmäßig für neue Verbindungen verwendet werden. In Übereinstimmung mit der Funktion der privaten WLAN-Adresse, die mit iOS 14, iPadOS 14 und watchOS 7 eingeführt wurde, wird für jedes WLAN, dem sich ein Gerät anschließt, eine eindeutige Link-Local-Adresse generiert. Daran anschließend wird die SSID des Netzwerks als zusätzliches Element für die Adressgenerierung einbezogen – ähnlich dem Parameter „Network_ID“ gemäß RFC 7217. Dieser Ansatz wird bei iOS 14, iPadOS 14 und watchOS 7 verfolgt.
Zum Schutz vor Angriffen, die auf Headern von IPv6-Erweiterungen und Fragmentierung basieren, sind in Apple-Geräten die Schutzvorkehrungen implementiert, die in RFC 6980, RFC 7112 und RFC 8021 spezifiziert sind. Neben anderen Maßnahmen werden dadurch Angriffe verhindert, bei denen der Header der oberen Schicht nur im zweiten Fragment (siehe unten) zu finden ist, was zu Mehrdeutigkeiten bei Sicherheitsvorkehrungen wie Paketfilterung ohne Status führen kann.
Um die Zuverlässigkeit des IPv6-Stapels von Apple-Betriebssystemen zu gewährleisten, erzwingen Apple-Geräte darüber hinaus verschiedene Limits für IPv6-relevante Datenstrukturen, zum Beispiel für die Anzahl der Präfixe pro Schnittstelle.