一种基于国密算法保护计算机软件的方法和系统技术方案

技术编号:21200490 阅读:41 留言:0更新日期:2019-05-25 01:25
本发明专利技术提供一种基于国密算法保护计算机软件的方法和系统,所述方法包括:在软件的主程序入口自动执行查询许可证文件的指令,当回复有许可证文件时,使用主程序中预置的SM2证书验证许可证文件,当回复无许可证文件时,将计算机硬件信息和软件版本号拼接在一起作为原文,使用软件主程序中预置的SM2证书对该原文制作PKCS#7格式的数字信封,将该数字信封保存成文件生成许可证请求,并结束软件主程序,将所述许可证请求文件发送给软件发行方;软件发行方使用其SM2私钥解密PKCS#7格式许可证请求文件并记录其中的信息,对计算机硬件信息和许可证有效期做SM3摘要后用SM2私钥签名,形成许可证文件,然后进行主程序验证。

A Method and System for Protecting Computer Software Based on National Secret Algorithms

The invention provides a method and system for protecting computer software based on state-secret algorithm. The method includes: automatically execute instructions for querying license files at the entrance of the main program of the software, verify license files with SM2 certificate preset in the main program when replying to license files, and splice computer hardware information and software version numbers when replying to unlicensed files. As the original text, a digital envelope in the form of PKCS#7 is made by using the SM2 certificate preset in the software main program. The digital envelope is saved as a file to generate a license request. The software main program is terminated and the license request file is sent to the software distributor. The software distributor decrypts the license request file in the form of PKCS#7 using its SM2 private key and records the letters therein. After summarizing the computer hardware information and the validity of the license, the SM2 private key is used to sign the license file, and then the main program is verified.

【技术实现步骤摘要】
一种基于国密算法保护计算机软件的方法和系统
本专利技术涉及计算机软件保护领域,并且更具体地,涉及一种基于国密算法的计算机软件保护的方法和系统。
技术介绍
随着国家对知识产权保护越来越重视,现在的影视、音乐等文化娱乐领域版权已经实现了正版化,但是在计算机软件领域,盗版软件还是大行其道,屡禁不止,造成这种现象的原因既有技术原因也有社会现状原因。作为软件的发行方,出于商业利益方面的考虑,一定会采用更先进的技术加大版权保护的力度,防止未经授权的非法复制、传播、运行等。目前实现软件版权保护的方式有很多种,其中采用注册码的方式最为常见,但是考虑到用户使用体验,注册码一般不会太长,这就导致保护强度不够,降低了被破解的难度;通过网络在线连接验证服务器进行验证也是目前常见的一种保护手段,但是对需要采取离线部署的软件就不适用了;也有部分软件采用许可证授权文件的方式来保护自身,授权文件可以包含更多有效信息,增加验证复杂度,然而由于使用了老旧的国际算法,随着最近几年攻击技术的进步,其安全性已经不能满足要求。
技术实现思路
为了解决
技术介绍
存在的对计算机软件版权保护的强度、安全性以及离线保护无法较好兼顾的技术问题,本专利技术提供一种基于国密算法保护计算机软件的方法和系统。所述基于国密算法保护计算机软件的方法包括:步骤1、在软件的主程序入口自动执行查询许可证文件的指令,当回复无许可证文件时,转步骤2,当回复有许可证文件时,转步骤4;步骤2、将计算机硬件信息和软件版本号拼接在一起作为原文,使用预置的SM2证书对该原文制作PKCS#7格式的数字信封,将该数字信封保存成文件生成许可证请求,并结束软件主程序,将所述许可证请求文件发送给软件发行方;步骤3、软件发行方使用其SM2私钥解密PKCS#7格式许可证请求文件并记录其中的信息,对计算机硬件信息和许可证有效期做SM3摘要后用SM2私钥签名,形成许可证文件;步骤4、读取许可证文件,使用主程序中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出。进一步地,在软件的主程序入口自动执行查询许可证文件的指令之前将软件发行方的SM2证书预置在需要保护的软件的主程序代码中。进一步地,所述方法中的计算机硬件信息包括CPU号、硬盘号和主板号。进一步地,用户把许可证请求文件发送给软件发行方包括拷贝和在线网络传输。进一步地,读取许可证文件,使用主程序中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出包括:读取许可证文件,取得许可证有效期、SM3摘要和签名值;实时动态的采集计算机硬件信息,对计算机硬件信息和许可证有效期做SM3摘要,并与许可证文件中的SM3摘要比对;当比对结果一致时,使用主程序预置的SM2证书验证许可证文件中的签名值,验证成功则获取本机当前时间,当前时间在许可证的有效期之内,则继续执行软件主程序流程,否则验证许可证文件失败,退出软件主程序。通过此比对,较好地保证了软件只能在规定的时间内在特定的计算机上运行。根据本专利技术的另一方面,本专利技术提供一种基于国密算法保护计算机软件的系统,所述系统包括:许可证查询单元,其用于在软件的主程序入口查询软件是否具有许可证文件;许可证请求单元,其用于将软件用户的计算机硬件信息和软件版本号拼接在一起作为原文,使用预置的SM2证书对该原文制作PKCS#7格式的数字信封,将该数字信封保存成文件生成许可证请求,并结束软件主程序,将许可证请求文件发送给软件发行方;许可证形成单元,其用于使用软件发行方的SM2私钥解密许可证请求单元生成的PKCS#7格式许可证请求文件并记录其中的信息,对计算机硬件信息和许可证有效期做SM3摘要后用SM2私钥签名,形成许可证文件;许可证验证单元,其用于读取许可证形成单元发送的许可证文件,使用SM2证书预置单元中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出。进一步地,所述系统还包括SM2证书预置单元,其用于将软件发行方的SM2证书预置在需要保护的软件的主程序代码中。进一步地,所述许可证请求单元中的计算机硬件信息包括CPU号、硬盘号和主板号。进一步地,许可证请求单元中的用户把许可证请求文件发送给软件发行方包括拷贝和在线网络传输。进一步地,许可证验证单元读取许可证文件,使用主程序中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出包括:读取许可证文件,取得许可证有效期、SM3摘要和签名值;实时动态的采集计算机硬件信息,对计算机硬件信息和许可证有效期做SM3摘要,并与许可证文件中的SM3摘要比对;当比对结果一致时,使用主程序预置的SM2证书验证许可证文件中的签名值,验证成功则获取本机当前时间,当前时间在许可证的有效期之内,则继续执行软件主程序流程,否则验证许可证文件失败,退出软件主程序。本专利技术所提供的技术方案通过把软件发行方的SM2证书预置在需要版权保护的软件主程序代码中,并采用国家密码局发布的国密算法,以许可证授权文件的方式对软件进行版权保护,不需要额外的硬件支持,无需用户具备专门的相关知识,也不需要实时在线的网络环境支持,技术成本低,提高了保护强度,具有广阔的应用前景。附图说明通过参考下面的附图,可以更为完整地理解本专利技术的示例性实施方式:图1是本专利技术具体实施方式的基于国密算法保护计算机软件的方法的流程图;图2是本专利技术具体实施方式的保护基于国密算法保护计算机软件的系统的结构图。具体实施方式现在参考附图介绍本专利技术的示例性实施方式,然而,本专利技术可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本专利技术,并且向所属
的技术人员充分传达本专利技术的范围。对于表示在附图中的示例性实施方式中的术语并不是对本专利技术的限定。在附图中,相同的单元/元件使用相同的附图标记。除非另有说明,此处使用的术语(包括科技术语)对所属
的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。图1是本专利技术具体实施方式的基于国密算法保护计算机软件的方法的流程图。如图1所示,所述基于国密算法保护计算机软件的方法100从步骤101开始。在步骤101,将软件发行方的SM2证书预置在需要保护的软件的主程序代码中;在步骤102,在软件的主程序入口自动执行查询许可证文件的指令,当回复无许可证文件时,转步骤103,当回复有许可证文件时,转步骤105;在步骤103,将计算机硬件信息和软件版本号拼接在一起作为原文,使用软件主程序中预置的SM2证书对该原文制作PKCS#7格式的数字信封,将该数字信封保存成文件生成许可证请求,并结束软件主程序,将所述许可证请求文件发送给软件发行方;在步骤104,软件发行方使用其SM2私钥解密PKCS#7格式许可证请求文件并记录其中的信息,对计算机硬件信息和许可证有效期做SM3摘要后用SM2私钥签名,形成许可证文件;在步骤105,读取许可证文件,使用主程序中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出本文档来自技高网
...

