IPSec und IKE - Fachbereich Informatik und Informationswissenschaft

Werbung
Universität Konstanz
Fachbereich Informatik und Informationswissenschaft
Protocols that run the internet
IPSec und IKE
Eine Einführung
Richard Wonka
01/423573
Schiffstraße 3
78464 Konstanz
[email protected]
Inhaltsverzeichnis
1 Wieso IPSec?
2
2 Anwendungen
3
3 Was bietet IPSec?
4
4 Essentielle Bestandteile von IPSec
5
5 Hosts und Gateways
7
6 Ablauf
8
7 Internet Key Exchange (IKE)
9
8 Ausblick
10
Einleitung
Nachdem sich die TCP/IP - Protokollfamilie im Internet als Standard etabliert hat, muss sie sich in der enormen weltweiten Verbreitung neuen Herausforderungen stellen. Die Technologie auf der das Internet basiert wurde in
freundlicher und vertrauter Umgebung entwickelt. Dabei spielte die Sicherheit eine höchstens untergeordnete, wenn überhaupt eine Rolle. Es wurde
kaum daran gedacht, welche Rolle die versandten Daten in einer Informationsgesellschaft für eine breite Öffentlichkeit spielen könnten oder wie ein
Missbrauch sich auswirken würde.
Die Neuen Herausforderungen an die Kommunikationsplattform Internet
stellen sich in Form der Sicherung dieser Kommunikation, die sozial und wirtschaftlich immer relevanter wird. Es gilt also, die Vetraulichkeit, Integrität,
Authentizität und Verfügbarkeit der Information, die Kommuniziert werden
soll, zu sichern.
Die Sicherung der Verfügbarkeit kann durch IPSec nicht geschehen. Die
anderen Aspekte der Sicherheit sind die grundlegende Motivation für die
Entwicklung von IPSec. Im Folgenden werden also die Begriffe ’Sicherung’
und ’Sicherheit’ in diesem Kontext benutzt werden.
IKE ist eines der von IPSec spezifizierten Schlüsseltauschverfahren, das
der Authentifikation und Verschlüsselung der Daten zugrunde liegt.
Grundlage dieser Arbeit sind [FRR00] und die einschlägigen von der IETF
formulierten RFCs.1
1
nachzuschlagen unter http://www.ietf.org
1
1
Wieso IPSec?
Bei der Betrachtung der Struktur und Funktionsweise des Internet werden wir
uns im Folgenden an das TCP/IP-Modell der Beschreibung von Netzwerken
halten, wie es z. B. in [Eck03] beschrieben ist. Dieses Modell hat das ISO/OSI
Referenzmodell abgelöst, da es der praktischen Umsetzung im Internet näher
kommt.
Die Sicherung der Kommunikation im Internet oder allgemein der Kommunikation in Netzen kann in verschiedenen Schichten dieses Modells stattfinden, was sich direkt darauf auswirkt, welche Arten von Daten dabei gesichert werden können. Vergleichen wir hierfür die Sicherungsprotokolle GNU
Privacy Guard2 (GnuPG), Secure Socket Layer (SSL) und IP Security (IPSec) am Anwendungsbeispiel einer eMail, um uns zu verdeutlichen, wozu
IPSec dient.
GnuPG Auf der Anwendungsebene des Schichtenmodells angesiedelt, lässt
sich GnuPG - unter anderem - dazu verwenden, den Inhalt von eMails
zu sichern. Die Header der eMail bleiben davon aber unberührt, ebenso
wie die Übertragung zum empfänger.
Um GnuPG zu nutzen, muss der Nutzer die Software auf Seinem System installiert haben und im Idealfall der eMail-Client GnuPG unterstützen.
SSL SSL bietet die Möglichkeit, die Übertragung von eMail zwischen zwei
entfernten Rechnern im Netz zu sichern, deren Kommunikation über
dieses Netz stattfindet. Die Übermittelten Inhalte sind also undurchsichtig, es können jedoch alle an der kommunitkation beteiligten Router
den Informationsfluss nachverfolgen.
Die Nutzung von SSL ist nur dann möglich, wenn die beteilgten mailtransport-programme (wie. z. B. exim, qmail oder sendmail) das Protokoll unterstützen. Ein eMail-client muss nicht notwendigerweise darauf
vorbereitet sein.3
IPSec Auf der Paket-Ebene bietet IPSec die Möglichkeit, die Datenübertragung zwischen zwei beliebigen Knoten im Netz vollständig oder nur
Teilweise zu sichern, indem die Inhalte der zu versendenden Pakete
2
3
http://www.gnupg.de
Ein eMail-Client muss nur dann SSL beherrschen, wenn er auch den Transport der
Post übernimmt, was aber eigentlich nicht seine Aufgabe ist.
2
wahlweise authentifiziert und/oder verschlüsselt und sogar der Informationsfluss verschleiert werden kann. Das definierende Dokument ist
hierbei [KA98a]
IPSec setzt bei den Anforderungen an den Nutzer noch weiter unten
an, IPSec muss vom Betriebssystem unterstützt sein, das die Netzwerkfunktionalität bereitstellen soll. Die aufsetzende Software muss für die
Nutzung von IPSec aber nicht modifiziert werden.
2
Anwendungen
Bevor wir uns mit den technischen Details von IPSec und dem darunter
liegenden Internet Key Exchange (IKE) auseinandersetzen, wollen wir uns
ansehen, wo IPSec zu welchen Zwecken eingesetzt wird und welchen Nutzen
wir davon haben.
Die größte Anwendung erfährt IPSec derzeit in Wireless LANs (WLAN)
und Virtual Private Networks (VPN). Sehen wir zunächst, weshalb IPSec
dazu geeignet ist.
WLAN
Während eine kabelgestützte Kommunikation zwischen Netzwerkknoten noch
relativ abgeschlossen ist, muss in wireless LANs die unmittelbare Verbindung
zweier Rechner, die geschützt werden. Im Luftraum um die kommunizierenden Partner ist es ohne großen Aufwand möglich, deren Kommunikation zu
belauschen oder eigene Signale in die Kommunikation einzuspeisen. Deshalb
ist eine Authentifikation der beiden Partner und ihrer Daten notwendig. Handelt es sich um Daten, die vertraulich behandelt werden sollten, muss eine
Verschlüsselung stattfinden. Um diese Ziele zu erreichen, ist eine Sicherung
auf Paketebene notwendig, da z. B. die anderen oben beschriebenen Sicherungsmethoden auf diese ebene keinen Einfluss haben.
VPN
Die Verbindung zweier Netzknoten, die nicht direkt miteinander verbunden
sind geschieht immer über die dazwischen liegenden Knoten. Diese anderen
Knoten gehören mit hoher wahrscheinlichkeit nicht zum Kreis derer, die Zugang zu vertraulicher Information haben sollten. Dennoch setzt die Netzwerkkommunikation voraus, daß die Information die fremden Knoten durchläuft,
3
sie muss also geschützt werden. IPSec kann diesen Schutz bieten und dabei
einen Größeren Teil der versandten Information sichern - auch einen Teil der
Metainformation wie der Absender- und Empfänger-Adresse, die eventuell
auch gesichert werden soll.
3
Was bietet IPSec?
Zugriffskontrolle IPSec erlaubt eine Kommunikation nur mit bekannten
Kommunikationspartnern, was eine Rudimentäre Zugriffskontrolle erlaubt.
Vertraulichkeit . . . der Inhalte: Die Versandten Daten können durch Verschlüsselungsalgorithmen gegen unautorisierte Einsichtnahme gesichert werden.
. . . des Informationsflusses(beschränkt) Im Tunnel-Modus werden
die gesamten Header der Transportierten IP-Pakete von einer weiteren Schicht umschlossen. IPSec kann auf diese Weise deren Inhalte (wie Absender und Empfänger des Paketes) verschleiern
Integrität Durch MACs kann festgestellt werden, ob die empfangene Information auf ihrem Weg verändert wurde. Offensichtlich kann eine solche
Veränderung dadurch nicht verhindert, wohl aber bemerkt werden.
Schutz vor Replay-Attacken IPSec-Pakete werden beim Versand laufend
durchnumeriert. Die gegenseite kann (muss aber nicht) dadurch prüfen,
ob empfangene Pakete schon einmal empfangen wurden.
Sicherheit auf IP-Level
Generell können IP-Pakete auf zwei verschiedene Weisen, sogenannte Modi,
gesichert werden.
• Transport-Modus
• Tunnel-Modus
Diese unterscheiden sich funktional vor allem in einem Punkt: Während beide
die Sicherheit des Inhalts der Pakete gewährleisten können, kann nur im
Tunnel-Modus auch die Metainformation der Header gesichert werden.
4
IP−Header Payload
IP−Header Tr−Header* Payload
Abbildung 1: Im Transportmodus wird die Payload durch den neu eingefügten Transport-Header geschützt
IP−Header Payload
IP−Header* Tu−Header*
IP−Header Payload
Abbildung 2: Im Tunnel-Modusl sind auch die IP-Header geschützt
Transport-Modus Im Transportmodus wird die des zu sichernden Paketes z. B. durch einen Hash-Algorithmus geschützt. Der daraus gewonnene
Wert wird in einem neuen Header-Feld mit dem Paket versandt. Dieses neue
Header-Feld wird zwischen die IP-Header und die Payload eingefügt.
Tunnel-Modusl Im Tunnel-Modusl wird das gesamte IP-Paket zur Payload eines vollkommen neuen Paketes. Auch hier kann wiederum die Payload
(das gesamte zu schützende Paket inclusive der Header-Felder) durch Hashoder Verschlüsselungsalgorithmen gesichert werden und die für die Gegenseite notwendige Information im (neuen) Paket mitgesandt werden.
Transport- und Tunnel-Modusl sind in den Abbildungen 1 und 2 allgemein
veranschaulicht.
4
Essentielle Bestandteile von IPSec
Die Gesamtheit von IPSec ist zusammengesetzt aus einigen Bestandteilen.
5
Security Policy Database (SPD)
Anhand der SPD werden alle Pakete überprüft, die den Rechner verlassen. Es
wird entschieden, ob und ggf. wie sie durch IPSec behandelt werden sollen,
also ob sie IPSec unverändert passieren, verworfen werden, oder welches Protokoll (oder welche Protokolle) in welchem Modus auf die Pakete angewandt
werden soll.
Security Associations (SA)
SA enthalten Informationen über die Sicherheitsdienste, die auf ein Paket
angewandt werden sollen:
• Kommunikationspartner – Sender und Empfänger eines Paketes sind
darin eindeutig festgelegt. Damit ist eine SA nur für eine Verbindung
(unidirektional) anwendbar. Sollen beide Richtungen einer Verbindung
gesichert werden, sind somit zwei SA notwendig
• Protokoll – Soll AH oder ESP auf das Paket angewandt werden? – IPSec unterstützt auch die Anwendung beider Protokolle auf ein Paket,
wodurch die Erstellung und Verwaltung zweier SA für eine (unidirektionale) Verbindung notwendig wird. Man spricht hierbei von einem
Security Bundle
• Cryptoalgorithmen und -Schlüssel – Welche Algorithmen und ggf. welche Schlüssel sollen auf das Paket angewandt werden?
• Lebensdauer – Die Gültigkeit einer SA ist begrenzt und in der SA selbst
vermerkt
• Security Policy Index (SPI) – Die Index-Nummer der SA in SAD. Anhand dieser Nummer verweisen IPSec Pakete auf die SA, die auf sie
angewandt werden soll. Die SPI ist hostspezifisch und einmalig.
Alle SA sind in der Security Association Database (SAD) verzeichnet.
Authentication Header (AH)
AH ist eines der Grundlegenden Protokolle von IPSec. Es ermöglicht die
Cryptographische Behandlung der Payload von IP-Paketen.
AH ist in [KA98b] definiert.
6
IP−Header
Next Header,
Length
SPI
Payload
Seq−Nr.
HASH (MAC)
Abbildung 3: AH im Transportmodus
Ein IPSec/AH - Paket unterscheidet sich von IP-Paketen durch ein neues Header-Feld, das zwischen den IP-Headern und der Payload steht. Dies
ist eine mögliche Form des Transportmodus, wie oben beschrieben. Abbildung3 zeigt das von IPSec eingefügte Header-Feld im Transportmodus: Nach
dem IPHeader wird zunächst Information über das von der IP-Schicht umschlossene Protokoll (Next Header) angefügt. Danach folgt Die Länge des
Hash-Wertes, der an das Ende des Neuen Headers angefügt wird. Dazwischen stehen der SPI , mit dem das Paket auf der Empfängerseite assoziiert
werden soll und die laufende Nummer des Paketes, um es dem Empfänger zu
ermöglichen, Replay-Attacken vorzubeugen.
Encapsulating Security Payload (ESP)
Während AH nach der IPSec-Spezifikation nur die Integrität der Information
sicherstellen können soll, sieht die Spezifikation für ESP auch die Nutzung
von Verschlüsselung vor, um die Vertraulichkeit der Daten zu gewährleisten.
ESP ist in [KA98c] definiert.
Tatsächlich wird bei einem Verzicht auf Verschlüsselung nicht darauf verzichtet, einen Verschlüsselungsalgorithmus anzuwenden, sondern es wird der
NULL-Algorithmus [GK98] angewandt, der alle Daten unverändert lässt.
Beide Protokolle sind oben im Transport-Modus beschrieben, können aber
auch – analog zur obigen Erklärung im Tunnel-Modus genutzt werden.
5
Hosts und Gateways
Bei den Kommunikationsteilnehmern unterscheidet IPSec zwischen Hosts
und (Security-)Gateways . Hosts sind solche Netzknoten, die Endpunkte ei7
IP−Header
Payload(encrypted)
SPI Seq−Nr. [Init−Vector] Pad
Next
Header ESP−Auth
Abbildung 4: ESP im Transportmodus
ner IPSec-gesicherten Kommunikation sind und keine Kommunikation für
andere Knoten absichern. Security-Gateways dagegen nehmen Pakete von
anderen Knoten entgegen und leiten diese - durch IPSec gesichert - weiter.
Ist einer der beiden Kommunikationspartner ein Gateway, so entfällt die
Möglichkeit, den Transport-Modus zu benutzen. Sowohl AH als auch ESP
müssen dann im Tunnel-Modusl genutzt werden.
6
Ablauf
Die IPSec-gesicherte Kommunikation verläuft wie folgt: Ein übergeordnetes
Protokoll übergibt der IPSec-Implementation ein Paket. Anhand der SPD
entscheidet IPSec, ob und wie das Paket gesichert werden soll.
Nach den Angaben der SAD wird das Paket nach AH und/oder ESP im
Transport- und/oder Tunnel-Modusl bearbeitet, mit einer Laufenden Nummer versehen und zum Empfänger gesandt.
Dieser prüft zunächst, ob die Absender-Adresse des paketes die eines bekannten kommunikationspartners ist. Ist dem so, entnimmt er nach einer
optionalen Prüfung der Sequenznummer dem SPI des Paketes, mit welcher
SA das Paket verknüpft ist und Entschlüsselt und/oder Überprüft das Paket
mit den angegebenen Schlüsseln und/oder Algorithmen.
Ist der Emfänger ein Security-Gateway, so leitet er das paket weiter zum
endgültigen Empfänger. Ist er selbst der Enpunkt der Kommunikation, so
wird das Paket an die darüberliegende Schicht weitergereicht.
8
7
Internet Key Exchange (IKE)
Um eine gesicherte Kommunikation zu ermöglichen, bedarf es geheimer Schlüssel
und der verteilung öffentlicher Schlüssel. IPSec sieht auch einen Betriebsmodus mit vorab ausgetauschten Schlüsseln vor, da dies jedoch wenig effizient
ist, sind effiziente automatisierte Schlüsseltauschprotokolle in der Spezifikation von IPSec vorgesehen.
IKE ist das momentan für IPSec wichtigste Protokoll zum sicheren Tausch
und der Generierung geheimer Schlüssel. Es ist ein Hybridprodukt aus Bestandteilen von ISAKMP ([HC98]) OAKLEY ([Orm98]) und SKEME , deren
Funktionalität es aber nicht ausschöpft, sondern nur Teile übernimmt und in
einen neuen Rahmen fügt.
Ablauf
Ziel von IKE ist es, die notwendigen Daten zu generieren, um eine oder
mehrere SA zur Kommunikation mit dem Gegenüber formulieren zu können.
Um dies zu ermöglichen, ist es zunächst notwendig, den Gegenüber zu Authentifizieren. An dieser Stelle bedient sich IKE der für ISAKMP formulierten Authentikation, indem der Initiator der Verbindung (A) Vorschläge
für (ISAKMP -)SA 4 an den Antwortenden Knoten (B) sendet. Dieser Gibt
an (A) eine für ihn Akzeptable SA zurück. Anhand dieser SA kann nun
ein Schlüsseltausch vorgenommen werden. De-facto-Standard ist dabei der
Schlüsseltausch nach Diffie-Hellman, wie er z. B. in [RP99] erklärt wird, es
können aber auch andere Verfahren eingesetzt werden.
Nachdem auf diese Weise die Kommunikation zwischen den Knoten etabliert wurde, können auf die gleiche Weise die SA für IPSec ausgehandelt
werden, auf die sich die Pakete dann beziehen können.
4
nicht zu verwechseln mit den IPSec-SAs
9
8
Ausblick
IPSec bietet viele Möglichkeiten, die Sicherung der IP-Ebene auf die Persönlichen anforderungen anzupassen, darunter auch einige Redundanzen. Die Komplexität des Protokolls oder - besser - der Protokollsammlung bietet zwar
einiges an Funktionalität, ist aber gerade im Bereich der Sicherheit problematisch, wie Ferguson und Schneier in [SF] bemerken.
Da IPSec bereits als fester Bestandteil von IPv6 geplant ist, ist seine baldige und weitläufige Verbreitung wohl nicht in Frage zu stellen, doch zeigen
sich noch Probleme an einigen Stellen. Beispielsweise gibt es keine klare Regelung, wie die Länge der Pakete gehandhabt werden soll, wenn sie durch den
Einsatz von IPSec die für IP-Pakete maximale Länge überschreitet. Bisherige
Implementationen von IPSec finden hierfür nur wenig elegante Lösungen.
Ist IPSec jedoch fehlerfrei konfiguriert, so bietet es alle MÖglichkeiten der
Sicherung, die auf der Paket-Ebene erwartet werden können und kann - und
wird vermutlich - der Sicherung verschiedenster Netzdienste dienlich sein.
10
Index
AH, 6, 8
ESP, 6–8
Gateway, 7
GnuPG, 2
Header, 5
Host, 7
IKE, 3, 9
IP, 1
IPSec, 2
IPv6, 10
ISAKMP, 9
ISO/OSI, 2
MAC, 4
OAKLEY, 9
Payload, 5
SA, 6, 8, 9
SAD, 6
Security Bundle, 6
SKEME, 9
SPD, 6, 8
SPI, 6–8
SSL, 2
TCP, 1
Transport-Modus, 5, 7
Tunnel-Modus, 4, 7
VPN, 3
WLAN, 3
11
Literatur
[Atk95a] Atkinson, R.: RFC 1825: Security Architecture for the Internet
Protocol, August 1995. Obsoleted by RFC2401 [KA98a]. Status:
PROPOSED STANDARD.
[Atk95b] Atkinson, R.: RFC 1826: IP Authentication Header, August
1995. Obsoleted by RFC2402 [KA98b]. Status: PROPOSED
STANDARD.
[Atk95c] Atkinson, R.: RFC 1827: IP Encapsulating Security Payload
(ESP), August 1995. Obsoleted by RFC2406 [KA98c]. Status:
PROPOSED STANDARD.
[Eck03]
Eckert, Claudia: IT-Sicherheit. Oldenbourg Wissenschaftsverlag, München, Wien, 2003.
[FRR00] Fischer, Stephan, Christoph Rensing und Utz Rödig:
Open Internet Security. Springer-Verlag, 2000.
[GK98]
Glenn, R. und S. Kent: RFC 2410: The NULL Encryption Algorithm and Its Use With IPsec, November 1998. Status: PROPOSED STANDARD.
[HC98]
Harkins, D. und D. Carrel: RFC 2409: The Internet Key Exchange (IKE), November 1998. Status: PROPOSED STANDARD.
[KA98a] Kent, S. und R. Atkinson: RFC 2401: Security Architecture
for the Internet Protocol, November 1998. Obsoletes RFC1825
[Atk95a]. Status: PROPOSED STANDARD.
[KA98b] Kent, S. und R. Atkinson: RFC 2402: IP Authentication Header, November 1998. Obsoletes RFC1826 [Atk95b]. Status: PROPOSED STANDARD.
[KA98c] Kent, S. und R. Atkinson: RFC 2406: IP Encapsulating Security Payload (ESP), November 1998. Obsoletes RFC1827 [Atk95c].
Status: PROPOSED STANDARD.
[Orm98] Orman, H.: RFC 2412: The OAKLEY Key Determination Protocol, November 1998. Status: INFORMATIONAL.
[RP99]
Rechenberg, Peter und Gustav Pomberger (Herausgeber):
Informatik-Handbuch. Carl Hanser Verlag, 2. Auflage, 1999.
12
[SF]
Schneier, Bruce und Niels Ferguson: A Cryptographic Evaluation of IPSec.
13
Herunterladen