WO2021218331A1 - 离线软件授权方法、装置、设备及存储介质 - Google Patents

离线软件授权方法、装置、设备及存储介质 Download PDF

Info

Publication number
WO2021218331A1
WO2021218331A1 PCT/CN2021/078070 CN2021078070W WO2021218331A1 WO 2021218331 A1 WO2021218331 A1 WO 2021218331A1 CN 2021078070 W CN2021078070 W CN 2021078070W WO 2021218331 A1 WO2021218331 A1 WO 2021218331A1
Authority
WO
WIPO (PCT)
Prior art keywords
authorization
offline
file
software
package
Prior art date
Application number
PCT/CN2021/078070
Other languages
English (en)
French (fr)
Inventor
梁党卫
叶星
臧磊
Original Assignee
深圳壹账通智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳壹账通智能科技有限公司 filed Critical 深圳壹账通智能科技有限公司
Publication of WO2021218331A1 publication Critical patent/WO2021218331A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Definitions

  • This application relates to the field of signature verification, and in particular to an offline software authorization method, device, equipment and storage medium.
  • Software authorization certification is a customary method for preventing piracy of commercial software executable files. After purchasing the software executable file, the user needs to carry a license to use the software executable file.
  • the general license includes two management methods, one is authentication and the other is authentication. Authentication is suitable for judging whether the user's identity is legal, so as to prevent the piracy of software executable files. The authentication is used to restrict users from being able to use all the software executable file functions or only part of the software executable file functions.
  • the main purpose of this application is to solve the current lack of authorization technology that can implement software executable files in an offline state.
  • the first aspect of this application provides an offline software authorization method, including: obtaining a software installation package to be installed offline; decompressing the software installation package to obtain a custom class loader and offline software required for offline installation Authorization package; parse the offline authorization package to obtain the corresponding software executable file, encrypted file, and public key; use the public key to decrypt the encrypted file to obtain the corresponding signature and authorization elements; through the customization
  • the class loader loads the software executable file for offline installation, and performs offline authorization for the software executable file according to the signature and the authorization element.
  • the second aspect of the present application provides an offline software authorization device, including a memory, a processor, and computer-readable instructions stored on the memory and running on the processor, and the processor executes the computer
  • the following steps are implemented when reading instructions: obtain the software installation package to be installed offline; decompress the software installation package to obtain the custom class loader and offline authorization package required for offline installation; parse the offline authorization package to obtain the corresponding software Executable file, encrypted file and public key; decrypt the encrypted file using the public key to obtain the corresponding signature and authorization elements; load the software executable file through the custom class loader for offline installation, And according to the signature and the authorization elements, the software executable file is authorized offline.
  • the third aspect of the present application provides a computer-readable storage medium, the computer-readable storage medium stores computer instructions, and when the computer instructions are run on the computer, the computer executes the following steps: obtain the offline installation Software installation package; decompress the software installation package to obtain the custom class loader and offline authorization package required for offline installation; parse the offline authorization package to obtain the corresponding software executable file, encrypted file and public key; The public key decrypts the encrypted file to obtain the corresponding signature and authorization element; the software executable file is loaded by the custom class loader for offline installation, and the signature and authorization element are used to perform offline installation.
  • the software executable file is authorized offline.
  • the fourth aspect of the present application provides an offline software authorization device, including: an acquisition module for acquiring a software installation package to be installed offline; and a decompression module for decompressing the software installation package to obtain customizations required for offline installation Class loader and offline authorization package; parsing module, used to parse the offline authorization package, to obtain the corresponding software executable file, encrypted file and public key; decryption module, used to use the public key to perform the encrypted file Decrypt to obtain the corresponding signature and authorization elements; the authorization module is used to load the software executable file through the custom class loader for offline installation, and execute the software according to the signature and authorization elements Files are authorized offline.
  • the software installation package is first obtained and decompressed to obtain a custom class loader and an offline authorization package, and then the offline authorization package is parsed to obtain a software executable file, an encrypted file, and a public key. Then use the public key to decrypt the encrypted file to obtain the signature and authorization elements. Finally, use a custom class loader to load the software executable file for offline installation, and at the same time authorize the software executable file based on authorization elements and signatures. Because software executable files need a certain environment to run, and conventional loader has the possibility of memory leakage, it will also affect the leakage of software source code. This solution uses a custom class loader, which can reduce the software being deciphered. possible.
  • the offline authorization package also contains authorization elements. Therefore, the multiple functions of the software executable file can be restricted and authorized through the element information in the authorization element, and the function of flexibly defining the software executable file is realized.
  • this solution also provides a scheme for generating public and private key pairs and signatures based on authorization elements, which increases the complexity of public and private key pairs.
  • offline authorization packages are generated according to obfuscation rules, thereby reducing the possibility of being deciphered. Improve the security of offline authorization.
  • FIG. 1 is a schematic diagram of a first embodiment of an offline software authorization method in an embodiment of this application
  • FIG. 2 is a schematic diagram of a second embodiment of an offline software authorization method in an embodiment of the application
  • FIG. 3 is a schematic diagram of a third embodiment of an offline software authorization method in an embodiment of the application.
  • FIG. 4 is a schematic diagram of a fourth embodiment of an offline software authorization method in an embodiment of this application.
  • FIG. 5 is a schematic diagram of a fifth embodiment of an offline software authorization method in an embodiment of this application.
  • FIG. 6 is a schematic diagram of an embodiment of an offline software authorization device in an embodiment of the application.
  • FIG. 7 is a schematic diagram of another embodiment of an offline software authorization device in an embodiment of the application.
  • Fig. 8 is a schematic diagram of an embodiment of an offline software authorization device in an embodiment of the application.
  • the embodiments of the present application provide an offline software authorization method, device, equipment, and storage medium. Since software executable files require a certain environment to run, and conventional loader has the possibility of memory leakage, it will also affect the software source code. This solution uses a custom class loader, which can reduce the possibility of software being deciphered.
  • the offline authorization package also contains authorization elements. Therefore, the multiple functions of the software executable file can be restricted and authorized through the element information in the authorization element, and the function of flexibly defining the software executable file is realized.
  • this scheme also provides a scheme for generating public and private key pairs and signatures based on authorization elements, which increases the complexity of public and private key pairs, thereby reducing the possibility of being deciphered and improving the security of offline authorization.
  • An embodiment of the offline software authorization method in the embodiment of the present application includes:
  • the execution subject of this application can be an offline software authorization device, or a terminal or a server, which is not specifically limited here.
  • the embodiment of the present application takes the server as the execution subject as an example for description.
  • the software installation package is obtained by reading a storage medium such as a hard disk, an optical disc, and the like.
  • the software installation package includes an offline authorization package and a custom class loader for installing and running the software executable file in the offline authorization package.
  • the class loader is mainly used to load classes into it for operation. Therefore, the custom class loader is used to load the software executable file in the offline authorization package, so as to realize the installation of the software executable file.
  • the files in the offline authorization package are not necessarily arranged regularly, if the offline authorization package is obtained through obfuscation, the files in the offline authorization package need to be parsed to obtain the software executable file, encrypted file, and public key.
  • the RSA algorithm is used to implement file encryption and decryption.
  • the RSA algorithm is an asymmetric key algorithm. It can generate two different keys through a number.
  • the plaintext is the authorization element and signature
  • the ciphertext is the encrypted file
  • the software executable file is loaded by the custom class loader to install the software executable file.
  • the first hash value corresponding to the authorized element can be generated through the same hash algorithm as the obtained signature, and then the comparison is performed. If the two are the same, the authorized element has not been tampered with, and then the software executable file is configured to function. So as to realize offline authorization.
  • the software installation package in addition to the offline authorization package, also includes a custom class loader.
  • the cost of deciphering custom class loader is high, so the risk of being deciphered is low, thereby improving the security of software executable files.
  • the offline authorization package also contains authorization elements. Therefore, the multiple functions of the software executable file can be restricted and authorized through the element information in the authorization element, and the function of flexibly defining the software executable file is realized.
  • another embodiment of the offline software authorization method in the embodiment of the present application includes:
  • the hash algorithm also known as the hash algorithm, is a sign that guarantees the uniqueness of a file with short information. This sign is related to every byte of the file, and it is difficult to find the reverse law. Therefore, when the original file is changed, its flag value will also change.
  • the authorization element is hashed to obtain the first hash value of the authorization element.
  • the software executable file is configured according to the obtained authorization element. For example, if the effective time is defined in the authorization element, the software reads the terminal's time information in real time when it is running, and is used to monitor the software running time.
  • a step of judging whether the signature and the authorization element are the same is added. If the authorization element has not been tampered with, the two values should be the same. Therefore, only when the two data are the same, the software executable file can be configured to run, thereby avoiding unauthorized tampering with the authorization elements.
  • the third embodiment of the offline software authorization method in the embodiment of the present application includes:
  • the software executable file to be authorized contains different functions, and different prices correspond to different functions. Therefore, the authorized elements of the software executable file include the period of use and so on.
  • the authorized element After obtaining the authorized element file, the authorized element can be parsed through the JOSN.parse() method to obtain the element category of the authorized element, such as the time limit, so as to determine the first letter in Chinese or English corresponding to the name of the element category. If the term is Q, the number of users is Y.
  • the sorting rule adopted is: sort the authorized elements according to the first letters of the names of these element categories. In alphabetical order, these authorized elements are sorted through the Array.sort() function. ⁇ Term: 1 year, number of users: 5, number of terminals: 3,... ⁇ .
  • the SHA256 algorithm is first adopted to encrypt the sorted authorized elements, and the signature of the authorized elements is obtained.
  • the MD5 algorithm is used to encrypt the authorization element, thereby generating the MD5 value corresponding to the authorization element. Then use the MD5 value as a random seed to generate a public-private key pair through the RSA algorithm.
  • the authorization element and the corresponding signature are written into the blank object together, so that the two are combined to obtain the first character string.
  • the binary array can be converted into a base64 file, and then written into a blank lic format file to obtain an encrypted file.
  • the fourth embodiment of the offline software authorization method in the embodiment of the present application includes:
  • the authorization elements in the JSON file can be parsed through the JOSN.parse() method to obtain the authorization elements of the authorization elements: number of users, period, number of terminals, etc., and value: 5, 1 year, 3 and many more.
  • each feature category has its corresponding feature extraction rule. For the time limit, set it as: if the string "Expiry:” appears, the string after ":” and before ",” is extracted as the authorization element of the time limit. According to these extraction rules, the extracted authorization element is the element category.
  • the first letter of the Chinese or English corresponding to the name of the authorization element category can be obtained.
  • the period is Q
  • the number of users is Y
  • the number of terminals is Z.
  • the first hash algorithm used is the SHA256 algorithm.
  • SHA256 can convert any length of plaintext into a 256bit long hash value.
  • the first hash value corresponding to the authorized element is obtained, and the first hash value is stored as the signature of the authorized element.
  • the second hash algorithm is the MD5 algorithm.
  • the MD5 algorithm divides the plaintext of any length into different sub-plaintexts, and then processes the contents of these sub-plaintexts repeatedly.
  • the MD5 algorithm groups the authorization elements so that the length of each group is 512 bits, and then divides the 512-bit plaintext group into 16 sub-plaintext groups, and each sub-name group is 32 bits.
  • first link variables 4 32-bit first link variables. Then use these first link variables to perform repeated operations on the sub-plaintext grouping, and then perform a summation operation on the second link variable after the operation and the initialized first link variable. The summed third link variable is used as the first link variable of the next plaintext group. Repeat this operation again after linking the variable.
  • the four third link variables finally obtained are the third hash values.
  • the main process is to input a random seed.
  • the RSA algorithm is used to generate a public-private key pair.
  • jdkkeytool is used as an example to perform the generation work. brief introduction.
  • genkey means to create a certificate
  • the name of the certificate is "keynamepair”
  • the keysize is limited to the key length of 1024
  • the validity is to limit the validity period of the certificate corresponding to this public and private key pair to 3650 days.
  • input the second hash value as a random seed and generate a public and private key pair through the command "keytool-genkeypair-keysize 1024-validity 3650-alias ‘keynamepair’".
  • genkeypair means generating a public and private key pair
  • the entire command means generating a public and private key pair under the certificate "keynamepair”.
  • the authorization element is converted into a hash value, and then a public-private key pair is generated according to the hash value and a signature is obtained. Therefore, both the signature and the public-private key pair are bound to the authorization element, thereby increasing the public and private keys.
  • the complexity of the pair and signature reduces the risk of being deciphered.
  • the fifth embodiment of the offline software authorization method in the embodiment of the present application includes:
  • the authorization element and the corresponding signature are written into the blank object together, and the two are combined to obtain a new character string, that is, the first character string.
  • the developer After generating the public-private key pair, the developer derives the private key from the certificate "keynamepair", and can extract the private key from the keystore through the java keystore class getEntry() or getKey().
  • base64 can represent binary data with 64 (26) printable characters. Every six binary numbers can correspond to an index number, and each index number corresponds to a base64 code. For example, the consecutive six binary numbers are 010011. According to the preset base64 index table, the index number is determined to be 19, and the corresponding base64 code is T. Therefore, we use T to represent 010011, which completes the conversion from binary to character string, and obtains the second character string composed of "A-Z, a-z, 0-9, +, /".
  • the lic format file is an encrypted file format for software executable files and is used for program restrictions.
  • the second character string is converted into a lic format file, which is the encrypted file corresponding to the authorization element.
  • the offline authorization package is a jar package.
  • the jar package is a java archive file.
  • eclips it is preferable to use eclips to package the files into a jar package. After selecting the file to be packaged in eclipse, the file can be packaged directly through export.
  • the reserved list determine which classes or files in the file package to be obfuscated will not participate in the subsequent obfuscation. And keeping files, classes, or class members outside the list is the seeds of confusion, such as for, class, private, if, else commands. Then, the obfuscation seed will be compressed, mapped, merged, etc. according to the obfuscation rules.
  • the obfuscation rule can also be configured with dictionary text, specify the name of the obfuscation seed after obfuscation, or specify the mapping method to map the obfuscation seed to achieve confusion.
  • the obfuscated seed will be changed to a simple random name after obfuscation, and the second file package will be obtained.
  • a stackmap is preferably configured, and then the second file package is pre-checked on the stackmap to determine whether the second file package is normal.
  • An embodiment of the offline software authorization device in the embodiment of the application includes:
  • the obtaining module 601 is used to obtain the software installation package to be installed offline;
  • the decompression module 602 is used to decompress the software installation package to obtain a custom class loader and an offline authorization package required for offline installation;
  • the parsing module 603 is used to parse the offline authorization package to obtain the corresponding software executable file, encrypted file and public key;
  • the decryption module 604 is configured to use the public key to decrypt the encrypted file to obtain the corresponding signature and authorization elements;
  • the authorization module 605 is configured to load the software executable file through the custom class loader for offline installation, and perform offline authorization on the software executable file according to the signature and the authorization elements.
  • the software installation package in addition to the offline authorization package, also includes a custom class loader.
  • the cost of deciphering custom class loader is high, so the risk of being deciphered is low, thereby improving the security of software executable files.
  • the offline authorization package also contains authorization elements. Therefore, the multiple functions of the software executable file can be restricted and authorized through the element information in the authorization element, and the function of flexibly defining the software executable file is realized.
  • another embodiment of the offline software authorization device in the embodiment of the present application includes:
  • the obtaining module 701 is used to obtain the software installation package to be installed offline;
  • the decompression module 702 is used to decompress the software installation package to obtain a custom class loader and an offline authorization package required for offline installation;
  • the parsing module 703 is used to parse the offline authorization package to obtain the corresponding software executable file, encrypted file and public key;
  • the decryption module 704 is configured to use the public key to decrypt the encrypted file to obtain the corresponding signature and authorization elements;
  • the authorization module 705 is configured to load the software executable file through the custom class loader for offline installation, and perform offline authorization on the software executable file according to the signature and the authorization elements.
  • the authorization module 705 is specifically configured to:
  • the offline software authorization device further includes a generating module 706, and the generating module 706 includes:
  • the obtaining unit 7061 is configured to obtain the authorization element file corresponding to the software executable file to be authorized
  • the sorting unit 7062 is configured to sort the authorization elements in the authorization element file according to a preset sorting rule to obtain a corresponding sorting result
  • the generating unit 7063 is configured to generate a signature and a public-private key pair corresponding to the authorization element according to the sorting result and a preset hash algorithm, wherein the public-private key pair includes a public key and a private key;
  • the encryption unit 7064 is configured to use the private key to encrypt the signature to obtain a corresponding encrypted file
  • the compiling unit 7065 is configured to compile the software executable file, the encrypted file, and the public key to generate an offline authorization package corresponding to the authorization element;
  • the compression unit 7066 is configured to compress the offline authorization package and the preset custom class loader to obtain the software installation package.
  • the sorting unit 7062 is configured to:
  • the authorized elements are sorted according to the first letter of the name of the element category to obtain the corresponding sorting result.
  • the hash algorithm includes a first hash algorithm, a second hash algorithm, and an RSA encryption algorithm
  • the generating unit 7063 is specifically configured to:
  • the encryption unit 7064 is specifically configured to:
  • the second character string is written into a blank file in a preset lic format to obtain an encrypted file.
  • the compiling unit 7065 is specifically configured to:
  • the second file package is taken as the offline authorization package corresponding to the authorization element.
  • a scheme for generating public-private key pairs and signatures based on authorization elements is provided, which increases the complexity of public-private key pairs.
  • offline authorization packages are generated according to obfuscation rules, thereby reducing the possibility of being deciphered and improving the security of offline authorization. .
  • FIG. 8 is a schematic structural diagram of an offline software authorization device provided by an embodiment of the present application.
  • the offline software authorization device 800 may have relatively large differences due to different configurations or performance, and may include one or more processors (central processing units). , CPU) 810 (for example, one or more processors) and memory 820, and one or more storage media 830 (for example, one or more storage devices with a large amount of data) storing application programs 833 or data 832.
  • the memory 820 and the storage medium 830 may be short-term storage or persistent storage.
  • the program stored in the storage medium 830 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the offline software authorization device 800.
  • the processor 810 may be configured to communicate with the storage medium 830, and execute a series of instruction operations in the storage medium 830 on the offline software authorization device 800.
  • the offline software-based authorization device 800 may also include one or more power supplies 840, one or more wired or wireless network interfaces 880, one or more input and output interfaces 870, and/or one or more operating systems 831, such as Windows Serve, Mac OS X, Unix, Linux, FreeBSD, etc.
  • operating systems 831 such as Windows Serve, Mac OS X, Unix, Linux, FreeBSD, etc.
  • FIG. 8 does not constitute a limitation on the offline software authorization device, and may include more or less components than those shown in the figure, or a combination of certain components, or different components. The layout of the components.
  • the computer-readable storage medium may be a non-volatile computer-readable storage medium, and the computer-readable storage medium may also be a volatile computer-readable storage medium.
  • the computer-readable storage medium stores instructions, and when the instructions are executed on the computer, the computer executes the following steps:
  • the software executable file is loaded by the custom class loader for offline installation, and the software executable file is authorized offline according to the signature and the authorization element.
  • the computer-readable storage medium may mainly include a storage program area and a storage data area, where the storage program area may store an operating system, an application program required by at least one function, etc.; the storage data area may store Data created by the use of nodes, etc.
  • the integrated unit is implemented in the form of a software executable file functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present application essentially or the part that contributes to the existing technology or all or part of the technical solution can be embodied in the form of a software executable file product.
  • the computer software executable file product It is stored in a storage medium and includes several instructions to enable a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disks or optical disks and other media that can store program codes. .
  • the blockchain referred to in this application is a new application mode of computer technology such as distributed data storage, point-to-point transmission, consensus mechanism, and encryption algorithm.
  • Blockchain essentially a decentralized database, is a series of data blocks associated with cryptographic methods. Each data block contains a batch of network transaction information for verification. The validity of the information (anti-counterfeiting) and the generation of the next block.
  • the blockchain can include the underlying platform of the blockchain, the platform product service layer, and the application service layer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

