CN104361267A - 基于非对称加密算法的软件授权与保护装置及方法 - Google Patents

基于非对称加密算法的软件授权与保护装置及方法 Download PDF

Info

Publication number
CN104361267A
CN104361267A CN201410659328.4A CN201410659328A CN104361267A CN 104361267 A CN104361267 A CN 104361267A CN 201410659328 A CN201410659328 A CN 201410659328A CN 104361267 A CN104361267 A CN 104361267A
Authority
CN
China
Prior art keywords
authorization code
software
client
server
module
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.)
Granted
Application number
CN201410659328.4A
Other languages
English (en)
Other versions
CN104361267B (zh
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.)
XIAMEN HYMAKE TECHNOLOGY Co Ltd
Original Assignee
XIAMEN HYMAKE TECHNOLOGY 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 XIAMEN HYMAKE TECHNOLOGY Co Ltd filed Critical XIAMEN HYMAKE TECHNOLOGY Co Ltd
Priority to CN201410659328.4A priority Critical patent/CN104361267B/zh
Publication of CN104361267A publication Critical patent/CN104361267A/zh
Application granted granted Critical
Publication of CN104361267B publication Critical patent/CN104361267B/zh
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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (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

本发明涉及一种基于非对称加密算法的软件授权与保护装置及方法。该装置包括一软件商客户端计算机、多个客户端计算机、一软件商服务器、一数据库和一用户服务器,软件商客户端计算机通过无线和/或有线网络与软件商服务器连接,软件商服务器通过第一VPN网络连接数据库,用户服务器通过第二VPN网络连接数据库,多个客户端计算机通过互联网与用户服务器连接,发明的装置在应用服务器和数据库之间采双备份连接,提高数据库安全性能。本发明的另一个目的在于提供一种基于非对称加密算法的软件授权与保护方法,本发明的方法采用非对称加密技术,安全性高,技术实现不复杂,用户获得授权的方式更加简单。

Description

基于非对称加密算法的软件授权与保护装置及方法
技术领域
本发明涉及一种基于非对称加密算法的软件授权与保护装置及方法。
背景技术
由于软件的可复制性与可重复执行性,业界软件开发商及其开发团队一向深受软件非法复制使用及盗版软件产品之害。虽有多种软件授权与保护方法,如注册码方式,加密狗方式,插入功能限制程序,Key File保护等,但这些方法缺点亦很明显,或算法复杂,制作成本高,或容易破解,保护力弱。
随着互联网普及,结合互联网技术,有人提出了一种通过联网注册获得授权的软件授权和保护方法,该方法和现有技术的其他方法相比,安全性高且技术实现不复杂,但这种方法仅采用应用服务器和数据库采用唯一连接,数据库安全性较低。
发明内容
解决上述技术问题,本发明的主要目的在于提供一种基于非对称加密算法的软件授权与保护装置,本发明的装置在应用服务器和数据库之间采双备份连接,提高数据库安全性能;
本发明的另一个目的在于提供一种基于非对称加密算法的软件授权与保护方法,本发明的方法采用非对称加密技术,安全性高,技术实现不复杂,用户获得授权的方式更加简单。
为了达到上述目的,本发明所采用的技术方案之一是,一种基于非对称加密算法的软件授权与保护装置,该装置包括一软件商客户端、多个用户客户端、一软件商服务器、一数据库和一用户服务器,所述软件商客户端通过无线和/或有线网络与软件商服务器连接,所述软件商服务器通过第一局域网内部安全网络连接数据库,所述用户服务器通过第二局域网内部安全网络连接数据库,所述多个用户客户端通过互联网与用户服务器连接,
软件商客户端包括授权码申请模块,所述授权码申请模块用于获取需授权的软件名称、需要开通的权限及用户信息,生成授权码申请信息并发送给软件商服务器,接收软件商服务器发送过来的授权码并进行显示;
软件商服务器包括授权码产生模块和授权码信息登记模块,所述授权码产生模块用于根据软件商客户端提供的授权码申请信息产生对应的唯一授权码,所述授权码信息登记模块用于记录每一授权码对应的用户信息并对该用户信息进行维护操作,并将该用户信息存储于数据库中; 
用户客户端包括授权码激活模块和许可证验证模块,所述授权码激活模块获取需授权的软件名称、一随机值R、已安装的网卡的媒体接入控制地址、硬盘序列号、用户输入的授权码,生成授权码激活信息包,并对该信息包加密,并将加密后的信息包发送到用户服务器申请激活;如果激活成功,则在用户客户端本地生成一个许可证文件,该文件用于启动需授权的软件,否则提示错误,所述许可证验证模块用于验证许可证里面的内容是否有效,若有效,则需授权的软件正常启动,若无效,则需授权的软件无法启动,需要针对该需授权的软件申请授权码并激活;
用户服务器包括授权码验证模块和授权码激活信息登记模块,所述授权码验证模块用于验证用户输入的授权码是否合法有效,若是则生成许可证数据,并用非对称加密算法对其加密,将加密后的许可证数据返回给用户客户端并提示激活成功,否则提示错误,所述授权码激活信息登记模块用于记录授权码成功激活相关信息。
进一步的,所述授权码格式为XXXX-XXXX-XXXX,其中X为数字(0~9)或大写字母(A~Z,不含I和O),产生方式为随机,且和之前产生过的授权码不重复。
进一步的,所述用户信息包括授权的软件名称、开通的权限、用户编号、公司名称、联系人、联系电话、备注栏等,所述的维护操作有新增、删除、修改、复制、取消等动作。
进一步的,所述授权码激活信息包的组成为:随机值R-网卡的媒体接入控制地址-硬盘序列号-需授权的软件名称-授权码。
进一步的,所述的激活相关信息包括激活次数、用户客户端本地硬件信息、激活时间和用户客户端IP地址。
本发明还提供一个软件授权与保护方法,该软件授权与保护方法包括如下步骤:
S1:软件商客户端的授权码申请模块获取需授权的软件名称、需要开通的权限及用户信息,生成授权码申请信息并发送给软件商服务器;
S2:软件商服务器的授权码产生模块用于根据软件商客户端提供的授权码申请信息产生对应的唯一授权码,所述授权码信息登记模块用于记录每一授权码对应的用户信息并对该用户信息进行维护操作,并将该用户信息存储于数据库中; 
S3:用户客户端的授权码激活模块获取需授权的软件名称、一随机值R、已安装的网卡的媒体接入控制地址、硬盘序列号、用户输入的授权码,生成授权码激活信息包,并对该信息包加密,并将加密后的信息包发送到用户服务器申请激活;如果激活成功,则在用户客户端本地生成一个许可证文件,该文件用于启动需授权的软件,否则提示错误,所述许可证验证模块用于验证许可证里面的内容是否有效,若有效,则需授权的软件正常启动,若无效,则需授权的软件无法启动,需要针对该需授权的软件申请授权码并激活;
S4:用户服务器的授权码验证模块验证用户输入的授权码是否合法有效,若是则生成许可证数据,并用非对称加密算法对其加密,将加密后的许可证数据返回给用户客户端并提示激活成功,否则提示错误,所述授权码激活信息登记模块用于记录授权码成功激活相关信息。
进一步的,所述S2具体包括以下步骤:
在用户客户端启动授权码激活程序;获取需授权软件的名称、获取用户输入的授权码及随机值R;根据硬件信息及上述获取的信息产生授权码激活信息包并加密;将授权码传送至用户服务器,用户服务器验证授权码是否合法有效;授权码合法有效则根据授权码激活信息包内容生成许可证数据并加密,并将授权码激活信息进行登记并存储于一数据库中;用户服务器将加密后的许可证数据发送到用户客户端,用户客户端生成许可证文件;用户客户端对许可证文件进行验证以决定是否对用户授权。
进一步的,所述步骤S3具体包括以下步骤:
用户客户端授权码验证模块获取硬盘序列号等本地硬件信息,连同用户输入的授权码一并发送到服务端验证,授权码验证服务端接收到该请求后先验证该授权码是否合格,如果该授权码不合格返回验证失败,客户端提示错误信息,如果合格且使用次数未超过限定次数,将该请求中的硬件信息等通过已经约定好的非对称加密算法中的私钥加密,打成一个加密数据包返回,客户端授权码验证模块接收到加密数据包后将数据包生成一个许可证文件,作为后续软件运行验证用的许可文件。
本发明通过采用上述技术方案,与现有技术相比,具有如下优点:
本方案可以比目前常用的软件授权流程更简单易用,更安全。目前常用的授权流程用户需要操作三步:一是用户打开软件获得申请码,二是提交申请码获得授权码,三是输入授权码后获得软件授权。本方案不需要用户打开软件获得申请码和提交申请码获得授权码前面这两步操作,只要直接给用户一个合法的授权码,由用户使用该授权码上网激活软件即可,减少了前面两步来回沟通的成本和产生的问题。
本方案采用两连接安全性更高,授权码申请和生成的连接仅在软件商内部网络,授权码激活和验证的连接可以在互联网,这样可以设置对外的连接仅有读取权限,提高数据库安全性。而且方案中的授权码产生是当客户需要时再申请生成,产生方式是随机生成后存入数据库,不是事先约定的生成算法,也不是事先就生成在数据库中,不会被破解及浪费数据库存储空间。
授权码激活和验证过程是基于非对称加密算法,授权码激活过程采用不公开的私钥加密许可证文件,授权码验证过程则采用对应的公钥解密许可证文件,当且仅当使用此对应公钥时才能正确解密,因此无法复制、篡改或构造许可证文件,安全性更高。
附图说明
图1是本发明软件授权与保护装置的硬件架构图。
图2是本发明软件授权与保护装置的软件商客户端主要软件功能模块图。
图3是本发明软件授权与保护装置的软件商服务器主要软件功能模块图。
图4是本发明软件授权与保护装置的用户客户端主要软件功能模块图。
图5是本发明软件授权与保护装置的用户服务器主要软件功能模块图。
图6是本发明软件授权和保护方法的主作业流程。
图7是本发明软件授权与保护方法的软件商主作业流程。
图8是本发明软件授权与保护方法的授权码生成作业流程。
图9是本发明软件授权与保护方法的用户主作业流程。
图10是本发明软件授权与保护方法的授权码激活包生成作业流程。
图11是本发明软件授权与保护方法的许可证数据生成作业流程。
图12是本发明软件授权与保护方法的许可证验证作业流程。
具体实施方式
现结合附图和具体实施方式对本发明进一步说明。
作为一个具体的实施例,如图1所示,本发明的一种基于非对称加密算法的软件授权与保护装置,该装置包括一软件商客户端、多个用户客户端、一软件商服务器、一数据库和一用户服务器,所述软件商客户端通过无线和/或有线网络与软件商服务器连接,所述软件商服务器通过第一局域网内部安全网络连接数据库,所述用户服务器通过第二局域网内部安全网络连接数据库,所述多个用户客户端通过互联网与用户服务器连接,
软件商客户端包括授权码申请模块,所述授权码申请模块于软件商申请授权码,以及接收和显示新生成的授权码。软件商客户端获取需授权的软件名称、要开通的权限、用户编号、公司名称、联系人、联系电话、备注栏等信息,将这些授权码申请信息发送给软件商服务器;
软件商服务器包括授权码产生模块、授权码信息登记模块,所述授权码产生模块用于产生新授权码。软件商服务器根据软件商客户端所提供的授权码申请信息产生对应的新授权码,新生成授权码格式为XXXX-XXXX-XXXX,其中X为数字(0~9)或大写字母(A~Z,不含I和O),产生方式为随机,且和之前产生过的授权码不重复,所述授权码信息登记模块用于记录每一授权码对应的用户信息并对该用户信息进行维护操作,所述的用户信息包括授权的软件名称、开通的权限、用户编号、公司名称、联系人、联系电话、备注栏等,所述的维护操作有新增、删除、修改、复制、取消等动作。所有数据存储于数据库中,后期可用于用户信息跟踪维护、软件使用状况统计、后继服务等;
用户客户端包括授权码激活模块和许可证验证模块,所述授权码激活模块用于生成激活信息包及其加密传输。用户客户端获取需授权的软件名称、一随机值R、已安装的网卡的媒体接入控制地址、硬盘序列号、用户输入的授权码,生成授权码激活信息包。授权码激活信息包的组成为:随机值R-网卡的媒体接入控制地址-硬盘序列号-需授权的软件名称-授权码。其后采用对称加密算法对该信息包加密,并将加密后的信息包发送到用户服务器申请激活,所述许可证验证模块用于验证许可证里面的内容是否有效,以便确定相关软件是否正常启动。所述许可证验证模块分别读取许可证文件和用户客户端本地硬件信息等内容进行比较,如果许可证文件不存在或者比较内容不一致,则提示该软件无授权许可,该软件无法正常启动,需要针对该软件申请授权码并激活;
用户服务器包括授权码验证模块和授权码激活信息登记模块,授权码验证模块用于验证用户输入的授权码是否合法有效,合法将返回加密后的许可证数据。该模块将用户输入的授权码和数据库里面的合法授权码进行比较,如果不存在或超过激活限定次数则提示错误;如何合法有效则生成许可证数据,并用非对称加密算法对其加密,将加密后的数据返回给客户端并提示激活成功,所述授权码激活信息登记模块用于记录授权码成功激活的相关信息,所述的激活相关信息包括激活次数、用户客户端本地硬件信息、激活时间、用户客户端IP地址等;
所有数据存储于数据库中,后期可用于激活信息跟踪维护、软件使用状况统计、后继服务等。
如图1所示,是本发明软件授权与保护装置的硬件架构图。一种基于非对称加密算法的软件授权与保护装置,该装置包括一软件商客户端10、多个用户客户端15、一软件商服务器12、一数据库14和一用户服务器17,所述软件商客户端通过无线和/或有线网络11与软件商服务器连接,所述软件商服务器通过第一局域网内部安全网络13连接数据库,所述用户服务器通过第二局域网内部安全网络14连接数据库,所述多个用户客户端通过互联网16与用户服务器连接,软件商客户端10为软件商提供一操作接口,用于动态显示操作状态,其可以为台式机、膝上型电脑或笔记本电脑等,且安装有网格及硬盘。软件商客户端10通过网络11与软件商服务器12相连,网络11是个软件商企业内部的安全网络,软件商客户端10用于授权码申请,以及获得新生成的授权码。应用服务器12用于生成授权码、授权码信息登记、返回新生成的授权码等操作。其中新生成的授权码,以及授权码登记信息,包括需授权的软件名称、要开通的权限、用户编号、公司名称、联系人、联系电话、备注栏等信息,存储于数据库14中。数据库14可对登记的授权码信息进行维护,维护数据的操作有新增、删除、修改、复制、取消。数据库14通过连接13与软件商服务器相连。连接13为一数据库连接,如开放式数据库连接(Open Database Connectivity, ODBC),或Java数据库连接(Java Database Connectivity, JDBC)等,连接13具有对授权码及授权码登记信息增删改查的权限。用户客户端15为用户提供一操作接口,用于动态显示操作状态,其可以为台式机、膝上型电脑或笔记本电脑等,且安装有网格及硬盘。用户客户端15通过网络16与用户服务器17相连,网络16是因特网。用户客户端15用于激活合法授权码,生成许可证文件,使授权软件在用户客户端15本地可用,发送授权码请求激活的同时会发送本地硬件信息,授权软件通过验证本地许可证是否有效确定软件是否正常启动。用户服务器17用于验证用户客户端15发送过来的授权码是否合法,如果合法则发送经过加密的许可证数据到用户客户端15,并记录授权码激活信息,内容包括该授权码激活次数,用户客户端15本地硬件信息,激活时间,用户客户端15IP地址等,其存储于数据库14中。数据库14通过连接18与用户服务器17相连。连接18为一数据库连接,如开放式数据库连接(Open Database Connectivity, ODBC),或Java数据库连接(Java Database Connectivity, JDBC)等,和连接13不同的是,连接18对授权码及授权码登记信息仅有读取权限,无法修改和删除。
如图2所示,是本发明软件授权与保护装置的软件商客户端10主要软件功能模块图。本发明的软件商客户端10主要包括授权码申请模块101。
授权码申请模块101用于申请授权码,以及接收和显示新生成的授权码。软件商客户端10获取需授权的软件名称、要开通的权限、用户编号、公司名称、联系人、联系电话、备注栏等信息,将这些授权码申请信息发送给软件商服务器20。
如图3所示,是本发明软件授权与保护装置的软件商服务器12主要软件功能模块图。本发明的软件商服务器12主要包括授权码产生模块121、授权码信息登记模块122。
授权码产生模块121用于产生新授权码。软件商服务器12根据软件商客户端10所提供的授权码申请信息产生对应的新授权码,新生成授权码格式为XXXX-XXXX-XXXX,其中X为数字(0~9)或大写字母(A~Z,不含I和O),产生方式为随机,且和之前产生过的授权码不重复。
授权码信息登记模块122用于记录每一授权码对应的用户信息并对该用户信息进行维护操作,所述的用户信息包括授权的软件名称、开通的权限、用户编号、公司名称、联系人、联系电话、备注栏等,所述的维护操作有新增、删除、修改、复制、取消等动作。
如图4所示,是本发明软件授权与保护装置的用户客户端15主要软件功能模块图。本发明的用户客户端15主要包括授权码激活模块151、许可证验证模块152。
授权码激活模块151用于生成激活信息包及其加密传输。用户客户端15获取需授权的软件名称、一随机值R、已安装的网卡的媒体接入控制地址、硬盘序列号、用户输入的授权码,生成授权码激活信息包。授权码激活信息包的组成为:随机值R-网卡的媒体接入控制地址-硬盘序列号-需授权的软件名称-授权码。其后采用对称加密算法对该信息包加密,并将加密后的信息包发送到用户服务器17申请激活。
许可证验证模块152用于验证许可证里面的内容是否有效,以便确定相关软件是否正常启动。该模块分别读取许可证文件和本地硬件信息等内容进行比较,如果许可证文件不存在或者比较内容不一致,则提示软件无授权许可,无法正常启动,需要申请授权码并激活。
如图5所示,是本发明软件授权与保护装置的用户服务器17主要软件功能模块图。本发明的用户服务器17主要包括授权码验证模块171,授权码激活信息登记模块172。
授权码验证模块171用于验证用户输入的授权码是否合法有效,合法将返回加密后的许可证数据。该模块将用户输入的授权码和数据库里面的合法授权码进行比较,如果没有匹配的授权码将提示该授权码不存在;如果匹配但是激活次数超过限定次数将提示该授权码激活次数过多;如果匹配且激活次数未超过限定次数将获取一随机值R,以及提取授权码激活信息包的部分内容生成许可证数据,组成为:数据头-随机值R-网卡的媒体接入控制地址-硬盘序列号-授权软件名称-授权码,并通过非对称加密算法对其加密,然后返回给客户端并提示激活成功。
授权码激活信息登记模块172用于记录授权码成功激活的相关信息,所述的激活相关信息包括激活次数、用户客户端本地硬件信息、激活时间、用户客户端IP地址等。
如图6所示,是本发明软件授权与保护方法的主作业流程。S1:软件商客户端的授权码申请模块获取需授权的软件名称、需要开通的权限及用户信息,生成授权码申请信息并发送给软件商服务器;
S2:软件商服务器的授权码产生模块用于根据软件商客户端提供的授权码申请信息产生对应的唯一授权码,所述授权码信息登记模块用于记录每一授权码对应的用户信息并对该用户信息进行维护操作,并将该用户信息存储于数据库中;
S3:用户客户端的授权码激活模块获取需授权的软件名称、一随机值R、已安装的网卡的媒体接入控制地址、硬盘序列号、用户输入的授权码,生成授权码激活信息包,并对该信息包加密,并将加密后的信息包发送到用户服务器申请激活;如果激活成功,则在用户客户端本地生成一个许可证文件,该文件用于启动需授权的软件,否则提示错误,所述许可证验证模块用于验证许可证里面的内容是否有效,若有效,则需授权的软件正常启动,若无效,则需授权的软件无法启动,需要针对该需授权的软件申请授权码并激活;
S4:用户服务器的授权码验证模块验证用户输入的授权码是否合法有效,若是则生成许可证数据,并用非对称加密算法对其加密,将加密后的许可证数据返回给用户客户端并提示激活成功,否则提示错误,所述授权码激活信息登记模块用于记录授权码成功激活相关信息。
如图7所示,是本发明软件授权与保护方法的软件商主作业流程。首先软件商客户端10启动本程序(步骤S200),本程序是在安全可靠的软件商内部网络环境下运行且不可对外发布。软件商客户端10获取需授权的软件名称、要开通的权限、用户编号、公司名称、联系人、联系电话、备注栏等信息,并加密(步骤S201);软件商客户端10将上述所获取的信息发送到软件商服务器12(步骤S202);软件商服务器12对发送过来的授权码申请信息进行解密,并根据申请信息生成新授权码(步骤S203);软件商服务器12将授权码信息进行登记并存储于数据库14中(步骤S204);软件商客户端10获得返回的新生成授权码(步骤S205)。
如图8所示,是本发明软件授权与保护方法的授权码生成作业流程。本流程于软件商服务器12执行。首先获取约定好的对称加密算法密钥(步骤S300);用该密钥对授权码申请信息解密(步骤S301);判断解密后的文件头是否合法(步骤S302),若不合法则提示错误(步骤S307);若合法则根据授权码申请信息里面的需授权软件信息,找到对应的数据库表格,获取已存在的授权码列表(步骤S303);根据规则随机生成一个授权码,格式为XXXX-XXXX-XXXX,其中X为数字(0~9)或大写字母(A~Z,不含I和O) (步骤S304);判断生成的授权码是否与已存在的授权码重复(步骤S305),若重复则回到上一步(步骤S304),再根据规则随机生成一个授权码;若与已存在的授权码不重复,该授权码作为新生成的授权码输出(步骤S306)。
如图9所示,是本发明软件授权与保护方法的用户主作业流程。首先用户客户端15启动本程序(步骤S400)。用户客户端15获取用户输入的授权码、一随机值R和本地的硬件信息,生成授权码激活信息包并加密(步骤S401);用户客户端15将授权码激活信息包发送到用户服务器17(步骤S402);用户服务器17对发送过来的授权码激活信息包进行解密,并验证激活信息中的授权码是否合法有效(步骤S403);用户服务器17将授权码激活信息进行登记并存储于数据库14中(步骤S404);用户服务器17获取一随机值R,以及提取授权码激活信息包的部分内容生成许可证数据,并通过非对称加密算法加密(步骤S405);用户服务器17将加密后的许可证数据发送到用户客户端15(步骤S406);用户客户端15根据发送过来的加密后的许可证数据生成许可证文件,保存在本地(步骤S407);用户客户端15对许可证文件进行验证以决定用户是否有权限正常启动要授权软件(步骤S408)。
如图10所示,是本发明软件授权与保护方法的授权码激活包生成作业流程。本流程于用户客户端15执行。首先用户客户端15获取一随机值R(步骤S500);用户客户端15读取网卡的媒体接入控制地址(步骤S501),并判断该网卡的媒体接入控制地址是否为空(步骤S502),若网卡的媒体接入控制地址为空则提示错误,无法激活(步骤S509); 若网卡的媒体接入控制地址不为空则读取硬盘序列号(步骤S503)。判断硬盘的序列号是否为空(步骤S504),若此硬盘的序列号为空则提示错误,无法激活(步骤S509); 若此硬盘的序列号不为空则读取需授权的软件名称(步骤S505),读取用户输入的授权码(步骤S506)。生成激活信息包,其组成为:随机值R-网卡的媒体接入控制地址-硬盘序列号-需授权的软件名称-授权码(步骤S507)。用户客户端15获取约定好的对称加密算法密钥,并用该密钥对授权码激活信息包加密(步骤S508)。
如图11所示,是本发明软件授权与保护方法的许可证数据生成作业流程。本流程于用户服务器17执行。首先用户服务器17获取一随机值R(步骤S600);用户服务器17读取授权码激活信息包的网卡媒体接入控制地址(步骤S601),并判断网卡媒体接入控制地址是否为空(步骤S602),若网卡媒体接入控制地址为空则提示错误,无法激活(步骤S610);若网卡媒体接入控制地址不为空则读取授权码激活信息包里面的硬盘序列号(步骤S603)。判断硬盘序列号是否为空(步骤S604),若硬盘序列号为空则提示错误,无法激活(步骤S610); 若硬盘序列号不为空则读取授权码激活信息包里面的需授权软件名称(步骤S605),读取用户输入的授权码(步骤S606)。加上数据头生成许可证数据,其组成为:数据头-随机值R-网卡的媒体接入控制地址-硬盘序列号-授权软件名称-授权码(步骤S607)。用户服务器17获取约定好的非对称加密算法私钥(步骤S608),并用该私钥对许可证数据加密(步骤S609),当且仅当该私钥对应的公钥才能将此许可证数据密文解密。
如图12所示,是本发明软件授权与保护方法的许可证验证作业流程。本流程于用户客户端15执行。首先用户客户端15判断许可证文件是否存在(步骤S700),若不存在则提示错误,软件未授权(步骤S711);若存在则获取约定好的非对称加密算法公钥(步骤S701),用公钥对许可证内容解密(步骤S702)。判断解密后的数据头是否合法(步骤S703),若不合法则提示错误,软件未授权(步骤S711);若数据头合法则说明获得了解密后的许可证数据,读取用户客户端15的网卡媒体接入控制地址(步骤S704),并判断该网卡的媒体接入控制地址是否许可证内容一致 (步骤S705),若不一致则提示错误,软件未授权(步骤S711); 若网卡媒体接入控制地址一致则读取用户客户端15的硬盘序列号(步骤S706)。判断硬盘序列号是否与许可证内容一致(步骤S707),若不一致则提示错误,软件未授权(步骤S711); 若硬盘序列号一致则读取本软件名称(步骤S708)。判断软件名称是否与许可证里面授权软件名称一致(步骤S709),若不一致则提示错误,软件未授权(步骤S711);若软件名称一致则表示该软件已授权,正常启动软件 (步骤S710)。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

Claims (8)

1.一种基于非对称加密算法的软件授权与保护装置,其特征在于:一种基于非对称加密算法的软件授权与保护装置,该装置包括一软件商客户端、多个用户客户端、一软件商服务器、一数据库和一用户服务器,所述软件商客户端通过无线和/或有线网络与软件商服务器连接,所述软件商服务器通过第一局域网内部安全网络连接数据库,所述用户服务器通过第二局域网内部安全网络连接数据库,所述多个用户客户端通过互联网与用户服务器连接;
软件商客户端包括授权码申请模块,所述授权码申请模块用于获取需授权的软件名称、需要开通的权限及用户信息,生成授权码申请信息并发送给软件商服务器,接收软件商服务器发送过来的授权码并进行显示;
软件商服务器包括授权码产生模块和授权码信息登记模块,所述授权码产生模块用于根据软件商客户端提供的授权码申请信息产生对应的唯一授权码,所述授权码信息登记模块用于记录每一授权码对应的用户信息并对该用户信息进行维护操作,并将该用户信息存储于数据库中; 
用户客户端包括授权码激活模块和许可证验证模块,所述授权码激活模块获取需授权的软件名称、一随机值R、已安装的网卡的媒体接入控制地址、硬盘序列号、用户输入的授权码,生成授权码激活信息包,并对该信息包加密,并将加密后的信息包发送到用户服务器申请激活;如果激活成功,则在用户客户端本地生成一个许可证文件,该文件用于启动需授权的软件,否则提示错误,所述许可证验证模块用于验证许可证里面的内容是否有效,若有效,则需授权的软件正常启动,若无效,则需授权的软件无法启动,需要针对该需授权的软件申请授权码并激活;
用户服务器包括授权码验证模块和授权码激活信息登记模块,所述授权码验证模块用于验证用户输入的授权码是否合法有效,若是则生成许可证数据,并用非对称加密算法对其加密,将加密后的许可证数据返回给用户客户端并提示激活成功,否则提示错误,所述授权码激活信息登记模块用于记录授权码成功激活相关信息。
2.根据权利要求1所述的一种基于非对称加密算法的软件授权与保护装置,其特征在于:所述授权码格式为XXXX-XXXX-XXXX,其中X为数字(0~9)或大写字母,产生方式为随机,且和之前产生过的授权码不重复。
3.根据权利要求1所述的一种基于非对称加密算法的软件授权与保护装置,其特征在于:所述用户信息包括授权的软件名称、开通的权限、用户编号、公司名称、联系人、联系电话、备注栏等,所述的维护操作有新增、删除、修改、复制、取消动作。
4.根据权利要求1所述的一种基于非对称加密算法的软件授权与保护装置,其特征在于:所述授权码激活信息包的组成为:随机值R-网卡的媒体接入控制地址-硬盘序列号-需授权的软件名称-授权码。
5.根据权利要求1所述的一种基于非对称加密算法的软件授权与保护装置,其特征在于:所述的激活相关信息包括激活次数、用户客户端计算机本地硬件信息、激活时间和用户客户端计算机IP地址。
6.本发明还提供一个软件授权与保护方法,该软件授权与保护方法包括如下步骤:
S1:软件商客户端的授权码申请模块获取需授权的软件名称、需要开通的权限及用户信息,生成授权码申请信息并发送给软件商服务器;
S2:软件商服务器的授权码产生模块用于根据软件商客户端提供的授权码申请信息产生对应的唯一授权码,所述授权码信息登记模块用于记录每一授权码对应的用户信息并对该用户信息进行维护操作,并将该用户信息存储于数据库中; 
S3:用户客户端的授权码激活模块获取需授权的软件名称、一随机值R、已安装的网卡的媒体接入控制地址、硬盘序列号、用户输入的授权码,生成授权码激活信息包,并对该信息包加密,并将加密后的信息包发送到用户服务器申请激活;如果激活成功,则在用户客户端本地生成一个许可证文件,该文件用于启动需授权的软件,否则提示错误,所述许可证验证模块用于验证许可证里面的内容是否有效,若有效,则需授权的软件正常启动,若无效,则需授权的软件无法启动,需要针对该需授权的软件申请授权码并激活,S4:用户服务器的授权码验证模块验证用户输入的授权码是否合法有效,若是则生成许可证数据,并用非对称加密算法对其加密,将加密后的许可证数据返回给用户客户端并提示激活成功,否则提示错误,所述授权码激活信息登记模块用于记录授权码成功激活相关信息。
7.根据权利要求6所述的软件授权与保护方法,其特征在于:所述S2具体包括以下步骤:
在用户客户端启动授权码激活程序;获取需授权软件的名称、获取用户输入的授权码及随机值R;根据硬件信息及上述获取的信息产生授权码激活信息包并加密;将授权码传送至用户服务器,用户服务器验证授权码是否合法有效;授权码合法有效则根据授权码激活信息包内容生成许可证数据并加密,并将授权码激活信息进行登记并存储于一数据库中;用户服务器将加密后的许可证数据发送到用户客户端,用户客户端生成许可证文件;用户客户端对许可证文件进行验证以决定是否对用户授权。
8.根据权利要求6所述的软件授权与保护方法,其特征在于:所述S2具体包括以下步骤:
用户客户端授权码验证模块获取硬盘序列号等本地硬件信息,连同用户输入的授权码一并发送到服务端验证,授权码验证服务端接收到该请求后先验证该授权码是否合格,如果该授权码不合格返回验证失败,客户端提示错误信息,如果合格且使用次数未超过限定次数,将该请求中的硬件信息等通过已经约定好的非对称加密算法中的私钥加密,打成一个加密数据包返回,客户端授权码验证模块接收到加密数据包后将数据包生成一个许可证文件,作为后续软件运行验证用的许可文件。
CN201410659328.4A 2014-11-19 2014-11-19 基于非对称加密算法的软件授权与保护装置及方法 Active CN104361267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410659328.4A CN104361267B (zh) 2014-11-19 2014-11-19 基于非对称加密算法的软件授权与保护装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410659328.4A CN104361267B (zh) 2014-11-19 2014-11-19 基于非对称加密算法的软件授权与保护装置及方法

Publications (2)

Publication Number Publication Date
CN104361267A true CN104361267A (zh) 2015-02-18
CN104361267B CN104361267B (zh) 2017-11-07

Family

ID=52528526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410659328.4A Active CN104361267B (zh) 2014-11-19 2014-11-19 基于非对称加密算法的软件授权与保护装置及方法

Country Status (1)

Country Link
CN (1) CN104361267B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016192493A1 (zh) * 2015-05-29 2016-12-08 阿里巴巴集团控股有限公司 一种用于软件在线授权的方法和装置
CN106709280A (zh) * 2016-12-08 2017-05-24 北京旷视科技有限公司 信息处理方法和用于信息处理的客户端、服务器端
CN106712948A (zh) * 2017-03-09 2017-05-24 铁道第三勘察设计院集团有限公司 软件安全的集散控制架构及其控制方法
CN106778084A (zh) * 2016-11-18 2017-05-31 畅捷通信息技术股份有限公司 软件激活方法及装置和软件激活系统
CN106874714A (zh) * 2017-02-15 2017-06-20 湖南长城银河科技有限公司 一种软件授权方法
CN107133499A (zh) * 2017-05-10 2017-09-05 百望电子发票数据服务有限公司 一种软件版权保护方法、客户端、服务端以及系统
CN108319821A (zh) * 2018-02-07 2018-07-24 北京安博通科技股份有限公司 一种软件激活方法及装置
CN108712402A (zh) * 2018-05-02 2018-10-26 珠海横琴盛达兆业科技投资有限公司 一种基于bs架构的内网系统首次安装授权登录的方法
CN108881223A (zh) * 2018-06-17 2018-11-23 张红卫 一种基于网络通信实现计算机软件保护的方法
CN110149338A (zh) * 2019-05-27 2019-08-20 深圳市天启时代科技有限公司 一种云平台加密授权方法
CN110162936A (zh) * 2019-05-31 2019-08-23 北京比特安索信息技术有限公司 一种软件内容的使用授权方法
CN110263882A (zh) * 2019-03-11 2019-09-20 北京奇艺世纪科技有限公司 图像生成方法、信息获取方法、装置和电子设备
CN111859315A (zh) * 2020-07-21 2020-10-30 中科方德软件有限公司 一种授权激活装置
CN112230583A (zh) * 2020-10-27 2021-01-15 厦门鑫玥创益教育科技有限公司 基于Scratch程序的主控制板安装方法
CN112417385A (zh) * 2020-11-24 2021-02-26 国网北京市电力公司 安全控制方法及系统
CN112597447A (zh) * 2020-12-15 2021-04-02 广州橙行智动汽车科技有限公司 车载服务授权激活方法、装置及车辆
CN112861168A (zh) * 2019-11-27 2021-05-28 山东云缦智能科技有限公司 一种机顶盒的软件保护方法
CN113656101A (zh) * 2021-08-17 2021-11-16 成都长城开发科技有限公司 一种授权管理方法、系统、服务器、用户端
CN115529139A (zh) * 2022-09-08 2022-12-27 驭数(武汉)数字科技有限公司 一种基于对象序列化的在线软件加密授权系统与方法
CN115630341A (zh) * 2022-12-22 2023-01-20 湖南国科亿存信息科技有限公司 高可用存储设备中软件许可授权管控方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395679C (zh) * 2004-12-04 2008-06-18 鸿富锦精密工业(深圳)有限公司 软件授权与保护装置及方法
CN101944170A (zh) * 2010-09-20 2011-01-12 中兴通讯股份有限公司 一种软件版本发布方法、系统及装置
US20130133086A1 (en) * 2010-05-06 2013-05-23 4G Secure Method for authenticating a user requesting a transaction with a service provider
CN103995991A (zh) * 2014-05-07 2014-08-20 华中师范大学 一种软件版权保护中绑定硬件信息与密钥的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395679C (zh) * 2004-12-04 2008-06-18 鸿富锦精密工业(深圳)有限公司 软件授权与保护装置及方法
US20130133086A1 (en) * 2010-05-06 2013-05-23 4G Secure Method for authenticating a user requesting a transaction with a service provider
CN101944170A (zh) * 2010-09-20 2011-01-12 中兴通讯股份有限公司 一种软件版本发布方法、系统及装置
CN103995991A (zh) * 2014-05-07 2014-08-20 华中师范大学 一种软件版权保护中绑定硬件信息与密钥的方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016192493A1 (zh) * 2015-05-29 2016-12-08 阿里巴巴集团控股有限公司 一种用于软件在线授权的方法和装置
CN106778084A (zh) * 2016-11-18 2017-05-31 畅捷通信息技术股份有限公司 软件激活方法及装置和软件激活系统
CN106709280A (zh) * 2016-12-08 2017-05-24 北京旷视科技有限公司 信息处理方法和用于信息处理的客户端、服务器端
CN106874714A (zh) * 2017-02-15 2017-06-20 湖南长城银河科技有限公司 一种软件授权方法
CN106712948A (zh) * 2017-03-09 2017-05-24 铁道第三勘察设计院集团有限公司 软件安全的集散控制架构及其控制方法
CN107133499A (zh) * 2017-05-10 2017-09-05 百望电子发票数据服务有限公司 一种软件版权保护方法、客户端、服务端以及系统
CN107133499B (zh) * 2017-05-10 2020-12-18 国信电子票据平台信息服务有限公司 一种软件版权保护方法、客户端、服务端以及系统
CN108319821A (zh) * 2018-02-07 2018-07-24 北京安博通科技股份有限公司 一种软件激活方法及装置
CN108712402A (zh) * 2018-05-02 2018-10-26 珠海横琴盛达兆业科技投资有限公司 一种基于bs架构的内网系统首次安装授权登录的方法
CN108881223A (zh) * 2018-06-17 2018-11-23 张红卫 一种基于网络通信实现计算机软件保护的方法
CN110263882B (zh) * 2019-03-11 2023-09-01 北京奇艺世纪科技有限公司 图像生成方法、信息获取方法、装置和电子设备
CN110263882A (zh) * 2019-03-11 2019-09-20 北京奇艺世纪科技有限公司 图像生成方法、信息获取方法、装置和电子设备
CN110149338A (zh) * 2019-05-27 2019-08-20 深圳市天启时代科技有限公司 一种云平台加密授权方法
CN110149338B (zh) * 2019-05-27 2021-12-24 深圳市天启时代科技有限公司 一种云平台加密授权方法
CN110162936B (zh) * 2019-05-31 2020-03-31 北京比特安索信息技术有限公司 一种软件内容的使用授权方法
CN110162936A (zh) * 2019-05-31 2019-08-23 北京比特安索信息技术有限公司 一种软件内容的使用授权方法
CN112861168A (zh) * 2019-11-27 2021-05-28 山东云缦智能科技有限公司 一种机顶盒的软件保护方法
CN111859315A (zh) * 2020-07-21 2020-10-30 中科方德软件有限公司 一种授权激活装置
CN112230583A (zh) * 2020-10-27 2021-01-15 厦门鑫玥创益教育科技有限公司 基于Scratch程序的主控制板安装方法
CN112230583B (zh) * 2020-10-27 2021-07-20 厦门鑫玥创益教育科技有限公司 基于Scratch程序的主控制板安装方法
CN112417385A (zh) * 2020-11-24 2021-02-26 国网北京市电力公司 安全控制方法及系统
CN112597447A (zh) * 2020-12-15 2021-04-02 广州橙行智动汽车科技有限公司 车载服务授权激活方法、装置及车辆
CN113656101A (zh) * 2021-08-17 2021-11-16 成都长城开发科技有限公司 一种授权管理方法、系统、服务器、用户端
CN115529139A (zh) * 2022-09-08 2022-12-27 驭数(武汉)数字科技有限公司 一种基于对象序列化的在线软件加密授权系统与方法
CN115630341A (zh) * 2022-12-22 2023-01-20 湖南国科亿存信息科技有限公司 高可用存储设备中软件许可授权管控方法及系统
CN115630341B (zh) * 2022-12-22 2023-03-10 湖南国科亿存信息科技有限公司 高可用存储设备中软件许可授权管控方法及系统

Also Published As

Publication number Publication date
CN104361267B (zh) 2017-11-07

Similar Documents

Publication Publication Date Title
JP6941146B2 (ja) データセキュリティサービス
US11470054B2 (en) Key rotation techniques
CN104361267A (zh) 基于非对称加密算法的软件授权与保护装置及方法
US9300639B1 (en) Device coordination
RU2589861C2 (ru) Система и способ шифрования данных пользователя
JP6678457B2 (ja) データセキュリティサービス
US20200082110A1 (en) Automatic key rotation
CN106992978A (zh) 网络安全管理方法及服务器
TWI546698B (zh) 基於伺服器的登入系統、登入驗證伺服器及其驗證方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant