Die erweiterte Schlüsselverwendung (Extended Key Usage, EKU) für importierte Stammzertifizierungstellen-Zertifikate einschränken

Eine sinnvolle Härtungsmaßnahme für Zertifizierungsstellen ist das Einschränken der Zertifizierungsstellen-Zertifikate, sodass diesen nur für die tatsächlich ausgestellten erweiterten Schlüsselverwendungen (Extended Key Usage) vertraut wird.

Im Fall einer Kompromittierung der Zertifizierungsstelle ist der Schaden dann auf diese Extended Key Usages beschränkt. Das Smart Card Logon Extended Key Usage wäre dann nur in dem Zertifizierungsstellen-Zertifikat derjenigen Zertifizierungsstelle, die auch tatsächlich solche Zertifikate ausstellt, vorhanden.

End-Entitätszertifikate weisen eine Erweiterung "Enhanced Key Usage" auf, in welcher definiert wird, für welche Zwecke das Zertifikat eingesetzt werden darf (z.B. Transport Layer Security (TLS)).

Microsoft verwendet den Terminus "Enhanced Key Usage", die korrekte Bezeichnung gemäß RFC 5280 ist allerdings "Extended Key Usage".

Das Extended Key Usage legt fest, für welche Zwecke das Zertifikat verwendet werden darf. Im Zertifikat-Dialog von Microsoft-Windows wird dies im Beispiel durch "Ensures the Identity of a Remote Computer" angezeigt.

Der Details Tab im Windows-Zertifikatdialog zeigt das Ergebnis der Policy-Überprüfung des Zertifikats an, nicht den tatsächlichen Inhalt des Zertifikats. Dieser kann im Details-Tab eingesehen werden und kann durchaus abweichen.

In der Standard-Konfiguration ist ein CA-Zertifikat in Hinsicht auf die Zertifikattypen nicht eingeschränkt. Dem Zertifikat fehlt eine Extended Key Usages Erweiterung, somit ist das Zertifikat für alle Zwecke nutzbar. Im Zertifikat-Dialog von Microsoft-Windows wird dies durch "All Application Policies" angezeigt.

Eine Zertifizierungsstelle kann durch Hinzufügen einer Extended Key Usages Erweiterung in ihrer Verwendbarkeit eingeschränkt werden. Sie kann dann nur noch Zertifikate für die definierten EKUs ausstellen.

Diese Vorgehensweise ist unter dem Begriff Qualifizierte Subordinierung oder Constraints bekannt. Bevor eine Zertifizierungsstelle in Betrieb genommen wird ist üblicherweise bereits definiert, welche Zertifikattypen sie ausstellen wird. Somit können aus diesen die entsprechenden Extended Key Usages herausgearbeitet werden.

Nachfolgend wird beschrieben, wie man importierte Stammstellenzertifikate hinsichtlich der für sie verwendbaren Extended Key Usages einschränken kann.

Für Zertifizierungsstellenzertifikate von eigenen Zertifizierungsstellen siehe Artikel "Grundlagen: Einschränken der erweiterten Schlüsselverwendung (Extended Key Usage, EKU) in Zertifizierungsstellen-Zertifikaten".

Die folgenden Extended Key Usages sind typische Kandidaten für eine entsprechende Einschränkung:

OIDBeschreibung
1.3.6.1.4.1.311.20.2.1Certificate Request Agent
1.3.6.1.5.5.7.3.2Client Authentication
1.3.6.1.5.5.7.3.3Code Signing
1.3.6.1.4.1.311.10.3.13Lifetime Signing
1.3.6.1.4.1.311.10.3.12Document Signing
1.3.6.1.4.1.311.80.1Document Encryption
1.3.6.1.4.1.311.10.3.4Encrypting file system
1.3.6.1.4.1.311.10.3.4.1File Recovery
1.3.6.1.5.5.7.3.5IP Security End System
1.3.6.1.5.5.8.2.2IP Security IKE Intermediate
1.3.6.1.5.5.7.3.6IP Security Tunnel Endpoint
1.3.6.1.5.5.7.3.7IP Security User
1.3.6.1.4.1.311.10.3.11Key Recovery
1.3.6.1.5.2.3.5KDC Authentication
1.3.6.1.4.1.311.10.3.1Microsoft Trust List Signing
1.3.6.1.4.1.311.10.3.10Qualified Subordination
1.3.6.1.4.1.311.10.3.9Root List Signer
1.3.6.1.5.5.7.3.4Secure E-mail
1.3.6.1.5.5.7.3.1Server Authentication
1.3.6.1.4.1.311.20.2.2Smartcard Logon
1.3.6.1.5.5.7.3.8Time Stamping gemäß RFC 3161
1.3.6.1.5.5.7.3.9OCSP Signing
1.3.6.1.4.1.311.54.1.2Remote Desktop Authentication
1.3.6.1.4.1.311.21.5Private Key Archival
2.16.840.1.113741.1.2.3Intel Advanced Management Technology (AMT) Provisioning

