[发明专利]一种基于国密算法保护计算机软件的方法和系统在审
申请号: | 201711139903.8 | 申请日: | 2017-11-16 |
公开(公告)号: | CN109800545A | 公开(公告)日: | 2019-05-24 |
发明(设计)人: | 赵永宽 | 申请(专利权)人: | 航天信息股份有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 北京工信联合知识产权代理有限公司 11266 | 代理人: | 郭一斐;叶万东 |
地址: | 100195 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 许可证文件 许可证请求 计算机硬件信息 计算机软件 软件主程序 软件发行 数字信封 算法保护 主程序 预置 原文 回复 软件版本号 主程序入口 私钥解密 文件生成 证书验证 自动执行 私钥 拼接 有效期 验证 许可证 指令 查询 保存 记录 制作 | ||
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.一种基于国密算法保护计算机软件的系统,其特征在于,所述系统包括:
许可证查询单元,其用于在软件的主程序入口查询软件是否具有许可证文件;
许可证请求单元,其用于将软件用户的计算机硬件信息和软件版本号拼接在一起作为原文,使用软件主程序中预置的SM2证书对该原文制作PKCS#7格式的数字信封,将该数字信封保存成文件生成许可证请求,并结束软件主程序,将许可证请求文件发送给软件发行方;
许可证形成单元,其用于使用软件发行方的SM2私钥解密许可证请求单元生成的PKCS#7格式许可证请求文件并记录其中的信息,对计算机硬件信息和许可证有效期做SM3摘要后用SM2私钥签名,形成许可证文件;
许可证验证单元,其用于读取许可证形成单元发送的许可证文件,使用SM2证书预置单元中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括SM2证书预置单元,其用于将软件发行方的SM2证书预置在需要保护的软件的主程序代码中。
8.根据权利要求6所述的系统,其特征在于,所述许可证请求单元中的计算机硬件信息包括CPU号、硬盘号和主板号。
9.根据权利要求6所述的系统,其特征在于,许可证请求单元中的用户把许可证请求文件发送给软件发行方包括拷贝和在线网络传输。
10.根据权利要求6所述的系统,其特征在于,许可证验证单元读取许可证文件,使用主程序中预置的SM2证书验证许可证文件,当验证通过,则继续软件主程序,当验证未通过时,软件主程序退出包括:
读取许可证文件,取得许可证有效期、SM3摘要和签名值;
实时动态的采集计算机硬件信息,对计算机硬件信息和许可证有效期做SM3摘要,并与许可证文件中的SM3摘要比对;
当比对结果一致时,使用主程序预置的SM2证书验证许可证文件中的签名值,验证成功则获取本机当前时间,当前时间在许可证的有效期之内,则继续执行软件主程序流程,否则验证许可证文件失败,退出软件主程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天信息股份有限公司,未经航天信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711139903.8/1.html,转载请声明来源钻瓜专利网。