本发明涉及电子数字数据处理,尤其涉及一种待执行文件的来源验证方法、设备以及可读存储介质。
背景技术:
1、在网络上获取并使用各种重要的可执行程序,已普遍成为一种常用的方式。例如,从网络上获取计算机操作系统的安装包、php安装包或者mysql安装包等。这些可执行程序用于在计算机上执行各种任务,并提供各种必要的功能和服务。因此,获取合法、可靠的可执行程序并确保其安全性,是至关重要的。
2、在相关技术中,一般采用数字签名来确保下载的可执行程序的完整性和来源可靠性。具体来说,数字签名使用发送者的私钥对文件进行加密,并将生成的加密签名附加到文件上。接收者可以使用发送者的公钥对签名进行解密,并与文件进行比对,以验证文件的完整性和真实性。然而,由于数字签名通常是与pki(public key infrastructure,公钥基础设施)相关联的。在pki中,公钥和私钥是由ca(certificate authority,认证机构)颁发和管理的,并且公钥信息是公开的,任何人都可以获得和使用。如果公钥管理不当,可能会导致发送和接收方之间的数据传输不安全。当发送方的公钥被未经授权的第三方替换时,接收者将无法正确验证可执行文件的来源。
3、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本发明的主要目的在于提供一种待执行文件的来源验证方法,旨在解决发送方的公钥被未经授权的第三方替换时,接收者将无法正确验证可执行文件的来源的问题。
2、为实现上述目的,本发明提供的一种待执行文件的来源验证方法,应用于接收方,所述待执行文件的来源验证方法包括以下步骤:
3、接收发布方发送的目标待执行文件对应的第一校验值以及随机数密文;
4、基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥;
5、根据所述验证共享密钥和所述目标待执行文件生成第二校验值;
6、当所述第一校验值与所述第二校验值匹配时,判定所述目标待执行文件通过来源验证。
7、可选地,所述基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥的步骤包括:
8、调用接收方私钥,基于非对称加密算法对所述随机数密文进行解密,获得第一随机数和第二随机数;
9、调用所述发布方对应的发布方公钥,并将所述发布方公钥、所述接收方私钥、所述第一随机数和所述第二随机数作为sm2密钥协商算法的输入参数;
10、基于所述sm2密钥协商算法,生成所述验证共享密钥。
11、可选地,所述基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥的步骤之前,还包括:
12、根据所述发布方,确定目标证书体系;
13、基于所述目标证书体系,生成接收方公钥和所述接收方私钥;
14、将所述接收方公钥发送至所述发布方,并接收所述发布方发送的基于所述目标证书体系生成的所述发布方公钥。
15、可选地,所述根据所述验证共享密钥和所述目标待执行文件生成第二校验值的步骤包括:
16、调用所述发布方对应的hmac函数;
17、将所述验证共享密钥以及所述目标待执行文件作为所述hmac函数的输入参数;
18、基于所述hmac函数,生成所述第二校验值。
19、此外,为实现上述目的,本发明还提供一种待执行文件的来源验证方法,应用于发布方,所述待执行文件的来源验证方法包括以下步骤:
20、确定目标待执行文件的接收方,并生成随机数;
21、基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥;
22、根据所述加密共享密钥和所述目标待执行文件生成第一校验值;
23、将所述目标待执行文件对应的所述第一校验值,和所述验证密文发送至所述接收方。
24、可选地,所述基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥的步骤包括:
25、调用接收方公钥,基于非对称加密算法对第一随机数和第二随机数进行加密,生成所述验证密文;
26、调用发布方私钥,并将所述接收方公钥、所述发布方私钥、所述第一随机数和所述第二随机数作为sm2密钥协商算法的输入参数;
27、基于所述sm2密钥协商算法,生成所述加密共享密钥。
28、可选地,所述基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥的步骤之前,还包括:
29、根据所述接收方,确定目标证书体系;
30、基于所述目标证书体系,生成发布方公钥和所述发布方私钥;
31、将所述发布方公钥发送至所述接收方,并接收所述接收方发送的基于所述目标证书体系生成的所述接收方公钥。
32、可选地,所述根据所述加密共享密钥和所述目标待执行文件生成第一校验值的步骤包括:
33、调用所述接收方对应的hmac函数;
34、将所述加密共享密钥以及所述目标待执行文件作为所述hmac函数的输入参数;
35、基于所述hmac函数,生成所述第一校验值。
36、此外,为实现上述目的,本发明还提供一种待执行文件的来源验证设备,所述待执行文件的来源验证设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的待执行文件的来源验证程序,所述待执行文件的来源验证程序被所述处理器执行时实现如上所述的待执行文件的来源验证方法的步骤。
37、此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有待执行文件的来源验证程序,所述待执行文件的来源验证程序被处理器执行时实现如上所述的待执行文件的来源验证方法的步骤。
38、本发明实施例提供待执行文件的来源验证,由于第一校验值是发布方针对目标待执行文件进行生成的校验值。随机数密文是通过加密算法对随机数进行加密后得到的,用于确保随机数的机密性,接收方采用相同的加密算法才能解析出随机数。验证共享密钥是由发布方和接收方共同生成的,因此只有拥有正确的密钥协商算法,才能获得正确的验证共享密钥。并且,接收方采用正确的校验值生成算法,才能生成与第一校验值匹配的第二校验值,进而确定目标待执行文件的来源真实性。在这个过程中,由于验证共享密钥是在接收方生成的,而非从发布方获取的,因此即使传输过程中的数据被窃取,攻击方也无法根据这些数据伪造校验值。因此,通过使用与发布方一致的加密算法解析随机数密文来获取随机数,然后使用与发布方一致的密钥协商算法获取验证共享密文,再使用与发布方一致的校验值生成算法获取第二校验值与第一校验值进行验证,可以实现对目标待执行文件的来源验证,并确保来源验证结果的可靠性,此外,通过验证第一校验值和第二校验值是否匹配,还可以确定目标待执行文件是否是发布方指定发送的,以及是否被篡改。