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格式的数字信封,将该数字信封保存成文件生成许可证请求,并结 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。