基于代码签名的程序保护方法、装置、设备和存储介质制造方法及图纸

技术编号:32645479 阅读:20 留言:0更新日期:2022-03-12 18:26
本公开提供一种基于代码签名的程序保护方法、装置、设备和存储介质,所述方法包括:在当前程序启动时,获取所述当前程序的描述文件;若所述描述文件中存在签名节数据,则使用第一加密算法根据所述描述文件的第一节数据获取所述第一节数据的第一散列值;调用签名验签服务器的验签接口,在所述签名验签服务器使用第二加密算法根据所述签名节数据和所述第一散列值验证签名是否正确后,获取验签结果;若所述验签结果表征所述签名正确,则生成并发送放行指令,以放行所述当前程序。本公开的技术方案可以提高应用程序签名保护的安全性。术方案可以提高应用程序签名保护的安全性。术方案可以提高应用程序签名保护的安全性。

【技术实现步骤摘要】
基于代码签名的程序保护方法、装置、设备和存储介质


[0001]本公开涉及计算机网络
,尤其涉及一种基于代码签名的程序保护方法、装置、电子设备和非暂态计算机可读存储介质。

技术介绍

[0002]Linux操作系统是一种高效安全的操作系统,但是其开放的源代码会使得开源程序的安全性能下降,使得用户的隐私等信息通过平台的应用程序泄露。
[0003]为了保证系统的安全性,有必要对应用程序文件进行有效的鉴别方案,以判断其合法性。目前,主要采用的鉴别方法是代码鉴别。代码鉴别是一种能够有效地防止病毒以及其他恶意代码入侵的方法,可以在应用程序安装时通过数字签名验证进行代码鉴别。
[0004]相关技术中,在应用程序的数字签名验证方案中,数字证书的内容会写在配置文件或者代码中,从而有证书泄露的风险。如果证书泄漏的话,破解者就可以使用证书对恶意应用程序进行签名,绕过签名验证的防护过程,这就无法保证应用程序的签名保护的安全性。

技术实现思路

