WO2021228581A1 - Erstellen einer container-instanz mit an hardware gebundene lizensüberprüfung - Google Patents

Erstellen einer container-instanz mit an hardware gebundene lizensüberprüfung Download PDF

Info

Publication number
WO2021228581A1
WO2021228581A1 PCT/EP2021/061402 EP2021061402W WO2021228581A1 WO 2021228581 A1 WO2021228581 A1 WO 2021228581A1 EP 2021061402 W EP2021061402 W EP 2021061402W WO 2021228581 A1 WO2021228581 A1 WO 2021228581A1
Authority
WO
WIPO (PCT)
Prior art keywords
layer
container
specific data
licensing
license information
Prior art date
Application number
PCT/EP2021/061402
Other languages
English (en)
French (fr)
Inventor
Christian Peter Feist
Christian Knierim
Original Assignee
Siemens Aktiengesellschaft
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 Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO2021228581A1 publication Critical patent/WO2021228581A1/de

Links

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]

Definitions

  • the present invention relates to a method for creating a container instance in a container runtime environment on a device, an associated computer program product and an associated computer-readable medium.
  • licenses can support various features and applications. These licenses can also build on one another. For example, basic features are made available to a customer with the cheapest license; further functionalities that build on one another, such as better graphic designs, are activated with an extended license while the application remains the same. Such a method is used, for example, in operating systems for firewalls and is particularly interesting for container-based IoT devices.
  • the software is transferred in a container image, which is delivered in a standardized format.
  • Container images that follow the standard are layer-based and build on one another.
  • Layer-based or also referred to as "layer-based” means in this context that every operation (e.g. adding a file, installing a package) that is applied to a container image when it is being built is replaced by a separate layer in the container image.
  • Starting a container (partial) image means in this context that a container instance is started whose file system is the said container (partial) image. The container instance therefore only sees the files contained in the (partial) image and not the complete image.
  • containerized applications can also be licensed in that hardware-specific information from the underlying runtime environment is passed on to the container instances via environment variables and evaluated by the application, or applications can access hardware-specific interfaces to verify licensing within the container instance Will be provided.
  • the license file can be stored locally on the device, a server, or in a smart card chip, among other things.
  • the corresponding functions can be individually encrypted so that they can only be used with a valid license.
  • the object of the invention is to provide a solution for licensing container instances.
  • the invention relates to a method for creating a Con tainer instance in a container runtime environment on a device.
  • the procedure includes the steps:
  • the container image having at least one first layer and at least one second layer, the at least one second layer being based on the at least one first layer
  • the license information first device has specific data on the device, and wherein the license information has first layer-specific data, where the first layer-specific data contain a licensing of the at least one second layer,
  • One aspect of the invention is to provide a method which enables a step-by-step activation of features requiring licensing in a container instance and which prevents unlicensed layers of a container image from starting.
  • a container image is generally delivered in a standardized format.
  • container images contain several layers, i.e. they are layer-based and build on one another.
  • Layer-based or also referred to as "layer-based” means in this context that every operation (e.g. adding a file, installing a package) that is carried out on a container image the construction of which is used is represented by a separate layer in the container file system.
  • every operation e.g. adding a file, installing a package
  • a container image does not have to be started / executed completely, but only a subset of the operations applied to the image is used when it is started. This is achieved by only starting the first X layers of a container image and omitting the last / following Y operations on the container image.
  • the at least one first layer and the at least one second layer of the container image can contain several layers.
  • the first layers (at least one first layer) can be unencrypted or encrypted.
  • the other layers (at least one second layer) are encrypted. Layers can in turn build on the at least one first layer (in particular at least one third layer); these can be encrypted or unencrypted.
  • the licensing component can also be referred to as licensing software.
  • the licensing component can be provided by a giver of the license information and / or a giver of the container image.
  • the licensing component is tied to the device, in particular through a hardware-specific link.
  • the hardware-specific link means that the licensing component can only be used on the device for which it is specified.
  • the license information can also be referred to as a license file. Licensing can also be referred to as a license.
  • the license information specifies which device it is intended for, ie which device it is licensing for.
  • the license information specifies for which layers of the container image it is licensing. Since at least the at least one second layer is encrypted, the license information licenses at least the at least at least a second layer through the first layer-specific data. If the at least one first layer is also encrypted, the first layer-specific data also relate to the at least one first layer.
  • the license information can be stored in the container runtime environment, on the device, in an application and / or on a server.
  • the second layer-specific data can in particular be specified after processing a user input.
  • the user input can contain a selection of a layer (in particular the at least one first layer or the at least one second layer) of the container image which is to be executed. If a layer is selected, this layer and all of the layers that preceded it should be executed. The user input is then specified by the method in the second shift-specific data.
  • the licensing component loads second device-specific data for the device.
  • the second device-specific data contain data on the device on which the layers of the container image are to be executed and / or on which device the licensing component is running.
  • the licensing component can determine whether the device is licensed.
  • the first device-specific data contain in particular a maximum number of container instances that can be created and / or run and / or runtime parameters for the device (e.g. CPU ID).
  • the licensing component compares the first layer-specific data (contained in the license information) with the second layer-specific data (specified by processing a user input). It can thus be determined whether there is a valid licensing for the layers selected in particular by a user.
  • the container instance is then created by executing the at least one first layer and the at least one second layer of the container image. This step can depend on the results of the comparison of the first device-specific data (contained in the license information) with the second device-specific data and / or the comparison of the first layer-specific data (contained in the license information) with the second layer-specific data (by processing a User input specified).
  • the creation of the container instance can also be carried out if there is no valid licensing, a valid licensing is provided and, in particular, a license fee is subsequently charged.
  • This dependency has the effect that, depending on the result of the comparison, the execution, if it takes place, is carried out in a different form. In particular in the form that no further license fee is charged or in the form that an additional license fee is charged.
  • the invention offers the advantage that additional features and applications of the software located in the container instance can be activated directly by importing (new) license information on the underlying system, in particular the device. This has the advantage that there is no need to create a new container image that contains the license information issued to the customer. The invention offers the further advantage that the same container image can always be delivered to each customer regardless of the activated features and applications. A compromise here, however, is that the licensing component and container runtime environment in particular must be trustworthy.
  • the invention offers the further advantage that, since certain devices can be authorized to run an application of the container instance, container instances cannot be copied and run on unauthorized devices. Here, too, it is assumed that the licensing component and the container runtime environment in particular are worthy of trust.
  • the invention offers the further advantage that the usual up and down scaling of container instances in the container environment is possible by the proposed method on licensed platforms. This has the advantage that it is possible to react to variable loads.
  • the invention offers the further advantage that the first device-specific data (contained in the license information), in an extended variant, can also specify and license complete clusters of devices, which can also be designated as groups of devices.
  • the license information relates not only to a device on which the container instance is to run, but to the entire cluster of devices.
  • cluster-wide parameters can also be ter (especially the total number of container instances across the entire cluster).
  • the at least one second layer has encryption.
  • the at least one first layer has encryption. Encryption of the at least one first layer and the at least one second layer has the advantage that at least an entire first part of the container image is encrypted.
  • the step of creating the container instance by executing the at least one first layer and the at least one second layer includes Container images a decryption of the at least one first layer and / or the at least one second layer.
  • the first layer-specific data contain a licensing of the at least one first layer.
  • This has the advantage that, in addition to the licensing of the at least one second layer, there is also a licensing of the at least one first layer.
  • the licensing of the at least one first layer and the licensing of the at least one second layer enable the at least one first layer and the at least one second layer of the container image to be executed and a container instance based thereon to be created.
  • the license information and / or keys and / or certificates for validating the license information and / or the licensing component and / or the container image have a cryptographic signature.
  • the licensing component and the public information used to validate the license information borrowed keys and / or certificates are of integrity and authenticity. It is also assumed that the container runtime environment in particular is integer and authentic. This can be verified in particular by mechanisms such as secure boot when the device is started. Furthermore, the integrity and authenticity of the license information and / or keys and / or certificates for validating the license information and / or the licensing component can be verified at the runtime of the container instance (runtime health check).
  • the method has the further step of validating the license information by the licensing component.
  • the licensing component validates the signed licensing information (license) in particular with the aid of a certificate and / or public key (analogous to X509 root CAs) stored in the software or on a file system.
  • the validation components located in the container can either be implemented directly in an application of the container instance or addressed as a library integrated by the application will.
  • the first device-specific data and / or the second device-specific data have a device identifier of the device and / or a hardware serial number of the device and / or a chip identification identifier of the device and / or data from a Trusted Platform Module (TPM ) / trustworthy operating system mo- module of the device and / or data from a hardware security module (HSM) of the device.
  • TPM Trusted Platform Module
  • HSM hardware security module
  • the license information has a configuration file, the configuration file specifying licensing parameters.
  • the licensing parameters include
  • At least one container tag (short: day), the at least one container tag being linked to at least one second shift identifier and / or
  • the first layer identifier and / or the second layer identifier can also be referred to as the first layer ID and / or the second layer ID.
  • the first layer identifier and / or the second layer identifier have the advantage that they can be used for specifying the licensed layers.
  • the licensing component it is possible for the licensing component to validate a tag linked to the layer identifier / layer ID instead of the permitted layer identifier / layer ID. This has the advantage that the license information does not have to be reissued for new versions of the container image. The licensing component then also checks whether the container image was provided by the intended manufacturer and the signature of the container image.
  • the invention offers the further advantage that the licensing can be carried out on a tag-based basis in an extended variant. The advantage of this is that container images with different layer IDs (different software versions of the same container image) can be linked to the same license / license information. This has the advantage that the license information does not have to be reissued for each new version of the container image.
  • the identifier of the container image can also be designated as the name of the container image.
  • the main memory resources parameter specifies the maximum permissible RAM or CPU resources for the container instance.
  • the parameters of the container image specify, in particular, further parameters that are to be restricted to the container runtime environment for the container image.
  • the parameters of the device specify, in particular, device-specific features such as a MAC address and / or a serial number.
  • the container instance as a function of the results of the comparison of the first device-specific data with the second device-specific data by the licensing component and / or the comparison of the first layer-specific data with the second layer-specific data by the Licensing component carried out. This has the advantage that if there is no valid license information, the container instance is not started / created.
  • the licensing component is integrated into the container runtime environment as a plug-in and / or integrated into a library of the container runtime environment and / or integrated into the container runtime environment as a daemon / background program.
  • the background program in particular an independent daemon, can be contacted by the container runtime environment when the container instance is started.
  • the steps of comparing the first device-specific data with the second device-specific data by the licensing component and / or comparing the first layer-specific data with the second layer-specific data by the licensing component after the step of creating the container -Instance periodically and / or event-controlled repeatedly.
  • Periodically repeated means that the mentioned steps of the comparison are repeated at defined points in time, in particular cyclically or after certain time periods have elapsed.
  • Event-controlled repeated means that the mentioned steps of the synchronization are repeated when defined and / or detected events / events occur.
  • Such an event / event can in particular be the calling of an application of the container instance.
  • Event control can be implemented in particular through interaction with the container runtime environment or with the help of appropriate eBPF programs.
  • the container instance is used when the container instance is created
  • Data element in particular a token and / or a license certificate, is transferred by the licensing component, the data element being signed with a private key of a key pair, the data element having a first time value.
  • the first time value can be compared with a second time value from the creation of the container instance.
  • the second time value of the creation of the container instance can in particular contain the uptime of the container instance and / or the time at which the container instance was created.
  • the container instance is given a public key of the key pair when the container instance is created, the public key being signed.
  • This has the advantage that it can be checked whether the token was created on a known / trusted device or system. This makes it possible to find out, in particular from an application of the container instance, whether the token was issued by a licensed / known device, and the licensor can - as with the creation of X509 certificates - sign the public key of the issuing device and Inject as runtime variable when starting / creating the container instance.
  • the licensor's public key (trust anchor) must be stored in the application or library in a fixed and modification-proof manner, or it must be injected from the runtime environment (the container instance must have been injected as a runtime variable).
  • the method has the following further steps:
  • the second time value specifying a value depending on the creation of the container instance and - Comparison of the first time value with the second time value by the application.
  • the second time value specifies in particular the point in time when the container instance was created or the previous runtime, which can also be referred to as uptime, of the container instance.
  • the further steps of the procedure have the advantage that an independent check as to whether a valid licensing is available is carried out by an application of the container instance (application that runs in the container instance; application that is run after the container image has been executed in the Container instance is included) can be performed.
  • This check can be carried out in particular by transferring a token signed with a private (and appropriately protected) device key, in particular a time stamp, from the licensing component via runtime variables to the container instance at the start of the container instance.
  • the time stamp enables the containerized application to recognize whether the token is valid by checking whether the time stamp is identical to the start time / time of the start of the container instance.
  • This also has the advantage that removing / copying the file system of the container instance and creating a new container image with the same file system does not help, since the license check of the application in the container instance checks whether valid licensing information is available and / or whether the first time value matches the second time value.
  • the method also has a deactivation of the application and a deactivation of the container instance. This has the advantage that if the validation (comparing the token with the time value by the application) fails, the application and thus also the container instance terminate and only licensed applications and container instances run on the device.
  • the licensing component is also operated outside of the device on which the container instances run.
  • Kubernetes AdmissionControllers offer one implementation option. A specially developed license admission controller would have to be developed for this. If you want to carry out the runtime check described, however, it is necessary that additional components run on the devices on which the container instances run, which carry out the runtime check and, if necessary, stop container instances that are not appropriately licensed. Licensing outside the device would be possible if the licensing components on the devices have the token signed by the licensing component located outside the device.
  • the invention also comprises a computer program product, comprising a computer program, the computer program being loadable into a storage device of a computing unit, where the steps of a method according to the invention are carried out with the computer program when the computer program is executed on the computing unit.
  • the invention also includes a computer-readable medium on which a computer program is stored, the computer program being loadable into a storage device of a computing unit, the steps of a method according to the invention being carried out with the computer program when the computer program is executed on the computing unit.
  • Fig. 1 is a flow chart of the procedural method according to the invention
  • Fig. 2 is a schematic representation of the invention
  • FIG. 1 shows a flow chart of the method for creating a container instance 4 (shown in FIG. 2) in a Container runtime environment 1 (shown in Fig. 2) on a device 5 (shown in Fig. 2).
  • the procedure has the following steps:
  • Step S1 loading a container image into the container runtime environment, the container image having at least one first layer and at least one second layer, the at least one second layer being based on the at least one first layer,
  • Step S2 loading a licensing component 2 (shown in FIG. 2) into the container runtime environment 1, the licensing component 2 having a device-specific link to the device 5,
  • Step S3 Loading of license information 3 (shown in FIG. 2) into the container runtime environment 1, the license information 3 being the first device-specific data on the device
  • license information 3 has first layer-specific data, wherein the first layer-specific data contain a licensing of the at least one second layer,
  • Step S4 Specifying second layer-specific data, the second layer-specific data relating to the at least one first layer and the at least one second layer,
  • Step S5 loading of second device-specific data for the device 5 by the licensing component 2,
  • Step S6 comparison of the first device-specific data with the second device-specific data by the licensing component 2,
  • Step S7 comparison of the first layer-specific data with the second layer-specific data by the licensing component 2 and
  • Step S8 Create the container instance 4 by executing the at least one first layer and the at least one second layer of the container image depending on the comparison S6 of the first device-specific data with the second device-specific data by the licensing component 2 and / or the adjustment S7 of the first shift specific data with the second layer-specific data by the licensing component 2.
  • step S8 the creation of the container instance 4, the container instance 4 is given a token 8 (shown in FIG. 3) by the licensing component 2, the token 8 being assigned a private key 9b (shown in FIG. 3) a key pair 9 (shown in Fig. 3) is signed.
  • step S8 the creation of the container instance 4, the container instance 4 is given a public key 9a (shown in FIG. 3) of the key pair 9, where the public key 9a is signed.
  • the method also has the step S9, validation of the license information by the licensing component 2.
  • step S6 matching the first device-specific data with the second device-specific data by the licensing component 2, and / or step S7, matching the first layer-specific data with the second layer-specific data by the licensing component 2, are carried out after step S8, creating the Container instance 4, periodically and / or event-controlled in step S10 fetches again.
  • FIG. 2 shows components of the method for creating a container instance 4 in a container runtime environment 1 on a device 5.
  • a container image is loaded into the container runtime environment (S1).
  • the container image has at least a first layer and at least a second layer.
  • the at least one first layer and the at least one second layer each have a plurality of layers.
  • the at least one first layer can in particular have X layers and the at least one second layer in particular Y exhibit.
  • X and Y are natural numbers.
  • At least one third layer can follow and build on the at least one second layer.
  • the at least one second layer builds on the at least one first layer. This means that the at least one second layer can only be carried out if the at least one first layer is also being or has been carried out.
  • the at least one second layer has cryptographic encryption. This means that the at least one second shift must be decrypted before it can be executed.
  • a specification (S4) of second layer-specific data is carried out based on a user query via a device.
  • a user can in particular want to execute the at least one first layer and the at least one second layer of the container image.
  • the second layer-specific data specify a set of layers that a user wants to carry out and refer to the at least one first layer and the at least one second layer.
  • a licensing component 2 is loaded into the container runtime environment 1 (S2).
  • the licensing component 2 has a device-specific link to the device 5.
  • license information 3 is loaded into the container runtime environment 1 (S3).
  • the license information 3 has first device-specific data on the device 5.
  • the first device-specific data specify the device 5 to which the license information 3 applies.
  • the license information 3 also has first layer-specific data.
  • the first layer-specific data contain a licensing of the at least one second layer.
  • the first layer-specific data specify the layers for which the license information 3 applies.
  • second device-specific data for the device 5 are loaded by the licensing component 2 (S5).
  • the second device-specific data in particular provide information about the device 5 of the container runtime environment.
  • the licensing component 2 validates the license information 3 and device key / key 7 of the license information 3. This checks whether the license information 3 is valid and was issued by a trustworthy / known device.
  • the licensing component 2 compares (S6) the first device-specific data with the second device-specific data and the licensing component 2 compares (S7) the first layer-specific data with the second layer-specific data. In this way, the licensing component 2 can determine whether the device is licensed and whether there is valid licensing for the layers selected in particular by the user.
  • the container instance 4 is created (S8) by executing the at least one first layer and the at least one second layer of the container image depending on the comparison (S6) of the first device-specific data with the second device-specific data by the licensing component 2 and / or the comparison (S7) of the first layer-specific data with the second layer-specific data is carried out by the licensing component 2.
  • the comparison (S6) of the first device-specific data with the second device-specific data by the licensing component 2 and / or the comparison (S7) of the first layer Specific data with the second layer-specific data by the licensing component 2 can be repeated periodically and / or event-controlled (S10) after the container instance 4 has been created, during the runtime of the container instance 4.
  • the 3 shows a key pair 9 on the left.
  • the key pair 9 is provided in particular by a licensor.
  • the key pair has a public key 9a and a private key 9b.
  • the key pair 9 is signed (step Sil) and in particular the private key 9b is stored in a secure key memory 11, in particular TPM.
  • the key pair is used to sign a token 8 with the private key 9b of the key pair 9.
  • the token 8 is in particular a time stamp.
  • the public key 9a and the signed token 8 are passed on to a container runtime environment 1.
  • a container instance 4 is created in the container runtime environment 1.
  • FIG. 3 shows the container instance 4 on the right.
  • the container instance 4 was transferred by the licensing component 2 (shown in FIG. 2).
  • the public key 9a of the key pair 9 was also transferred to the container instance 4 when it was created (S8).
  • the container instance 4 has an application 10.
  • the application validates the public key 9a (stored key of the licensor).
  • the app then loads plication 10 the token 8, which was transferred to the container instance 4 when it was created (S8).
  • the application 10 loads a time value, the time value specifying a value depending on the creation (S8) of the container instance 4.
  • the time value indicates in particular when the container instance 4 was started and / or how long the container instance 4 has already been running.
  • the application compares the token 8 with the time value. Depending on the results of the comparison of the token 8 with the time value, the application 10 and the container instance 4 can continue to run / be active or the application 10 and the container instance 4 can be deactivated.

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

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

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.
PCT/EP2021/061402 2020-05-13 2021-04-30 Erstellen einer container-instanz mit an hardware gebundene lizensüberprüfung WO2021228581A1 (de)

