CN108062461A - 一种软件授权方法、装置及系统 - Google Patents
一种软件授权方法、装置及系统 Download PDFInfo
- Publication number
- CN108062461A CN108062461A CN201711180168.5A CN201711180168A CN108062461A CN 108062461 A CN108062461 A CN 108062461A CN 201711180168 A CN201711180168 A CN 201711180168A CN 108062461 A CN108062461 A CN 108062461A
- Authority
- CN
- China
- Prior art keywords
- client
- authorization message
- authorization
- features
- software
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000013475 authorization Methods 0.000 claims abstract description 282
- 230000007613 environmental effect Effects 0.000 claims abstract description 17
- 230000002159 abnormal effect Effects 0.000 claims description 18
- 230000009467 reduction Effects 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 11
- 230000003213 activating effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000009434 installation Methods 0.000 claims description 2
- 238000005303 weighing Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000002716 delivery method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种软件的授权方法、装置及系统。该方法包括:基于客户端运行目标软件程序所产生的客户端特征,生成授权信息,其中,所述客户端特征包括客户端硬件特征和软件特征;基于将所述授权信息返回给客户端,进行目标软件程序的授权。本发明通过客户机的软件特征、硬件特征进而结合环境变量获取具备可靠的伪动态客户特征,通过客户特征为客户提供专用的灵活的软件授权,能够提高软件授权的可靠性及灵活性。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种软件授权方法及装置。
背景技术
作为软件供应方,若想保护自身软件作品的权益,需要一些有效手段保护其软件产品的核心技术,以确保自己的竞争优势。同时需要借助软件授权的交付方式来保证软件应用的可控性,并根据客户的需求及支付情况启用相应的功能和产品特性。目前常见的软件保护技术分为硬件授权、软件授权两大类。硬件授权使用附加的硬件产品为USB、PCIE等总线上的设备,安全性较高,但普遍使用成本也很高。而软件授权可分为在线和离线两大类,软件授权安全性低于硬件授权。在线授权依托互联网,可实现授权的动态控制及在线激活,但存在使用场景限制时,离线授权不受影响。
发明内容
有鉴于此,本发明的目的是提供一种软件授权的方法,能够提高软件授权的可靠性及灵活性。
根据本发明的第一方面,提供一种软件的授权方法,其特征在于,包括:基于客户端运行目标软件程序所产生的客户端特征,生成授权信息,其中,所述客户端特征包括客户端硬件特征和软件特征;基于将所述授权信息返回给客户端,进行目标软件程序的授权。
进一步的,基于客户端运行目标软件程序所产生的客户端特征,生成授权信息,其中,所述客户端特征包括客户端硬件特征和软件特征,包括:所述客户端特征是客户端在运行目标软件程序时由获取的客户端硬件特征、软件特征并结合环境随机变量计算产生;授权服务器接收到来自客户端的客户端特征,生成授权信息;和/或,基于将所述授权信息返回给客户端,进行目标软件程序的授权,包括:授权服务器端将生成的授权信息发送给客户端的用户;用户将所述授权信息输入到客户端的目标软件程序中,完成验证以进行授权。
进一步的,所述客户端特征是客户端在运行目标软件程序时由获取的客户端硬件特征、软件特征并结合环境随机变量计算产生,包括:获取客户端硬件特征;获取客户端软件特征;获取客户端环境随机变量R;使用客户端硬件特征、客户端软件特征生成终端特征C;使用第一序列化方式将终端特征C与客户端环境随机变量R序列化,得到客户端特征。
进一步的,所述硬件特征包括:CPU序列号A1、硬盘序列号A2、主板序列号A3和/或MAC地址A4;和/或,所述软件特征包括:操作系统信息、操作系统序列号、客户简要信息、和/或当前安装软件版本号;和/或,所述客户端环境随机变量R包括:根据客户端当前系统时间、和/或客户端所在的地理位置得出;和/或,所述使用客户端硬件特征、客户端软件特征生成终端特征C,包括:以主板序列号A3作为初始值,并将A3数值求和并对255求余数得到A5;使用顺序打乱函数F1将A1的原始数据以A5作为参数打乱得到B1,同时使用A5作为参考值,作为选择顺序打乱函数F2、F3、F4、F5的决定性因素,使用选择的顺序打乱函数,使用A5作为参数对A2进行打乱处理得到B2;将A3与A4进行循环异或得到B3;使用B3的数值求和并对255求余数得到A6;根据A6在F1、F2、F3、F4、F5中选取一个函数使用A6作为参数对B1、B2与B3的异或值打乱,得到终端特征C;和/或,所述使用第一序列化方式将终端特征C与客户端环境随机变量R序列化,得到客户端特征,包括:使用客户端环境随机变量R对终端特征C进行加密得到加密后的终端特征CX,合并客户端环境随机变量R和终端特征CX,并进行混淆性质的数据打乱,得到客户端特征。
进一步的,生成授权信息,包括:在授权服务器端使用第一反序列化方式对所述客户端特征作还原处理,得到客户端的终端特征C及客户端环境随机变量R;获取服务器端环境随机变量,并基于用户的需求,根据终端特征C以及服务器端环境随机变量生成授权信息;所述授权信息包含服务器端环境随机变量和客户端终端特征C。
进一步的,所述服务器端环境随机变量包含生成授权信息的详细时间、生成授权信息操作方的唯一ID;和/或,在使用第一反序列化方式对所述客户端特征作还原处理前,还包括:检测客户端特征的数据长度及客户端特征数据校验是否出现异常的步骤;和/或,在使用第一反序列化方式对所述客户端特征作还原处理后,还包括:对客户端环境随机变量R中的环境信息及客户端特征数据进行校验的步骤;和/或,获取服务器端环境随机变量,并基于用户的需求,根据终端特征C以及服务器端环境随机变量生成授权信息,包括:记录客户端特征,构建授权信息需求,根据授权信息需求生成第一授权信息,所述第一授权信息包含至少一组功能授权信息。
进一步的,使用第二序列化方式将所述第一授权信息序列化,得到第二授权信息;和/或,所述授权信息需求至少包括:授权请求时间、授权请求功能信息、和/或授权操作人;和/或,每一组功能授权信息至少包括:功能名称、授权类型、权限级别、授权时间和/或授权时长。
进一步的,所述使用第二序列化方式将所述第一授权信息序列化,包括:对所述第一授权信息进行可恢复的混淆打乱后加密,再将其转化为文本格式的授权信息文本。
进一步的,用户将所述授权信息输入到客户端的目标软件程序中,完成验证以进行授权,包括:对授权信息中的客户端特征与当前客户端的特征进行比较,同时检查授权信息的生成时间、授权信息包含的授权内容是否异常,如无异常根据授权信息中的功能授权信息对软件功能进行激活;或者,用户将所述授权信息输入到客户端的目标软件程序中,使用第二反序列化方式对授权信息进行反序列化操作得到原始授权信息,对原始授权信息中的客户端特征与本当前客户端的特征进行比较,同时检查原始授权信息的生成时间、包含的授权内容是否异常,如无异常根据原始授权信息中的功能授权信息对软件功能进行激活。
进一步的,所述使用第二反序列化方式对授权信息进行反序列化操作得到原始授权信息,包括:将文本信息还原为字节数据后执行解密操作,最后对解密后的数据还原混淆内容并恢复数据顺序。
根据本发明的第二方面,提供一种软件的授权方法,其特征在于,包括:根据客户端的目标软件程序运行,产生客户端特征并发送客户端特征到授权服务器端,其中,所述客户端特征包括客户端硬件特征和软件特征;基于服务器端返回给客户端的、根据所述客户端特征生成的授权信息,进行目标软件程序的授权。
进一步的,根据客户端的目标软件程序运行,产生客户端特征并发送客户端特征到授权服务器端,其中,所述客户端特征包括客户端硬件特征和软件特征,包括:客户端在运行目标软件程序时,获取客户端硬件特征、软件特征、环境随机变量,计算产生客户端特征;和/或,基于服务器端返回给客户端的、根据所述客户端特征生成的授权信息,进行目标软件程序的授权,包括:客户端的用户接收来自授权服务器生成的授权信息,用户将所述授权信息输入到客户端的目标软件程序中,完成验证以进行授权,其中,授权服务器接收到来自客户端的客户端特征,生成该授权信息。
进一步的,客户端在运行目标软件程序时,获取客户端硬件特征、软件特征、环境随机变量,计算产生客户端特征,包括:获取客户端硬件特征;获取客户端软件特征;获取客户端环境随机变量R;使用客户端硬件特征、客户端软件特征生成终端特征C;使用第一序列化方式将终端特征C与客户端环境随机变量R序列化,得到客户端特征。
进一步的,所述硬件特征包括:CPU序列号A1、硬盘序列号A2、主板序列号A3和/或MAC地址A4;和/或,所述软件特征包括:操作系统信息、操作系统序列号、客户简要信息、和/或当前安装软件版本号;和/或,所述客户端环境随机变量R包括:根据客户端当前系统时间、和/或客户端所在的地理位置得出;和/或,所述使用客户端硬件特征、客户端软件特征生成终端特征C,包括:以主板序列号A3作为初始值,并将A3数值求和并对255求余数得到A5;使用顺序打乱函数F1将A1的原始数据以A5作为参数打乱得到B1,同时使用A5作为参考值,作为选择顺序打乱函数F2、F3、F4、F5的决定性因素,使用选择的顺序打乱函数,使用A5作为参数对A2进行打乱处理得到B2;将A3与A4进行循环异或得到B3;使用B3的数值求和并对255求余数得到A6;根据A6在F1、F2、F3、F4、F5中选取一个函数使用A6作为参数对B1、B2与B3的异或值打乱,得到终端特征C;和/或,所述使用第一序列化方式将终端特征C与客户端环境随机变量R序列化,得到客户端特征,包括:使用客户端环境随机变量R对终端特征C进行加密得到加密后的终端特征CX,合并客户端环境随机变量R和终端特征CX,并进行混淆性质的数据打乱,得到客户端特征。
进一步的,生成授权信息,包括:在授权服务器端使用第一反序列化方式对所述客户端特征作还原处理,得到客户端的终端特征C及客户端环境随机变量R;获取服务器端环境随机变量,并基于用户的需求,根据终端特征C以及服务器端环境随机变量生成授权信息;所述授权信息包含服务器端环境随机变量和客户端终端特征C。
进一步的,所述服务器端环境随机变量包含生成授权信息的详细时间、生成授权信息操作方的唯一ID;和/或,在使用第一反序列化方式对所述客户端特征作还原处理前,还包括:检测客户端特征的数据长度及客户端特征数据校验是否出现异常的步骤;和/或,在使用第一反序列化方式对所述客户端特征作还原处理后,还包括:对客户端环境随机变量R中的环境信息及客户端特征数据进行校验的步骤;和/或,获取服务器端环境随机变量,并基于用户的需求,根据终端特征C以及服务器端环境随机变量生成授权信息,包括:记录客户端特征,构建授权信息需求,根据授权信息需求生成第一授权信息,所述第一授权信息包含至少一组功能授权信息。
进一步的,使用第二序列化方式将所述第一授权信息序列化,得到第二授权信息;和/或,所述授权信息需求至少包括:授权请求时间、授权请求功能信息、和/或授权操作人;和/或,每一组功能授权信息至少包括:功能名称、授权类型、权限级别、授权时间和/或授权时长。
进一步的,所述使用第二序列化方式将所述第一授权信息序列化,包括:对所述第一授权信息进行可恢复的混淆打乱后加密,再将其转化为文本格式的授权信息文本。
进一步的,用户将所述授权信息输入到客户端的目标软件程序中,完成验证以进行授权,包括:对授权信息中的客户端特征与当前客户端的特征进行比较,同时检查授权信息的生成时间、授权信息包含的授权内容是否异常,如无异常根据授权信息中的功能授权信息对软件功能进行激活;或者,用户将所述授权信息输入到客户端的目标软件程序中,使用第二反序列化方式对授权信息进行反序列化操作得到原始授权信息,对原始授权信息中的客户端特征与本当前客户端的特征进行比较,同时检查原始授权信息的生成时间、包含的授权内容是否异常,如无异常根据原始授权信息中的功能授权信息对软件功能进行激活。
进一步的,所述使用第二反序列化方式对授权信息进行反序列化操作得到原始授权信息,包括:将文本信息还原为字节数据后执行解密操作,最后对解密后的数据还原混淆内容并恢复数据顺序。
根据本发明的第三方面,提供一种软件的授权系统,其特征在于,包括:生成针对目标软件程序进行授权的授权信息的授权服务器,授权服务器通信连接安装并运行目标软件程序的客户端;所述授权服务器接收来自客户端产生的客户端特征,生成授权信息并将授权信息发送给客户端的用户;该授权信息的生成,通过授权服务器的处理器执行前述方法中生成授权信息的步骤完成。
根据本发明的第四方面,提供一种软件的授权系统,其特征在于,包括:安装并运行目标软件程序的客户端,客户端通信连接目标软件程序的授权服务器;所述客户端在运行目标软件程序时,通过客户端的处理器执行前述方法中产生客户端特征的步骤,产生客户端特征,并发送给授权服务器端;和/或,所述客户端的目标软件程序在接收到用户输入的来自授权服务器端生成的授权信息,通过客户端的处理器执行前述方法中的验证和授权步骤完成对目标软件程序的授权。
根据本发明的第五方面,提供一种软件的授权装置,其特征在于,包括前述软件的授权系统。
根据本发明的第六方面,提供一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述程序被处理器执行时实现前述方法的步骤完成对目标软件程序的授权。
本发明通过上述方案,通过客户机的软件特征、硬件特征及环境变量获取具备可靠的伪动态客户特征,通过客户特征为客户提供专用的灵活的软件授权,能够提高软件授权的可靠性及灵活性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1:为本发明一个实施例的软件授权方法的流程图;
图2:为本发明一个实施例的客户端(软件产品)的特征获取流程图;
图3:为本发明一个实施例的授权码生成的流程图;
图4:为本发明一个实施例的客户端(软件产品)的授权流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一个实施例的软件授权方法的简要流程图,描述在无异常情况下用户及服务方的主要操作步骤。
步骤101:在目标程序安装到宿主机后,运行目标程序,并在目标程序中的特定功能位置得到客户端特征,用户需要将客户端特征提供至服务方。
步骤102:将用户提供的客户端特征录入服务方的授权码生成程序,根据客户的定制需求生成授权信息。授权信息本质为特定的文本,可保存至文件中或通过邮件方式发送给用户。
步骤103:用户将服务方提供的授权信息输入客户端软件中,实现授权。
该实施例中,授权服务器端基于客户端运行目标软件程序所产生的包括客户端硬件特征和软件特征的客户端特征,生成授权信息,基于将所述授权信息返回给客户端,进行目标软件程序的授权。所述客户端特征是客户端在运行目标软件程序时由获取的客户端硬件特征、软件特征并结合环境随机变量计算产生。
而客户端根据客户端的目标软件程序运行,产生客户端特征并发送客户端特征到授权服务器端,其中,所述客户端特征包括客户端硬件特征和软件特征,并基于服务器端返回给客户端的、根据所述客户端特征生成的授权信息,进行目标软件程序的授权。
图2为本发明在实施例中步骤101的具体执行流程,介绍前述生成客户端特征的具体实现方式。
步骤201:首先用户在客户端程序中触发生成客户端特征请求,该步骤在用户访问客户端程序时且客户端程序尚未激活的情况下允许被调用。若客户端已激活则不在客户端程序启动时调用。如访问客户端程序首页,若程序未被激活则显示提示激活程序的信息,当用户点击后需要显示当前计算机客户特征,后面的步骤即为客户特征生成的一个实施例。
步骤202:获取宿主计算机的硬件特征,硬件特征包括CPU序列号A1(10Bytes)、硬盘序列号A2(4Bytes+8Bytes)、主板序列号A3(16Bytes)和MAC地址A4(6Bytes)等,此类硬件特征在用户使用过程中变动频率极低。以上特征若存在长度不足情况使用0x00填充。
步骤203:获取宿主机的软件特征,软件特征包括操作系统信息、操作系统序列号、客户简要信息、及当前安装软件版本号等。
步骤204:根据当前的系统时间、计算机所在的地理位置得出长度为8的环境随机变量R。
步骤205:将获取到的特征按照一定的规则进行特征压缩。以主板序列号A3作为初始值,并将A3数值求和并对255求余数得到A5。使用顺序打乱函数F1将A1的原始数据以A5作为参数打乱得到B1。同时使用A5作为参考值,作为选择顺序打乱函数F2、F3、F4、F5的决定性因素,使用选择的顺序打乱函数使用A5作为参数对A2进行打乱处理得到B2。将A3与A4进行循环异或得到B3。最终使用B3的数值求和并对255求余数得到A6,根据A6在F1、F2、F3、F4、F5中选取一个函数使用A6作为参数对B1、B2与B3的异或值打乱,最终得到终端特征C。
步骤206:序列化将不可读的字节数据转换为可读的字符串,使用环境变量R与终端特征C作为序列化A操作的输入,得到客户端特征。序列化过程中可不使用加密,但是需要使用环境变量R对终端特征C进行特殊的加密过程(需要保证加密的输出不会增加特征数据的长度)得到加密后的终端特征CX。最后将环境变量R与终端特征CX合并,并进行最后一次混淆性质的数据打乱SFX1,最终得到长度为20个字符的客户端特征。受环境变量影响,客户端特征存在不定期的变化,特征变化不会影响客户端授权,因为终端特征C不会因此步骤而发生变化。
注意步骤206中的序列化方法与步骤303反序列化方法为一对专用的组合,这需要对步骤206的序列化方法与步骤303中的反序列化方法进行特殊的设计与实现。且步骤303反序列化方法不存在输入解密密钥(这对组合方法并非加密),处于保护的目的,该序列化的实际实现不在本文中做描述。
步骤207:将计算得出的序列化结果作为客户端特征显示在目标程序界面上,以便用户获取信息并将其反馈至服务方。
至此用户已完成在使用客户端程序过程中获取到了客户端特征,用户需要将客户端特征通过任何可能的方式将反馈至服务方(邮件、网页提交、软件安装服务人员等)。
服务方得到用户提供的客户端特征后,采用图3中的流程生成授权信息,可以根据用户的实际需求或用户需要的功能进行特定功能的授权。
步骤301:首先需要服务方将客户提供的客户端特征输入至授权信息生成程序中,此过程的实施方式可看作打开授权信息生成的私有网站,在站点中输入客户端特征后,并输入授权内容需求如开启功能A、授权时长为永久等信息。此后服务方点击生成授权信息后稍作等待即可获得授权信息内容。在此过程中系统执行图3中后续的流程。
步骤302:首先对客户端特征进行初步的验证,此步骤主要用于检测客户端特征的数据长度及客户端特征数据校验是否出现异常(校验信息在执行步骤206时隐蔽性的加入到客户端特征中)。数据验证出现校验不符等异常情况则终止授权信息生成,执行步骤310提示客户端特征异常,并提示非敏感性的辅助信息。
步骤303:当数据校验无异常则对客户端特征数据进行还原,步骤303中的处理方法用于还原执行步骤206序列化后的数据,在此不再赘述。此过程将得到两个数据内容,客户端的终端特征C及环境变量R。步骤206序列化与步骤303反序列化是一对有效的数据处理方法。
步骤304:若得到的终端特征数据C数据异常,或在环境变量R中得到的环境信息与当前实际的时间不符,则执行步骤310提示客户端特征异常,并提示非敏感性的辅助信息。
步骤305:此步骤主要用于记录授权特征数据,将客户端特征、授权请求时间、授权请求功能信息、授权操作人等信息记录至于数据库。
步骤306:获取服务端环境变量,此信息包含了生成授权信息的详细时间、生成授权信息操作方的唯一id。
步骤307:根据用户的需求,生成授权信息。授权信息需要包含客户端特征C及步骤306中获取到的环境变量信息,同时授权信息包含了多组功能授权信息,每组功能授权信息包含功能名称、授权类型(永久授权、限时授权、限定日期授权)、权限级别(根据实际业务而定)、授权时间(显示授权及限定日期授权时需要此数据),我们在此将这些原始的授权数据称之为授权信息E。
步骤308:我们将此步骤的全部行为统称为序列化B,为与本专利中的其他序列化行为区分开。对步骤307的数据进行可恢复的混淆打乱,后使用与客户端约定的RSA密钥对的私钥对数据进行加密。最后使用专用的编码字符映射关系(类似Base64编码的方式)将授权信息转换为文本。
步骤309:授权信息生成程序将授权信息文本显示在界面上,完成授权信息生成。
当服务方成功生成授权信息后,可将授权信息通过邮件或网络下载等方式将授权信息提供给用户。用户仅需再次打开客户端程序,将授权信息输入即可完成对客户端程序的授权。
图4为本发明在实施例中步骤103的具体执行流程,介绍客户端软件产品的授权流程的具体实现方式。
步骤401:打开客户端软件,使用客户端程序的特定功能将授权信息输入或导入到程序中,若授权成功则提示授权成功。若授权数据异常则提示授权失败。
步骤402:用户输入授权信息后,系统需要对授权数据进行长度及格式的检查。若授权信息格式及字符顺序等信息不符合预先定义的授权信息规则,则执行步骤407提示用户授权失败。
步骤403:若授权数据授权检查无异常,则对数据进行反序列化操作,此步骤与步骤308为一对有效的加密解密方法,我们在此将其称为反序列化B。首先使用专用的编码字符映射关系将文本信息还原为字节数据,然后使用与服务器约定的RSA公钥对数据进行解密,最后对解密后的数据还原混淆内容并恢复数据顺序。
步骤404:当得到了原始的授权信息E后,对授权信息中的客户端特征与本宿主机的特征进行比较,若特征不同则进入步骤407。同时检查授权信息的生成时间、授权信息包含的授权内容是否异常。若异常数据均无异常执行后续步骤,否则执行步骤407。
步骤405:根据授权数据中的多组授权信息对软件功能进行激活,客户端程序将激活的功能数据写入数据库中(需严格保证数据库的访问安全性),同时在操作系统中将部分授权关键信息写入注册表。
步骤406:提示用户授权成功。
根据本发明的另一个实施例,还提供了一种软件的授权系统,该授权系统包括:生成针对目标软件程序进行授权的授权信息的授权服务器,授权服务器通信连接安装并运行目标软件程序的客户端;所述授权服务器接收来自客户端产生的客户端特征,生成授权信息并将授权信息发送给客户端的用户;该授权信息的生成,通过授权服务器的处理器执行如前述方法中生成授权信息的步骤完成。
根据本发明的另一个实施例,还提供了一种软件的授权系统,该授权系统包括:安装并运行目标软件程序的客户端,客户端通信连接目标软件程序的授权服务器;所述客户端在运行目标软件程序时,通过客户端的处理器执行前述方法中产生客户端特征的步骤,产生客户端特征,并发送给授权服务器端;和/或,所述客户端的目标软件程序在接收到用户输入的来自授权服务器端生成的授权信息,通过客户端的处理器执行前述方法中的验证和授权步骤完成对目标软件程序的授权。
根据本发明的另一个实施例,还提供了一种软件的授权装置,包括前述至少一个授权系统。
根据本发明的另一个实施例,还提供了一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述程序被处理器执行时实现前述方法的步骤。
综上,本发明通过自定义的多种混淆方法、加密方法及非对称加密算法提高了客户端特征及授权信息的安全性,同时在其中穿插的使用了数据校验避免了恶意篡改数据产生的风险,为整个授权流程提供安全可靠的保护。在提供授权时可以面对不同层次的需求,可用于提供软件使用、对特定功能的启用或禁用。做到了一台计算机可拥有无限多的客户端特征,同样可拥有无限多的授权信息。尽管还原其本质其中包含的仍是机器唯一的终端特征。
附图仅仅是一个实施例的简要示意图,但保证附图中的流程均是实施本发明所必须的内容,在实际使中伴随着需求的不同及产品的不同部分功能步骤的实现方式可进行灵活的替换。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了一定程度的说明,阅读本发明人员应当理解:其依然可以对上述实施例中所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;这些修改或者替换并不使相应技术方案的本质脱离本发明实施例描述的范围。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
Claims (24)
1.一种软件的授权方法,其特征在于,包括:
基于客户端运行目标软件程序所产生的客户端特征,生成授权信息,其中,所述客户端特征包括客户端硬件特征和软件特征;
基于将所述授权信息返回给客户端,进行目标软件程序的授权。
2.如权利要求1所述的方法,其特征在于,
基于客户端运行目标软件程序所产生的客户端特征,生成授权信息,其中,所述客户端特征包括客户端硬件特征和软件特征,包括:
所述客户端特征是客户端在运行目标软件程序时由获取的客户端硬件特征、软件特征并结合环境随机变量计算产生;
授权服务器接收到来自客户端的客户端特征,生成授权信息;
和/或,
基于将所述授权信息返回给客户端,进行目标软件程序的授权,包括:
授权服务器端将生成的授权信息发送给客户端的用户;
用户将所述授权信息输入到客户端的目标软件程序中,完成验证以进行授权。
3.如权利要求2所述的方法,其特征在于,所述客户端特征是客户端在运行目标软件程序时由获取的客户端硬件特征、软件特征并结合环境随机变量计算产生,包括:
获取客户端硬件特征;
获取客户端软件特征;
获取客户端环境随机变量R;
使用客户端硬件特征、客户端软件特征生成终端特征C;
使用第一序列化方式将终端特征C与客户端环境随机变量R序列化,得到客户端特征。
4.如权利要求3所述的方法,其特征在于,
所述硬件特征包括:CPU序列号A1、硬盘序列号A2、主板序列号A3和/或MAC地址A4;
和/或,
所述软件特征包括:操作系统信息、操作系统序列号、客户简要信息、和/或当前安装软件版本号;
和/或,
所述客户端环境随机变量R包括:根据客户端当前系统时间、和/或客户端所在的地理位置得出;
和/或,
所述使用客户端硬件特征、客户端软件特征生成终端特征C,包括:
以主板序列号A3作为初始值,并将A3数值求和并对255求余数得到A5;
使用顺序打乱函数F1将A1的原始数据以A5作为参数打乱得到B1,同时使用A5作为参考值,作为选择顺序打乱函数F2、F3、F4、F5的决定性因素,使用选择的顺序打乱函数,使用A5作为参数对A2进行打乱处理得到B2;
将A3与A4进行循环异或得到B3;
使用B3的数值求和并对255求余数得到A6;
根据A6在F1、F2、F3、F4、F5中选取一个函数使用A6作为参数对B1、B2与B3的异或值打乱,得到终端特征C;
和/或,
所述使用第一序列化方式将终端特征C与客户端环境随机变量R序列化,得到客户端特征,包括:使用客户端环境随机变量R对终端特征C进行加密得到加密后的终端特征CX,合并客户端环境随机变量R和终端特征CX,并进行混淆性质的数据打乱,得到客户端特征。
5.如权利要求3或4任一所述的方法,其特征在于,生成授权信息,包括:
在授权服务器端使用第一反序列化方式对所述客户端特征作还原处理,得到客户端的终端特征C及客户端环境随机变量R;
获取服务器端环境随机变量,并基于用户的需求,根据终端特征C以及服务器端环境随机变量生成授权信息;
所述授权信息包含服务器端环境随机变量和客户端终端特征C。
6.如权利要求5所述的方法,其特征在于,
所述服务器端环境随机变量包含生成授权信息的详细时间、生成授权信息操作方的唯一ID;
和/或,
在使用第一反序列化方式对所述客户端特征作还原处理前,还包括:检测客户端特征的数据长度及客户端特征数据校验是否出现异常的步骤;
和/或,
在使用第一反序列化方式对所述客户端特征作还原处理后,还包括:对客户端环境随机变量R中的环境信息及客户端特征数据进行校验的步骤;
和/或,
获取服务器端环境随机变量,并基于用户的需求,根据终端特征C以及服务器端环境随机变量生成授权信息,包括:记录客户端特征,构建授权信息需求,根据授权信息需求生成第一授权信息,所述第一授权信息包含至少一组功能授权信息。
7.如权利要求6所述的方法,其特征在于,还包括:
使用第二序列化方式将所述第一授权信息序列化,得到第二授权信息;
和/或,
所述授权信息需求至少包括:授权请求时间、授权请求功能信息、和/或授权操作人;
和/或,
每一组功能授权信息至少包括:功能名称、授权类型、权限级别、授权时间和/或授权时长。
8.如权利要求7所述的方法,所述使用第二序列化方式将所述第一授权信息序列化,包括:
对所述第一授权信息进行可恢复的混淆打乱后加密,再将其转化为文本格式的授权信息文本。
9.如权利要求8所述的方法,其特征在于,用户将所述授权信息输入到客户端的目标软件程序中,完成验证以进行授权,包括:
对授权信息中的客户端特征与当前客户端的特征进行比较,同时检查授权信息的生成时间、授权信息包含的授权内容是否异常,如无异常根据授权信息中的功能授权信息对软件功能进行激活;
或者,
用户将所述授权信息输入到客户端的目标软件程序中,使用第二反序列化方式对授权信息进行反序列化操作得到原始授权信息,对原始授权信息中的客户端特征与本当前客户端的特征进行比较,同时检查原始授权信息的生成时间、包含的授权内容是否异常,如无异常根据原始授权信息中的功能授权信息对软件功能进行激活。
10.如权利要求9所述的方法,所述使用第二反序列化方式对授权信息进行反序列化操作得到原始授权信息,包括:
将文本信息还原为字节数据后执行解密操作,最后对解密后的数据还原混淆内容并恢复数据顺序。
11.一种软件的授权方法,其特征在于,包括:
根据客户端的目标软件程序运行,产生客户端特征并发送客户端特征到授权服务器端,其中,所述客户端特征包括客户端硬件特征和软件特征;
基于服务器端返回给客户端的、根据所述客户端特征生成的授权信息,进行目标软件程序的授权。
12.如权利要求11所述的方法,其特征在于,
根据客户端的目标软件程序运行,产生客户端特征并发送客户端特征到授权服务器端,其中,所述客户端特征包括客户端硬件特征和软件特征,包括:
客户端在运行目标软件程序时,获取客户端硬件特征、软件特征、环境随机变量,计算产生客户端特征;
和/或,
基于服务器端返回给客户端的、根据所述客户端特征生成的授权信息,进行目标软件程序的授权,包括:
客户端的用户接收来自授权服务器生成的授权信息,用户将所述授权信息输入到客户端的目标软件程序中,完成验证以进行授权,其中,授权服务器接收到来自客户端的客户端特征,生成该授权信息。
13.如权利要求12所述的方法,其特征在于,客户端在运行目标软件程序时,获取客户端硬件特征、软件特征、环境随机变量,计算产生客户端特征,包括:
获取客户端硬件特征;
获取客户端软件特征;
获取客户端环境随机变量R;
使用客户端硬件特征、客户端软件特征生成终端特征C;
使用第一序列化方式将终端特征C与客户端环境随机变量R序列化,得到客户端特征。
14.如权利要求13所述的方法,其特征在于,
所述硬件特征包括:CPU序列号A1、硬盘序列号A2、主板序列号A3和/或MAC地址A4;
和/或,
所述软件特征包括:操作系统信息、操作系统序列号、客户简要信息、和/或当前安装软件版本号;
和/或,
所述客户端环境随机变量R包括:根据客户端当前系统时间、和/或客户端所在的地理位置得出;
和/或,
所述使用客户端硬件特征、客户端软件特征生成终端特征C,包括:
以主板序列号A3作为初始值,并将A3数值求和并对255求余数得到A5;
使用顺序打乱函数F1将A1的原始数据以A5作为参数打乱得到B1,同时使用A5作为参考值,作为选择顺序打乱函数F2、F3、F4、F5的决定性因素,使用选择的顺序打乱函数,使用A5作为参数对A2进行打乱处理得到B2;
将A3与A4进行循环异或得到B3;
使用B3的数值求和并对255求余数得到A6;
根据A6在F1、F2、F3、F4、F5中选取一个函数使用A6作为参数对B1、B2与B3的异或值打乱,得到终端特征C;
和/或,
所述使用第一序列化方式将终端特征C与客户端环境随机变量R序列化,得到客户端特征,包括:使用客户端环境随机变量R对终端特征C进行加密得到加密后的终端特征CX,合并客户端环境随机变量R和终端特征CX,并进行混淆性质的数据打乱,得到客户端特征。
15.如权利要求13或14任一所述的方法,其特征在于,生成授权信息,包括:
在授权服务器端使用第一反序列化方式对所述客户端特征作还原处理,得到客户端的终端特征C及客户端环境随机变量R;
获取服务器端环境随机变量,并基于用户的需求,根据终端特征C以及服务器端环境随机变量生成授权信息;
所述授权信息包含服务器端环境随机变量和客户端终端特征C。
16.如权利要求15所述的方法,其特征在于,
所述服务器端环境随机变量包含生成授权信息的详细时间、生成授权信息操作方的唯一ID;
和/或,
在使用第一反序列化方式对所述客户端特征作还原处理前,还包括:检测客户端特征的数据长度及客户端特征数据校验是否出现异常的步骤;
和/或,
在使用第一反序列化方式对所述客户端特征作还原处理后,还包括:对客户端环境随机变量R中的环境信息及客户端特征数据进行校验的步骤;
和/或,
获取服务器端环境随机变量,并基于用户的需求,根据终端特征C以及服务器端环境随机变量生成授权信息,包括:记录客户端特征,构建授权信息需求,根据授权信息需求生成第一授权信息,所述第一授权信息包含至少一组功能授权信息。
17.如权利要求16所述的方法,其特征在于,还包括:
使用第二序列化方式将所述第一授权信息序列化,得到第二授权信息;
和/或,
所述授权信息需求至少包括:授权请求时间、授权请求功能信息、和/或授权操作人;
和/或,
每一组功能授权信息至少包括:功能名称、授权类型、权限级别、授权时间和/或授权时长。
18.如权利要求17所述的方法,所述使用第二序列化方式将所述第一授权信息序列化,包括:
对所述第一授权信息进行可恢复的混淆打乱后加密,再将其转化为文本格式的授权信息文本。
19.如权利要求18所述的方法,其特征在于,用户将所述授权信息输入到客户端的目标软件程序中,完成验证以进行授权,包括:
对授权信息中的客户端特征与当前客户端的特征进行比较,同时检查授权信息的生成时间、授权信息包含的授权内容是否异常,如无异常根据授权信息中的功能授权信息对软件功能进行激活;
或者,
用户将所述授权信息输入到客户端的目标软件程序中,使用第二反序列化方式对授权信息进行反序列化操作得到原始授权信息,对原始授权信息中的客户端特征与本当前客户端的特征进行比较,同时检查原始授权信息的生成时间、包含的授权内容是否异常,如无异常根据原始授权信息中的功能授权信息对软件功能进行激活。
20.如权利要求19所述的方法,所述使用第二反序列化方式对授权信息进行反序列化操作得到原始授权信息,包括:
将文本信息还原为字节数据后执行解密操作,最后对解密后的数据还原混淆内容并恢复数据顺序。
21.一种软件的授权系统,其特征在于,包括:
生成针对目标软件程序进行授权的授权信息的授权服务器,授权服务器通信连接安装并运行目标软件程序的客户端;
所述授权服务器接收来自客户端产生的客户端特征,生成授权信息并将授权信息发送给客户端的用户;
该授权信息的生成,通过授权服务器的处理器执行如权利要求1-10所述方法中生成授权信息的步骤完成。
22.一种软件的授权系统,其特征在于,包括:
安装并运行目标软件程序的客户端,客户端通信连接目标软件程序的授权服务器;
所述客户端在运行目标软件程序时,通过客户端的处理器执行如权利要求11-20所述方法中产生客户端特征的步骤,产生客户端特征,并发送给授权服务器端;
和/或,
所述客户端的目标软件程序在接收到用户输入的来自授权服务器端生成的授权信息,通过客户端的处理器执行如权利要求11-20所述方法中的验证和授权步骤完成对目标软件程序的授权。
23.一种软件的授权装置,其特征在于,包括如权利要求21和/或22所述的软件的授权系统。
24.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述程序被处理器执行时实现权利要求1-20任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711180168.5A CN108062461A (zh) | 2017-11-23 | 2017-11-23 | 一种软件授权方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711180168.5A CN108062461A (zh) | 2017-11-23 | 2017-11-23 | 一种软件授权方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108062461A true CN108062461A (zh) | 2018-05-22 |
Family
ID=62135934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711180168.5A Pending CN108062461A (zh) | 2017-11-23 | 2017-11-23 | 一种软件授权方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108062461A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344569A (zh) * | 2018-09-28 | 2019-02-15 | 北京赛博贝斯数据科技有限责任公司 | 软件使用的授权方法及系统 |
CN109583156A (zh) * | 2018-12-05 | 2019-04-05 | 杭州安恒信息技术股份有限公司 | 基于认证授权的代码保护方法、装置、系统及设备 |
CN110555290A (zh) * | 2019-09-02 | 2019-12-10 | 积成电子股份有限公司 | 一种基于fpga的工控软件版权保护方法及系统 |
CN112347428A (zh) * | 2020-11-20 | 2021-02-09 | 浙江百应科技有限公司 | 一种分布式软件产品离线授权方法 |
CN112463722A (zh) * | 2020-12-18 | 2021-03-09 | 中国计量大学上虞高等研究院有限公司 | 一种嵌入式SoC软件的离线保护系统及配置方法 |
CN112463721A (zh) * | 2020-12-18 | 2021-03-09 | 中国计量大学上虞高等研究院有限公司 | 一种嵌入式SoC软件的高可靠离线保护系统及配置方法 |
CN112463720A (zh) * | 2020-12-18 | 2021-03-09 | 中国计量大学上虞高等研究院有限公司 | 一种嵌入式SoC软件的在线保护系统和在线保护方法 |
CN115529139A (zh) * | 2022-09-08 | 2022-12-27 | 驭数(武汉)数字科技有限公司 | 一种基于对象序列化的在线软件加密授权系统与方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1782941A (zh) * | 2004-12-04 | 2006-06-07 | 鸿富锦精密工业(深圳)有限公司 | 软件授权与保护装置及方法 |
CN1960363A (zh) * | 2006-09-12 | 2007-05-09 | 北京飞天诚信科技有限公司 | 一种利用网络实现信息安全设备远程更新的方法及装置 |
CN101944170A (zh) * | 2010-09-20 | 2011-01-12 | 中兴通讯股份有限公司 | 一种软件版本发布方法、系统及装置 |
CN103491097A (zh) * | 2013-09-30 | 2014-01-01 | 华中师范大学 | 基于公钥密码体制的软件授权系统 |
-
2017
- 2017-11-23 CN CN201711180168.5A patent/CN108062461A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1782941A (zh) * | 2004-12-04 | 2006-06-07 | 鸿富锦精密工业(深圳)有限公司 | 软件授权与保护装置及方法 |
CN1960363A (zh) * | 2006-09-12 | 2007-05-09 | 北京飞天诚信科技有限公司 | 一种利用网络实现信息安全设备远程更新的方法及装置 |
CN101944170A (zh) * | 2010-09-20 | 2011-01-12 | 中兴通讯股份有限公司 | 一种软件版本发布方法、系统及装置 |
CN103491097A (zh) * | 2013-09-30 | 2014-01-01 | 华中师范大学 | 基于公钥密码体制的软件授权系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344569A (zh) * | 2018-09-28 | 2019-02-15 | 北京赛博贝斯数据科技有限责任公司 | 软件使用的授权方法及系统 |
CN109583156A (zh) * | 2018-12-05 | 2019-04-05 | 杭州安恒信息技术股份有限公司 | 基于认证授权的代码保护方法、装置、系统及设备 |
CN110555290A (zh) * | 2019-09-02 | 2019-12-10 | 积成电子股份有限公司 | 一种基于fpga的工控软件版权保护方法及系统 |
CN112347428A (zh) * | 2020-11-20 | 2021-02-09 | 浙江百应科技有限公司 | 一种分布式软件产品离线授权方法 |
CN112463722A (zh) * | 2020-12-18 | 2021-03-09 | 中国计量大学上虞高等研究院有限公司 | 一种嵌入式SoC软件的离线保护系统及配置方法 |
CN112463721A (zh) * | 2020-12-18 | 2021-03-09 | 中国计量大学上虞高等研究院有限公司 | 一种嵌入式SoC软件的高可靠离线保护系统及配置方法 |
CN112463720A (zh) * | 2020-12-18 | 2021-03-09 | 中国计量大学上虞高等研究院有限公司 | 一种嵌入式SoC软件的在线保护系统和在线保护方法 |
CN115529139A (zh) * | 2022-09-08 | 2022-12-27 | 驭数(武汉)数字科技有限公司 | 一种基于对象序列化的在线软件加密授权系统与方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062461A (zh) | 一种软件授权方法、装置及系统 | |
US11956243B2 (en) | Unified identity verification | |
US10623181B2 (en) | Security system utilizing vaultless tokenization and encryption | |
US10387873B2 (en) | Systems, methods, and computer program products for integrating third party services with a mobile wallet | |
JP5802137B2 (ja) | 安全なプライベート・データ記憶装置を有する集中型の認証システム、および方法 | |
TWI526037B (zh) | 用於交易鑑認之抽象化及隨機化單次使用密碼之方法及系統 | |
US20200042693A1 (en) | Confirming the identity of integrator applications | |
CN107786328A (zh) | 一种生成密钥的方法、服务节点设备及计算机可读介质 | |
EP4147131A1 (en) | Secure updating of allocations to user accounts | |
CN107408135A (zh) | 用于对加密数据进行查询处理的数据库服务器和客户端 | |
CN112912880A (zh) | 用于个性化的网络服务的容器构建器 | |
US20160127134A1 (en) | User authentication system and method | |
WO2013122869A1 (en) | Sharing secure data | |
CN111310204B (zh) | 数据处理的方法及装置 | |
US10362023B2 (en) | Authentication information encryption server apparatuses, systems non-transitory computer readable mediums and methods for improving password security | |
EP3474210A1 (en) | User account controls for online transactions | |
CN112187702A (zh) | 一种对客户端进行验证的方法和装置 | |
JP7412725B2 (ja) | 認証方法及び認証装置 | |
CN106603510A (zh) | 一种数据处理方法及终端 | |
CN107895105A (zh) | 一种密码处理方法、终端设备及计算机可读存储介质 | |
US9830599B1 (en) | Human interaction detection | |
CN112308236A (zh) | 用于处理用户请求的方法、装置、电子设备及存储介质 | |
CN114363088B (zh) | 用于请求数据的方法和装置 | |
CN112968797B (zh) | 一种云服务软件的应用配置方法、系统和存储介质 | |
CN108023732A (zh) | 一种数据保护方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180522 |
|
RJ01 | Rejection of invention patent application after publication |