Binding application licenses to licenses of device
Generate encrypted license containers through the license agent device, and use the unique identifiers of the device and the licensor to solve the problems of inflexible and insufficient security in the prior art, and realize the equipment binding and high security of multiple licensors Use of grades.
Patent Information
- Application Number
- CN202380040486.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-03-15
- Filing Date
- 2023-03-14
- Publication Date
- 2024-12-27
AI Technical Summary
Existing license binding technology fails when equipment is replaced or component changes, and does not allow multiple licenses from different licensors, resulting in inflexibility and rigidity, making it difficult to meet the needs of higher security levels.
The license agent device generates and manages uniquely identified license containers, uses the device's specific data and random data to generate global unique identifiers, and combines the licensor's identity data for encryption, allowing multiple licensors to be bound to the device independently, and in Used effectively when the device exists.
It realizes more flexible and reliable licensing binding, supports the use of multiple licensors, improves the security and flexibility of the equipment, and adapts to different hardware changes and licensing needs.
Smart Images

Figure CN119213432A_ABST
Abstract
Description
[0001] The present invention relates to a license agent device for handling a license of an application of a licensor, wherein the license is bound to a device, to a device having specific data uniquely identifying the device, and to a system for handling a license of an application of a licensor and for allowing the application to be executed using the license, wherein the license is bound to the device. The present invention also relates to a corresponding method for handling a license bound to a device. The present invention also relates to a license container and to an extension container.
[0002] In the prior art, it is known that many applications, software or digital content only allow limited use if a valid license is present. The type of license varies in many ways depending on the required safety or security level. There are known machines in the art that only allow the execution of the machine if the user has the corresponding license. For example, it is known that a knitting machine only allows the production of a predetermined number of protected designs, such as a limited length of fabric panels for a certain pattern. It is also known that a specific pattern can only be produced during a predetermined time period, such as a few days or a limited number of production times. These restrictions are handled using restricted licenses, which are necessary to use the machine or content or to execute a certain application.
[0003] A typical license requires a license key in the form of an alphanumeric string or number that must be entered into the application during installation or first launch or use of the application or digital content on a computer.
[0004] Applications or machines that require a higher level of protection require a license or license key stored in a read-only memory stick with an encryption controller that allows access only to the licensed application or machine. These devices or dongles are complex, delicate and / or expensive.
[0005] Other licensing methods require a removable memory stick with a license signed by a certification authority. The license is bound to and limited to one licensor. These methods do not allow multiple licenses from different licensors. An example of this method can be found in EP3798872A1.
[0006] Another type of protection is met if the license is tied to a specific computer or computer system with various components. The license is then tied to the component. If the components of the system are changed or exchanged, the license becomes invalid. In addition, the license cannot be used with another system or computer, which makes the licensing method for special cases inconvenient, inflexible and rigid in practice. This method is described in EP2515499B1.
[0007] Abbreviations and terms used herein are explained below and will be used in the described context.
[0008] The object of the invention is to provide a more flexible but reliable method for authorizing the use of an application, a system or a machine etc. On the other hand, the authorization system should provide a high level of security.
[0009] The object is achieved by a license proxy device having the features of claim 1, a device having the features of claim 10, a licensor device having the features of claim 16, a system according to claim 17 and a license container according to claim 19. The object is also achieved by a method for creating an empty license container according to claim 21, a method for handling a license container containing a license according to claim 26, a method for filling an empty license container bound to a device with license-related data according to claim 27, and a method for using a license contained in an encrypted license container for an application according to claim 28.
[0010] In a first aspect of the present invention, a license proxy device for handling a license of an application of a licensor is provided, the license proxy device comprising a device interface for communicating with a device having specific data, and further comprising a processing unit for generating a license container, the license container being configured to maintain a license for the application. The device may optionally have a storage medium for storing data.
[0011] The processing unit is configured to determine specific data of a device connected via the device interface, to generate a globally unique identifier, so-called device unique identity data (D-UID), preferably randomly, based on the device specific data and random data, and optionally but preferably to use the L-UID as unique identity data of the licensor of the application to be licensed. The L-UID may be provided by the licensor of the application.
[0012] In addition, the processing unit of the license agent device is configured to create a license container containing at least a D-UID, a L-UID and a link value based on an application to be licensed (ABL), is configured to encrypt the license container using a licensor public key (pub-L-key), and is configured to provide an encrypted license container.
[0013] The license proxy device may be implemented as a computer or a machine or a part of a mechanism. The license proxy device may use components or elements with other machines, etc. (such as a processor or a processing unit). The license proxy device may also be implemented in software or as a program or application.
[0014] In another aspect of the present invention, a device is provided, the device having specific data characterizing the device and being configured to be bound to a license container, the license container being suitable for containing at least a license for an application. The device is configured to communicate with a license agent or license agent means to provide specific data for identifying the device and creating device unique identity data (D-UID).
[0015] In another aspect of the present invention, a licensor device includes a processor unit configured to receive a license container and to decrypt the license container using a private licensor key priv-L-key, to fill the license container with at least one of a group of data including at least a D-UID, a link value (ABL) based on an application to be licensed, a license parameter, and a license key for the application; and to encrypt the filled license container with a public device key. Alternatively, the licensor may create a new license container having the same content as the filled container.
[0016] In a further aspect of the invention, a system for handling a license of an application of a licensor and for allowing the application to be executed using the license is proposed. The system comprises a device having specific data characterizing the device and configured to be bound to a license container, the license container being adapted to contain at least a license for the application and being configured to provide specific data for identifying the device. The system further comprises a license agent or license agent means for handling a license container containing a license to execute the application to communicate with the device to read out the device specific data. The license in the license container is bound to the device based on the device specific data so that the application can be executed only if the license is valid and the device is present.
[0017] In another aspect of the present invention, a license container and an extension container are proposed. The license container contains at least one of the data of a group, the group including at least D-UID, D-UID-cert, a link value based on the application to be licensed, a license parameter, a license specification, and a license for executing the application, an application key and / or a license key, wherein the license container is preferably encrypted with a public license key and / or with a pub-D-key, and particularly preferably signed with a priv-L-key (private licensor key) and / or a priv-D-key, and further preferably is read-only for a license agent device that possesses a priv-D-key. The license container is preferably stored in the device, or alternatively stored in another preferably secure or protected location (such as a storage memory). For the license agent device, the license container is read-only and cannot be changed because the container is signed by the licensor with his priv-L-key. Otherwise, the licensor's signature will be damaged and the license in the container will become invalid.
[0018] The extension container is linked to the above-mentioned license container and is configured to be accessible using the priv-D-key. The extension container includes the current value of the counter, which is preferably stored in the device. Preferably, the extension container is not stored in the device. The extension container can be changed and manipulated by the license agent because the container is signed by the priv-D-key.
[0019] In another aspect of the present invention, a corresponding method, a computer program, and a non-transitory computer-readable recording medium are provided. The computer program includes program code components for causing the computer to perform the steps of the method disclosed herein when the computer program is executed on the computer. The non-transitory computer-readable recording medium has a computer program product stored therein. When executed by a processor, the computer program product causes the method disclosed herein to be performed.
[0020] Preferred embodiments of the invention are defined in the dependent claims. It shall be understood that the claimed method, system, computer program and medium have similar and / or identical preferred embodiments as the claimed system, in particular as defined in the dependent claims and as disclosed herein.
[0021] The present invention is based on the idea that a license for an application or computer program or any other digital content is bound to a device that can be uniquely identified. The type of binding can be defined by the licensor or rights holder of the application protected or guaranteed by the license. The binding method should bind the license to a specific set of one or more attributes of the device that the licensor can define. This idea and technology provide additional flexibility, which supports more flexible binding to a set of attributes that can be weighted, and in this case, only a subset of the defined attributes is required. The importance of the binding can depend on the weight of the attribute, which preferably can tolerate small changes in the hardware setup (i.e., the device). This can be important if one of the characteristics is the bad sector identification or bad sector number of the device.
[0022] As an alternative to binding to the properties or specific data of the device, according to the inventive concept, the licensor can also implement a customized binding method. In this case, it is preferred that the license can be updated to authorize or revoke authorization for specific functions or features of the application or content or to change the authorization conditions. This can be useful if the license is limited to a certain number of executions or limited to an expiration date.
[0023] The inventive method binds a license to a device, which may be, for example, a storage medium device having a storage medium. The device is preferably removable or detachable from a machine or a computer or another electronic device. The inventive method allows multiple devices of independent licensors to be bound to a license, wherein separate types of bindings may be implemented and provided. The type of binding may depend on the application to be protected by the license or on the licensor.
[0024] Furthermore and preferably, security and reliability can optionally be further increased if the device has a storage medium and additionally has a protected memory area. For example, this protected memory area can be a cryptographic processor or controller. The licenses included or contained in the license container can be stored in a publicly available storage area of the device, and the licenses can also be connected to data securely stored in the protected memory area. For example, these can be generation counters or another preferably non-resettable and monotonic counter, which, for example, indicates the number of updates or versions of the license data. The counter can also count the number of uses of the application or content to which the license is linked.
[0025] According to the inventive method, a license agent device or a license agent has the ability to create an empty license container bound to a device. The device preferably communicates with the license agent via a specific communication protocol (e.g., via a general API). The license agent or the processor unit of the license agent is configured to determine the specific data of the device and is configured to randomly generate device unique identification data (D-UID), which is based on the specific data of the device and represents a global unique identifier. The identifier can be an alphanumeric string or a random number. The license agent determines the private device key connected to or corresponding to the device based on the specific data, random data, and optionally based on the unique ID (L-UID) of the licenser. The created private device key (priv-D-key) is not stored in any location or at any time of processing. Only the random number (D-RND) and the L-UID (if applicable) are stored for later use. If the device has a memory, these data are preferably stored on the device. The license agent creates an empty license container without any license. The license container contains at least the generated device unique identification data (D-UID), the identity data (L-UID) of the licenser, and the link value based on the application to be licensed. This empty license container is encrypted using the licensor public key pub-L-key, which is the public key of the licensor encryption pair. This public key is publicly available. In addition, a public device key pub-D-key, which is the public key of the device's encryption pair, is created by the license agent using the private device key priv-D-key. The public device key is preferably also stored in the license container so that it will be available to the licensor and it can be used by the licensor later to encrypt a filled license container containing the license key. The license agent will then be able to decrypt the license container using his private device key priv-D-key.
[0026] The encrypted empty license container is provided by the Licensing Agent. The empty license container must be brought to the Licensor by any possible means. The empty license container can be transferred to the Licensor by transmitting it via the Internet, a wired or wireless connection or any other transport medium.
[0027] If the public device key is not included in the empty license container, the licensing agent must make it public so that the licensor can use it to encrypt the license container at a later stage.
[0028] There are only a few requirements for the device to which the licensor or the license container is bound. The device must be uniquely identified so that a reliable and secure binding can be established between the license container containing the license and the device. Thus, as a device, any arbitrary device can be used. Examples of suitable devices are memory cards or sticks, any available and removable storage medium, SD cards, internal hard disks or SSDs, mobile phones, smart card readers or any other device. For example, software that creates scans and uses a specific scanner may be protected by a license. In this case, the scanner can be the device to which the license is bound. The scanner must also be uniquely identifiable. In this case, it is possible to be able to execute the application only if there is a valid license and a scanner of that particular type or one specific scanner, respectively, is connected to and used by the application or the system on which the application is running. Even if a license is present, any other scanner will not work with the application because the license is bound to one specific scanner.
[0029] An advantage of the invention is that a specific communication protocol can be used for the communication between the licensing agent (LA) and the devices. The communication protocol makes it possible to address different devices and device types via a common mechanism.
[0030] In a preferred embodiment of the license proxy device, the processing unit is also configured to identify a device connected to a device interface. The device may be an internal device, or preferably a detachable device connected to the license proxy device via a communication interface. The interface is preferably a device interface. The license proxy device is also configured to load a communication protocol corresponding to the identified device, and it is configured to communicate and exchange data with the device using the communication protocol. A general API is preferably used. The preferred license proxy device allows different or any arbitrary devices to be connected to the license proxy device, thereby making it possible to communicate with the device. The types of devices are varied, so a variety of different devices can be used to work with the license proxy device. Therefore, the license and license container can be bound to almost any device with unique characteristics so that the device can be uniquely identified.
[0031] In a preferred embodiment of the licensing proxy device, the processing unit is further configured to determine a private device key (priv-D-key) of the device based on device specific data, based on the D-RND random number and optionally based on the L-UID. The processing unit is further configured to create a public device key (pub-D-key) based on the private device key (priv-D-key). The processing unit may also be configured to store the L-UID and / or the optional D-RND for later use; these data may be necessary to recreate or regenerate a private device key that is not stored anywhere. The L-UID and D-RND are stored at any medium, optionally preferably on the device itself if the device has a storage medium.
[0032] In a further preferred embodiment of the license proxy apparatus, the processing unit is configured to assign a private key priv-D-key of the device to the license container. Thus, any other device or system (such as a computer or machine) that possesses the publicly available public key pub-D-key of the device can clearly and explicitly verify that the license container belongs to the corresponding device and that the content of the license container has not been changed.
[0033] Furthermore, according to a preferred embodiment, the processing unit is configured to store the pub-D-key in the license container before encrypting the license container with the licensor's public key pub-L-key. This has the advantage that the licensor has direct access to the device's public key pub-D-key after decrypting the license container with his private key so that he can later encrypt the license container with the public device key pub-D-key. Thus, only a license proxy device that has access to the device's private key can restore or retrieve the license key from the container.
[0034] In another preferred embodiment, the processing unit of the license proxy device is configured to create a self-signed D-UID certificate. The certificate is created using the private device key priv-D-key, pub-D-key and D-UID to link the unique identification data D-UID of the device to the public key of the device. The certificate is signed by the private device key. The processing unit is also configured to store this D-UID certificate created in the license container. The storage occurs before the encryption of the license container.
[0035] A license container is called an "empty" license container because it contains no licenses, due to the absence of licenses.
[0036] It is further preferred that the processing unit is configured to retrieve device-specific data from a device connected via a device interface that has been used to create a private device key priv-D-key. Furthermore, the processing unit retrieves a D-RND random number that is preferably stored in the device and a L-UID that is preferably also stored in the device. The processing unit is also configured to recover or recreate the priv-D-key (if necessary) so that the license proxy device can decrypt the license container to use the contained information, preferably the contained license or license key. This is necessary if a license-protected application requests execution of the corresponding license.
[0037] In a further preferred embodiment, the processing unit is configured to receive a license container containing a license for the application. The license container is received from a licensor or a licensor device. The processing unit is preferably further configured to store the license container on a device, which is preferably connected to the license proxy device via a device interface. Thus, the license proxy can provide the license stored in the license container upon request.
[0038] In another preferred embodiment of the license proxy device, the processing unit is configured to allow the application to use the license contained in the license container after decrypting the license container. This is possible because the license proxy is able to decrypt the received license container and provide the contained license to the application.
[0039] In a further preferred embodiment, the processing unit of the license agent is configured to receive a license container containing a license for the corresponding application. The processing unit is further configured to verify the license container, preferably using a public licensor key available to the license agent. Preferably, the verification of the license container comprises a mathematical verification and / or a verification in terms of content. This may include checks on expected values or data types.
[0040] In a preferred embodiment of the system, a system for handling licenses of applications and for allowing the execution of applications using the licenses comprises a storage medium for storing applications, a processor unit for executing applications, and an application interface for communicating between a license proxy device and the processor unit to execute applications requiring execution licenses. The system also comprises a bidirectional interface for exchanging at least a license container between the license proxy device and a licensor device, the licensor device being configured to store the license in the license container. The license in the license container is bound to the device so that the application can be executed only if the license is valid and the device is present. Preferably, the license proxy device is configured to communicate with the application and to communicate and exchange data with the device, and if possible, i.e. if the device comprises an optional storage medium, the data is optionally and preferably stored in the device. More preferably, the device may comprise a storage medium so that the data and / or the license container may be stored in the device.
[0041] In another preferred embodiment, the system may include the license proxy device as described above.
[0042] With regard to the device having specific data characterizing the device, in a preferred embodiment, the device has a storage medium or storage area in which data can be stored. The device is preferably configured to store data, and more preferably configured to store a license container. The specific data of the device preferably comprises at least one member selected from the group comprising at least a serial number of the device, chip specification data, storage area specification data, bad sector information, device type, production data, a production badge of the device, security information stored in the device. The specific data may be provided by the device via an interface, or may be retrieved from a license agent via a communication interface.
[0043] In a preferred embodiment, a generic API is used for communication with the device.The communication preferably requires a direct connection of the removable device to a device interface or device connector of the license proxy apparatus.
[0044] Preferably, the device comprises a storage area, which is preferably password protected. The storage area may be a self-encrypting area of the device, or may be contained in such an area. Also preferably, the device has a cryptographic controller having storage capacity, preferably with an accessible allocated and access-protected address space. More preferably, the license container and / or the D-RND and / or the L-UID are stored in said password protected storage area or in the storage capacity of the cryptographic controller.
[0045] In addition, the cryptographic controller preferably comprises a non-resettable monotonic counter. The cryptographic controller and / or a storage capacity of the controller and / or a cryptographically protected storage area of the device can be used to implement a backup method for the licenses and / or the license container. The counter value of the optional counter or a copy of the license container can be stored in these areas.
[0046] In a preferred embodiment, a password protected area or another restricted area (such as a password controller) can only be accessed using a private device key priv-D-key.
[0047] An advantage of the present invention is that a license can be bound to any arbitrary device, preferably to a device with a storage medium, further preferably to a removable device. The license enables one or more functions of a feature on the device and the storage medium under zero or more conditions. For example, the conditions can be a unit counter or an expiration time. The license or license container preferably uses an encryption key to protect or enable functions and features. The license or license container can be bound to one or more attributes of a device, preferably to one or more attributes of a removable device. Preferably, the attributes or their combination are unique.
[0048] Optionally, if the device includes a removable storage medium providing a protected memory area, the license agent may use this to save information related to the license or license container, such as update counters or hashes, to additionally and optionally protect the license from being reset or manipulated.
[0049] The inventive method supports binding multiple licenses from multiple licensors to the same device, preferably to the same storage device, making it possible to independently authorize the use of software and features from several rights holders. The licenses can be updated and revoked individually and independently. The authorization to use functions and features as well as the conditions of use can be updated or revoked individually. The binding method can be defined individually for each license and / or for each licensor.
[0050] The advantage of the inventive method is that it supports devices or memory devices of various manufacturers. Optionally, proprietary protected memory areas of various manufacturers of devices can be supported.
[0051] A further advantage of the invention is that high reliability can be achieved by optionally adding redundancy. A backup of the license can be stored on a storage area of the device, preferably in a restricted and protected storage area. The backup can be used, for example, to restore the license in the event of an erroneous update.
[0052] The present invention allows the license itself to be programmed and created, updated or revoked on a device different from the device intended to enable the function or feature.
[0053] Advantageously, compatibility of licenses with various platforms from various manufacturers on various operating systems, hardware, CPU types, etc. can be easily and reliably supported. Optionally, the licenses on the storage medium or removable device can also be used as secure storage for key material or certificates. Each stored key and certificate can be updated or removed individually.
[0054] Optionally, the key derivation method that generates the keys used by the licenses to authorize functions and features (the device's private key) can use a "generation counter", which is basically an update counter for the licenses, making these licenses incompatible with other licenses or other versions of this license.
[0055] Additionally, and optionally, the license data may be redundantly stored on multiple storage media, such as on other removable storage devices and on the device or platform that performs the protected functions and features. Redundancy may be used as a backup for error handling and additional protection of the license from reset or tampering. Instead of multiple storage media, a storage area within an encryption controller or in a protected storage area may be used.
[0056] Alternatively and also preferably, the method may be applied to a non-removable device or a non-removable storage device embedded in an apparatus, device or platform running protected functions and features and / or protected applications or software.
[0057] Some relevant definitions and additional explanations are given below:
[0058] In general, encryption using a private / public key pair is always encryption using the public key. This ensures that anyone (who knows the public key) can perform encryption, and only the owner of the private key can perform decryption again.
[0059] Signing with a private / public key pair is always done with the private key. This ensures that anyone (who knows the public key) can verify the signature.
[0060] Encryption is done using a symmetric key. Here, the symmetric key must be usable for both encryption and decryption.
[0061] Keys and data in the present invention and corresponding system
[0062] Licensor or Licensor Equipment:
[0063] In the context of this text, the term "licensor" should be understood to mean a licensing device or licensing means and is not intended to mean the owner of a licensed application or the owner of a license or license key for an application, machine program, digital content, etc. protected by a license.
[0064] The abbreviations used have the following meanings:
[0065] App is an application protected by a license, so that execution or use is restricted and is only possible if a valid license is present. App or application also includes application, program, machine or mechanical program, digital content, software, etc.
[0066] L-UID Unique identifier of the licensor. In the simplest case, this can be the name of the licensor. L-UID-key is a private / public key pair used to identify the licensor. The licensor key consists of pub-L-key as the public key and priv-L-key as the private key.
[0067] L-UID-cert Certificate used to bind the L-UID to the L-UID-key (pub-L-key); issued by the licensor or a central certification authority; used by the licensing agent (or device, indirectly) to communicate with the licensor App Keys One or more symmetric and / or asymmetric keys required to operate the "App" application. This has the same meaning as a license or license key as used in this article. App keys or license keys are not included in the application, but they are required to run the application.
[0068] LA license agent, handles licenses, license requests from applications, and communications with licensors; creates an empty license container; checks the validity of the license container received from the licensor. Data required for the license agent to verify the L-UID-cert
[0069] Link Value The link value is based on the application to be licensed; may contain a request for permission, or may contain data describing the application requesting permission or the type of license, the license name with or without the licensor name, etc.
[0070] The device must have at least specific data to uniquely identify the device. The data must be configured to be read out by the license agent via a communication protocol. The device may include a storage memory so that data can be stored on the device. However, the device does not have to have a storage memory. In this case, the data to be preferably configured to be stored in the device will be stored in another location, such as in a system or computer containing the license agent, in a different storage medium (such as a hard disk, etc.). In a preferred embodiment, preferably, in addition to the storage memory, the device may also include a protected or access-restricted area or a password controller for storing data.
[0071] D-Comm is a communication protocol for specific devices.
[0072] D-UID is used to identify the globally unique identity data of the device; based on device specific data and based on a globally unique identifier, which can be, for example, an alphanumeric string or a random number, where the device specific data can be read out via a communication protocol (e.g. D-comm). D-UID-key is a private / public key pair for identification purposes. The device key (D-UID-key) includes a pub-D-key as a public key and a priv-D-key as a private key; the D-UID-key is created and disposed by the licensing agent LA; the priv-D-key is preferably not stored anywhere.
[0073] D-UID-cert A self-signed certificate that binds the D-UID to the (public) D-UID-key (pub-D-key).
[0074] If necessary, if the license container is used for multiple different licensors, the L-UID can also be stored in this certificate to ensure assignment to a specific licensor. The device's certificate is issued by the license proxy and is used by the licensor to check validity.
[0075] D-RND Random data of the device, which is used to determine the key; D-RND will be stored in the device (if applicable).
[0076] Storage / determination of data during operation
[0077] For data, the following describes how and where they are generated. Here is a description of where data is stored or how data is generated in control mode.
[0078] There are several options for storing data connected to the device:
[0079] -Stored in a protected area that can only be accessed via a special API.
[0080] -Stored in the public memory area of the device
[0081] -Stored in the memory of the device to which the device is connected.
[0082] Depending on the use, the technical field of application, the security requirements and / or the business model, one or other variant may be possible or advantageous.
[0083] D-UID-key
[0084] The private key of the device (priv-D-key) is a special case and is not stored. It is determined as needed. For this purpose, the measured specific values of the device and the stored random data are processed with the help of key derivation. From this, the actual private key (priv-D-key) of the device is determined.
[0085] Therefore, device specific data (described below), the licensor's data (eg L-UID) and a random component or random number D-RND are used. If necessary, the device specific data must undergo error correction measures to capture changes in the data (eg bad sector information).
[0086] The license proxy creates an empty license container:
[0087] 1. The application creates a request for a license container to the LA. The request may contain a link value based on the application to be licensed. In addition to the optional type of license container, the L-UID-cert is also transferred. The L-UID-cert may be available via the Internet or may be included in the application.
[0088] 2. LA checks the validity of L-UID-cert.
[0089] 3. Equipment identification
[0090] 4. Load the (optionally specific) communication protocol D-Comm into the device. This can be done as a DLL or other specification of the protocol. The protocol specification is stored on the device, allocated in the LA, or can be loaded from an external source.
[0091] 5. Determine device specific data from the device communicating with the LA.
[0092] These data can be, for example:
[0093] a.Serial number
[0094] b. Chip identification
[0095] c. Bad sector information
[0096] d. Special security information stored in the device, if possible. If the device has a storage medium and / or a restricted and / or protected area, the storage may be performed in a public area or a restricted and / or protected area of a memory element of the device, or may be performed in an alternative location (protected or unprotected), such as an alternative storage medium that is part of a computer or machine.
[0097] 6. Preferably, a deterministic component is used to randomly generate the D-UID, if possible.
[0098] 7. Determine the private D-UID-key (priv-D-key) as described above based on the device-specific data, the licensor's unique data (L-UID) and the random component D-RND. If necessary, the device-specific data must undergo error correction measures to capture changes in the data (e.g. bad sector information).
[0099] 8. If the device preferably has a storage medium, the random data D-RRN and L-UID used are stored on the device, or in an alternative location. This can be in a publicly accessible area, or in a protected area addressable only via a specific protocol (in the case where the protected area on the device is only addressable via a device-specific protocol).
[0100] 9. Calculate the public D-UID-key (pub-D-key) based on the private D-UID-key (priv-D-key).
[0101] 10. Create D-UID-cert as a self-signed certificate signed with private D-UID-key (priv-D-key)
[0102] 11. Store the D-UID certificate in the device ((publicly) visible or protected, see above)
[0103] 12. Create a so-called empty license container, which contains at least the following information, but no license or license key
[0104] aD-UID
[0105] bD-UID-cert
[0106] cL-UID
[0107] d. Identify the requested permission by identifying the specification of the requesting program or the requested permission. This is preferably based on the link value of the application or program to be licensed.
[0108] 13. Sign the empty license container using the D-UID-key and store the container in the device.
[0109] 14. Encrypt the empty license container with the L-UID-key and send it to the licensor so that the licensor can fill or create a container with the license or license key.
[0110] Create a license container at the licensor
[0111] 1. Licensor decrypts the empty license container
[0112] 2. The Licensor checks the mathematical and content-related correctness of the included D-UID-cert
[0113] 3. The Licensor creates a new license container or populates an "empty" license container, which may contain, among other data:
[0114] aD-UID
[0115] bD-UID-cert
[0116] c. Licensing regulations
[0117] d. App key or license key or any other type of license for the application
[0118] 4. Sign the license container with L-UID-key
[0119] 5. Encrypt the signed license container with the D-UID-key (pub-D-key) and transfer it to the license agent (LA) where the device is located and connected so that the LA can communicate with the device (e.g., as described above).
[0120] Store the license container to the device (if the device has storage) or to an alternate location on storage
[0121] 1. The LA determines the private D-UID-key (priv-D-key) as described above and decrypts the license container signed by the licensor or licensor device.
[0122] 2. The LA checks the signature of the license container mathematically and in terms of content.
[0123] 3. The signed license container is stored on the device (in a public or secure location (as applicable) or another location in the corresponding area of the device).
[0124] Execute applications that require permission
[0125] 1. The application requests a valid license from the LA for execution.
[0126] 2. The LA determines the private D-UID-key (as described above) and decrypts the license container containing the license.
[0127] 3. LA checks the signed license container mathematically and in terms of content. The license container is signed by the licensor using its priv-L-key.
[0128] 4. LA allows the use of App Keys or Licenses or License Key(s) respectively.
[0129] 5. Execute and run the application using the App Key or License or License Key(s) respectively.
[0130] Non-resettable and monotonic counter
[0131] Some devices have special non-resettable monotonic counters. Depending on the type, these counters can only decrease or only increase. There is no essential difference in the use of these two variants, since the counters can be interpreted to obtain the corresponding direction. Therefore, in the following, it is assumed that the counters can only increase.
[0132] If the device with public and / or preferably protected and access-restricted storage (e.g. a cryptographic controller) has one or more non-resettable counters, it is possible to use additional security mechanisms together with it:
[0133] 1. The counter can be used as a generation counter for a license container. In this case, the current counter reading is transmitted to the licensor together with the empty container and included by the licensor in the signed license container. This effectively prevents the license container from being used with old licenses.
[0134] 2. Counters can be included in the license container as limit counters and limit the number of times an application can be started or the use of a particular function. For this purpose, the license container indicates up to which counter value a start or use of a function is allowed.
[0135] Optional encryption controller in the device
[0136] If the device has an additional cryptographic processor or controller in the device, there may be additional security mechanisms:
[0137] The encryption key is not loaded from the device into the LA, but is used directly in the device. For this purpose, the interface needs to be extended to enable the use of the key.
[0138] These and other aspects of the invention will be apparent from and elucidated with reference to the embodiment(s) described hereinafter.
[0139] In the following figure
[0140] Figure 1 An embodiment of a license agent apparatus and device is shown;
[0141] Figure 2 A preferred embodiment of the device is shown;
[0142] Figure 3 A system according to the invention is shown;
[0143] Figure 4 An empty license container is shown;
[0144] Figure 5 A schematic diagram showing a license container containing licenses;
[0145] Figure 6 A schematic diagram showing an expansion container;
[0146] Figure 7 A schematic flow chart showing a method for creating an empty license container;
[0147] Figure 8 A schematic flow chart showing a method for recovering a private device key;
[0148] Fig. 9 A schematic flow chart showing a method for handling a license container containing licenses;
[0149] Fig.10 A schematic flow chart showing a method for filling an empty license container with license-related data;
[0150] Fig.11 a schematic flow chart illustrating the use of a license contained in an encrypted license container; and
[0151] Fig.12 A schematic flow chart showing a method of manipulating a counter value of a counter.
[0152] Figure 1A license proxy apparatus 10 is shown with a processing unit 12 and a device interface 14, to which a device 20 can be connected. The processing unit 12 is configured to create an empty license container capable of accommodating a license for an application. In the processing unit 12, the inventive method is usually already executed, thereby establishing an empty license container. Therefore, the license proxy apparatus or parts thereof can also be implemented as software. The processing unit 12 and the device interface 14 can be part of another system, such as a host computer or machine or part of an industrial machine.
[0153] Via the device interface 14 , the license brokering apparatus 10 is able to communicate with the device 20 and in particular request device-specific data to uniquely identify the device 20 .
[0154] like Figure 1 As shown, the device 20 does not need to contain any storage medium. It only has to contain device-specific data 22, based on which unique identity data of the device 20 can be created.
[0155] Figure 2 A schematic diagram of a device 20 is shown. In this embodiment, the device 20 contains device specific data 22, which may be a serial number, chip identification data, bad sector information, device type, production data, production badges, and the like.
[0156] According to the illustrated embodiment, the device 20 also includes a storage medium 24 on which data may be stored. For example, random numbers used to generate private device keys may be stored here.
[0157] In a preferred embodiment, the device 20 additionally contains a cryptographic processor 26 which is accessible only via a generic API or via a special communication protocol which may be device specific.
[0158] Figure 3 An embodiment of the inventive system 100 such as a host computer is shown. The system 100 includes a license proxy apparatus 10 and its processing unit 12 and device interface 14. The system 100 also includes a storage medium 30 on which an application 50 is stored, a processing unit 32, and an application interface 34 for communication between the license proxy apparatus 10 and the processor unit 32. In order to execute the application, it is loaded into the processor unit 32. The application running or being executed in the processor unit 32 is referred to as an application 50'. The application 50' may request a valid license 73 from the license proxy apparatus 10 before starting.
[0159] According to the present invention, the system 100 further comprises a bidirectional interface 36 for exchanging license containers between the licensing apparatus 10 and the licensor device 40, into which the licensor device 40 can import licenses. In an alternative embodiment, the bidirectional interface 36 may be included in the license proxy apparatus 10.
[0160] The licensor device 40 or licensor possesses a cryptographic key pair including a public licensor key pub-L-key 42 and a private licensor key priv-L-key 44. The licensor device 40 also possesses a license 73 or license key 72 for an application published by the licensor.
[0161] Figure 4 The schematic diagram shows a license container 60 which in this case is “empty.” This means that the license container 60 contains no license 73 for the application 50 .
[0162] like Figure 4 As shown, the license container 60 that has been created by the license agent 10 includes the unique identification data of the device 20 (i.e., D-UID 62) and the unique identification data of the license (or L-UID 64) and the link value 66, which contains information about the license 73 that must be filled in the license container 60. The license container 60 also includes pub-D-key 68, which is the public key of the cryptographic key pair of the device 20. Optionally, the license container may also include D-UID-Cert 61, which is a self-signed certificate signed with the cryptographic key of the device 20, and it links the D-UID 62 with the public key pub-D-key 68.
[0163] Although Figure 4 An empty license container 60 is shown, but Figure 5 A license container 60 is shown filled with a license 73. Any of the above parameters (61 to 68) may also optionally be included in the license container. However, at least part of the data may preferably be erased. The "filled" license container 60 contains license parameters 70, a license key 72, an optional license specification 74 and also an optional restriction value 76, e.g. a limited number of executions to be performed using the license 73.
[0164] Although according to Figure 4 The empty license container 60 is signed by the license broker 10 with the private device key, but it is also encrypted using the public licensor key pub-L-key 42 so that only the licensor can decrypt the empty license container 60 with its priv-L-key 44. The "filled" license container containing the license 73 is later signed by the private licensor key priv-L-key 44 and encrypted using the public device key pub-D-key 68.
[0165] Figure 6A schematic diagram of a (linked) extension container 80 is shown, which is used to enhance the security of the license 73 and to restrict unauthorized use of the application 50. The extension container 80 contains, for example, a counter value 82, which indicates the current and actual execution times of the application using the license. The extension container 80 may also include a backup value 84 so that the license 73 can be recreated in the event of an erroneous update of the application or the license container 60.
[0166] Figure 7 A schematic flow chart of a method for creating an empty license container 60 performed by a license proxy device 10 is shown. In step S10, specific data of a device connected via a device interface is determined. In addition, step S20 includes randomly generating device unique identity data based on the determined specific data 22 of the device 20 using a globally unique identifier. The identifier can be an alphanumeric string. Step S30 includes using the L-UID 64 as the unique identity data of the licensor of the application 50 to be licensed. In step S40, the private device key priv-D-key 78 of the device 20 is determined. The generation of priv-D-key 78 is based on the specific data 22 of the device 20, on the D-RND 79 as a random number, and on the L-UID 64. In step S50, the L-UID 64 and the D-RND 79 are preferably stored on the device 20. This data is later needed to regenerate the priv-D-key 78 for decrypting the license container 60 containing the license.
[0167] In step S60, a license container 60 is created, which comprises at least a D-UID 62, a L-UID 64 and a link value 66. In step 70, the license container 60 is encrypted with the public licensor key 42, so that the licensor or the licensor device 40 can decrypt the empty license container to enter the license 73 or the license key 72 for the licensed application. According to a further step S80, the created license container 60 is encrypted using the public licensor key pub-L-key 42. In a further step S90, the encrypted license container 60 is optionally provided. For example, the license container 60 can be sent to the licensor 40 via the Internet, via a storage medium such as a memory stick or a memory card, or via another wireless or wired connection, so that the licensor 40 can store the license in the container.
[0168] In a preferred embodiment of the method, before executing step S10, optional steps are performed to establish communication between the license proxy apparatus 10 and the device 20. In step S2, the device 20 connected to the device interface 14 is identified. In a further step S4, loading of a communication protocol corresponding to the identified device 20 is performed, and in a further step S8, communication and data exchange with the device 20 are performed using the communication protocol. Preferably, a generic API is used.
[0169] In a further preferred embodiment of the method, an additional step S72 is performed, comprising signing the license container 60 with the priv-D-key 78 of the device 20. In a further optional step S74, the pub-D-key 68 is stored in the license container 60. This step is performed before the license container 60 is encrypted using the public licensor key 42.
[0170] In a further optional and preferred embodiment of the method, optional step S32 includes creating a self-signed D-UID-cert 61 using priv-D-key 78 and D-UID 62 to bind D-UID 62 to pub-D-key 68 of device 20. Further optional step S34 includes storing D-UID-Cert 61 in license container 60.
[0171] Figure 8 A schematic flow chart of a method for recovering a private device key is shown. A step S210 of retrieving device specific data 22 from a device 20 is performed. Preferably, the device 20 is connected via a device interface 14 so that the license proxy apparatus 10 can access the device 20. This method is also performed by the license proxy. In a further step S220, a D-RND 79, preferably stored on the device 20, and a L-UID 64, preferably stored on the device 20, are retrieved. In a further step S230, the priv-D-key 78 of the device 20 is recovered using this information. This key is used to decrypt the license container 60 in order to execute the application 50 using the contained information, preferably using the contained license or license key 72.
[0172] Fig. 9 A method for handling a license container 60 containing a license is shown. The method is preferably performed by a license agent. After receiving a request for a license from an application 50' executed in a processor unit 32 of the system 100, the license agent receives in step S310 a license container 60 containing a license for the application 50. In step S320, the license container 60 is decrypted using the priv-D-key 78 of the device 20. In a further optional step S330, the license container 60 is preferably verified using a publicly accessible public licensor key 42. The verification of the license container 60 may preferably be performed mathematically and / or in terms of its content.
[0173] In optional step S340, the encrypted license container 60 may be stored on the device for later use by the application 50. However, in a preferred embodiment, the encrypted license container 60 is not stored, and only the information that the valid license 73 is contained in the license container 60 is transmitted from the license agent to the executed application 50' running in the processor unit 32 of the system 100.
[0174] Optional step S350 is intended to allow the application 50 to use the license contained in the license container 60 after decrypting the license container.
[0175] Fig.10 A flow chart showing a method for filling an empty license container 60 bound to a device 20 with license-related data. This method is usually performed on the licensor side. In step S410, the empty license container 60 is decrypted using the private licensor key 44. This step occurs after the licensor 40 has received the license container 60 from the license proxy device 10.
[0176] In a further step S420, the license container 60 is filled with at least one of several data in a group, the group comprising at least the D-UID 62 of the device 20 to which the license should be bound, the D-UID-cert 61, a link value 66 based on the application 50 to be licensed, the license parameters 70, the license specification 74, the license key 72 of the application 50, and optional restriction values, such as restriction values for a counter contained in the device in the encryption controller 26. In a further step S430, the filled license container 60 is encrypted with the pub-D-key 78 of the device so that the license proxy device can later decrypt the license container as described above. The license container can additionally be signed by the licensor device 40 with the priv-L-key 44.
[0177] Fig.11 A method is shown for using a license 73 or license key 72 contained in an encrypted license container 60 for an application 50. In step S510, the license agent receives a request for a license or license key 72 from an application 50 or 50'. In a further step S520, the license container 60 containing the license 73 is determined. In step S530, creating a priv-D-key 78 of the device 20 to which the license container 60 is bound is performed by retrieving device specific data 22 from the device 20, by retrieving the L-UID 64 and the D-RND 79 (which is a random number stored on the device 20).
[0178] Further step S560 comprises decrypting the license container 60 using the recreated priv-D-key 78 of the device 20. In step S550, the license container 60 is verified using the public licensor key 42, wherein the verification is performed mathematically and / or in terms of content. In step S560, the use of the license 73 is allowed for the application requesting the license to use. Further step S570 comprises providing the license key 72 or the license contained in the license container 60. The license key 72 is provided to the application 50 so that it can be executed. Alternatively, the license agent sends a confirmation command to the application 50 or to the processor unit 32 executing the application, wherein the confirmation command may include a signal indicating that a valid license exists.
[0179] In a preferred embodiment according to the invention, the device 20 comprises a counter 90, which may be contained in the cryptographic controller 26 of the device. In this case, when the license key is provided to the application 50, the usage counter value 92 is modified in a further step S580. In a further step S590, the usage counter value is checked against a start value or limit value 76 which may be contained in the license container. Optionally, the modified usage counter value may also be stored and updated in the extension container 80, thereby modifying the contained counter value 82.
[0180] Fig.12 A schematic flow chart of a method for handling counter values of a counter 90 is shown. In case a backup value of a current use counter value 92 of the counter 90 is stored in an extension container 80, further steps have to be performed. The extension container 80 is linked to the license container 60 and is preferably encrypted with the pub-D-key 68 of the device 20. In step S610, a retrieval of the current use counter value 92 from the counter 90 is performed. Step S620 comprises comparing the current use counter value 92 from the counter 90 with the backup value of the use counter value 92, which is the counter value 82. If both values 92 and 82 are equal, then in step S630, use of the application protected by the license is allowed. In a further step S640, a change of the value of the current use counter value 92 in the counter 90 is performed. In a further step S650, the backup value, i.e. the counter value 82 in the extension container 80, is overwritten by the new current use counter value 92 for current use.
[0181] The method steps disclosed according to the drawings and described herein may be performed in an order other than the order shown. Single or multiple steps may be repeated individually or in groups, once or multiple times without departing from the method disclosed in the claims.
[0182] Since the problem to be solved is in the field of usage control of applications, licenses or license parameters, a method for controlling license parameters is proposed, wherein the license parameters are stored locally and are read-only accessible on a target device (host computer platform), and wherein at least usage status information associated with the license parameters is stored in a protected location on a removable device. The control of the usage status information is performed by a LA, which is preferably installed on a target computer, host computer, machine or system.
[0183] Another aspect of the invention as well as preferred and alternative embodiments are described:
[0184] For an embodiment of the method, two types of license parameters may be proposed, core license parameters in a license container and extended license parameters in an extended container. These two types of license parameters may preferably be imported together from the LA and may form a license.
[0185] The extended license parameters are preferably cryptographically linked with the core license parameters in the license container to add the extended parameters to the core license data. The data may have extended parameter data representing the functions and attributes of the license. The LA may modify the extended license parameters based on the use of the license on the target device and in accordance with the functions and features permitted during the validity period of the license.
[0186] To increase the trustworthiness of the functionality of the so-called authorization management system, the LA may be authorized as part of the system to save one or more sensitive data of the extended license parameters to a protected location on the device or other means. The LA should be able to store the sensitive values on the device and retrieve them via a common API under specific access conditions determined by the LA in communication with the device.
[0187] In another preferred embodiment of the present invention, the access conditions are provided by a specific manufacturer of the device. The access conditions and methods for accessing protected memory locations may be defined by a memory access standard or by optional and proprietary functions provided by the manufacturer that the LA may and / or may not use via a generic API. The methods and functions may include the LA using the following:
[0188] 1. A password-protected storage area in a preferably self-encrypting device, where the password can be set once or assigned by or to the licensor, optionally making the password available to the LA via a license parameter
[0189] 2. The right to create a private partition on the device
[0190] 3. A storage area within the cryptographic controller with accessible allocated and / or access-protected address space, requiring an authentication protocol for mutual authentication between the device and the LA
[0191] 4. Other similar methods for conditional access.
[0192] An alternative and preferred embodiment of the security architecture concept of the entitlement management system that provides the type of permission parameters with respect to the specific storage capacity of the device used for entitlement protection can be described by the following steps:
[0193] A: The Licensor generates the core and extended license parameters based on the license specifications.
[0194] 1. Core licensing parameters are read-only parameters related to the LA and cannot be modified by the LA. The licensor encrypts the parameters using a key belonging to the device (D-UID-key) and signs the parameters using the licensor key (L-UID-key). A counter value or an expiration date are examples of core licensing parameters.
[0195] 2. Extended License Parameters are read / write parameters and can be modified by the LA and are protected by the licensor using a device key for authentication and decryption using a D-UID-key pair.
[0196] 3. Core and extended license parameters may be stored in a license container along with the corresponding UID.
[0197] B: Initial activation of the license at the licensee
[0198] LA starts processing licensed containers:
[0199] 1.LA import license container
[0200] 2. According to the rules of the rights management system, the LA identifies core licensing parameter values to be stored on a protected storage location on the device, for example, parameters specifying the maximum number of times an app can be used.
[0201] 3. The LA conditionally accesses the device using one of the methods via the generic API to address the protected storage location.
[0202] 4. The Write command is used to store a value in a protected location, for example, in a monotonically decreasing counter.
[0203] 5. Using the value stored on the device, the LA triggers and enforces the consumption of the license.
[0204] 6. LA imports the extended license parameters and signs them using the D-UID-key.
[0205] Each time consumption of a license is turned off, the extended license parameters are updated in the extended container file, and the updated file can be saved on the device or any other storage area or on the system itself. Therefore, the count value of the monotonic counter is completely synchronized with the count value obtained in the extended license parameters.
[0206] C: The license continues to run on another host computer platform and license tracking is enforced by a monotonic counter.
[0207] Preferably, in case the device is deployed to another host computer where the same conditions (LA and the same licensed application or software or machine program as on the previous host computer or machine) exist after consuming the license, the LA and the common API (D-Comm) must be activated when the device is present to verify that a valid license is bound to the device. Preferably or optionally:
[0208] 1.LA identifies the type of equipment used.
[0209] 2. Further identify a generic API driver (D-Comm) suitable for supporting communications with the device type and, if necessary, load the generic API driver (D-Comm) to pass and retrieve device specific data.
[0210] 3. LA retrieves device specific data and reads the D-UID, reads the D-RND and L-UID, and creates a device key pair, in particular derives the private (device) D-UID-key (priv-D-key) again, and decrypts the license container, license and D-UID.
[0211] 4. LA checks that the D-UID of the license container matches the D-UID-cert of the license container and releases the license for further processing.
[0212] 5. LA conditionally reads the counter value from the monotonic counter.
[0213] Because the LA infers ("knows") that the counter value has changed by a monotonically increasing or decreasing step by comparing the monotonic counter value with the value read from the core parameter as the limit use value.
[0214] 6. LA reads the value of the extended license parameter.
[0215] 7. The LA compares the value of the extended permission parameter with the monotonic counter value, and if they are equal, the LA continues processing.
[0216] 8. The LA compares the counter value with the marginal usage value of the core license parameter and decides whether to allow or block further execution of the license.
[0217] 9. If further execution is allowed, the LA updates the monotonic counter and sets the same counter value in the extended permission parameters.
[0218] 10.LA uses D-UID-key to sign the extended license parameters.
[0219] Therefore, the above discussion only discloses and describes exemplary embodiments of the present disclosure. As will be appreciated by those skilled in the art, the present disclosure may be embodied in other specific forms without departing from its spirit or essential characteristics. Therefore, this description is intended to be illustrative but not limiting of the scope of the present disclosure and other claims. The present disclosure, including any readily discernible variations taught herein, defines in part the scope of the above claim terms, such that no inventive subject matter is dedicated to the public.
[0220] In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single element or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
[0221] As long as the embodiments of the present disclosure have been described as being implemented at least in part by a data processing device controlled by software, it will be understood that non-transitory machine-readable media carrying such software, such as optical disks, magnetic disks, semiconductor memories, etc., are also considered to represent embodiments of the present disclosure. In addition, such software may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunications systems. The method according to the present invention may be particularly performed to control the operation of a software-defined radio.
[0222] Elements of the disclosed apparatus, host computer, machine and system may be implemented using appropriate hardware and / or software elements (eg, appropriate circuits). The host computer may include a central processing unit, a graphics unit and a microprocessor programmed or configured using software code.
Claims
1. A license agent device for handling a license of an application (50) of a licensor, comprising: a device interface (14) for communicating with a device (20) having specific data (22); A processing unit (12) for generating a license container (60) configured to maintain a license (73) for the application (50); The processing unit (12) is configured to: - determining specific data of the device (20) connected via the device interface (14); - generating a globally unique identifier, so-called device unique identification data D-UID (62), based on said specific data (22) of said device (20) and optionally based on random data; - using L-UID (64) as unique identification data of the licensor of the application (50) to be licensed; - creating a license container (60) containing at least the D-UID (62), the L-UID (64) and a link value (66) based on the application (50) to be licensed; - encrypting the license container using the public licensor key pub-L-key (42); - Optionally providing said license container (60).
2. The license proxy device according to claim 1, characterized in that: The processing unit (12) is also configured to identify the device (20) connected to the device interface (14), load a communication protocol corresponding to the identified device (20), and use the communication protocol to communicate and exchange data with the device (20), preferably using a universal API.
3. The license proxy device according to claim 1 or 2, characterized in that: The processing unit (12) is further configured to: - determining a private device key priv-D-key (78) of the device based on the specific data (22) of the device (20), based on a D-RND (79) random number, and optionally based on the L-UID (64); - optionally storing the L-UID (64) and / or the D-RND (79) for later use; and - Creating the public device key pub-D-key (68) based on the private device key priv-D-key (78).
4. The license proxy device according to claim 3, characterized in that: The processing unit (12) is also configured to sign the license container (60) with the priv-D-key (78) before encrypting it with the public licensor key (pub-L-key) and store the pub-D-key (68) in the license container (60).
5. The license proxy device according to claim 4, characterized in that: The processing unit (12) is also configured to create a self-signed D-UID certificate D-UID-cert (61) using the priv-D-key (78), the pub-D-key (68) and the D-UID (62), and store the D-UID-cert (61) in the license container (60).
6. The license proxy device according to any one of the preceding claims, characterized in that: The processing unit (12) is also configured to retrieve the device specific data (22) from the device (20) connected via the device interface (14), the D-RND (79) preferably stored on the device (20) and the L-UID (64) preferably stored on the device, and to recover the priv-D-key (78) to decrypt the license container (60) to use the contained information, preferably the contained license.
7. The license proxy device according to any one of the preceding claims, characterized in that: The processing unit (12) is further configured to receive a license container (60) containing a license for the application (50) and store the license container (60) on the device (20) connected to the device interface (14).
8. The license proxy device according to claim 6, characterized in that: The processing unit (12) is further configured to allow the application (50) to use the license contained in the license container (60) after decrypting the license container.
9. The license proxy device according to any one of the preceding claims, characterized in that: The processing unit (12) is further configured to receive a license container (60) containing a license for the application (50), the processing unit (12) being further configured to verify the license container (60), preferably mathematically and / or content-wise, preferably using the public licensor key.
10. A device having specific data characterizing the device (20) and configured to be bound to a license container (60), the license container (60) being suitable for containing at least a license for an application (50) and configured to communicate with a license agent or a license agent device (10) to provide the specific data (22) for identifying the device and for creating device unique identity data D-UID (62).
11. The device according to claim 10, characterized in that The device (20) is configured to store data, is configured to include a storage medium (24), and is configured to store a license container (60); wherein the specific data (22) of the device (20) includes at least one member selected from the group including at least a serial number, chip identification data, bad sector information, device type, production data, production batch, and security information stored in the device.
12. The device according to claim 10 or 11, characterized in that Communication with the device (20) is performed using a common API.
13. The device according to any one of claims 10 to 12, characterized in that The device (20) comprises a password-protected storage area located in a self-encrypted area of the device (20) and / or a cryptographic controller (26) having storage capacity, preferably having an accessible allocated and access-protected address space, wherein preferably, the license container (60) and / or the D-RND (79) and / or the L-UID (64) are stored in the password-protected storage area or in the storage capacity of the controller.
14. The device according to any one of claims 10 to 13, characterized in that The device (20) comprises a non-resettable, preferably monotonic counter (90), wherein the counter can be decreased from a starting value to zero or can be increased from zero to a limiting value, wherein the starting value and / or the limiting value are preferably contained in the license container (60) and cannot be changed.
15. Device according to the preceding claim, characterized in that The device (20) comprises a restricted area with restricted access, wherein the counter (90) is located in the restricted area, and wherein preferably the restricted area is only accessible using the priv-D-key (78).
16. A licensor device, comprising a processor unit, wherein the processor unit is configured to: receive a license container (60); decrypt the license container (60) using a private licensor key; fill the license container (60) with at least one data of a group, the group comprising at least a D-UID (62), a link value (66) based on an application (50) to be licensed, a license parameter (70) and a license key (72) of the application (50); and encrypt the filled license container (60) using a public device key (68).
17. A system for handling a license of an application (50) of a licensor, the license being contained in a license container (60) and bound to a device, the system comprising: A device (20) having specific data (22) characterizing the device, linked to the license in the license container (60), and configured to provide the specific data for identifying the device; a license proxy device (10) configured to handle a license container (60) containing the license to execute the application and configured to communicate with the device so as to be able to read device-specific data from the device; The binding between the license in the license container (60) and the device (20) is based on the specific data (22), so that the application can be executed only when the license is valid and the device (20) exists.
18. System according to the preceding claim, characterised in that The system (100) further comprises: a storage medium (30) on which the application is stored; A processor unit (32) for executing the application; an application interface (34) for communicating between the license proxy device (10) and the processor unit (32) to execute the application (50) requiring an execution license; a bidirectional interface (36) for exchanging at least the license container (60) between the license proxy apparatus (10) and a licensor device (40), the licensor device (40) being configured to import a license (73) in the license container (60); in The license proxy device (10) is also configured to communicate with the application that requires the license, optionally configured to communicate with the device to exchange data with the device so as to store data in the device, and configured to communicate with the licensor to at least receive the license container filled with the license created by the licensor.
19. A license container comprising at least one data in a group, the group comprising a D-UID, a D-UID-cert, a link value based on an application (50) to be licensed, license parameters, a license specification and a license key for executing the application, wherein the license container (60) is preferably encrypted with a public license key and / or with a pub-D-key, and particularly preferably signed with a priv-L-key (licensor key) and / or a priv-D-key, and is further preferably read-only for a license agent device that possesses the priv-D-key.
20. An extension container linked to a license container (60) according to claim 19, arranged to be accessible using a priv-D-key and comprising the current value of a counter preferably stored in the device (20).
21. A method for creating an empty license container (60) bound to a device (20), the device (20) being connected and ready to contain a license for an application, the method comprising the steps of: - determining specific data of the device (20) connected via the device interface (14); - generating a globally unique identifier, so-called device unique identification data D-UID (62), based on said specific data (22) of said device (20) and optionally based on random data; - using L-UID as unique identification data of the licensor of said application (50) to be licensed; - determining a private device key priv-D-key (78) of the device (20) based on the specific data of the device, based on a D-RND random number and optionally based on the L-UID; - optionally storing the L-UID and / or the D-RND on the device for later use; - creating the public device key (68) based on the priv-D-key (78); - creating a license container (60) containing at least the D-UID, the L-UID and a link value based on the application to be licensed; - encrypting the license container (60) using the public licensor key pub-L-key (42); and -Optionally provide an encrypted license container.
22. The method according to claim 21, characterized by the following steps: - identifying the device (20) connected to the device interface (14); - loading the communication protocol corresponding to the identified device (20), and - communicating and exchanging data with the device (20) using the communication protocol, It is preferred to use a general API.
23. The method according to claim 21 or 22, characterized by the following steps: - signing the license container (60) with the priv-D-key (78), and - Storing the pub-D-key (68) in the license container before encryption using the pub-L-key (42).
24. The method according to any one of claims 21 to 23, characterized by the following steps: - creating a self-signed D-UID-cert (61) using the priv-D-key (78) and the D-UID (62) to bind the D-UID to the pub-D-key (68), and - Storing the D-UID-cert (61) in the license container (60).
25. The method according to any one of claims 21 to 24, characterized by the following steps: - retrieving said device specific data (22) from said device, preferably connected via said device interface (14), - retrieving the D-RND (79) stored on the device (20) and the L-UID (64) stored on the device (20), and - Recovering the priv-D-key (78) to decrypt the license container (60) to use the contained information, preferably the contained license (73).
26. A method for handling a license container (60) containing a license (73), comprising the steps of: - receiving a license container containing a license for said application (50), - decrypt the license container using priv-D-key(78), - optionally verifying said license container, preferably mathematically and / or content-wise, preferably using a pub-L-key (42), - storing the encrypted license container on the device (20) for later use by the application, and - optionally allowing the application (50) to use the license contained in the license container after decrypting the license container.
27. A method for filling an empty license container (60) bound to a device (20) with license related data, comprising the steps of: - decrypt the empty license container (60) using the priv-L-key (44); - filling the license container with at least one data of the group, the group comprising at least the D-UID (62) of the device to which the license (73) should be bound, the D-UID-cert (61), a link value (66) based on the application (50) to be licensed, license parameters (70), a license specification (74) and a license key (72) of the application (50); - encrypt the populated license container using the pub-D-key(68); The D-UID is based on specific data of the device, on a D-RND (79) and on a unique identity data set L-UID (64) identifying the licensor (40).
28. A method for using a license (73) contained in an encrypted license container (60) for an application (50), comprising the steps of: - receiving a request for permission from an application; - determining a license container (60) containing said license for said application; - re-create the priv-D-key (78) of the device (20) to which the license container is bound by retrieving the device specific data (22) from the device (20), retrieving the L-UID (64) as the unique data of the licensor of the license, and retrieving the D-RND (79) stored on the device (20); - decrypting the license container using the priv-D-key (78) of the device; - preferably verifying the license container mathematically and / or content-wise using a pub-L-key (42); - allowing said license to be used for said application (50) requesting the license to be used; - providing the license key (72) contained in the license container to the application.
29. The method according to the preceding claim, characterized in that If the device (20) bound to the license (73) comprises a counter (90), a usage counter value (92) of the counter is changed by using the application (50) and the usage counter value (92) is checked relative to a start value and / or a limit value (76) for the use of the license stored in the license container (60) and / or which can preferably be additionally stored in a restricted area of the device.
30. The method according to the preceding claim, characterized in that A backup value of the current usage counter value (92) of the counter (90) is stored in an extension container (80), the extension container (80) being linked to the license container (60) and preferably encrypted with the pub-D-key (68), the method comprising the following steps: - retrieving the currently used counter value (92) of the counter (90) from the counter; - comparing the current usage counter value from the counter with the backup value of the current usage counter value; - if both values are equal, allowing the use of said application protected by said license (50); and - changing the value of the current usage counter value (92) in the counter (90); and - Overwriting the backup value in the extension container with the new current usage counter value.
Citation Information
Patent Citations
Method for generating a cryptographic key for a secure digital data object on the basis of the current components of a computer
EP2515499B1
Cryptographic feature licensing
EP3798872A1