Wibu-Systems
Lizenzierung im Edge & Cloud Computing
Als Applikationen in die Cloud verlagert wurden, dachte man, das Thema Lizenzierung hätte sich erledigt. Aber nicht alles ist in der Cloud gut aufgehoben. Beim Betrieb von Containern ist Lizenzierung aufgrund der damit einhergehenden Skalierung jetzt noch wichtiger geworden.
In grauer Vorzeit wurde Software auf Disketten ausgeliefert, später auf CDs und DVDs. Die Anwender installierten die Software in diesem Fall auf ihren Personal Computer. Diese Lösungen werden heute als On-Premises bezeichnet und stellen die Hersteller damals wie heute vor Herausforderungen. Eine davon sind die Systemvoraussetzungen beim Anwender: Um eine Software auszuführen, wird entsprechende Rechenleistung benötigt, außerdem können durch Wechselwirkung mit anderer auf dem Computer installierter Software Probleme auftreten. Eine weitere, aus Sicht der Hersteller noch wichtigere Herausforderung ist das Verhindern von unberechtigter Nutzung der Software. Dazu wurden einst kopiergeschützte Disketten oder CDs eingeführt. Bei höherpreisiger Software kommt oft ein Dongle zum Einsatz. Die Software kann dann beliebig oft installiert werden, läuft aber nur dort, wo der Dongle verbunden ist. Auch rechnergebundene Aktivierungen werden für diese Art der Software eingesetzt. Kopiergeschützte Disketten und CDs sind heutzutage nur noch in Museen zu finden.
SaaS in der Cloud setzt sich durch
Nach mehreren, mehr oder weniger erfolgreichen Versuchen, Software online zur Nutzung bereitzustellen – so zum Beispiel unter dem Namen Application Service Providing, kurz: ASP –, hat sich mittlerweile Software as a Service (SaaS) in der Cloud etabliert. Anwendungen wie Online-Karten oder Online-Übersetzungstools haben ihre On-Premises-Versionen komplett abgelöst. Bei dieser Cloud-Software wird die Anwendung in der Regel vom Hersteller betrieben und den Nutzern online zur Verfügung gestellt. Anwender benötigen lediglich einen Browser, in einigen Fällen einen Thin-Client. SaaS reduziert damit die Anforderungen an die lokalen Computer, öffnet die Türen zu Software auf mobilen Geräten und verändert die Anforderungen an Schutz und Lizenzierung. Im Gegensatz zur On-Premises-Software wird hier kein Kopierschutz benötigt und die Lizenzierung kann an eine Benutzeridentifikation (Login) gekoppelt werden. Auch haben sich die Entwicklungswerkzeuge der Programmierer beim Sprung in die Cloud geändert: Während On-Premises-Anwendungen oft in C++ oder .NET geschrieben sind, kommen nun mit Python, JavaScript & Co. viele verschiedene Programmierumgebungen zum Einsatz. SaaS-Lösungen in der Cloud sind in der Regel bereits durch ihre Architektur hoch skalierbar.
Zudem schwappt der Trend „Cloud First“ aus dem Endkunden-Umfeld auch auf B2B-Anwendungen über. Ein Beispiel dafür sind Predictive-Maintenance- Anwendungen für Steuerungen und Anlagen.
Die Lösung dazwischen: Edge
Die neue Cloud-Welt könnte aus Sicht des Herstellers so schön sein, wenn nicht Fragen wie Verfügbarkeit der Cloud, benötigte Bandbreite, Latenzzeiten und vor allem rechtliche Fragen wie „Wo sind meine Daten?“ dem Cloud-Computing entgegenstehen würden. Die Kompromisslösung ist Edge Computing. Hier laufen die Cloud-Lösungen am Rande der Cloud bei Anwendern und tauschen, wenn überhaupt, nur minimale Daten mit der Cloud aus. Die Hersteller möchten dabei alle Vorteile ihrer Cloud-Software nutzen: Skalierbarkeit und Flexibilität bei der Entwicklungsumgebung. Docker und anderen Container-Lösungen sei Dank, ist es technisch verhältnismäßig einfach umzusetzen, eine Cloud-Lösung als Edge-Lösung bereitzustellen. Die verschiedenen Dienste werden dazu zusammen mit allen notwendigen Software-Bestandteilen in einzelnen Containern bereitgestellt und erfordern auf Anwenderseite weder komplizierte Installationsvorgänge noch Abhängigkeiten auf andere Software. Durch die Isolation sind zudem Wechselwirkungen mit Software anderer Hersteller ausgeschlossen.
Ein Punkt wird bei dieser Art der Migrations-Projekte oft übersehen und kommt gerne als Last-Minute-Change-Request unter Zeitdruck hinzu: die geänderten Anforderungen an Lizenzierung und Softwareschutz. Während bei Cloud-Lösungen, die durch den Hersteller betrieben werden, Kopierschutz sowie Schutz des geistigen Eigentums irrelevant sind, kommt dieser Punkt bei einer Edge-Lösung zum Tragen: Ähnlich wie bei einer On-Premises-Anwendung läuft die Anwendung in der Obhut der Anwender. Auch bei der Lizenzierung kommen neben altbekannten Anforderungen aus der On-Premises-Welt noch neue Anforderungen hinzu, zum Beispiel wie man die Skalierbarkeit der Systeme in der Lizenz abbildet. Analog zur On-Premises-Welt wird ein nicht kopierbarer, sicherer Anker für die Lizenzierung benötigt.
Lizenzierung im Edge Computing
Eine gewisse Sonderstellung nehmen Edge-Devices ein. Der Hersteller liefert eine fertige Lösung bestehend aus Hardware und Software, die die lokale Systemlandschaft mit den Systemen in der Cloud verbindet und den Datenfluss kontrolliert. Die Lizenzierung kann hier entweder über die kontaktierten Cloud-Systeme erfolgen, die über Login eine Benutzeridentifikation ermöglichen, oder als klassische On-Premises-Lizenz auf dem Gerät selbst. Werden für eine verschlüsselte Kommunikation – entweder mit lokalen Geräten oder auch mit der Cloud – Zertifikate mit schützenswerten privaten Schlüsseln verwendet, kommen dabei sichere Anker zum Einsatz. Dies können TPM-Chips oder Dongles sein, letztere mit der Option, Lizenzen und Zertifikate gleichzeitig speichern zu können.
Auf den Geräten in der lokalen Systemumgebung hängt es von dem genauen Anwendungsszenario, dem Schutzbedürfnis des Herstellers und der Akzeptanz der Anwender ab, welche Lizenzierungsart verwendet werden kann. Die Systeme sind oft in der Lage, mehrere Container parallel zu betreiben; und so stellt sich die Frage, wie man die Anzahl der betriebenen Container und damit der darin laufenden Dienste kontrollieren und regulieren kann.
Optimale Kontrolle hat der Hersteller, wenn Systeme mit integriertem Security-Chip und Lizenzierungsmechanismus verwendet werden oder ein Dongle am Gerät angesteckt werden kann. Die Lizenz befindet sich dann im Gerät in einem sicheren Chip und die kryptographischen Funktionen aus den Containern können direkt oder über einen explizit dafür erstellten Container zur Lizenzverwendung benutzt werden.
Wenn es möglich ist, über ein Edge-Device eine Lizenz aus einem Cloud-basierten Lizenzierungssystem zu verwenden, kann der Hersteller ebenfalls sicher sein, dass die Lizenzen korrekt gezählt werden. Die Voraussetzung ist eine dauerhafte Verbindung mit dem Internet und die uneingeschränkte Verfügbarkeit der Cloud-Lizenz.
Für eine softwarebasierte Lizenzierung der in einem Container laufenden Anwendung muss man sich etwas genauer mit der Materie beschäftigen und eine für den eigenen Anwendungsfall passende Lösung finden. Container sind dafür entwickelt worden, alles möglichst gut zu abstrahieren und Datenverkehr zum Host oder zu anderen Containern auf gewünschte Transfers zu beschränken. Damit sind die üblicherweise verwendeten System-Merkmale nicht auszulesen und es ist ebenso nicht möglich, die Daten der Lizenz zu persistieren.
Um eine softwarebasierte Lizenzierung umsetzen zu können, wird aber ein sicherer Anker im Container benötigt, der an die eine Lizenz gebunden werden kann. Die Lizenzdaten müssen dann innerhalb des Systems so gespeichert werden, dass diese im Container erhalten bleiben. Diese Voraussetzungen vertragen sich nicht direkt mit Skalierung, also dem Starten mehrerer Container parallel. In diesen Fällen wird man die Lizenz in einem separaten Lizenzierungscontainer betreiben, der dann die Lizenzen für die anderen Container auf dem lokalen System bereitstellt. Um an einen sicheren Anker zu kommen, wird dieser Lizenzierungscontainer mit gewissen Rechten laufen müssen. Man muss sich darüber im Klaren sein, dass die gewünschte Abstraktion von Containern im direkten Widerspruch zum Kontroll- und Lizenzierungswunsch des Herstellers steht. Eine Lösung benötigt daher immer Kompromissbereitschaft.
Bei der von Wibu-Systems angebotenen Lösung Codemeter sind die Lizenzsysteme in Dongle, softwarebasierter Lizenzierung und Cloud-Lizenz kryptographisch identisch und können so je nach Einsatzgebiet und Wunsch des Kunden angepasst werden; die mit Codemeter Protection Suite geschützten Applikationen oder Skripte müssen dafür nicht angefasst werden. Die ggf. mehrfach laufenden Anwendungs-Container mit der geschützten Software werden über ein eigenes Netzwerk in der Containerwelt mit dem Lizenz-Container verbunden. Damit können die kryptographischen Aufrufe aus den Anwendungs-Containern auf die Lizenz zugreifen und werden isoliert transportiert. Der Lizenz-Container enthält entweder eine Anbindung an den eingebauten Security-Chip von Wibu-Systems oder in die von Wibu-Systems betriebene Cloud. Beim Verwenden einer softwarebasierten Lizenz benötigt dieser Lizenz-Container Zugriff auf den Docker-Socket für die Verankerung. Über ein ‚Named Volume‘ werden die Lizenzinformationen auf dem System persistiert und überleben damit beispielsweise auch ein Versions-Update des Lizenz-Containers.
Lizenz-Server in der privaten Cloud
Der Autor: Wolfgang Völker ist Director Product Management & Support bei Wibu-Systems.
© Wibu-SystemsIn manchen Anwendungsfällen laufen die Container nicht mehr zwingend auf der eigenen Hardware, sondern werden zum Beispiel zu Simulationszwecken in einer Private Cloud von Microsoft oder Amazon gestartet. In diesen Umgebungen gibt es andere Möglichkeiten, Lizenzen zu binden. Die Bindung einer softwarebasierten Lizenzierung erfolgt bei Codemeter daher an den vom Anbieter bereitgestellten Informationen über diese Systeme. Diese Bindung an bestimmte IDs ist dann robust gegen Wechsel des Hosts etc.
Alternativ kann ein von einem vertrauenswürdigen Anbieter betriebener Lizenz-Server in der Cloud verwendet werden. In diesem Fall befindet sich ein virtueller Dongle in der Cloud und die Software im Container verbindet sich mittels einer Passwort-Datei verschlüsselt zu diesem virtuellen Dongle. Über den Lizenz-Server in der Cloud wird die Anzahl der gleichzeitig laufenden Instanzen der Software in den Containern überwacht.
Neben den vorgefertigten Lösungsmöglichkeiten, welche in der Codemeter Runtime enthalten sind, können durch den Hersteller auch eigene Bindungen bereitgestellt werden. Das kann beispielsweise eine Enterprise-Lizenz sein, die es für Kunden des Software-Herstellers ermöglicht, so viele Instanzen wie gewünscht zu betreiben. So etwas könnte man ohne Verwendung einer Lizenz rein mit einer IP-Protection-Lösung umsetzen.
Eine Software kann aber auch ganz ohne Lizenzierung vielfach rund um den Globus eingesetzt werden. So hat ein Anwender von Wibu-Systems-Technologie eine Bindung an eine Kunden-ID des Private-Cloud-Anbieters realisiert. Diese sorgt dafür, dass in einem bestimmten Rechenzentrum beliebig viele Instanzen im Account dieses Kunden laufen können.
Wie man sieht, bieten sich für unterschiedliche Anwendungsszenarien verschiedene Lösungsmöglichkeiten. Eine pauschale Antwort, welche für alle Szenarien funktioniert, gibt es nicht. Als die passende Lösung entpuppt sich oft eine Kombination verschiedener Optionen für die gleiche Software – abhängig von Anwendung und regionalen Anforderungen.


















