KEYnote 38 Deutsch - Ausgabe Herbst 2019 | Page 9

Bei CodeMeter gibt es eine zentrale Daten- bank beim ISV. Dieser hat ein Interesse, seine Lizenzen zu kontrollieren. Er erstellt eine Lizenz für einen Anwender. Diese enthält die Berechtigung (einen kryptographischen Schlüssel) für genau diesen Anwender in einer automatisch von CodeMeter verschlüsselten Form. Dieser Schlüssel kann nur von diesem Anwender entschlüsselt und verwendet werden. Zum Schutz gegen Manipulation ist die Lizenz unterschrieben. Man könnte hier von einem Miniblock analog zur Blockchain sprechen, allerdings mit minimaler Größe. Konsensprotokoll ist in diesem Fall: „Der ISV hat immer Recht.“ CodeMeter : Blockchain 1:0 Blockchain für Softwareschutz? Um die Lizenzierung durchzusetzen, muss die Software die Lizenz sicher überprüfen. Die beste Methode ist hier der Einsatz von Ver- schlüsselung. Die Software oder digitale Inhalte werden verschlüsselt. Nur der Anwender, der die entsprechende Lizenz besitzt, darf auf den passenden Schlüssel zugreifen und diesen ver- wenden. Die Verwendung soll nach Möglichkeit in einer geschützten Umgebung, zum Beispiel in einem Dongle, einem Systemdienst oder der Cloud, stattfinden. Der Anwender soll keinen direkten Zugriff auf den Schlüssel erhalten. CodeMeter bietet genau diese Mechanismen und die Werkzeuge für die Verschlüsselung von Software und digitalen Inhalten standard- mäßig an. CodeMeter : Blockchain 2:0 Eindeutige Identifizierung Ein weiterer wichtiger Punkt für Lizenzierung und Softwareschutz ist die Identifizierung der berechtigten Person, die eine Lizenz verwenden darf. Bei CodeMeter erfolgt dies über einen CmDongle, einen Account in der CodeMeter Cloud oder eine an einen Rechner gebundene CmActLicense. Nur wenn die benötigte Lizenz in einem dieser drei Container verfügbar ist, kann die Software gestartet werden. CodeMeter : Blockchain 3:0 License Usage Tracking Ein interessanter Anwendungsfall ist die Nutzungszählung einer Software oder eines digitalen Rechts beim Anwender. Hierbei kann der ISV ein Nutzungsrecht vergeben und hinterher die tatsächliche Nutzung durch den Anwender, zum Beispiel die Anzahl der Aus- drucke eines 3D-Bauteils, abrechnen. Dass die Vergabe der Berechtigung ein Anwen- dungsfall für CodeMeter ist, haben wir bereits oben im Gedankenexperiment beobachtet. Was ist mit der Gegenrichtung? Der Anwen- der meldet den Verbrauch in die Blockchain. Lassen Sie uns auch hier ein Gedankenexperi- ment machen. tragungswege stehen eine verschlüsselte Update-Datei und ein Dongle zur Verfügung. Ein Rückkanal ist nur für Post-Paid-Modelle erforderlich und kann ebenfalls per Datei-Aus- tausch erfolgen. Dies wirft zwei bedeutende Fragen auf: Lizenzen ausleihen und übertragen Wie stellt man sicher, dass der Anwender die Transaktion auch in die Blockchain einstellt?“ Hier muss durch geeignete Maßnahmen sichergestellt werden, dass der Anwender die Software oder die Inhalte nur nutzen kann, wenn er diese auch abrechnet. Bei CodeMeter sind Schutz und Abrechnung durch Krypto- graphie miteinander untrennbar verbunden. Was ist, wenn der Anwender nicht online ist?“ In diesem Fall kann die Transaktion nicht über- mittelt und abgerechnet werden. Verhindert man dann die Benutzung der Software (und riskiert verärgerte Anwender) oder verzichtet man als ISV auf den Umsatz? Pest oder Cholera scheint die Frage hier. Eine Option ist das Schreiben einer lokalen Blockchain und das zeit- verzögerte Reporting. Da diese Blockchain aber noch nicht durch weitere Blöcke abgesichert ist, können die letzten Blöcke entfernt werden, ohne dass diese Manipulation sichtbar wäre. CodeMeter bietet für das License Tracking zwei Optionen. Über einen fälschungssicheren Zähler in der Lizenz kann die Benutzung nachvollzogen werden. Dieser Zähler kann offline verwendet werden und später zurück an den ISV gemeldet werden. Im Falle von Pre-Paid-Transaktionen ist die Rückmeldung noch nicht einmal erforderlich. Die zweite Option ist eine Log-Datei, welche von CodeMeter mit blockchain-ähnlichen Methoden erstellt und abgesichert wird. CodeMeter : Blockchain 4:0 Offline arbeiten Ein wesentlicher Punkt bei der Blockchain ist die aktuelle und duplizierte Datenbasis bei allen Teilnehmern. Dies erfordert eine On- line-Verbindung. In vielen produktionsnahen Umgebungen ist dies ein KO-Kriterium. CodeMeter bietet die Möglichkeit, Lizenzen offline zu übertragen und zu nutzen. Als Über- CodeMeter : Blockchain 5:0 Lassen Sie uns als letztes den Anwendungsfall einer Lizenzausleihe betrachten. Eine Lizenz soll dabei von einem Lizenzserver auf ein lokales Gerät übertragen werden. Dort soll sie dann ohne Verbindung zum Lizenzserver nutzbar sein. Nach einer gewissen Frist soll die Lizenz wieder auf den Server zurückfallen. Hierbei verwendet CodeMeter Miniblöcke, die übertragen werden: Der ISV erstellt eine Lizenz mit einem definierten Umfang. Diese Lizenz wird auf dem Lizenzserver beim Anwender aktiviert. Falls der ISV die Möglichkeit des Ausleihens erlaubt hat, bietet CodeMeter ein Protokoll, bei dem dieser Block auf einen anderen Rechner, genaugenommen in einen sicheren CmContainer, übertragen werden kann. Der neue Block wird vom Lizenzserver unterschrie- ben und für den Zielcontainer verschlüsselt. Auf dem Lizenzserver wird eine Historie der Ausleihe gespeichert, damit die Lizenz nach Ablauf der Leihe automatisch zurückfallen kann. Bei einer Rückübertragung wird der Block ungültig gemacht. Im Gegensatz zur Blockchain werden die Lizenz- blöcke bei CodeMeter wieder verkleinert und die Historie kann nach Rückgabe gelöscht werden. Dies stellt sicher, dass Datenmenge und Performance nachhaltig optimal bleiben und die Lösung skaliert. CodeMeter : Blockchain 6:0 Fazit CodeMeter wurde speziell auf die Anfor- derungen im Bereich Softwareschutz und Lizenzierung zugeschnitten. Eine zentrale Stelle beim Hersteller erstellt und verwaltet die Lizenzen. Datenmengen beim Anwender sind auf ein Minimum beschränkt. Eine Offline-Übertragung und Offline-Nutzung ist möglich. Lizenzierung und Schutz sind dabei untrennbar an kryptographische Verfahren gebunden. Blockchain-ähnliche Methoden werden an den Stellen verwendet, an denen sie sinnvoll einsetzbar sind. 9