CN117436043A - 待执行文件的来源验证方法、设备以及可读存储介质 - Google Patents

待执行文件的来源验证方法、设备以及可读存储介质 Download PDF

Info

Publication number
CN117436043A
CN117436043A CN202311757119.9A CN202311757119A CN117436043A CN 117436043 A CN117436043 A CN 117436043A CN 202311757119 A CN202311757119 A CN 202311757119A CN 117436043 A CN117436043 A CN 117436043A
Authority
CN
China
Prior art keywords
executed
random number
file
verification
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311757119.9A
Other languages
English (en)
Inventor
陈磊
胡迎春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dinghyun Commercial Code Evaluation Technology Shenzhen Co ltd
Original Assignee
Dinghyun Commercial Code Evaluation Technology Shenzhen Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dinghyun Commercial Code Evaluation Technology Shenzhen Co ltd filed Critical Dinghyun Commercial Code Evaluation Technology Shenzhen Co ltd
Priority to CN202311757119.9A priority Critical patent/CN117436043A/zh
Publication of CN117436043A publication Critical patent/CN117436043A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及电子数字数据处理技术领域,尤其涉及一种待执行文件的来源验证方法、设备以及可读存储介质。所述待执行文件的来源验证方法应用于接收方,通过接收发布方发送的目标待执行文件对应的第一校验值以及随机数密文;基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥;根据所述验证共享密钥和所述目标待执行文件生成第二校验值;当所述第一校验值与所述第二校验值匹配时,判定所述目标待执行文件通过来源验证。可以实现对目标待执行文件的来源验证,并确保来源验证结果的可靠性,此外,通过验证第一校验值和第二校验值是否匹配,还可以确定目标待执行文件是否是发布方指定发送的。

Description

