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 "Extended 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.
Kennen Sie TameMyCerts? TameMyCerts ist ein Add-On für die Microsoft Zertifizierungsstelle (Active Directory Certificate Services). Es erweitert die Funktion der Zertifizierungsstelle und ermöglicht die Anwendung von Regelwerken, um die sichere Automatisierung von Zertifikat-Ausstellungen zu realisieren. TameMyCerts ist einzigartig im Microsoft-Ökosystem, hat sich bereits in unzähligen Unternehmen auf der ganzen Welt bewährt und steht unter einer freien Lizenz. Es kann über GitHub heruntergeladen und kostenlos verwendet werden. Professionelle Wartung wird ebenfalls angeboten.
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:
OID | Beschreibung |
---|---|
1.3.6.1.4.1.311.20.2.1 | Certificate Request Agent |
1.3.6.1.5.5.7.3.2 | Client Authentication |
1.3.6.1.5.5.7.3.3 | Code Signing |
1.3.6.1.4.1.311.10.3.13 | Lifetime Signing |
1.3.6.1.4.1.311.10.3.12 | Document Signing |
1.3.6.1.4.1.311.80.1 | Document Encryption |
1.3.6.1.4.1.311.10.3.4 | Encrypting file system |
1.3.6.1.4.1.311.10.3.4.1 | File Recovery |
1.3.6.1.5.5.7.3.5 | IP Security End System |
1.3.6.1.5.5.8.2.2 | IP Security IKE Intermediate |
1.3.6.1.5.5.7.3.6 | IP Security Tunnel Endpoint |
1.3.6.1.5.5.7.3.7 | IP Security User |
1.3.6.1.4.1.311.21.6 | Key Recovery Agent |
1.3.6.1.4.1.311.10.3.11 | Key Recovery |
1.3.6.1.5.2.3.5 | KDC Authentication |
1.3.6.1.4.1.311.10.3.1 | Microsoft Trust List Signing |
1.3.6.1.4.1.311.10.3.10 | Qualified Subordination |
1.3.6.1.4.1.311.10.3.9 | Root List Signer |
1.3.6.1.5.5.7.3.4 | Secure E-mail |
1.3.6.1.5.5.7.3.1 | Server Authentication |
1.3.6.1.4.1.311.20.2.2 | Smartcard Logon |
1.3.6.1.5.5.7.3.8 | Time Stamping gemäß RFC 3161 |
1.3.6.1.5.5.7.3.9 | OCSP Signing |
1.3.6.1.4.1.311.54.1.2 | Remote Desktop Authentication |
1.3.6.1.4.1.311.21.5 | Private Key Archival |
2.16.840.1.113741.1.2.3 | Intel 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"
3 Gedanken zu „Die erweiterte Schlüsselverwendung (Extended Key Usage, EKU) für importierte Stammzertifizierungstellen-Zertifikate einschränken“
Kommentare sind geschlossen.