一种签名方法及装置与流程

文档序号:35498211发布日期:2023-09-20 00:49阅读:37来源:国知局
一种签名方法及装置与流程

本技术实施例涉及数据安全,特别涉及一种签名方法及装置。


背景技术:

1、硬件加密机(又称为服务器密码机,以下简称hsm)是一种基于硬件实现的加密解密设备,广泛应用于信息安全领域。hsm一般由芯片、电路板、外壳等组成,具有高度安全性、高效性、可靠性等优点。它是it关键基础设施中不可或缺的一部分,被广泛应用于电子商务、金融、电信、政务等领域。

2、hsm通过实现各种加密算法,保护用户数据的机密性、完整性和可用性。它支持包括多种对称及非对称加密算法,同时满足以pkcs#11(一种加密令牌接口标准)为主,以厂商自定义协议为辅的调用方式。在信息安全领域中,hsm的重要性不言而喻,它可以有效防止黑客攻击、机密数据泄露等安全威胁,保障用户数据的安全。

3、数据签名通常是通过使用私钥对数据的散列值(文档摘要)进行签名,然后使用公钥对签名校验的方式,提供数据的完整性技术,该技术被广泛应用于软件的完整性保护中。当前大多数签名工具,如openssl、signtool、apksigner,在实现时只关注签名私钥在服务器本地存储的场景,并没有考虑天然集成pkcs#11协议,不能使用hsm中的私钥直接完成签名动作。然而,将私钥存储于本地服务器,相较存储于hsm中,不仅显著增加了私钥泄露的风险,同时也无法有效实施签名行为的审计措施。

4、为了兼容这些本地签名工具,业界一般有两种方案:1)hsm厂商提供本地私钥模拟方案,如提供windows客户端,同时实现csp(cryptographic service provider),使本地签名工具认为私钥在本地存储;2)hsm厂商直接改造本地签名工具,如将pkcs#11协议嵌入openssl,在签名过程中调用远程hsm协议接口完成签名动作。然而,这两种方案都具有一定局限性,两者都需要本地签名工具与hsm客户端必须部署于同一环境,由于hsm客户端本身需要直接存储hsm的访问密钥,当本地签名工具与hsm客户端形成的签名环境一但被攻破,即可能对hsm中存储的私钥构成机密性及完整性的威胁;另外,对于第二个方案,鉴于成本原因,hsm厂商能够支持的本地签名工具非常有限,目前鲜有除openssl以外的签名工具被支持。由于签名工具内在逻辑互不相同,无法替代,造成大量本地签名工具无法接入hsm,而如第一个方案,即使hsm辗转接入了本地,也具有较高的安全使用风险。


技术实现思路

1、本技术实施例提供了一种签名方法及装置,所述签名方法包括:

2、响应于获得针对目标数据文件的签名请求,启动目标签名工具对所述目标数据文件进行哈希处理,得到待签名数据;

3、将所述待签名数据发送给目标加密设备进行签名操作,以得到第一认证签名;

4、将所述第一认证签名与所述目标数据文件进行关联处理,以使得所述目标数据文件具有所述第一认证签名;

5、其中,所述目标加密设备与所述目标签名工具处于同一部署环境或不同部署环境。

6、在一些实施例中,所述将所述待签名数据发送给目标加密设备进行签名操作,包括:

7、将所述待签名数据发送给所述目标加密设备的客户端程序,由所述客户端程序基于目标加密协议调用所述目标加密设备的硬件安全模块以第一加密数据对所述待签名数据进行签名操作,以得到所述第一认证签名。

8、在一些实施例中,所述方法还包括以下至少之一:

9、对所述客户端程序进行身份认证,以在所述身份认证通过后执行发送所述待签名数据的步骤;

10、通过所述客户端程序对所述待签名数据的来源信息进行身份认证;

11、通过所述客户端程序对调用所述硬件安全模块执行签名的操作请求进行控制。

12、在一些实施例中,所述方法还包括:

13、在得到所述待签名数据后,向所述目标签名工具发送第二加密数据,以使得所述目标签名工具利用所述第二加密数据对所述待签名数据进行签名操作,得到第二认证签名,所述第二加密数据与所述目标加密设备中的第一加密数据不同。

14、在一些实施例中,所述将所述第一认证签名与所述目标数据文件进行关联处理,包括:

15、利用所述目标加密设备返回的第一认证签名替换所述第二认证签名,使得所述目标签名工具将所述第一认证签名写至所述目标数据文件中的目标位置,进而使所述目标数据文件具有所述第一认证签名。

16、在一些实施例中,所述得到待签名数据,包括:

17、在所述目标签名工具的执行流执行至目标指令处时,在所述目标签名工具产生的数据中获得所述待签名数据;

18、所述目标指令用于指示所述目标签名工具利用所述第二加密数据参与指定算法,以对当前生成的待签名数据计算签名,所述指定算法为所述目标签名工具使用第二加密数据对待签名数据计算签名的算法。

19、在一些实施例中,所述方法还包括:

20、对所述目标签名工具的执行程序进行指令扫描,确定所述目标指令位置;

21、在所述执行程序中对应所述目标指令的位置处设置条件断点,所述条件断点用于使所述目标签名工具在执行至所述目标指令所在位置时暂停操作;

22、所述在所述目标签名工具产生的数据中获得所述待签名数据,包括:

23、在所述目标签名工具的执行流触发所述条件断点,暂停操作时,在所述目标签名工具对应的内存空间中识别、记录所述待签名数据。

24、在一些实施例中,所述方法还包括:

25、至少在所述签名工具结束暂停操作,并继续执行后续程序时,跟踪所述目标签名工具的执行流,并对所述执行流的行为特征进行识别,进而在所述执行程序中确定签名指令范围;

26、其中,响应于所述所述签名指令范围内的指令被执行完毕,表征所述目标签名工具生成了所述第二认证签名。

27、在一些实施例中,所述将所述待签名数据发送给目标加密设备进行签名操作,包括:

28、响应于所述目标签名工具完成所述签名指令范围内的签名指令,将所述待签名数据发送给目标加密设备进行签名操作;

29、其中,所述目标加密设备中存储有多个分别匹配不同待签名数据发送方的第一加密数据,以利用对应的第一加密数据对不同发送方发送的待签名数据基于对应的第一加密数据进行签名计算。

30、本技术另一实施例同时提供一种签名装置,包括:

31、启动模块,用于响应于获得针对目标数据文件的签名请求,启动目标签名工具对所述目标数据文件进行哈希处理,得到待签名数据;

32、第一发送模块,用于将所述待签名数据发送给目标加密设备进行签名操作,以得到第一认证签名;

33、处理模块,用于将所述第一认证签名与所述目标数据文件进行关联处理,以使得所述目标数据文件具有所述第一认证签名;

34、其中,所述目标加密设备与所述目标签名工具处于同一部署环境或不同部署环境。

35、本技术另一实施例还提供一种计算机设备,包括:

36、一个或多个处理器;

37、存储器,配置为存储一个或多个程序;

38、当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述签名方法。

39、本技术另一实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制包括所述存储介质的设备执行上述签名方法。

40、本技术另一实施例还提供一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可读指令,所述计算机可执行指令在被执行时使至少一个处理器执行上述签名方法。

41、基于上述实施例的公开可以获知,本技术实施例具备的有益效果包括通过获得本地签名工具对目标数据文件进行哈希计算得到的待签名数据,并将其发送至具有高安全等级的目标加密设备执行签名计算,得到第一认证签名,之后便可将该第一认证签名与目标数据文件进行关联处理,以使目标数据文件具有第一认证签名。基于该方法无需对本地的目标签名工具进行大幅改动,节省了签名工具厂商的升级成本,而且本地可不持有目标加密设备的访问密码,也无需存储用于对待签名数据执行签名计算的加密私钥,即本地的目标签名工具无法接触到目标加密设备的访问秘钥,更无法接触到加密私钥,因此显著降低了访问秘钥及加密秘钥的泄露风险,确保了秘钥安全及目标加密设备的使用安全。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1