61
Sichere Netzwerke mit IPSec Christian Bockermann <[email protected]>

Sichere Netzwerke mit IPSec - secure.ping.dechristian/IPSec.pdf · IPSec - Architektur •IP-Pakete enthalten dabei die Sender- und Empfänger-Adressen im Header •Diese Pakete werden

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Sichere Netzwerke mit IPSec

Christian Bockermann <[email protected]>

• Gefahren, Ziele

- Verschlüsselung im OSI-Modell

• IPSec

- Architektur

- Schlüssel-Management

- Beispiele

Überblick

Unsichere

Kommunikation

IPSec - Architektur

• Kommunikation über IP ist Strom von Paketen

Alice Bob

Head

er

DatenH

eader

Daten

IPSec - Architektur

• IP-Pakete enthalten dabei die Sender- und Empfänger-Adressen im Header

• Diese Pakete werden von den Routern unverschlüsselt übertragen

• Die Pakete können von jedem Router manipuliert werden

• Daher ist die Integrität, der Ursprung und die Vertraulichkeit nicht gesichert

Gefahren

• IP bietet keine Garantie von

- Geheimhaltung (Vertraulichkeit)

- Daten-Ursprung (Authentizität)

- Daten-Manipulation (Integrität)

OSI-Modell

• Ansätze um Sicherheit zu erhöhen:

Anwendungsschicht

Darstellungsschicht

Kommunikationsschicht

Transportschicht

Vermittlungsschicht

Sicherungsschicht

Physikalische Schicht

IPSecSSL (HTTPS,...)

PGP, S/MIME, SET,...

IP-Security

IPSec

• IPSec ist eine Erweiterung des IP-Protokolls um

- Authentifizierung

- Verschlüsselung

• Spezifiziert in

- RFC 2401 (Architektur)

- RFC 2402, 2406 (Auth., Verschl.)

- RFC 2408 (Schlüssel-Verwaltung)

IPSec - Prinzip

• Um den Paket-Strom gesichert zu übertragen, werden die Pakete transformiert

Alice Bob

Head

er

Daten

Head

er

Daten

Transformation Transformation

Head

er

Daten

IPSec - Prinzip

• Die Transformation übernimmt der IPSec-Stack des Betriebssystems

• Dem Anwendungs-Prozess bleibt IPSec verborgen

• IPSec sichert damit die Kommunikation zwischen Rechner-Systemen

• Im Gegensatz dazu, sichert SSL die Kommunikation zwischen Anwendungen(z.B. Browser <-> Web-Server)

IP-Security

Architektur

IPSec - Architektur

• Bei diesen Transformationen handelt es sich z.B. um Verschlüsselung mit symmetrischen Verfahren oder signierte Hash-Werte

• Dazu sind zusätzliche Informationen notwendig:

- Welcher Algorithmus wird verwendet?

- Welches Kennwort wird verwendet?

- Wie lange ist das Kennwort gültig?

IPSec - SA

• Die Parameter für die Transformation wird bei IPSec in einer Security Association definiert

• Eine Security Association fasst IP-Pakete zusammen, anhand von

- einem SPI (Security Parameter Index)

- der IP-Ziel-Adresse

- und dem Security Protocol Identifier

IPSec - SA

• Zusätzlich gehören zu einer SA noch

- Sequenz-Zähler

- ein Anti-Replay-Window

- Algorithmus-Informationen

- Gültigkeitsdauer

- Modus

• Eine SA gilt jeweils nur für EINE Richtung

- daher werden immer zwei SAs genutzt

IPSec - SA

• Die SA ist eine Vereinbarung, wie Alice und Bob ihre Kommunikation verschlüsseln

Alice Bob

Head

er

Daten

Head

er

Daten

Transformation Transformation

Head

er

Daten

Security AssociationSA: Alice -> Bob

IPSec - SA

• Für die Kommunikation mit Carol benötigt Alice ebenfalls zwei Security Associations

Alice

CarolBob

SA: Alice -> Bob

SA: Bob -> Alice

SA: Alice -> Carol

SA: Carol -> Alice

IPSec - SPD

