View
220
Download
1
Category
Preview:
Citation preview
Sichere Netzwerke mit IPSec
Christian Bockermann <christian@ping.de>
• 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
Recommended