Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
GENERATING A CONTAINER INSTANCE WITH A LICENSE VERIFICATION PROCESS LINKED TO HARDWARE
Document Type and Number:
WIPO Patent Application WO/2021/228581
Kind Code:
A1
Abstract:
The invention relates to a method for generating a container instance (4) in a container runtime environment (1) on a device (5), having the steps of: - loading (S1) a container image, which has at least one first layer and at least one second layer, into the container runtime environment, - loading (S2) a licensing component (2), which has a device-specific link to the device (5), into the container runtime environment (1), -loading (S3) license information (3) into the container runtime environment (1), said license information (3) having first device-specific data relating to the device (5) and first layer-specific data, - specifying (S4) second layer-specific data, - loading (S5) second device-specific data relating to the device (5), - comparing (S6) the first device-specific data with the second device-specific data and comparing (S7) the first layer-specific data with the second layer-specific data using the licensing component (2), and - generating (S8) the container instance (4) by running the at least one first layer and the at least one second layer.

Inventors:
FEIST CHRISTIAN PETER (DE)
KNIERIM CHRISTIAN (DE)
Application Number:
PCT/EP2021/061402
Publication Date:
November 18, 2021
Filing Date:
April 30, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G06F9/455; G06F21/12; H04L9/32
Foreign References:
EP3376378A12018-09-19
US20190392117A12019-12-26
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Erstellen einer Container-Instanz (4) in ei ner Container-Laufzeitumgebung (1) auf einem Gerät (5) mit den Schritten:

- Laden (Sl) eines Container-Images in die Container- Laufzeitumgebung, wobei das Container-Image mindestens eine erste Schicht und mindestens eine zweite Schicht aufweist, wobei die mindestens eine zweite Schicht auf die mindestens eine erste Schicht aufbaut,

- Laden (S2) einer Lizenzierungskomponente (2) in die Contai ner-Laufzeitumgebung (1), wobei die Lizenzierungskomponente (2) eine gerätespezifische Bindung zu dem Gerät (5) aufweist,

- Laden (S3) einer Lizenzinformation (3) in die Container- Laufzeitumgebung (1), wobei die Lizenzinformation (3) erste gerätespezifische Daten zu dem Gerät (5) aufweist, und wobei die Lizenzinformation (3) erste schichtspezifische Daten auf weist, wobei die ersten schichtspezifischen Daten eine Lizen zierung der mindestens einen zweite Schicht beinhalten,

- Spezifizieren (S4) zweiter schichtspezifischer Daten, wobei die zweiten schichtspezifischen Daten auf die mindestens eine erste Schicht und die mindestens eine zweite Schicht Bezug nehmen,

- Laden (S5) zweiter gerätespezifische Daten zu dem Gerät (5) durch die Lizenzierungskomponente (2),