• Wie sagt Alice ihrem System, dass für Pakete zu Bob eine SA benutzt werden soll?

• IPSec definiert dazu je System eine Security Policy Database

• Diese SPD enthält Regeln, wie mit anderen System zu kommunizieren ist, d.h. welche Transformationen zu verwenden sind

IPSec - SPD

SPD

SA1

Daten...

Head

er

Daten

Head

er

Daten

IPSec

BetriebssystemMüssen die Daten verschlüsselt werden?

Schlüssel

JA

NEIN

IPSec - SPD

• Die Security Policy Database (SPD) definiert, welche Transformationen für welche Pakete verwendet werden sollen

• Unter UNIX kann diese Datenbank z.B. mit setkey angezeigt und verändert werden

• setkey -PD zeigt die Einträge der SPD an

• setkey -D zeigt die aktiven SAs an

IPSec - Architektur

• IPSec bietet 2 Mechanismen, um IP-Pakete sicherer zu übertragen:

- Authentication Header (AH)

- Identifiziert Sender

- sichert Integrität der Pakete

- Encryption Security Payload (ESP)

- bietet Vertraulichkeit

- optional auch Integrität der Daten

IPSec - Architektur

• AH basiert auf einem zusätzlichen Header, der dem normalen IP-Header folgt

• Bei ESP enthalten die Nutzdaten ebenfalls einen Header, der den SPI enthält

• Die Existenz dieses Headers wird durch die Transport-Protokoll-Nummer im IP-Header angezeigt

• Bei IPv6 wird dazu das „next-header“-Feld verwendet

IPSec - Architektur

• Die beiden Varianten AH und ESP stehen in zwei verschiedenen Modi zur Verfügung

• Transport-Modus

- Verschlüsselung/Authentifzierung NUR der Nutzdaten

• Tunnel-Modus

- Gesamtes IP-Paket wird geschützt

- Neues Paket transportiert das geschützte

IPSec - AH

• Der Authentication Header bietet eine Integritätssicherung des IP-Paketes

Next Header Payload length reserved

Security Parameter Index

Sequenz-Zahl

Authentication Data

IPSec - AH

• Zur Integritätssicherung wird ein Hash-Wert berechnet, in den das Kennwort der SA einfliesst (HMAC)

DatenIPHeader

HMAC

Schlüssel aus der SA

AuthenticationData

AH - Transport-Modus

• Das transformierte Paket enthält somit eine verschlüsselte Prüfsumme des IP-Headers und der Daten

DatenIPHeader

DatenIPHeader

Ursprüngliches Paket

Transformiertes Paket

AH - Transport-Modus

• AH im Transport-Modus bezieht sich auf die Nutz-Daten und den IP-Header

• Dadurch wird der Paket-Absender direkt authentifiziert

AH - Tunnel-Modus

• Bei AH im Tunnel-Modus wird ein neues IP-Paket erzeugt, das einen Authentication-Header über das ursprüngliche Paket enthält

neuerIP

Header

DatenIPHeader

Ursprüngliches Paket

Transformiertes Paket

DatenIPHeader

KE

Y

IPSec - ESP

• ESP dient zur Verschlüsselung der Nutzdaten

• Hier wird kein separater Header eingefügt, sondern die Nutzdaten verschlüsselt

Security Parameter Index

Sequenz-Zahl

Eigentliche Nutzdaten

Padding-length Payload lengthPadding (0-255 bytes)

optional Authentication Data

ESP - Transport-Modus

• Im Transport-Modus verschlüsselt ESP die Daten des Paketes, der IP-Header bleibt erhalten

DatenIPHeader

DatenIPHeader

Ursprüngliches Paket

Transformiertes Paket

ESP - Transport-Modus

• Im Transport-Modus sind die Paket-Inhalte verschlüsselt

• Da sich die Verschlüsselung nur auf den Inhalt bezieht, sind die IP-Header sichtbar

• Dies erlaubt z.B. eine Fluss-Analyse des Datenstroms:

- Wer kommuniziert mit wem?

ESP - Tunnel-Modus

• ESP im Tunnel-Modus verschlüsselt das komplette IP-Paket und versendet das verschlüsselte Paket in einem neuen Paket

