Aktivierung der internen Zertifizierungsstelle mit SHA256/SHA512 Hashes

Mit dem Stichtag 01.01.2017 werden die gängigen Browser, allen voran das Chromium-Projekt Zertifikate mit SHA1-Hashes als nicht mehr sicher deklarieren. Zeit also nicht nur die internen Zertifikate auf Vordermann zu bringen. Hin und wieder kommt es vor, dass interne Zertifizierungsstellen auf Basis eines Windows Servers eingesetzt werden. Wie man hier voran geht ist folgend beschrieben.

Umgebung

  • Active Directory Certificate Service-Role
  • Auf Basis z. B. Windows Server 2008 R2
  • Bisher keine Unterstützung für SHA256 oder höher gehashte Zertifikate
  • Chrome-Browser bemängelt bereits den SHA1-Zertifikatshash, akzeptiert die Verbindung aber (noch) als sicher (rote SSL-Verbindung in der Browserleiste)

Problem

Das Aktivieren eines 256- oder 512bit langen SHA-Hashes im Zertifikatstemplate führt nicht dazu, dass die interne CA längere Schlüssel erstellt.

Lösung

Um die interne Zertifizierungsstelle auf SHA256 oder besser SHA512 zu trimmen sind mehrere Schritte nötig.

Die Microsoft CA hört was das signieren von Zertifikaten angeht auf einen Registry-Wert welcher auf dem Server, der die CA betreibt geändert werden muss:

  • Microsoft-CA Mittels Regkey dazu auffordern, den Mindesthashwert auf z. B. SHA256 anzuheben.
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CertSvc\Configuration\CANAME\CSP
    • CNGHashAlgorithm –> Änderung auf SHA256, SHA512 o. ä.

Im Anschluss muss noch der CA-Dienst neugestartet werden. Dies geschieht mit folgenden Befehlen (die CA ist in diesem Zeitraum nicht für Ausstellungen/CRL-Abfragen verfügbar):

  • net stop certsvc
  • net start certsvc

Nach Neustart des Dienstes und einem Blick in die Eigenschaften der CA kann man sehen, dass künftige Zertifikate mit einem weitaus komplexeren Hash unterzeichnet werden:

ca_with_sha512

 

Die neuen Zertifikate sehen dann in etwa so aus:

certificatesha512

 

Bitte beachte, dass das SSL-Zertifikatskonzept vorsieht, dass die Verschlüsselung immer nur so stark ist, wie das schwächste Zertifikat der Kette. Es bringt Dir also nichts, wenn du SHA512 Hashes mit unzählig langen Schlüsseln im Hostzertifikat verwendest, hingegen aber die Intermediate-Zertifikate (Zwischenzertifizierungsstellen) oder gar Root-Zertifikate nur mit SHA1 signiert sind. Bitte beachte deshalb auch meinen Beitrag zum Aktualisieren eines Root-Zertifikat-Hashes in einer Microsoft Active-Directory-Umgebung.

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.