Eine Einführung in IPv6 und IPsec

Werbung
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
Herunterladen