Sicherheit auf dem PrüfstandPKI-Verbesserungen in Windows

John Morello

Dieser Artikel basiert auf einer Vorabversion von Windows Server 2008. Die in diesem Artikel enthaltenen Informationen können jederzeit geändert werden.

Seit der Veröffentlichung von Windows 2000 umfasst Windows leistungsfähige, plattformübergreifende Unterstützung für die Public Key-Infrastruktur (PKI). Diese Veröffentlichung enthielt die erste systemeigene Zertifizierungsstellenfunktion. Außerdem wurde die automatische Registrierung eingeführt und Unterstützung für die Smartcard-Authentifizierung bereitgestellt. In Windows XP und Windows Server 2003 wurden diese

Funktionen erweitert, um flexiblere Registrierungsoptionen mit Zertifikatsvorlagen der Version 2 und Unterstützung für die automatische Registrierung von Benutzerzertifikaten bereitzustellen. In Windows Vista® und Windows Server® 2008 (früher mit dem Codenamen „Longhorn“ bezeichnet) geht die Windows®-PKI-Plattform mit Unterstützung für erweiterte Algorithmen, Gültigkeitsüberprüfung in Echtzeit und besserer Verwaltbarkeit noch einen Schritt weiter. Dieser Artikel stellt die neuen PKI-Features in Windows Vista und Windows Server 2008 vor und erläutert, wie sie von Unternehmen zur Kostensenkung und Verbesserung der Sicherheit eingesetzt werden können.

Die PKI-Verbesserungen in Windows Vista und Windows Server 2008 betreffen vier Hauptbereiche: Kryptografie, Registrierung, Verwaltbarkeit und Sperrung. Neben diesen featurespezifischen Verbesserungen gibt es bei der Windows-PKI-Plattform weitere Fortschritte beim Betriebssystem wie beispielsweise den Roles Manager, der ein leichteres Erstellen und Bereitstellen neuer Zertifizierungsstellen (certificate authority, CA) ermöglicht. Zudem können die Verbesserungen in der PKI-Plattform in vielen anderen Bereichen von Windows genutzt werden, beispielsweise die Unterstützung in Windows Vista für die Verwendung von Smartcards zum Speichern von Schlüsseln für das verschlüsselnde Dateisystem (Encrypting File System, EFS).

Kryptografie

Die Verbesserungen im Bereich Kryptografie sind zweifacher Art. Zum einen bietet Windows mit der Einführung von Cryptography Next Generation (CNG) nun eine dynamisch austauschbare, protokollagnostische Verschlüsselungsfunktion, mit der die Entwicklung einzelner Algorithmen und der programmgesteuerte Zugriff auf sie erleichtert werden. Zum anderen verfügt CNG über neue Unterstützung für die Suite-B-Algorithmen, die 2005 von der National Security Agency (NSA) eingeführt wurden.

CNG ist eine neue zentrale Kryptografieschnittstelle für Microsoft und die empfohlene API für zukünftige Windows-basierte Anwendungen, die die Kryptografie unterstützen. CNG stellt eine Vielzahl neuer Funktionen für Entwickler bereit, darunter einfachere Erkennbarkeit und Ersetzung von Algorithmen, ersetzbare Zufallszahlengeneratoren und eine kryptografische Kernelmodus-API. Trotz all dieser neuen Funktionen ist CNG völlig abwärtskompatibel mit dem im Vorgängerprodukt CryptoAPI 1.0 bereitgestellten Satz von Algorithmen. Derzeit wird CNG für die 140-2-Level 2-Zertifizierung nach FIPS (Federal Information Processing Standards) sowie für allgemeine Kriterien auf ausgewählten Plattformen bewertet.