待执行文件的来源验证方法、设备以及可读存储介质
技术领域
本发明涉及电子数字数据处理技术领域,尤其涉及一种待执行文件的来源验证方法、设备以及可读存储介质。
背景技术
在网络上获取并使用各种重要的可执行程序,已普遍成为一种常用的方式。例如,从网络上获取计算机操作系统的安装包、PHP安装包或者MYSQL安装包等。这些可执行程序用于在计算机上执行各种任务,并提供各种必要的功能和服务。因此,获取合法、可靠的可执行程序并确保其安全性,是至关重要的。
在相关技术中,一般采用数字签名来确保下载的可执行程序的完整性和来源可靠性。具体来说,数字签名使用发送者的私钥对文件进行加密,并将生成的加密签名附加到文件上。接收者可以使用发送者的公钥对签名进行解密,并与文件进行比对,以验证文件的完整性和真实性。然而,由于数字签名通常是与PKI(Public Key Infrastructure,公钥基础设施)相关联的。在PKI中,公钥和私钥是由CA(Certificate Authority,认证机构)颁发和管理的,并且公钥信息是公开的,任何人都可以获得和使用。如果公钥管理不当,可能会导致发送和接收方之间的数据传输不安全。当发送方的公钥被未经授权的第三方替换时,接收者将无法正确验证可执行文件的来源。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种待执行文件的来源验证方法,旨在解决发送方的公钥被未经授权的第三方替换时,接收者将无法正确验证可执行文件的来源的问题。
为实现上述目的,本发明提供的一种待执行文件的来源验证方法,应用于接收方,所述待执行文件的来源验证方法包括以下步骤:
接收发布方发送的目标待执行文件对应的第一校验值以及随机数密文;
基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥;
根据所述验证共享密钥和所述目标待执行文件生成第二校验值;
当所述第一校验值与所述第二校验值匹配时,判定所述目标待执行文件通过来源验证。
可选地,所述基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥的步骤包括:
调用接收方私钥,基于非对称加密算法对所述随机数密文进行解密,获得第一随机数和第二随机数;
调用所述发布方对应的发布方公钥,并将所述发布方公钥、所述接收方私钥、所述第一随机数和所述第二随机数作为SM2密钥协商算法的输入参数;
基于所述SM2密钥协商算法,生成所述验证共享密钥。
可选地,所述基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥的步骤之前,还包括:
根据所述发布方,确定目标证书体系;
基于所述目标证书体系,生成接收方公钥和所述接收方私钥;
将所述接收方公钥发送至所述发布方,并接收所述发布方发送的基于所述目标证书体系生成的所述发布方公钥。
可选地,所述根据所述验证共享密钥和所述目标待执行文件生成第二校验值的步骤包括:
调用所述发布方对应的HMAC函数;
将所述验证共享密钥以及所述目标待执行文件作为所述HMAC函数的输入参数;
基于所述HMAC函数,生成所述第二校验值。
此外,为实现上述目的,本发明还提供一种待执行文件的来源验证方法,应用于发布方,所述待执行文件的来源验证方法包括以下步骤:
确定目标待执行文件的接收方,并生成随机数;
基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥;
根据所述加密共享密钥和所述目标待执行文件生成第一校验值;
将所述目标待执行文件对应的所述第一校验值,和所述验证密文发送至所述接收方。
可选地,所述基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥的步骤包括:
调用接收方公钥,基于非对称加密算法对第一随机数和第二随机数进行加密,生成所述验证密文;
调用发布方私钥,并将所述接收方公钥、所述发布方私钥、所述第一随机数和所述第二随机数作为SM2密钥协商算法的输入参数;
基于所述SM2密钥协商算法,生成所述加密共享密钥。
可选地,所述基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥的步骤之前,还包括:
根据所述接收方,确定目标证书体系;
基于所述目标证书体系,生成发布方公钥和所述发布方私钥;
将所述发布方公钥发送至所述接收方,并接收所述接收方发送的基于所述目标证书体系生成的所述接收方公钥。
可选地,所述根据所述加密共享密钥和所述目标待执行文件生成第一校验值的步骤包括:
调用所述接收方对应的HMAC函数;
将所述加密共享密钥以及所述目标待执行文件作为所述HMAC函数的输入参数;
基于所述HMAC函数,生成所述第一校验值。
此外,为实现上述目的,本发明还提供一种待执行文件的来源验证设备,所述待执行文件的来源验证设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的待执行文件的来源验证程序,所述待执行文件的来源验证程序被所述处理器执行时实现如上所述的待执行文件的来源验证方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有待执行文件的来源验证程序,所述待执行文件的来源验证程序被处理器执行时实现如上所述的待执行文件的来源验证方法的步骤。
本发明实施例提供待执行文件的来源验证,由于第一校验值是发布方针对目标待执行文件进行生成的校验值。随机数密文是通过加密算法对随机数进行加密后得到的,用于确保随机数的机密性,接收方采用相同的加密算法才能解析出随机数。验证共享密钥是由发布方和接收方共同生成的,因此只有拥有正确的密钥协商算法,才能获得正确的验证共享密钥。并且,接收方采用正确的校验值生成算法,才能生成与第一校验值匹配的第二校验值,进而确定目标待执行文件的来源真实性。在这个过程中,由于验证共享密钥是在接收方生成的,而非从发布方获取的,因此即使传输过程中的数据被窃取,攻击方也无法根据这些数据伪造校验值。因此,通过使用与发布方一致的加密算法解析随机数密文来获取随机数,然后使用与发布方一致的密钥协商算法获取验证共享密文,再使用与发布方一致的校验值生成算法获取第二校验值与第一校验值进行验证,可以实现对目标待执行文件的来源验证,并确保来源验证结果的可靠性,此外,通过验证第一校验值和第二校验值是否匹配,还可以确定目标待执行文件是否是发布方指定发送的,以及是否被篡改。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例涉及的待执行文件的来源验证设备的硬件运行环境的架构示意图;
图2为本发明待执行文件的来源验证方法的第一实施例的流程示意图;
图3为本发明待执行文件的来源验证方法的第二实施例的流程示意图;
图4为本发明待执行文件的来源验证方法的第三实施例的流程示意图;
图5为本发明待执行文件的来源验证方法的一示例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图作进一步说明。
具体实施方式
本申请待执行文件的来源验证方法,通过接收发布方发送的目标待执行文件对应的第一校验值以及随机数密文;基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥;根据所述验证共享密钥和所述目标待执行文件生成第二校验值;当所述第一校验值与所述第二校验值匹配时,判定所述目标待执行文件通过来源验证。可以实现对目标待执行文件的来源验证,并确保来源验证结果的可靠性,此外,通过验证第一校验值和第二校验值是否匹配,还可以确定目标待执行文件是否是发布方指定发送的。
为了更好地理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整地传达给本领域的技术人员。
作为一种实现方案,图1为本发明实施例方案涉及的待执行文件的来源验证设备的硬件运行环境的架构示意图。
如图1所示,该待执行文件的来源验证设备可以包括:处理器101,例如中央处理器(Central Processing Unit,CPU),存储器102,通信总线103。其中,存储器102可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器102可选的还可以是独立于前述处理器101的存储装置。通信总线103用于实现这些组件之间的连接通信。
本领域技术人员可以理解,图1中示出的结构并不构成对待执行文件的来源验证设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器102中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及待执行文件的来源验证程序。
在图1所示的待执行文件的来源验证设备中,处理器101、存储器102可以设置在待执行文件的来源验证设备中,所述待执行文件的来源验证设备通过处理器101调用存储器102中存储的待执行文件的来源验证程序,并执行以下操作:
接收发布方发送的目标待执行文件对应的第一校验值以及随机数密文;
基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥;
根据所述验证共享密钥和所述目标待执行文件生成第二校验值;
当所述第一校验值与所述第二校验值匹配时,判定所述目标待执行文件通过来源验证。
在一实施例中,处理器101可以用于调用存储器102中存储的待执行文件的来源验证程序,并执行以下操作:
调用接收方私钥,基于非对称加密算法对所述随机数密文进行解密,获得第一随机数和第二随机数;
调用所述发布方对应的发布方公钥,并将所述发布方公钥、所述接收方私钥、所述第一随机数和所述第二随机数作为SM2密钥协商算法的输入参数;
基于所述SM2密钥协商算法,生成所述验证共享密钥。
在一实施例中,处理器101可以用于调用存储器102中存储的待执行文件的来源验证程序,并执行以下操作,并根据所述随机数和密钥协商算法生成验证共享密钥的步骤之前,还包括:
根据所述发布方,确定目标证书体系;
基于所述目标证书体系,生成接收方公钥和所述接收方私钥;
将所述接收方公钥发送至所述发布方,并接收所述发布方发送的基于所述目标证书体系生成的所述发布方公钥。
在一实施例中,处理器101可以用于调用存储器102中存储的待执行文件的来源验证程序,并执行以下操作;
将所述验证共享密钥以及所述目标待执行文件作为所述HMAC函数的输入参数;
基于所述HMAC函数,生成所述第二校验值。
在一实施例中,处理器101可以用于调用存储器102中存储的待执行文件的来源验证程序,并执行以下操作:
确定目标待执行文件的接收方,并生成随机数;
基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥;
根据所述加密共享密钥和所述目标待执行文件生成第一校验值;
将所述目标待执行文件对应的所述第一校验值,和所述验证密文发送至所述接收方。
在一实施例中,处理器101可以用于调用存储器102中存储的待执行文件的来源验证程序,并执行以下操作:
调用接收方公钥,基于非对称加密算法对第一随机数和第二随机数进行加密,生成所述验证密文;
调用发布方私钥,并将所述接收方公钥、所述发布方私钥、所述第一随机数和所述第二随机数作为SM2密钥协商算法的输入参数;
基于所述SM2密钥协商算法,生成所述加密共享密钥。
在一实施例中,处理器101可以用于调用存储器102中存储的待执行文件的来源验证程序,并执行以下操作:
根据所述接收方,确定目标证书体系;
基于所述目标证书体系,生成发布方公钥和所述发布方私钥;
将所述发布方公钥发送至所述接收方,并接收所述接收方发送的基于所述目标证书体系生成的所述接收方公钥。
在一实施例中,处理器101可以用于调用存储器102中存储的待执行文件的来源验证程序,并执行以下操作;
将所述加密共享密钥以及所述目标待执行文件作为所述HMAC函数的输入参数;
基于所述HMAC函数,生成所述第一校验值。
基于上述待执行文件的来源验证设备的硬件架构,提出本发明待执行文件的来源验证方法的实施例。
参照图2,在第一实施例中,所述待执行文件的来源验证方法应用于接收方,所述待执行文件的来源验证方法包括以下步骤:
步骤S100:接收发布方发送的目标待执行文件对应的第一校验值以及随机数密文。
在本实施例中,接收方在接收到发布方发送的目标待执行文件的时候,会同时接收发布方发送的用于验证目标待执行文件的相关验证信息。其中,相关验证信息包括但不限于目标待执行文件对应的第一校验值以及随机数密文。需要说明的是,这里的接收方可以是手机、智能手表、计算机等终端设备,即用户使用的终端设备;这里的发布方可以是目标待执行文件的发布终端,如服务器,即目标待执行文件开发者使用的用于发布目标待执行文件的终端设备。
作为一种可选的实施方式,接收方在接收到发布方发送的目标待执行文件之后,或者在执行目标待执行文件之前,读取目标待执行文件的发布方标识,然后基于发布方标识生成来源验证请求至发布方,以请求目标待执行文件对应的第一校验值以及随机数密文,进而对目标待执行文件进行来源验证。
作为另一种可选的实施方式,在接收发布方发送的目标待执行文件的同时,接收目标待执行文件对应的第一校验值以及随机数密文。也即目标待执行文件对应的第一校验值以及随机数密文,是与目标待执行文件一同接收的。
步骤S200:基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥。
在本实施例中,接收方在接收到发布方发送的用于验证目标待执行文件的来源真实性的随机密文和第一校验值之后,调用与发布方生成随机密文一致的加密算法,即加密算法,对随机密文进行解密操作,获得随机密文对应的随机数。需要说明的是,这里的随机数的数量至少为两个,以确保可以进行后续的基于密钥协商算法生成验证共享密钥的步骤。
进一步地,步骤S200之前,接收方根据目标待执行文件对应的发布方,来确定发布方对应的加密算法以及密钥协商算法。具体地,可以通过调用预存的发布方算法对照表,以查表的,确定发布方对应的加密算法和密钥协商算法。可以理解地,若发布方算法对照表中,未查找到该目标待执行文件的发布方,意味着该发布方是不被接收方信任的发布方,或者意味着该目标待执行文件不是发布方指定发送给接收方的。
可选地,加密算法可以是对称加密算法,如SM4算法;或者非对称加密算法,如SM2算法。可以理解地,当加密算法为对称加密算法时,接收方预存有与对称密钥,该对称密钥需要在进行来源验证进程之前,也即在步骤S100之前,从发布方获取;当加密算法为非对称加密算法时,接收方预存有接收方私钥,并且发布方拥有用于加密随机数的接受方公钥,其中该接收方公钥和接收方私钥需要在步骤S100之前生成,并将接收方公钥发送至发布方。
密钥协商算法可以是SM2密钥协商算法或者SM4密钥协商算法。可以理解地,当密钥协商算法为SM2密钥协商算法时,接收方预存有发布方公钥和接收方私钥,因此,在步骤S100之前,接收方需要生成接收方私钥,并保存发布方发送的发布方公钥。当密钥协商算法为SM4密钥协商算法时,接收方预存有对称密钥,因此,在步骤S100之前,接收方需要从发布方获取并保存对称公钥。
步骤S300:根据所述验证共享密钥和所述目标待执行文件生成第二校验值。
在本实施例中,接收方在获得验证共享密钥之后,通过调用与发布方对应的校验值生成算法,然后将验证共享密钥和目标待执行文件作为校验值生成算法的输入参数,以生成第二校验值。
可选地,可以于预存的发布方算法对照表中,基于发布方标识,通过查表的方式,获得发布方对应的校验值生成算法。
进一步地,步骤S300包括,调用所述发布方对应的HMAC函数,并将所述验证共享密钥以及所述目标待执行文件作为所述HMAC函数的输入参数;然后基于所述HMAC函数,生成所述第二校验值。
HMAC函数是一种基于哈希函数和密钥的消息认证码算法。可以通过对目标待执行文件进行哈希运算,并结合验证共享密钥来生成一个固定长度的认证码。由于HMAC函数具有安全性、不可逆性、可验证性等特性。因此在待执行文件的来源验证方法中,调用HMAC函数并将验证共享密钥和目标待执行文件作为参数,可以生成一个与目标待执行文件内容和验证共享密钥相关的认证码,即第二校验值。通过比对由发布方生成的第一校验值和由接收方生成的第二校验值,可以验证文件是否完整,以及可以确定目标待执行文件对应的发布方的真实性,也即目标待执行文件的来源真实性。因此,调用HMAC函数并生成第二校验值的目的是为了验证待执行文件的完整性和来源真实性。
步骤S400:当所述第一校验值与所述第二校验值匹配时,判定所述目标待执行文件通过来源验证。
在本实施例中,接收方在获得第二校验值之后,通过验证第一校验值与第二校验值的一致性,以确定第一校验值与第二校验值是否匹配。若第一校验值与第二校验值一致,则说明第一校验值与第二校验值匹配,判定目标待执行文件通过来源验证,即可以确定目标待执行文件的来源对应的发布方是真实的。若第一校验值与第二校验值不一致,则说明第一校验值与第二校验值不匹配,即可以判断目标待执行文件的来源对应的发布方的真实性存疑,可能是非法发布方假冒的。
在本实施例提供的技术方案中,由于第一校验值是发布方针对目标待执行文件进行生成的校验值。随机数密文是通过加密算法对随机数进行加密后得到的,用于确保随机数的机密性,接收方采用相同的加密算法才能解析出随机数。验证共享密钥是由发布方和接收方共同生成的,因此只有拥有正确的密钥协商算法,才能获得正确的验证共享密钥。并且,接收方采用正确的校验值生成算法,才能生成与第一校验值匹配的第二校验值,进而确定目标待执行文件的来源真实性。在这个过程中,由于验证共享密钥是在接收方生成的,而非从发布方获取的,因此即使传输过程中的数据被窃取,攻击方也无法根据这些数据伪造校验值。因此,通过使用与发布方一致的加密算法解析随机数密文来获取随机数,然后使用与发布方一致的密钥协商算法获取验证共享密文,再使用与发布方一致的校验值生成算法获取第二校验值与第一校验值进行验证,可以实现对目标待执行文件的来源验证,并确保来源验证结果的可靠性,此外,通过验证第一校验值和第二校验值是否匹配,还可以确定目标待执行文件是否是发布方指定发送的,以及是否被篡改。
参照图3,基于上述实施例,在第二实施例中,所述基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥的步骤包括:
步骤S210:调用接收方私钥,基于非对称加密算法对所述随机数密文进行解密,获得第一随机数和第二随机数;
步骤S220:调用所述发布方对应的发布方公钥,并将所述发布方公钥、所述接收方私钥、所述第一随机数和所述第二随机数作为SM2密钥协商算法的输入参数;
步骤S230:基于所述SM2密钥协商算法,生成所述验证共享密钥。
在本实施例中,用于解析随机数密文的加密算法为非对称加密算法。调用接收方私钥,基于非对称加密算法对所述随机数密文进行解密,获得的随机数包括第一随机数和第二随机数。用于生成验证共享密钥的密钥协商算法为SM2密钥协商算法。
进一步地,在调用接收方私钥和发布方公钥之前,需要根据所述发布方,确定目标证书体系,并基于所述目标证书体系,生成接收方公钥和所述接收方私钥;然后,将所述接收方公钥发送至所述发布方,并接收所述发布方发送的基于所述目标证书体系生成的所述发布方公钥。
在本实施例中,对于不同的目标待执行文件,对应的发布方可以是不同的,并且,对于不同的发布方,所调用的发布方公钥也可以是不同的。因此,在对目标待执行文件进行来源验证之前,需要先确定目标证书体系,以达到发布方与接收方使用同一个PKI的目的,进而确保对目标待执行文件的来源验证可靠性。
在本实施例提供的技术方案中,通过调用接收方私钥对随机数密文进行解密获得第一随机数和第二随机数,并调用发布方公钥,与接收方私钥、第一随机数和第二随机数一起,作为SM2密钥协商算法的输入参数,以获得验证共享密钥。这样做的目的在于确保第一随机数和第二随机数的可靠性,并通过SM2密钥协商算法获得验证共享密钥,可以进一步确保生成的验证共享密钥的正确性,进而确保后续生成用于验证发布方来源的第二校验值的正确性,从而可以进一步提升目标待执行文件的来源验证结果的可靠性,确定目标待执行文件是否是发布方指定发送的,以及可以进一步验证目标待执行文件是否被篡改。
参照图4,基于上述实施例,在第三实施例中,所述待执行文件的来源验证方法应用于发布方,所述待执行文件的来源验证方法包括:
步骤S500:确定目标待执行文件的接收方,并生成随机数;
步骤S600:基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥;
步骤S700:根据所述加密共享密钥和所述目标待执行文件生成第一校验值;
步骤S800:将所述目标待执行文件对应的所述第一校验值,和所述验证密文发送至所述接收方。
在本实施例中,发布方可以指定目标待执行文件的接收方,确保文件仅被合法的接收方所使用。通过对生成的随机数进行加密,可以保证验证密文的机密性,只有具备解密密钥的接收方才能获取随机数,从而继续进行验证。发布方通过密钥协商算法生成加密共享密钥,这个加密共享密钥将用于生成第一校验值,确保只有接收方才能正确计算校验值。需要说明的是,接收方需要使用与发布方一致的密钥协商算法才能生成与加密共享密钥对应的验证共享密钥,进而才能基于验证共享密钥和目标待执行文件生成与第一校验值匹配的第二校验值。
使用加密共享密钥对目标待执行文件进行校验值的计算,确保只有获得正确的验证密钥的接收方能够得到正确的校验值。发布方将目标待执行文件对应的第一校验值和验证密文发送给接收方。接收方可以使用与发布方使用的加密算法一致的加密算法解析验证密文,并使用解密后的随机数生成验证共享密钥,并计算目标待执行文件的第二校验值。如果第二校验值和接收到的第一校验值匹配,则接收方可以确认该文件的来源是合法的,是本发布方发送的。
作为一种可选的实施方式,发布方在接收到接收方发送的来源验证请求时,针对接收方的来源验证请求,生成随机数密文和目标待执行文件对应的第一校验值,并将随机数密文和目标待执行文件对应的第一校验值作为来源验证请求的相响应信息,发送至发送来源验证请求的接收方。
作为另一种可选的实施方式,发布方指定确定的接收方,然后生成随机数密文和目标待执行文件对应的第一校验值,然后将第一校验值和验证密文,与目标待执行文件一起,发送至接收方,以使接收方在接收到目标待执行文件的时候,即可对目标待执行文件进行来源验证。
进一步地,发布方在基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥时,可以通过调用接收方公钥,基于非对称加密算法对第一随机数和第二随机数进行加密,生成所述验证密文;以及通过调用发布方私钥,并将所述接收方公钥、所述发布方私钥、所述第一随机数和所述第二随机数作为SM2密钥协商算法的输入参数,然后于所述SM2密钥协商算法,生成所述加密共享密钥。
在发布方,由于SM2密钥协商算法需要用到接收方公钥和发布方私钥,因此发布方和接收方通过使用同一PKI,发布方可以实现目标待执行文件的指定发送,并可以提高接收方对目标待执行文件进行来源验证时的可靠性。
可选地,在调用发布方私钥和接收方公钥之前,根据所述接收方,确定目标证书体系,并基于所述目标证书体系,生成发布方公钥和所述发布方私钥;然后,将所述发布方公钥发送至所述接收方,并接收所述接收方发送的基于所述目标证书体系生成的所述接收方公钥。
通过使用与接收方对应的目标证书体系生成发布方公钥和所述发布方私钥,这样做的目的在于确保接收方和发布方都使用同一PKI。
进一步地,步骤S700包括,调用所述接收方对应的HMAC函数,并将所述加密共享密钥以及所述目标待执行文件作为所述HMAC函数的输入参数;然后,基于所述HMAC函数,生成所述第一校验值。
通过HMAC函数生成第一校验值,这样做的目的在于,可以供接收方对目标待执行文件进行来源验证。当接收方通过相同的HMAC算法生成的第二校验值与第一校验值匹配的时候,即可以判定目标待执行文件的来源真实性,可以确定目标待执行文件是从由本发布方发送的。
示例性地,如图5所示。假设发布方为用于发布设备固件的服务器A,接收方为手机B。A要向B发布一个设备固件M时,A先获取B的接收方公钥Pb,并生成随机数R1、R2。然后,基于R1、R2、Pb和发布方私钥Da,通过SM2密钥协商算法,计算一个加密共享密钥K1。再调用HMAC函数,通过Hmac(M、K1),计算第一校验值MAC1。然后使用Pb加密R1、R2,生成验证密文C。A将设备固件M、第一校验值MAC1、发布方公钥Pa和验证密文C发送至B。
B接收到设备固件M、第一校验值MAC1、发布方公钥Pa和验证密文C之后,调用接收方私钥Db对C进行解密,获得R1、R2。然后基于R1、R2、Pa、Db,通过SM2密钥协商算法,计算获得验证共享密钥K2。再调用HMAC函数,通过Hmac(M、K2),计算第二校验值MAC2。然后对第一校验值MAC1和第二校验值MAC2进行一致性验证。假设MAC2=MAC1,故判定M为被篡改,并判定M是由A发送给B的。
在本实施例提供的技术方案中,由于接收方只有使用与发布方使用的加密算法一致的加密算法解析验证密文,并使用解密后的随机数,以生成加密共享密钥同样的方式,生成验证共享密钥,并且使用验证共享密钥,以生成第一校验值同样的方式,计算获得与第一校验值匹配的第二校验值,才能确定接收到的目标待执行文件的来源是本发布方。因此,可以防止未经授权的接收方获取和使用目标待执行文件,并可以确保接收方接收到目标待执行文件后可以进行来源验证,以防止目标待执行文件在传输的过程中被篡改。
此外,本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可以存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被待执行文件的来源验证设备中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有待执行文件的来源验证程序,所述待执行文件的来源验证程序被处理器执行时实现如上实施例所述的待执行文件的来源验证方法的各个步骤。
其中,所述计算机可读存储介质可以是U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
需要说明的是,由于本申请实施例提供的存储介质,为实施本申请实施例的方法所采用的存储介质,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该存储介质的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的存储介质都属于本申请所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种待执行文件的来源验证方法,其特征在于,应用于接收方,所述待执行文件的来源验证方法包括以下步骤:
接收发布方发送的目标待执行文件对应的第一校验值以及随机数密文;
基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥;
根据所述验证共享密钥和所述目标待执行文件生成第二校验值;
当所述第一校验值与所述第二校验值匹配时,判定所述目标待执行文件通过来源验证。
2.如权利要求1所述的待执行文件的来源验证方法,其特征在于,所述基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥的步骤包括:
调用接收方私钥,基于非对称加密算法对所述随机数密文进行解密,获得第一随机数和第二随机数;
调用所述发布方对应的发布方公钥,并将所述发布方公钥、所述接收方私钥、所述第一随机数和所述第二随机数作为SM2密钥协商算法的输入参数;
基于所述SM2密钥协商算法,生成所述验证共享密钥。
3.如权利要求2所述的待执行文件的来源验证方法,其特征在于,所述基于加密算法解析出所述随机数密文对应的随机数,并根据所述随机数和密钥协商算法生成验证共享密钥的步骤之前,还包括:
根据所述发布方,确定目标证书体系;
基于所述目标证书体系,生成接收方公钥和所述接收方私钥;
将所述接收方公钥发送至所述发布方,并接收所述发布方发送的基于所述目标证书体系生成的所述发布方公钥。
4.如权利要求1所述的待执行文件的来源验证方法,其特征在于,所述根据所述验证共享密钥和所述目标待执行文件生成第二校验值的步骤包括:
调用所述发布方对应的HMAC函数;
将所述验证共享密钥以及所述目标待执行文件作为所述HMAC函数的输入参数;
基于所述HMAC函数,生成所述第二校验值。
5.一种待执行文件的来源验证方法,其特征在于,应用于发布方,所述待执行文件的来源验证方法包括以下步骤:
确定目标待执行文件的接收方,并生成随机数;
基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥;
根据所述加密共享密钥和所述目标待执行文件生成第一校验值;
将所述目标待执行文件对应的所述第一校验值,和所述验证密文发送至所述接收方。
6.如权利要求5所述的待执行文件的来源验证方法,其特征在于,所述基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥的步骤包括:
调用接收方公钥,基于非对称加密算法对第一随机数和第二随机数进行加密,生成所述验证密文;
调用发布方私钥,并将所述接收方公钥、所述发布方私钥、所述第一随机数和所述第二随机数作为SM2密钥协商算法的输入参数;
基于所述SM2密钥协商算法,生成所述加密共享密钥。
7.如权利要求6所述的待执行文件的来源验证方法,其特征在于,所述基于加密算法加密所述随机数,生成验证密文,并根据随机数和密钥协商算法,生成加密共享密钥的步骤之前,还包括:
根据所述接收方,确定目标证书体系;
基于所述目标证书体系,生成发布方公钥和所述发布方私钥;
将所述发布方公钥发送至所述接收方,并接收所述接收方发送的基于所述目标证书体系生成的所述接收方公钥。
8.如权利要求5所述的待执行文件的来源验证方法,其特征在于,所述根据所述加密共享密钥和所述目标待执行文件生成第一校验值的步骤包括:
调用所述接收方对应的HMAC函数;
将所述加密共享密钥以及所述目标待执行文件作为所述HMAC函数的输入参数;
基于所述HMAC函数,生成所述第一校验值。
9.一种待执行文件的来源验证设备,其特征在于,所述待执行文件的来源验证设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的待执行文件的来源验证程序,所述待执行文件的来源验证程序配置为实现如权利要求1至8中任一项所述的待执行文件的来源验证方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有待执行文件的来源验证程序,所述待执行文件的来源验证程序被处理器执行时实现如权利要求1至8任一项所述的待执行文件的来源验证方法的步骤。
CN202311757119.9A 2023-12-20 2023-12-20 待执行文件的来源验证方法、设备以及可读存储介质 Pending CN117436043A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311757119.9A CN117436043A (zh) 2023-12-20 2023-12-20 待执行文件的来源验证方法、设备以及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311757119.9A CN117436043A (zh) 2023-12-20 2023-12-20 待执行文件的来源验证方法、设备以及可读存储介质