一种离线软件授权方法、装置、设备及存储介质,涉及信息安全,所述方法包括:获取待离线安装的软件安装包(101);解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包(102);解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥(103);采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素(104);通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权(105)。此外,还涉及区块链技术,用户的隐私信息可存储于区块链节点中。通过自定义类加载器和公钥,减少软件可执行文件被破译的风险,实现离线状态下的软件授权。

Description

离线软件授权方法、装置、设备及存储介质
本申请要求于2020年4月28日提交中国专利局、申请号为202010350021.1、发明名称为“离线软件授权方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在申请中。
技术领域
本申请涉及签名验证领域,尤其涉及一种离线软件授权方法、装置、设备及存储介质。
背景技术
软件授权认证是商用软件可执行文件的一种惯用防止盗版的模式。用户在购买了软件可执行文件后,需要搭载license许可才能够使用软件可执行文件。一般的license包含两种管理方式,一种是认证,另外一种是鉴权。认证适用于判断用户的身份是否合法,从而防止软件可执行文件的盗版。而鉴权是用于限制用户能够使用全部的软件可执行文件功能还是只能使用部分软件可执行文件功能。
目前,为了提高权限加密文件的保密性,市面上所流通的license许可都基于网络连接实现。用户在安装好软件可执行文件后,注册机获取终端的信息,然后将这然后将这些信息生成注册凭证,并将这些注册凭证发送给服务器,服务器根据这些注册凭证发送对应的激活码给用户,最后用户使用激活码完成授权。发明人意识到,这种方式限定其只能应用于联网状态,而在某些局域网或离线状态下无法有效使用。某些对信息敏感领域,如金融领域、监察机构,为避免信息泄露,常采用局域网进行管理,因此无法采用这种方式进行软件可执行文件的授权。
发明内容
本申请的主要目的在于解决目前缺少可在离线状态下实现软件可执行文件的授权技术的问题。
为实现上述目的,本申请第一方面提供了一种离线软件授权方法,包括:获取待离线安装的软件安装包;解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
本申请第二方面提供了一种离线软件授权设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:获取待离线安装的软件安装包;解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
本申请第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如下步骤:获取待离线安装的软件安装包;解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
本申请第四方面提供了一种离线软件授权装置,包括:获取模块,用于获取待离线安 装的软件安装包;解压模块,用于解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;解析模块,用于解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;解密模块,用于采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;授权模块,用于通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
本申请提供的技术方案中,首先获得软件安装包并解压,得到自定义类加载器和离线授权包,然后对离线授权包进行解析,得到软件可执行文件、加密文件和公钥。然后采用公钥对加密文件进行解密,得到签名和授权要素。最后使用自定义类加载器加载该软件可执行文件进行离线安装,同时根据授权要素与签名对软件可执行文件进行授权。由于软件可执行文件运行都需要一定的环境,而常规的加载器存在内存泄露的可能,同时也会影响软件源代码的泄露,而本方案采用了自定义类加载器,能够减少软件被破译的可能。此外,在离线授权包中还含有授权要素,因此可通过授权要素中要素信息,对软件可执行文件的多个功能进行限定和授权,实现了灵活定义软件可执行文件的功能。同时,为减少被破译的风险,本方案还提供根据授权要素生成公私钥对和签名的方案,增加了公私钥对的复杂性,同时根据混淆规则生成离线授权包,从而降低被破译的可能,提高离线授权的安全性。
附图说明
图1为本申请实施例中离线软件授权方法的第一个实施例示意图;
图2为本申请实施例中离线软件授权方法的第二个实施例示意图;
图3为本申请实施例中离线软件授权方法的第三个实施例示意图;
图4为本申请实施例中离线软件授权方法的第四个实施例示意图;
图5为本申请实施例中离线软件授权方法的第五个实施例示意图;
图6为本申请实施例中离线软件授权装置的一个实施例示意图;
图7为本申请实施例中离线软件授权装置的另一个实施例示意图;
图8为本申请实施例中离线软件授权设备的一个实施例示意图。
具体实施方式
本申请实施例提供了一种离线软件授权方法、装置、设备及存储介质,由于软件可执行文件运行都需要一定的环境,而常规的加载器存在内存泄露的可能,同时也会影响软件源代码的泄露,而本方案采用了自定义类加载器,能够减少软件被破译的可能。此外,在离线授权包中还含有授权要素,因此可通过授权要素中要素信息,对软件可执行文件的多个功能进行限定和授权,实现了灵活定义软件可执行文件的功能。同时,为减少被破译的风险,本方案还提供根据授权要素生成公私钥对和签名的方案,增加了公私钥对的复杂性,从而降低被破译的可能,提高离线授权的安全性。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本申请实施例的具体流程进行描述,请参阅图1,本申请实施例中离线软件授权方法的一个实施例包括:
101、获取待离线安装的软件安装包;
可以理解的是,本申请的执行主体可以为离线软件授权装置,还可以是终端或者服务 器,具体此处不做限定。本申请实施例以服务器为执行主体为例进行说明。
在本实施例中,采用硬盘、光盘等存储介质的读取的方式进行软件安装包的获取。
102、解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
如果一个类加载器发生了内存泄露,那么软件可执行文件的源代码也存在被泄露的风险。因此在软件安装包中包含有离线授权包和用于安装运行离线授权包中的软件可执行文件的自定义类加载器。
对软件安装包进行解压后,得到自定义类加载器和离线授权包。
103、解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
Java软件可执行文件进行运行,需要将其中的类加载到虚拟机中。一般过程包括加载、验证、准备、解析、初始化、使用和卸载七个步骤。而类加载器主要用于将类加载其中,以进行运行。因此,自定义类加载器是用于加载离线授权包中的软件可执行文件,从而实现软件可执行文件的安装。
由于离线授权包中的文件不一定规则排列,若存在通过混淆得到离线授权包,需要对离线授权包中文件进行解析,从而得到其中的软件可执行文件、加密文件和公钥。
104、采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
本实施例采用RSA算法实现文件的加密和解密。RSA算法是一种非对称密钥算法,他能通过一个数,生成两个不一样的密钥。加密过程可用通式表达:密文=明文 EmodN,在本实施例中,明文即授权要素和签名,而密文即加密文件,而解密过程通式为:明文=密文 DmodN。因此(E,N)为私钥,(D,N)为公钥。采用公钥对加密文件进行解密后,可得到授权要素和签名。
105、通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
通过自定义类加载器加载软件可执行文件进行软件可执行文件的安装。
通过与得到签名相同的散列算法可生成授权要素对应的第一哈希值,然后进行比对,若两者相同,则说明授权要素未被篡改,再对软件可执行文件进行功能的配置,从而实现离线授权。
因此在本申请实施例中,软件安装包中,除了离线授权包外,还包括有自定义的类加载器。自定义类加载器被破译的成本高,因此被破译风险低,从而提高了软件可执行文件的安全性。离线授权包中还含有授权要素,因此可通过授权要素中要素信息,对软件可执行文件的多个功能进行限定和授权,实现了灵活定义软件可执行文件的功能。
请参阅图2,本申请实施例中离线软件授权方法的另一个实施例包括:
201、获取待离线安装的软件安装包;
202、解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
203、解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
204、采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
205、通过所述自定义类加载器加载所述软件可执行文件;
206、基于预置散列算法,生成所述授权要素对应的第一哈希值;
散列算法,又称哈希算法,是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。因此,当原有文件发生改变时,其标志值也会发生改变。
采用与生成签名同样的散列算法,对授权要素进行哈希计算,得到授权要素的第一哈希值。
207、判断所述第一哈希值与所述签名是否相同;
208、若是,则根据所述授权要素,配置所述软件可执行文件以实现离线授权。
如果两者相同,则说明授权要素没有被修改,因此,根据得到的授权要素,对软件可执行文件进行配置。例如,在授权要素中限定了有效时间,则该软件在运行的时候实时读取终端的时间信息,用于监督软件运行时间。
本申请实施例中,在上一实施例基础上,在配置授权软件可执行文件之前,增加了判断签名和授权要素是否相同的步骤。若授权要素未被篡改,则两个数值应相同。故只有当两者数据相同,才可配置运行软件可执行文件,从而避免了被人非法篡改授权要素。
请参阅图3,本申请实施例中离线软件授权方法的第三个实施例包括:
301、获取待授权软件可执行文件对应的授权要素文件;
在本实施例中,待授权的软件可执行文件上包含不同的功能,不同的价位对应不同的功能。因此,该软件可执行文件的授权要素包括使用期限等等。
将这些授权要素作为字符串,写入空白的JSON文件中,生成授权要素文件。如{用户数量:5,期限:1年,终端数量:3,……}
302、根据预置排序规则,对所述授权要素文件中的授权要素进行排序,得到对应的排序结果;
获取授权要素文件后,可通过JOSN.parse()方法,将授权要素解析出来,得到授权要素的要素类别,如期限,从而确定要素类别的名称对应的中文或英文的首字母。如期限为Q,用户数量为Y。
本实施例中,采用的排序规则为:根据这些要素类别的名称的首字母,对授权要素进行排序。按照字母顺序,通过Array.sort()函数对这些授权要素进行排序。{期限:1年,用户数量:5,终端数量:3,……}。
303、根据所述排序结果和预置散列算法,生成所述授权要素对应的签名和公私钥对,其中,所述公私钥对包括公钥和私钥;
首先采用的SHA256算法对排序后的授权要素进行加密,得到授权要素的签名。同时,采用MD5算法将授权要素进行加密,从而生成该授权要素对应的MD5值。然后将MD5值作为随机种子,通过RSA算法生成公私密钥对。
304、采用所述私钥对所述签名进行加密,得到对应的加密文件;
将授权要素和对应的签名一起写入空白的对象中,从而将两者进行组合,得到第一字符串。采用私钥对第一字符串进行加密。此外,为避免之后解密过程出现不可用情况,可将二进制数组转换为base64文件,再将其写入空白的lic格式文件中,得到加密文件。
305、对所述软件可执行文件、所述加密文件和所述公钥进行编译,生成所述授权要素对应的离线授权包;
将待授权软件可执行文件、加密文件和公钥进行编译,从而得到jar格式的离线授权包。可使用专门用于将文件打包为jar包的软件可执行文件执行编译工作,如eclips。以离线授权包的形式进行储存和传输,存在被反编码的风险。因此之后,优选该jar包进行混淆,以增加离线授权包的安全性。
306、对所述离线授权包和预置自定义类加载器进行压缩,得到所述软件安装包;
307、获取待离线安装的软件安装包;
308、解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
309、解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
310、采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
311、通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
在本申请中,提出了通过根据授权要素的排序结果生成的密钥,从而增加了密钥的复杂程度很高,增加破译的成本,从而减少了被破译的可能,增加了离线授权的安全性。
请参阅图4,本申请实施例中离线软件授权方法的第四实施例包括:
401、获取待授权软件可执行文件对应的授权要素文件;
402、对所述授权要素文件进行解析,得到授权要素;
获取授权要素文件后,可通过JOSN.parse()方法,将JSON文件中的授权要素解析出来,得到授权要素的授权要素:用户数量、期限、终端数量等,和value:5,1年、3等等。
403、根据预置要素类别库,确定所述授权要素对应的要素类别;
预先设置好包含多个要素类别的要素类别库,如期限、用户数量、终端数量等。可在要素类别库中,每个要素类别都有其对应的要素提取规则。如针对期限,设置为:若出现字符串“期限:”,则把“:”后,“,”前的字符串作为期限的授权要素提取出来。根据这些提取规则,提取出来的授权要素,即为该要素类别。
404、根据所述要素类别的名称的首字母,对所述授权要素进行排序,得到对应的排序结果;
确定授权要素类别后,可得到授权要素类别的名称对应的中文或英文的首字母。如期限为Q,用户数量为Y,终端数量为Z。
然后按照字母顺序,通过Array.sort()函数对这些授权要素进行排序。{期限:1年,用户数量:5,终端数量:3,……}。
405、基于所述第一散列算法,生成所述排序结果对应的第二哈希值,并将所述第二哈希值作为所述授权要素对应的签名;
在本实施例中,采用的第一散列算法为SHA256算法。SHA256能够将任意长度的明文转换为一个256bit长的哈希值。通过SHA256算法,得到授权要素对应的第一哈希值,并将第一哈希值作为授权要素的签名保存。
406、基于所述第二散列算法,生成所述排序结果对应的第三哈希值;
在本实施例中,第二散列算法为MD5算法。MD5算法是将任意长度的明文分成不同的子明文,然后将这些子明文的内容进行反复处理。
依照授权要素的排序结果,MD5算法将授权要素进行分组,使得每一组的长度为512位,然后将512位的明文分组划分为16个子明文分组,每个子名为分组为32位。同时申请4个32位的第一链接变量。然后使用这些第一链接变量对子明文分组进行反复运算,运算后的第二链接变量与初始化的第一链接变量再进行求和运算,求和后的第三链接变量作为下一个明文分组的第一链接变量再重复此操作。最终得到的四个第三链接变量即为第三哈希值。
407、基于所述RSA加密算法,生成所述第三哈希值对应的公私钥对;
目前生成RSA加密算法的软件可执行文件或工具非常多,但主要过程都是输入一个随机种子,根据该随机种子,采用RSA算法生成公私钥对,本实施例以jdkkeytool为例,进行生成工作的简要说明。
首先采用jdkkeytool中的管理工具keytool的命令“keytool-genkey-alias‘keynamepair’-keyalg RSA-keystore‘证书保存位置和文件名’-keysize 1024-validity 3650”创建证书。genkey表示创建证书,证书的名字alias为“keynamepair”,keysize限定为密钥长度为1024,validity是限定这个公私钥对对应的证书有效期为3650天。然后将第二哈希值作为随机种子输入,通过命令“keytool-genkeypair-keysize 1024-validity 3650-alias‘keynamepair’...”生成公私钥对。在这里genkeypair表示生成公私钥对,整段命令表示生成证书“keynamepair”下的公私秘钥对。
408、采用所述私钥对所述签名进行加密,得到对应的加密文件;
409、对所述软件可执行文件、所述加密文件和所述公钥进行编译,生成所述授权要素对应的离线授权包;
410、对所述离线授权包和预置自定义类加载器进行压缩,得到所述软件安装包;
411、获取待离线安装的软件安装包;
412、解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
413、解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
414、采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
415、通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
在本实施例中,通过将授权要素转换为哈希值,再根据该哈希值生成公私钥对和得到签名,因此签名和公私钥对都与授权要素进行绑定,由此增加了公私钥对和签名的复杂程度,减少被破译的风险。
请参阅图5,本申请实施例中离线软件授权方法的第五实施例包括:
501、获取待授权软件可执行文件对应的授权要素文件;
502、根据预置排序规则,对所述授权要素文件中的授权要素进行排序,得到对应的排序结果;
503、根据所述排序结果和预置散列算法,生成所述授权要素对应的签名和公私钥对;
504、根据所述授权要素和所述签名,生成第一字符串;
将授权要素和对应的签名一起写入空白的对象中,从而将两者进行组合,得到一个新的字符串,即第一字符串。
505、采用所述私钥对所述第一字符串进行加密,得到二进制数组;
生成公私密钥对之后,开发者从证书“keynamepair”中导出私钥,可通过java的keystore类getEntry()或getKey()从keystore中提取私钥。
然后使用私钥对授权要素和签名进行加密,得到了二进制数组。
506、根据预置base54索引表,对所述二进制数组进行转换,得到第二字符串;
base64能够将二进制数据以64(26)个可打印字符来表示。每六个二进制数字可对应一个索引号,每一个索引号对应着一个base64编码。例如连续的六个二进制数为010011,根据预置的base64索引表,确定其索引号为19,对应的base64编码为T。因此以T来表示010011,从而完成了二进制到字符串的转换,得到了"A-Z、a-z、0-9、+、/"构成的第二字符串。
507、将所述第二字符串写入预置lic格式的空白文件中,得到加密文件;
lic格式文件是一种软件可执行文件加密文件格式,用于程序的限制。为了方便后续用户在对软件可执行文件进行注册和授权,将第二字符串转换为lic格式的文件,该文件就是授权要素对应的加密文件。
508、对所述软件可执行文件、所述加密文件和所述公钥进行编译,得到第一文件包;
在本实施例中,离线授权包是一个jar包。jar包是java归档文件。
使用keytool可以提取公钥,“keytool-export-alias‘别名’-keystore‘文件名’-file‘证书名’”。其中,export是命令从证书中导出公钥的命令。
优选使用eclips将文件打包成jar包。在eclipse中选择要打包的文件后,直接通过export即可完成文件的打包。
509、根据预置保留清单和预置混淆规则,对所述第一文件包中除所述保留清单记载以外的文件进行混淆,得到第二文件包;
预先将需要保留的文件的名称、文件格式或类写入保留清单中。一般情况下,为避免得到的第二文件包不可用,将第一文件包中的入口类写入保留预先将需要保留的文件的名称、文件格式或类写入保留清单中。一般情况下,为避免得到的第二文件包不可用,将第一文件包中的入口类写入保留清单。常用的混淆规则包括对文件或类进行压缩、映射、合并。
根据保留清单,确定待混淆的文件包中的哪些类或文件不参与之后的混淆。而保留清单外的文件、类或类的成员是混淆种子,如for,class,private,if,else命令。然后将混淆种子,根据混淆规则进行压缩、映射、合并等处理。
混淆规则还可配置字典文字,指定混淆种子混淆后的名字,或者指定映射方式,将混淆种子进行映射,从而实现混淆。由此,将混淆种子会经过混淆改成简单随机的名字,得到第二文件包。
510、检测所述第二文件包是否能正常运行;
在本实施例中,优选配置stackmap,然后将第二文件包在该stackmap上进行预检验,以此判断第二文件包是否能够正常。
511、若能正常运行,则将所述第二文件包作为所述授权要素对应的离线授权包;
512、对所述离线授权包和预置自定义类加载器进行压缩,得到所述软件安装包;
513、获取待离线安装的软件安装包;
514、解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
515、解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
516、采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
517、通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
由于存在被反编码的可能,因此为了更好地保护源代码,需要对编译好的文件进行混淆。在本实施例中,提供了一种将离线授权包中文件进行混淆的方案,从而降低了被反编码的可能。
上面对本申请实施例中离线软件授权方法进行了描述,下面对本申请实施例中离线软件授权装置进行描述,请参阅图6,本申请实施例中离线软件授权装置一个实施例包括:
获取模块601,用于获取待离线安装的软件安装包;
解压模块602,用于解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
解析模块603,用于解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
解密模块604,用于采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
授权模块605,用于通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
在本申请实施例中,软件安装包中,除了离线授权包外,还包括有自定义的类加载器。自定义类加载器被破译的成本高,因此被破译风险低,从而提高了软件可执行文件的安全性。离线授权包中还含有授权要素,因此可通过授权要素中要素信息,对软件可执行文件的多个功能进行限定和授权,实现了灵活定义软件可执行文件的功能。
请参阅图7,本申请实施例中离线软件授权装置的另一个实施例包括:
获取模块701,用于获取待离线安装的软件安装包;
解压模块702,用于解压所述软件安装包,得到离线安装所需的自定义类加载器和离 线授权包;
解析模块703,用于解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
解密模块704,用于采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
授权模块705,用于通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
可选的,所述授权模块705具体用于:
通过所述自定义类加载器加载所述软件可执行文件;
基于预置散列算法,生成所述授权要素对应的第一哈希值;
判断所述第一哈希值与所述签名是否相同;
若是,则根据所述授权要素,配置所述软件可执行文件以实现离线授权。
其中,所述离线软件授权装置还包括生成模块706,所述生成模块706包括:
获取单元7061,用于获取待授权软件可执行文件对应的授权要素文件;
排序单元7062,用于根据预置排序规则,对所述授权要素文件中的授权要素进行排序,得到对应的排序结果;
生成单元7063,用于根据所述排序结果和预置散列算法,生成所述授权要素对应的签名和公私钥对,其中,所述公私钥对包括公钥和私钥;
加密单元7064,用于采用所述私钥对所述签名进行加密,得到对应的加密文件;
编译单元7065,用于对所述软件可执行文件、所述加密文件和所述公钥进行编译,生成所述授权要素对应的离线授权包;
压缩单元7066,用于对所述离线授权包和预置自定义类加载器进行压缩,得到所述软件安装包。
可选的,所述排序单元7062用于:
对所述授权要素文件进行解析,得到授权要素;
根据预置要素类别库,确定所述授权要素对应的要素类别;
根据所述要素类别的名称的首字母,对所述授权要素进行排序,得到对应的排序结果。
可选的,所述散列算法包括第一散列算法、第二散列算法和RSA加密算法,所述生成单元7063具体用于:
基于所述第一散列算法,生成所述排序结果对应的第二哈希值,并将所述第二哈希值作为所述授权要素对应的签名;
基于所述第二散列算法,生成所述排序结果对应的第三哈希值;
基于所述RSA加密算法,生成所述第三哈希值对应的公私钥对。
可选的,所述加密单元7064具体用于:
根据所述授权要素和所述签名,生成第一字符串;
采用所述私钥对所述第一字符串进行加密,得到二进制数组;
根据预置base64索引表,对所述二进制数组进行转换,得到第二字符串;
将所述第二字符串写入预置lic格式的空白文件中,得到加密文件。
可选的,所述编译单元7065具体用于:
对所述软件可执行文件、所述加密文件和所述公钥进行编译,得到第一文件包;
根据预置保留清单和预置混淆规则,对所述第一文件包中除所述保留清单记载以外的文件进行混淆,得到第二文件包;
检测所述第二文件包是否能正常运行;
若能正常运行,则将所述第二文件包作为所述授权要素对应的离线授权包。
在本实施例中,提供根据授权要素生成公私钥对和签名的方案,增加了公私钥对的复杂性,同时根据混淆规则生成离线授权包,从而降低被破译的可能,提高离线授权的安全性。
上面图6和图7从模块化功能实体的角度对本申请实施例中的离线软件授权装置进行详细描述,下面从硬件处理的角度对本申请实施例中离线软件授权设备进行详细描述。
图8是本申请实施例提供的一种离线软件授权设备的结构示意图,该离线软件授权设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对离线软件授权设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在离线软件授权设备800上执行存储介质830中的一系列指令操作。
基于离线软件授权设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口880,一个或一个以上输入输出接口870,和/或,一个或一个以上操作系统831,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图8示出的离线软件授权设备结构并不构成对基于离线软件授权设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行如下步骤:
获取待离线安装的软件安装包;
解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件可执行文件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件可执行文件产品的形式体现出来,该计算机软件可执行文件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密 码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (20)

  1. 一种离线软件授权方法,其中,包括:
    获取待离线安装的软件安装包;
    解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
    解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
    采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
    通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
  2. 根据权利要求1所述的离线软件授权方法,其中,所述通过所述自定义类加载器加载所述软件可执行文件,并根据所述授权要素,对所述软件可执行文件进行离线授权,包括:
    通过所述自定义类加载器加载所述软件可执行文件;
    基于预置散列算法,生成所述授权要素对应的第一哈希值;
    判断所述第一哈希值与所述签名是否相同;
    若是,则根据所述授权要素,配置所述软件可执行文件以实现离线授权。
  3. 根据权利要求1所述的离线软件授权方法,其中,在所述获取待离线安装的软件安装包之前,还包括:
    获取所述软件可执行文件对应的授权要素文件;
    根据预置排序规则,对所述授权要素文件中的授权要素进行排序,得到对应的排序结果;
    根据所述排序结果和预置散列算法,生成所述授权要素对应的签名和公私钥对,其中,所述公私钥对包括公钥和私钥;
    采用所述私钥对所述签名进行加密,得到对应的加密文件;
    对所述软件可执行文件、所述加密文件和所述公钥进行编译,生成所述授权要素对应的离线授权包;
    对所述离线授权包和预置自定义类加载器进行压缩,得到所述软件安装包。
  4. 根据权利要求3所述的离线软件授权方法,其中,所述根据所述排序结果和预置散列算法,生成所述授权要素对应的签名和公私钥对,包括:
    对所述授权要素文件进行解析,得到授权要素;
    根据预置要素类别库,确定所述授权要素对应的要素类别;
    根据所述要素类别的名称的首字母,对所述授权要素进行排序,得到对应的排序结果。
  5. 根据权利要求3所述的离线软件授权方法,其中,所述散列算法包括第一散列算法、第二散列算法和RSA加密算法,所述根据预置排序规则,对所述授权要素文件中的授权要素进行排序,得到对应的排序结果,包括:
    基于所述第一散列算法,生成所述排序结果对应的第二哈希值,并将所述第二哈希值作为所述授权要素对应的签名;
    基于所述第二散列算法,生成所述排序结果对应的第三哈希值;
    基于所述RSA加密算法,生成所述第三哈希值对应的公私钥对。
  6. 根据权利要求3所述的离线软件授权方法,其中,所述采用所述私钥对所述签名进行加密,得到对应的加密文件,包括:
    根据所述授权要素和所述签名,生成第一字符串;
    采用所述私钥对所述第一字符串进行加密,得到二进制数组;
    根据预置base64索引表,对所述二进制数组进行转换,得到第二字符串;
    将所述第二字符串写入预置lic格式的空白文件中,得到加密文件。
  7. 根据权利要求3所述的离线软件授权方法,其中,所述对所述软件可执行文件、所述加密文件和所述公钥进行编译,生成所述授权要素对应的离线授权包,包括:
    对所述软件可执行文件、所述加密文件和所述公钥进行编译,得到第一文件包;
    根据预置保留清单和预置混淆规则,对所述第一文件包中除所述保留清单记载以外的文件进行混淆,得到第二文件包;
    检测所述第二文件包是否能正常运行;
    若能正常运行,则将所述第二文件包作为所述授权要素对应的离线授权包。
  8. 一种离线软件授权设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:
    获取待离线安装的软件安装包;
    解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
    解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
    采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
    通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
  9. 根据权利要求8所述的离线软件授权设备,所述处理器执行所述计算机程序时还实现以下步骤:
    通过所述自定义类加载器加载所述软件可执行文件;
    基于预置散列算法,生成所述授权要素对应的第一哈希值;
    判断所述第一哈希值与所述签名是否相同;
    若是,则根据所述授权要素,配置所述软件可执行文件以实现离线授权。
  10. 根据权利要求8所述的离线软件授权设备,所述处理器执行所述计算机程序时还实现以下步骤:
    获取所述软件可执行文件对应的授权要素文件;
    根据预置排序规则,对所述授权要素文件中的授权要素进行排序,得到对应的排序结果;
    根据所述排序结果和预置散列算法,生成所述授权要素对应的签名和公私钥对,其中,所述公私钥对包括公钥和私钥;
    采用所述私钥对所述签名进行加密,得到对应的加密文件;
    对所述软件可执行文件、所述加密文件和所述公钥进行编译,生成所述授权要素对应的离线授权包;
    对所述离线授权包和预置自定义类加载器进行压缩,得到所述软件安装包。
  11. 根据权利要求10所述的离线软件授权设备,所述处理器执行所述计算机程序时还实现以下步骤:
    对所述授权要素文件进行解析,得到授权要素;
    根据预置要素类别库,确定所述授权要素对应的要素类别;
    根据所述要素类别的名称的首字母,对所述授权要素进行排序,得到对应的排序结果。
  12. 根据权利要求10所述的离线软件授权设备,所述处理器执行所述计算机程序时还实现以下步骤:
    基于所述第一散列算法,生成所述排序结果对应的第二哈希值,并将所述第二哈希值作为所述授权要素对应的签名;
    基于所述第二散列算法,生成所述排序结果对应的第三哈希值;
    基于所述RSA加密算法,生成所述第三哈希值对应的公私钥对。
  13. 根据权利要求10所述的离线软件授权设备,所述处理器执行所述计算机程序时还实现以下步骤:
    根据所述授权要素和所述签名,生成第一字符串;
    采用所述私钥对所述第一字符串进行加密,得到二进制数组;
    根据预置base64索引表,对所述二进制数组进行转换,得到第二字符串;
    将所述第二字符串写入预置lic格式的空白文件中,得到加密文件。
  14. 根据权利要求10所述的离线软件授权设备,所述处理器执行所述计算机程序时还实现以下步骤:
    对所述软件可执行文件、所述加密文件和所述公钥进行编译,得到第一文件包;
    根据预置保留清单和预置混淆规则,对所述第一文件包中除所述保留清单记载以外的文件进行混淆,得到第二文件包;
    检测所述第二文件包是否能正常运行;
    若能正常运行,则将所述第二文件包作为所述授权要素对应的离线授权包。
  15. 一种计算机可读存储介质,所述计算机可读存储介质中存储计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如下步骤:
    获取待离线安装的软件安装包;
    解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
    解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
    采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
    通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
  16. 根据权利要求15所述的计算机可读存储介质,当所述计算机指令在计算机上运行时,使得计算机还执行以下步骤:
    通过所述自定义类加载器加载所述软件可执行文件;
    基于预置散列算法,生成所述授权要素对应的第一哈希值;
    判断所述第一哈希值与所述签名是否相同;
    若是,则根据所述授权要素,配置所述软件可执行文件以实现离线授权。
  17. 根据权利要求15所述的计算机可读存储介质,当所述计算机指令在计算机上运行时,使得计算机还执行以下步骤:
    获取所述软件可执行文件对应的授权要素文件;
    根据预置排序规则,对所述授权要素文件中的授权要素进行排序,得到对应的排序结果;
    根据所述排序结果和预置散列算法,生成所述授权要素对应的签名和公私钥对,其中,所述公私钥对包括公钥和私钥;
    采用所述私钥对所述签名进行加密,得到对应的加密文件;
    对所述软件可执行文件、所述加密文件和所述公钥进行编译,生成所述授权要素对应的离线授权包;
    对所述离线授权包和预置自定义类加载器进行压缩,得到所述软件安装包。
  18. 根据权利要求17所述的计算机可读存储介质,当所述计算机指令在计算机上运行时,使得计算机还执行以下步骤:
    对所述授权要素文件进行解析,得到授权要素;
    根据预置要素类别库,确定所述授权要素对应的要素类别;
    根据所述要素类别的名称的首字母,对所述授权要素进行排序,得到对应的排序结果。
  19. 根据权利要求17所述的计算机可读存储介质,当所述计算机指令在计算机上运行执行以下步骤时,使得计算机还执行以下步骤:
    基于所述第一散列算法,生成所述排序结果对应的第二哈希值,并将所述第二哈希值作为所述授权要素对应的签名;
    基于所述第二散列算法,生成所述排序结果对应的第三哈希值;
    基于所述RSA加密算法,生成所述第三哈希值对应的公私钥对。
  20. 一种离线软件授权装置,其中,所述离线软件授权装置包括:
    获取模块,用于获取待离线安装的软件安装包;
    解压模块,用于解压所述软件安装包,得到离线安装所需的自定义类加载器和离线授权包;
    解析模块,用于解析所述离线授权包,得到对应的软件可执行文件、加密文件和公钥;
    解密模块,用于采用所述公钥对所述加密文件进行解密,得到对应的签名和授权要素;
    授权模块,用于通过所述自定义类加载器加载所述软件可执行文件进行离线安装,并根据所述签名和所述授权要素对所述软件可执行文件进行离线授权。
PCT/CN2021/078070 2020-04-28 2021-02-26 离线软件授权方法、装置、设备及存储介质 WO2021218331A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010350021.1A CN111639306A (zh) 2020-04-28 2020-04-28 离线软件授权方法、装置、设备及存储介质
CN202010350021.1 2020-04-28

Publications (1)

Publication Number Publication Date
WO2021218331A1 true WO2021218331A1 (zh) 2021-11-04

Family

ID=72329880

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/078070 WO2021218331A1 (zh) 2020-04-28 2021-02-26 离线软件授权方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN111639306A (zh)
WO (1) WO2021218331A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091023A (zh) * 2021-11-23 2022-02-25 国汽智控(北京)科技有限公司 可执行文件的检查方法、装置、设备和存储介质
CN114465803A (zh) * 2022-02-15 2022-05-10 阿里巴巴(中国)有限公司 对象授权方法、装置、系统及存储介质
CN115037547A (zh) * 2022-06-22 2022-09-09 北京天拓四方科技有限公司 软件授权方法及系统
CN115391750A (zh) * 2022-10-26 2022-11-25 浙江华东工程数字技术有限公司 一种算法授权方法、装置、电子设备和存储介质
CN116415222A (zh) * 2023-05-09 2023-07-11 南京中图数码科技有限公司 流程工业数字工厂云设计平台的授权管理方法及系统
CN117094412A (zh) * 2023-08-18 2023-11-21 之江实验室 针对非独立同分布医疗场景下的联邦学习方法和装置
CN117390702A (zh) * 2023-12-11 2024-01-12 厦门天锐科技股份有限公司 一种分体式驱动加壳方法、装置、电子设备及存储介质
CN117972758A (zh) * 2024-03-27 2024-05-03 中汽研汽车检验中心(广州)有限公司 一种Modelica应用程序的保护方法、设备及介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111639306A (zh) * 2020-04-28 2020-09-08 深圳壹账通智能科技有限公司 离线软件授权方法、装置、设备及存储介质
CN112329035B (zh) * 2020-11-02 2022-12-27 成都中科大旗软件股份有限公司 一种基于jar程序解析加密解密的方法、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174631A1 (en) * 2003-06-30 2007-07-26 Allan Herrod System and Method for Controlling Usage of Software on Computing Devices
CN108268767A (zh) * 2016-12-30 2018-07-10 北京国双科技有限公司 Web应用程序授权方法及装置
CN109460674A (zh) * 2018-10-23 2019-03-12 上海金档信息技术有限公司 一种java应用程序保护方法
CN110247884A (zh) * 2018-11-21 2019-09-17 浙江大华技术股份有限公司 一种更新证书的方法、装置、系统及计算机可读存储介质
CN111639306A (zh) * 2020-04-28 2020-09-08 深圳壹账通智能科技有限公司 离线软件授权方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174631A1 (en) * 2003-06-30 2007-07-26 Allan Herrod System and Method for Controlling Usage of Software on Computing Devices
CN108268767A (zh) * 2016-12-30 2018-07-10 北京国双科技有限公司 Web应用程序授权方法及装置
CN109460674A (zh) * 2018-10-23 2019-03-12 上海金档信息技术有限公司 一种java应用程序保护方法
CN110247884A (zh) * 2018-11-21 2019-09-17 浙江大华技术股份有限公司 一种更新证书的方法、装置、系统及计算机可读存储介质
CN111639306A (zh) * 2020-04-28 2020-09-08 深圳壹账通智能科技有限公司 离线软件授权方法、装置、设备及存储介质

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114091023A (zh) * 2021-11-23 2022-02-25 国汽智控(北京)科技有限公司 可执行文件的检查方法、装置、设备和存储介质
CN114465803B (zh) * 2022-02-15 2024-03-01 阿里巴巴(中国)有限公司 对象授权方法、装置、系统及存储介质
CN114465803A (zh) * 2022-02-15 2022-05-10 阿里巴巴(中国)有限公司 对象授权方法、装置、系统及存储介质
CN115037547A (zh) * 2022-06-22 2022-09-09 北京天拓四方科技有限公司 软件授权方法及系统
CN115037547B (zh) * 2022-06-22 2024-04-05 北京天拓四方科技有限公司 软件授权方法及系统
CN115391750A (zh) * 2022-10-26 2022-11-25 浙江华东工程数字技术有限公司 一种算法授权方法、装置、电子设备和存储介质
CN115391750B (zh) * 2022-10-26 2023-02-14 浙江华东工程数字技术有限公司 一种算法授权方法、装置、电子设备和存储介质
CN116415222B (zh) * 2023-05-09 2023-10-20 南京中图数码科技有限公司 流程工业数字工厂云设计平台的授权管理方法及系统
CN116415222A (zh) * 2023-05-09 2023-07-11 南京中图数码科技有限公司 流程工业数字工厂云设计平台的授权管理方法及系统
CN117094412A (zh) * 2023-08-18 2023-11-21 之江实验室 针对非独立同分布医疗场景下的联邦学习方法和装置
CN117390702A (zh) * 2023-12-11 2024-01-12 厦门天锐科技股份有限公司 一种分体式驱动加壳方法、装置、电子设备及存储介质
CN117390702B (zh) * 2023-12-11 2024-03-15 厦门天锐科技股份有限公司 一种分体式驱动加壳方法、装置、电子设备及存储介质
CN117972758A (zh) * 2024-03-27 2024-05-03 中汽研汽车检验中心(广州)有限公司 一种Modelica应用程序的保护方法、设备及介质

