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