【技术保护点】
1.一种基于国密算法保护计算机软件的方法,其特征在于,所述方法包括:步骤1、在软件的主程序入口自动执行查询许可证文件的指令,当回复无许可证文件时,转步骤2,当回复有许可证文件时,转步骤4;步骤2、将计算机硬件信息和软件版本号拼接在一起作为原文,使用软件主程序中预置的SM2证书对该原文制作PKCS#7格式的数字信封,将该数字信封保存成文件生成许可证请求,并结束软件主程序,将所述许可证请求文件发送给软件发行方;步骤3、软件发行方使用其SM2私钥解密PKCS#7格式许可证请求文件并记录其中的信息,对计算机硬件信息和许可证有效期做SM3摘要后用SM2私钥签名,形成许可证文件;步骤4、读取许可证文件,使用主程序中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出。

【技术特征摘要】
1.一种基于国密算法保护计算机软件的方法,其特征在于,所述方法包括:步骤1、在软件的主程序入口自动执行查询许可证文件的指令,当回复无许可证文件时,转步骤2,当回复有许可证文件时,转步骤4;步骤2、将计算机硬件信息和软件版本号拼接在一起作为原文,使用软件主程序中预置的SM2证书对该原文制作PKCS#7格式的数字信封,将该数字信封保存成文件生成许可证请求,并结束软件主程序,将所述许可证请求文件发送给软件发行方;步骤3、软件发行方使用其SM2私钥解密PKCS#7格式许可证请求文件并记录其中的信息,对计算机硬件信息和许可证有效期做SM3摘要后用SM2私钥签名,形成许可证文件;步骤4、读取许可证文件,使用主程序中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出。2.根据权利要求1所述的方法,其特征在于,在软件的主程序入口自动执行查询许可证文件的指令之前将软件发行方的SM2证书预置在需要保护的软件的主程序代码中。3.根据权利要求1所述的方法,其特征在于,所述方法中的计算机硬件信息包括CPU号、硬盘号和主板号。4.根据权利要求1所述的方法,其特征在于,用户把许可证请求文件发送给软件发行方包括拷贝和在线网络传输。5.根据权利要求1所述的方法,其特征在于,读取许可证文件,使用主程序中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出包括:读取许可证文件,取得许可证有效期、SM3摘要和签名值;实时动态的采集计算机硬件信息,对计算机硬件信息和许可证有效期做SM3摘要,并与许可证文件中的SM3摘要比对;当比对结果一致时,使用主程序预置的SM2证书验证许可证文件中的签名值,验证成功则获取本机当前时间,当前时间在许可证的有效期之内,则继续执行软件主程序流程,否则验证许可证文件失败,退出软件主程序。6.一种基于国密算法保护计算机软件的系统...

【专利技术属性】
技术研发人员:赵永宽
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1