Kürzlich stellte ein Kunde bei der Arbeit an einer Microsoft Network Device Enrollment Services (NDES)-Bereitstellung eine einfache Frage zum Thumbprint für das Zertifikat der Zertifizierungsstelle (CA), das auf der GUI für die NDES-Administratorregistrierung angezeigt wurde: "Was ist das für ein Hash? Und warum stimmt er mit keinem der Hashes der CA-Zertifikats-Thumbprints in meiner Autoritätskette überein?"
Im Rahmen einer umfassenden Fehlersuche für ein Gerät, das sich nicht korrekt registrieren ließ, überprüfte der Kunde die Einrichtung des NDES-Servers und stellte fest, dass der Miniaturabdruck nicht mit den angezeigten Miniaturabdrücken der CA-Zertifikate in seiner Kette übereinstimmte.
Ein Überblick über den NDES
Der Network Device Enrollment Service (NDES) ist die Microsoft-Implementierung des Simple Certificate Enrollment Protocol (SCEP), eines Kommunikationsprotokolls, das es software ermöglicht, auf Netzwerkgeräten wie Routern und Switches, die sonst nicht im Netzwerk authentifiziert werden können, X.509-Zertifikate von einer Zertifizierungsstelle (CA) zu beantragen.
NDES arbeitet als ISAPI-Filter (Internet Server Application Programming Interface) auf den Internet-Informationsdiensten (IIS), der einmalige Anmeldepasswörter für Administratoren generiert und bereitstellt, SCEP-Anmeldungsanfragen im Namen von software auf Netzwerkgeräten empfängt und verarbeitet und ausstehende Anfragen von der CA abruft. https://technet.microsoft.com/en-us/library/cc753784(v=ws.10).aspx
Was ist das eigentlich für ein Haschisch?
Nach einer kurzen Überprüfung der Registrierungsschlüssel unter HKLM\SOFTWARE\Microsoft\Cryptography\MSCEP konnten wir feststellen, dass der NDES-Server korrekt konfiguriert war und auf die richtige Zertifizierungsstelle verwies.
Also habe ich unseren Kryptographie-Experten (Ted Shorter, CTO von CSS) hinzugezogen, und wir haben uns zunächst das öffentliche Zertifikat der ausstellenden Zertifizierungsstelle angeschaut, auf das der NDES-Server verwiesen hat. Wir konnten sehen, dass der Hash nicht mit dem übereinstimmte, was wir auf der NDES-Verwaltungsseite sahen.
Und noch etwas fiel sofort auf: Der Hash im Zertifikat, den wir über die Standard-GUI von Microsoft sehen konnten, bestand aus 20 Byte (SHA-1), der Hash auf der NDES-Verwaltungsseite jedoch nur aus 16 Byte. Könnte der Hash auf der NDES-Verwaltungsseite der MD5-Hash des ausstellenden Zertifikats sein?
Der Microsoft Checksummen-Integritätsprüfer (FCIV)
Wir hätten einen schnellen Code einfügen können, um die verschiedenen Hash-Algorithmus-Werte des ausstellenden CA-Zertifikats zu überprüfen, aber es gibt ein raffiniertes Tool von Microsoft, mit dem wir schnell einen MD5- oder SHA-1-Hash überprüfen können: Der Microsoft Checksum Integrity Verifier (FCIV) https://support.microsoft.com/kb/841290. Es wird verwendet, um Dateiwerte mit einem bekannten guten Wert zu vergleichen und sicherzustellen, dass die Dateien nicht verändert wurden.
Aber für unseren Zweck würde es auch funktionieren. Also ließen wir FCIV gegen unser ausstellendes CA-Zertifikat laufen, wobei wir den FCIV-Standard-Hashtyp md5 verwendeten.
Nein, das war es nicht.
Was ist mit der Wurzel?
Bingo!
Der Hash, der Ihnen auf der NDES-Verwaltungsseite angezeigt wird, ist der MD5-Hash des Root-CA-Zertifikats!
Warum der MD5-Hash? Das ist vielleicht eine gute Frage für einen anderen Blog.