AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Code Signing - Veränderungen erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

Code Signing - Veränderungen erkennen

Ein Thema von Ares · begonnen am 23. Mai 2010 · letzter Beitrag vom 24. Mai 2010
Antwort Antwort
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Code Signing - Veränderungen erkennen

  Alt 23. Mai 2010, 09:21
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
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

Re: Code Signing - Veränderungen erkennen

  Alt 23. Mai 2010, 11:04
[geraten]
Ich könnte mir vorstellen, das nicht die ganze PE-Datei signiert wird, sondern nur die relevanten Teile (Daten- und Codesegmente, Ressourcen, usw.).
Probiere es mal an einer Stelle, die garantiert zum Programm gehört, zB. einem String, der von dir definiert wurde.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#3

Re: Code Signing - Veränderungen erkennen

  Alt 24. Mai 2010, 07:43
Hallo BUG, du hast gut geraten

Zuvor hatte ich einfach das letzte Byte der Datei gekippt, dass scheinbar nicht von der Signatur erfasst wird. Ändert man andere Stellen liefert SignTool.exe "Die digitale Signatur des Objektes konnte nicht bestätigt werden."

Gibt es nun eine Methode mit der eine signierte EXE ihre eigene Signatur überprüfen kann? Kann also ein Programm selber feststellen ob es verändert wurde?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#4

Re: Code Signing - Veränderungen erkennen

  Alt 24. Mai 2010, 08:00
Zitat von Ares:
Hallo BUG, du hast gut geraten

Zuvor hatte ich einfach das letzte Byte der Datei gekippt, dass scheinbar nicht von der Signatur erfasst wird. Ändert man andere Stellen liefert SignTool.exe "Die digitale Signatur des Objektes konnte nicht bestätigt werden."

Gibt es nun eine Methode mit der eine signierte EXE ihre eigene Signatur überprüfen kann? Kann also ein Programm selber feststellen ob es verändert wurde?
Ich weiß jetzt nicht, ob SignTool nur irgendeine API aufruft, welche die Signatur prüft
und die man dann auch selber aufrufen kann,

aber notfalls könnte man die signtool.exe mit ausliefen und diese via ShellExecute/CreateProcess aufrufen.

PS: Wenn du diese Signierung nur zur Erkennung auf Veränderungen benutzen willst und dir kein 1000%iger Schutz auf absichtliche Änderungen von Nöten ist, dann ginge auch noch sowas.
http://www.delphipraxis.net/internal...=811141#811141
Dieses legt einen Hash über die gesamte EXE innerhalb sich selber ab und prüft diese bei Programmstart.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz