Eine Einführung in IPv6 und IPsec Thomas Kastner∗ Dezember 2001 Zusammenfassung Diese Arbeit gibt einen Einblick in die Funktionen und Mechanismen hinter IPv6 und IPsec. 1 Einleitung Die letzten 50 Jahre waren von einer starken Technisierung und Digitalisierung geprägt. Im Rahmen dieser Entwicklung kam es zu einer immer stärkeren globalen Vernetzung. Noch nie war es so einfach über große Entfernungen Daten auszutauschen oder zu kommunizieren. Aber die Entwicklung bleibt nicht stehen, der nächste große Schritt ist eine flächendeckende, drahtlose Anbindung an Kommunikations- und Datennetze. Eines der größten Probleme unserer digitalen Welt ist die Sicherheit. Im Hinblick auf zukünftige Dienste und Entwicklungen wird diese Problematik noch an Bedeutung gewinnen. Diese Arbeit soll einen kurzen Einblick in die Zukunft des Internets geben. Im speziellen wird auf neue Protokolle (IPv6) und Internetsicherheit (IPsec) eingegangen. 2 Eine kurze Geschichte des Internet Um das Verständnis für die Notwendigkeit neuer Protokolle und Standards zu wecken, wird im Folgenden kurz die Geschichte des Internets zusammengefasst. Ende 1969 wurde von der Advanced Research Projects Agency (ARPA) das ARPANET in Betrieb genommen. Das Netz wuchs rasant und erstreckte sich über zahlreiche Militärische Einrichtungen und Forschungsinstitutionen. Bald wurde klar, dass die bisher verwendeten Protokolle für ein großes Netz nicht geeignet waren. Im Jahr 1974 wurde daher die Entwicklung von TCP/IP initiiert. Als erstes wurde TCP/IP von der University of California in Berkeley UNIX integriert. ∗ E-Mail: [email protected] 1 Abbildung 1: Wachstum des ARPANET (a) 12/1969 (b) 6/1970 (c) 3/1971 (d) 4/1971 (e) 9/1972 Das ständig wachsende ARPANET wurde zunehmend als Netzverbund betrachtet und wird heute allgemein als das Internet bezeichnet. Noch immer ist das tragende Protokoll des Internets TCP/IP. Genauer gesagt handelt es sich dabei sogar um mehrere Protokolle, wobei IP und TCP die bekanntesten sind. 2.1 Probleme mit IPv4 Aktuell wird IP in der Version 4 verwendet. Die Adressierung erfolgt dabei über eine 32 Bit Adresse. Um Adresse leichter zuweisen zu können wurde der gesamte Adressraum in Klassen aufgeteilt. Man unterscheidet hauptsächlich zwischen Klasse A-, B- und C-Netzen. Die Klassen unterscheiden sich vor allem durch eine unterschiedliche Anzahl untergeordneter Adressen. Aufgrund dieser Klassenaufteilung, einer ungleichmäßigen Aufteilung der Adressräume auf die Welt und der ständig steigenden Benutzerzahlen im Internet kommt es langsam zu einer Verknappung freier Adressen. Aber es gibt auch andere Schwachstellen hinsichtlich der Sicherheit oder der Unterstützung von Echtzeitanwendungen. 2 3 IPv6, die Lösung? Nachdem sich IPv5, das sich vor allem durch eine verbesserte Unterstützung bei der Übertragung von Audio- und Videodaten auszeichnete, nicht durchsetzte, gab es Anfang der 90er Jahre zahlreiche Vorschläge für ein neues Protokoll. Diese Ideen wurden 1993 unter dem Namen IPnG zusammengefasst und verbessert. Nach langen Diskussionen einigte man sich auf eine Adresslänge von 128 Bit. Der Adressraum umfasst somit 3.4 ∗ 1038 Adressen. Damit kommen auf jeden Quadratmillimeter Erdoberfläche nun etwa 667 Billiarden Adressen. Darauf aufbauend erschienen 1995 und 1996 die ersten Entwürfe unter dem Namen IPv6, welcher 1997 zum Standard erklärt wurde. Neben der endgültigen Beseitigung des Adressproblems wurde die Möglichkeit zur Sicherung und Authentifizierung (IPsec) im Standard vorgesehen. Eine etwas einfachere Struktur soll zudem die Vermittlung der Pakete im Internet beschleunigen. 3.1 Die Adressierung der Zukunft Eine Beibehaltung der bisherigen Schreibweise (z.B. 139.18.38.71) würde bei IPv6 zu einer äußerst langen und unhandlichen Darstellung führen. Deshalb wurde beschlossen, die 128 Bit durch hexadezimale 16 Bit Zahlen darzustellen. Die Tupel werden durch Doppelpunkte voneinander getrennt, führende Nullen (in einem Tupel) können dabei weggelassen werden. Dadurch erreicht man eine signifikante Verkürzung der Adresse: 63.254.4.0.2.128.0.0.0.0.0.0.0.0.0.1 wird zu 3ffe:400:280:0:0:0:0:1 Eine komprimierte Schreibweise erlaubt es diese Darstellung erneut zu vereinfachen. Eine Gruppe aufeinander folgender Nullen kann durch zwei Doppelpunkte ersetzt werden, wobei dies aus Gründen der Eindeutigkeit nur einmal pro Adresse gemacht werden darf. Es ergibt sich somit für obige Adresse die komprimiert Darstellung: 3ffe:400:280::1 Eine weitere Schreibweise ist für den Fall vorgesehen, dass bestehende IPv4 Adressen im IPv6 Adressraum beibehalten werden: ::fff:139.18.38.71 entspricht ::fff:8b12:2647 3 Abbildung 2: Die Schichten und Protokolle von TCP/IP Wie IPv4 Adressen setzen sich auch IPv6 Adressen aus einem Präfix und einem lokalen Anteil zusammen. Um dies darzustellen wird folgende, mittlerweile auch schon bei IPv4 übliche, Darstellung verwendet: IPv6 Adresse/Präfix: z.B. 3ffe:400:280:0:0:0:0:1/48 Das bedeutet, dass die ersten 48 Bit fix sind, wobei die restlichen 80 Bit im lokalen Subnetz vergeben werden. 3.2 TCP/IP im Überblick TCP/IP setzt sich aus mehreren Protokollen auf unterschiedlichen Schichten des OSI-Modells zusammen. Auf der Transport-Schicht wurden im TCP/IPReferenzmodell zwei Ende-zu-Ende-Protokolle definiert: das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP). TCP ist ein zuverlässiges verbindungsorientiertes Protokoll, durch das ein Datenstrom fehlerfrei an einen Kommunikationspartner übermittelt werden kann. UDP dagegen ist ein unzuverlässiges verbindungsloses, aber sehr schnelles Protokoll, das vorwiegend für Abfragen und Anwendungen in Client/ServerUmgebungen verwendet wird. Unter der Transport-Schicht liegt die Netzwerk-Schicht. Hier ist ein Protokoll namens IP (Internet Protocol) realisiert. Dieses hat die Aufgabe IPPakete richtig zuzustellen. Dabei steht das Routing der Pakete im Mittelpunkt. Es gibt hier jedoch keine feste Verbindung und es wird auch keine Überprüfung bezüglich fehlerfreier Übertragung vorgenommen. Dafür ist die Transportschicht zuständig. Ein wichtiger Bestandteil jeder IP-Implementierung ist das Internet Control Message Protocol (ICMP), welches zur 4 Abbildung 3: Ein IPv6 Datagram Übertragung von Diagnose- und Fehlerinformationen dient. Ein Dienst der ICMP benützt ist zum Beispiel ping. 3.3 IP Version 6 im Detail Die wichtigsten Merkmale von IPv6 sind: • Größerer Adressraum: 128 Bit Adressen statt bisher nur 32 Bit Adressen lösen das Adressproblem • Header-Format: einfacherer Header ermöglicht schnelleres Routen, variable Zusatzheader garantieren einfache Erweiterbarkeit • Sicherheit: Verfahren zur Authentifizierung und Verschlüsselung sind mit IPsec fest integriert • Dienstarten: Unterstützung verschiedener Dienste, wie Echtzeitübertragung Das IPv6-Datagramm besteht aus dem Base-Header gefolgt von optionalen Extension-Headern und den Nutzdaten. Der Base-Header enthält die im Folgenden näher erläuterten Felder: Version: Enthält die Version des Internet Protokolls. Damit ist eine Unterscheidung und somit paralleler Betrieb verschiedener Version (IPv6, IPv4) möglich. Priority: Beschreibt die Priorität mit dem das Paket auf dem Weg zum Empfänger behandelt werden soll. Flow Label: Hier werden Pakete gekennzeichnet, die eine besondere Behandlung durch IPv6 Router erfahren sollen, wie bei Echtzeitanwendungen. Beim Verarbeiten von Video- und Audiodaten unterstützt das Feld die Router, indem es als Hash-Code verwendet wird. Payload Length: Dieser Wert gibt die Größe des Pakets nach dem IPv6 Header in Byte an. Next Header: Dieses Feld identifiziert den Typ des ersten Extension-Headern nach dem IPv6 Header. Jeder Extension-Headern hat ebenfalls ein Feld Next Header. Im letzten Header vor 5 Abbildung 4: Der IPv6 Base-Header den eigentlichen Daten wird hier das Transportprotokoll (TCP oder UDP) angegeben. Hop Limit: Mit dem Feld Hop Limits wird festgelegt, wie lange ein Paket überleben darf. Der Wert wird von jedem Router, welcher das Paket weiterleitet, dekrementiert. Mit erreichen des Werts 0 wird das Paket verworfen. Als wichtige Extension-Headern wären folgende zu nennen: Hop-by-Hop Options Header: Hier sind verschiedene Informationen für Router enthalten. Routing Header: Mit diesem Header kann die Route, die ein IP-Paket nimmt, beeinflusst werden. Fragment Header: Bei IPv6 dürfen, im Vergleich zu IPv4, Router Pakete nicht selbständig fragmentieren. Der Fragment Header hilft dem Zielrechner die Pakete wieder richtig zusammenzusetzen, die vom Absender abhängig von der maximalen Paketgröße des Transportpfades fragmentiert wurden. Destination Options Header: Hier werden spezielle Informationen für den Zielrechner bereitgestellt, die ausschließlich von diesem ausgewertet werden. Authentication Header: Er erlaubt es einem Empfänger festzustellen, ob das Paket tatsächlich vom angegebenen Absender stammt und ob es während der Übertragung verändert wurde. 6 Encapsulating Security Payload Header: Dieser Header wird zur Verschlüsselung des Pakets benötigt. Bei der Entwicklung von IPv6 wurde auch daran gedacht, dass Geräte den Standort wechseln. Unter dem Begriff Mobile IPv6 versteht man Dienste und Funktionen die eine ungestörte Erreichbarkeit unter der ”alten” Adresse auch bei Standortwechseln ermöglichen. In dieser Arbeit wird jedoch nicht genauer auf diese Funktionen eingegangen. 4 IP Security oder kurz IPsec Durch die Verlagerungen von immer mehr Dienstleistungen und Services auf das Internet steigt das Sicherheitsbedürfnis der Anwender. Im Laufe der Zeit sind für spezielle Anwendungen Sicherheitsmechanismen entwickelt worden. Einige Beispiele dafür sind S/MIME, PGP, Kerberos und SSL. So kann man heute bereits sicher Internet-Banking betreiben oder E-Mails verschicken. All diese Mechanismen beschränken sich auf bestimmte Anwendungen oder Funktionen. Ein Ansatz den gesamten Datenverkehr, auch von nicht speziell gesicherten Anwendungen, abzusichern ist IPsec. Diese auf der IP-Ebene angesiedelte Sicherheit umfasst Authentifizierung, Verschlüsselung und Schlüsselverwaltung. Der Authentifizierungsmechanismus versichert, dass das Paket wahrhaftig vom angegebenen Sender stammt und weiters nicht am Weg manipuliert wurde. Die Verschlüsselung ermöglicht eine vertrauliche Übermittlung der Daten, während die Schlüsselverwaltung sich um den Austausch der Sicherheitsschlüssel kümmert. IPsec wird in den RFCs 2401 bis 2409 beschrieben und ist nicht unbedingt als einzelner Standard, sondern viel mehr als Framework zu betrachten. Während IPsec für IPv4 als Erweiterung verwendet werden kann, ist es in IPv6 bereits fest integriert. 4.1 Anwendungen von IPsec Zurzeit ist ein bestimmtes Schlagwort in aller Munde: VPN. VPN bedeutet Virtual Private Network und steht für ein logisches Netzwerk, welches auf einem anderen Netz aufsetzt. Zwischen den Kommunikationspartnern wird über das öffentliche Netz eine Art Tunnel aufgebaut, durch den sie ihre Daten zum Gegenüber senden. Die so vernetzten Systeme und Applikationen merken davon nichts. Während früher noch teure Standleitungen nötig waren, um Netzwerke unterschiedlicher Standorte sicher zu verbinden, kann man das heute mit einem VPN über das Internet sicher und vor allem günstig erreichen. Damit wurde auch bereits ein erstes wichtiges Anwendungsgebiet von IPsec genannt, nämlich die sichere Vernetzung von Firmen oder Zweigstel7 Abbildung 5: Ein IP Sicherheits-Szenario len über das Internet. Ein weiteres Beispiel für den Einsatz von IPsec ist die sichere Anbindung von entfernten Endbenutzern, wie Heimarbeitern oder Vertretern, an das Firmennetz. Daneben wird IP Sicherheit auch vermehrt zur Kommunikation und zur Abwicklung von Transaktionen zwischen Unternehmen verwendet. Hier ist neben der Datensicherheit auch die Authentität des Kommunikationspartners ein wichtiger Punkt. Natürlich kann IPsec auch parallel zu bestehenden Sicherheitsprotokollen und Mechanismen eingesetzt werden, wodurch sich die Gesamtsicherheit erhöht. 4.2 Was bietet IPsec? IPsec ist unter der Transportschicht realisiert und somit für Anwendungen transparent. Bestehende Software muss demnach nicht speziell angepasst werden um IPsec benützen zu können. Des weiteren müssen Endbenutzer nicht auf diese Sicherheitsmechanismen eingeschult werden. Es ist auch kein administrativer Aufwand, wie ein Passwortwechsel, nötig, sollte ein Benutzer die Organisation verlassen. Spezielle IPsec Implementierungen in Firewalls und Routern ermöglichen eine hohe Sicherheit bei der Übertragung jeglicher Daten, ohne Performance-Verlust oder spezieller Konfiguration der Clients. Um die gewünschte Sicherheit bereitzustellen werden in IPsec zwei Protokolle zur Verfügung gestellt. Encapsulating Security Payload (ESP) bietet Verschlüsselung und Authentifizierung, während Authentication Header (AH) nur die Möglichkeit bietet, die Integrität, also die Unverfälschtheit bzw. Authentität zu gewährleisten. Da ESP auch reine Authentifizierung 8 ohne Verschlüsselung bietet, ist die Notwendigkeit von AH nicht ganz einsichtig. In der folgenden Tabelle1 sind die wichtigsten Dienste der beiden Protokolle angeführt: AH ESP V ESP VA Integrität der Daten X X Sender Authentifizierung X X Zurückweisung wiedergegebener Pakete X X X Verschlüsselung der Daten X X 4.3 Modi von IPsec IPsec kann in zwei verschiedenen Modi verwendet werden. Der momentan wohl meistverwendete Modus ist der Tunnelmodus, im Standard ist jedoch auch ein Transport-Modus vorgesehen. Der Tunnel-Modus wird meist für LAN-zu-LAN-Verbindungen eingesetzt. Das Gateway verschlüsselt dabei das gesamte Paket samt des ursprünglichen IP-Headers und setzt stattdessen seinen eigenen davor. Dies ermöglicht das Routen von Paketen mit einer privaten Zieladresse über ein öffentliches Netz, wie es bei LAN-zu-LAN-Verbindungen nötig ist. Der Transport-Modus wird dagegen vorwiegend für die Host-zu-Host Kommunikation verwendet, der IP Header, mit der Quell- und Zieladresse, wird dabei nicht verändert. Sowohl ESP als auch AH können in beiden Modi arbeiten. Für den Aufbau einer gesicherten Verbindung kommt das Internet-KeyExchange-Protokoll (IKE) zum Einsatz. Dieses ermöglicht den Austausch von Schlüsseln, etabliert so genannte Security Associations (SA) und authentifiziert die Teilnehmer. Die SA umfasst alle Parameter, die die Verbindung sichern. Darin enthalten sind unter anderem die verwendeten KryptoAlgorithmen, die Lebensdauer von Schlüsseln und vieles mehr. Security Associations haben eine begrenzte Lebensdauer, nach deren Ablauf sie neu ausgehandelt werden müssen. Außerdem existieren pro Verbindung zwei SAs, für jede Seite eine. Die SAs für IKE und IPsec sind unabhängig voneinander. Der Verbindungsaufbau mit IKE durchläuft zwei Phasen. In Phase 1 erfolgt der Schlüsselaustausch mittels Diffie-Hellmann-Key-Exchange-Verfahren, welches mittels Public-Key-Kryptographie einen gemeinsamen Schlüssel erstellt, der für das restliche Austauschverfahren genützt wird. Nach einer erfolgreichen Authentifizierung über den gemeinsamen Schlüssel tauschen die Partner in Phase 2 die symmetrischen Schlüssel für die IPsec-Verbindung aus, die mit jeder Verbindung neu erzeugt werden. IPsec bietet eine Reihe von Verschlüsselungsstandards an. In den jeweiligen Phasen werden über so genannte Proposals, Parametervorschläge für 1 Bei ESP steht V für reine Verschlüsselung, VA für Verschlüsselung mit Authentifizierung. 9 Abbildung 6: IPsec Modi mit ESP 10 den zu wählenden Standard übersendet. Bei unterschiedlicher Konfiguration der Partner kann es passieren, dass keine IPsec-Verbindung zustande kommt. Ein Beispiel dafür wäre, dass ein Partner auf DES- und der andere auf IDEA-Verschlüsselung konfiguriert ist und somit kein gemeinsamer Standard gewählt werden kann. Nach erfolgreichem Durchlaufen der beiden Phasen ist die IPsec-Verbindung etabliert. 4.4 Das ESP Format Aufgrund der großen Bedeutung von ESP bei IPsec wird im Nachfolgenden kurz darauf eingegangen. Der ESP Header besteht unter anderem aus folgenden wichtigen Feldern. Neben den eigentlichen Daten variabler Länge gibt es den Security Parameters Index, der die Security Association identifiziert. Weiters sorgt eine Sequence Number dafür, dass wiedergegebene, bereits übertragene Pakete erkannt werden. Im Authentication Data Feld steht eine Prüfsumme, die über das restliche ESP Paket erstellt würde, um eine Manipulation der Daten zu erkennen. Für die Verschlüsselung und Authentifizierung können wie bereits erwähnt verschiedene Algorithmen verwendet werden. Diese beinhalten unter anderem Triple-DES, RC5, IDEA, Triple-IDEA, CAST und Blowfish. 4.5 Einige abschließende Worte zu IPsec Die hohe Komplexität von IPsec ermöglicht zwar einen sehr flexiblen Einsatz, kann aber auch zahlreiche Probleme bescheren. Verschiedene Implementierungen sind unter Umständen nur nach zahlreichen Anpassungen fähig Verbindungen herzustellen. Auf der anderen Seite hat IPsec sicher seine Existenzberechtigung neben anderen Protokollen, wie PPTP oder L2TP. Nicht nur wegen zahlreicher Sicherheitsmängel von PPTP oder der fehlenden Verschlüsselungsmöglichkeit in L2TP, sondern auch wegen der festen Integration in IPv6. 5 Literaturverzeichnis Dieses Dokument stellt einen Querschnitt der Informationen aus den folgenden Quellen dar: • C’T, Ausgabe 17/2001, ab Seite 164 • C’T, Ausgabe 18/2001, ab Seite 182 • http://www.ipv6-net.de/special/special1.html samt folgender Seiten 11 • http://www.rvs.uni-bielefeld.de/~heiko/tcpip/kap1_1_html samt folgender Seiten • Cryptography and Network Security: Principles and Practice, Kapitel 13, William Stallings, Prentice Hall 1998 12