Wibu-Systems
Schutz für geistiges Eigentum
Im industriellen Umfeld entsteht umfangreicher Daten-Input aus den unterschiedlichsten Quellen, der oft mit Hilfe von Anwendungen mit Künstlicher Intelligenz verarbeitet wird. Wie lassen sich die guten Ideen hinter diesem Prozess wirksam schützen?
Arbeiten Maschinen, Anlagen, Roboter und Menschen im industriellen Umfeld, sorgen verschiedene Quellen für umfangreichen Daten-Input. Dieser wird oft mit Hilfe von Anwendungen mit Künstlicher Intelligenz (KI) verarbeitet. Zudem können Maschinen – Stichwort Machine Learning (ML) – anhand dieser Daten lernen und ihren Algorithmus dadurch selbst optimieren. So wird beispielsweise über Kameras die Qualität eines Produkts geprüft und mittels KI sowie ML lassen sich Abweichungen präzise und schnell entdecken. Um die Ideen der Entwickler hinter diesem Prozess zu schützen, benötigen Hersteller von Anwendungen für KI und ML, die oft mit der Programmiersprache Python geschrieben sind, einen wirkungsvollen technischen Schutz.
Die Beliebtheit der unterschiedlichen Programmiersprachen hat der Analyst Slash Data in einer Umfrage ‚State of the developer nation‘ untersucht. Im ersten Quartal 2021 wurden dazu über 19.000 Entwickler befragt. Eines der Ergebnisse: Am zweithäufigsten arbeiten die Software-Entwickler mit Python, wobei die Haupteinsatzzwecke Data Science, Machine Learning und Anwendungen für IoT sind.
Angriff auf die Programmiersprache
Aufgrund der wachsenden Bedeutung von KI und ML werden Angreifer verstärkt versuchen, an die guten Ideen der Hersteller zu gelangen und mit geringem Aufwand davon zu profitieren. Typischerweise liegt in Python ein Angriffspunkt, da der Python-Quellcode als einfache Text-Datei ausgeliefert wird und im Klartext gelesen werden kann, was bei Skriptsprachen üblich ist. So können Anwender – absichtlich oder unabsichtlich – den Quellcode ändern, manipulieren, kopieren und die Idee dahinter, beispielsweise einen KI-Lernalgorithmus, analysieren und unberechtigt nutzen (Reverse Engineering).
Wibu-Systems kennt als Schutz- und Lizenzierungsexperte die Bedeutung der Programmiersprache Python für Hersteller von KI- und ML-Anwendungen. Aus diesem Grund hat das Unternehmen die Verschlüsselungsmöglichkeit ‚AxProtector Python‘ auf den Markt gebracht.
Die ‚CodeMeter‘-Technologie des Anbieters konnte bereits Python-Software über Vorkompilierung der EXE-Dateien mittels Cython-Compiler schützen. Neu ist nun die direkte und automatische Verschlüsselung der Python-Software über ‚AxProtector Python‘, was die vorhandenen Tools der CodeMeter Protection Suite erweitert.
Das Grundprinzip aller CodeMeter-Tools ist: Zuerst verschlüsseln die Hersteller ihre Software und danach liefern sie den passenden Lizenzschlüssel an die Anwender. Anschließend können die Anwender die verschlüsselte Software den Berechtigungen gemäß nutzen. Als Träger der Lizenzschlüssel dienen die Schutzhardware ‚CmDongle‘, die softwarebasierte Aktivierungsdatei ‚CmActLicense‘ oder der ‚CmCloudContainer‘, der in der Cloud liegt.
Über Vorkompilierung zur geschützten Software
Der klassische Weg besteht aus zwei Schritten: Vorkompilierung und Verschlüsselung. Über den Cython-Compiler wird die Python-Software in eine ausführbare, in C geschriebene Datei (EXE) umgewandelt, damit dann diese ausführbare Datei über das Standardtool ‚AxProtector‘ verschlüsselt wird. So können Hersteller ihr geistiges Eigentum, das in der Software steckt, verschlüsseln und auch lizenzieren und somit unter dem Stichwort ‚Softwaremonetarisierung‘ zusätzlichen Umsatz generieren. Hersteller können automatisiert verschiedene Lizenzmodelle umsetzen – beispielsweise Einzelplatzlizenz, Floating-Lizenz innerhalb eines Netzwerkes oder ein zeitbasiertes Modell. Für die Python-Software wichtige Daten lassen sich über das CodeMeter Core API ebenfalls verschlüsseln sowie signieren. Bei diesem Weg muss der Hersteller für jede einzelne Plattform je eine dafür bestimmte ausführbare Datei erzeugen und ausliefern, was technische Kenntnisse voraussetzt.
Direkte Verschlüsselung
Die Mindestvoraussetzungen zum Einsatz von ‚AxProtector Python‘ sind ‚Python 3‘ und ‚CodeMeter 7.30‘. Das Tool verschlüsselt direkt, ohne die Umwandlung durch ‚Cython‘, und es wird kein nativer Code erzeugt. Da die Python-Software nur einmal verschlüsselt wird, gibt es nur eine einzige ausführbare Datei, die auf den verschiedenen Plattformen Windows, Linux oder macOS läuft. Nur der gerade benötigte Teil wird zur Laufzeit in den Hauptspeicher geladen und dann entschlüsselt, sodass der große Teil der Software immer noch verschlüsselt bleibt. Jede Funktion der ‚Python‘-Software wird einzeln verschlüsselt, sodass Hersteller modulare Lizenzen erzeugen können. Anwender bekommen nur die Lizenzschlüssel für das, was sie gekauft haben. Auch spätere Käufe werden auf diese Weise behandelt.
Will der Hersteller Funktionen und Dateien unverschlüsselt lassen, kann er Annotationen setzen sowie dies über Einträge in der Schutzdefinition steuern. Die Integration des Schutzes ist mit ‚AxProtector Python‘ viel einfacher, da der Schritt der Vorkompilierung entfällt.
Unterschiedliche Verschlüsselungstools
Ähnlich einem Werkzeugkasten können Hersteller verschiedene Verschlüsselungstools nutzen, um die komplette Software oder nur bestimmte Teile zu verschlüsseln. Zur Auswahl stehen verschiedene ‚AxProtector‘-Varianten, die für unterschiedliche Programmiersprachen optimiert sind und für den automatischen Schutz einer ausführbaren Datei sorgen, ‚IxProtector‘ zur Verschlüsselung einzelner Funktionen und ‚IP Protection‘, um Software vor Reverse Engineering zu schützen, jedoch werden keine Lizenzschlüssel benötigt. ‚AxProtector Python‘ ergänzt die vorhandenen Varianten: den Standard-‚AxProtector‘, ‚AxProtector Java‘, ‚AxProtector .NET‘ und ‚AxProtector CmE‘ für Embedded-Software.
















