25.08.2022 – Kategorie: Hardware & IT

Python-Lösungen automatisch verschlüsseln

Quelle: Serhii Yakovliev/iStock

Python ist aktuell die beliebteste Programmiersprache – sowohl bei Lösungsentwicklern als auch bei jenen, die versuchen, die Systeme anzugreifen oder auszunutzen. Wie Anbieter ihren Python-Code ohne großen Aufwand schützen können, zeigt dieser Bericht.

Einfache Syntax, übersichtlich und flexibel, das sind die besonderen Eigenschaften der Programmiersprache Python, die sie auch bei Entwicklern von künstliche Intelligenz (KI) und Machine Learning (ML) beliebt machen. Doch auch industrielle Fertigung, Bildung, Finanz- und Gesundheitswesen oder der juristische Bereich liefert Anwendungsfelder. Das zeigt sich auch im „Tiobe-Index“, der die Beliebtheit der Programmiersprachen wiederspiegelt: Im Januar 2022 ist Python auf den ersten Platz geklettert – im Vorjahr hatte die Programmiersprache noch den dritten Platz inne.

Mit wachsender Beliebtheit befassen sich jedoch nicht nur Entwickler von Systemen mit Python, sondern auch deren Angreifer. Sie suchen nach Schwachstellen, um die Innovationen anderer Hersteller zu kopieren oder in anderer Weise zu profitieren – und zwar mit möglichst geringem Aufwand. Und das ist bei Python gegeben, denn die Programme liegen in der Regel offen und lesbar im Quelltext vor, sodass Angreifer sie leicht analysieren, kopieren oder manipulieren können, um sie mittels Reverse Engineering nachzubauen oder um Schadfunktionen zur Sabotage oder Spionage einzubauen.

Geistiges Eigentum schützen

Entsprechendes Gegenmittel liefert beispielweise die das Karlsruher Unternehmens Wibu-Systems mit der CodeMeter-Technologie: Damit können Hersteller Software und somit ihr geistiges Eigentum sowohl schützen (Know-how-Schutz) als auch lizenzieren (Monetarisierung). Flexible und feingranulare Lizenzierung ermöglicht dabei Herstellern, automatisiert ablaufende zeit-, nutzungs- oder funktionsbasierte Lizenzmodelle für Einzelplätze und innerhalb eines Netzwerks (Floating-Lizenzen) anzubieten und so die spezifischen Anforderungen unterschiedlicher Märkte und Regionen zu erfüllen.

Um Softwareherstellern die Möglichkeit zu bieten, auch ihre in Python geschriebenen Anwendungen zu schützen und zu lizenzieren, hat Wibu-Systems seine CodeMeter-Lösung zum Schutz von klassischer Software und Software im industriellen Bereich entsprechend erweitert. Ohne selbst den Quellcode anpassen zu müssen, können Hersteller mit dem Tool „AxProtector Python“ ihre Python-Anwendungen automatisch verschlüsseln. Ohne dieses Tool wären dazu Zusatzschritte nötig, die nun entfallen können, so sich der Hersteller für diese Variante entscheidet. Damit ergänzt das Werkzeug die CodeMeter Protection Suite, die Varianten für weitere gängige Programmiersprachen bereitstellt.

Der Anwender bekommt vom Hersteller die geschützte Software und den oder die dazugehörigen Lizenzschlüssel, von denen er jederzeit weitere nachkaufen kann. Die Berechtigungen des Anwenders werden im Lizenzschlüssel gespeichert. Dafür gibt es als sichere Speichermedien die Schutzhardware CmDongle, die softwarebasierte Aktivierungsdatei CmActLicense oder den CmCloudContainer für den Einsatz in der Cloud.

Mehrere Schritte entfallen

Bevor es das Tool AxProtector Python gab, waren mehrere Schritte notwendig, um Python-Programme zu schützen: zuerst galt es, die Vorkompilierung mittels Cython-Compiler in ein ausführbares Programm durchzuführen, um danach die Verschlüsselung mittels AxProtector, beispielsweise für Windows, vorzunehmen. Wählt der Hersteller diesen Weg, muss er für jede einzelne Plattform die jeweils zugehörige ausführbare Datei erzeugen und ausliefern – ein vergleichsweise aufwendiger Vorgang.

Um das neue Tool zu nutzen, sind mindestens Python 3 und CodeMeter 7.30 erforderlich. Dann verschlüsselt es Python-Programme direkt und ohne aufwendige Vorkompilierung – es entsteht also kein nativer Code. Das bringt Plattformunabhängigkeit: Anders als beim Weg über Cython erhält der Hersteller nur eine einzige geschützte Anwendung, die auf allen gängigen Plattformen wie Windows, Linux und macOS lauffähig ist. Wie gewohnt kann er alle CodeMeter-Funktionen auf hohem Schutzniveau nutzen. Während der Laufzeit wird, immer nur der jeweils benötigte Teil des Python-Codes entschlüsselt, sodass ein Großteil der Software verschlüsselt bleibt. Es gibt auch die Möglichkeit, einzelne Funktionen der Python-Anwendung separat zu verschlüsseln, damit der Hersteller den Funktionsumfang der Anwendungen kundenspezifisch zuschneiden kann. Alternativ kann er durch Annotationen im Programmcode oder Einträge in der Schutzdefinition gewisse Funktionen und Dateien von der Verschlüsselung ausschließen, beispielsweise für Trial-Versionen. Da der Schritt der Vorkompilierung entfällt, ist der Schutz mit AxProtector Python deutlich einfacher als der aufwendige Weg über den Cython-Compiler.

Bei einer gängigen Methode wird der Code mit Cython-Compiler in eine native Python-Anwendung für eine vorgegebene Umgebung umgewandelt.
Ebenfalls gängig: AxProtector Native schützt eine zuvor kompilierte
Python-Anwendung für eine bestimmte Umgebung.
Neue Methode: AxProtector Python verschlüsselt direkt die Python-
Anwendung – das Ergebnis ist plattformunabhängig. Bilder: Wibu-Systems

Verschlüsselungs-Ablauf

Die bereits erwähnte CodeMeter Protection Suite umfasst verschiedenen Verschlüsselungstools, mit denen der Hersteller seine Software ganz oder teilweise verschlüsseln kann. Er wählt die zu seiner verwendeten Programmiersprache beziehungsweise dem Ziel-Betriebssystem passende AxProtector-Variante, um in der jeweiligen Basisfunktion seine Anwendung zu schützen. Unterstützt wird Python, Windows, Linux, macOS, Java, JavaScript, .NET, Android und CmE für Embedded-Software. Ergänzend zur Basisversion kann der Hersteller „Modular Licensing“, „IP Protection“, „CodeMoving“ oder „File Encryption“ einsetzen. Modular Licensing bedeutet, dass einzelne Methoden individuell lizenziert werden. Beim IP Protection-Modus wird der Schlüssel zur Entschlüsselung sicher in der Anwendung versteckt und die Verschlüsselung ist nicht an eine CodeMeter-Lizenz gebunden, interessant beispielsweise für Freemium-Lizenzmodelle. CodeMoving sorgt durch Ausführung des Maschinencodes in Dongle-Hardware oder in einem Cloud-Container für ein höheres Schutzniveau. Mit File Encryption kann der Hersteller beliebige Daten schützen.

Fazit

Mit der zunehmenden Verbreitung von KI- und ML-Anwendungen wird auch Python als gerne genutzte Programmiersprache in diesen und anderen Bereichen weiter wachsen. Da Python-Code jedoch für jedermann leicht einsehbar und manipulierbar vorliegt, ist er besonders schutzbedürftig. Mit einer flexiblen und viele Programmiersprachen sowie Betriebssysteme unterstützenden Schutz- und Lizenzierungslösung lassen sich Python-Anwendungen wirksam vor Angreifern und damit vor Know-how-Verlust und Lizenzmissbrauch schützen.

Die Autorin Elke Spiegelhalter ist PR-Managerin bei der Wibu-Systems AG in Karlsruhe.


Teilen Sie die Meldung „Python-Lösungen automatisch verschlüsseln“ mit Ihren Kontakten:


Scroll to Top