Die CNG-Suite-B-Unterstützung umfasst alle erforderlichen Algorithmen: AES (alle Schlüsselgrößen), die SHA-2-Familie (SHA-256, SHA-384 und SHA-512) der Hashalgorithmen, Elliptische Kurve Diffie-Hellman (ECDH) und Elliptische Kurve Digital Signature Algorithm (ECDSA) über die standardmäßigen wichtigen P-256-, P-384- und P-521-Kurven des National Institute of Standards and Technology (NIST). Die NSA hat erklärt, dass zertifizierte Suite-B-Implementierungen zum Schutz von als streng geheim und geheim klassifizierten Informationen und von privaten Daten verwendet werden, die in der Vergangenheit als weitgehend vertraulich, aber nicht geheim eingestuft wurden. Alle Suite-B-Algorithmen wurden offen entwickelt, und einige andere Regierungen sind ebenfalls daran interessiert, sie als nationale Standards zu übernehmen.

Diese Verbesserungen an der niedrigsten Stufe der Windows-PKI-Plattform bieten Entwicklern sicherere Methoden zum Schutz von Daten und gleichzeitig ein Subsystem, das sich im Lauf der Zeit leichter verwalten und verbessern lässt. Da CNG eine dynamisch austauschbare Architektur ist, können bei Bedarf neue Algorithmen hinzugefügt werden, und CNG abstrahiert diese Anbieter aus der Anwendungsschicht. Das Ergebnis: Windows Vista und Windows Server 2008 bieten eine erweiterte, optimierbare Plattform zum Entwickeln PKI-aktivierter Anwendungen und Dienste.

Registrierung

Die Zertifikatsregistrierung in Windows wurde mit einem neuen Assistenten für die Registrierung, besserer Behandlung von Zertifikatsablaufdaten, einer neuen API, einer „Registrieren im Auftrag von“-Funktion und der Serverspeicherung von Anmeldeinformationen stark verbessert. Diese erweiterten Funktionen verringern die Gesamtbetriebskosten einer PKI, indem sich Zertifikate unternehmensweit zentral verwalten und mit minimaler Beeinträchtigung für die Benutzer bereitstellen lassen.

Die bemerkenswerteste Änderung aus Registrierungssicht ist die neue Benutzeroberfläche für die Zertifikatsregistrierung, die in Abbildung 1 und 2 dargestellt ist. Diese Benutzeroberfläche ersetzt die vorherige, eingeschränkte Oberfläche, bei der Daten von Benutzern während des Registrierungsprozesses nicht akzeptiert werden konnten. Die neue Oberfläche ermöglicht Benutzern das Erfassen von Daten während der Registrierung (wenn der Administrator die Zertifikatsvorlage entsprechend konfiguriert). Die Benutzeroberfläche bietet zudem klare Erklärungen dafür, warum ein Benutzer möglicherweise nicht in der Lage ist, sich für eine bestimmte Vorlage registrieren zu lassen.

Abbildung 1 Auswählen verfügbarer Zertifikate

Abbildung 1** Auswählen verfügbarer Zertifikate **(Klicken Sie zum Vergrößern auf das Bild)

Abbildung 2 Status nicht verfügbarer Zertifikate

Abbildung 2** Status nicht verfügbarer Zertifikate **(Klicken Sie zum Vergrößern auf das Bild)

Eine weitere wichtige Verbesserung der Registrierungsoberfläche ist die Behandlung ablaufender Zertifikate. Die neue Benutzeroberfläche bietet den Endbenutzern klare Informationen dazu, welche Zertifikate wann ablaufen, und ermöglicht es den Benutzern, Zertifikate leicht zu erneuern oder die Warnungen derselben Oberfläche zurückzuweisen. Obwohl Administratoren Zertifikate durch die automatische Registrierung automatisch aktualisieren können, ist diese Warnungsfunktion wichtig für mobile oder nicht verbundene Benutzer, die sich selten beim Unternehmensnetzwerk anmelden und deren Zertifikate fast abgelaufen sind.

Für Entwickler, die mit der Zertifikatsregistrierung arbeiten, gibt es eine neue API, die gegenüber den alten ActiveX®-basierten Steuerelementen (xenroll.dll und scrdernl.dll) beträchtliche Verbesserungen bietet. Diese neue Zertifikatsregistrierungs-API stellt eine klar definierte Klassenhierarchie bereit, die viel leichter verständlich ist und für die sich Code viel leichter schreiben lässt. Die neue API ersetzt xenroll in Windows Vista und Windows Server 2008.