Also Published As

Publication number Publication date
CN111639306A (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
WO2021218331A1 (zh) 离线软件授权方法、装置、设备及存储介质
US9514330B2 (en) Meta-complete data storage
KR101265099B1 (ko) 소프트웨어 보안 처리방법 및 기록매체
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US8117221B2 (en) Database obfuscation system and method
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US8938067B2 (en) Format preserving encryption methods for data strings with constraints
WO2021217980A1 (zh) java代码的加壳方法与系统
US20120233454A1 (en) Data security for digital data storage
CN115048652A (zh) 针对运行已验证软件的硬件的端到端安全性
CN106919810B (zh) 注册码生成方法及装置、软件注册方法及装置
US20060106729A1 (en) Method and apparatus for restricting use of a computer program
JPH10301773A (ja) 情報処理装置および情報処理方法、並びに記録媒体
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
CN113010856A (zh) 一种动态非对称加解密的JavaScript代码混淆方法与系统
US10452564B2 (en) Format preserving encryption of object code
Demsky Cross-application data provenance and policy enforcement
CN114547558B (zh) 授权方法、授权控制方法及装置、设备和介质
CN111159757A (zh) 文件加密方法、解密方法及相应装置
CN110889121A (zh) 防止数据泄露的方法、服务器及存储介质
JP2007527561A (ja) コンピュータ・デバイス上でのソフトウェアの利用を制御するためのシステム及び方法
CN111104693A (zh) 一种Android平台软件数据破解方法、终端设备及存储介质
Saxena et al. Collaborative approach for data integrity verification in cloud computing
CN111597576B (zh) 基于Android编译时的assets文件加密方法、及其相关设备
US20240184900A1 (en) System and method for providing protected data storage in data memory

Legal Events

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

Ref document number: 21796581

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 16.02.2023)

122 Ep: pct application non-entry in european phase

Ref document number: 21796581

Country of ref document: EP

Kind code of ref document: A1