Kategorien: Software-Schutz
Automatischer Schutz für Ihre Software
CodeMeter Protection Suite hat Zuwachs bekommen. Mit AxProtector .NET Standard steht ein neues Mitglied in der Protection Suit für .NET Standard 2.0 Anwendungen zur Verfügung. Auch die anderen Bestandteile entwickeln sich kontinuierlich weiter. So ist zum Beispiel AxProtector .NET FIPS-kompatibel, die graphische Oberfläche wurde einem Facelifting unterzogen und AxProtector und IxProtector für native Anwendungen unterstützen das Ausführen von Code im CmDongle.
Übersicht
CodeMeter Protection Suite ist eine Sammlung von Werkzeugen, um Anwendungen und Bibliotheken automatisch zu verschlüsseln. Damit werden diese ausführbaren Dateien gegen Reverse Engineering geschützt und kryptographisch an das Vorhandensein einer Lizenz gebunden.
Die einzelnen Werkzeuge sind jeweils auf die entsprechenden Plattformen und Umgebungen zugeschnitten, um den bestmöglichen Schutz bei minimalem Aufwand für Sie als Hersteller zu erzielen. Bei allen Werkzeugen wählen Sie Firm Code und Product Code bzw. mehrere Kombinationen aus Firm Code und Product Code und verschlüsseln damit die bereits kompilierte Anwendung oder eine Bibliothek. Dabei wird ein Schlüssel verwendet, der von Firm Code und Product Code abhängig ist. Ohne passende Lizenz ist eine Entschlüsselung nicht möglich.
AxProtector und IxProtector
AxProtector schützt native Windows-, Linux- und macOS-Anwendungen und -Bibliotheken. Der ausführbare Code wird dabei komplett verschlüsselt. Beim Starten der Anwendung bzw. beim Laden der Bibliothek wird geprüft, ob die gewünschte Lizenz vorhanden ist. Ist sie es, wird der ausführbare Code komplett automatisch entschlüsselt. Danach läuft die Anwendung mit der gleichen Geschwindigkeit wie ohne automatischen Schutz.
Mit IxProtector können einzelne Funktionen markiert und separat verschlüsselt werden. Diese werden dann zur Laufzeit dynamisch entschlüsselt und ausgeführt. Je nach Einstellungen erfolgt dies automatisch beim Ausführen oder nach einem von Ihnen als Hersteller durchgeführten API-Aufruf. Besonders schützenswerter Code kann explizit verschlüsselt in den CmDongle verschoben und dort ausgeführt werden. Dieser ist dann vor den Augen des Angreifers verborgen.
AxProtector .NET
AxProtector .NET ist das Werkzeug aus CodeMeter Protection Suite, welches .NET Assemblies automatisch schützt. AxProtector .NET verschlüsselt den ausführbaren Code von .NET-Framework-Anwendungen auf Methodenebene. Jede Methode wird einzeln mit einem Stub-Code versehen, der beim ersten Aufruf der Methode die Lizenz prüft und den Code dann entschlüsselt. Dieses Vorgehen ist mit IxProtector für Unmanaged Code vergleichbar, wenn dort die automatische Entschlüsselung beim Aufruf der Methode gewählt wurde.
Dadurch wird automatisch, aber mit Auswirkungen auf die Performance, eine höhere Sicherheit erreicht. Mittels Fine Tuning können Sie als Hersteller eine Balance zwischen Performance und Paranoia finden.
In der aktuellen Version ist AxProtector kompatibel mit dem FIPS-Modus. Der FIPS-Modus ist eine Einstellung, die Ihr Anwender auf seinem PC aktivieren kann, um sicher zu stellen, dass nur FIPS-geprüfte Implementierungen von Kryptographie-Funktionen aus dem .NET Framework verwendet werden. Diese Einstellung wird häufig von nordamerikanischen Behörden verwendet; d.h. dieser Punkt ist vor allem dann interessant für Sie, wenn Ihre Anwender zu dieser Zielgruppe gehören.
AxProtector .NET Standard
Mit .NET Standard steht eine Spezifikation der .NET-APIs zur Verfügung, die eine Interoperabilität und Kompatibilität zwischen den verschiedenen .NET-Umgebungen vereinfacht. Damit können Entwickler ihre Anwendungen einfacher plattformunabhängig implementieren oder von einer Plattform auf eine andere migrieren.
Mit dem aktuellen Release ist eine zusätzliche Version – AxProtector .NET Standard – verfügbar, die auch .NET Standard 2.0 Anwendungen schützt, zum Beispiel .NET-Core-2.0-Anwendungen oder Mono-5.4-Anwendungen.
Das Schutzprinzip ist analog zu AxProtector .NET. Die zu schützende Anwendung wird ebenfalls auf Methodenebene analysiert und der Schutz durch Verschlüsselung der einzelnen Methoden implementiert. Nur wenn die passende Lizenz in einem CmContainer vorhanden ist, wird die Anwendung entschlüsselt und ausgeführt.
AxProtector Java
Beim Kompilieren von Java-Quellcode wird dieser zunächst in eine Zwischensprache, den so genannten Java Byte Code, übersetzt. Auf der jeweiligen Zielplattform kann dieser Code von der Java Virtual Machine (JVM) interpretiert und ausgeführt werden. Dieses Prinzip stellt die Plattformunabhängigkeit Javas sicher, allerdings birgt die Verwendung von Java Byte Code aus sicherheitstechnischer Sicht auch Gefahren.
Ähnlich wie bei .NET ist dieser Byte Code einfach zu dekompilieren und bietet einem potentiellen Angreifer ein einfaches Spiel beim Reverse Engineering. AxProtector Java verhindert dies, indem wie bei seinen Geschwistern auch hier der ausführbare Code verschlüsselt und an das Vorhandensein einer Lizenz gebunden wird. Die Verschlüsselung kann dabei wahlweise auf Klassen- oder Methodenebene erfolgen. Da der Code erst zur Laufzeit entschlüsselt wird, befindet er sich zu keiner Zeit unverschlüsselt auf der Festplatte.
Die Einführung von modularen JARs mit Java 9 führte zu einer Überarbeitung von AxProtector Java. Die aktuelle Version unterstützt sowohl klassische Java-Anwendungen, die mit Java 7 und 8 erstellt wurden, als auch modulare JARs, die mit Java 9 erstellt wurden.
AxProtector – Graphische Oberfläche
Alle AxProtectoren sind als Kommandozeilen-Werkzeug verfügbar. Damit entfalten sie die meiste Power und ermöglichen zum Beispiel die Integration in automatische Build-Prozesse im Rahmen von Continuous Integration und Continuous Delivery. Für das Kennenlernen der Funktionen und für den einfachen Einsatz auf dem Arbeitsplatz-Rechner des Entwicklers ist zusätzlich eine graphische Oberfläche verfügbar.
Diese Oberfläche wurde einem Facelifting unterworfen. Dies betrifft vor allem die Seite mit den Einstellungen der Lizenzierungssysteme. Vor der Einführung des Universal Firm Codes im Jahr 2016 hatten Softwarehersteller, die Softwarelizenzen und Dongle-Lizenzen mischen wollten, zwei Firm Codes: einen für CmActLicenses und einen für CmDongles. Durch die Einführung des Universal Firm Codes ist diese Unterscheidung nicht mehr notwendig, so dass jetzt nur noch eine einfache Seite mit nur einem Firm Code als Standardeinstellung angezeigt wird. Für Hersteller, die aus Kompatibilitätsgründen mehrere Firm Codes verwenden möchten, ist dies weiterhin möglich und nur einen Klick entfernt.
WibuKey-Kompatibilität
CodeMeter Protection Suite unterstützt natürlich alle CodeMeter-Lizenzierungssysteme: CmActLicenses und CmDongles. Aber CodeMeter Protection Suite unterstützt auch WibuKey, den Vorläufer von CodeMeter, der seit 1989 auf dem Markt ist. Dies versteht Wibu-Systems unter Langzeitverfügbarkeit und Kompatibilität.
Kontinuierliche Weiterentwicklung
Alle Bestandteile von CodeMeter Protection Suite werden kontinuierlich weiterentwickelt. Besonderes Augenmerk legen wir hierbei auf ständige Verbesserungen von Sicherheit und Performance. Neue Funktionen wie das Auslagern von ausführbaren Code in CmDongles oder das automatische Einfügen von Fallen sind hier nur zwei Beispiele. Für die Performance werden Caching-Mechanismen implementiert und verfeinert. Ein Gremium von Experten beurteilt regelmäßig die implementierten und geplanten Sicherheitsfeatures bezüglich Nutzen und Performance-Einbußen. Nur die besten und schnellsten Mechanismen finden einen Weg in CodeMeter Protection Suite.
KEYnote 36 – Herbstausgabe 2018