Publications (1)

Publication Number Publication Date
CN117436043A true CN117436043A (zh) 2024-01-23

Family

ID=89558607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311757119.9A Pending CN117436043A (zh) 2023-12-20 2023-12-20 待执行文件的来源验证方法、设备以及可读存储介质

Country Status (1)

Country Link
CN (1) CN117436043A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117951036A (zh) * 2024-03-26 2024-04-30 鼎铉商用密码测评技术(深圳)有限公司 用户识别卡安全检测方法、设备及计算机可读存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412971A (zh) * 2011-11-30 2012-04-11 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
CN108650082A (zh) * 2018-05-08 2018-10-12 腾讯科技(深圳)有限公司 待验证信息的加密和验证方法、相关装置及存储介质
CN109818749A (zh) * 2019-01-11 2019-05-28 如般量子科技有限公司 基于对称密钥池的抗量子计算点对点消息传输方法和系统
CN109951274A (zh) * 2019-01-15 2019-06-28 如般量子科技有限公司 基于私钥池的抗量子计算点对点消息传输方法和系统
WO2022021193A1 (zh) * 2020-07-30 2022-02-03 华为技术有限公司 密钥协商方法及装置
CN114026820A (zh) * 2021-03-09 2022-02-08 深圳市汇顶科技股份有限公司 数据上传方法、数据下载方法及相关设备
CN115065466A (zh) * 2022-06-23 2022-09-16 中国电信股份有限公司 密钥协商方法、装置、电子设备和计算机可读存储介质
CN115150821A (zh) * 2022-07-05 2022-10-04 中国银行股份有限公司 离线包的传输、存储方法及装置
CN115276978A (zh) * 2022-07-27 2022-11-01 中银金融科技有限公司 一种数据处理方法以及相关装置
CN115378587A (zh) * 2022-10-24 2022-11-22 北京智芯微电子科技有限公司 密钥获取方法、装置、设备及可读存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102412971A (zh) * 2011-11-30 2012-04-11 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
CN108650082A (zh) * 2018-05-08 2018-10-12 腾讯科技(深圳)有限公司 待验证信息的加密和验证方法、相关装置及存储介质
CN109818749A (zh) * 2019-01-11 2019-05-28 如般量子科技有限公司 基于对称密钥池的抗量子计算点对点消息传输方法和系统
CN109951274A (zh) * 2019-01-15 2019-06-28 如般量子科技有限公司 基于私钥池的抗量子计算点对点消息传输方法和系统
WO2022021193A1 (zh) * 2020-07-30 2022-02-03 华为技术有限公司 密钥协商方法及装置
CN114026820A (zh) * 2021-03-09 2022-02-08 深圳市汇顶科技股份有限公司 数据上传方法、数据下载方法及相关设备
CN115065466A (zh) * 2022-06-23 2022-09-16 中国电信股份有限公司 密钥协商方法、装置、电子设备和计算机可读存储介质
CN115150821A (zh) * 2022-07-05 2022-10-04 中国银行股份有限公司 离线包的传输、存储方法及装置
CN115276978A (zh) * 2022-07-27 2022-11-01 中银金融科技有限公司 一种数据处理方法以及相关装置
CN115378587A (zh) * 2022-10-24 2022-11-22 北京智芯微电子科技有限公司 密钥获取方法、装置、设备及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117951036A (zh) * 2024-03-26 2024-04-30 鼎铉商用密码测评技术(深圳)有限公司 用户识别卡安全检测方法、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US9847880B2 (en) Techniques for ensuring authentication and integrity of communications
WO2021012552A1 (zh) 一种登录处理方法及相关设备
US10454674B1 (en) System, method, and device of authenticated encryption of messages
CN110401615B (zh) 一种身份认证方法、装置、设备、系统及可读存储介质
CN101018125B (zh) 一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法
US8775794B2 (en) System and method for end to end encryption
CN110519309B (zh) 数据传输方法、装置、终端、服务器及存储介质
CN110719173B (zh) 一种信息处理方法及装置
CN113268715A (zh) 软件加密方法、装置、设备及存储介质
CN109831311B (zh) 一种服务器验证方法、系统、用户终端及可读存储介质
CN113128999B (zh) 一种区块链隐私保护方法及装置
CN114692218A (zh) 一种面向个人用户的电子签章方法、设备和系统
JP2022521525A (ja) データを検証するための暗号方法
CN116582266B (zh) 电子签章方法、电子签章系统以及可读存储介质
CN110383755B (zh) 网络设备和可信第三方设备
CN117436043A (zh) 待执行文件的来源验证方法、设备以及可读存储介质
CN114710298A (zh) 基于变色龙哈希的文档批量签署方法、装置、设备及介质
JP2010068527A (ja) コンテンツファイル制作者の認証方式
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN113094686A (zh) 认证方法及相关设备、计算机可读存储介质
US20240106633A1 (en) Account opening methods, systems, and apparatuses
JP2004234641A (ja) コンテンツファイル制作者の認証方式およびそのプログラム
CN108242997B (zh) 安全通信的方法与设备
CN111901287A (zh) 一种为轻应用提供加密信息的方法、装置和智能设备
CN115604034A (zh) 一种通信连接的加解密方法、系统及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination