To top
Resources Resources
[Translate to German:]

Kategorien: Software-Schutz

Protection Suite auf dem PC 

Verschiedene Ausprägungen der AxProtector-Technologie für die verschiedenen Programmtypen sorgen für den immer passenden Schutz für Ihren jeweiligen Anwendungsfall. Software-Hersteller sichern sich so Umsätze und schützen das geistige Eigentum.

Die Wibu-Systems Protection Suite umfasst verschiedene Schutzmechanismen für Software. Der Bedarf nach Schutz vor verschiedenen Bedrohungen ist nahezu überall vorhanden. Sei es beim Lohnbuchhaltungsprogramm für Gaststätten, einer Musikbearbeitungssoftware für Tonstudios oder der Schleifmaschine für Zahnersatz.

Es gibt Bedrohungsszenarien, gegen die man sich als Software-Hersteller (ISV) schützen möchte. Bei jeder verkauften Software möchte man sicher sein, dass diese nur im gekauften Umfang verwendet wird – zum Beispiel als Einzelplatzlizenz mit Grundmodul ohne Zusatzmodule. Man setzt daher eine Lizenzierung ein und diese soll nicht ausgehebelt werden. Damit nicht nach kürzester Zeit im Internet eine einfache Anleitung zur Umgehung der Lizenzierung veröffentlicht wird oder Raubkopien die Runde machen, müssen die Lizenzkontrollmechanismen so in die Software integriert werden, dass sie nicht entfernt werden können.

Das technische Know-how einer Firma steckt heutzutage immer öfter zu wesentlichen Teilen in der ausgelieferten Software. Wie optimiert man zum Beispiel am effektivsten die Anordnung der Einzelteile auf Schnittmustern, oder wie lautet das Geheimnis, damit ein Videoschnittprogramm besonders schnell die Bildfolgen berechnen kann? Solch geistiges Eigentum gilt es, vor den neugierigen Augen der Konkurrenz im In- und Ausland zu schützen. Die möglichst lange Bewahrung eines Wissensvorsprungs zahlt sich meist in barer Münze aus.

Immer öfter zahlen Lizenznehmer nicht mehr pauschal für ein Gesamtpaket, sondern nur noch für die benötigten Module, eine beschränkte Laufzeit oder eine begrenzte Anzahl von Ausführungen bestimmter Funktionen. So können auch Lizenznehmer mit kleinem Geldbeutel die passende Software verwenden und beide Seiten – Lizenznehmer und -geber – sind zufrieden.

Somit müssen die Schutzprogramme verschiedene Schutzmechanismen anbieten:

  • Schutz geistigen Eigentums (IP Protection): Durch automatischen Schutz wird der Binärcode verschlüsselt und so durch Reverse Engineering Tools nicht mehr analysierbar. Integrierte Methoden zur Erkennung von Analyse-Zugriffen zur Laufzeit sorgen dafür, dass dieser Schutz nicht ausgehebelt werden kann.
  • Integritätsschutz: Überprüfungen beim Start und zur Laufzeit stellen fest, ob der Code vor oder während der Ausführung manipuliert wurde und beenden gegebenenfalls sofort die Ausführung. Änderungen am ausführbaren Programm, beispielsweise zum Einbau eigener Lauschfunktionen oder zur Deaktivierung von Sicherheitsfunktionen, werden somit rechtzeitig erkannt.
  • Erhöhte Sicherheit für Module: Zusätzliche Verschlüsselung von einzelnen Methoden ermöglicht es, das dort eingebettete Wissen besonders sicher zu verwahren und es für Angreifer ohne passende Schlüssel unmöglich zu machen, dieses Wissen abzugreifen. Auch bei vorhandenem Schlüssel sind die Inhalte nur kurzzeitig im Speicher entschlüsselt verfügbar.
  • Individuelle Lizenzmodelle: Für den Einsatz einer eigenen Tarifierung bei Pay-per-Use, zum Verwenden von in der Lizenz abgelegten Informationen oder um individuellen Schutz einzubauen, besteht die Möglichkeit eines Zugriffs über API. Damit können außerdem alle Wünsche erfüllt werden, die durch die automatischen Mechanismen nicht abgedeckt werden.
  • Autorisierung von Software: Das Ausführen von Software nur auf den Systemen, die dafür autorisiert wurden, ist eine wichtige Anforderung hauptsächlich im Bereich von Steuerungen und anderen -Embedded-Systemen.

Unterschiede

Unterschiedliche Programmtypen benötigen unterschiedliche Arten der Implementierung der verschiedenen Schutzmechanismen. Daher stehen unter dem Namen „AxProtector“ verschiedene Werkzeuge für die unterschiedlichen Programmtypen auf dem PC zur Verfügung. Der Schutz von Embedded-Systemen wird als „ExProtector“ bezeichnet und wurde ausführlich in der letzten KEYnote-Ausgabe vorgestellt (Nr. 27, Seite 8).

Native Applikationen

Native Applikationen, geschrieben zum Beispiel in C++, Delphi oder Cocoa, werden vom AxProtector auf und für Windows, Mac OS X und Linux geschützt. Der Binärcode wird hierbei durch den AxProtector in großen Teilen verschlüsselt, Sprünge werden umgebogen oder ersetzt, Sicherheits- und Bibliotheksfunktionen hinzugefügt. Die daraus entstehende ausführbare Datei oder Bibliothek ist damit für Angreifer unbrauchbar und nur mit passender Lizenz verwendbar.

Durch zusätzliche, individuell festgelegte Verschlüsselungen einzelner Funktionen, die vor der Verwendung zwingend per API-Aufruf entschlüsselt werden müssen, wird die Sicherheit deutlich erhöht. Diese als „IxProtector“ bezeichnete Funktionalität ermöglicht auch den Einbau von Fallen, die eine wichtige Waffe zum Schutz vor Angreifern sind. 

.NET-Assembly

.NET-Applikationen bestehen aus vorübersetztem Code und sind daher besonders einfach zu dekompilieren. Der „AxProtector .NET“ extrahiert den Inhalt aller zu verschlüsselnden Methoden und legt diesen verschlüsselt im Datenbereich ab. Zur Laufzeit werden diese Inhalte dann bei Bedarf automatisch entschlüsselt und dynamisch zur Verfügung gestellt. Das verschlüsselte .NET-Assembly ist weiterhin gültiger .NET-Code, enthält aber eigentlich nur Rümpfe. Gepaart mit der integrierten Obfuskierung von privaten und internen Methoden geben selbst diese Reste nur noch sehr wenige Hinweise auf Funktionalitäten.

Java

Ähnlich ist es bei Java. Der kompilierte Code lässt sich mit den zahlreich vorhandenen Tools wieder zurückübersetzen. Besondere Herausforderungen sind hier die eingebauten Debug-Schnittstellen und die Möglichkeit, die Java Virtual Machine selbst neu zu bauen. Der „AxProtector Java“ kann die angegebenen Klassen verschlüsseln. Zur Laufzeit werden diese Klassen in nativem Code wieder entschlüsselt und direkt der Java Virtual Machine zur Verfügung gestellt.

Insbesondere im Umfeld von Applikationsservern wie GlassFish oder WebSphere ist es heutzutage notwendig, Klassen in Teilen vorab auszulesen, damit die vorhandenen Optimierungsmöglichkeiten funktionieren können. Mit dem IxProtector ist es daher möglich, die Klasse selbst unverschlüsselt zu lassen, innerhalb der Klasse aber eine, mehrere oder alle Methoden doch zu verschlüsseln. Über Annotationen werden diese Konfigurationen im Quellcode vorgenommen. Die Entschlüsselung zur Laufzeit erfolgt dann automatisch.

Und mehr …

Die AxProtectoren für die verschiedenen Programmtypen bieten zahlreiche nützliche Zusatzoptionen an. Das automatische Sperren der Lizenz im Angriffsfall, die individuelle Steuerung und Weiterbearbeitung von Lizenzierungsanfragen über eine Dll-Schnittstelle, die Kombination von Dongle-basierten und rechnergebundenen Lizenzen, automatische Zeitaktualisierung sowie viele weitere Optionen ermöglichen eine maßgeschneiderte Anpassung für die unterschiedlichen Bedürfnisse.

Eine einheitliche Oberfläche für die verschiedenen AxProtectoren ermöglicht unter Windows ein komfortables Arbeiten. Mit dieser Oberfläche versieht man seine Applikation ohne weitere Vorkenntnisse innerhalb von wenigen Minuten mit einem hohen Schutz vor Raubkopien, bewahrt sein geistiges Eigentum und sichert sich gegen Manipulationen ab.

Sicherheit

Die Kombination der verschiedenen Schutzmechanismen und das perfekte Zusammenspiel dieser verschiedenen Maßnahmen ermöglichen sofort einen sehr hohen Schutzgrad, der optional durch individuelle Erweiterungen noch weiter optimiert werden kann. Der Einsatz dieser Schutztechnologien sorgt für die konforme Verwendung von Lizenzen und sichert vorhandene Wettbewerbsvorteile.