Um die Einschränkung umzusetzen, gibt es verschiedene Methoden:

  • EKU einschränken über die Microsoft Management Console (MMC)
  • EKU einschränken über Gruppenrichtlinien
  • EKU einschränken über die Kommandozeile (oder Script)

EKU einschränken über die Microsoft Management Console (MMC)

Die Einschränkung der Extended Key Usages kann über die Microsoft Management Console (MMC) für Zertifikate auf jedem Windows-Computer vorgenommen werden.

Folgende Managementkonsolen stehen zur Verfügung.

  • Benutzer-Zertifikatspeicher: certmgr.msc
  • Computer-Zertifikatspeicher: cerlm.msc (Administrator-Berechtigungen erforderlich)

Im Zertifikatspeicher für vertrauenswürdige Stammzertifizierungsstellen kann man die Eigenschaften jedes Zertifikats mit Rechtsklick und Auswahl von "EIgenschaften" (Properties) aufrufen.

In der Karteikarte "Allgemein" (General) kann man die Extended Key Usages anschließend konfigurieren.

Im Eigenschaften-Dialog wird die Einschränkung anschließend abgebildet.

Sieht man sich die Details des Zertifikats an, stellt man fest, dass die Extended Key Usages (logischerweise, da das eigentliche Zertifikat ja nicht verändert werden kann, ohne dessen Signatur zu beschädigen) nicht als Erweiterung (Extension) abgebildet sind, sondern über eine Eigenschaft (Property).

EKU einschränken über Gruppenrichtlinien

Die Extended Key Usages über die Microsoft Management Console auf jedem Computer einzeln einzuschränken hat den Nachteil, dass diese Methode sich nicht für die Automatisierung oder Anwendung auf eine große Anzahl von Maschinen anwenden lässt.

Hierfür bietet sich die Verwendung einer Gruppenrichtlinie an, die dann zentral auf alle Maschinen angewendet werden kann.

Damit eine Einschränkung der EKU über Gruppenrichtlinien möglis ist, muss das Zertifikat jedoch auch über diese verteilt werden.

Es muss unbedingt geprüft werden, ob das Zertifikat noch auf anderem Wege auf die Maschinen verteilt wird – beispielsweise über das Public Key Services Objekt im Active Directory, da andernfalls die Einschränkungen eventuell nicht effektiv werden, wenn eine uneingeschränkte Version des Zertifikats auf anderem Wege verteilt wird.

Die Einstellung finden sich in der Konfiguration der Gruppenrichtlinie unter "Computer Configuration" – "Policies" – "Windows Settings" – "Security Settings" – "Public Key Policies" – "Trusted Root Certification Authorities".

Zunächst muss das betreffende Zertifikat importiert werden.

Anschließend kann auf das importierte Zertifikat mit rechts geklickt und die Option "Eigenschaften" "Properties" gewählt werden. Die Konfiguration erfolgt dann analog zur Methode mit der lokalen MMC.

EKU einschränken über die Kommandozeile (oder Script)

Stehen keine Gruppenrichtlinien zur Verfügung, oder möchte man diese aus anderen Gründen nicht verwenden, steht noch die Option zur Verfügung, die Konfigruration per Kommandozeile bzw. Script vorzunehmen.

Zunächst muss das Zertifikat mit folgendem Befehl in den lokalen Speicher für vertrauenswürdige Stammzertifizierungsstellen importiert werden.

certutil -addstore "Root" "{Dateiname-Zertifikat}.crt"

Die Einschränkung der Extended Key Usages wird über einen separaten Befehl vorgenommen, welcher eine Konfigurationsdatei anwendet. Im Beispiel wird eine Datei "purposes.inf" angelegt.

[Properties]
9 = {text} ; Add Extended Key Usage property
_continue_ = 1.3.6.1.5.5.7.3.1 ; Server Authentication

Weitere Extended Key Usages können durch weitere "_continue_" Zeilen eingetragen werden. Die Liste der gängigsten Extended Key Usages befinden sich am Anfang dieses Beitrags.

Anschließend wird die Datei auf das importierte Stammzertifizierungsstellen angewendet. Hierzu muss es anhand seines SHA1-FIngerabdrucks (Thumbprint) identifiziert werden. Die notwendige Information findet man beispielsweise im Eigenschaften-Dialog des Zertifikats.

Anschließend kann die Datei mit folgendem Kommandozeilenbefehl angewendet werden:

certutil -repairstore root {Thumbprint} "purposes.inf"

Weiterführende Links:

de_DEDeutsch