Diese Änderung bei der API wirkt sich sowohl auf Entwickler als auch IT-Experten aus, da Windows Vista-Clients die webbasierten Registrierungsfunktionen in Windows Server 2003 nicht verwenden können. Dies ist darauf zurückzuführen, dass die Registrierungsseiten (standardmäßig im virtuellen Verzeichnis „/certsrv“ gespeichert) das xenroll-Steuerelement verwenden, das in Windows Vista nicht mehr vorhanden ist. Der Knowledge Base-Artikel „Verwenden von webbasierten Registrierungsseiten der Zertifikatsdienste mit Windows Vista“ (support.microsoft.com/kb/922706) bietet Informationen zu einer Problemumgehung. Die automatische Registrierung von Windows Server 2003 bei Windows Vista ist davon nicht betroffen.

In vorherigen Veröffentlichungen von Windows Server gab es für Registrierungsagents keine Einschränkungen, wen sie in wessen Namen registrieren konnten. Das heißt, wenn einem Benutzer die Funktionen eines Registrierungsagents zugewiesen wurden, konnte er Registrierungen im Namen beliebiger Benutzer in der Gesamtstruktur durchführen. Folglich konnte dieser Benutzer seine Rechte einfach erweitern, indem er Registrierungen im Namen eines vorhandenen Benutzers durchführte und mithilfe des neu erstellten Zertifikats die Identität des Benutzers annehmen konnte. Um dieser Bedrohung entgegenzuwirken, wurden die Funktionen eines Registrierungsagents nur sehr vertrauenswürdigen Personen gewährt. Dieser Ansatz verbesserte zwar die Sicherheit, aber gleichzeitig wurden die Bereitstellungsmodelle dadurch weniger flexibel, da nur eine kleine Anzahl von Personen über die Möglichkeit verfügte, Registrierungen im Namen anderer Benutzer durchzuführen. Demzufolge wuchs die Komplexität für große, geografisch verstreute Organisationen beim Bereitstellen von Zertifikaten für Endbenutzer (beispielsweise Smartcards).

In Windows Server 2008 können Registrierungsagents sehr viel präziser eingeschränkt werden. Einschränkungen können darauf basieren, welche Registrierungen im Namen von Benutzern durchgeführt werden können oder mit welchen Vorlagen registriert werden kann, wie in Abbildung 3 dargestellt. Eine Organisation kann beispielsweise einem lokalen IT-Mitarbeiter die Möglichkeit geben, Registrierungen im Namen aller Benutzer in seiner Zweigstelle durchzuführen, aber nicht für Benutzer in der Personalabteilung. Dieser präzisere Ansatz für Registrierungsagents ermöglicht es Unternehmen, die Registrierungsfunktionen innerhalb der Organisation wirksamer und sicherer zu delegieren.

Abbildung 3 Einschränkungen für Registrierungsagents

Abbildung 3** Einschränkungen für Registrierungsagents **(Klicken Sie zum Vergrößern auf das Bild)

Eine der größten Herausforderungen beim Verwalten einer PKI ist die Verwaltung aller Schlüsselpaare, die über die Geräte einer Organisation verstreut sind. Selbst in einer mäßig komplexen PKI-Umgebung kann ein Benutzer über mehrere verschiedene Schlüsselpaare verfügen (beispielsweise für EFS, Authentifizierung in einem drahtlosen Netzwerk und S/MIME), die unabhängig vom Ort der Benutzeranmeldung verfügbar sein müssen. Aufgrund der zunehmenden Verbreitung von mobilen Computern und Terminaldiensten ist es wichtiger als je zuvor, diese Schlüsselpaare im Netzwerk zu replizieren, damit sie für Benutzer unabhängig vom Ort der Benutzeranmeldung verfügbar sind. Tokens (z. B. Smartcards), die der Benutzer bei sich trägt, lösen zwar bestimmte Aspekte dieses Problems, doch gibt es in Organisationen möglicherweise andere Benutzer, die keine Karten erhalten oder über Zertifikate verfügen, die nicht auf den Karten gespeichert sind. Die Serverspeicherung von Anmeldeinformationen (Credential Roaming) löst diese Probleme durch das sichere Speichern der Schlüsselpaare und Zertifikate innerhalb von Active Directory®, sodass sie den Benutzern unabhängig vom Anmeldeort zur Verfügung stehen.

