Hallo!
Im Moment beschäftige ich mich mit dem Thema Code Signing. Der
Beitrag zur Erstellung und Nutzung eigener Zertifikate hat mir schon sehr weiter geholfen. Vor dem Kauf eines "echten" Zertifikates wollte ich die Technik mit einem eigenen Zertifikat ausprobieren.
Das Erstellen eines Zertifikates und die Dateisignierung funktioniert auch prima. Ich bin allerdings davon ausgegangen, dass sich mit dem Zertifikat auch Veränderungen im Programm erkennen lassen.
Ich habe also ein kleines Hallo-Welt-Programm geschrieben, die EXE signiert und anschließend mit einem HEX-Editor ein Byte verändert. Trotz dieser Änderung zeigt mir
Code:
signtool.exe verify /pa /v HalloWelt_verändert.exe
an:
"Successfully verified: HalloWelt_verändert.exe
Wie kann das sein? Anhand des Hashes müsste doch eigentlich die Änderung der Datei erkannt werden, oder nicht?
Habe ich das Prinzip des Code Signings falsch verstanden und Änderungen werden gar nicht erkannt? Wenn eine Signierte Datei dennoch beliebig manipuliert werden kann, wäre das ganze Signing doch ziemlich sinnlos oder nicht?
Was mache ich falsch bzw. was habe ich falsch verstanden?
Besten Dank
Ares