[发明专利]一种基于国密算法的动态链接库保护方法及其系统有效
申请号: | 202010370716.6 | 申请日: | 2020-05-06 |
公开(公告)号: | CN111611551B | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 张建成;郭峰;鹿全礼;任强;宁伟;马晓红;宋丽华;许志国;刘鲲鹏;朱瑞新;于小苇;张圆圆;张硕 | 申请(专利权)人: | 山东正中信息技术股份有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/16 |
代理公司: | 合肥晨创知识产权代理事务所(普通合伙) 34162 | 代理人: | 康培培 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 算法 动态 链接 保护 方法 及其 系统 | ||
1.一种基于国密算法的动态链接库保护方法,其特征在于,包括:
使用国密SM2算法生成公钥a和对应的私钥aa,使用所述私钥aa对目标动态链接库进行加密;
判断目标应用程序是否为由授权开发工具开发的合法应用程序,所述授权开发工具用于编写和编译合法的应用程序,所述合法的应用程序运行时将调用所述目标动态链接库;
确定所述目标应用程序为由授权开发工具开发的合法应用程序后,使用init函数获取所述目标应用程序的公钥a’,当所述公钥a’与所述公钥a相同时,使用所述公钥a解密所述目标动态链接库,运行所述目标应用程序,当所述公钥a’与所述公钥a不相同时,退出所述目标应用程序的运行;
所述判断目标应用程序是否为授权开发工具开发的合法应用程序,包括:
使用国密SM2算法生成公钥c和对应的私钥cc;
获取所述授权开发工具的序列号文件;
使用国密SM3算法对所述序列号文件进行摘要处理,生成对应的第一摘要文件,使用私钥cc分别对所述公钥a、所述序列号文件和所述第一摘要文件进行加密;
对所述目标应用程序相应的序列号文件进行SM3摘要操作,得到第二摘要文件,当所述第一摘要文件与所述第二摘要文件一致时,确定所述目标应用程序为由所述授权开发工具开发的合法营业程序;
当所述第一摘要文件与所述第二摘要文件不一致时,确定所述目标应用程序不是由所述授权开发工具开发,所述应用程序为不合法应用程序。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为所述授权开发工具分配序列号,并生成序列号文件,所述序列号文件为txt文件;
安装所述授权开发工具的安装包,所述开发工具的安装包包括由私钥cc加密的所述公钥a、由私钥cc加密的所述序列号文件和由私钥cc加密的所述第一摘要文件,其中,合法的应用程序由所述授权开发工具使用SM2解密库和SM3算法库以静态链接.lib或者.a的方式编译,所述合法的应用程序资源目录包括加密后的所述序列号文件和加密后的所述摘要文件。
3.根据权利要求2所述的方法,其特征在于,当确定所述目标应用程序为由授权开发工具开发的合法应用程序后,所述方法还包括:
使用初始化函数void__attribute__((constructor))init_function(void)调用所述目标动态链接库。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:将所述公钥a预先配置于所述授权开发工具的安装包。
5.一种基于国密算法的动态链接库保护系统,其特征在于,所述系统包括包括处理器和存储器,所述存储器用于存储处理器的执行指令,所述处理器用于:
使用国密SM2算法生成公钥a和对应的私钥aa,使用所述私钥aa对目标动态链接库进行加密;
判断目标应用程序是否为由授权开发工具开发的合法应用程序,所述授权开发工具用于编写和编译合法的应用程序,所述合法的应用程序运行时将调用所述目标动态链接库;
确定所述目标应用程序为由授权开发工具开发的合法应用程序后,使用init函数获取所述目标应用程序的公钥a’,当所述公钥a’与所述公钥a相同时,使用所述公钥a解密所述目标动态链接库,运行所述目标应用程序,当所述公钥a’与所述公钥a不相同时,退出所述目标应用程序的运行;
所述处理器还用于:
使用国密SM2算法生成公钥c和对应的私钥cc;
获取所述授权开发工具的序列号文件;
使用国密SM3算法对所述序列号文件进行摘要处理,生成对应的第一摘要文件,使用私钥cc分别对所述公钥a、所述序列号文件和所述第一摘要文件进行加密;
对所述目标应用程序相应的序列号文件进行SM3摘要操作,得到第二摘要文件,当所述第一摘要文件与所述第二摘要文件一致时,确定所述目标应用程序为由所述授权开发工具开发的合法营业程序;
当所述第一摘要文件与所述第二摘要文件不一致时,确定所述目标应用程序不是由所述授权开发工具开发,所述应用程序为不合法应用程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东正中信息技术股份有限公司,未经山东正中信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010370716.6/1.html,转载请声明来源钻瓜专利网。