Computer program product, computing device, arrangement having computing device, and method for operating same
The computer program product encrypts device identification to generate a hash code for license verification, ensuring secure, anonymous activation and control over software usage, addressing unauthorized copying and hardware exposure risks.
Patent Information
- Application Number
- PCT/EP2025/051381
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-21
- Filing Date
- 2025-01-21
- Publication Date
- 2025-08-28
AI Technical Summary
Existing license verification systems face challenges in preventing unauthorized copying and execution of software across multiple computers while protecting the hardware information of the licensee from malicious interception.
A computer program product generates a hash code based on device identification and coding information, transmitting an encrypted license request to limit activation to a single device without revealing specific hardware details, enhancing security against unauthorized access.
This approach ensures secure, quasi-anonymous license activation, minimizing the risk of hardware exposure and external attacks, while maintaining effective control over software usage.
Smart Images

Figure EP2025051381_28082025_PF_FP_ABST
Abstract
Description
[0001] Description
[0002] Computer program product, computing device, arrangement with computing device and method for its operation
[0003] The invention relates to a computer program product containing program instructions that, when executed by a computing device, cause the device to generate a license request suitable for transmission to a license checking device associated with the computer program product. Computer program products of this type are generally known.
[0004] The licensor and the licensee have different interests in license verification. Typically, the licensor strives to prevent, for example, a license acquired for only one computer from being executed on multiple computers if the corresponding computer program product has been copied and installed multiple times. For this reason, the licensor is generally interested in making the activation of a computer program product dependent on knowledge of identification information identifying the computer device, so that the computer program product can be activated only once or for a specific computer device, or only with a limited frequency for a limited number of computers.
[0005] The invention is based on the object of specifying a computer program product which enables a license check which is attractive from a technical point of view for both the licensor and the licensee.
[0006] This object is achieved according to the invention by a computer program product having the features according to claim 1. Advantageous embodiments of the computer program product according to the invention are specified in subclaims.
[0007] According to the invention, the program instructions cause the computing device to subject an identification statement identifying the computing device together with coding information stored in the computer program product to a hash code formation and to form a hash code dependent on the identification statement and the coding information, which forms the license request or a component of the license request.
[0008] A key advantage of the computer program product according to the invention is that it avoids the transmission of identification information, which generally allows specific conclusions to be drawn about the hardware of the computing device, because the transmission is encrypted due to the inclusion of the coding information. The licensor thus has no knowledge of the specific identification information or the associated hardware.Nevertheless, the transmission of the hash code according to the invention allows the licensor to limit activation to the computing devices affected by the initial license request: As soon as a license request has been confirmed, the licensor, i.e., in this case, the license verification device, can save the hash code considered for the license request and block further or repeated activation for another computing device for which a different hash code would be transmitted. In other words, the license verification device can limit activation to a single computing device or a predetermined number of computing devices without knowing or needing to know their identification details or corresponding hardware information; activation is thus performed quasi-anonymously based on the hash codes.
[0009] With regard to the licensee, the advantage of the computer program product according to the invention is that even if a transmission of the license request is intercepted by a malicious third party, this third party cannot obtain knowledge of the identification information and thus also cannot obtain knowledge of the licensee's hardware. For the licensee, the risk is thus minimized that the transmission of the license request could enable a malicious third party to obtain the identification information and, with knowledge of the identification information and the hardware information generally associated with it, to conduct targeted external attacks on the security structure of the computing device. External attacks are significantly more difficult and generally less likely to succeed without knowledge of the specific hardware of the computing device than with knowledge of the specific hardware.
[0010] The computer program product is preferably designed in such a way that it does not provide for the transmission of the identification information as such to the outside world or prevents the transmission of the identification information as such.
[0011] The coding information is preferably hidden in the computer program product as a secret. The hiding is preferably designed such that the bit information of the coding information is accommodated in at least two separate sections of the computer program product. Hiding the coding information ensures that reading the coding information is made impossible or at least very difficult.
[0012] After receiving the license confirmation, the computing device will preferably activate the functionality of the computing device affected by the license confirmation, provided that the license confirmation is recognized by the computing device as valid or is not rejected by it.
[0013] With regard to the computer-side activation of the computer program product, it is considered advantageous if the program instructions cause the computer device to check whether the received license confirmation contains a hash code that corresponds to the hash code previously sent to the license checking device, and to reject the license confirmation if it does not contain a corresponding hash code.
[0014] It is also advantageous if, after receiving the license confirmation, the program instructions cause the computing device to subject the identification information identifying the computing device, together with the coding information stored in the computer program product, to hash code generation once again to create a comparison hash code, to compare the hash code received from the license verification device with the comparison hash code, and to reject the license confirmation if the received hash code differs from the comparison hash code. Determining the hash code again or determining the comparison hash code avoids having to store the hash code sent with the license query in the computing device in order to be able to perform the subsequent hash code comparison.
[0015] It can also be advantageously provided that the program instructions cause the computing device, upon receipt of a signed license confirmation, to subject it to a signature verification. The signature verification includes verifying whether the signed license confirmation has been signed by the license verification device. If the signature verification fails, the license confirmation is preferably rejected.
[0016] In the latter embodiment, it can also be advantageously provided that the program instructions cause the computing device, after receipt of the signed license confirmation, to make the activation of the functionality of the computer program product affected by the license confirmation dependent on both the signature verification being passed and the received signed license confirmation containing a hash code that corresponds to the hash code previously sent to the license verification device or the comparison hash code.
[0017] The program instructions preferably cause the computing device to activate the functionality of the computer program product affected by the license confirmation for a period of time that corresponds to a period of time already contained in the license request or transmitted by the license verification device with the license confirmation.
[0018] The computer program product can advantageously have optional functionality options that can be activated individually or in predefined option combinations. The program commands of the computer program preferably cause the computing device to activate only those functionality options that are defined in an option specification already contained in the license request or transmitted by the license verification device with the license confirmation. The invention also relates to a computing device. With regard to the computing device, the invention provides that the computing device is programmed with a computer program product as described above.
[0019] The invention also relates to an arrangement comprising a computing device and a license verification device. According to the invention, the arrangement is provided for the computing device to be a computing device as described above, and the license verification device is configured to perform a license verification upon receipt of a license request transmitted by the computing device. In the event of a positive result of the license verification, the hash code contained in the license request is returned to the computing device as a license confirmation, or the hash code is returned to the computing device as part of the license confirmation.
[0020] The license verification device is preferably designed to sign the license confirmation and return a signed license confirmation to the computing device.
[0021] The invention also relates to an operating method for a computing device, preferably one as described above. It is provided that the computing device
[0022] - subjects an identification detail identifying the computing device together with stored coding information to a hash code formation and forms a hash code dependent on the identification detail and the coding information, which forms a license request or a component of the license request, and transmits the hash code to the license verification device,
[0023] - after receiving a license confirmation, checks whether it contains a hash code,
[0024] - after receipt of the licence confirmation, the identifying identification information together with the coding information stored in the computer program product is subjected to hash code generation once again to form a comparison hash code,
[0025] - compares the received hash code with the comparison hash code and rejects the license confirmation if the received hash code differs from the comparison hash code.
[0026] The invention also relates to a method for operating an arrangement, for example an arrangement as described above, which comprises a computing device and a license checking device associated with the computing device, wherein in the method
[0027] - the computing device subjects an identification data identifying the computing device together with a stored coding information to a hash code formation and forms a hash code dependent on the identification data and the coding information, which forms a license request or a component of the license request,
[0028] - the license request is sent to the license verification facility,
[0029] - the license verification device checks the license request for the fulfillment of a specified confirmation condition and, if the confirmation condition is fulfilled, generates a license confirmation, whereby the license confirmation contains the hash code or is formed by it,
[0030] - the license confirmation is returned to the computer facility and
[0031] - the computing device, after receiving the license confirmation, subjects the identification information identifying the computing device together with the stored coding information to hash code generation to form a comparison hash code, compares the received hash code with the comparison hash code and rejects the license confirmation if the received hash code differs from the comparison hash code.
[0032] After receiving the license confirmation, the computing device will preferably activate the functionality of the computing device affected by the license confirmation, provided that it recognizes the license confirmation as valid and, in particular, has not rejected it.
[0033] The license verification device is preferably a programmed computer system comprising a computing device and a memory. The invention is explained in more detail below using exemplary embodiments. The following examples show:
[0034] Figure 1 shows a first exemplary embodiment of an arrangement according to the invention, which comprises a first exemplary embodiment of a computing device according to the invention and a first exemplary embodiment of a computer program product according to the invention, wherein exemplary embodiments of methods according to the invention are explained with reference to the arrangement according to Figure 1,
[0035] Fig. 2-4 the arrangement in operation during a license test, and
[0036] Figure 5 shows a second exemplary embodiment of an arrangement according to the invention, which comprises a second exemplary embodiment of a computing device according to the invention and a second exemplary embodiment of a computer program product according to the invention.
[0037] For the sake of clarity, the same reference symbols are always used in the figures for identical or comparable components.
[0038] Figure 1 shows a first embodiment of an arrangement according to the invention. The arrangement has a computing system 10 comprising a computing device 11 and a memory 12. The computing device 11 can have one or more processors, which are not further shown in the figures. The arrangement also includes a license checking device 20.
[0039] A computer program product CPP is stored in the memory 12, which the computing device 11 of the computing system 10 programs. When executed by the computing device 11, the program instructions of the computer program product CPP cause it to execute an exemplary embodiment of an operating method according to the invention and thus, together with the license checking device 20, an exemplary method according to the invention for operating the arrangement shown in Figure 1. In the exemplary embodiment according to Figure 1, the computer program product CPP comprises a plurality of software modules, namely a license determination module LEM, a user program module NPM, a hash code generation module HEM, and a signature verification module SPM. The user program module NPM defines the mode of operation of the computer program product CPP after a passed license check, or at least co-determines this.
[0040] In addition, the computer program product CPP includes coding information CI and a trust anchor VA hidden in the computer program product CPP.
[0041] The coding information CI is implemented as a secret in the computer program product CPP and cannot be read from the outside, or only with great effort, or only with internal, non-publicly accessible knowledge of the computer program product CPP. The coding information CI is therefore considered secret.
[0042] The trust anchor VA can be a publicly accessible certificate or a publicly accessible key of a key pair comprising the publicly accessible key and a secret key known only to the license verification facility 20.
[0043] For the purpose of a license check or for the purpose of checking whether a license is required for the use of the NPM utility module or the use of a specific functionality of the NPM utility module, the program commands implemented in the software program modules are designed as follows:
[0044] For example, when the computer program product CPP is put into operation for the first time, the license determination module LEM performs a license determination. As part of the license determination, the license determination module LEM requests the hash code generation module HEM to generate a hash code HC1 dependent on the identification ID and the coding information CI using an identification ID identifying the computing device and the coding information CI secretly stored in the computer program product CPP. Figure 2 shows this as an example.
[0045] The LEM license determination module then generates a license request (LA) containing this hash code (HC1). In addition to the hash code (HC1), the LEM license determination module can embed additional information into the LA license request, such as a customer number (KN) of the customer whose license is to be used and / or an order number (BN) documenting the license purchase.
[0046] The license request LA is generated by the license determination module LEM or by the computing device 11 upon execution of the program commands of the license determination module LEM and transmitted to the license checking device 20 (see Figure 2).
[0047] The license verification device 20 verifies the license request LA and, if the license verification is successful, sends a license confirmation LB back to the computing device 11 of the computing system 10, as shown by way of example in Figure 3. The license confirmation LB contains the hash code of the license request LA, which is identified by reference symbol HC2 in Figure 3, as well as a signature SIG, which enables the computer program product CPP to verify the authenticity of the license confirmation LB. Generally known signature generation methods can be used for signature generation.
[0048] The license confirmation LB can contain a definition of the license scope LU, i.e. the functions of the utility program module NPM to be activated by the utility program module NPM, and / or a time duration specification Tmax, which defines a maximum period of use for which the utility program module NPM is to be activated.
[0049] Upon receipt of the license confirmation LB, the license determination module LEM of the computing device 10 checks whether the license confirmation LB contains a hash code HC2 and, if so, whether such a hash code matches the hash code HC1 previously sent in the license request LA. Since the license determination module LEM did not save the hash code HC1 previously sent in the license request LA for security reasons and this hash code is no longer available to the license determination module LEM, the license determination module LEM again controls the hash code generation module HEM (see Figure 4) to trigger a new calculation of the hash code based on the identification information ID of the computing device 11 and the coding information CI hidden in the computer program product CPP. The newly calculated hash code is used for comparison purposes and is therefore referred to as the comparison hash code VHC due to its intended use.
[0050] Once the hash code calculation has been performed again to generate the comparison hash code VHC, the comparison hash code VHC is compared with the hash code HC2 received from the license verification device 20. If the two hash codes HC2 and VHC match, the hash code check is considered passed; otherwise, it is considered failed, and the license confirmation LB is discarded.
[0051] In addition, the license determination module LEM, with the help of the signature verification module SPM, checks whether the license confirmation LB contains a valid signature SIG from the license verification device 20. The signature verification module SPM uses the trust anchor VA contained in the computer program product CPP for the signature verification. Generally accepted and well-known signature verification procedures can be used for the signature verification. If the signature verification fails, the license confirmation LB is rejected.
[0052] If the license determination module LEM determines that both the hash code check and the signature check have been successfully passed, the license determination module LEM recognizes the license confirmation LB as valid and enables the operation of the utility program module NPM by means of a release FG, either completely or only to the extent defined in the license confirmation LB, provided that a definition of the license scope LU is included in the license confirmation LB, for example permanently or only for a limited time, provided that a definition of a time limit Tlimit is included in the license confirmation LB. Figure 5 shows a second exemplary embodiment of an arrangement according to the invention. The arrangement according to Figure 5 corresponds to the arrangement according to Figure 1 with the difference that a signature check is omitted. For this reason, the signature verification module SPM can be omitted in the computer program product CPP.Furthermore, the above statements in connection with the embodiment according to Figure 1 apply accordingly to the embodiment according to Figure 5.
[0053] In the embodiments described above, the license checking device 20 may comprise a computing device 21 and a memory 22 in which software SW suitable for operating the computing device 21 is stored. The computing device 21 may have one or more processors, which are not further shown in the figures.
[0054] Finally, it should be mentioned that the features of all embodiments described above can be combined with each other in any way to form further other embodiments of the invention.
[0055] All features of subclaims can also be combined individually with each of the independent claims, either individually or in any combination with one or more other subclaims, in order to obtain further other embodiments.
[0056] Regardless of the grammatical gender of a particular term, persons with male, female, or other gender identities are included.
[0057] 10 Computer system 11 Computing device 12 Storage 20 License checking device 21 Computing device 22 Storage
[0058] BN Order number CI Coding information CPP Computer program product FG Release HC1 Hash code HC2 Hash code HEM Hash code generation module ID Identification information KN Customer number LA License request LB License confirmation LEM License determination module LU License scope NPM Utility program module SIG Signature SPM Signature verification module SW Software Tlimit Time limit Tmax Time duration VA Trust anchor VHC Comparison hash code
Claims
Patent claims 1. A computer program product (CPP) containing program instructions which, when executed by a computing device (11), cause the computing device (11) to generate a license request (LA) which is suitable for transmission to a license checking device (20) associated with the computer program product (CPP), characterized in that the program instructions cause the computing device (11), - to subject an identification information (ID) identifying the computing device (11) together with a coding information (CI) stored in the computer program product (CPP) to a hash code formation and - to create a hash code (HC1) dependent on the identification information (ID) and the coding information (CI), which forms the license request (LA) or a component of the license request (LA).
2. Computer program product (CPP) according to claim 1, characterized in that the program instructions cause the computing device (11) - to check whether a license confirmation (LB) received from the license checking device (20) includes a hash code (HC2) that corresponds to the hash code (HC1) previously sent to the license checking device (20), and - to reject the license confirmation (LB) if it does not contain a corresponding hash code (HC2).
3. Computer program product (CPP) according to claim 2, characterized in that the program instructions cause the computing device (11), after receipt of the license confirmation (LB) - to subject the identification information (ID) identifying the computing device (11) together with the coding information (CI) stored in the computer program product (CPP) to hash code formation once again to form a comparison hash code (VHC), - to compare the hash code (HC2) received from the license checking device (20) with the comparison hash code (VHC) and - to reject the license confirmation (LB) if the received hash code (HC2) differs from the comparison hash code (VHC).
4. Computer program product (CPP) according to one of the preceding claims, characterized in that - the program instructions cause the computer (11) to subject a signed license confirmation (LB) to a signature check after receiving it, - wherein the signature verification comprises checking whether the signed license confirmation (LB) has been signed by the license verification device (20).
5. Computer program product (CPP) according to claim 4, characterized in that the program instructions cause the computing device (11), after receipt of the signed license confirmation (LB), to make the activation of the functionality of the computer program product (CPP) affected by the license confirmation (LB) dependent on the signature check being passed and the received signed license confirmation (LB) containing a hash code (HC2) which corresponds to the hash code (HC1) previously sent to the license checking device (20) or to a newly determined comparison hash code (VHC).
6. Computer program product (CPP) according to one of the preceding claims, characterized in that the program instructions cause the computing device (11) to activate the functionality of the computer program product (CPP) affected by the license confirmation (LB) for a period of time which corresponds to a period of time (Tmax) already contained in the license request (LA) or transmitted by the license checking device (20) with the license confirmation (LB).
7. Computer program product (CPP) according to one of the preceding claims, characterized in that the computer program product (CPP) has optional functionality options which can be activated individually or in predetermined option combinations, and the program commands cause the computing device (11) to activate those functionality options which are defined in an option specification already contained in the license request (LA) or transmitted by the license checking device (20) with the license confirmation (LB).
8. Computer program product (CPP) according to one of the preceding claims, characterized in that the computer program product is designed in such a way that it does not provide for transmission of the identification information (ID) as such to the outside, in particular to the license checking device (20), or prevents transmission of the identification information (ID) to the outside.
9. Computing device (11), characterized in that the computing device (11) is programmed with a computer program product (CPP) according to one of the preceding claims.
10. Arrangement with a computing device (11) and a license checking device (20), characterized in that - the computing device (11) is a computing device (11) according to claim 9 and - the license checking device (20) is designed to carry out a license check after receipt of a license request (LA) transmitted by the computing device (11) and, in the event of a positive result of the license check, to return only the hash code (HC1) contained in the license request (LA) to the computing device (11) as a license confirmation (LB) or to return the hash code (HC1) to the computing device (11) as part of the license confirmation (LB).
11. Arrangement according to claim 10, characterized in that the license checking device (20) is designed to sign the license confirmation (LB) and to return a signed license confirmation (LB) to the computing device (11).
12. Operating method for a computing device (11), in particular a computing device (11) according to claim 9, in which - the computing device (11) subjects an identification information (ID) identifying the computing device (11) together with a stored coding information (CI) to a hash code formation and forms a hash code (HC1) dependent on the identification information (ID) and the coding information (CI), which forms a license request (LA) or a component of the license request (LA), and transmits the hash code (HC1) to the license checking device (20), - the computing device (11) checks, after receiving a license confirmation (LB), whether it contains a hash code (HC2), - the computing device (11), after receiving the license confirmation (LB), subjects the identifying identification information (ID) together with the coding information (CI) stored in the computer program product (CPP) to hash code formation once again to form a comparison hash code (VHC), - the computing device (11) compares the received hash code (HC2) with the comparison hash code (VHC) and - the computing device (11) rejects the license confirmation (LB) if the received hash code (HC2) deviates from the comparison hash code (VHC).
13. A method for operating an arrangement, in particular an arrangement according to one of the preceding claims 10 to 11, which comprises a computing device (11) and a license checking device (20) associated with the computing device (11), wherein in the method - the computing device (11) subjects an identification information (ID) identifying the computing device (11) together with a stored coding information (CI) to a hash code formation and forms a hash code (HC1) dependent on the identification information (ID) and the coding information (CI), which forms a license request (LA) or a component of the license request (LA), - the license request (LA) is sent to the license checking device (20), - the license checking device (20) checks the license request (LA) for the fulfillment of a predetermined confirmation condition and, if the confirmation condition is fulfilled, generates a license confirmation (LB) which contains the received hash code (HC1) or is formed by it, - the license confirmation (LB) is returned to the computer device (11 ), - the computing device (11), after receiving the license confirmation (LB), subjects the identification information (ID) identifying the computing device (11) together with the stored coding information (CI) to hash code formation again to form a comparison hash code (VHC), - the computing device (11) compares the received hash code (HC2) with the comparison hash code (VHC) and - the computing device (11) rejects the license confirmation (LB) if the received hash code (HC2) deviates from the comparison hash code (VHC).
14. Method according to claim 13, characterized in that the license checking device (20) is a programmed computer system.
15. Method according to claim 13 or 14, characterized in that the computing device (11) after receiving the license confirmation activates the functionality of the computing device affected by the license confirmation, provided that it recognizes the license confirmation as valid, in particular has not rejected it.
Citation Information
Patent Citations
Associating software with hardware using cryptography
EP1618451B1
Hardware license verification
US20220067127A1