Die Serverspeicherung von Anmeldeinformationen wurde erstmals in Windows Server 2003 SP1 bereitgestellt und ermöglicht das sichere Roaming von Zertifikaten und Schlüsseln in Computern ohne die Verwendung von Roamingbenutzerprofilen. In Windows Vista und Windows Server 2008 ist diese Funktion standardmäßig enthalten und wird im CSC-Dienst (Certificate Services Client) implementiert. Konfigurationsoptionen (beispielsweise welche Zertifikate das Roaming durchführen können und wie Konflikte beigelegt werden) werden über die Gruppenrichtlinie verwaltet. In Windows Vista und Windows Server 2008 kann der CSC-Dienst auch das Roaming von gespeicherten Benutzernamen und Kennwörtern durchführen. Diese Funktion ist standardmäßig in Windows Vista enthalten, doch die Serverspeicherung von Anmeldeinformationen wird auch in Windows XP und beim Anmelden bei einem Windows Server 2003-Domänencontroller (bei Bereitstellung eines Updates – siehe support.microsoft.com/kb/907247) vollständig unterstützt. Sie müssen daher nicht bis zum Abschluss einer Windows Vista-Bereitstellung warten, bevor Sie diese Technologie nutzen können.

Verwaltbarkeit

In Windows Server 2008 wurde eine Reihe von Aktualisierungen zum Verbessern der Verwaltbarkeit des CA-Diensts (Certificate Authority) durchgeführt, sodass dieser nun leichter eingerichtet, überwacht und unter hoher Verfügbarkeit ausgeführt werden kann. Das Zertifizierungsstellensetup ist in das Role Manager-Tool integriert. Es stellt eine rationalisierte Methode zum Installieren des Zertifizierungsstellendiensts bereit. Für jeden Schritt im Prozess werden Standardwerte definiert, und das Setup kann nun unbeaufsichtigt durchgeführt werden. Weiterhin gibt es beim Setup bessere Diagnosefunktionen, sodass sich mögliche Fehler oder Problembedingungen leichter beheben lassen.

Das Überwachen des Zertifizierungsstellendiensts wurde in Windows Server 2008 stark verbessert, was auch auf die Zertifikatsdiagnose insgesamt in Windows Vista zutrifft. Neben der viel flexibleren Ereignisinfrastruktur, die das ganze Produkt umfasst, verfügt der Zertifizierungsstellendienst selbst nun über eine integrierte Überwachungskonsole und bindet sich in System Center Operations Manager 2007 (früher als MOM bezeichnet) ein, um Warnungen auf Unternehmensebene bereitzustellen. Die Unternehmens-PKI-Überwachungskonsole ist eine Verbesserung gegenüber dem in Windows Server 2003 AdminPak eingeführten Vorgänger. Die neue Konsole ist im Produkt selbst enthalten und kann jetzt OCSP (Online Certificate Status-Protokoll)-URIs zusätzlich zu allen Zertifizierungsstellen in einer bestimmten Gesamtstruktur überwachen.

Das Operations Manager-Management Pack stellt eine passive Überwachungsfunktion für die PKI einer Organisation einschließlich integrierter, auf Schwellenwerten basierender Warnungen bereit. Mithilfe des Management Pack kann beispielsweise überwacht werden, wie aktuell eine Zertifikatssperrliste (Certificate Revocation List, CRL) ist. PKI-Administratoren erhalten eine Warnung, wenn eine CRL eine bestimmte Anzahl von Tagen oder Stunden vor ihrem Ablauf erreicht. Schließlich steht eine Vielzahl neuer Leistungsindikatoren zur Verfügung, die die Problembehandlung und das Überwachen der Gesamtleistung des Zertifizierungsstellendiensts unterstützen. Diese Zähler können zum Aufzeichnen von Daten verwendet werden (z. B. wie viele Zertifikate pro Sekunde ausgestellt werden).

