软件授权方法及系统
文献发布时间:2024-04-18 19:52:40
技术领域
本发明涉及软件加密授权领域,具体地,涉及一种软件授权方法及系统。
背景技术
随着计算机硬件的提升与深度学习应用快速发展,生命健康,零售,工业等各个领域也趋于向智能化方向发展。而在诸如医疗领域等应用场景下,受限于数据保护的需要,部分智能化的软件应用更多倾向于采用本地化部署的形式。在这一场景下,为了尽可能避免未经授权允许情况下的软件应用功能运行所造成的各种潜在风险,避免应用功能被非法复制滥用而造成软件授权方的合法权益的侵害,需要对在这一场景下硬件设备上运行的软件进行可用授权管理。
当前对应软件授权加密方案中,许多通过由被授权方发起授权请求,提供软硬件标识信息,获取收授权或软件解密信息的形式。这一被动触发的授权方案虽然增加了授权的灵活性,却忽略了对部署硬件及唯一硬件标识的确认,增加了对授权软硬件设备进行有效的追溯管理的难度。
此外还有一些对称式的加密授权方案,在被授权方软件中的授权验证方案外泄后,也可能会导致不通过授权方第三方自行复现软件的加密授权成为可能,且这种破解授权后的软硬件产品也难以追溯。
相比较于CN111062045B需要将标识密钥库部署于各个信息使用方,信息使用方需要提供公钥给信息提供方,流程中采用多次加密,方案复杂。本方案只需要一对非对称密钥,软件授权验证模块简易,只需一次认证。
相比较于CN108124480B、CN100395679C等方案中提供的授权方式,本专利采用的授权方法可以在授权验证模块功能泄露破解的情况下,仍能保证整体授权认证功能的可用性,一定程度避免软件功能被批量非法授权。相比较于这些方案中生成授权码所依赖的原始签名内容组成,本专利方案中原始签名内容组成更灵活,生成的授权码具有可追溯的唯一性,且在面对软件授权限制信息、授权软件功能范围更新等状况时,授权方进行授权更新更为简易灵活。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种软件授权方法及系统。
根据本发明提供的一种软件授权方法,包括:
步骤S1:结合授权方信息、软件版本功能和授权可用时间次数信息生成授权验证信息;
步骤S2:令授权码生成模块采用非对称加密技术,使用签名密钥对生成的内容进行签名,生成授权码;
步骤S3:利用授权记录模块对授权码信息进行记录存储,在授权设备上安装加密后软件;
步骤S4:当软件在设备上启动使用时,触发授权验证模块进行授权验证,通过预置验证密钥和软件获取设备上的信息验证对应的授权码。
优选地,在所述步骤S1中:
部署硬件设备有唯一的设备识别码,设备识别码包括设备的SN码、主板UUID和设备固定MAC地址。
优选地,在所述步骤S2中:
授权软件功能范围为授权的软件功能,包括实际授权软件在对应设备上可用的软件功能版本;
生成授权码方式使用非对称加密技术生成一个授权签名密钥和一个验证密钥,其中采用的加密技术包括RSA非对称加密算法和ECDSA椭圆曲线数字签名算法;
生成授权码所需的原始签名内容包括授权方信息、授权限制信息、授权软件功能范围和设备识别码的组合,组合方式包括将信息进行字符串拼接和位运算;
其中授权限制信息限制了对应此次授权码的使用限制,包括限制软件功能使用次数限制以及软件功能使用有效时间限制。
优选地,在所述步骤S3中:
授权记录模块对应为每条授权码记录授权信息;授权记录保存了生成的授权码、设备识别码、授权限制信息、授权软件功能范围和授权方信息,对应记录以授权码为查询主键key存储在数据库中。
优选地,在所述步骤S4中:
授权验证模块包含了验证密钥,授权验证模块对运行环境中获取授权限制信息、授权软件功能范围和预先写入的授权方信息、设备识别码,按授权码生成过程中相同的组合方式进行组合,使用验证密钥,验证验证码对应和组合信息签名是否一致。
根据本发明提供的一种软件授权系统,包括:
模块M1:结合授权方信息、软件版本功能和授权可用时间次数信息生成授权验证信息;
模块M2:令授权码生成模块采用非对称加密技术,使用签名密钥对生成的内容进行签名,生成授权码;
模块M3:利用授权记录模块对授权码信息进行记录存储,在授权设备上安装加密后软件;
模块M4:当软件在设备上启动使用时,触发授权验证模块进行授权验证,通过预置验证密钥和软件获取设备上的信息验证对应的授权码。
优选地,在所述模块M1中:
部署硬件设备有唯一的设备识别码,设备识别码包括设备的SN码、主板UUID和设备固定MAC地址。
优选地,在所述模块M2中:
授权软件功能范围为授权的软件功能,包括实际授权软件在对应设备上可用的软件功能版本;
生成授权码方式使用非对称加密技术生成一个授权签名密钥和一个验证密钥,其中采用的加密技术包括RSA非对称加密算法和ECDSA椭圆曲线数字签名算法;
生成授权码所需的原始签名内容包括授权方信息、授权限制信息、授权软件功能范围和设备识别码的组合,组合方式包括将信息进行字符串拼接和位运算;
其中授权限制信息限制了对应此次授权码的使用限制,包括限制软件功能使用次数限制以及软件功能使用有效时间限制。
优选地,在所述模块M3中:
授权记录模块对应为每条授权码记录授权信息;授权记录保存了生成的授权码、设备识别码、授权限制信息、授权软件功能范围和授权方信息,对应记录以授权码为查询主键key存储在数据库中。
优选地,在所述模块M4中:
授权验证模块包含了验证密钥,授权验证模块对运行环境中获取授权限制信息、授权软件功能范围和预先写入的授权方信息、设备识别码,按授权码生成过程中相同的组合方式进行组合,使用验证密钥,验证验证码对应和组合信息签名是否一致。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过硬件标识等方式可以实现不同硬件设备,不同的所需软件功能范围都有独立的授权码,授权码生成也独立于软件中的授权验证模块。可以实现部署软件编译加密后可以批量在硬件上的独立部署,非授权的硬件上软件将无法正常运行,通过授权码对运行授权软件的硬件进行记录管理;
2、本发明通过授权记录和授权码对应硬件设备的独立性,实现后续授权管理的可追溯,解决现有权方案中难以避免的批量非授权方预期授权问题和一旦授权方案泄露后非法授权追溯困难的问题;
3、本发明在授权限制信息、授权软件功能范围需要更新时,无需对软件本体进行重新安装更新,只需要根据变更信息,重新生成授权码,并更新软件运行环境即可。部署于硬件设备软件中的授权认证模块轻量独立。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为授权码生成/更新流程示意图;
图2为授权认证流程示意图;
图3为授权追溯流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例1:
本发明中软件授权方根据待绑定硬件标识,授权软件功能范围等信息为安装软件生成在对应硬件上部署运行所必须的唯一授权码,在软件运行时,通过安装软件中包含的授权验证模块,验证软件运行环境与授权码对应的授权范围是否一致,只有一致时软件服务才可用。通过授权码生成,授权发放记录,可以实现有效的软件授权和授权追溯。其中通过硬件标识等方式可以实现不同硬件设备,不同的所需软件功能范围都有独立的授权码,授权码生成也独立于软件中的授权验证模块。可以实现部署软件编译加密后可以批量在硬件上的独立部署,非授权的硬件上软件将无法正常运行,通过授权码对运行授权软件的硬件进行记录管理。
根据本发明提供的一种软件授权方法,如图1-图3所示,包括:
步骤S1:结合授权方信息、软件版本功能和授权可用时间次数信息生成授权验证信息;
具体地,在所述步骤S1中:
部署硬件设备有唯一的设备识别码,设备识别码包括设备的SN码、主板UUID和设备固定MAC地址。
步骤S2:令授权码生成模块采用非对称加密技术,使用签名密钥对生成的内容进行签名,生成授权码;
具体地,在所述步骤S2中:
授权软件功能范围为授权的软件功能,包括实际授权软件在对应设备上可用的软件功能版本;
所述功能版本选择。比如a版本有1,2,3,4四个模型对应的病种诊断组合,b版本有23456五个模型对应的病种诊断组合。
生成授权码方式使用非对称加密技术生成一个授权签名密钥和一个验证密钥,其中采用的加密技术包括RSA非对称加密算法和ECDSA椭圆曲线数字签名算法;
生成授权码所需的原始签名内容包括授权方信息、授权限制信息、授权软件功能范围和设备识别码的组合,组合方式包括将信息进行字符串拼接和位运算;
其中授权限制信息限制了对应此次授权码的使用限制,包括限制软件功能使用次数限制以及软件功能使用有效时间限制。
步骤S3:利用授权记录模块对授权码信息进行记录存储,在授权设备上安装加密后软件;
具体地,在所述步骤S3中:
授权记录模块对应为每条授权码记录授权信息;授权记录保存了生成的授权码、设备识别码、授权限制信息、授权软件功能范围和授权方信息,对应记录以授权码为查询主键key存储在数据库中。
步骤S4:当软件在设备上启动使用时,触发授权验证模块进行授权验证,通过预置验证密钥和软件获取设备上的信息验证对应的授权码。
具体地,在所述步骤S4中:
授权验证模块包含了验证密钥,授权验证模块对运行环境中获取授权限制信息、授权软件功能范围和预先写入的授权方信息、设备识别码,按授权码生成过程中相同的组合方式进行组合,使用验证密钥,验证验证码对应和组合信息签名是否一致。
实施例2:
实施例2为实施例1的优选例,以更为具体地对本发明进行说明。
本发明还提供一种软件授权系统,所述软件授权系统可以通过执行所述软件授权方法的流程步骤予以实现,即本领域技术人员可以将所述软件授权方法理解为所述软件授权系统的优选实施方式。
根据本发明提供的一种软件授权系统,包括:
模块M1:结合授权方信息、软件版本功能和授权可用时间次数信息生成授权验证信息;
具体地,在所述模块M1中:
部署硬件设备有唯一的设备识别码,设备识别码包括设备的SN码、主板UUID和设备固定MAC地址。
模块M2:令授权码生成模块采用非对称加密技术,使用签名密钥对生成的内容进行签名,生成授权码;
具体地,在所述模块M2中:
授权软件功能范围为授权的软件功能,包括实际授权软件在对应设备上可用的软件功能版本;
生成授权码方式使用非对称加密技术生成一个授权签名密钥和一个验证密钥,其中采用的加密技术包括RSA非对称加密算法和ECDSA椭圆曲线数字签名算法;
生成授权码所需的原始签名内容包括授权方信息、授权限制信息、授权软件功能范围和设备识别码的组合,组合方式包括将信息进行字符串拼接和位运算;
其中授权限制信息限制了对应此次授权码的使用限制,包括限制软件功能使用次数限制以及软件功能使用有效时间限制。
模块M3:利用授权记录模块对授权码信息进行记录存储,在授权设备上安装加密后软件;
具体地,在所述模块M3中:
授权记录模块对应为每条授权码记录授权信息;授权记录保存了生成的授权码、设备识别码、授权限制信息、授权软件功能范围和授权方信息,对应记录以授权码为查询主键key存储在数据库中。
模块M4:当软件在设备上启动使用时,触发授权验证模块进行授权验证,通过预置验证密钥和软件获取设备上的信息验证对应的授权码。
具体地,在所述模块M4中:
授权验证模块包含了验证密钥,授权验证模块对运行环境中获取授权限制信息、授权软件功能范围和预先写入的授权方信息、设备识别码,按授权码生成过程中相同的组合方式进行组合,使用验证密钥,验证验证码对应和组合信息签名是否一致。
实施例3:
实施例3为实施例1的优选例,以更为具体地对本发明进行说明。
本发明提供了一种可用的软件授权方式。通过主动授权获取并检查对应授权软件安装的硬件设备唯一标识,非对称加密技术进行签名授权,灵活的签名信息原始内容生成,实现批授权码生成和硬件设备绑定,授权码与授权设备的可追溯,灵活的授权及维护更新,以及授权验证方案破解泄露后,因授权私钥未公开,仍可一定程度避免软件被非法授权复制的风险。
授权码生成模块根据待绑定硬件标识,授权软件功能范围等信息为安装软件生成在对应硬件上部署运行所必须的唯一授权码。授权验证模块验证软件运行环境与授权码对应的授权范围是否一致。本地化部署的软件中只包含授权验证模块。软件应用功能运行前会运行授权验证模块是否返回结果一致。结果一致时软件才能正常运行。
其中部署硬件设备需要有唯一的硬件标识,可选的可以为设备的SN码,主板UUID,设备固定MAC地址等。
其中授权软件功能范围为授权的软件功能,可选的可以为实际授权软件在对应设备上可用的软件功能版本。
其中生成授权码方式需要使用非对称加密技术,可选的可以为RSA、ECDSA等数字加密技术。
其中的授权码生成过程需要对生成授权码所需的原始签名内容为授权方信息、授权限制信息,授权软件功能范围、唯一硬件标识的组合,可选的组合方式为将信息进行字符串拼接,位运算等。
其中授权限制信息限制了对应此次授权码的使用限制,可选的可以为限制的软件功能使用次数限制,软件功能使用有效时间限制。
其中授权验证模块包含了验证密钥,授权验证模块通过对运行环境中获取的授权限制信息、授权软件功能范围等和预先写入的授权方信息,设备硬件标识等按授权码生成过程中相同的组合方式进行组合,再使用验证密钥,验证验证码对应和组合信息签名是否一致。
授权记录模块对应为每条授权码记录授权信息,用于升级维护及问题追溯。
其中授权记录保存了生成的授权码,设备的唯一的硬件标识,授权限制信息、授权软件功能范围,授权方等信息。对应记录可以以授权码为key存储在数据库中。在授权软件运行维护升级和问题调查时,可以通过授权码查询追溯到对应授权信息。
运行实施方式:
当我们需要在对甲硬件设备部署对应软件A的x版本功能,并限制授权软件有效调用次数n次时,首先获取甲硬件的主板UUID或设备SN码等设备唯一识别码sn.
然后使用授权码生成模块,选择软件A对应预先生成确定的椭圆曲线密钥对数字签名密钥k和验证密钥l,将授权方信息u和硬件识别码sn和软件版本功能x授权调用次数n连接组合为授权签名数据d,使用签名密钥k对数据d进行签名,生成授权码svn。利用授权记录模块对sn,x,n,svn,授权码生成时间进行记录存储。当在授权设备上安装完成对应加密后软件,为软件设置运行环境x,n,svn等信息。当软件启动使用时,会触发软件包含的授权验证模块进行授权验证。授权验证模块通过预置在其中的对应验证密钥l和授权方信息u结合软件获取的x,n信息验证对应的授权码svn是否有效,当授权码svn依然有效时,软件应用功能可正常使用。
以同样的方式我们可以批量地对对应硬件环境安装软件并记录生成的授权信息。当需要对授权设备软件状态进行更新维护时,可以通过查询授权码在授权记录模块中找到对应的授权记录,更新授权码,写入对应设备软件设置。当发现非授权设备软件因软硬件复制而正常运行时,也可以通过调查软件授权码信息追溯关联的授权设备信息。从而保证授权软件在批量硬件设备上运行的有效可控。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
- Monkey测试方法、装置、电子设备及计算机可读存储介质
- Monkey测试方法、装置、电子设备及计算机可读存储介质
- 测试方法、装置、电子设备及计算机可读取存储介质
- 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
- 一种发票开票方法、装置、电子设备及可读存储介质
- 存储故障恢复测试方法、装置、电子设备及可读存储介质
- 存储器的掉电测试方法、装置、可读存储介质及电子设备