Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Projektplanung und -Management (https://www.delphipraxis.net/85-projektplanung-und-management/)
-   -   digitale Signatur von Code/Programmen (https://www.delphipraxis.net/162287-digitale-signatur-von-code-programmen.html)

Webo 16. Aug 2011 10:27

digitale Signatur von Code/Programmen
 
Hallo zusammen,

ich stehe grade vor einem Konzeptproblem. Ziel ist es Code und Programme zu verifizieren.
Denn: Code-Dateien liegen zentral auf einem Server. Viele Leute holen sich diese Dateien vom Server
und verwenden die in ihrem Programm (also Art Modulbauweise). Jetzt packen aber einige Leute eigene Funktionen in die Datei.
Zig Versionen entstehen. Was jetzt gecheckt werden soll ist, ob die Datei von "uns" kommt und ob sie noch im Originalzustand ist oder geändert wurde.

Ich habe mir bereits folgende Gedanken gemacht:

- zum Verifizieren von Code-Dateien: Die Code-Date wird gehasht, mit einem private key verschlüsselt. (private key kennt das Programm was das ganze prüfen durchführen soll). Bei der Verifikation wird die Signatur
mit dem public key (in der Datei enthalten) dekodiert. Gliechzeitig wird die originale Datei gehasht und zum Schluss die beiden Hashs vergliechen.

- zum Verifizieren von Programmen: diese Code-Dateien werden un anderswo in Projekte eingebaut, welche dann compiliert werden. Nun soll geprüft werden, ob
die Dateien von "uns" kommen und ob sie verändert wurden (einzelne Code-Dateien im Programm). Dazu fällt mir eigentlich nur ein Wasserzeichen ein, welcher über den Hex-Code irgendwie auslesbar sind. Dadurch kann man natürlich nur prüfen, ob das noch unsere Dateien sind, aber nicht, ob sie verändert wurden.

zum zweiten Punkt steh ich noch auf dem Schlauch, denn ein Hash des Programm fällt ja raus, weil unterschiedlcihe Compiler auch unterschiedliche Dateien erzeugen, mal von den Projekten, die immer unterschiedlich sind, abgesehen.

Für sämtliche Tipps/Links/Tricks bin ich dankbar.


Grüße

Webo

ehX 16. Aug 2011 10:46

AW: digitale Signatur von Code/Programmen
 
Vielleicht kannst du dafür Microsoft AuthentiCode verwenden?, denn genau dafür ist es ja da. Ausser, du willst alle mögichen Dateitypen signieren, und nicht nur exe, dll oder cab's (und noch ein paar weitere Typen)

Edit: Achso...du willst Quellcode signieren..mhm...das wird nicht so einfach...schon mal drangedacht, statt deine Kunden "kompilieren zu lassen", PascalScript oder eine andere Script-Sprache zu verwenden? Dann wäre das einfacher, du könntest nämlich im Haupt-Programm dann eine Liste der bekannten Erweiterungsscripte mit Hashes ablegen.

Bernhard Geyer 16. Aug 2011 10:46

AW: digitale Signatur von Code/Programmen
 
Zitat:

Zitat von Webo (Beitrag 1117182)
Denn: Code-Dateien liegen zentral auf einem Server. Viele Leute holen sich diese Dateien vom Server
und verwenden die in ihrem Programm (also Art Modulbauweise). Jetzt packen aber einige Leute eigene Funktionen in die Datei.
Zig Versionen entstehen. Was jetzt gecheckt werden soll ist, ob die Datei von "uns" kommt und ob sie noch im Originalzustand ist oder geändert wurde.

Wäre hier nicht ein Quellcodeverwaltungssystem erstmal angesagt?

Und veröffentlichung von Programmen darf nur über einen Build-Server erfolgen der seine Quellcodedateien aus der Quellcodeverwaltung zieht?
Dier erzeugten Exe's bekommen dann noch über den Buildserver noch eine Digitale Signatur verbraten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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