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