Hallo, heute mal eine kleine Geschichte über CodeSigning in Windows.
Ich habe mich mal ein wenig damit beschäftigt wie man ein Executable signiert. Nach einigen Tests hatte ich dann eine gültig signierte Datei.

Und wie sieht es jetzt mit dem Sicherheitsgewinn aus ???

Da ist keiner!

Aber mal der Reihe nach. Was habe ich getestet?

Schritt 1: Gültige Signatur

Als erstes habe ich ein Zertifikat erstellt, mit dem ich die Signierung machen kann. Das Zertifikat ist von meiner CA unterschrieben worden und das CA Zertifikat ist in Windows installiert worden.

Als nächstes habe ich eine EXE mit VisualStudio erstellt. Diese EXE wurde nun mit dem Signtool das VisualStudio mitliefert Signiert. Mit dem oben erwähnten Zertifikat.

Das ganze sieht nun so aus:

sign ok

sign ok Deteils

Wie ihr sehen könnt ist die EXE gültig signiert. Dies wir auch im ProzessExplorer angezeigt.

prozessok

Schritt 2: Signatur ungültig machen

Um jetzt die Signatur nicht mehr gültig zu machen, ändere ich mittels Hexeditor in der EXE ein Byte ab.

hexorg
hexchanged

Wie ihr auf den Bildern oben sehen könnt, habe ich aus dem "m" ein "a" gemacht. Dies Verhindert die Ausführung des Programms nicht. Allerdings reicht dies um die Signatur Ungültig zu machen, da sich die Datei geändert hat, nachdem sie Signiert wurde.

sigbad

Wie ihr sehen könnt ist die Signatur nun ungültig.

prozessbas

Der ProzessExplorer sagt mit nun auch nur das die Datei nicht Signiert ist.

Fazit

Was habe ich nun erwartet?
Nun ich hätte zumindest erwartet das mich Windows auf die nun nicht mehr gültige Signatur aufmerksam macht. Aber wie sich herausstellt passiert rein gar nichts.

Die Datei lässt sich weiterhin problemlos ausführen und verwenden.

Das ist in meinen Augen die schlechteste Lösung die man machen kann.

Ein Virus kann die Datei verändern oder jemand könnte eine manipulierte Version zum Download anbieten. Dies könnte Windows herausfinden und problemlos die Ausführung verhindern. Aber stattdessen wird nicht unternommen.

Wer also mit dem Gedanken spielt sich ein teures Zertifikat für CodeSigning zu kaufen, kann sich dies getrost sparen.

ES BRINGT ABSOLUT KEINEN SICHERHEITSGEWINN FÜR SEINE KUNDEN