- Abgleichen (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskom ponente (2),

- Abgleichen (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzie rungskomponente (2) und

- Erstellen (S8) der Container-Instanz (4) durch Ausführen der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht des Container-Images in Abhängigkeit des Ab- gleichens (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskom ponente (2) und/oder des Abgleichens (S7) der ersten Schicht- spezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente (2).

2. Verfahren nach Anspruch 1, mit wobei die mindestens eine erste Schicht eine Verschlüsse lung aufweist und/oder wobei die mindestens eine zweite Schicht eine Verschlüsselung aufweist und/oder wobei die ersten schichtspezifischen Daten eine Lizenzierung der mindestens einen ersten Schicht beinhalten.

3. Verfahren nach einem der vorhergehenden Ansprüche, wobei:

- die Lizenzinformation (3) und/oder

- Schlüssel (7) und/oder Zertifikate zum Validieren der Li zenzinformation (3) und/oder

- die Lizenzierungskomponente (2) und/oder

- das Container-Image eine kryptographische Signatur aufweisen.

4. Verfahren nach Anspruch 3, aufweisenden den Schritt:

- Validieren (S9) der Lizenzinformation (3) durch die Lizen zierungskomponente (2).

5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die ersten gerätespezifischen Daten und/oder die zwei ten gerätespezifischen Daten:

- eine Gerätekennung des Geräts (5) und/oder

- eine Hardwareseriennummer des Geräts (5) und/oder

- eine Chip-Identifizierkennung des Geräts (5) und/oder

- Daten eines Trusted Platform Moduls (TPM) / vertrauenswür digen Betriebssystemmoduls des Geräts (5) und/oder

Daten eines Hardwaresicherheitsmoduls (HSM) des Geräts (5) aufweisen.

6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Lizenzinformation (3) eine Konfigurationsdatei auf weist, wobei die Konfigurationsdatei Lizenzierungsparameter spezifiziert, wobei die Lizenzierungsparameter:

- mindestens eine erste Schichtkennung und/oder

- mindestens ein Container-Tag, wobei das mindestes eine Con tainer-Tag mit mindestens einer zweiten Schichtkennung ver knüpft ist und/oder

- einen Bezeichner des Container-Images und/oder

- einen Arbeitsspeicherressourcenparameter und/oder

- eine Anzahl an auf dem Gerät (5) möglichen Container- Instanzen (4) und/oder

- einen Gültigkeitswert der Lizenzinformation (3) und/oder

- Parameter des Container-Images und/oder

- Parameter des Gerätes (5) beinhalten.

7. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Erstellen (S8) der Container-Instanz (4) in Abhän gigkeit von Ergebnissen (6):

- dem Abgleichen (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungs komponente (2) und/oder

- dem Abgleichen (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzie rungskomponente (2) durchgeführt wird.

8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Lizenzierungskomponente (2):

- als Plugin in die Container-Laufzeitumgebung (1) eingebun den ist und/oder

- in eine Bibliothek der Container-Laufzeitumgebung (1) ein gebunden ist und/oder

- als Hintergrundprogramm in die Container-Laufzeitumgebung (1) eingebunden ist.

9. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Schritte: - des Abgleichens (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzie rungskomponente (2) und/oder

- des Abgleichens (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzie rungskomponente (2) nach dem Schritt des Erstellens der Container-Instanz (4):

- periodisch und/oder

- eventgesteuert wiederholt (S10) werden.

10. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Container-Instanz (4), bei dem Erstellen (S8) der Container-Instanz (4), ein Datenelement (8), insbesondere ein Token und/oder ein Lizenzzertifikat, durch die Lizenzierungs komponente (2) übergeben wird, wobei das Datenelement (8) mit einem privaten Schlüssel (9b) eines Schlüsselpaares (9) signiert ist, wobei das Datenelement (8) einen ersten Zeitwert aufweist.

11. Verfahren nach Anspruch 10, wobei der Container-Instanz (4), bei dem Erstellen (S8) der Container-Instanz (4), ein öffentlicher Schlüssel (9a) des Schlüsselpaares (9) übergeben wird, wobei der öffentliche Schlüssel (9a) signiert ist.

12. Verfahren nach Anspruch 10 oder 11, mit den weiteren Schritten:

- Laden des Datenelements (8) durch eine Applikation (10) der Container-Instanz (4),

- Laden eines zweiten Zeitwertes durch die Applikation (10), wobei der zweite Zeitwert einen Wert in Abhängigkeit des Er stellens (S8) der Container-Instanz (4) angibt und

- Vergleichen des ersten Zeitwerts (8) mit dem zweiten Zeit wert durch die Applikation (10).

13. Verfahren nach Anspruch 12, mit den weiteren Schritten: - Deaktivieren der Applikation (10) und

- Deaktivieren der Container-Instanz (4).

14. Computerprogrammprodukt, umfassend ein Computerprogramm, wobei das Computerprogramm in eine Speichereinrichtung einer

Recheneinheit ladbar ist, wobei mit dem Computerprogramm die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 13 ausgeführt werden, wenn das Computerprogramm auf der Rechen einheit ausgeführt wird.

15. Computerlesbares Medium, auf welchem ein Computerprogramm gespeichert ist, wobei das Computerprogramm in eine Speicher einrichtung einer Recheneinheit ladbar ist, wobei mit dem Computerprogramm die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 13 ausgeführt werden, wenn das Computerpro gramm auf der Recheneinheit ausgeführt wird.

Description:
Beschreibung

ERSTELLEN EINER CONTAINER-INSTANZ MIT AN HARDWARE GEBUNDENE

LIZENSÜBERPRÜFUNG

HINTERGRUND DER ERFINDUNG

Gebiet der Erfindung

Die vorliegende Erfindung betrifft ein Verfahren zum Erstel len einer Container-Instanz in einer Container- Laufzeitumgebung auf einem Gerät, ein zugehöriges Computer programmprodukt und ein zugehöriges computerlesbares Medium.

Beschreibung des Stands der Technik

Eine Software kann abhängig von Lizenzen verschiedene Merkma le und Anwendungen unterstützen. Diese Lizenzen können auch aufeinander aufbauen. Beispielsweise werden mit einer güns tigsten Lizenz einem Kunden Basisfeatures zur Verfügung ge stellt, weitere aufeinander aufbauende Funktionalitäten wie z.B. bessere grafische Ausarbeitungen werden mit einer erwei terten Lizenz bei gleichbleibender Applikation zugeschaltet. Ein solches Verfahren wird beispielsweise in Betriebssystemen für Firewalls angewandt und ist im Speziellen auch für con tainerbasierte IoT-Geräte interessant.

Wird die Software in einem Container bereitgestellt, erfolgt die Übergabe der Software in einem Container-Image, welches in einem standardisierten Format ausgeliefert wird. Contai ner-Images, welche dem Standard folgen sind schichtbasiert (layer-based) und bauen aufeinander auf. Schichtbasiert oder auch als „Layer-basiert" bezeichenbar, bedeutet in diesem Kontext, dass jede Operation (z.B. Hinzufüge einer Datei, In stallieren eines Pakets), die auf einem Container-Image bei dessen Bauen angewandt wird, durch einen eigenen Layer im Container-Dateisystem repräsentiert wird. Hierdurch besteht die Möglichkeit, dass ein Container-Image nicht komplett ge startet/ausgeführt werden muss, sondern bei einem Start nur eine Teilmenge, der auf das Image angewandten Operationen, verwendet wird. Dies wird erreicht, indem bei einem Contai ner-Image nur die ersten X Layer gestartet werden und die letzten/folgenden Y Operationen auf dem Container-Image aus gelassen werden. Starten eines Container-(Teil-)Images bedeu tet in diesem Kontext, dass eine Container-Instanz gestartet wird, dessen Dateisystem das besagte Container-(Teil-)Image ist. Die Container-Instanz sieht somit nur die in dem (Teil- )Image enthaltenen Dateien und nicht das vollständige Image.

Wird Software in einer Container- Instanz bereitgestellt, muss diese die Lizenz, auch als Lizenzierung bezeichenbar, wie im nicht-containerisierten Umfeld innerhalb der Contai ner-Instanz auswerten. Folglich muss die für die Lizenzierung erforderliche Information im Container-Image selbst zur Ver fügung gestellt werden oder über Lizenzserver bezogen werden. Problem ist hierbei, dass Container-Instanzen ohne zusätzli che Maßnahmen nicht an die darunterliegende Hardware gebunden sind und somit das Thema Lizenzierung innerhalb einer Contai ner-Instanz nicht die unberechtigte Benutzung auf nicht li zenzierter Hardware berücksichtigt.

Alternativ können containerisierte Anwendungen ebenfalls li zenziert werden, indem Hardware-spezifische Informationen der darunterliegenden Laufzeitumgebung über Umgebungsvariablen an die Container-Instanzen durchgereicht und von der Applikation ausgewertet werden, oder Applikationen Zugriff auf Hardware spezifische Schnittstellen zum Verifizieren einer Lizenzie rung innerhalb der Container-Instanz zur Verfügung gestellt werden.

Allgemein sind unterschiedliche Ausprägungen einer Software lizenzierung bekannt. Die Verwendung einer Software, oder be stimmter Features, kann beispielsweise an ein Gerät (node- locking), ein Benutzerkonto (user-based), oder an autorisier te Teilnehmer eines Netzwerks (floating license), gebunden werden. Lizenzen können dabei unter anderem zeitlich, sowie auf bestimmte Features oder eine begrenzte Zahl an Anwendern eingeschränkt werden.

Gängige Mechanismen zum Schutz von Software gegenüber unauto risiertem Kopieren, reverse Engineering, oder Verwendung von kostenpflichtigen Features, verschlüsseln oder instrumentie ren die Software so, dass sie nur unter Bereitstellung einer gültigen Lizenzierung verwendet werden kann. Die Lizenzdatei kann dabei unter anderem lokal auf dem Gerät, einem Server, oder in einem Smartcard Chip gespeichert werden. Zum Schutz einzelner Features können beispielsweise die entsprechenden Funktionen individuell verschlüsselt werden, so dass die Ver wendung nur mit einer gültigen Lizenzierung möglich ist.

Die Aufgabe der Erfindung besteht darin, eine Lösung zur Li zenzierung von Container-Instanzen bereitzustellen.

ZUSAMMENFASSUNG DER ERFINDUNG

Die Erfindung ergibt sich aus den Merkmalen der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der abhängigen Ansprüche. Ausgestaltungen, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung und den Zeichnungen.

Die Erfindung betrifft ein Verfahren zum Erstellen einer Con tainer-Instanz in einer Container-Laufzeitumgebung auf einem Gerät. Das Verfahren beinhaltet die Schritte:

- Laden eines Container-Images in die Container- Laufzeitumgebung, wobei das Container-Image mindestens eine erste Schicht und mindestens eine zweite Schicht aufweist, wobei die mindestens eine zweite Schicht auf die mindestens eine erste Schicht aufbaut,

- Laden einer Lizenzierungskomponente in die Container- Laufzeitumgebung, wobei die Lizenzierungskomponente eine ge rätespezifische Bindung zu dem Gerät aufweist,

- Laden einer Lizenzinformation in die Container- Laufzeitumgebung, wobei die Lizenzinformation erste geräte- spezifische Daten zu dem Gerät aufweist, und wobei die Li zenzinformation erste schichtspezifische Daten aufweist, wo bei die ersten schichtspezifischen Daten eine Lizenzierung der mindestens einen zweite Schicht beinhalten,

- Spezifizieren zweiter schichtspezifischer Daten, wobei die zweiten schichtspezifischen Daten auf die mindestens eine erste Schicht und die mindestens eine zweite Schicht Bezug nehmen,

- Laden zweiter gerätespezifische Daten zu dem Gerät durch die Lizenzierungskomponente,

- Abgleichen der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskom ponente,

- Abgleichen der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskom ponente und

- Erstellen der Container-Instanz durch Ausführen der mindes tens einen ersten Schicht und der mindestens einen zweiten Schicht des Container-Images in Abhängigkeit des Abgleichens der ersten gerätespezifischen Daten mit den zweiten geräte spezifischen Daten durch die Lizenzierungskomponente und/oder des Abgleichens der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskom ponente.

Ein Aspekt der Erfindung besteht darin, ein Verfahren bereit zustellen, welches ein schrittweises Freischalten lizenzie rungspflichtiger Merkmale in einer Container-Instanz ermög licht und welches ein Starten nicht lizenzierter Schichten eines Container-Images verhindert.

Ein Container-Image wird generell in einem standardisierten Format ausgeliefert. Container-Images beinhalten in diesem standardisierten Format mehrere Schichten, das heißt sie sind schichtbasiert und bauen aufeinander auf. Schichtbasiert oder auch als „Layer-basiert" bezeichenbar, bedeutet in diesem Kontext, dass jede Operation (z.B. Hinzufügen einer Datei, Installieren eines Pakets), die auf einem Container-Image bei dessen Bauen angewandt wird, durch einen eigenen Layer im Container-Dateisystem repräsentiert wird. Hierdurch besteht die Möglichkeit, dass ein Container-Image nicht komplett ge startet/ausgeführt werden muss, sondern bei einem Start nur eine Teilmenge, der auf das Image angewandten Operationen, verwendet wird. Dies wird erreicht, indem bei einem Contai ner-Image nur die ersten X Layer gestartet werden und die letzten/folgenden Y Operationen auf dem Container-Image aus gelassen werden.

In der mindestens einen ersten Schicht sowie in der mindes tens einen zweiten Schicht des Container-Images können je weils mehrere Schichten enthalten sein. Die ersten Schichten (mindestens eine erste Schicht) kann unverschlüsselt sein o- der verschlüsselt sein. Die weiteren Schichten (mindestens eine zweite Schicht) ist verschlüsselt. Auf die mindestens eine erste Schicht können wiederrum Schichten aufbauen (ins besondere mindestens eine dritte Schicht), diese können ver schlüsselt oder unverschlüsselt sein.

Die Lizenzierungskomponente kann auch als Lizenzierungssoft ware bezeichnet werden. Die Lizenzierungskomponente kann von einem Geber der Lizenzinformation und/oder Geber des Contai ner-Images bereitgestellt werden. Die Lizenzierungskomponente ist an das Gerät gebunden, insbesondere durch eine hardware spezifische Bindung. Die hardware-spezifische Bindung führt dazu, dass die Lizenzierungskomponente nur auf dem Gerät ver wendbar ist, für welche sie spezifiziert ist.

Die Lizenzinformation kann auch als Lizenzdatei bezeichnet werden. Die Lizenzierung kann auch als Lizenz bezeichnet wer den. Durch die ersten gerätespezifischen Daten spezifiziert die Lizenzinformation für welches Gerät sie bestimmt ist, d.h. für welches Gerät sie lizensiert. Durch die ersten schichtspezifischen Daten spezifiziert die Lizenzinformation für welche Schichten des Container-Images sie lizensiert. Da zumindest die mindestens eine zweite Schicht verschlüsselt ist, lizensiert die Lizenzinformation zumindest die mindes- tens eine zweite Schicht durch die ersten schichtspezifischen Daten. Falls auch die mindestens eine erste Schicht ver schlüsselt ist, beziehen sich die ersten schichtspezifischen Daten auch auf die mindestens eine erste Schicht. Die Lizenz information kann in der Container-Laufzeitumgebung, auf dem Gerät, in einer Applikation und/oder auf einem Server hinter leget sein.

Die zweiten schichtspezifischen Daten können insbesondere nach Verarbeiten einer Benutzereingabe spezifiziert werden. Die Benutzereingabe kann eine Auswahl einer Schicht (insbe sondere die mindestens eine erste Schicht oder die mindestens eine zweite Schicht) des Container-Images enthalten, welche ausgeführt werden soll. Wird eine Schicht ausgewählt, so soll diese Schicht und alle ihr vorangegangenen Schichten ausge führt werden. Anschließend wird die Benutzereingabe vom Ver fahren in den zweiten schichtspezifischen Daten spezifiziert.

Die Lizenzierungskomponente lädt zweite gerätespezifische Da ten zu dem Gerät. Die zweiten gerätespezifischen Daten ent halten Daten dazu, auf welchem Gerät die Schichten des Con tainer-Images ausgeführt werden soll und/oder auf welchem Ge rät die Lizenzierungskomponente läuft. So kann die Lizenzie rungskomponente durch das Abgleichen der ersten gerätespezi fischen Daten (enthalten in der Lizenzinformation) mit den zweiten gerätespezifischen Daten feststellen, ob das Gerät lizensiert ist. Die ersten gerätespezifischen Daten beinhal ten insbesondere eine maximale Anzahl an Container-Instanzen, welche erstellt und/oder laufen dürfen und/oder Laufzeitpara meter für das Gerät (z.B. CPU-ID).

Außerdem führt die Lizenzierungskomponente ein Abgleichen der ersten schichtspezifischen Daten (enthalten in der Lizenzin formation) mit den zweiten schichtspezifischen Daten (durch Verarbeiten einer Benutzereingabe spezifiziert) durch. So kann festgestellt werden, ob für die insbesondere von einem Benutzer ausgewählten Schichten eine gültige Lizenzierung vorliegt. Anschließend wird ein Erstellen der Container-Instanz durch Ausführen der mindestens einen ersten Schicht und der mindes tens einen zweiten Schicht des Container-Images durch ge führt. Dieser Schritt kann abhängig von Ergebnissen des Ab- gleichens der ersten gerätespezifischen Daten (enthalten in der Lizenzinformation) mit den zweiten gerätespezifischen Da ten und/oder des Abgleichens der ersten schichtspezifischen Daten (enthalten in der Lizenzinformation) mit den zweiten schichtspezifischen Daten (durch Verarbeiten einer Benutzer eingabe spezifiziert) durchgeführt werden. Insbesondere kann das Erstellen der Container-Instanz auch durchgeführt werden, wenn keine gültige Lizenzierung vorliegt, eine gültige Lizen zierung bereitgestellt werden und insbesondere eine Lizenzge bühr anschließend erhoben werden. In jedem Fall besteht aber eine Abhängigkeit zwischen dem Ausführen der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht des Container-Images und dem Abgleichen der ersten gerätespezifi schen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente und/oder dem Abgleichen der ers ten schichtspezifischen Daten mit den zweiten schichtspezifi schen Daten durch die Lizenzierungskomponente. Diese Abhän gigkeit hat den Effekt, dass je nach Ergebnis des Abgleichens das Ausführen, falls es stattfindet, in einer anderen Form durchgeführt wird. Insbesondere in der Form, dass keine wei tere Lizenzgebühr erhoben wird oder in der Form, dass eine weitere Lizenzgebühr erhoben wird.

Die Erfindung bietet den Vorteil, dass zusätzliche Merkmale und Anwendungen der in der Container-Instanz befindlichen Software direkt durch Einspielen einer (neuen) Lizenzinforma tion auf dem darunterliegenden System, insbesondere Gerät, freigeschaltet werden können. Das hat den Vorteil, dass keine Neuerstellung eines weiteren Container-Images erforderlich ist, welches die für den Kunden ausgestellte Lizenzinformati on enthält. Die Erfindung bietet den weiteren Vorteil, dass unabhängig von freigeschalteten Merkmalen und Anwendungen immer das gleiche Container-Image an jeden Kunden ausgeliefert werden kann. Ein Kompromiss ist hierbei allerdings, dass insbesonde re die Lizenzierungskomponente und Container-Laufzeitumgebung vertrauenswürdig sein müssen.

Die Erfindung bietet den weiteren Vorteil, dass die Lizenzin formation auch im Container-Umfeld gerätespezifisch ausge stellt werden können. Das Kopieren der Lizenzinformation in klusive entsprechendem Container-Image von dem Gerät auf ein anderes Gerät, dessen Lizenzierungskomponente und Container- Laufzeitumgebung nicht modifiziert wurde, wird somit verhin dert.

Die Erfindung bietet den weiteren Vorteil, dass, da bestimmte Geräte für das Ausführen einer Applikation der Container- Instanz autorisiert werden können, können Container-Instanzen nicht kopiert werden und auf nicht-autorisierten Geräten lau fen. Auch hier wird angenommen, dass insbesondere die Lizen zierungskomponente und Container-Laufzeitumgebung vertrauens würdig sind.

Die Erfindung bietet den weiteren Vorteil, dass das im Con tainer-Umfeld übliche Hoch- und Runterskalieren von Contai ner-Instanzen durch das vorgeschlagene Verfahren auf lizen zierten Plattformen möglich ist. Das hat den Vorteil, dass auf variable Lasten reagiert werden kann.

Die Erfindung bietet den weiteren Vorteil, dass die ersten gerätespezifischen Daten (enthalten in der Lizenzinformation) in einer erweiterten Variante auch komplette Cluster von Ge räten, auch als Gruppen von Geräten bezeichenbar, spezifizie ren und lizensieren können. In diesem Fall bezieht sich die Lizenzinformation nicht nur auf ein Gerät, auf dem die Con tainer-Instanz laufen soll, sondern auf den gesamten Cluster von Geräten. In diesem Fall können auch Cluster-weite Parame- ter (insbesondere Gesamtanzahl der Container-Instanzen über den gesamten Cluster) eingeschränkt werden.

In einer Weiterbildung der Erfindung weist die mindestens ei ne zweite Schicht eine Verschlüsselung auf. In einer weiteren Weiterbildung der Erfindung weist die mindestens eine erste Schicht eine Verschlüsselung auf. Eine Verschlüsselung der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht hat den Vorteil, dass mindestens ein gesamter erster Teil des Container-Images verschlüsselt ist.

Weisen die mindestens eine erste Schicht und/oder die mindes tens eine zweite Schicht die Verschlüsselung auf, so beinhal tet in einer Weiterbildung der Erfindung der Schritt des Er stellens der Container-Instanz durch Ausführen der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht des Container-Images ein Entschlüsseln der mindestens einen ersten Schicht und/oder der mindestens einen zweiten Schicht.

In einer Weiterbildung der Erfindung beinhalten die ersten schichtspezifischen Daten eine Lizenzierung der mindestens einen ersten Schicht. Das hat den Vorteil, dass zusätzlich zu der Lizenzierung der mindestens einen zweiten Schicht auch eine Lizenzierung der mindestens einen ersten Schicht vor liegt. Die Lizenzierung der mindestens einen ersten Schicht und die Lizenzierung der mindestens einen zweiten Schicht er möglichen, dass die mindestens eine erste Schicht und die mindestens eine zweite Schicht des Container-Images ausge führt werden kann und eine darauf basierende Container- Instanz erstellt werden kann.

In einer weiteren Weiterbildung der Erfindung weist die Li zenzinformation und/oder Schlüssel und/oder Zertifikate zum Validieren der Lizenzinformation und/oder die Lizenzierungs komponente und/oder das Container-Image eine kryptographische Signatur auf.

Dies hat den Vorteil, dass die Lizenzierungskomponente, sowie die zur Validierung der Lizenzinformation verwendeten öffent- liehen Schlüssel und/oder Zertifikate integer und authentisch sind. Außerdem wird angenommen, dass insbesondere die Contai ner-Laufzeitumgebung (Container-Runtime) integer und authen tisch ist. Dies kann insbesondere durch Mechanismen wie Secure-Boot während dem Start des Gerätes verifiziert werden. Weiterhin kann die Integrität und Authentizität der Lizenzin formation und/oder Schlüssel und/oder Zertifikate zum Vali dieren der Lizenzinformation und/oder die Lizenzierungskompo nente zur Laufzeit der Container-Instanz verifiziert werden (Runtime Health Check).

Es wird dabei angenommen und sichergestellt, dass die Lizen zierungskomponente, Container-Laufzeitumgebung, ein sicherer Speicher und öffentlicher Schlüssel des Lizenzgebers auf dem Gerät nicht manipuliert wurden.

In einer weiteren Weiterbildung der Erfindung weist das Ver fahren den weiteren Schritt eines Validierens der Lizenzin formation durch die Lizenzierungskomponente auf. Die Lizen zierungskomponente validiert hierzu insbesondere mit Hilfe eines fest in der Software oder auf einem Dateisystem hinter legten Zertifikats und/oder öffentlichen Schlüssels (analog zu X509-Root-CAs) die signierten Lizenzierungsinformationen (Lizenz).

Die im Container befindlichen Komponenten der Validierung (die zur Validierung der Lizenzierung und/oder der Lizenzin formation verwendeten öffentlichen Schlüssel und/oder Zerti fikate) können entweder direkt in einer Applikation der Con tainer-Instanz implementiert sein oder als von der Applikati on eingebundene Bibliothek angesprochen werden.

In einer weiteren Weiterbildung der Erfindung weisen die ers ten gerätespezifischen Daten und/oder die zweiten gerätespe zifischen Daten eine Gerätekennung des Geräts und/oder eine Hardwareseriennummer des Geräts und/oder eine Chip- Identifizierkennung des Geräts und/oder Daten eines Trusted Platform Moduls (TPM) / vertrauenswürdigen Betriebssystemmo- duls des Geräts und/oder Daten eines Hardwaresicherheitsmo duls (HSM) des Geräts auf. Das hat den Vorteil, dass durch die Lizenzierungskomponente, eine hardware-bezogene Lizenz prüfung/Prüfung der Lizenzierungsinformation durchführbar ist.

In einer weiteren Weiterbildung der Erfindung weist die Li zenzinformation eine Konfigurationsdatei auf, wobei die Kon figurationsdatei Lizenzierungsparameter spezifiziert. Die Li zenzierungsparameter beinhalten

- mindestens eine erste Schichtkennung und/oder

- mindestens ein Container-Tag (kurz: Tag), wobei das mindes tens eine Container-Tag mit mindestens einer zweiten Schicht kennung verknüpft ist und/oder

- einen Bezeichner des Container-Images und/oder

- einen Arbeitsspeicherressourcenparameter und/oder

- eine Anzahl an auf dem Gerät möglichen Container-Instanzen und/oder

- einen Gültigkeitswert der Lizenzinformation und/oder

- Parameter des Container-Images und/oder

- Parameter des Gerätes.

Die erste Schichtkennung und/oder zweite Schichtkennung kön nen auch als erste Schicht-ID und/oder zweite Schicht-ID be zeichnet werden. Die erste Schichtkennung und/oder zweite Schichtkennung haben den Vorteil, dass sie für eine Spezifi kation der lizensierten Schichten verwendet werden können.

In einer alternativen Variante ist es möglich, dass die Li zenzierungskomponente statt der erlaubten Schichtken- nung/Layer-ID ein mit der Schichtkennung/Layer-ID verknüpftes Tag validiert. Dies hat den Vorteil, dass die Lizenzinforma tion nicht für neue Versionen des Container-Images neu ausge stellt werden muss. Die Lizenzierungskomponente überprüft dann zusätzlich, ob das Container-Image von dem vorgesehenen Hersteller bereitgestellt wurde und die Signatur des Contai ner-Images. Die Erfindung bietet den weiteren Vorteil, dass die Lizenzie rung in einer erweiterten Variante Tag-basiert erfolgen kann. Der Vorteil hiervon ist, dass Container-Images mit unter schiedlichen Schichtkennung/Layer-IDs (unterschiedliche Soft ware-Versionen des gleichen Container-Images) an die gleiche Lizenz/Lizenzinformation gebunden werden können. Dies hat den Vorteil, dass die Lizenzinformation nicht für jede neue Ver sion des Container-Images neu ausgestellt werden muss.

Der Bezeichner des Container-Images ist auch als Name des Container-Images bezeichenbar. Der Arbeitsspeicherressourcen parameter gibt insbesondere maximal zulässige RAM- oder CPU- Ressourcen für die Container-Instanz an. Die Parameter des Container-Images spezifizieren insbesondre weitere Parameter, die auf der Container-Laufzeitumgebung für das Container- Image beschränkt werden sollen. Die Parameter des Gerätes spezifizieren insbesondere gerätespezifische Merkmale, wie eine MAC-Adresse und/oder eine Seriennummer.

In einer weiteren Weiterbildung der Erfindung wird das Er stellen der Container-Instanz in Abhängigkeit von Ergebnissen des Abgleichens der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskom ponente und/oder des Abgleichens der ersten schichtspezifi schen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente durchgeführt. Das hat den Vor teil, dass falls keine gültige Lizenzinformation vorliegt, die Container-Instanz nicht gestartet/erstellt wird.

In einer weiteren Weiterbildung der Erfindung ist die Lizen zierungskomponente als Plugin in die Container- Laufzeitumgebung eingebunden und/oder in eine Bibliothek der Container-Laufzeitumgebung eingebunden und/oder als Dae- mon/Hintergrundprogramm in die Container-Laufzeitumgebung eingebunden. Das Hintergrundprogramm, insbesondere eigenstän diger Daemon, kann beim Start der Container-Instanz von der Container-Laufzeitumgebung kontaktiert werden. In einer weiteren Weiterbildung der Erfindung werden die Schritte des Abgleichens der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzie rungskomponente und/oder des Abgleichens der ersten schicht spezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente nach dem Schritt des Er stellens der Container-Instanz periodisch und/oder eventge steuert wiederholt.

Das hat den Vorteil, dass zur Laufzeit von der Lizenzierungs komponente überwacht wird, ob nicht-lizenzierte Container- Images, bzw. nicht-lizenzierte Konfigurationen (eine nicht- lizenzierte Auswahl an Layern/Schichten) von Container-Images auf der Plattform des Gerätes/in der Container- Laufzeitumgebung laufen bzw. Container-Instanzen vorhanden sind (laufende Container-Images sind Container-Instanzen). Diese Überprüfung kann stattfinden, indem auf dem Gerät aus schließlich Container-Instanzen mit entsprechend bekannten Container-Images erlaubt werden und nicht-bekannte Schicht- kenner/Schichtkennungen/Layer-IDs gestoppt werden.

Die Erfindung bietet den weiteren Vorteil, dass kompromit tierte Lizenzschlüssel zurückgezogen werden können.

Periodisch wiederholt bedeutet, dass die genannten Schritte des Abgleichens zu definierten Zeitpunkten, insbesondere zyk lisch oder nach Ablauf bestimmter zeitlichen Perioden wieder holt werden. Eventgesteuert wiederholt bedeutet, dass die ge nannten Schritte des Abgleichens bei Eintreten definierter und/oder detektierter Events/Ereignisse wiederholt werden.

Ein solches Event/Ereignis kann insbesondere das Aufrufen ei ner Applikation der Container-Instanz sein. Die Eventsteue rung kann insbesondere durch Interaktion mit der Container- Laufzeitumgebung oder mit Hilfe entsprechender eBPF-Programme umgesetzt werden.

In einer weiteren Weiterbildung der Erfindung wird der Con tainer-Instanz, bei dem Erstellen der Container-Instanz, ein Datenelement, insbesondere ein Token und/oder ein Lizenzzer tifikat, durch die Lizenzierungskomponente übergeben wird, wobei das Datenelement mit einem privaten Schlüssel eines Schlüsselpaares signiert ist, wobei das Datenelement einen ersten Zeitwert aufweist.

Das hat den Vorteil, dass der erste Zeitwert mit einem zwei ten Zeitwert des Erstellens der Container-Instanz verglichen werden kann. Der zweite Zeitwert des Erstellens der Contai ner-Instanz kann insbesondere die Uptime der Container- Instanz und/oder den Zeitpunkt des Erstellens der Container- Instanz beinhalten.

In einer weiteren Weiterbildung der Erfindung wird der Con tainer-Instanz, bei dem Erstellen der Container-Instanz, ein öffentlicher Schlüssel des Schlüsselpaares übergeben, wobei der öffentliche Schlüssel signiert ist. Das hat den Vorteil, dass überprüft werden kann, ob das Token auf einem bekannten / vertrauten Gerät oder System erstellt wurde. Damit kann herausgefunden werden kann, insbesondere von einer Applikati on der Container-Instanz, ob das Token von einem lizenzierten / bekannten Gerät ausgestellt wurde, kann der Lizenzgeber - wie bei der Erstellung von X509-Zertifikaten - den öffentli chen Schlüssel des ausstellenden Gerätes signieren und beim Start/Erstellen der Container-Instanz als Laufzeitvariable injizieren. Der öffentliche Schlüssel (Vertrauensanker) des Lizenzgebers muss hierzu fest und modifikationssicher in der Applikation oder der Bibliothek hinterlegt sein oder von der Laufzeitumgebung injiziert werden (der Container-Instanz als Laufzeitvariable injiziert worden sein).

In einer weiteren Weiterbildung der Erfindung weist das Ver fahren die folgenden weiteren Schritte auf:

- Laden des Datenelements durch eine Applikation der Contai ner-Instanz,

- Laden eines zweiten Zeitwertes durch die Applikation, wobei der zweite Zeitwert einen Wert in Abhängigkeit des Erstellens der Container-Instanz angibt und - Vergleichen des ersten Zeitwerts mit dem zweiten Zeitwert durch die Applikation.

Der zweite Zeitwert gibt insbesondere den Zeitpunkt des Er stellens der Container-Instanz oder die bisherige Laufzeit, auch als Uptime bezeichenbar, der Container-Instanz an.

Die weiteren Schritte des Verfahrens haben den Vorteil, dass eine eigenständige Prüfung, ob eine gültige Lizenzierung vor liegt durch eine Applikation der Container-Instanz (Applika tion, die in der Container-Instanz läuft; Applikation, die nach Ausführen des Container-Images in der Container-Instanz enthalten ist) durchgeführt werden kann. Diese Prüfung kann insbesondere durchgeführt werden, indem zum Start der Contai ner-Instanz von der Lizenzierungskomponente über Laufzeitva riablen der Container-Instanz ein mit einem privaten (und entsprechend geschütztem) Geräteschlüssel signiertem Token, insbesondere Zeitstempel, übergeben wird. Durch den Zeitstem pel kann die containerisierte Applikation erkennen, ob das Token gültig ist, indem sie prüft, ob der Zeitstempel iden tisch mit dem Startzeitpunkt/Zeitpunkt des Starts der Contai ner-Instanz ist.

Das hat den Vorteil, dass wenn ein Vergleich mit der Lauf- zeit/Uptime der Container-Instanz mit dem Token/Zeitstempel durchgeführt werden kann und der Token genauso alt wie die Container-Instanz in der die Applikation läuft ist und somit die in diesem Abschnitt beschriebene Validierungskette veri fiziert ist, die Applikation weiß, dass sie in einer Umgebung (Gerät) ausgeführt wird, die durch den Lizenzgeber autori siert wurde.

Das hat außerdem den Vorteil, dass ein Abziehen/Kopieren des Dateisystems der Container-Instanz und ein Neuerstellen eines Container-Images mit dem gleichen Dateisystem nichts bringt, da der Lizenzcheck der Applikation in der Container-Instanz prüft, ob eine gültige Lizensierungsinformation vorhanden ist und/oder ob der erste Zeitwert zu dem zweiten Zeitwert passt.

In einer weiteren Weiterbildung der Erfindung weist das Ver fahren außerdem ein Deaktivieren der Applikation und ein De aktivieren der Container-Instanz. Das hat den Vorteil, dass falls die Validierung (Vergleichen des Tokens mit dem Zeit wert durch die Applikation) fehlschlägt, sich die Applikation und somit auch die Container-Instanz beendet und auf dem Ge rät nur lizensierte Applikationen und Container-Instanzen laufen.

Möchte der Lizenzgeber kompromittierte Lizen zen/Lizenzinformationen zurückziehen, ist das Vertrauen des Geräteschlüssels der Lizenzdatei über Listen analog zu Certi ficate Revocation Lists im X509-Umfeld gegenüber dem Lizenz geber zu entziehen. Die Publikation der Liste kann er entwe der über öffentlich zugängliche Listen (analog zu Certificate Revocation Lists) im Internet durchgeführt werden. Analog können in der Bibliothek selbst oder in der Applikation diese gesperrten Schlüssel hinterlegt werden.

In einer erweiterten Variante ist es möglich, dass die Lizen zierungskomponente, auch außerhalb des Gerätes, auf dem die Container-Instanzen laufen, betrieben wird. Eine Umsetzungs möglichkeit bieten beispielsweise Kubernetes AdmissionCon- troller. Ein speziell entwickelter Lizenz-Admission- Controller müsste hierfür entwickelt werden. Möchte man die beschriebene Laufzeitüberprüfung durchführen, ist es jedoch erforderlich, dass auf den Geräten, auf denen die Container- Instanzen laufen, zusätzliche Komponenten laufen, die die Laufzeitüberprüfung vornehmen und gegebenenfalls nicht ent sprechend lizenzierte Container-Instanzen stoppen. Eine Li zenzierung außerhalb des Gerätes wäre möglich, wenn die Li zenzierungskomponenten auf den Geräten sich den Token von der außerhalb des Gerätes befindlichen Lizenzierungskomponente signieren lassen. Die Erfindung umfasst außerdem ein Computerprogrammprodukt, umfassend ein Computerprogramm, wobei das Computerprogramm in eine Speichereinrichtung einer Recheneinheit ladbar ist, wo bei mit dem Computerprogramm die Schritte eines erfindungsge mäßen Verfahrens ausgeführt werden, wenn das Computerprogramm auf der Recheneinheit ausgeführt wird.

Die Erfindung umfasst außerdem ein computerlesbares Medium, auf welchem ein Computerprogramm gespeichert ist, wobei das Computerprogramm in eine Speichereinrichtung einer Rechenein heit ladbar ist, wobei mit dem Computerprogramm die Schritte eines erfindungsgemäßen Verfahrens ausgeführt werden, wenn das Computerprogramm auf der Recheneinheit ausgeführt wird.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Die Besonderheiten und Vorteile der Erfindung werden aus den nachfolgenden Erläuterungen mehrerer Ausführungsbeispiele an hand der schematischen Zeichnungen ersichtlich.

Es zeigen

Fig. 1 ein Ablaufdiagramm des erfindungsgemäßen Verfah rens,

Fig. 2 eine schematische Darstellung erfindungsgemäßer

Komponenten eines Erstellens einer Container- Instanz und

Fig. 3 eine schematische Darstellung erfindungsgemäßer

Komponenten eines Betreibens einer Container- Instanz.

DETAILLIERTE BESCHREIBUNG DER ERFINDUNG

Fig. 1 zeigt ein Ablaufdiagramm des Verfahrens zum Erstellen einer Container-Instanz 4 (dargestellt in Fig. 2) in einer Container-Laufzeitumgebung 1 (dargestellt in Fig. 2) auf ei nem Gerät 5 (dargestellt in Fig. 2). Das Verfahren weist fol gende Schritte auf:

- Schritt Sl: Laden eines Container-Images in die Container- Laufzeitumgebung, wobei das Container-Image mindestens eine erste Schicht und mindestens eine zweite Schicht aufweist, wobei die mindestens eine zweite Schicht auf die mindestens eine erste Schicht aufbaut,

- Schritt S2: Laden einer Lizenzierungskomponente 2 (darge stellt in Fig. 2) in die Container-Laufzeitumgebung 1, wobei die Lizenzierungskomponente 2 eine gerätespezifische Bindung zu dem Gerät 5 aufweist,

- Schritt S3: Laden einer Lizenzinformation 3 (dargestellt in Fig. 2) in die Container-Laufzeitumgebung 1, wobei die Li zenzinformation 3 erste gerätespezifische Daten zu dem Gerät

5 aufweist, und wobei die Lizenzinformation 3 erste schicht spezifische Daten aufweist, wobei die ersten schichtspezifi schen Daten eine Lizenzierung der mindestens einen zweiten Schicht beinhalten,

- Schritt S4: Spezifizieren zweiter schichtspezifischer Da ten, wobei die zweiten schichtspezifischen Daten auf die min destens eine erste Schicht und die mindestens eine zweite Schicht Bezug nehmen,

- Schritt S5: Laden zweiter gerätespezifischer Daten zu dem Gerät 5 durch die Lizenzierungskomponente 2,

- Schritt S6: Abgleichen der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzie rungskomponente 2,

- Schritt S7: Abgleichen der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzie rungskomponente 2 und

- Schritt S8: Erstellen der Container-Instanz 4 durch Ausfüh ren der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht des Container-Images in Abhängigkeit des Abgleichens S6 der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungs komponente 2 und/oder des Abgleichens S7 der ersten Schicht- spezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente 2.

Im Rahmen von Schritt S8, dem Erstellen der Container-Instanz 4, wird der Container-Instanz 4 ein Token 8 (dargestellt in Fig. 3) durch die Lizenzierungskomponente 2 übergeben, wobei der Token 8 mit einem privaten Schlüssel 9b (dargestellt in Fig. 3) eines Schlüsselpaares 9 (dargestellt in Fig. 3) sig niert ist.

Im Rahmen von Schritt S8, dem Erstellen der Container-Instanz 4, wird der Container-Instanz 4 ein öffentlicher Schlüssel 9a (dargestellt in Fig. 3) des Schlüsselpaares 9 übergeben, wo bei der öffentliche Schlüssel 9a signiert ist.

Das Verfahren weist außerdem den Schritt S9, Validieren der Lizenzinformation durch die Lizenzierungskomponente 2, auf.

Die Schritte Schritt S6, Abgleichen der ersten gerätespezifi schen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente 2, und/oder Schritt S7, Abglei chen der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente 2, werden nach Schritt S8, Erstellens der Container-Instanz 4, in Schritt S10 periodisch und/oder eventgesteuert wieder holt.

Fig. 2 zeigt Komponenten des Verfahrens zum Erstellen einer Container-Instanz 4 in einer Container-Laufzeitumgebung 1 auf einem Gerät 5.

Ein Container-Image ist in die Container-Laufzeitumgebung- geladen (Sl). Das Container-Image weist mindestens eine erste Schicht und mindestens eine zweite Schicht auf. Die mindes tens eine erste Schicht und die mindestens eine zweite Schicht weisen jeweils mehrere Schichten auf. So kann die mindestens eine erste Schicht insbesondere X Schichten auf weisen und die mindestens eine zweite Schicht insbesondere Y aufweisen. X und Y sind natürliche Zahlen. Es kann mindestens eine dritte Schicht auf die mindestens eine zweite Schicht folgen und aufbauen.

Die mindestens eine zweite Schicht baut auf die mindestens eine erste Schicht auf. Das bedeutet, dass die mindestens ei ne zweite Schicht nur ausgeführt werden kann, wenn auch die mindestens eine erste Schicht ausgeführt wird oder wurde.

Die mindestens eine zweite Schicht weist eine kryptographi- sche Verschlüsselung auf. Das bedeutet, dass die mindestens eine zweite Schicht bevor sie ausgeführt werden kann, ent schlüsselt werden muss.

Basierend auf einer Benutzeranfrage über ein Gerät wird ein Spezifizieren (S4) zweiter schichtspezifischer Daten durchgeführt. Ein Benutzer kann insbesondere die mindestens eine erste Schicht und die mindestens eine zweite Schicht des Container-Images ausführen wollen. Die zweiten schichtspezi- fischen Daten spezifizieren eine Menge an Schichten, die ein Benutzer ausführen will und nehmen auf die mindestens eine erste Schicht und die mindestens eine zweite Schicht Bezug.

Eine Lizenzierungskomponente 2 wird in die Container- Laufzeitumgebung 1 geladen (S2). Die Lizenzierungskomponente 2 weist eine gerätespezifische Bindung zu dem Gerät 5 auf.

Das hat den Vorteil, dass die Lizenzierungskomponente 2 eine Hardware-spezifische Bindung zu dem Gerät 5 aufweist.

Außerdem wird eine Lizenzinformation 3 in die Container- Laufzeitumgebung 1 geladen (S3). Die Lizenzinformation 3 weist erste gerätespezifische Daten zu dem Gerät 5 auf. Die ersten gerätespezifischen Daten spezifizieren das Gerät 5, für welches die Lizenzinformation 3 gilt.

Die Lizenzinformation 3 weist außerdem erste schichtspezifi sche Daten auf. Die ersten schichtspezifischen Daten beinhal ten eine Lizenzierung der mindestens einen zweiten Schicht. Die ersten schichtspezifische Daten spezifizieren die Schich ten, für welche die Lizenzinformation 3 gilt.

Außerdem werden zweite gerätespezifische Daten zu dem Gerät 5 durch die Lizenzierungskomponente 2 geladen (S5). Die zweiten gerätespezifischen Daten geben insbesondere Information über das Gerät 5 der Container-Laufzeitumgebung.

In einem weiteren Schritt validiert die Lizenzierungskompo nente 2 die Lizenzinformation 3 und Geräteschlüssel/Schlüssel 7 der Lizenzinformation 3. Dadurch wird überprüft, ob die Li zenzinformation 3 valide ist und von einem vertrauenswürdi gen/bekannten Gerät ausgestellt wurde.

Anschließend findet ein Abgleichen (S6) der ersten gerätespe zifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente 2 und ein Abgleichen (S7) der ersten schichtspezifischen Daten mit den zweiten schicht spezifischen Daten durch die Lizenzierungskomponente 2 statt. So kann die Lizenzierungskomponente 2 feststellen, ob das Ge rät lizensiert ist und ob für die insbesondere von dem Benut zer ausgewählten Schichten eine gültige Lizenzierung vor liegt.

Anschließend und insbesondere in Abhängigkeit von Ergebnissen 6 der vorherigen Schritte wird ein Erstellen (S8) der Contai ner-Instanz 4 durch Ausführen der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht des Contai ner-Images in Abhängigkeit des Abgleichens (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente 2 und/oder des Ab gleichens (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskom ponente 2 durchgeführt.

Das Abgleichens (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungs komponente 2 und/oder das Abgleichen (S7) der ersten Schicht- spezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente 2 können nach dem Erstellen der Container-Instanz 4, zur Laufzeit der Container-Instanz 4, periodisch und/oder eventgesteuert wiederholt (S10) wer den.

Das hat den Vorteil, dass zur Laufzeit von der Lizenzierungs komponente 2 überwacht wird, ob nicht-lizenzierte Container- Images, bzw. nicht-lizenzierte Konfigurationen (eine nicht- lizenzierte Auswahl an Layern/Schichten) von Container-Images auf der Plattform des Gerätes/in der Container- Laufzeitumgebung 1 laufen bzw. Container-Instanzen 4 vorhan den sind.

Fig. 3 zeigt links ein Schlüsselpaar 9. Das Schlüsselpaar 9 wird insbesondere von einem Lizenzgeber bereitgestellt. Das Schlüsselpaar weist einen öffentlichen Schlüssel 9a und einen privaten Schlüssel 9b auf. Das Schlüsselpaar 9 wird signiert (Schritt Sil) und insbesondere der private Schlüssel 9b in einem sicheren Schlüsselspeicher 11, insbesondere TPM, abge legt.

Das Schlüsselpaar wird verwendet, um einen Token 8 mit dem privaten Schlüssel 9b des Schlüsselpaares 9 zu signieren. Der Token 8 ist insbesondere ein Zeitstempel. Der öffentliche Schlüssel 9a und das signierte Token 8 werden an eine Contai ner-Laufzeitumgebung 1 weitergegeben. In der Container- Laufzeitumgebung 1 wird eine Container-Instanz 4 erstellt.

Fig. 3 zeigt rechts die Container-Instanz 4. Der Container- Instanz 4 wurde bei dem Erstellen (S8) der Token 8 durch die Lizenzierungskomponente 2 (dargestellt in Fig. 2) übergeben. Der Container-Instanz 4 wurde bei dem Erstellen (S8) außerdem der öffentliche Schlüssel 9a des Schlüsselpaares 9 übergeben.

Die Container-Instanz 4 weist eine Applikation 10 auf. Die Applikation validiert den öffentliche Schlüssel 9a (hinter legter Schlüssel des Lizenzgebers). Anschließend lädt die Ap- plikation 10 das Token 8, welches der Container-Instanz 4 bei dem Erstellen (S8) übergeben wurde. Außerdem lädt die Appli kation 10 einen Zeitwert, wobei der Zeitwert einen Wert in Abhängigkeit des Erstellens (S8) der Container-Instanz 4 an- gibt. Der Zeitwert gibt insbesondere an, wann die Container- Instanz 4 gestartet wurde und/oder wie lange die Container- Instanz 4 bereits läuft. Anschließend führt die Applikation ein Vergleichen des Tokens 8 mit dem Zeitwert durch. In Abhängigkeit von Ergebnissen des Vergleichens des Tokens 8 mit dem Zeitwert kann die Applikation 10 und die Container- Instanz 4 weiter laufen/aktiv sein oder ein Deaktivieren der Applikation 10 und ein Deaktivieren der Container-Instanz 4 durchgeführt werden.

Obwohl die Erfindung im Detail durch die Ausführungsbeispiele näher illustriert und beschrieben wurde, ist die Erfindung durch die offenbarten Beispiele nicht eingeschränkt und ande re Variationen können vom Fachmann daraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.

Bezugszeichenliste

1 Container-Laufzeitumgebung

2 Lizenzierungskomponente 3 LizenzInformation

4 Container-Instanz

5 Gerät

6 Ergebnisse 7 Geräteschlüssel/Schlüssel 8 Tokens/Datenelement 9 Schlüsselpaare

9a öffentlicher Schlüssel

9b privater Schlüssel