[0005]本公开提供一种基于代码签名的程序保护方法、装置、电子设备和非暂态计算机可读存储介质,用以解决现有技术应用程序签名保护安全性不高的问题,提高了应用程序签名保护的安全性。
[0006]本公开提供一种基于代码签名的程序保护方法,包括:在当前程序启动时,获取所述当前程序的描述文件;若所述描述文件中存在签名节数据,则使用第一加密算法根据所述描述文件的第一节数据获取所述第一节数据的第一散列值;调用签名验签服务器的验签接口,在所述签名验签服务器使用第二加密算法根据所述签名节数据和所述第一散列值验证签名是否正确后,获取验签结果;若所述验签结果表征所述签名正确,则生成并发送放行指令,以放行所述当前程序。
[0007]根据本公开提供的一种基于代码签名的程序保护方法,所述获取验签结果之后,所述方法还包括:若所述验签结果表征所述签名不正确,则生成并发送拦截指令,以拦截所述当前程序。
[0008]根据本公开提供的一种基于代码签名的程序保护方法,所述获取所述当前程序的描述文件之后,所述方法还包括:若所述描述文件中不存在签名节数据,则生成并发送拦截指令,以拦截所述当前程序。
[0009]根据本公开提供的一种基于代码签名的程序保护方法,所述获取所述当前程序的描述文件之前,所述方法还包括:获取所述当前程序的原始文件;使用所述第一加密算法根据所述原始文件的第二节数据,获取所述第二节数据的第二散列值;调用签名验签服务器的签名接口,在所述签名验签服务器使用第二加密算法根据所述第二散列值进行签名后,获取签名值;将所述签名值增加到所述原始文件中。
[0010]根据本公开提供的一种基于代码签名的程序保护方法,所述获取所述当前程序的描述文件之前,所述方法还包括:获取系统内核发送的当前程序信息,所述当前程序信息由所述系统内核根据监听程序列表监听读事件得到;根据所述当前程序信息获取所述当前程序的描述文件。
[0011]根据本公开提供的一种基于代码签名的程序保护方法,所述使用第一加密算法根据所述描述文件的第一节数据获取所述第一节数据的第一散列值,包括:对所述描述文件的各个所述第一节数据分别进行增量的散列值计算,对应得到多个单节散列值;根据所述多个单节散列值获取所述第一散列值。
[0012]根据本公开提供的一种基于代码签名的程序保护方法,所述使用第一加密算法根据所述描述文件的第一节数据获取所述第一节数据的第一散列值之前,所述方法还包括:根据所述当前程序信息获取节头表大小及偏移量;根据所述节头表大小及偏移量获取所述第一节数据。
[0013]本公开提供一种基于代码签名的程序保护装置,所述装置包括:获取单元,用于在当前程序启动时,获取所述当前程序的描述文件;加密单元,用于若所述描述文件中存在签名节数据,则使用第一加密算法根据所述描述文件的第一节数据获取所述第一节数据的第一散列值;验签单元,用于调用签名验签服务器的验签接口,在所述签名验签服务器使用第二加密算法根据所述签名节数据和所述第一散列值验证签名是否正确后,获取验签结果;生成单元,用于在所述验签结果表征所述签名正确时,生成并发送放行指令,以放行所述当前程序。
[0014]根据本公开提供的一种基于代码签名的程序保护装置,所述生成单元还用于:若所述验签结果表征所述签名不正确,则生成并发送拦截指令,以拦截所述当前程序。
[0015]根据本公开提供的一种基于代码签名的程序保护装置,所述生成单元还用于:若所述描述文件中不存在签名节数据,则生成并发送拦截指令,以拦截所述当前程序。
[0016]根据本公开提供的一种基于代码签名的程序保护装置,所述获取单元还用于,获取所述当前程序的原始文件;所述加密单元还用于,使用所述第一加密算法根据所述原始文件的第二节数据,获取所述第二节数据的第二散列值;所述装置还包括:签名单元,用于调用签名验签服务器的签名接口,在所述签名验签服务器使用第二加密算法根据所述第二散列值进行签名后,获取签名值;增加单元,用于将所述签名值增加到所述原始文件中。
[0017]根据本公开提供的一种基于代码签名的程序保护装置,所述装置还包括启动单元,用于:获取系统内核发送的当前程序信息,所述当前程序信息由所述系统内核根据监听程序列表监听读事件得到;根据所述当前程序信息获取所述当前程序的描述文件。
[0018]根据本公开提供的一种基于代码签名的程序保护装置,所述加密单元,用于:对所述描述文件的各个所述第一节数据分别进行增量的散列值计算,对应得到多个单节散列值;根据所述多个单节散列值获取所述第一散列值。
[0019]根据本公开提供的一种基于代码签名的程序保护装置,所述装置还包括:解析单元,用于根据所述当前程序信息获取节头表大小及偏移量;根据所述节头表大小及偏移量获取所述第一节数据。
[0020]本公开还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于代码签名
的程序保护方法的步骤。
[0021]本公开还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于代码签名的程序保护方法的步骤。
[0022]本公开提供的基于代码签名的程序保护方法、装置、电子设备和非暂态计算机可读存储介质,通过使用签名验签服务器实现对数字签名的验签,增强了应用程序签名保护的安全性。
附图说明
[0023]为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是本公开提供的基于代码签名的程序保护方法的流程示意图之一;
[0025]图2是本公开提供的代码签名的过程的流程示意图之一;
[0026]图3是本公开提供的代码本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于代码签名的程序保护方法,其特征在于,所述方法包括:在当前程序启动时,获取所述当前程序的描述文件;若所述描述文件中存在签名节数据,则使用第一加密算法根据所述描述文件的第一节数据获取所述第一节数据的第一散列值;调用签名验签服务器的验签接口,在所述签名验签服务器使用第二加密算法根据所述签名节数据和所述第一散列值验证签名是否正确后,获取验签结果;若所述验签结果表征所述签名正确,则生成并发送放行指令,以放行所述当前程序。2.根据权利要求1所述的方法,其特征在于,所述获取验签结果之后,所述方法还包括:若所述验签结果表征所述签名不正确,则生成并发送拦截指令,以拦截所述当前程序。3.根据权利要求1所述的方法,其特征在于,所述获取所述当前程序的描述文件之后,所述方法还包括:若所述描述文件中不存在签名节数据,则生成并发送拦截指令,以拦截所述当前程序。4.根据权利要求1所述的方法,其特征在于,所述获取所述当前程序的描述文件之前,所述方法还包括:获取所述当前程序的原始文件;使用所述第一加密算法根据所述原始文件的第二节数据,获取所述第二节数据的第二散列值;调用签名验签服务器的签名接口,在所述签名验签服务器使用第二加密算法根据所述第二散列值进行签名后,获取签名值;将所述签名值增加到所述原始文件中。5.根据权利要求1所述的方法,其特征在于,所述获取所述当前程序的描述文件之前,所述方法还包括:获取系统内核发送的当前程序信息,所述当前程序信息由所述系统内核根据监听程序列表监听读事件得到;根据所述当前程序信息获取所述当前程序...

【专利技术属性】
技术研发人员:安宏奎
申请(专利权)人:京东科技信息技术有限公司
类型:发明
国别省市:

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

1