neuer IP

HeaderDatenIP

Header

Ursprüngliches Paket

Transformiertes Paket

DatenIPHeader

ESP - Tunnel-Modus

• Im Tunnel-Modus werden mit ESP auch die IP-Header verschlüsselt

• Dadurch wird auch der Kommunikations-Fluss (Quelle <-> Ziel) verschleiert

• Für aussenstehende sind nur noch Pakete zwischen den IPSec-Gateways sichtbar

ESP - Tunnel-Modus

Client 1 oderNetzwerk 1

Client 2 oderNetzwerk 2

IPSec-Gateway A

IPSec-Gateway B

Im Tunnel-Modus wird hier nur die Kommunikation zwischen Gateway

A und Gateway B sichtbar

IPSec - Szenarien

• Wann benutzt man welchen Modus?

• Welche Szenarien gibt es?

• Im folgenden ein paar kleine Beispiele

IPSec - Szenarien

Client-to-Site Vernetzung,z.B. mit ESP im Transport-Modus

Gateway Client

Typisches Szenario für sogenannte Road-Warrior oder WLAN-Netze

IPSec - Szenarien

Site-to-Site Vernetzung,z.B. mit ESP im Tunnel-Modus

Gateways authentifizieren sich gegenseitig,keine Authentifikation der Clients untereinander

IPSec - Szenarien

Site-to-Site Vernetzung,z.B. mit ESP im Tunnel-Modus

Client-Authentifikation über AH im Transport-Modus (innen)

IP-Security

Schlüssel-Management

Schlüssel-Management

• IPSec benötigt für AH- und ESP-Security Associations geheime Schlüssel, die an beiden Endpunkten verfügbar sein müssen

• Das Schlüssel-Management umfasst

- Schlüssel-Festlegung

- Schlüssel-Verteilung

Schlüssel-Management

• Die Festlegung und Verteilung von Schlüsseln ist auf 2 verschiedene Arten möglich

- manuellAdministrator legt Schlüssel an beiden Seiten fest

- automatischFestgelegt über das ISAKMP (Internet Security Association Key Management Protocol)

Schlüssel-Management

• Der IPSec-Standard für automatic keying ist ISAKMP/Oakley

• Oakley ist ein Protokoll, das auf dem Diffie-Hellman-Verfahren aufbaut

• ISAKMP kann auch andere Schlüssel-Austausch-Verfahren nutzen, in der Regel ist dies aber meist Oakley

Diffie-Hellman

• Das Diffie-Hellman-Verfahren basiert auf dem Problem den diskreten Logarithmus grosser Zahlen zu berechnen

• Wie bei den anderen public-key Algorithmen gibt es eine Funktion f, die einfach zu berechnen ist

• Die Umkehr-Funktion g = f-1 ist nur mit einer geheimen Zusatzinformation zu berechnen

Diffie-Hellman

• Sei q eine Primzahl und a eine primitive Wurzeln bzgl. q

• a und q werden veröffentlicht

• f und g sind dabei

f(x) = ax mod qg(x,y) = yx mod q

Diffie-Hellman

1. Wähle XA (geheim!)

2. Sende f(XA)

3. KS = g(XA,f(XB))

1. Wähle XB (geheim!)

2. Sende f(XB)

3. KS = g(XB,f(XA))

f(XA)

f(XB)

Alice Bob

Ein Angreifer kann nur f(XA) und f(XB) mitlesen

Diffie-Hellman

• Der Sitzungs-Schlüssel KS besteht für Alice aus

• Bob berechnet KS als

• Einem Angreifer steht nur a,q, aXA, aXB zur Verfügung

KS = (aXB mod q)XA mod q

KS = (aXA mod q)XB mod q

Diffie-Hellman

• Um den Schlüssel

zu berechnen, müsste entweder XA oder XB bekannt sein

• Dies erfordert die Lösung (Y) von

KS = (aXB mod q)XA mod q

(aXB mod q)XA mod q = (aXB mod q)Y mod q

Diffie-Hellman

• Problem: Man-in-the-Middle-Attacke

