Matthias Aevermann Systemberatung

« | Home

SHA-2-Familie Hashes prüfen

Wie andere Hersteller von Software bereitet Microsoft die Ausmusterung von SHA1 vor. Die Notwendigkeit der Ablösung ist seit langem bekannt, seit Jahren wird auf das Risiko von SHA1-Kollisionen hingewiesen und das Sicherheitspolster zunehmend dünner (Eine sehr interessante, aktuelle Einschätzung findet sich unter https://eprint.iacr.org/2015/967.pdf). Wer noch nicht mit dem Wechsel begonnen hat, sollte dringend mit der Planung für den Wechsel auf einen neueren Algorithmus beginnen. In der Regel findet ein Wechsel auf die SHA256, SHA384 und SHA512 statt, wobei meist auf SHA256 mit einer Hash Länge von 256 Bit gewechselt wird. SHA2 mit einer Bit-Länge von 224 wird dagegen selten eingesetzt, da es nur eine Zwischenlösung für eine begrenzten Zeitraum darstellen würde.

Software, die die SHA-2-Familie nicht unterstützt, ist fast nicht mehr zu finden. Die Produkte unterstützen entweder direkt oder nach Einspielen von Patches SHA2. Soweit scheint alles im grünen Bereich zu sein.

Leider zeigt Windows auch in den aktuellen Version trotz SHA2-Familie Unterstützung die SHA2-Familie Hashes in der grafischen Oberfläche nicht an. Der für die Signatur verwendetete Hashalgorithmus wird korrekt angezeigt, einen SHA2 Hash sucht man allerdings vergebens.

Der Dialog zeigt nur den Hashalgorithmus SHA1 und den zugehörigen 160 Bit langen SHA1 Fingerabdruck an.

SHA1-Fingerabdruck

Somit besteht über die GUI keine Möglichkeit zur Überprüfung des SHA2 Fingerabdrucks.

Bei der Anzeige von Zertifikaten kann man mit diesem Darstellungsproblem noch umgehen. Der Hash von mit beispielsweise SHA256 signierten Zertifikat wird durch das Betriebssystem korrekt geprüft und Angriffe auf Basis von Kollisionen der SHA1 Hashes stellen somit nicht automatisch ein Risiko dar. Anders sieht es aus, wenn man das Zertifikat einer Root-CAs in den Bereich “Vertrauenswürdige Stammzertifizierungsstellen” des Windows Zertifikatsspeichers importieren möchte. Auch hier wird nur der kollisionsgefährdete SHA1 Fingerabdruck angezeigt. Hiervon ist dringend abzuraten, der Sicherheitswarnung ist nicht hinzuzufügen.

Anzeige des SHA1 Hashes beim Import eines Root-Zertifikate

Bei Darstellungproblemen hilft normalerweise das Dumpens eines Zertifikates, hier werden alle Felder und Erweiterungen vollständig angezeigt (Befehl: certutil -dump %cert-file%). Leider zeigt Windows 7/ 2008 auch bei Verwendung des Parameters “-v” nur den MD5- und den SHA1-Hash an. Erst ab Windows 8/ 2012 wird bei Verwendung des Parameters “-v” zusätzlich zum MD5- und SHA1- auch der SHA2-Hash angezeigt. Da der Dump bei Verwendung von -v sehr umfangreich sein kann, sollte der Output in eine Textdatei umgeleitet werden, die Hashes finden sich ganz unten. Hier werden neben dem Fingerabdruck auch die MD5-, SHA1- und SHA2-Familie- Hashes der öffentlichen Schlüssel dargestellt. Auch so mancher Administrator wird nicht sofort erkennen, was der korrekte SHA2-Familie Fingerabdruck ist.

Die einfachste Möglichkeit den Fingerabdruck anzuzeigen hat Microsoft gut versteckt. Unter Windows 7 wird in der Hilfe für certutil -hashfile angezeigt, dass Algorithmen übergeben werden können, es fehlt aber der Hinweis auf die richtige Schreibweise und für Microsoft untypisch muss bei der Angabe des gewünschten Hash-Algorithmus auf Groß- und Kleinschreibung geachtet werden. Angaben finden sich erst in der Hilfe für Windows 8 und folgende.

Certutil -hashfile unter Windows 8

Der korrekte Befehl lautet für einen SHA256 Fingerabdruck mit 256 Bit Hash-Länge “certutil -hashfile %cert-file% SHA256″. Auch wenn die Prüfung aufwendig ist, solange in der GUI die SHA2 Hashes nicht angezeigt werden, führt kein Weg an der Prüfung über certutil -hashfile vorbei.