Übersicht |
Digitale Signaturen werden dazu verwendet, um sicherzustellen, dass Programmdateien nach ihrer Veröffentlichung nicht verändert
wurden und dass die Software vom Hersteller stammt. Sie basieren auf digitale Zertifikate, welche von einer hierfür berechtigten
und vertrauenswürdigen Stelle an eine Person (oder ein Unternehmen) ausgegeben wurden, die durch diese Stelle identifiziert wurde.
Wenn eine ausführbare Datei digital signiert wurde, dann kann der Anwender entscheiden, ob er das Programm ausführen möchte, indem
er die Signatur überprüft.
|
Um eine digitale Signatur zu überprüfen, müssen zwei Teile verifiziert werden:
- Digitale Signatur: Es handelt sich hierbei um einen verschlüsselten Hashwert, der von einer Hashfunktion für eine Datei erzeugt und
mit dem privaten Schlüssel des unterliegenden Zertifikats verschlüsselt wurde. Zur Verifizierung der Signatur wird der verschlüsselte
Hashwert mit dem öffentlichen Schlüssel entschlüsselt und der resultierende Wert muss dem Hashwert entsprechen, der sich aus der
erneuten Berechnung des Hashwertes mit der selben Hashfunktion ergibt.
- Zertifikat: Eine Software stammt vom Hersteller, wenn sie mit seinem Zertifikat signiert wurde. Daher muss überprüft werden, ob das
korrekte Zertifikat verwendet wurde und ob das Zertifikat gültig ist. Im Einzelnen müssen der Aussteller des Zertifikats, der
Eigentümer, der Zertifizierungspfad, die Seriennummer und der Fingerabdruck überprüft werden.
|
Dieser Artikel wurde am 2023-NOV-04 auf den neuesten Stand gebracht, um Änderungen beim verwendeten Zertifikat ab TurboSFV v10.00
zu dokumentieren. Wenn Ihnen dieser Artikel gefällt, dann setzen Sie bitte einen Link darauf.
|
|
Digitale Signaturen und TurboSFV |
Alle Programmdateien von TurboSFV, die ausführbaren Kode enthalten, sind digital unterschrieben, einschließlich des Setup.
Das verwendete Zertifikat wurde für das Signieren von Programmdateien herausgegeben ( Erweiterte Schlüsselverwendung: 1.3.6.1.5.5.7.3.3 ).
|
Die folgenden Werte werden für die Überprüfung des Zertifikats benötigt, welches für die digitale Signatur von:
TurboSFV v10.00 und neuer verwendet wird:
|
Aussteller: |
Certera Code Signing CA |
Eigentümer: |
Jörg Krahe |
Zertifizierungspfad: |
- Sectigo (AAA)
- USERTrust RSA Certification Authority
- Certera Code Signing CA
- Jörg Krahe
|
Seriennummer: |
00 8a 3c bb bf 7b b8 01 c6 83 4c 51 23 f4 b7 80 92 |
Fingerabdruck: |
(SHA-1, unsicher)
36 ee 2d 00 82 c3 34 a9 96 b8 1f 84 af 45 ed 37 9d 9f 87 23 |
|
Alternative, sichere Fingerabdrucke (Prüfsummen) vom Zertifikat - von Windows nicht angezeigt:
|
SHA3-256:
32b4b88f16cb90258669d09d034aca2bc1f1c97499cb4f7c3c7ad6119773f7b2
|
SHA-256:
971cfef1ee727a50c30ac831c9be296618e9e0a657772d56739e6b84926d0f53
|
|
Lesen Sie weiter
unten für weitere Anweisungen, wie man diese berechnet und verwendet.
|
|
Verwendete Hashfunktionen |
Die Hashfunktion SHA-1 wird dazu verwendet, den Fingerabdruck für das unterliegende Zertifikat zu berechnen. Seit 2005 sind
erfolgreiche Angriffe auf SHA-1 bekannt, so dass SHA-1 Prüfsummen bei digitalen Signaturen und Zertifikaten keine Sicherheit
gewährleisten können. SHA-1 sollte daher nur als eine Art Vorüberprüfung angesehen werden (wenn falsch, dann fehlgeschlagen -
wenn richtig, dann überprüfe weiter). Als sichere Alternative gelten Hashfunktionen aus der SHA-2 Familie, wie z.B. SHA-256,
SHA-384 oder SHA-512, oder noch besser, eine aus der SHA-3 Familie (SHA3-256, SHA3-384, SHA3-512).
|
Die ausführbaren Dateien von TurboSFV enthalten zwei digitale Signaturen, eine basierend auf SHA-256 und eine weitere auf SHA-512.
Windows sollte beide anzeigen, die primäre Signatur basierend auf SHA-256 und die zusätzliche Signatur basierend auf SHA-512. Beide
Verfahren werden auf neueren Windows-Versionen unterstützt.
|
Der Fingerabdruck des Zertifikats, der von Windows angezeigt wird, basiert immer noch auf dem unsicheren SHA-1. Daher kann er
nicht allein für die Überprüfung eines Zertifikats verwendet werden. Alternativ könnte eine sichere Hashfunktion (z.B. SHA3-256) zur
Identifizierung eines Zertifikats genutzt werden (Überprüfungsschritte weiter
unten erklärt).
|
|
Überprüfung der digitalen Signatur |
Existenz der digitalen Signatur überprüfen |
Die hierfür notwendige Information befindet sich auf dem Karteireiter Digitale Signaturen:
Lokalisieren Sie die Datei im Explorer, klicken mit der rechten Maustaste auf die Datei, so dass sich das Kontext-Menü öffnet und wählen
Eigenschaften.
|
|
Wenn Sie diesen Karteireiter nicht sehen, dann wurde die Datei nicht unterschrieben oder die Signatur wurde entfernt -
die Überprüfung ist fehlgeschlagen.
|
In neueren Windows-Versionen sollten Sie einen Eintrag sehen, wo die Hashfunktion SHA-256 für die digitale Signatur verwendet
wurde und einen weiteren basierend auf SHA-512. Die Wert für Name muss wie dargestellt erscheinen. Der
Zeitstempel gibt an, wann die Datei signiert wurde (der Wert oben ist als Beispiel anzusehen und ändert sich bei neueren Versionen
von TurboSFV).
|
Selektieren Sie nun zum Beispiel SHA-512 und klicken auf Details.
|
|
Details der digitalen Signatur |
Ein neues Fenster öffnet sich, welches generelle Informationen zur Signatur anzeigt. Die wichtigste Aussage auf dieser Seite ist, dass
die digitale Signatur gültig ist.
|
|
Die Signatur ist dann gültig, wenn
- die Datei - nachdem sie unterschrieben wurde - nicht mehr verändert wurde: Der berechnete Hashwert, basierend auf der ausgewählten
Hashfunktion, entspricht dem entschlüsselten Hashwert in der Signatur,
- die Zertifizierungskette vollständig ist, und
- das zugrunde liegende Zertifikat (welches ein gefälschtes sein kann) in Ordnung ist.
Ansonsten erscheint eine Fehlermeldung, markiert durch ein Fehlersymbol, zum Beispiel:
|
|
In diesem Fall ist die Unterschrift ungültig. Wenn Sie irgendeine Fehlermeldung sehen, dann ist die Überprüfung fehlgeschlagen.
|
Das Feld Name zeigt an, wer die Datei unterschrieben hat und muss dem
dargestellten Wert entsprechen. Der Wert stammt vom unterliegenden Zertifikat, welches nun geprüft werden muss, um
sicherzustellen, dass das richtige Zertifikat verwendet wurde und dass das Zertifikat gültig ist (Ein Angreifer kann die Datei mit
irgendeinem Zertifikat, welches gefälschte Werte enthält, unterschreiben). Beachten Sie auch den Signaturzeitpunkt,
da an diesem Tag das unterliegende Zertifikat gültig sein muss.
|
Klicken Sie auf Zertifikat anzeigen, um das verwendete Zertifikat zu überprüfen.
|
|
Überprüfung des Zertifikats |
Es öffnet sich ein neues Fenster mit drei Karteireitern, die Details zum Zertifikat anzeigen, welches für die Signatur der Datei
verwendet wurde. Ein Zertifikat kann als digitaler Ausweis angesehen werden, welcher von einer hierfür berechtigten und
vertrauenswürdigen Stelle an eine Person (oder ein Unternehmen) ausgegeben wurde, die durch diese Stelle identifiziert wurde.
|
|
Aussteller und Eigentümer |
Auf dem Karteireiter Allgemein befinden sich generelle Informationen zum Zertifikat:
|
|
Der Zweck sollte wie dargestellt erscheinen und zeigt an, dass das Zertifikat
für das Signieren von Programmdateien herausgegeben wurde (aus technischer Sicht wird der Verwendungszweck dem Feld
Erweiterte Schlüsselverwendung im Zertifikat entnommen: 1.3.6.1.5.5.7.3.3). Jegliche
Fehlermeldung oder Warnung wie
|
|
zeigt ein Problem mit dem Zertifikat an und die Überprüfung ist fehlgeschlagen.
|
Es sind nun die beiden Felder Ausgestellt für und Ausgestellt von
zu betrachten, deren Werte wie folgt sein müssen, ansonsten ist die Überprüfung fehlgeschlagen.
|
Ausgestellt für: |
Jörg Krahe |
Ausgestellt von: |
Certera Code Signing CA |
|
Die Gültigkeitsdauer zeigt an, in welchem Zeitraum das Zertifikat gültig ist. Eine Datei muss in diesem Zeitraum unterschrieben
worden sein, der Signaturzeitpunkt wird in den
Details der digitalen Signatur angezeigt.
|
|
Seriennummer und Fingerabdruck |
Die Überprüfung der Seriennummer stellt sicher, dass nur das vorgesehene Zertifikat verwendet wurde, und kein anderes, welches vom selben
Aussteller herausgegeben wurde (unter der Annahme, dass der Aussteller die Seriennummer nicht mehrfach vergibt). Ein fehlerhafter
Fingerabdruck bedeutet, dass es sich um ein falsches oder beschädigtes Zertifikat handelt.
|
Öffnen Sie den Karteireiter Details. Stellen Sie sicher, dass Sie Anzeigen Alle
ausgewählt haben:
|
|
Die Seriennummer des Zertifikats wird vom Aussteller verwaltet und sollte einzigartig sein. Das Zertifikat, welches zur
Signatur von TurboSFV v10.00 und neuer verwendet wird, hat die folgende Seriennummer:
|
Seriennummer: |
00 8a 3c bb bf 7b b8 01 c6 83 4c 51 23 f4 b7 80 92 |
Großbuchstaben: |
00 8A 3C BB BF 7B B8 01 C6 83 4C 51 23 F4 B7 80 92 |
|
Die Seriennummer wird hexadezimal angegeben und kann in einigen Windows-Versionen auch in Großbuchstaben erscheinen.
|
Rollen Sie jetzt die Liste weiter und selektieren das Feld Fingerabdruck:
|
|
Beim Fingerabdruck handelt es sich um eine SHA-1 Prüfsumme für das Zertifikat. Sie ist nicht Teil des Zertifikats, wird aber von
Windows berechnet, verwendet und angezeigt. Das Zertifikat, welches zur Signatur von TurboSFV v10.00 und
neuer verwendet wird, hat den folgenden Fingerabdruck:
|
Fingerabdruck: |
36 ee 2d 00 82 c3 34 a9 96 b8 1f 84 af 45 ed 37 9d 9f 87 23 |
Großbuchstaben: |
36 EE 2D 00 82 C3 34 A9 96 B8 1F 84 AF 45 ED 37 9D 9F 87 23 |
|
Auch der Fingerabdruck erscheint in hexadezimaler Form.
|
Wie bereits erklärt, beim Fingerabdruck handelt es sich um eine Prüfsumme für das Zertifikat und daher auch um eine Prüfsumme
für alle Felder in dem Zertifikat. Wegen der Sicherheitsprobleme bei SHA-1 (siehe
Verwendete Hashfunktionen),
kann der SHA-1 Fingerabdruck allein keine Sicherheit gewährleisten. Eine falsche Prüfsumme zeigt aber ganz sicher einen Fehler an.
|
Falls die Seriennummer oder der Fingerabdruck nicht übereinstimmt, dann ist die
Überprüfung fehlgeschlagen.
|
Nehmen wir uns jetzt eine Sekunde Zeit und denken über den Fingerabdruck nach:
|
Erhielten wir eine Prüfsumme für das Zertifikat von einer sicheren Hashfunktion (z.B. aus der SHA-3 Familie), dann würde es
ausreichen. die Prüfsumme zu validieren, weil diese alle Felder im Zertifikat abdeckt. Leider zeigt uns Windows nur den
unsicheren SHA-1 Fingerabdruck an - aber nichts hält uns davon ab, einen sicheren Fingerabdruck selber zu berechnen, also
fangen wir gleich damit an.
|
|
Alternative, sichere und schnelle Methode zur Überprüfung der Details eines
Zertifikats |
Wir berechnen eine SHA3-256 Prüfsumme für das unterliegende Zertifikat und vergleichen diese mit dem Wert, der vom Hersteller
der Software bereitgestellt wird. Wenn beide übereinstimmen, dann müssen wir keine speziellen Felder des Zertifikats überprüfen,
da wir SHA3-256 vertrauen können. Im Einzelnen müssen folgende drei Schritte durchgeführt werden:
- Zertifikat von der ausführbaren Datei extrahieren.
- SHA3-256 Prüfsumme für das extrahierte Zertifikat berechnen.
- Die berechnete Prüfsumme mit dem vom Hersteller der Software ausgewiesenen Wert vergleichen.
|
In der Abbildung oben, welches die Details des Zertifikats anzeigt, haben Sie vielleicht eine kleine Schaltfläche bemerkt:
|
|
Wenn Sie auf diese klicken, dann startet ein Zertifikatexport-Assistent, der es ermöglicht, das Zertifikat von der
ausführbaren Datei zu extrahieren. Klicken Sie auf Weiter, um das Export-Dateiformat auszuwählen.
|
|
Im Dialog wählen Sie DER encoded binary X.509 (.CER) als Dateiformat. Im Prinzip könnten wir auch ein
anderes verwenden, aber wir müssen uns auf eines einigen, ansonsten können wir die Prüfsummen nicht vergleichen. Darüber hinaus
verwendet Windows bei der Berechnung des SHA-1 Fingerabdrucks das gleiche Dateiformat, so dass wir mit Windows hier
übereinstimmen. Klicken Sie auf Weiter, um Speicherort und Name der Datei festzulegen, erneut auf Weiter um die Einstellungen
noch einmal anzusehen und dann auf Fertig stellen, um die Datei zu speichern.
|
Zur Berechnung der SHA3-256 Prüfsumme müssen Sie ein Prüfsummenwerkzeug installiert haben. Klar, wir verwenden TurboSFV, genauer
gesagt die Shell Erweiterung von TurboSFV, die uns bei der Berechnung der SHA3-256 Prüfsumme hilft. Mit der rechten Maustaste
klicken Sie auf die exportierte Datei, wählen Eigenschaften und navigieren zur Eigenschaftsseite Hash.
|
|
Wählen Sie SHA3-256 als Hashfunktion aus. Wenn Sie mit dem Windows SHA-1 Fingerabdruck vergleichen möchten, dann markieren Sie
auch SHA-1. Die Prüfsumme von SHA-256 ist hier auch erwähnt: Die Hashfunktion ist weit verbreitet, der unterliegende Algorithmus
ist aber unsicherer verglichen mit SHA3-256. Klicken Sie auf Start, kopieren die Werte und fügen diese in ein Text-Dokument ein
und vergleichen die SHA3-256 Prüfsumme mit der folgenden:
|
SHA3-256:
32b4b88f16cb90258669d09d034aca2bc1f1c97499cb4f7c3c7ad6119773f7b2
|
SHA-256:
971cfef1ee727a50c30ac831c9be296618e9e0a657772d56739e6b84926d0f53
|
|
Stimmen die Prüfsummen überein, dann wurde das richtige Zertifikat verwendet, ansonsten ist die Überprüfung fehlgeschlagen.
|
Wie Sie gesehen haben, ist diese Methode schnell, einfach und sicher. Als Vorbedingung muss der Hersteller der Software die
originale SHA3-256 Prüfsumme des Zertifikats bereitstellen. Nun müssen wir uns noch den Zertifizierungspfad anschauen.
|
|
Zertifizierungspfad |
Der Zertifizierungspfad muss überprüft werden, um sicherzustellen, dass die richtigen Zertifizierungsstellen
mit einbezogen sind und der Zertifizierungspfad vollständig ist.
|
|
In neueren Windows-Versionen sollte der Pfad wie folgt aufgebaut sein:
|
Zertifizierungspfad: |
- Sectigo (AAA)
- USERTrust RSA Certification Authority
- Certera Code Signing CA
- Jörg Krahe
|
Seriennummern: |
Sectigo: 01 |
USERTrust: 39 72 44 3a f9 22 b7 51 d7 d3 6c 10 dd 31 35 95 |
Certera: 21 66 f0 8a 51 eb fc ab cc 8f 44 30 91 a9 4b 0e |
Jörg Krahe: im vorigen Schritt überprüft |
|
Der oberste Eintrag stellt die oberste Zertifizierungsstelle in dieser Kette dar. Eine Liste von vertrauenswürdigen, obersten
Zertifizierungsstellen wird in Windows im Zertifikatsspeicher verwaltet. Diese Liste wird von Microsoft über das Windows Update
auf dem neuesten Stand gehalten, kann aber auch manuell von Anwendern (oder Programmen) mit entsprechenden Rechten verwaltet werden.
Der untere Eintrag zeigt den Eigentümer des Zertifikats an, alle anderen Einträge sind Zwischenzertifikate. Die Zertifikate werden
jeweils vom übergeordneten Zertifikat als vertrauenswürdig angesehen, mit Ausnahme des Wurzelzertifikats.
|
Windows zeigt für die Zertifizierungsstellen u.U. den sogenannten "Anzeigenamen" an, der unterschiedlich sein kann - daher
sind hier auch die Seriennummern der unterliegenden Zertifikate für eine weitere Untersuchung aufgeführt. Der dargestellte
Zertifizierungspfad ist das Resultat einer Operation, mit der Windows den Pfad vom Eigentümer des Zertifikats bis hoch zur obersten
Zertifizierungsstelle aufzulösen versucht - abhängig davon, welche Zertifikate im Zertifikatsspeicher vorhanden sind.
|
Den Zertifizierungspfad bezeichnet man auch als Zertifizierungs- oder Vertrauenskette, die nicht unterbrochen sein darf.
Ein gebrochene Kette (der gebrochene Teil ist durch ein rotes Fehlersymbol markiert) könnte - zum Beispiel - wie folgt aussehen:
|
|
Eine gebrochene Kette bedeutet, dass man einem bestimmten Zertifikat und daher auch allen untergeordneten Zertifikaten nicht vertrauen
kann, da diese jeweils durch die übergeordnete Stelle ausgegeben wurden. Die Überprüfung ist fehlgeschlagen.
|
Jetzt wissen wir auch, warum eine Zertifizierungskette vollständig sein muss: Falls nicht alle Zertifikate angezeigt werden,
dann können wir auch nicht überprüfen, ob eines beispielsweise in der Zwischenzeit zurückgezogen wurde, und daher können wir
allen angezeigten Zertifikaten nicht vertrauen. Eine unvollständige Kette könnte wie folgt aussehen:
|
|
Das Zertifikat der obersten Zertifizierungsstelle ist hier nicht im Windows Zertifikatsspeicher verfügbar, daher kann der Pfad
nicht vollständig aufgelöst werden. Windows müsste in diesem Fall einen Warnhinweis auf dem Karteireiter Allgemein der Details
zum Zertifikat anzeigen ...
|
|
... und daher auch eine Fehlermeldung bei den Details zur Signatur, weil die Signatur auf diesem Zertifikat basiert:
|
|
|
Resultate interpretieren |
Wenn Sie alle Schritte erfolgreich beendet haben, dann können Sie davon ausgehen, dass Sie die originale Datei vorliegen haben.
|
Wenn an irgendeinem Punkt die Überprüfung fehlgeschlagen ist, dann haben Sie wahrscheinlich nicht die Original-Datei vorliegen und Sie
sollten sie nicht ausführen. Wenn die Überprüfung für das Setup-Programm von TurboSFV fehlschlägt, dann laden Sie es von dieser Webseite
herunter. Wenn Sie Probleme bei der Überprüfung des zugrunde liegenden Zertifikats haben, dann sollten Sie Ihren Administrator konsultieren.
Sie können uns auch kontaktieren, wie unter
Hilfe beschrieben.
|
|