CodeMeter Blockchain

Kategorien: Software-Schutz

CodeMeter vs. Blockchain

Vor wenigen Wochen hat die deutsche Bundesregierung die „Blockchain-Strategie der Bundesregierung“ veröffentlicht. Noch ist unklar, ob sich diese Strategie in die Erfolgsgeschichte von neuem Personalausweis und Gesundheitskarte einreihen wird. Was aber heute schon klar ersichtlich ist: Blockchain ist ein Hype-Thema, das auch in der Politik angekommen ist. Daher verwundert es nicht, dass in letzter Zeit Softwarehersteller und Inhaber von digitalen Rechten, zum Beispiel für den 3D-Druck, die Frage nach der Blockchain stellen.

Verwendet CodeMeter die Blockchain?

CodeMeter ist ein millionenfach erprobtes DRM-System für Software und digitale Inhalte, welches seit 2004 in einer kompatiblen Version verfügbar ist. Obwohl schon 1991 die ersten Grundlagen für die kryptographische Absicherung von Blöcken erforscht wurden, ist der Einsatz von der Blockchain in der Praxis ein Phänomen der letzten Jahre. CodeMeter ist somit älter als die Blockchain, aber CodeMeter verwendet ähnliche kryptographische Verfahren und setzt an einigen Stellen auf Miniblöcke. Beide Technologien wurden parallel entwickelt und basieren auf gemeinsamen Grundlagen.

Was ist die Blockchain?

Bei der Blockchain liegen die Daten (alle Daten) nicht an einer zentralen Stelle wie einer Bank, sondern auf vielen Rechnern, die im Internet verteilt sind.

Teilnehmer können eine Transaktion in die Blockchain einstellen. Da bei allen Beteiligten die gleiche Blockchain erzeugt werden muss, gibt es ein Konsensprotokoll. Daten in der Blockchain können nachträglich nicht mehr verändert werden und gelten somit als fälschungssicher.

Daten in der Blockchain können von allen Teilnehmern eingesehen werden. Damit ist die Blockchain transparent. Allerdings ist es auch möglich, Daten zu verschlüsseln. Dies ist allerdings kein Standard.

Wie erhalten wir Konsens?

Ein weit verbreitetes Konsensprotokoll ist „Proof-of-Work“. Hierzu wird eine kryptographische Aufgabe gelöst, die eine entsprechende Zeit benötigt. Bei Bitcoin lösen die sogenannten „Miner“ diese Aufgabe. Nach der Lösung der Aufgabe wird der neue Block an die Blockchain angefügt. Falls es mehrere alternative Blockchains gibt, gewinnt die mit der längeren Kette. Ein Miner mit mehr als 50% der Rechenpower könnte die Blockchain also nachträglich manipulieren.

Das Lösen der kryptographischen Aufgabe ist eine rechenintensive Angelegenheit. Zumal viele Miner dies parallel, quasi „um die Wette“, machen und der erste, der die Lösung gefunden hat, den neuen Block anfügt. Aus Sicht von nachhaltigem Klimaschutz ist diese Art des Konsenses äußerst fragwürdig, werden hier doch Unmengen an Energie verschwendet.

Blockchain für Lizenzkontrolle?

Lassen Sie uns ein Gedankenexperiment machen und überlegen, wie ein Einsatz der Blockchain für die Lizenzierung aussehen könnte. In diesem Fall gibt es Wibu-Systems als Anbieter der Lösung, tausende Herausgeber (Independent Software Vendor – ISV) und Millionen von Anwendern.

Nehmen wir eine Blockchain für CodeMeter. Diese Blockchain läge dann identisch bei allen ISVs vor. ISV „A-CAD“ würde dann zum Beispiel sehen, wie viele Lizenzen ISV „B-CAD“ erstellt hat. Selbst wenn die Daten verschlüsselt vorlägen, wäre dies keine gute Idee, da zumindest die Anzahl der Transaktionen nachvollziehbar wäre. Ganz zu schweigen von der Datenmenge, die bei allen ISVs und deren Anwendern läge.

Nachdem dieses Gedankenexperiment offensichtlich gescheitert ist, lassen Sie uns den Ansatz mit einer Blockchain pro ISV verfolgen. Hier kann dann der Anwender „Architekturbüro Meier“ sehen, wie viele Lizenzen „Architekturbüro Schulze“ hat. Auch hier ist die Größe der Datenmenge ein weiteres KO-Kriterium.

Bei CodeMeter gibt es eine zentrale Datenbank 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 Verschlü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 verwenden. 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 standardmäß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 Ausdrucke eines 3D-Bauteils, abrechnen.

Dass die Vergabe der Berechtigung ein Anwendungsfall für CodeMeter ist, haben wir bereits oben im Gedankenexperiment beobachtet. Was ist mit der Gegenrichtung? Der Anwender
meldet den Verbrauch in die Blockchain. Lassen Sie uns auch hier ein Gedankenexperiment machen.

Dies wirft zwei bedeutende Fragen auf:

"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 Kryptographie miteinander untrennbar verbunden.

"Was ist, wenn der Anwender nicht online ist?“

In diesem Fall kann die Transaktion nicht übermittelt 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 zeitverzö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 Online-Verbindung. In vielen produktionsnahen Umgebungen ist dies ein KO-Kriterium.

CodeMeter bietet die Möglichkeit, Lizenzen offline zu übertragen und zu nutzen. Als Übertragungswege 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-Austausch erfolgen.

CodeMeter : Blockchain        5:0

Lizenzen ausleihen und übertragen

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 unterschrieben 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 Lizenzblö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 Anforderungen 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.

 

KEYnote 38 – Herbstausgabe 2019

Nach oben