• Wie kann sich Alice sicher sein, dass sie mit Bob einen Schlüssel berechnet und nicht mit Mallory?

Mallory

Alice Bob

Diffie-Hellman

• Verfahren sehr rechenintensiv

• Problem dabei: Denial-of-Service-Attacken

- Ein Angreifer versucht, mit vielen Schlüssel-Austauschen das System zu überlasten

- Dabei werden meistens gefälschte Absender-Adressen verwendet

Mallory Alice

Oakley

• Um die Unzulänglichkeiten des Diffie-Hellman-Verfahrens zu beseitigen wird beim Oakley-Austausch das Verfahren erweitert

- Cookie-Austausch gegen DoS-Attacken

- DH-Gruppen als Parameter-Sätze

- Nonces gegen Replay-Attacken

Oakley

• Authentifikation der Teilnehmer

- Digitale Signatur

- Public-Key Verschlüsselung (rsasig)

- Symmetrische Verschlüsselung (pre-shared Keys, PSK)

ISAKMP

• ISAKMP ist das Protokoll um Security Associations

- Aufzubauen (Authentifikation, Algorithmen)

- Abzustimmen (Schlüssel-Austausch)

- zu verändern (alle 2 Std. neuer Schlüssel)

- zu löschen

• Dazu definiert ISAKMP unter anderem Paket-Formate und Ablauf-Varianten

ISAKMP

• Es sind verschiedene Ablauf-Varianten möglich

- Aggressive Mode

- Base Exchange

- Identity Protection Mode (Main Mode)

• Der Aggressive Mode sollte nach Möglichkeit nicht verwendet werden, da er einige Schwächen aufweist (http://www.ernw.de/download/pskattack.pdf)

ISAKMP

• Das grundlegende Vorgehen ist dabei jeweils

1. Alice schlägt Bob eine Menge von Algorithmen vor (Proposal)

2. Bob wählt einen Algorithmus aus und nennt ihn Alice

3. Nun müssen beide noch sicherstellen, dass sie wirklich Alice und Bob sind

4.Zum Schluss müssen sie noch einen geheimen Schlüssel austauschen oder festlegen

ISAKMP

• Der Aufbau einer IPSec-Verbindung besteht aus zwei Phasen

- Phase 1Hier authentifizieren sich die Partner und tauschen Schlüssel aus (IKE-SA)

- Phase 2Nun werden die ausgetauschten Schlüssel verwendet um die SA (IPSec-SA) für den Datenaustausch zu erzeugen

ISAKMP - Phase 1

• Main Mode

1. Alice sendet Bob Proposal (DES,AES,...)

2. Bob wählt Algorithmus und sagt ihn Alice

3. Alice sendet f(XA) an Bob

4.Bob sendet f(XB) an Alice

5. Alice sendet Authentifizierungs-Daten

6.Bob sendet Authentifizierungs-Daten

ISAKMP - Phase 1

• Das Proposal legt fest, welche Verschlüsselung- und Hash-Algorithmen verwendet werden können

• Für die Authentifikation in Schritt 5 und 6 gibt es mehrere Möglichkeiten

- Schlüssel (pre-shared keys)

- Zertifikate

ISAKMP - Phase 2

• Wenn die Phase 1 vorüber ist, haben beide Parteien bereits die Möglichkeit verschlüsselt Daten auszutauschen

• Nun werden nochmals SAs erzeugt, die zum eigentlich Datenaustausch benutzt werden

• Für diese SAs macht der Initiator wieder einen Vorschlag (Proposal), ...

• Dabei können auch mehrere „Daten-SAs“ verhandelt werden

ISAKMP - Phase 2

• Diese „Daten-SAs“ enthalten keine Schlüssel-Informationen aus der Phase 1

• Dadurch ist die Sicherheit der Phase 2 nicht mehr von der Phase 1 abhängig

ISAKMP

• Für den Aufbau einer IPSec-Verbindung mit automatischem Schlüssel-Austausch wird ein IKE-Daemon benötigt

• racoon und isakmpd sind Daemon, die unter Unix laufen und ISAKMP unterstützen

ISAKMP

• Beispiel:

- Racoon mit PSK