Eine neue Funktion ist erstmals in Windows Server 2008 enthalten: Unterstützung für die Clusterbildung des Zertifizierungsstellendiensts auf Hardwareebene. Diese Clusterunterstützung nutzt standardmäßige MSCS-Technologie (Microsoft Cluster Service) und unterstützt Zwei-Knoten-aktiv/passiv-Konfigurationen. Clusterunterstützung ermöglicht das Ausführen einer hochverfügbaren Ausgabeinfrastruktur und kann in geografisch vielfältigen Clusterbereitstellungen verwendet werden. Wenn Sie sich für den Clusterunterstützung entscheiden, gilt es zu beachten, dass die einfache Clusterbildung einer Zertifizierungsstelle nicht zur Verfügbarkeit für die ganze PKI führt. Obwohl die Clusterbildung dazu beitragen kann, dass die Zertifizierungsstellen selbst verfügbar sind, gibt es bei einer richtig funktionierenden PKI wahrscheinlich andere Komponenten, die nicht direkt auf den Zertifizierungsstellen ausgeführt werden. So müssen beispielsweise die CRL-Verteilungspunkte (CRL Distribution Points, CDPs) und OCSP-Responder mit hoher Verfügbarkeit ausgeführt werden, um sicherzustellen, dass die Sperrung durchgeführt werden kann. Wenn zudem Hardwaresicherheitsmodule (Hardware Security Modules, HSMs), insbesondere netzwerkbasierte HSMs verwendet werden, stellen diese ebenfalls eine potenzielle Fehlerquelle in einer PKI dar. Die Clusterbildung ist eine leistungsstarke, neue Funktion zum Bereitstellen hoher Verfügbarkeit für die Zertifizierungsstelle, aber sie ist kein Allheilmittel für die Verfügbarkeit einer ganzen PKI-Bereitstellung.

Sperrung

CRLs werden seit langem zur Überprüfung der Gültigkeit von Zertifikaten verwendet. Diese CRLs umfassen die Seriennummern aller Zertifikate, deren Gültigkeitszeitraum noch nicht abgelaufen ist, die aber nicht mehr vertrauenswürdig sind. Wenn beispielsweise ein Mitarbeiter über ein Zertifikat mit dem Ablaufdatum 31.12.2008 verfügt, aber die Organisation am 1.9.2007 verlässt, werden die Seriennummern der Zertifikate dieses Mitarbeiters auf die CRL gesetzt. Dann wird die CRL an mehreren Sperrlisten-Verteilungspunkten (Certificate Distribution Points, CDPs) wie HTTP- und LDAP (Lightweight Directory Access-Protokoll)-Pfaden zur Verfügung gestellt.

CRLs sind noch immer weit verbreitet, haben jedoch einige wesentliche Nachteile. Zum einen werden CRLs von Zertifizierungsstellen regelmäßig (normalerweise ein- oder zweimal pro Tag) veröffentlicht. Clients laden diese CRLs dann herunter und speichern sie bis zum nächsten Veröffentlichungsintervall im Cache. Während dieser Zwischenspeicherung können Zertifikate gesperrt werden, sodass der aktuell Status für den Client nicht offensichtlich ist. Zweitens können CRLs in großen Organisationen sehr umfangreich werden (bisweilen über 100 MB). Das Verteilen dieser Dateien über ein großes, stark verstreutes Netzwerk wird dann schwierig oder gar unmöglich, besonders in Zweigstellenszenarios oder anderen Umgebungen mit begrenzter Bandbreite.