Applications Claiming Priority (2)

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

Publications (1)

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

Family

ID=75914488

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (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
EP3376378A1 (de) * 2017-03-17 2018-09-19 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zur verwaltung von containerlizenzen
US20190392117A1 (en) * 2018-06-20 2019-12-26 Microsoft Technology Licensing, Llc Secure sharing of license data in computing systems

Family Cites Families (1)

* 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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3376378A1 (de) * 2017-03-17 2018-09-19 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zur verwaltung von containerlizenzen
US20190392117A1 (en) * 2018-06-20 2019-12-26 Microsoft Technology Licensing, Llc Secure sharing of license data in computing systems

Also Published As

Publication number Publication date
DE102020206039A1 (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
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
DE112005001666B4 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE10008973B4 (de) Autorisierungsverfahren mit Zertifikat
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
EP3488557A1 (de) Absichern einer gerätenutzungsinformation eines gerätes
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
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
DE102013108022A1 (de) Verfahren zum Aktivieren des Entwicklungsmodus eines gesicherten elektronischen Steuergeräts
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
WO2019201598A1 (de) Verfahren und ausführungsumgebung zum ausführen von programmcode auf einem feldgerät
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
EP3422274A1 (de) Verfahren zur konfiguration oder änderung einer konfiguration eines bezahlterminals und/oder zur zuordnung eines bezahlterminals zu einem betreiber
WO2021228581A1 (de) Erstellen einer container-instanz mit an hardware gebundene lizensüberprüfung
WO2022008201A1 (de) Verfahren zur erweiterten validierung eines containerabbilds
EP2434424B1 (de) Verfahren zur Erhöhung der Sicherheit von sicherheitsrelevanten Online-Diensten
DE10340411B4 (de) Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
EP1740418B1 (de) Authentisierung einer fahrzeugexternen vorrichtung
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP4154139B1 (de) Erweiterte integritätsüberwachung eines containerabbildes
EP1671201B1 (de) Einräumung eines zugriffs auf ein computerbasiertes objekt
DE102015209714A1 (de) Vorrichtung und Verfahren zum Anpassen einer Nutzung eines Geräts

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21725422

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21725422

Country of ref document: EP

Kind code of ref document: A1