M 5.90 Einsatz von IPSec unter Windows 2000/XP
Verantwortlich für Initiierung: Leiter IT, IT-Sicherheitsmanagement
Verantwortlich für Umsetzung: Administrator
Zur Absicherung der Kommunikation bietet Windows 2000/XP 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-Datenpaketes durch Verschlüsselung (Tunnel-Modus)
Jede IPSec-konforme Komponente muss mindestens folgende Sicherungsverfahren implementieren:
- Zur Wahrung der Integrität müssen mindestens die Hashverfahren MD5 und SHA-1 implementiert sein.
- Zur Wahrung der Vertraulichkeit müssen mindestens die Verschlüsselungsverfahren DES und Tripel-DES implementiert sein.
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 2000/XP Implementierung erlaubt folgende Verfahren zur Authentisierung der Kommunikationsendpunkte:
- Es kann das Kerberos-Protokoll eingesetzt werden. Hierbei findet die normale Windows 2000 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 dann 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 dabei 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 dadurch im Wesentlichen die Performance beeinflusst wird.
Zur Steuerung der IPSec-basierten Kommunikation bietet Windows 2000/XP so genannte IPSec-Richtlinien (IPSec-Policies) an, die angeben, welche IPSec-Parameter für eine Verbindung zu benutzen sind. Ü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 2000/XP bietet 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 im Detail den lokalen Anforderungen angepasst werden. Dabei empfiehlt es sich, eine Kopie anzulegen und die Veränderungen auf 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 ist, FTP dagegen immer verschlüsselt wird.
IPSec wird entweder über Gruppenrichtlinien oder lokal im Eigenschaftsdialog für Netzverbindungen 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 2000/XP 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 IPSec-konformen Netzwerkkarten nachgedacht werden, die die Verschlüsselung mit Hardware-Unterstützung durchführen und damit eine bessere Performance erreichen können.
-
Zum stärkeren Schutz der Session-Keys sollte die Option Perfect Forward Secrecy (PFS) aktiviert sein. Dies stellt sicher, dass bei 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.
- Im konkreten Fall muss jeweils 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, die greift, wenn keine andere Filterregel der Richtlinie Anwendung findet. Fehlt diese, so kann es vorkommen, dass keine Verbindung zwischen den Kommunikationspartnern zustande kommt.
- Die Filterregeln einer IPSec-Richtlinie erlauben es, die IPSec-Absicherung z. B. 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 Microsoft Knowledgebase Artikel Q254728):
Unter HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / IPSEC muss der Schlüssel NoDefaultExempt vom Typ REG_DWORD und 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 und Windows XP das MMC Snap-In IP-Sicherheitsmonitor zur Verfügung. Dieses 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 jedoch 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 2000/XP 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 2000/XP Einsatzes zu berücksichtigen.
Ergänzende Kontrollfragen:
- 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 der IPSec-Verbindungsaufbau korrekt durchgeführt wird?