Zum Beheben dieser Probleme wurde OCSP erstellt und in RFC 2560 definiert. OCSP bietet eine Echtzeitmethode zum Überprüfen des Status von Zertifikaten. Ein OCSP-Client wird auf dem Computer ausgeführt, der die Gültigkeit eines untergeordneten Zertifikats prüfen muss. Die Clientsoftware nimmt dann Bezug auf einen OCSP-Responder und sendet eine Nachricht, in der der Gültigkeitsstatus des untergeordneten Zertifikats abgefragt wird. Der Responder prüft die Gültigkeit des Zertifikats und antwortet dem Client in Echtzeit. Bei dieser Methode werden Zwischenspeicherungs- und Verteilungsprobleme vermieden.

Die OCSP-Clientfunktion ist nun zum ersten Mal in Windows Vista enthalten (vorher war Drittanbietersoftware erforderlich) und über die Gruppenrichtlinie konfigurierbar. In der Standardeinstellung versucht Windows, OCSP zu verwenden, greift aber auf standardmäßige CRL-Lookups zurück, wenn der Responder nicht verfügbar ist.

In Windows Server 2008 wird ein OCSP-Responder zum Beantworten dieser Anforderungen bereitgestellt. Der Responder wird durch den Role Manager installiert und kann vom Operations Manager 2007 Management Pack überwacht werden. Da sowohl der Client als auch der Responder dem OCSP-Standard entsprechen, lassen sie sich leicht in vorhandene OCSP-Umgebungen integrieren, in denen ähnliche standardbasierte Komponenten von Drittanbietern verwendet werden. Es gibt beispielsweise vollständige Unterstützung für einen Windows Vista-Client, der den Zertifizierungsstatus mit einem Drittanbieterresponder überprüft, und für einen Windows Server 2008-Responder beim Beantworten von Abfragen einer Drittanbieterclientanwendung. Zusätzlich kann der Windows OCSP-Responder Anforderungen von Zertifikaten beantworten, die von einer standardkonformen Zertifizierungsstelle ausgestellt werden. Windows Server 2008-Zertifizierungsstellen (und Windows-basierte Zertifizierungsstellen im Allgemeinen) sind nicht erforderlich.

Schlussbemerkung

Die PKI-Plattform in Windows Vista und Windows Server 2008 enthält viele Verbesserungen und mehrere neue Features, durch die das Bereitstellen und der Betrieb einer PKI sicherer und kostengünstiger wird. Die neue CNG-API stellt Entwicklern eine einfachere Programmierumgebung bereit und unterstützt neue kryptografische Standards. Registrierungsverbesserungen erleichtern Organisationen die Massenbereitstellung von Zertifikaten und das sichere Roaming von Schlüsseln innerhalb des Unternehmens. Entsprechend erleichtern das neue Management Pack und die Zertifizierungsstellen-Clusterfunktion die Überwachung von Zertifizierungsstellen und gewährleisten hohe Verfügbarkeit. Schließlich wurde die Sperrungsüberprüfung so verbessert, dass beim Bereitstellen von Echtzeitprüfungen für Zertifikate eine standardbasierte Methode verwendet wird, und zwar ohne die Bandbreitenkosten einer CRL-Verteilung. In Windows Vista und Windows Server 2008 wird die Windows-PKI-Plattform daher auf eine ganz neue Ebene verlagert.

Ressourcen zur PKI-Verbesserung

John Morello ist seit 2000 für Microsoft tätig. Als leitender Berater hat er Sicherheitslösungen für Fortune 100-Unternehmen sowie für US-amerikanische Kunden aus dem zivilen Bereich und dem Verteidigungswesen entworfen. Derzeit arbeitet er als leitender Programmmanager im Bereich Windows Server an Sicherheits- und ortsunabhängigen Zugriffstechnologien. Sie können den Blog seines Teams unter blogs.technet.com/WinCAT lesen.

© 2008 Microsoft Corporation und CMP Media, LLC. Alle Rechte vorbehalten. Die nicht genehmigte teilweise oder vollständige Vervielfältigung ist nicht zulässig.