CN115964721A - 一种程序验证方法及电子设备 - Google Patents

一种程序验证方法及电子设备 Download PDF

Info

Publication number
CN115964721A
CN115964721A CN202310200919.4A CN202310200919A CN115964721A CN 115964721 A CN115964721 A CN 115964721A CN 202310200919 A CN202310200919 A CN 202310200919A CN 115964721 A CN115964721 A CN 115964721A
Authority
CN
China
Prior art keywords
program
verified
hash table
preset
identifier
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
CN202310200919.4A
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202310200919.4A priority Critical patent/CN115964721A/zh
Publication of CN115964721A publication Critical patent/CN115964721A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请公开了一种程序验证方法及电子设备,用以通过电子设备中预设的哈希表以及预设在电子设备OTP中的根节点的摘要值,对待验证程序进行安全性验证,确保加载的程序是安全的,从而实现保证电子设备的安全可靠性,并提高验证效率。本申请提供的一种程序验证方法,包括:获取待验证程序,并判断所述待验证程序的标识是否存在于预设的哈希表中;其中,所述哈希表包括至少一个程序的标识与摘要值的对应关系;若所述待验证程序的标识存在于所述哈希表中,则通过预设的哈希函数计算所述哈希表的根节点的摘要值,并通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证。

Description

一种程序验证方法及电子设备
技术领域
本申请涉及信息处理技术领域,尤其涉及一种程序验证方法及电子设备。
背景技术
随着信息技术的发展,网络安全的重要性越发凸显,尤其主机安全成为最核心的安全保护点。为了保证电子设备主机的安全可靠,很多电子设备都集成了安全特性,确保加载的程序是安全可靠的。常见的保护技术有基于数字签名技术构建的可信执行环境,基于TEE(Trusted Execution Environment,可信执行环境)环境构建的可信执行环境,基于安全芯片构建的可信执行环境等。但通过这些技术构建的可信执行环境,对于低性能设备,特别是传感器、单片机类设备,根本无法满足其硬件、性能和成本要求。
发明内容
本申请实施例提供了一种程序验证方法及电子设备,用以通过电子设备中预设的哈希表以及预设在电子设备OTP中的根节点的摘要值,对待验证程序进行安全性验证,确保加载的程序是安全的,从而实现保证电子设备的安全可靠性,并提高验证效率。
本申请实施例提供的一种程序验证方法,包括:
获取待验证程序,并判断所述待验证程序的标识是否存在于预设的哈希表中;其中,所述哈希表包括至少一个程序的标识与摘要值的对应关系;
若所述待验证程序的标识存在于所述哈希表中,则通过预设的哈希函数计算所述哈希表的根节点的摘要值,并通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证。
通过该方法,获取待验证程序,并判断所述待验证程序的标识是否存在于预设的哈希表中;其中,所述哈希表包括至少一个程序的标识与摘要值的对应关系;若所述待验证程序的标识存在于所述哈希表中,则通过预设的哈希函数计算所述哈希表的根节点的摘要值,并通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证,确保加载的程序是安全的,从而实现保证电子设备的安全可靠性,并提高验证效率。
在一些实施例中,所述通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证,包括:
当计算得到的所述根节点的摘要值与所述OTP中的根节点的摘要值相同时,通过预设的哈希函数计算所述待验证程序的摘要值;
若计算得到的所述待验证程序的摘要值与所述哈希表中所述待验证程序的标识对应的摘要值相同,则确定所述待验证程序验证成功。
通过该方法,实现根据预设的哈希表以及OTP中的根节点的摘要值,对标识存在于所述哈希表中的待验证程序进行安全性验证。
在一些实施例中,所述方法还包括:
若所述待验证程序的标识不存在于所述哈希表中,则通过预设的公钥信息,对所述待验证程序进行安全性验证。
通过该方法,实现根据预设的公钥信息对标识不存在于哈希表中的待验证程序进行安全性验证。
在一些实施例中,所述通过预设的公钥信息,对所述待验证程序进行安全性验证,包括:
获取预设的公钥信息;
根据所述公钥信息,对所述待验证程序的签名信息进行验证,确定所述签名信息是否匹配;
若所述签名信息匹配,则确定所述待验证程序验证成功,否则,验证失败。
通过该方法,实现根据公钥信息对待验证程序的签名信息进行验证,以确定该程序是否为可信程序。
在一些实施例中,在判断所述待验证程序的标识是否存在于预设的哈希表中之前,所述方法还包括:
获取用于对所述待验证程序进行安全性验证的第一程序,并对所述第一程序进行安全性验证;
所述判断所述待验证程序的标识是否存在于预设的哈希表中,包括:
当确定所述第一程序验证成功时,判断所述待验证程序的标识是否存在于所述哈希表中。
通过该方法,实现对具备验证能力的第一程序进行安全性验证。
在一些实施例中,所述通过预设的哈希函数计算所述哈希表的根节点的摘要值,包括:
获取所述哈希表中的每一程序标识对应的程序;
针对所述每一程序标识对应的程序,通过所述哈希函数计算该程序的摘要值;
利用所述每一程序标识对应的程序的摘要值,通过所述哈希函数计算所述哈希表的根节点的摘要值。
通过该方法,实现利用哈希表中的每一程序标识对应的程序计算根节点的摘要值。
在一些实施例中,所述方法还包括采用如下方式预设所述哈希表:
利用终端中预设的程序,通过预设的哈希函数,生成所述哈希表;
将所述哈希表存储在所述终端中的存储介质中,其中,所述存储介质与所述OTP不同。
通过该方法,实现利用终端中的程序,通过哈希函数生成哈希表。
本申请另一实施例提供了一种电子设备,其包括存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一种方法。
此外,根据实施例,例如提供了一种用于计算机的计算机程序产品,其包括软件代码部分,当所述产品在计算机上运行时,这些软件代码部分用于执行上述所定义的方法的步骤。该计算机程序产品可以包括在其上存储有软件代码部分的计算机可读介质。此外,该计算机程序产品可以通过上传过程、下载过程和推送过程中的至少一个经由网络直接加载到计算机的内部存储器中和/或发送。
本申请另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种哈希表的示意图;
图2为本申请实施例提供的一种程序(标识存在于哈希表中)验证方法的具体流程示意图;
图3为本申请实施例提供的一种程序(标识存在于哈希表中)验证方法的具体流程示意图;
图4为本申请实施例提供的一种程序验证方法的具体流程示意图;
图5为本申请实施例提供的一种耗时性能仿真示意图;
图6为本申请实施例提供的一种程序验证方法的整体流程示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种程序验证方法及电子设备,用以通过电子设备中预设的哈希表以及预设在电子设备OTP中的根节点的摘要值,对待验证程序进行安全性验证,确保加载的程序是安全的,从而实现保证电子设备的安全可靠性,并提高验证效率。
其中,方法和装置是基于同一申请构思的,由于方法和装置解决问题的原理相似,因此装置和方法的实施可以相互参见,重复之处不再赘述。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下示例和实施例将只被理解为是说明性的示例。虽然本说明书可能在若干处提及“一”、“一个”或“一些”示例或实施例,但这并非意味着每个这种提及都与相同的示例或实施例有关,也并非意味着该特征仅适用于单个示例或实施例。不同实施例的单个特征也可以被组合以提供其他实施例。此外,如“包括”和“包含”的术语应被理解为并不将所描述的实施例限制为仅由已提及的那些特征组成;这种示例和实施例还可以包含并未具体提及的特征、结构、单元、模块等。
下面结合说明书附图对本申请各个实施例进行详细描述。需要说明的是,本申请实施例的展示顺序仅代表实施例的先后顺序,并不代表实施例所提供的技术方案的优劣。
需要说明的是,本申请实施例提供的技术方案,以标识存在于预设的哈希表中的待验证程序,通过所述哈希表以及预设在OTP中的根节点的摘要值,对所述待验证程序进行安全性验证;标识不存在于所述哈希表中的待验证程序,通过数字签名技术对所述待验证程序进行安全性验证为例进行说明,但并不限于此。
下面对文中出现的一些名词进行解释:
1、本申请实施例中术语“哈希表”,也叫散列表,根据关键字和值(Key-Value)直接进行访问的数据结构,也就是说,哈希表通过一个映射函数计算出关键字Key对应的Value值,然后把键值对映射到表中一个位置来访问记录,以加快查找的速度;其中,映射函数称为哈希函数或散列函数,用于存放记录的数组称为哈希表。
2、本申请实施例中术语“根节点”,指没有前件的节点,也叫父节点。
3、本申请实施例中术语“单向散列函数”,又称单向哈希函数、杂凑函数,指把任意长度的输入消息串转变成固定长度的输出串(即散列值)且由输出串难以得到输入串的一种函数。
随着信息技术的发展,网络安全的重要性越发凸显,尤其主机安全成为最核心的安全保护点。为了保证电子设备主机的安全可靠,很多电子设备都集成了安全特性,确保加载的程序是安全可靠的。常见的保护技术有非对称密码算法技术、可信执行环境技术、安全芯片技术、HMAC(Hash-based Message Authentication Code,密钥相关的哈希运算消息认证码)技术或对称密码算法技术,但这些技术无法满足低性能设备的运行环境要求,且验证速度较慢。
为了解决上述问题,本申请实施例提出了一种程序验证方法,可以应用于电子设备,若待启动程序(即待验证程序)的标识存在于预设的哈希表中,通过所述哈希表以及预设在电子设备OTP中的根节点的摘要值,对该待启动程序进行安全性验证;若待启动程序的标识不存在于该哈希表中,通过数字签名技术对该待启动程序进行安全性验证,确保加载的程序是安全的,进而满足低性能电子设备的安全可靠性保护需求,并提高了验证效率。
在一些实施例中,在电子设备系统程序打包编译阶段,根据该电子设备系统中需要运行的程序,通过预设的哈希函数,生成一张哈希表,例如图1所示,哈希表中的每一Flag值(即标识)对应电子设备系统中一个需要运行的程序,HASH值(也叫Value值或摘要值)对应每一需要运行的程序的摘要值,即一对Flag值与HASH值表示一个需要运行的程序的标识以及对应的摘要值。再利用每一需要运行的程序的摘要值,通过所述哈希函数,生成哈希表的根节点的摘要值,并将该根节点的摘要值在电子设备生产阶段写入该电子设备不可擦写存储硬件OTP中。
本申请实施例提供的一种生成哈希表的具体过程如下:
根节点的Value值是电子设备系统的可信根(信任根,在可信计算机系统中作为信任的基点;在工厂生产电子设备时将该Value值写入OTP中)。根节点的Value值由下层节点的所有Value值通过例如单向散列函数生成。其中,单向散列函数可以选择例如SHA(SecureHash Algorithm,安全散列算法)256算法(使用的哈希值长度是256位)、SHA512算法(使用的哈希值长度是512位)、SM3算法(国产哈希算法)、MD5(Message Digest Algorithm 5,信息摘要算法)等,具体算法本申请实施例不做任何限制。
获取电子设备中需要运行的程序,并为每一程序设定标识(例如Flag为00、Flag为01),通过单向散列函数对这些程序计算Value值,得到Flag为00对应的Value值、Flag为01对应的Value值……Flag为xx对应的Value值,再利用这些Flag值和Value值的对应关系,生成得到一张哈希表,并将该哈希表存储于电子设备的存储介质中,该存储介质与上述的OTP不是同一存储介质。也就是说,在哈希表中,每个节点由两部分组成,分别是Flag值和HASH值(即摘要值),每个Flag值对应电子设备系统中一个需要运行的程序,HASH值是由Flag值对应的需要运行的程序通过例如单向散列函数生成。
利用电子设备中需要运行的程序,针对每一程序,通过例如单向散列函数,生成该程序的摘要值;再利用每一程序的摘要值,通过例如单向散列函数,生成根节点的摘要值。
在电子设备生产阶段,将上述根节点的摘要值写入到该电子设备的OTP中,将哈希表(不包括根节点的摘要值)存储在电子设备的存储介质中。由于根节点的摘要值写入OTP中,无法被篡改,因此,可以基于OTP中的根节点的摘要值对标识存在于哈希表中的待验证程序进行安全性验证。
在电子设备运行阶段,当电子设备上电启动时,需要对待启动的程序进行安全性验证,只有验证成功后,方可启动该程序。
参见图2,本申请实施例提供的一种程序验证方法,假设待验证程序的标识存在于电子设备预先存储的哈希表中,具体步骤包括:
步骤S101、利用哈希表通过例如单向散列函数计算根节点的摘要值;
需要说明的是,本步骤中采用的单向散列函数与上述生成哈希表以及计算根节点的摘要值所采用的单向散列函数,是同一种哈希函数。
本步骤中可以直接利用哈希表,通过哈希函数计算根节点的摘要值,也可以利用哈希表中的每一标识对应的程序,通过哈希函数计算程序的摘要值,再利用计算得到的每一程序的摘要值,通过哈希函数计算根节点的摘要值。本申请实施例对计算根节点的摘要值的方法不做任何限制。
步骤S102、将步骤S101中计算得到的根节点的摘要值与电子设备OTP中的根节点的摘要值进行比较,当两个摘要值一致时,进行步骤S103,否则,确定待验证程序验证失败,不能启动该程序;
步骤S103、通过例如单向散列函数,计算待验证程序的摘要值;
步骤S104、将步骤S103中计算得到的摘要值,与哈希表中该待验证程序的标识对应的摘要值进行比较,当两个摘要值一致时,确定待验证程序验证成功,可以启动该程序,否则,不能启动该程序。
参见图3,本申请实施例提供的一种程序验证方法,假设待验证程序的标识存在于电子设备预先存储的哈希表中,具体步骤包括:
步骤S201、通过例如单向散列函数,计算待验证程序的摘要值;
步骤S202、将步骤S202中计算得到的摘要值,与哈希表中该待验证程序的标识对应的摘要值进行比较,当两个摘要值一致时,进行步骤S203,否则,确定待验证程序验证失败,不能启动该程序;
步骤S203、利用哈希表通过例如单向散列函数计算根节点的摘要值;
步骤S204、将步骤S203中计算得到的根节点的摘要值与电子设备OTP中的根节点的摘要值进行比较,当两个摘要值一致时,确定待验证程序验证成功,可以启动该程序,否则,不能启动该程序。
由于电子设备硬件芯片中OTP的一次性可编程特性,因此,将哈希表的根节点的Value值写入OTP后,将不能被篡改。在某些场景下,由于业务升级、安全漏洞修复等原因,可能需要在电子设备系统中新增程序、更新程序或更新程序对应的程序库版本,无法再基于OTP中的根节点的摘要值以及预先存储的哈希表对新增程序、发生更新的程序进行安全性验证,因此,可将电子设备系统中某个程序,例如Flag值为00对应的程序,设置该程序具备数字签名验签的能力,用于对标识不存在于哈希表中的待验证程序进行安全性验证,否则将影响整个系统的可信环境扩展及系统业务扩展。
在一些实施例中,可以将例如Flag为00对应的程序设置为具备数字签名验签能力和具备基于哈希表验签能力的程序,若一个待验证程序的标识不存在于预设的哈希表中,则可以使用Flag为00对应的程序,通过该哈希表以及OTP中的根节点的摘要值对该待验证程序进行安全性验证;若一个待验证程序的标识不存在于该哈希表中,则可以利用Flag为00对应的程序通过数字签名技术对该待验证程序进行安全性验证。若待验证程序验证通过即验证成功,则可以运行该程序,若验签失败,则拒绝执行该程序(即不运行该程序)。
参见图4,本申请实施例提供的一种通过第一程序对待验证程序进行安全性验证的方法,其中,所述第一程序的标识存在于电子设备预先存储的哈希表中,假设待验证程序为第二程序,具体步骤包括:
步骤S301、通过例如单向散列函数,计算第一程序的摘要值;
步骤S302、读取哈希表中第一程序的标识对应的摘要值,并比较该摘要值与步骤S301计算得到的摘要值是否相同,若相同,则进行步骤S303,否则,不启动第二程序;
步骤S303、通过第一程序获取第二程序的标识,并判断该标识是否存在于哈希表中,若是,则进行步骤S304,若不是,则进行步骤S306;
步骤S304、第一程序通过例如单向散列函数计算哈希表的根节点的摘要值,读取电子设备OTP中的根节点的摘要值,并比较这两个摘要值,当这两个摘要值相同时,进行步骤S305,否则,不启动第二程序;
步骤S305、第一程序通过例如单向散列函数计算第二程序的摘要值,读取哈希表中第二程序的标识对应的摘要值,并比较这两个摘要值,当这两个摘要值相同时,确定第二程序验证成功,启动第二程序,否则,不启动第二程序;
步骤S306、第一程序读取第二程序的签名信息,并通过存储在第一程序中的公钥信息,确定所述签名信息是否匹配,当签名信息匹配时,确定第二程序验证成功,启动第二程序,否则,不启动第二程序。
需要说明的是,上述计算哈希表的根节点的摘要值以及第二程序的摘要值,也可以通过其他程序来完成,本申请实施例对此不做任何限制。
针对基于哈希表以及OTP的程序验证方法、基于非对称签名技术的程序验证方法(假设公钥信息存储在OTP中),本申请实施例对这两种方法的计算量进行比较,比较结果例如表1所示:
Figure BDA0004109172510000111
表1中基于哈希表以及OTP的程序验证方法,需要计算摘要值2次,一次为计算待验证程序的摘要值,一次为计算根节点的摘要值;需要进行摘要值比较2次,一次为比较计算得到的根节点的摘要值与OTP中的根节点的摘要值,一次为比较待验证程序的摘要值与哈希表中该验证程序的标识对应的摘要值。基于非对称签名技术的程序验证方法,需要计算摘要值2次,一次为计算待验证程序的摘要值,一次为计算公钥信息的摘要值;需要进行比较2次,一次为比较签名信息,一次为比较计算得到的公钥信息的摘要值与OTP中的公钥信息的摘要值。可知,基于哈希表以及OTP的程序验证方法的计算量小于基于非对称签名技术的程序验证方法。
参见图5,针对上述基于哈希表以及OTP的程序验证方法、基于非对称签名技术的程序验证方法,本申请实施例使用例如python 3.9对这两种程序验证方法进行验证耗时仿真,其中,基于非对称签名技术的程序验证方法例如采用RSA2048算法,基于哈希表以及OTP的程序验证方法采用例如SHA256哈希函数计算摘要值,共对10个待验证程序进行安全性验证,得到如下结论:
基于哈希表以及OTP的程序验证方法相较于基于非对称签名技术的程序验证方法,验证速度提升近19倍,随着待验证程序数量的增加,基于哈希表以及OTP的程序验证方法的时间消耗增加较慢,而基于非对称签名技术的程序验证方法的时间消耗增加较快。
综上所述,参见图6,本申请实施例提供的一种程序验证方法,包括:
步骤S401、获取待验证程序,并判断所述待验证程序的标识是否存在于预设的哈希表中;其中,所述哈希表包括至少一个程序的标识与摘要值的对应关系;
其中,所述标识,例如上述的Flag值;所述摘要值,例如上述的HASH值或Value值,所述摘要值对应程序存放在电子设备中的位置;
步骤S402、若所述待验证程序的标识存在于所述哈希表中,则通过预设的哈希函数计算所述哈希表的根节点的摘要值,并通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证;
其中,所述哈希函数,例如上述的单向散列函数;
通过步骤S402,实现根据OTP中的根节点的摘要值,对标识存在于预设的哈希表中的待验证程序进行安全性验证,确保加载的程序是安全的,进而满足低性能设备的安全可靠性保护要求,并提高了验证效率。
为实现对标识存在于哈希表中的待验证程序进行安全性验证,在一些实施例中,所述通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证,包括:
当计算得到的所述根节点的摘要值与所述OTP中的根节点的摘要值相同时(即哈希表未发生篡改),通过预设的哈希函数计算所述待验证程序的摘要值;
若计算得到的所述待验证程序的摘要值与所述哈希表中所述待验证程序的标识对应的摘要值相同(即待验证程序未发生改变),则确定所述待验证程序验证成功。
为实现对标识不存在于哈希表中的待验证程序进行安全性验证,在一些实施例中,所述方法还包括:
若所述待验证程序的标识不存在于所述哈希表中,则通过预设的公钥信息(采用上述的数字签名技术),对所述待验证程序进行安全性验证。
为实现通过数字签名技术对标识不存在于哈希表中的待验证程序进行安全性验证,在一些实施例中,所述通过预设的公钥信息,对所述待验证程序进行安全性验证,包括:
获取预设的公钥信息;
根据所述公钥信息,对所述待验证程序的签名信息进行验证,确定所述签名信息是否匹配;
若所述签名信息匹配,则确定所述待验证程序验证成功,否则,验证失败。
为实现通过第一程序对待验证程序进行安全性验证,在一些实施例中,在判断所述待验证程序的标识是否存在于预设的哈希表中之前,所述方法还包括:
获取用于对所述待验证程序进行安全性验证的第一程序,并对所述第一程序进行安全性验证(即上述通过预设的哈希函数计算第一程序的摘要值,并比较所述摘要值与哈希表中第一程序的标识对应的摘要值,比较这两个摘要值,若相同,则第一程序验证成功,否则,第一程序验证失败);
所述判断所述待验证程序的标识是否存在于预设的哈希表中,包括:
当确定所述第一程序验证成功时,判断所述待验证程序的标识是否存在于所述哈希表中(第一程序验证成功后,方可使用该第一程序进行后续步骤,否则,证明电子设备系统运行环境不安全,直接不运行待验证程序)。
为实现根据哈希表中标识对应的每一程序计算根节点的摘要值,在一些实施例中,所述通过预设的哈希函数计算所述哈希表的根节点的摘要值,包括:
获取所述哈希表中的每一程序标识对应的程序;
针对所述每一程序标识对应的程序,通过所述哈希函数计算该程序的摘要值;
利用所述每一程序标识对应的程序的摘要值,通过所述哈希函数计算所述哈希表的根节点的摘要值。
在一些实施例中,所述方法还包括采用如下方式预设所述哈希表:
利用终端中预设的程序,通过预设的哈希函数,生成所述哈希表;
将所述哈希表存储在所述终端中的存储介质中,其中,所述存储介质与所述OTP不同。
下面介绍一下本申请实施例提供的设备或装置,其中与上述方法中所述的相同或相应的技术特征的解释或举例说明,后续不再赘述。
参见图7,本申请实施例提供的一种电子设备,包括:
处理器600,用于读取存储器620中的程序,执行下列过程:
获取待验证程序,并判断所述待验证程序的标识是否存在于预设的哈希表中;其中,所述哈希表包括至少一个程序的标识与摘要值的对应关系;
若所述待验证程序的标识存在于所述哈希表中,则通过预设的哈希函数计算所述哈希表的根节点的摘要值,并通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证。
在一些实施例中,所述通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证,包括:
当计算得到的所述根节点的摘要值与所述OTP中的根节点的摘要值相同时,通过预设的哈希函数计算所述待验证程序的摘要值;
若计算得到的所述待验证程序的摘要值与所述哈希表中所述待验证程序的标识对应的摘要值相同,则确定所述待验证程序验证成功。
在一些实施例中,所述处理器600还用于读取存储器620中的程序,执行:
若所述待验证程序的标识不存在于所述哈希表中,则通过预设的公钥信息,对所述待验证程序进行安全性验证。
在一些实施例中,所述通过预设的公钥信息,对所述待验证程序进行安全性验证,包括:
获取预设的公钥信息;
根据所述公钥信息,对所述待验证程序的签名信息进行验证,确定所述签名信息是否匹配;
若所述签名信息匹配,则确定所述待验证程序验证成功,否则,验证失败。
在一些实施例中,在判断所述待验证程序的标识是否存在于预设的哈希表中之前,所述处理器600还用于读取存储器620中的程序,执行以下步骤:
获取用于对所述待验证程序进行安全性验证的第一程序,并对所述第一程序进行安全性验证;
所述判断所述待验证程序的标识是否存在于预设的哈希表中,包括:
当确定所述第一程序验证成功时,判断所述待验证程序的标识是否存在于所述哈希表中。
在一些实施例中,所述通过预设的哈希函数计算所述哈希表的根节点的摘要值,包括:
获取所述哈希表中的每一程序标识对应的程序;
针对所述每一程序标识对应的程序,通过所述哈希函数计算该程序的摘要值;
利用所述每一程序标识对应的程序的摘要值,通过所述哈希函数计算所述哈希表的根节点的摘要值。
在一些实施例中,所述处理器600还用于读取存储器620中的程序,采用如下方式预设所述哈希表:
利用终端中预设的程序,通过预设的哈希函数,生成所述哈希表;
将所述哈希表存储在所述终端中的存储介质中,其中,所述存储介质与所述OTP不同。
在一些实施例中,本申请实施例提供的电子设备还包括收发机610,用于在处理器600的控制下接收和发送数据。
其中,在图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器620代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机610可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。
在一些实施例中,本申请实施例提供的电子设备还包括用户接口630,用户接口630可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器600负责管理总线架构和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。
在一些实施例中,处理器600可以是CPU(中央处埋器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable GateArray,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
本申请实施例提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储本申请实施例提供的任一所述方法的程序。
处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行本申请实施例提供的任一所述方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的任一所述方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请实施例提供了一种计算机可读存储介质,用于储存为上述本申请实施例提供的装置所用的计算机程序指令,其包含用于执行上述本申请实施例提供的任一方法的程序。所述计算机可读存储介质,可以是非暂时性计算机可读介质。
所述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种程序验证方法,其特征在于,所述方法包括:
获取待验证程序,并判断所述待验证程序的标识是否存在于预设的哈希表中;其中,所述哈希表包括至少一个程序的标识与摘要值的对应关系;
若所述待验证程序的标识存在于所述哈希表中,则通过预设的哈希函数计算所述哈希表的根节点的摘要值,并通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证。
2.根据权利要求1所述的方法,其特征在于,所述通过比较计算得到的所述根节点的摘要值与预设在不可擦写存储硬件OTP中的根节点的摘要值,对所述待验证程序进行安全性验证,包括:
当计算得到的所述根节点的摘要值与所述OTP中的根节点的摘要值相同时,通过预设的哈希函数计算所述待验证程序的摘要值;
若计算得到的所述待验证程序的摘要值与所述哈希表中所述待验证程序的标识对应的摘要值相同,则确定所述待验证程序验证成功。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述待验证程序的标识不存在于所述哈希表中,则通过预设的公钥信息,对所述待验证程序进行安全性验证。
4.根据权利要求3所述的方法,其特征在于,所述通过预设的公钥信息,对所述待验证程序进行安全性验证,包括:
获取预设的公钥信息;
根据所述公钥信息,对所述待验证程序的签名信息进行验证,确定所述签名信息是否匹配;
若所述签名信息匹配,则确定所述待验证程序验证成功,否则,验证失败。
5.根据权利要求1所述的方法,其特征在于,在判断所述待验证程序的标识是否存在于预设的哈希表中之前,所述方法还包括:
获取用于对所述待验证程序进行安全性验证的第一程序,并对所述第一程序进行安全性验证;
所述判断所述待验证程序的标识是否存在于预设的哈希表中,包括:
当确定所述第一程序验证成功时,判断所述待验证程序的标识是否存在于所述哈希表中。
6.根据权利要求1所述的方法,其特征在于,所述通过预设的哈希函数计算所述哈希表的根节点的摘要值,包括:
获取所述哈希表中的每一程序标识对应的程序;
针对所述每一程序标识对应的程序,通过所述哈希函数计算该程序的摘要值;
利用所述每一程序标识对应的程序的摘要值,通过所述哈希函数计算所述哈希表的根节点的摘要值。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括采用如下方式预设所述哈希表:
利用终端中预设的程序,通过预设的哈希函数,生成所述哈希表;
将所述哈希表存储在所述终端中的存储介质中,其中,所述存储介质与所述OTP不同。
8.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至7任一项所述的方法。
9.一种用于计算机的计算机程序产品,其特征在于,包括软件代码部分,当所述产品在所述计算机上运行时,所述软件代码部分用于执行根据权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至7任一项所述的方法。
CN202310200919.4A 2023-02-28 2023-02-28 一种程序验证方法及电子设备 Pending CN115964721A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310200919.4A CN115964721A (zh) 2023-02-28 2023-02-28 一种程序验证方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310200919.4A CN115964721A (zh) 2023-02-28 2023-02-28 一种程序验证方法及电子设备

Publications (1)

Publication Number Publication Date
CN115964721A true CN115964721A (zh) 2023-04-14

Family

ID=87363544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310200919.4A Pending CN115964721A (zh) 2023-02-28 2023-02-28 一种程序验证方法及电子设备

Country Status (1)

Country Link
CN (1) CN115964721A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117056236A (zh) * 2023-10-10 2023-11-14 卡斯柯信号(北京)有限公司 一种轨道交通信号软件的安全变量验证方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117056236A (zh) * 2023-10-10 2023-11-14 卡斯柯信号(北京)有限公司 一种轨道交通信号软件的安全变量验证方法及装置
CN117056236B (zh) * 2023-10-10 2024-01-30 卡斯柯信号(北京)有限公司 一种轨道交通信号软件的安全变量验证方法及装置

Similar Documents

Publication Publication Date Title
US20190278767A1 (en) Smart contract upgrade method and system based on alliance chain
KR101066727B1 (ko) 컴퓨팅 장치의 보안 부팅
CN112558946B (zh) 一种生成代码的方法、装置、设备和计算机可读存储介质
JP5777810B2 (ja) セキュアホスト実行アーキテクチャ
CN101276389B (zh) 单个物理可信平台模块内的多个逻辑可信平台模块的分离
CN110995825B (zh) 一种智能合约的发布方法、智能节点设备及存储介质
CN112511618B (zh) 边缘物联代理防护方法及电力物联网动态安全可信系统
CN112714158A (zh) 事务处理方法、中继网络、跨链网关、系统、介质和设备
US20220224546A1 (en) Software integrity protection method and apparatus, and software integrity verification method and apparatus
US8140835B2 (en) Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer
CN115964721A (zh) 一种程序验证方法及电子设备
CN115329321A (zh) 一种固件的启动方法、芯片及计算设备
CN106951785B (zh) 一种java虚拟机及其中的信任链延伸方法
CN112148314A (zh) 一种嵌入式系统的镜像验证方法、装置、设备及存储介质
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
TWI604336B (zh) 使用外部裝置之運行時驗證技術
CN111177703A (zh) 操作系统数据完整性的确定方法及装置
CN113448681B (zh) 一种虚拟机监控器公钥的注册方法、设备和存储介质
WO2020233044A1 (zh) 一种插件校验方法、设备、服务器及计算机可读存储介质
CN113360172B (zh) 应用部署方法、装置、计算机设备及存储介质
CN111353150B (zh) 一种可信启动方法、装置、电子设备及可读存储介质
CN113127015B (zh) 一种安装方法、装置以及电子设备
CN111625846A (zh) 一种移动终端设备及系统状态记录方法
CN114327602B (zh) 信息处理方法、装置、电子设备及存储介质
CN117494232B (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