KNOW-HOW
Integritätsschutz von Software
Ein Anwendungsfall von Zertifikaten ist die Code-Signatur. Ein Softwarehersteller unterschreibt seine Software mit seinem privaten Schlüssel. Über ein Zertifikat, welches eine vertrauenswürdige Zertifizierungsstelle ausgestellt hat, wird
der öffentliche Schlüssel mit der Identität des Softwareherstellers verknüpft. Der Anwender kann damit sicher erkennen,
von welchem Hersteller die entsprechende Software entwickelt wurde und ob sie unverändert ist. Dieser Mechanismus
wurde entwickelt, um Anwender vor Viren zu schützen; er dient allerdings nicht dazu, den Softwarehersteller gegen
Raubkopien und Manipulation an seiner Software zu schützen. Und hier kommen AxProtector und ExProtector ins Spiel.
Der in Windows bereits integrierte Code-Signatur-Mechanismus (Authenticode) zeigt
dem Benutzer an, wenn eine Software aus
einer unbekannten Quelle kommt. Dies ist
der Fall, wenn sie nicht unterschrieben ist,
wenn das Zertifikat nicht auf ein vertrauenswürdiges Wurzelzertifikat zurückzuführen ist
oder wenn die Signatur nicht korrekt ist. Diese
Meldungen sind lediglich Warnmeldungen, die
vom Anwender zudem abgeschaltet werden
können. Warum sollte sich ein Raubkopierer
oder der Anwender einer Raubkopie davon
abschrecken lassen?
Windows – AxProtector
Der AxProtector verschlüsselt Ihre komplette
Anwendung (.exe-Datei) und fügt automatisch
einen Fingerabdruck der Anwendung und eine
Signatur des Fingerabdrucks hinzu. Zusätzlich
wird der öffentliche Schlüssel versteckt in der
Anwendung hinterlegt.
6
Getreu nach dem Motto „Traue niemanden
außer Dir selbst“ überprüft sich die geschützte
Anwendung selber beim Starten. Stimmt
die Signatur nicht mit der im Speicher geladenen Anwendung überein, beendet sich die
Anwendung mit einer entsprechenden Fehlermeldung. Neben der Tatsache, dass sich Ihre
Anwendung mit dem AxProtector geschützt
nur noch auf sich selbst verlässt, hat der
AxProtector noch einen zweiten wesentlichen
Vorteil gegenüber dem Standardmechanismus
von Windows: Die geschützte Anwendung
überprüft sich selbst im Speicher und nicht
nur auf der Festplatte. Änderungen, die von
Hackern nach dem Laden vorgenommen
wurden, werden damit auch erkannt.
Anwendung und Bibliotheken
Natürlich kann man sich fragen, ob ein
versteckter Fingerabdruck (Prüfsumme) nicht
die gleichen Ergebnisse liefern würde wie die
Prüfung der eigenen Signatur. Bei einer Anwendung, die aus einer einzelnen exe besteht, ist
dies korrekt. Der große Vorteil kommt erst zum
Tragen, wenn die Anwendung aus einer exe
und mehreren Bibliotheken (dlls) besteht.
exe
dll
AxEngine
AxEngine
Signature
Signature
Kontrolle zwischen .exe und .dll
In diesem Fall werden die exe und alle dlls
vom AxProtector signiert. Beim Laden einer
geschützten dll überprüft die exe die Integrität der dll und die dll die Integrität der exe.
Dabei können Sie definieren, ob die dll nur in
bestimmten (eigenen) Anwendungen geladen
werden darf. Und Sie können festlegen, welche
dlls zwingend eine gültige Signatur besitzen
müssen, damit diese geladen werden dürfen.