CN107247891B - Method for realizing software distribution control by adopting hybrid encryption algorithm - Google Patents

Method for realizing software distribution control by adopting hybrid encryption algorithm Download PDF

Info

Publication number
CN107247891B
CN107247891B CN201710261600.7A CN201710261600A CN107247891B CN 107247891 B CN107247891 B CN 107247891B CN 201710261600 A CN201710261600 A CN 201710261600A CN 107247891 B CN107247891 B CN 107247891B
Authority
CN
China
Prior art keywords
software
information
certificate file
certificate
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710261600.7A
Other languages
Chinese (zh)
Other versions
CN107247891A (en
Inventor
倪松
孙越
王雪艳
吕抒钺
刘威乾
赵哲艺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JIANGSU LINYANG ENERGY Co.,Ltd.
Nanjing Linyang Electric Co.,Ltd.
Original Assignee
Jiangsu Linyang Solarfun Co Ltd
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 Jiangsu Linyang Solarfun Co Ltd filed Critical Jiangsu Linyang Solarfun Co Ltd
Priority to CN201710261600.7A priority Critical patent/CN107247891B/en
Publication of CN107247891A publication Critical patent/CN107247891A/en
Application granted granted Critical
Publication of CN107247891B publication Critical patent/CN107247891B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1014Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Storage Device Security (AREA)

Abstract

A method for realizing software release control by adopting a hybrid encryption algorithm comprises the following steps: s1, establishing a database by the background controller; s2, starting software by a user, acquiring the unique identification information of the computer, and sending a certificate file to the background controller; s3, the background controller distributes a hardware dog for the user, extracts the decoding information of the purchased software function module, and transmits a certificate back to the computer installed with the software; s4, the user receives the certificate file and the hardware dog, inserts the hardware dog into the computer and imports the certificate file; and acquiring decoding information of the purchased software functional module, matching the decoding information with the corresponding functional module in the software, and operating the purchased software functional module. The hybrid encryption algorithm realizes the security certificate module for performing certificate control on the background controller, namely the registration system and the outgoing software, has double protection of hardware encryption and soft encryption, has high security, and can be used in all occasions needing software use control.

Description

Method for realizing software distribution control by adopting hybrid encryption algorithm
Technical Field
The invention relates to a security certificate module for controlling software release, which is realized by adopting a hybrid encryption algorithm, controls the time efficiency and the function point of the software release, and is suitable for controlling commercial paid software and keeping the confidentiality of company scientific research technology.
Background
At present, the software architecture on the PC mainly comprises B/S (browser Server), C/S (client Server) and local software which does not need a server.
Commercial BS architecture software is generally a large data system deployed on a client server to implement web page access, and this system may be operated in a local area network or a public network environment, and a person skilled in the art can easily obtain a deployment package in a server web server to deploy and use the system.
Commercial CS framework software and local software are generally given to customers in the form of installation packages, and automatic installation and use are carried out through the installation packages
For commercial software of a company or software containing self-developed technology, in order to ensure that profits can be recovered from the outside or the technology is not embezzled or imitated maliciously, it is necessary to control the release of the software by using a security certificate module.
At present, most commercial software in the market adopts a registration code verification mechanism, and the problems that multiple computers use one registration code or the time is changed to continue using the registration code are easy to occur.
Disclosure of Invention
The invention aims to solve the problem of providing a security certificate module which is realized by adopting a hybrid encryption algorithm and used for issuing control to software, uniformly managing BS, CS and local software, having the functions of hardware encryption and soft encryption, being compatible with most development languages and being capable of crossing PC platforms. Based on these traits, C + + is adopted as a development language, and a security module used by the registration system and software, respectively, is generated.
The technical scheme of the invention is as follows:
a method for realizing software distribution control by adopting a hybrid encryption algorithm adopts a hardware dog and a background controller, and comprises the following steps:
s1, the background controller establishes a database, records user information, purchase information and certificate file generation records, the user information comprises computer unique identification information (comprising one or a combination of more of MAC address, hard disk physical serial number and CPUID) and hardware dogs allocated to the user information, the purchase information comprises a software function module and a validity period, and the certificate file generation records comprise user information and purchase information;
s2, the user starts software to obtain the unique identification information of the computer, and stores the information in the certificate file, and sends the certificate file to the background controller (the user communicates with the background controller, transmits the certificate file, or prints the certificate file, and sends the certificate file to the background controller by mail or fax);
s3, the background controller allocates a hardware dog for the user, extracts the decoding information of the purchased software function module, loads the decoding information, the validity period and the hardware dog information of the software function module purchased by the user into a certificate file, and transmits the information back to the computer installed with the software; (the user can also purchase software in advance, select the required function module and the validity period, store the function module and the validity period in the database, and call corresponding purchase information by the background controller for configuration when the user starts the software); the background controller generates a record of the certificate file and stores the record;
s4, the user receives the certificate file and the hardware dog, inserts the hardware dog into the computer and imports the certificate file; and matching the hardware dog information in the certificate with the inserted hardware dog, if the matching fails, stopping running, if the matching succeeds, acquiring decoding information of the purchased software functional module, matching the decoding information with the corresponding functional module in the software, running the purchased software functional module, and controlling the running time of the purchased software functional module according to the validity period.
Further, in step S2, the unique identification information of the computer is encrypted and stored in the certificate file, and correspondingly, the background controller decrypts the unique identification information in the certificate file; the encryption method is an MD5 encryption method.
Further, in step S3, a clock module is configured in the hardware dog, in corresponding step S4, the clock module in the hardware dog is configured correspondingly according to the validity period of the software, the user runs the function module of the purchased software, and determines whether the usage time expires according to the clock in the hardware dog.
Further, when the user needs to replace the running software of the computer, the background controller calls corresponding software function module information and the residual service time in the generated record according to the newly acquired unique identification information of the computer, and regenerates the certificate and record of the software and the hardware dog after the computer is replaced.
Further, in step S2, the software is started to generate RSA2048 key pair a including public key PKA and private key SKA, store the public key PKA and the unique identification information of the computer in the certificate file, and send the certificate file to the background controller;
in step S3, the background controller generates an RSA2048 KEY pair B including a public KEY PKB and a private KEY SKB, and randomly generates an AES KEY, encrypts the AES KEY using the private KEY SKB and the public KEY PKA in sequence, encrypts the certificate file including the software function module decoding information, the validity period, and the hardware dog information generated in this step using the encrypted KEY, and sends the encrypted certificate file and the public KEY PKB to the user;
in step S4, after acquiring the certificate file, the software decrypts and verifies the certificate file by using the private KEY SKA and the public KEY PKB in sequence to obtain the AES KEY, and decrypts the certificate file by using the KEY to obtain the information of the certificate.
The invention has the beneficial effects that:
the hybrid encryption algorithm realizes the security certificate module for performing certificate control on the background controller, namely the registration system and the outgoing software, has double protection of hardware encryption and soft encryption, has high security, and can be used in all occasions needing software use control.
In the invention, the clock module is arranged in the hardware dog, so that the service cycle of the software is realized by depending on the issued hardware dog, and the problem of inaccurate clock of a user computer or clock tampering is effectively prevented.
Detailed Description
The present invention is further described below in connection with examples, which although preferred embodiments, it should be understood that the present invention may be embodied in various forms and should not be limited to the embodiments set forth herein.
A method for realizing software distribution control by adopting a hybrid encryption algorithm adopts a hardware dog and a background controller, and comprises the following steps:
s1, the background controller establishes a database, records user information, purchase information and certificate file generation records, the user information comprises computer unique identification information (comprising one or a combination of more of MAC address, hard disk physical serial number and CPUID) and hardware dogs allocated to the user information, the purchase information comprises a software function module and a validity period, and the certificate file generation records comprise user information and purchase information;
s2, the user starts software to obtain the unique identification information of the computer, the information MD5 is encrypted and stored in the certificate file, and the certificate file is sent to the background controller (the user communicates with the background controller, transmits the certificate file, or prints the certificate file, and sends the certificate file to the background controller in a mail or fax mode);
s3, the background controller allocates a hardware dog for the user, extracts the decoding information of the purchased software function module, loads the decoding information, the validity period and the hardware dog information of the software function module purchased by the user into a certificate file, and transmits the information back to the computer installed with the software; (the user can also purchase software in advance, select the required function module and the validity period, store the function module and the validity period in the database, and call corresponding purchase information by the background controller for configuration when the user starts the software); the background controller generates a record of the certificate file and stores the record;
s4, the user receives the certificate file and the hardware dog, inserts the hardware dog into the computer and imports the certificate file; and matching the hardware dog information in the certificate with the inserted hardware dog, if the matching fails, stopping running, if the matching succeeds, acquiring decoding information of the purchased software functional module, matching the decoding information with the corresponding functional module in the software, running the purchased software functional module, and controlling the running time of the purchased software functional module according to the validity period.
Further, in step S3, a clock module is configured in the hardware dog, in corresponding step S4, the clock module in the hardware dog is configured correspondingly according to the validity period of the software, the user runs the function module of the purchased software, and determines whether the usage time expires according to the clock in the hardware dog.
Further, when the user needs to replace the running software of the computer, the background controller calls corresponding software function module information and the residual service time in the generated record according to the newly acquired unique identification information of the computer, and regenerates the certificate and record of the software and the hardware dog after the computer is replaced.
Further, in step S2, the software is started to generate RSA2048 key pair a including public key PKA and private key SKA, store the public key PKA and the unique identification information of the computer in the certificate file, and send the certificate file to the background controller;
in step S3, the background controller generates an RSA2048 KEY pair B including a public KEY PKB and a private KEY SKB, and randomly generates an AES KEY, encrypts the AES KEY using the private KEY SKB and the public KEY PKA in sequence, encrypts the certificate file including the software function module decoding information, the validity period, and the hardware dog information generated in this step using the encrypted KEY, and sends the encrypted certificate file and the public KEY PKB to the user;
in step S4, after acquiring the certificate file, the software decrypts and verifies the certificate file by using the private KEY SKA and the public KEY PKB in sequence to obtain the AES KEY, and decrypts the certificate file by using the KEY to obtain the information of the certificate.
In the specific implementation:
the implementation of the whole set of solution requires the cooperation of a background control system and a hardware dog.
A third party encryption library of open source Cryptopp is used in the encryption aspect;
in the aspect of hardware dog, a SafeNet series of softdog is used, a virtual clock is arranged in the hardware dog, and part of implementation codes are as follows:
and acquiring unique information, an MAC address, a hard disk physical serial number and a CPUID of the computer.
Windows uses wmi service to obtain, Linux system uses assembly instruction to obtain, part realizes the code as follows:
interface:
1. obtaining a registration code for use by a registration system
EXPORT_API int __stdcall STDCALL_GET_LICENSEKEY
(char LICENSE KEY- -returned LICENSE result
const char _ ID, -systematic code
const char ACTIVE DATE, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
const char ACTIVE _ QUANTITY, -number of users
const char _ SOFTWARE identifier
const char FUNCTION POINT
const char IS USEDOG)), hardware dog information
2. Obtaining hardware dog state-universal interface
EXPORT_API int __stdcall STDCALL_GET_DOGSTATUS(
char DOG STATUS), a returned hardware DOG STATUS
3. Obtaining a unique identifier for use by a non-registered system
EXPORT_API int __stdcall STDCALL_GET_LICENSE_ID(
char LICENSE _ ID, -returned system code
);
4. Obtaining the verification result-used by the unregistered system
EXPORT_API int __stdcall STDCALL_VALIDATE (
charx EXPIRE, -returned due date
char FUNCTION, return FUNCTION point
CAPACITY of char CAPACITY
const char KEY, register code
const char SOFTWARE source SOFTWARE identifier
Having described embodiments of the present invention, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.

Claims (7)

1. A method for realizing software distribution control by adopting a hybrid encryption algorithm is characterized in that a hardware dog and a background controller are adopted, and the method comprises the following steps:
s1, the background controller establishes a database, records user information, purchase information and certificate file generation records, wherein the user information comprises computer unique identification information and hardware dogs distributed to the computer unique identification information, the purchase information comprises a software function module and a validity period, and the certificate file generation records comprise the user information and the purchase information;
s2, the user starts the software, obtains the unique identification information of the computer, saves the information in the certificate file, and sends the certificate file to the background controller;
s3, the background controller allocates a hardware dog for the user, extracts the decoding information of the purchased software function module, loads the decoding information, the validity period and the hardware dog information of the software function module purchased by the user into a certificate file, and transmits the information back to the computer installed with the software; the background controller generates a record of the certificate file and stores the record;
s4, the user receives the certificate file and the hardware dog, inserts the hardware dog into the computer and imports the certificate file; matching the hardware dog information in the certificate with the inserted hardware dog, if the matching fails, stopping running, if the matching succeeds, acquiring decoding information of the purchased software functional module, matching the decoding information with the corresponding functional module in the software, running the purchased software functional module, and controlling the running time of the purchased software functional module according to the validity period;
in step S2, software is started to generate an RSA2048 key pair a including a public key PKA and a private key SKA, store the public key PKA and unique identification information of the computer in a certificate file, and send the certificate file to the background controller;
in step S3, the background controller generates an RSA2048 KEY pair B including a public KEY PKB and a private KEY SKB, and randomly generates an AES KEY, encrypts the AES KEY using the private KEY SKB and the public KEY PKA in sequence, encrypts the certificate file including the software function module decoding information, the validity period, and the hardware dog information generated in this step using the encrypted KEY, and sends the encrypted certificate file and the public KEY PKB to the user;
in step S4, after acquiring the certificate file, the software decrypts and verifies the certificate file by using the private KEY SKA and the public KEY PKB in sequence to obtain the AES KEY, and decrypts the certificate file by using the KEY to obtain the information of the certificate.
2. The method for implementing software distribution control using hybrid encryption algorithm as claimed in claim 1, wherein in step S1, the unique identification information includes: a combination of one or more of a MAC address, a hard disk physical serial number, and a CPUID.
3. The method for controlling software release by using hybrid encryption algorithm as claimed in claim 1, wherein in step S2, the unique identification information of the computer is encrypted and stored in the certificate file, and the corresponding background controller decrypts the unique identification information in the certificate file.
4. The method for implementing software release control using hybrid encryption algorithm as claimed in claim 3, wherein said encryption method is MD5 encryption method.
5. The method for realizing software distribution control by using hybrid encryption algorithm as claimed in claim 1, wherein in step S3, the hardware dog is configured with a clock module, in corresponding step S4, the clock module in the hardware dog is configured correspondingly according to the validity period of software usage, the user runs the function module of the purchased software, and determines whether the usage time is due according to the clock in the hardware dog.
6. The method for realizing software release control by adopting a hybrid encryption algorithm as claimed in claim 1, wherein when a user needs to replace the running software of the computer, the background controller calls the corresponding software function module information and the remaining use time in the generated record according to the newly acquired unique identification information of the computer, and regenerates the certificate and record of the software and the hardware dog after replacing the computer.
7. The method for implementing software release control by using hybrid encryption algorithm as claimed in claim 1, wherein in step S2, the user communicates with the background controller, transmits the certificate file, or prints the certificate file, and sends the certificate file to the background controller by mail or fax.
CN201710261600.7A 2017-04-20 2017-04-20 Method for realizing software distribution control by adopting hybrid encryption algorithm Active CN107247891B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710261600.7A CN107247891B (en) 2017-04-20 2017-04-20 Method for realizing software distribution control by adopting hybrid encryption algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710261600.7A CN107247891B (en) 2017-04-20 2017-04-20 Method for realizing software distribution control by adopting hybrid encryption algorithm

Publications (2)

Publication Number Publication Date
CN107247891A CN107247891A (en) 2017-10-13
CN107247891B true CN107247891B (en) 2020-02-28

Family

ID=60016840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710261600.7A Active CN107247891B (en) 2017-04-20 2017-04-20 Method for realizing software distribution control by adopting hybrid encryption algorithm

Country Status (1)

Country Link
CN (1) CN107247891B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032831A (en) * 2018-01-11 2019-07-19 上海有云信息技术有限公司 The generation method of software certificate, apparatus and system
CN110502909B (en) * 2019-08-06 2021-06-01 北京北信源软件股份有限公司 File encryption method and device and file decryption method and device
CN113051532A (en) * 2019-12-27 2021-06-29 施德朗(广州)电气科技有限公司 Software authorization method and device, computer equipment and storage medium
CN111339520B (en) * 2020-02-24 2022-07-22 南京南瑞继保电气有限公司 Hardware dog-based online control method, electronic equipment and storage medium
CN113572600B (en) * 2020-12-31 2024-03-01 广东国腾量子科技有限公司 Quantum key safe storage system
CN115134331A (en) * 2022-05-26 2022-09-30 四川福泰美科技有限公司 System and method for generating unique identifier of industrial Internet of things

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2015267A2 (en) * 2007-06-26 2009-01-14 Aruze Corporation Game processing apparatus for performing area authentication of gaming information
CN103942472A (en) * 2014-04-14 2014-07-23 立德高科(北京)数码科技有限责任公司 Method and device used for preventing unauthorized user from starting software
CN104517042A (en) * 2013-09-29 2015-04-15 北京行的科技有限公司 Use authority method and device of intelligent interactive toys
CN104850764A (en) * 2015-05-22 2015-08-19 东信和平科技股份有限公司 Smart card based software protection method and system
CN106548043A (en) * 2016-11-01 2017-03-29 广东浪潮大数据研究有限公司 A kind of authorization method of application program, installation method, installation end and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2015267A2 (en) * 2007-06-26 2009-01-14 Aruze Corporation Game processing apparatus for performing area authentication of gaming information
CN104517042A (en) * 2013-09-29 2015-04-15 北京行的科技有限公司 Use authority method and device of intelligent interactive toys
CN103942472A (en) * 2014-04-14 2014-07-23 立德高科(北京)数码科技有限责任公司 Method and device used for preventing unauthorized user from starting software
CN104850764A (en) * 2015-05-22 2015-08-19 东信和平科技股份有限公司 Smart card based software protection method and system
CN106548043A (en) * 2016-11-01 2017-03-29 广东浪潮大数据研究有限公司 A kind of authorization method of application program, installation method, installation end and system

Also Published As

Publication number Publication date
CN107247891A (en) 2017-10-13

Similar Documents

Publication Publication Date Title
CN107247891B (en) Method for realizing software distribution control by adopting hybrid encryption algorithm
US20210365528A1 (en) Controlling access to digital assets
US8763159B1 (en) System and method for application license management in virtual environments
WO2018024061A1 (en) Method, device and system for licensing shared digital content
US8230222B2 (en) Method, system and computer program for deploying software packages with increased security
WO2017063523A1 (en) Service authentication method, apparatus and system
EP0909413B1 (en) Distribution and controlled use of software products
US10678893B2 (en) Methods and related apparatus for managing access to digital assets
CN104756127A (en) Secure data handling by a virtual machine
US20060088167A1 (en) Method and system for backup and restore of a context encryption key for a trusted device within a secured processing system
CN101872404B (en) Method for protecting Java software program
JP2001067135A (en) Prevention against illegal usage of function work in electric communication system
CN101256607B (en) Method for remote updating and controlling use of software protection apparatus
JP2004110646A (en) License issuance server, processor, software execution management device, license issuance method and license issuance program
JP2011048661A (en) Virtual server encryption system
CN104104692A (en) Virtual machine encryption method, decryption method and encryption-decryption control system
CN103347090A (en) Software license management system based on enterprise network
CN111782344A (en) Method and system for providing password resources and host machine
US6651169B1 (en) Protection of software using a challenge-response protocol embedded in the software
CN103403729A (en) Secure management and personalization of unique code signing keys
US20120047074A1 (en) Methods of protecting software programs from unauthorized use
CN111984936A (en) Authorization allocation method, device, server and storage medium
CN101119255A (en) Dotnet LAN software encrypting service terminal activation method
US20080313743A1 (en) Network Software License Management and Piracy Protection
JP2004234591A (en) Update system, disclosure server, terminal, license issuing server, and program

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210420

Address after: Qidong City, Jiangsu province 226200 Nantong City Lin Yang Lu No. 666

Patentee after: JIANGSU LINYANG ENERGY Co.,Ltd.

Patentee after: Nanjing Linyang Electric Co.,Ltd.

Address before: 226200 Jiangsu city of Nantong province Qidong Economic Development Zone No. 666 Lin Yang Lu

Patentee before: JIANGSU LINYANG ENERGY Co.,Ltd.

TR01 Transfer of patent right