Kategorien: Software-Schutz Software-Lizenzierung
IP Protection für Software ohne Lizenzierung
CodeMeter Protection Suite IP Protection ist die Schutzlösung für Testversionen, Demosoftware und Freemium-Geschäftsmodelle. Sie ermöglicht eine kostenlose Basisversion und Erweiterungen über In-App-Käufe. Gleichzeitig wird die Nutzung von IP Protection mit der CodeMeter Protection Suite vereinfacht, sowohl für CodeMeter Runtime als auch CodeMeter Embedded.
Die Erweiterung der CodeMeter Protection Suite um die Funktion IP Protection vereinfacht das Zusammenspiel von Softwareschutz und Lizenzierung. IP Protection unterstützt aktuell die Betriebssysteme Windows, Linux, macOS und Android. Als Prozessoren werden x86 und ARM unterstützt. Es können ausführbare Dateien, sowohl Anwendungen (Executables) als auch Bibliotheken (Dynamic Link Libraries, Shared Objects und Dylibs), verschlüsselt werden.
Eine Suite – Viele Werkzeuge
Die CodeMeter Protection Suite besteht aus mehreren Werkzeugen. Mit dem AxProtector wird eine ausführbare Datei komplett verschlüsselt. Über die der verschlüsselten Datei angefügte AxEngine wird die Datei nach dem Laden im Hauptspeicher entschlüsselt. Die geschützte Datei liegt dabei nie im unverschlüsselten Zustand auf der Festplatte. Ein Reverse Engineering dieser Datei ist somit nicht möglich. Der IxProtector verschlüsselt einzelne Funktionen innerhalb einer ausführbaren Datei. Diese sind auch nach dem Laden in den Speicher weiterhin verschlüsselt. Die Entschlüsselung erfolgt wahlweise automatisch beim Aufruf der Funktion oder über einen API-Aufruf aus der geschützten Software. Damit ist die Anwendung nicht nur gegen Reverse Engineering auf der Festplatte geschützt, sondern auch gegen die Analyse eines Memory Dumps. Der AxProtector und der IxProtector unterstützen sowohl die Verschlüsselung mit einer auf CodeMeter basierten Lizenz als auch den IP Protection-Modus. AxProtector, IxProtector, CodeMeter Lizenz und IP-Protection-Modus können dabei beliebig gemischt werden. Der IP-Protection-Modus für AxProtector .NET ist ab CodeMeter Protection Suite 10.50 ebenfalls verfügbar.
Keine Laufzeitkomponenten benötigt
Im IP-Protection-Modus benötigt die geschützte Anwendung keine Laufzeitkomponenten von CodeMeter, also weder CodeMeter Runtime noch CodeMeter Embedded, und keine Lizenz auf der Seite des Anwenders. Der Schlüssel für die Entschlüsselung der Anwendung ist in der Anwendung selbst versteckt und verschlüsselt hinterlegt, um diesen gegen eine Extraktion aus einem Memory Dump zu schützen. Die Einsatzgebiete des IP-Protection-Modus reichen von Firmware auf Embedded Devices über Büro-Software auf PCs bis zu Anwendungen auf Servern und in der Cloud.
CodeMeter Protection Suite IP Protection verhindert Reverse Engineering, aber nicht das Kopieren der Anwendung, deckt also genau die Anwendungsfälle von frei erhältlichen Testversionen oder Freemium-Modellen ab. Dank der ohne Lizenz funktionierenden Verschlüsselung sind diese Anwendungen praktisch self-contained. Daher ist diese Art des Schutzes auch sehr einfach anzuwenden.
Anwendungsfall Freemium im 3D Druck
Ein einfaches Beispiel ist eine Software für die Aufbereitung von 3D-Druckdaten. Sie wird in vollem Funktionsumfang ausgeliefert, ist aber künstlich auf eine maximale Druckgröße von 20 mm3 beschränkt. Der Anwender kann diese Software problemlos herunterladen, komplett testen, kopieren und auch kleine Objekte drucken. Da das Programm jedoch verschlüsselt vorliegt, ist es nicht möglich, die Limitierung herauszupatchen, um ohne Bezahlung zu einer Vollversion zu kommen. Erst wenn der Anwender die Software kauft, entweder auf dem herkömmlichen Weg oder als „In-App-Kauf“ aus dem Programm heraus gesteuert, kann er die volle Funktionalität verwenden. Dann kommen die CodeMeter Runtime oder CodeMeter Embedded ins Spiel. Der Anwender erhält eine entsprechende Lizenz, die in einem CmDongle, einer rechnergebundenen CmActLicense oder einem benutzergebundenen CmCloudContainer gespeichert wird. An der Stelle in der Software, an der das künstliche Volumenlimit (oder bei anderen Programmen vielleicht auch das Abschalten der Speicherfunktion, der Druckausgabe oder anderer wichtiger Exportfunktionen) gesetzt ist, wird dieses jetzt von der Lizenz im CmContainer aufgehoben. Dies geschieht durch das CodeMeter Core API, über das der Softwareentwickler einfach die Funktionen des CodeMeter-Lizenzsystems ansteuern kann und neben der Lizenzabfrage auch Funktionen wie zeit- oder volumenbasierte Lizenzfunktionen sowie die Belegung von Netzwerklizenzen ansprechen kann. Auch das Übertragen der Lizenzen in den CmContainer kann der Softwareentwickler über das API integrieren. So kann automatisch eine Lizenz aus der CodeMeter License Central abgerufen und übertragen werden, sobald diese z.B. in einem Onlineshop über einen In-App-Kauf erworben wurde.
Kombination mit vorhandener Lizenzierungslösung
Ein weiterer Anwendungsfall ist das Vermischen einer schon vorhandenen Lizenzierungslösung mit dem sicheren IP-Schutz von CodeMeter. Ein Softwarehersteller nutzt beispielsweise eine selbst entwickelte Lizenzierungslösung. Das Binary liegt jedoch weiterhin in unverschlüsselter Form bei seinen Anwendern vor und ist anfällig für Lizenzmanipulation und Reverse Engineering. Es ist bei Lösungen, die das Programm am Ende nicht verschlüsseln und eine Signatur prüfen, generell relativ einfach, die Lizenzierungsfunktionen „herauszupatchen“ – also den Code so zu verändern, dass die Lizenzabfrage nicht durchgeführt wird oder einfach mit einem Standardwert arbeitet. Das Lizenzierungssystem ist dann gebrochen, da es quasi nutzlos ist. Selbstverständlich arbeitet CodeMeter Protection Suite IP Protection auch mit anderen rein softwarebasierten, kommerziellen Schutzsystemen zusammen und kann die Hürde für das Brechen der Verfahren oder auch für das Reverse Engineering signifikant höher legen. Dies wird häufig in einer Übergangsphase bei der Migration zu CodeMeter eingesetzt, wenn die alte Lizenzierung noch für eine begrenzte Zeit unterstützt werden soll.
Kontinuierliche Weiterentwicklung und Verbesserung
Wer CodeMeter kennt, kennt vermutlich auch die Protection Only License. Diese funktioniert ähnlich wie CodeMeter Protection Suite IP Protection, erfordert aber immer eine mit Admin-Rechten installierte CodeMeter Runtime. Gerade für Testversionen und Freemium-Modelle war dies öfter eine Hürde für den Anwender im B2B-Umfeld.
Bei CodeMeter Embedded konnte eine Kombination von CodeMeter Core API und CodeMeter Protection Suite zu Versionskonflikten führen. Mit dem IP-Protection-Modus werden solche Konflikte von vornherein vermieden. Für High-Security-Anwendungsfälle, bei denen die Lizenz in einem CmDongle gespeichert wird, ist es auch weiterhin möglich, CodeMeter Core API in Kombination mit CodeMeter Protection Suite mit einer lizenzgebundenen Verschlüsselung zu verwenden.
CodeMeter Protection Suite IP Protection vereinfacht somit die Anwendung von Softwareschutz und ermöglicht eine einfache Umsetzung neuer Geschäftsmodelle für Softwareentwickler und Anwender. Es ist von Anfang an plattformübergreifend für PCs und Embedded-Systeme konzipiert und skaliert mit den Möglichkeiten des CodeMeter Core API und wachsenden Anforderungen des Softwareherstellers. Wie gewohnt greifen alle CodeMeter-Bestandteile ineinander und sind zueinander kompatibel, so dass keine Insellösungen entstehen.
KEYnote 38 – Herbstausgabe 2019