M 5.90 Einsatz von IPSec unter Windows
Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT
Verantwortlich für Umsetzung: Administrator
Zur Absicherung der Kommunikation bietet Windows eine IPSec-konforme Implementierung an. IPSec ist ein internationaler Standard, der die kryptographische Absicherung IP-basierter Kommunikation erlaubt und folgende Funktionen umfasst:
- Gegenseitige Authentisierung der Kommunikationsendpunkte
- Sicherung der Integrität der übertragenen Daten durch digitale Signaturen
- Sicherung der Vertraulichkeit der übertragenen Daten oder des gesamten IP-Datenpakets durch Verschlüsselung (Tunnel-Modus)
Allgemeine Hinweise zur Auswahl geeigneter kryptographischer Verfahren finden sich in der Maßnahme M 2.164 Auswahl eines geeigneten kryptographischen Verfahrens. Als Hash-Verfahren sollte beim Einsatz von IPSec ein Algorithmus der SHA-2-Familie verwendet werden, also SHA-224, SHA-256, SHA-384 oder SHA-512.
Diese werden etwa im IPSec-Client, der Teil der Windows Vista Firewall ist, erst mit dem Service Pack 1 von Windows Vista unterstützt. Ohne den Service Pack 1 unterstützt dieser IPSec-Client nur die schwächeren Hashverfahren MD5 und SHA1, die nicht mehr eingesetzt werden sollten.
Damit neben der Integrität und Vertraulichkeit der übertragenen Daten auch sichergestellt werden kann, dass die Daten zwischen den korrekten Kommunikationspartnern ausgetauscht werden, müssen sich diese authentisieren. Die Windows Implementierung erlaubt folgende Verfahren zur Authentisierung der Kommunikationsendpunkte:
- Es kann das Kerberos-Protokoll eingesetzt werden. Hierbei findet die normale Windows Authentisierung statt. Dieses Verfahren beruht auf symmetrischen Schlüsseln, die zur Verschlüsselung der so genannten Kerberos-Tickets eingesetzt werden.
- Es können X.509-Zertifikate eingesetzt werden. Hierbei erfolgt die Authentisierung - basierend auf asymmetrischen Schlüsseln - auf Grund der Zertifikatsinformationen. In der Regel wird ein so genanntes Challenge-Response-Verfahren eingesetzt, das überprüft, ob der zu authentisierende Benutzer im Besitz des korrekten privaten Schlüssels ist.
- Es wird ein so genanntes Pre-shared Secret benutzt. Hierbei erfolgt die Authentisierung durch einen geheimen Schlüssel (d. h. Passwort), der vorher zwischen den Kommunikationspartnern ausgetauscht wurde. Der Austausch muss über einen sicheren Kanal erfolgt sein, so dass der geheime Schlüssel nur den beiden Kommunikationspartnern bekannt ist.
Im Rahmen des ersten IPSec-Verbindungsaufbaus werden zunächst die nachfolgend zu benutzenden Algorithmen und Verfahren zur Authentisierung, Integritätssicherung und Wahrung der Vertraulichkeit zwischen den Kommunikationspartnern ausgehandelt und in der so genannten Security Association (SA) gespeichert.
Diese in der SA gespeicherten Parameter werden für alle zukünftigen Kommunikationsverbindungen benutzt, bis die Gültigkeit der SA-Parameter erlischt und die Verfahren neu ausgehandelt werden. Dies erfolgt in der Regel vollautomatisch durch die Komponenten der IPSec-Implementierung.
Für die eigentliche Verschlüsselung müssen Schlüssel - der so genannte Master- und Session-Key (Sitzungsschlüssel) - generiert werden. In der Regel wird der Master-Key, von dem alle weiteren Schlüssel abgeleitet werden, pro Verbindung nur einmal erzeugt, der Session-Key hingegen periodisch mehrfach. Es besteht die Möglichkeit, auch den Master-Key periodisch neu zu erzeugen, was jedoch eine erneute Authentisierung der Kommunikationspartner erfordert. In der Regel erfolgt die erneute Authentisierung automatisch durch die Komponenten der IPSec-Implementierung, so dass die Performance im Wesentlichen dadurch beeinflusst wird.
Zur Steuerung der IPSec-basierten Kommunikation bietet Windows so genannte IPSec-Richtlinien (IPSec-Policies) an, die angeben, welche IPSec-Parameter für eine Verbindung zu benutzen sind. Unter Windows Vista werden die IPSec-Richtlinien auch Verbindungssicherheitsregeln genannt. Über verschiedene Richtlinien lässt sich erreichen,
- dass Rechner ausschließlich IPSec-geschützte Verbindungen annehmen,
- dass Rechner IPSec-geschützte Verbindungen beim Kommunikationspartner anfordern, jedoch auch ungeschützte Kommunikation zulassen, falls der Partner kein IPSec-Protokol unterstützt,
- oder dass die IPSec-basierte Kommunikation ausgeschlossen wird.
Windows bietet ab Version 2000 drei vordefinierte IPSec-Richtlinien an:
- Client (nur Antwort): für Rechner, die nur auf Anforderung des Kommunikationspartners die IPSec-Absicherung aushandeln und ansonsten keine Kommunikationsabsicherung betreiben.
- Server (Sicherheit anfordern): für Rechner, die von ihren Kommunikationspartnern IPSec-geschützte Verbindungen anfordern, jedoch auch Verbindungen ohne Schutz akzeptieren, falls der Kommunikationspartner IPSec nicht unterstützt.
- Server (Sicherheit erforderlich): für Rechner, die ausschließlich IPSec-geschützte Verbindungen aufbauen sollen und ungesicherte Verbindungswünsche ablehnen.
Diese vordefinierten Regeln können den lokalen Anforderungen detailliert angepasst werden. Dabei empfiehlt es sich, eine Kopie anzulegen und die Veränderungen an der Kopie der Richtlinie durchzuführen.
Im Rahmen einer IPSec-Richtlinie werden so genannte Filterregeln genutzt, um unterschiedliche IPSec-Parameter, z. B. in Abhängigkeit vom verwendeten Protokoll, definieren zu können. Beispielsweise kann festgelegt werden, dass HTTP unverschlüsselt bleibt, FTP dagegen immer verschlüsselt wird.
Windows Vista ermöglicht die Konfiguration der IPSec-Richtlinien über Gruppenrichtlinien unter Computerkonfiguration | Windows-Einstellungen | Windows-Firewall mit erweiterter Sicherheit | Verbindungssicherheitsregeln.
Zur Konfiguration kann das Snap-in Windows-Firewall mit erweiterter Sicherheit genutzt werden. Für Windows Vista stellt Microsoft keine vordefinierten IPSec Richtlinien zur Verfügung. Der Assistent für neue Verbindungssicherheitsregeln hilft aber bei deren Konfiguration. IPSec wird entweder über Gruppenrichtlinien oder lokal im Eigenschaftsdialog für Netzverbindungen aktiviert. Diese Aktivierung im Eigenschaftsdialog steht unter Windows Vista nicht zur Verfügung. Bei Windows Vista wird IPSec durch die Erstellung von Verbindungssicherheitsregeln aktiviert. Die Konfiguration der IPSec-Einstellungen erfolgt über die IPSec-Richtlinien mit Hilfe der Microsoft Management Console (MMC).
Generell ist für die Nutzung von IPSec unter Windows Folgendes zu berücksichtigen:
- Vor dem Einsatz von IPSec muss geprüft werden, ob die mit der Aktivierung verbundenen Performance-Einbußen toleriert werden können. Unter Umständen sollte über den Einsatz von Netzwerkkarten mit TCP/IP-Offload-Engine (TOE) nachgedacht werden, um rechenintensive Aufgaben bezüglich des TCP/IP-Protokollstacks auf der Netzwerkkarte auszuführen, um die CPU zu entlasten.
- Zum stärkeren Schutz der Session-Keys sollte die Option Perfect Forward Secrecy (PFS) aktiviert sein. Dies stellt sicher, dass nach der Kompromittierung eines Session-Keys ausschließlich die mit diesem einzelnen Session-Key verschlüsselten Daten entschlüsselt werden können. Dies wird dadurch erreicht,
- dass ein Session-Key, der zum Verschlüssen von Daten benutzt wurde, nicht benutzt wird, um weitere Schlüssel zu erzeugen, und
- dass das Schlüsselausgangsmaterial, das zum Erzeugen eines Session-Keys benutzt wurde, nicht ein weiteres Mal zum Erzeugen eines Session-Keys benutzt wird.
- Für Verbindungen mit hohem Schutzbedarf kann auch für den Master-Key die Option PFS aktiviert werden. Dies führt jedoch zu stärkeren Performance-Einbußen als PFS für Session-Keys, da hier jedes Mal eine Authentisierung der Kommunikationspartner durchgeführt werden muss.
- Für jeden konkreten Fall muss entschieden werden, welche Mechanismen und Verfahren zur Authentisierung und zur Sicherung der Integrität und Vertraulichkeit im Rahmen der IPSec-Verhandlung während des Verbindungsaufbaus zur Verfügung stehen sollen. Es muss dabei berücksichtigt werden, dass zwischen den Kommunikationspartnern jeweils mindestens ein Verfahren existieren muss, das beide Partner unterstützen.
- Werden eigene IPSec-Richtlinien erstellt, so muss unbedingt immer eine so genannte Standardantwortregel definiert werden. Diese greift dann, wenn keine andere Filterregel der Richtlinie Anwendung findet. Fehlt die Standardantwortregel, kann es vorkommen, dass keine Verbindung zwischen den Kommunikationspartnern zustande kommt.
- Die Filterregeln einer IPSec-Richtlinie erlauben es, unter anderem die IPSec-Absicherung auch an die IP-Adresse des Kommunikationspartners zu binden, so dass die Verschlüsselung in Abhängigkeit vom Kommunikationspartner aktiviert werden kann.
- Wird zur Authentisierung der Kerberos-Mechanismus verwendet, so erfolgt die Authentisierung nicht IPSec-abgesichert, da Kerberos nicht im Rahmen der IPSec-Verbindung abgewickelt wird. Nach Einspielen des Windows 2000 Service Pack 1 kann die IPSec-Absicherung auch für das Kerberos-Protokoll aktiviert werden. Dazu ist jedoch ein Eingriff in die Registry notwendig (siehe dazu auch die Microsoft Knowledgebase Artikel KB254728 und KB811832):
Unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \IPSEC (ab der Version Windows Vista unter HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\PolicyAgent) muss der Schlüssel NoDefaultExempt vom Typ REG_DWORD mit dem Wert 1 eingetragen werden. - Um das korrekte Funktionieren des IPSec-Verbindungsaufbaus und der IPSec-Kommunikation zu prüfen, stellt Windows 2000 das Programm ipsecmon.exe, Windows XP das MMC Snap-in IP-Sicherheitsmonitor und Windows Vista das Snap-in Windows-Firewall mit erweiterter Sicherheit zur Verfügung. Das Programm bzw. Snap-in kann zur Eingrenzung der Fehlerquelle benutzt werden, falls Probleme mit IPSec-Verbindungen bestehen. Das Programm ist jedoch relativ einfach aufgebaut, so dass es nur zu einer ersten Ursachenforschung verwendet werden kann.
- IPSec sollte unter anderem in Kombination mit EFS -verschlüsselten Dateien eingesetzt werden, wenn diese auf Servern lagern und abgesichert über das Netz zu einem Client transportiert werden sollen. Außer IPSec kann auch jeder andere Mechanismus zur Absicherung der Netzkommunikation genutzt werden, um serverseitig gespeicherte EFS-Dateien beim Transport zu schützen.
- Soll die Kommunikation mit einem System, auf dem nicht Windows als Betriebssystem installiert ist, mittels IPSec geschützt werden, so ist die Interoperabilität und das korrekte Funktionieren in einem praktischen Test zu überprüfen. Zwar ist das IPSec-Verfahren standardisiert, im Einzelfall ergeben sich jedoch unter Umständen auch bei standardisierten Verfahren Kompatibilitätsprobleme.
Es muss jeweils im Einzelfall entschieden werden, ob IPSec zur Kommunikationsabsicherung eingesetzt werden soll. Dies ist schon bei der Planung des Windows Einsatzes zu berücksichtigen.
Prüffragen:
- Ist eine IPSec-Richtlinie vorhanden?
- Wurden ausreichend lange Schlüssellängen verwendet?
- Ist es möglich, dass sich die Kommunikationspartner gegenseitig authentisieren?
- Wurde der Einsatz von IPSec bedarfsgerecht geplant?
- Sind alle Kommunikationspartner identifiziert, für die die Kommunikation mittels IPSec abgesichert werden soll? Wurde überprüft, ob die IPSec-Kommunikation auch mit Systemen funktioniert, auf denen kein Windows installiert ist?
- Ist die Performance der beteiligten IT-Systeme für eine IPSec-Kommunikation ausreichend?
- Wurde die Option Perfect Forward Secrecy (PFS) aktiviert?
- Wurde überprüft, ob der IPSec-Verbindungsaufbau korrekt durchgeführt wird?
- Werden nur hinreichende starke kryptographische Algorithmen für IPSec eingesetzt?
- Wurde eine Standardantwortregel definiert?