Sichere Netzwerke mit IPSec

Werbung
Sichere Netzwerke
mit IPSec
Christian Bockermann <[email protected]>
Überblick
• Gefahren, Ziele
- Verschlüsselung im OSI-Modell
• IPSec
- Architektur
- Schlüssel-Management
- Beispiele
Unsichere
Kommunikation
IPSec - Architektur
• Kommunikation über IP ist Strom von Paketen
Alice
Bob
Daten
Header
Header
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
PGP, S/MIME, SET,...
Kommunikationsschicht
Transportschicht
Vermittlungsschicht
Sicherungsschicht
Physikalische Schicht
SSL (HTTPS,...)
IPSec
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
Daten
Header
Transformation
Daten
Header
Header
Daten
Bob
Transformation
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
Security Association
Alice
Daten
Header
Transformation
Daten
Header
Header
Daten
SA: Alice -> Bob
Bob
Transformation
IPSec - SA
• Für die Kommunikation mit Carol benötigt
Alice ebenfalls zwei Security Associations
Bob
l
ro e
Ca lic
-> A
e ->
ic l
Al ro
: Ca
SA A:
S
S
SA A:
: Al
Bo ic
b e
-> ->
Al Bo
ic b
e
Alice
Carol
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
Daten...
Betriebssystem
Müssen die Daten verschlüsselt werden?
SPD
JA
NEIN
Schlüssel
Header
Daten
IPSec
Header
Daten
SA1
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
• setkey
-PD zeigt die Einträge der SPD an
-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)
IP
Header
Daten
HMAC
Authentication
Data
Schlüssel
aus der SA
AH - Transport-Modus
• Das transformierte Paket enthält somit eine
verschlüsselte Prüfsumme des IP-Headers und
der Daten
Ursprüngliches
Paket
Transformiertes
Paket
IP
Header
IP
Header
Daten
Daten
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 AuthenticationHeader über das ursprüngliche Paket enthält
Transformiertes
Paket
IP
Header
neuer
IP
Header
KEY
Ursprüngliches
Paket
Daten
IP
Header
Daten
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 (0-255 bytes)
Padding-length Payload length
optional Authentication Data
ESP - Transport-Modus
• Im Transport-Modus verschlüsselt ESP die
Daten des Paketes, der IP-Header bleibt
erhalten
Ursprüngliches
Paket
Transformiertes
Paket
IP
Header
IP
Header
Daten
Daten
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
Ursprüngliches
Paket
Transformiertes
Paket
IP
Header
neuer
IP
Header
Daten
IP
Header
Daten
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 oder
Netzwerk 1
IPSecGateway A
Client 2 oder
Netzwerk 2
IPSecGateway 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
manuell
Administrator legt Schlüssel an beiden Seiten
fest
automatisch
Festgelegt ü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 DiffieHellman-Verfahren aufbaut
ISAKMP kann auch andere SchlüsselAustausch-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 q
g(x,y) = yx mod q
Diffie-Hellman
Alice
Bob
1. Wähle XA (geheim!)
1. Wähle XB (geheim!)
f(XA)
2. Sende f(XA)
3. KS = g(XA,f(XB))
f(XB) 2. Sende f(XB)
3. KS = g(XB,f(XA))
Ein Angreifer kann nur f(XA) und f(XB) mitlesen
Diffie-Hellman
• Der Sitzungs-Schlüssel K
KS =
(aXB mod
• Bob berechnet K
KS =
•
S
S
besteht für Alice aus
XA
q) mod q
als
(aXA mod
XB
q) mod q
Einem Angreifer steht nur a,q, aXA, aXB zur
Verfügung
Diffie-Hellman
• Um den Schlüssel
KS =
•
(aXB mod
XA
q) mod q
zu berechnen, müsste entweder XA oder XB
bekannt sein
Dies erfordert die Lösung (Y) von
(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 AbsenderAdressen 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 PaketFormate 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 1
Hier authentifizieren sich die Partner und
tauschen Schlüssel aus (IKE-SA)
Phase 2
Nun 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
Herunterladen