DE102020206039A1 - Erstellen einer Container-Instanz - Google Patents

Erstellen einer Container-Instanz Download PDF

Info

Publication number
DE102020206039A1
DE102020206039A1 DE102020206039.8A DE102020206039A DE102020206039A1 DE 102020206039 A1 DE102020206039 A1 DE 102020206039A1 DE 102020206039 A DE102020206039 A DE 102020206039A DE 102020206039 A1 DE102020206039 A1 DE 102020206039A1
Authority
DE
Germany
Prior art keywords
layer
container
specific data
licensing
license information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102020206039.8A
Other languages
English (en)
Inventor
Christian Peter Feist
Christian Knierim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102020206039.8A priority Critical patent/DE102020206039A1/de
Priority to PCT/EP2021/061402 priority patent/WO2021228581A1/de
Publication of DE102020206039A1 publication Critical patent/DE102020206039A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Die Erfindung beschreibt ein Verfahren zum Erstellen einer Container-Instanz (4) in einer Container-Laufzeitumgebung (1) auf einem Gerät (5) mit den Schritten:- Laden (S1) eines Container-Images, welches mindestens eine erste Schicht und mindestens eine zweite Schicht aufweist, in die Container-Laufzeitumgebung,- Laden (S2) einer Lizenzierungskomponente (2, welche eine gerätespezifische Bindung zu dem Gerät (5) aufweist, in die Container-Laufzeitumgebung (1),- Laden (S3) einer Lizenzinformation (3) in die Container-Laufzeitumgebung (1), wobei die Lizenzinformation (3) erste gerätespezifische Daten zu dem Gerät (5) und erste schichtspezifische Daten aufweist,- Spezifizieren (S4) zweiter schichtspezifischer Daten,- Laden (S5) zweiter gerätespezifische Daten zu dem Gerät (5) ,- Abgleichen (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten und Abgleichen (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente (2) und- Erstellen (S8) der Container-Instanz (4) durch Ausführen der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren zum Erstellen einer Container-Instanz in einer Container-Laufzeitumgebung auf einem Gerät, ein zugehöriges Computerprogrammprodukt und ein zugehöriges computerlesbares Medium.
  • Beschreibung des Stands der Technik
  • Eine Software kann abhängig von Lizenzen verschiedene Merkmale und Anwendungen unterstützen. Diese Lizenzen können auch aufeinander aufbauen. Beispielsweise werden mit einer günstigsten Lizenz einem Kunden Basisfeatures zur Verfügung gestellt, weitere aufeinander aufbauende Funktionalitäten wie z.B. bessere grafische Ausarbeitungen werden mit einer erweiterten Lizenz bei gleichbleibender Applikation zugeschaltet. Ein solches Verfahren wird beispielsweise in Betriebssystemen für Firewalls angewandt und ist im Speziellen auch für containerbasierte 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. Container-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, 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 gestartet/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 Container-Image nur die ersten X Layer gestartet werden und die letzten/folgenden Y Operationen auf dem Container-Image ausgelassen werden. Starten eines Container-(Teil-)Images bedeutet 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 Container-Instanz auswerten. Folglich muss die für die Lizenzierung erforderliche Information im Container-Image selbst zur Verfügung gestellt werden oder über Lizenzserver bezogen werden. Problem ist hierbei, dass Container-Instanzen ohne zusätzliche Maßnahmen nicht an die darunterliegende Hardware gebunden sind und somit das Thema Lizenzierung innerhalb einer Container-Instanz nicht die unberechtigte Benutzung auf nicht lizenzierter Hardware berücksichtigt.
  • Alternativ können containerisierte Anwendungen ebenfalls lizenziert 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 Lizenzierung innerhalb der Container-Instanz zur Verfügung gestellt werden.
  • Allgemein sind unterschiedliche Ausprägungen einer Softwarelizenzierung bekannt. Die Verwendung einer Software, oder bestimmter Features, kann beispielsweise an ein Gerät (nodelocking), ein Benutzerkonto (user-based), oder an autorisierte 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 unautorisiertem Kopieren, reverse Engineering, oder Verwendung von kostenpflichtigen Features, verschlüsseln oder instrumentieren 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 Verwendung nur mit einer gültigen Lizenzierung möglich ist.
  • Die Aufgabe der Erfindung besteht darin, eine Lösung zur Lizenzierung 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 Container-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 gerätespezifische Bindung zu dem Gerät aufweist,
    • - Laden einer Lizenzinformation in die Container-Laufzeitumgebung, wobei die Lizenzinformation erste gerätespezifische Daten zu dem Gerät aufweist, und wobei die Lizenzinformation erste schichtspezifische Daten aufweist, wobei 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 Lizenzierungskomponente,
    • - Abgleichen der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente und
    • - Erstellen der Container-Instanz durch Ausführen der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht des Container-Images.
  • Ein Aspekt der Erfindung besteht darin, ein Verfahren bereitzustellen, welches ein schrittweises Freischalten lizenzierungspflichtiger Merkmale in einer Container-Instanz ermöglicht 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 gestartet/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 Container-Image nur die ersten X Layer gestartet werden und die letzten/folgenden Y Operationen auf dem Container-Image ausgelassen werden.
  • In der mindestens einen ersten Schicht sowie in der mindestens einen zweiten Schicht des Container-Images können jeweils mehrere Schichten enthalten sein. Die ersten Schichten (mindestens eine erste Schicht) kann unverschlüsselt sein oder verschlüsselt sein. Die weiteren Schichten (mindestens eine zweite Schicht) ist verschlüsselt. Auf die mindestens eine erste Schicht können wiederrum Schichten aufbauen (insbesondere mindestens eine dritte Schicht), diese können verschlüsselt oder unverschlüsselt sein.
  • Die Lizenzierungskomponente kann auch als Lizenzierungssoftware bezeichnet werden. Die Lizenzierungskomponente kann von einem Geber der Lizenzinformation und/oder Geber des Container-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 verwendbar ist, für welche sie spezifiziert ist.
  • Die Lizenzinformation kann auch als Lizenzdatei bezeichnet werden. Die Lizenzierung kann auch als Lizenz bezeichnet werden. 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 mindestens eine zweite Schicht durch die ersten schichtspezifischen Daten. Falls auch die mindestens eine erste Schicht verschlüsselt ist, beziehen sich die ersten schichtspezifischen Daten auch auf die mindestens eine erste Schicht. Die Lizenzinformation kann in der Container-Laufzeitumgebung, auf dem Gerät, in einer Applikation und/oder auf einem Server hinterleget sein.
  • Die zweiten schichtspezifischen Daten können insbesondere nach Verarbeiten einer Benutzereingabe spezifiziert werden. Die Benutzereingabe kann eine Auswahl einer Schicht (insbesondere 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 ausgeführt werden. Anschließend wird die Benutzereingabe vom Verfahren in den zweiten schichtspezifischen Daten spezifiziert.
  • Die Lizenzierungskomponente lädt zweite gerätespezifische Daten zu dem Gerät. Die zweiten gerätespezifischen Daten enthalten Daten dazu, auf welchem Gerät die Schichten des Container-Images ausgeführt werden soll und/oder auf welchem Gerät die Lizenzierungskomponente läuft. So kann die Lizenzierungskomponente durch das Abgleichen der ersten gerätespezifischen Daten (enthalten in der Lizenzinformation) mit den zweiten gerätespezifischen Daten feststellen, ob das Gerät lizensiert ist. Die ersten gerätespezifischen Daten beinhalten insbesondere eine maximale Anzahl an Container-Instanzen, welche erstellt und/oder laufen dürfen und/oder Laufzeitparameter für das Gerät (z.B. CPU-ID).
  • Außerdem führt die Lizenzierungskomponente ein Abgleichen der ersten schichtspezifischen Daten (enthalten in der Lizenzinformation) 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 mindestens einen zweiten Schicht des Container-Images durch geführt. Dieser Schritt kann abhängig von Ergebnissen des Abgleichens der ersten gerätespezifischen Daten (enthalten in der Lizenzinformation) mit den zweiten gerätespezifischen Daten und/oder des Abgleichens der ersten schichtspezifischen Daten (enthalten in der Lizenzinformation) mit den zweiten schichtspezifischen Daten (durch Verarbeiten einer Benutzereingabe spezifiziert) durchgeführt werden. Insbesondere kann das Erstellen der Container-Instanz auch durchgeführt werden, wenn keine gültige Lizenzierung vorliegt, eine gültige Lizenzierung bereitgestellt werden und insbesondere eine Lizenzgebühr anschließend erhoben werden.
  • Die Erfindung bietet den Vorteil, dass zusätzliche Merkmale und Anwendungen der in der Container-Instanz befindlichen Software direkt durch Einspielen einer (neuen) Lizenzinformation 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 Lizenzinformation 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 insbesondere die Lizenzierungskomponente und Container-Laufzeitumgebung vertrauenswürdig sein müssen.
  • Die Erfindung bietet den weiteren Vorteil, dass die Lizenzinformation auch im Container-Umfeld gerätespezifisch ausgestellt werden können. Das Kopieren der Lizenzinformation inklusive entsprechendem Container-Image von dem Gerät auf ein anderes Gerät, dessen Lizenzierungskomponente und Container-Laufzeitumgebung nicht modifiziert wurde, wird somit verhindert.
  • 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 laufen. Auch hier wird angenommen, dass insbesondere die Lizenzierungskomponente und Container-Laufzeitumgebung vertrauenswürdig sind.
  • Die Erfindung bietet den weiteren Vorteil, dass das im Container-Umfeld übliche Hoch- und Runterskalieren von Container-Instanzen durch das vorgeschlagene Verfahren auf lizenzierten 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 Geräten, auch als Gruppen von Geräten bezeichenbar, spezifizieren und lizensieren können. In diesem Fall bezieht sich die Lizenzinformation nicht nur auf ein Gerät, auf dem die Container-Instanz laufen soll, sondern auf den gesamten Cluster von Geräten. In diesem Fall können auch Cluster-weite Parameter (insbesondere Gesamtanzahl der Container-Instanzen über den gesamten Cluster) eingeschränkt werden.
  • In einer Weiterbildung der Erfindung weist die mindestens eine 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 mindestens eine zweite Schicht die Verschlüsselung auf, so beinhaltet in einer Weiterbildung der Erfindung der Schritt des Erstellens 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 vorliegt. Die Lizenzierung der mindestens einen ersten Schicht und die Lizenzierung der mindestens einen zweiten Schicht ermöglichen, dass die mindestens eine erste Schicht und die mindestens eine zweite Schicht des Container-Images ausgeführt werden kann und eine darauf basierende Container-Instanz erstellt werden kann.
  • In einer weiteren Weiterbildung der Erfindung weist die Lizenzinformation und/oder Schlüssel und/oder Zertifikate zum Validieren der Lizenzinformation und/oder die Lizenzierungskomponente und/oder das Container-Image eine kryptographische Signatur auf.
  • Dies hat den Vorteil, dass die Lizenzierungskomponente, sowie die zur Validierung der Lizenzinformation verwendeten öffentlichen Schlüssel und/oder Zertifikate integer und authentisch sind. Außerdem wird angenommen, dass insbesondere die Container-Laufzeitumgebung (Container-Runtime) integer und authentisch 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 Lizenzinformation und/oder Schlüssel und/oder Zertifikate zum Validieren der Lizenzinformation und/oder die Lizenzierungskomponente zur Laufzeit der Container-Instanz verifiziert werden (Runtime Health Check).
  • Es wird dabei angenommen und sichergestellt, dass die Lizenzierungskomponente, 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 Verfahren den weiteren Schritt eines Validierens der Lizenzinformation durch die Lizenzierungskomponente auf. Die Lizenzierungskomponente validiert hierzu insbesondere mit Hilfe eines fest in der Software oder auf einem Dateisystem hinterlegten 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 Lizenzinformation verwendeten öffentlichen Schlüssel und/oder Zertifikate) können entweder direkt in einer Applikation der Container-Instanz implementiert sein oder als von der Applikation eingebundene Bibliothek angesprochen werden.
  • In einer weiteren Weiterbildung der Erfindung weisen die ersten gerätespezifischen Daten und/oder die zweiten gerätespezifischen 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 Betriebssystemmoduls des Geräts und/oder Daten eines Hardwaresicherheitsmoduls (HSM) des Geräts auf. Das hat den Vorteil, dass durch die Lizenzierungskomponente, eine hardware-bezogene Lizenzprüfung/Prüfung der Lizenzierungsinformation durchführbar ist.
  • In einer weiteren Weiterbildung der Erfindung weist die Lizenzinformation eine Konfigurationsdatei auf, wobei die Konfigurationsdatei Lizenzierungsparameter spezifiziert. Die Lizenzierungsparameter beinhalten
    • - mindestens eine erste Schichtkennung und/oder
    • - mindestens ein Container-Tag (kurz: Tag), wobei das mindestens eine Container-Tag mit mindestens einer zweiten Schichtkennung 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önnen auch als erste Schicht-ID und/oder zweite Schicht-ID bezeichnet werden. Die erste Schichtkennung und/oder zweite Schichtkennung haben den Vorteil, dass sie für eine Spezifikation der lizensierten Schichten verwendet werden können.
  • In einer alternativen Variante ist es möglich, dass die Lizenzierungskomponente statt der erlaubten Schichtkennung/Layer-ID ein mit der Schichtkennung/Layer-ID verknüpftes Tag validiert. Dies hat den Vorteil, dass die Lizenzinformation nicht für neue Versionen des Container-Images neu ausgestellt werden muss. Die Lizenzierungskomponente überprüft dann zusätzlich, ob das Container-Image von dem vorgesehenen Hersteller bereitgestellt wurde und die Signatur des Container-Images.
  • Die Erfindung bietet den weiteren Vorteil, dass die Lizenzierung in einer erweiterten Variante Tag-basiert erfolgen kann. Der Vorteil hiervon ist, dass Container-Images mit unterschiedlichen Schichtkennung/Layer-IDs (unterschiedliche Software-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 Version des Container-Images neu ausgestellt werden muss.
  • Der Bezeichner des Container-Images ist auch als Name des Container-Images bezeichenbar. Der Arbeitsspeicherressourcenparameter 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 Erstellen der Container-Instanz in Abhängigkeit von Ergebnissen des Abgleichens der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente und/oder des Abgleichens der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente durchgeführt. Das hat den Vorteil, dass falls keine gültige Lizenzinformation vorliegt, die Container-Instanz nicht gestartet/erstellt wird.
  • In einer weiteren Weiterbildung der Erfindung ist die Lizenzierungskomponente als Plugin in die Container-Laufzeitumgebung eingebunden und/oder in eine Bibliothek der Container-Laufzeitumgebung eingebunden und/oder als Daemon/Hintergrundprogramm in die Container-Laufzeitumgebung eingebunden. Das Hintergrundprogramm, insbesondere eigenständiger 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 Lizenzierungskomponente und/oder des Abgleichens der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente nach dem Schritt des Erstellens der Container-Instanz periodisch und/oder eventgesteuert wiederholt.
  • Das hat den Vorteil, dass zur Laufzeit von der Lizenzierungskomponente ü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 ausschließlich Container-Instanzen mit entsprechend bekannten Container-Images erlaubt werden und nicht-bekannte Schichtkenner/Schichtkennungen/Layer-IDs gestoppt werden.
  • Die Erfindung bietet den weiteren Vorteil, dass kompromittierte Lizenzschlüssel zurückgezogen werden können.
  • Periodisch wiederholt bedeutet, dass die genannten Schritte des Abgleichens zu definierten Zeitpunkten, insbesondere zyklisch oder nach Ablauf bestimmter zeitlichen Perioden wiederholt werden. Eventgesteuert wiederholt bedeutet, dass die genannten Schritte des Abgleichens bei Eintreten definierter und/oder detektierter Events/Ereignisse wiederholt werden. Ein solches Event/Ereignis kann insbesondere das Aufrufen einer Applikation der Container-Instanz sein. Die Eventsteuerung kann insbesondere durch Interaktion mit der Container-Laufzeitumgebung oder mit Hilfe entsprechender eBPF-Programme umgesetzt werden.
  • In einer weiteren Weiterbildung der Erfindung wird der Container-Instanz, bei dem Erstellen der Container-Instanz, ein Datenelement, insbesondere ein Token und/oder ein Lizenzzertifikat, 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 zweiten Zeitwert des Erstellens der Container-Instanz verglichen werden kann. Der zweite Zeitwert des Erstellens der Container-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 Container-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 Applikation 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 öffentlichen 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 Verfahren die folgenden weiteren Schritte auf:
    • - Laden des Datenelements durch eine Applikation der Container-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 Erstellens 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 vorliegt durch eine Applikation der Container-Instanz (Applikation, 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 Container-Instanz von der Lizenzierungskomponente über Laufzeitvariablen der Container-Instanz ein mit einem privaten (und entsprechend geschütztem) Geräteschlüssel signiertem Token, insbesondere Zeitstempel, übergeben wird. Durch den Zeitstempel kann die containerisierte Applikation erkennen, ob das Token gültig ist, indem sie prüft, ob der Zeitstempel identisch mit dem Startzeitpunkt/Zeitpunkt des Starts der Container-Instanz ist.
  • Das hat den Vorteil, dass wenn ein Vergleich mit der Laufzeit/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 verifiziert ist, die Applikation weiß, dass sie in einer Umgebung (Gerät) ausgeführt wird, die durch den Lizenzgeber autorisiert 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 Verfahren außerdem ein Deaktivieren der Applikation und ein Deaktivieren der Container-Instanz. Das hat den Vorteil, dass falls die Validierung (Vergleichen des Tokens mit dem Zeitwert durch die Applikation) fehlschlägt, sich die Applikation und somit auch die Container-Instanz beendet und auf dem Gerät nur lizenzierte Applikationen und Container-Instanzen laufen.
  • Möchte der Lizenzgeber kompromittierte Lizenzen/Lizenzinformationen zurückziehen, ist das Vertrauen des Geräteschlüssels der Lizenzdatei über Listen analog zu Certificate Revocation Lists im X509-Umfeld gegenüber dem Lizenzgeber zu entziehen. Die Publikation der Liste kann er entweder ü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 Lizenzierungskomponente, auch außerhalb des Gerätes, auf dem die Container-Instanzen laufen, betrieben wird. Eine Umsetzungsmöglichkeit bieten beispielsweise Kubernetes AdmissionController. 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 entsprechend lizenzierte Container-Instanzen stoppen. Eine Lizenzierung außerhalb des Gerätes wäre möglich, wenn die Lizenzierungskomponenten 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, wobei mit dem Computerprogramm die Schritte eines erfindungsgemäß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 Recheneinheit ladbar ist, wobei mit dem Computerprogramm die Schritte eines erfindungsgemäßen Verfahrens ausgeführt werden, wenn das Computerprogramm auf der Recheneinheit ausgeführt wird.
  • Figurenliste
  • Die Besonderheiten und Vorteile der Erfindung werden aus den nachfolgenden Erläuterungen mehrerer Ausführungsbeispiele anhand der schematischen Zeichnungen ersichtlich.
  • Es zeigen
    • 1 ein Ablaufdiagramm des erfindungsgemäßen Verfahrens,
    • 2 eine schematische Darstellung erfindungsgemäßer Komponenten eines Erstellens einer Container-Instanz und
    • 3 eine schematische Darstellung erfindungsgemäßer Komponenten eines Betreibens einer Container-Instanz.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • 1 zeigt ein Ablaufdiagramm des Verfahrens zum Erstellen einer Container-Instanz 4 (dargestellt in 2) in einer Container-Laufzeitumgebung 1 (dargestellt in 2) auf einem Gerät 5 (dargestellt in 2). Das Verfahren weist folgende Schritte auf:
    • - Schritt S1: 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 (dargestellt in 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 2) 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 aufweist, wobei die ersten schichtspezifischen Daten eine Lizenzierung der mindestens einen zweiten Schicht beinhalten,
    • - Schritt S4: Spezifizieren zweiter schichtspezifischer Daten, wobei die zweiten schichtspezifischen Daten auf die mindestens 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 Lizenzierungskomponente 2,
    • - Schritt S7: Abgleichen der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente 2 und
    • - Schritt S8: Erstellen der Container-Instanz 4 durch Ausführen der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht des Container-Images.
  • Im Rahmen von Schritt S8, dem Erstellen der Container-Instanz 4, wird der Container-Instanz 4 ein Token 8 (dargestellt in 3) durch die Lizenzierungskomponente 2 übergeben, wobei der Token 8 mit einem privaten Schlüssel 9b (dargestellt in 3) eines Schlüsselpaares 9 (dargestellt in 3) signiert ist.
  • Im Rahmen von Schritt S8, dem Erstellen der Container-Instanz 4, wird der Container-Instanz 4 ein öffentlicher Schlüssel 9a (dargestellt in 3) des Schlüsselpaares 9 übergeben, wobei 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ätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente 2, und/oder Schritt S7, Abgleichen 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 wiederholt.
  • 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-Laufzeitumgebunggeladen (S1). Das Container-Image weist mindestens eine erste Schicht und mindestens eine zweite Schicht auf. Die mindestens eine erste Schicht und die mindestens eine zweite Schicht weisen jeweils mehrere Schichten auf. So kann die mindestens eine erste Schicht insbesondere X Schichten aufweisen 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 eine 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 kryptographische Verschlüsselung auf. Das bedeutet, dass die mindestens eine zweite Schicht bevor sie ausgeführt werden kann, entschlü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 schichtspezifischen 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 schichtspezifische Daten auf. Die ersten schichtspezifischen Daten beinhalten eine Lizenzierung der mindestens einen zweiten Schicht. Die ersten schichtspezifische Daten spezifizieren die Schichten, 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 Lizenzierungskomponente 2 die Lizenzinformation 3 und Geräteschlüssel/Schlüssel 7 der Lizenzinformation 3. Dadurch wird überprüft, ob die Lizenzinformation 3 valide ist und von einem vertrauenswürdigen/bekannten Gerät ausgestellt wurde.
  • Anschließend findet ein Abgleichen (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente 2 und ein Abgleichen (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente 2 statt. So kann die Lizenzierungskomponente 2 feststellen, ob das Gerät lizensiert ist und ob für die insbesondere von dem Benutzer ausgewählten Schichten eine gültige Lizenzierung vorliegt.
  • Anschließend und insbesondere in Abhängigkeit von Ergebnissen 6 der vorherigen Schritte wird ein Erstellen (S8) der Container-Instanz 4 durch Ausführen der mindestens einen ersten Schicht und der mindestens einen zweiten Schicht des Container-Images durchgeführt.
  • Das Abgleichens (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente 2 und/oder das Abgleichen (S7) der ersten schichtspezifischen 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) werden.
  • Das hat den Vorteil, dass zur Laufzeit von der Lizenzierungskomponente 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 vorhanden sind.
  • 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 S11) und insbesondere der private Schlüssel 9b in einem sicheren Schlüsselspeicher 11, insbesondere TPM, abgelegt.
  • 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 Container-Laufzeitumgebung 1 weitergegeben. In der Container-Laufzeitumgebung 1 wird eine Container-Instanz 4 erstellt.
  • 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 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 (hinterlegter Schlüssel des Lizenzgebers). Anschließend lädt die Applikation 10 das Token 8, welches der Container-Instanz 4 bei dem Erstellen (S8) übergeben wurde. Außerdem lädt die Applikation 10 einen Zeitwert, wobei der Zeitwert einen Wert in Abhängigkeit des Erstellens (S8) der Container-Instanz 4 angibt. 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 andere 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

Claims (15)

  1. Verfahren zum Erstellen einer Container-Instanz (4) in einer Container-Laufzeitumgebung (1) auf einem Gerät (5) mit den Schritten: - Laden (S1) 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 Container-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 aufweist, wobei die ersten schichtspezifischen Daten eine Lizenzierung 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 Lizenzierungskomponente (2), - Abgleichen (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente (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.
  2. Verfahren nach Anspruch 1, mit wobei die mindestens eine erste Schicht eine Verschlüsselung 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 Lizenzinformation (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 Lizenzierungskomponente (2).
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die ersten gerätespezifischen Daten und/oder die zweiten 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ürdigen 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 aufweist, wobei die Konfigurationsdatei Lizenzierungsparameter spezifiziert, wobei die Lizenzierungsparameter: - mindestens eine erste Schichtkennung und/oder - mindestens ein Container-Tag, wobei das mindestes eine Container-Tag mit mindestens einer zweiten Schichtkennung verknü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ängigkeit von Ergebnissen (6): - dem Abgleichen (S6) der ersten gerätespezifischen Daten mit den zweiten gerätespezifischen Daten durch die Lizenzierungskomponente (2) und/oder - dem Abgleichen (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente (2) durchgeführt wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Lizenzierungskomponente (2): - als Plugin in die Container-Laufzeitumgebung (1) eingebunden ist und/oder - in eine Bibliothek der Container-Laufzeitumgebung (1) eingebunden 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 Lizenzierungskomponente (2) und/oder - des Abgleichens (S7) der ersten schichtspezifischen Daten mit den zweiten schichtspezifischen Daten durch die Lizenzierungskomponente (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 Lizenzierungskomponente (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 Erstellens (S8) der Container-Instanz (4) angibt und - Vergleichen des ersten Zeitwerts (8) mit dem zweiten Zeitwert 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 Recheneinheit ausgeführt wird.
  15. Computerlesbares Medium, auf welchem ein Computerprogramm gespeichert ist, 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 Recheneinheit ausgeführt wird.
DE102020206039.8A 2020-05-13 2020-05-13 Erstellen einer Container-Instanz Ceased DE102020206039A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102020206039.8A DE102020206039A1 (de) 2020-05-13 2020-05-13 Erstellen einer Container-Instanz
PCT/EP2021/061402 WO2021228581A1 (de) 2020-05-13 2021-04-30 Erstellen einer container-instanz mit an hardware gebundene lizensüberprüfung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020206039.8A DE102020206039A1 (de) 2020-05-13 2020-05-13 Erstellen einer Container-Instanz

Publications (1)

Publication Number Publication Date
DE102020206039A1 true DE102020206039A1 (de) 2021-11-18

Family

ID=75914488

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020206039.8A Ceased DE102020206039A1 (de) 2020-05-13 2020-05-13 Erstellen einer Container-Instanz

Country Status (2)

Country Link
DE (1) DE102020206039A1 (de)
WO (1) WO2021228581A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4254174A1 (de) * 2022-03-30 2023-10-04 Siemens Aktiengesellschaft Verfahren zum erzeugen von softwarecontainern in einem build-prozess

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811806B1 (en) 2016-09-15 2017-11-07 International Business Machines Corporation Determining license use for composed container services in cloud platforms
US20180268115A1 (en) 2017-03-17 2018-09-20 Huawei Technologies Co., Ltd. Container License Management Method, and Apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11200300B2 (en) * 2018-06-20 2021-12-14 Microsoft Technology Licensing, Llc Secure sharing of license data in computing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811806B1 (en) 2016-09-15 2017-11-07 International Business Machines Corporation Determining license use for composed container services in cloud platforms
US20180268115A1 (en) 2017-03-17 2018-09-20 Huawei Technologies Co., Ltd. Container License Management Method, and Apparatus

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Digital Signature. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 02.05.2020. URL: https://en.wikipedia.org/w/index.php?title=Digital_signature&oldid=954364411 [abgerufen am 16.12.2020]
G., J.: Digging into Docker layers. 13. November 2016. URL: https://medium.com/@jessgreb01/digging-into-docker-layers-c22f948ed612 [abgerufen am 14.12.2020]
Public key certificate. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 01.05.2020. URL: https://en.wikipedia.org/w/index.php?title=Public_key_certificate&oldid=954262319 [abgerufen am 16.12.2020]
Trusted Timestamping. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 05.05.2020. URL: https://en.wikipedia.org/w/index.php?title=Trusted_timestamping&oldid=954975726 [abgerufen am 16.12.2020]
Use the AUFS storage driver. Docker Inc. URL: https://docs.docker.com/storage/storagedriver/aufs-driver/ archiviert durch: URL: https://archive.org am 05.01.2020 [abgerufen am 15.12.2020]

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4254174A1 (de) * 2022-03-30 2023-10-04 Siemens Aktiengesellschaft Verfahren zum erzeugen von softwarecontainern in einem build-prozess
WO2023186502A1 (de) * 2022-03-30 2023-10-05 Siemens Aktiengesellschaft Verfahren zum erzeugen von softwarecontainern in einem build-prozess

Also Published As

Publication number Publication date
WO2021228581A1 (de) 2021-11-18

Similar Documents

Publication Publication Date Title
DE69837303T2 (de) Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE112005001666B4 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
DE112005001654B4 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
EP1184771A1 (de) Verfahren zum Schutz von Computer-Software und/oder computerlesbaren Daten sowie Schutzgerät
DE102013108020A1 (de) Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät
DE102016205289A1 (de) Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
EP1741019A1 (de) Authentisierung von steuergeräten in einem fahrzeug
DE102016210788A1 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
WO2022008201A1 (de) Verfahren zur erweiterten validierung eines containerabbilds
DE102020206039A1 (de) Erstellen einer Container-Instanz
EP1740418B1 (de) Authentisierung einer fahrzeugexternen vorrichtung
EP3497606B1 (de) Individuelles verschlüsseln von steuerbefehlen
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
DE102010006432A1 (de) Verfahren und System zum Bereitstellen von EDRM-geschützten Datenobjekten
EP1671201B1 (de) Einräumung eines zugriffs auf ein computerbasiertes objekt
WO2023025642A1 (de) Sicheres betreiben einer industriellen steuerungsvorrichtung zusammen mit einem ai-modul
AT524619A1 (de) Computerimplementiertes Verfahren zum autorisierten Ausführen einer Software, System zur Datenverarbeitung, Computerprogrammprodukt und computerlesbares Speichermedium
DE102015207004A1 (de) Verfahren zum geschützten Zugriff auf Sicherheitsfunktionen eines Sicherheitsmoduls eines Hostsystems
EP4328772A1 (de) Kaskadiert signierbares artefakt einer container-instanz
DE102020002055A1 (de) Datenverarbeitungsvorrichtung zur Provisionierung eines Hardware-Prozessorsystems
DE10345468B4 (de) Verfahren zur sicheren Ausführung von Programmen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final