CN115643060A - 一种固件文件的执行方法和装置 - Google Patents

一种固件文件的执行方法和装置 Download PDF

Info

Publication number
CN115643060A
CN115643060A CN202211240309.9A CN202211240309A CN115643060A CN 115643060 A CN115643060 A CN 115643060A CN 202211240309 A CN202211240309 A CN 202211240309A CN 115643060 A CN115643060 A CN 115643060A
Authority
CN
China
Prior art keywords
certificate
equipment
public key
firmware
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
CN202211240309.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.)
Accelink Technologies Co Ltd
Original Assignee
Accelink Technologies 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 Accelink Technologies Co Ltd filed Critical Accelink Technologies Co Ltd
Priority to CN202211240309.9A priority Critical patent/CN115643060A/zh
Publication of CN115643060A publication Critical patent/CN115643060A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及通信技术领域,提供了一种固件文件的执行方法和装置,其中所述方法包括:固件文件中至少包括固件信息、第一信息、第一密钥对中的第一公钥,第二信息,验证固件文件是否被篡改,具体包括:主机使用第二公钥解密第二信息得到第一公钥相关信息,将第一公钥相关信息与第一公钥进行匹配,两者一致则第一轮验证通过;第一轮验证通过后,使用第一公钥对第一信息解密,得到固件信息相关信息,并将所述固件信息相关信息与固件信息进行匹配,两者一致则固件文件未被篡改,执行固件文件。本发明在固件文件中携带两层认证信息,从而在执行固件文件时,对固件文件进行两重认证,验证固件文件是否被篡改,从而确保通信网络的正常运行。

Description

一种固件文件的执行方法和装置
技术领域
本发明涉及通信技术领域,特别是涉及一种固件文件的执行方法和装置。
背景技术
在光传输机架系统中,随着数据中心的发展,越来越多的用到可插拔模块(如使用SFP、QSFP、QSFP-DD、OSFP等封装的可拔插光模块),由于模块的可插拔属性,模块可能被拔下更换或对其进行固件升级,模块在拔下后,其中的固件文件可能恶意篡改为具有窃取机密设备功能的或者破坏通信功能的恶意文件,现有技术中的固件文件通常只经过简单的CRC完整性校验便被引导程序加载执行,在该现有技术下,若固件文件被非法升级或者篡改了,系统并不能识别,而是被引导程序直接执行,则可能导致整个通信网络出现严重的安全问题。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明要解决的技术问题是现有技术中固件文件可能被篡改,系统直接执行固件导致出现安全问题。
第一方面,本发明提供了一种固件文件的执行方法,所述执行方法包括:在引导程序检测到外接设备时,读取外接设备中的固件文件,验证固件文件是否被篡改,其中,固件文件中至少包括固件信息、由第一密钥对中的第一私钥对固件信息签名后的第一信息、第一密钥对中的第一公钥,以及由第二密钥对中的第二私钥对第一密钥对中的第一公钥进行签名后的第二信息,则验证固件文件是否被篡改具体包括:
主机使用第二密钥对中的第二公钥解密第二信息得到第一公钥相关信息,并将所述第一公钥相关信息与固件文件中直接携带的第一公钥进行匹配,两者一致则第一轮验证通过;
在第一轮验证通过后,使用第一密钥对中的第一公钥对第一信息解密,得到固件信息相关信息,并将所述固件信息相关信息与固件文件中直接携带的固件信息进行匹配,两者一致则验证得到固件文件未被篡改,执行相应固件文件。
优选的,所述第一密钥中的第一公钥相关信息具体为所述第一密钥中的第一公钥经过摘要算法处理后的结果;
所述固件信息相关信息具体为所述固件信息经过摘要算法处理后的结果。
优选的,所述将所述第一公钥相关信息与固件文件中直接携带的第一公钥进行匹配具体为,对所述固件文件中直接携带的第一公钥计算得到第一公钥摘要结果,将所述第一公钥摘要结果与所述第一公钥相关信息进行匹配;
所述将所述固件信息相关信息与固件文件中直接携带的固件信息进行匹配具体为,对所述固件文件中直接携带的固件信息计算得到固件信息摘要结果,将所述固件信息相关信息与所述固件信息摘要结果进行匹配。
优选的,所述外接设备包括可拔插的光模块设备、芯片的片上存储空间和其他适用于刀片服务器上的可拔插器件中的至少一种;其中,可拔插的光模块设备还包括SFP封装、QSFP封装、QSFP-DD封装和OSFP封装的光模块中的至少一种。
第二方面,本发明还提供了一种固件文件的执行方法,基于第一方面所述的固件文件的执行方法,所述执行方法还包括:
所述主机根据用户证书对所述外接设备的设备证书和设备私钥进行认证,以对所述外接设备进行认证;其中,所述外接设备由所述设备制造商生产得到;
其中,所述外接设备的存储区中存储有设备证书和设备密钥对中的设备私钥,所述设备证书的生成过程具体为:设备制造商获取由消费用户签发的设备商证书;所述设备商证书由第一证书主体和第一证书签名共同生成,所述第一证书主体由设备商标识和设备商密钥对中的设备商公钥构成,所述第一证书签名由所述消费用户的用户证书对所述第一证书主体签发得到;
所述设备制造商还获取外接设备的设备标识,以所述设备商证书、外接设备的设备标识以及设备密钥对中的设备公钥构成第二证书主体,并使用所述设备商密钥对中的设备商私钥对所述第二证书主体进行签发得到第二证书签名,由所述第二证书主体和第二证书签名共同生成设备证书。
优选的,所述主机根据用户证书对所述外接设备的设备证书和设备私钥进行认证,具体包括:
主机从所述设备证书中获取设备商证书,并从设备商证书中获取第一证书签名,使用用户证书验证所述第一证书签名的有效性;
在验证得到所述第一证书签名的有效性通过后,从所述设备商证书中获取设备商密钥对中的设备商公钥,并从所述设备证书中获取第二证书签名,使用所述设备商公钥验证所述第二证书签名的有效性;
在验证得到所述第二证书签名的有效性通过后,从所述设备证书中获取设备秘钥中的设备公钥,验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,若验证得到所述设备公钥与所述设备私钥相匹配,则完成所述外接设备的认证过程。
优选的,所述验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,具体包括:
主机向外接设备发送生成的随机数,并获取所述外接设备根据所述设备私钥对所述随机数进行加密所得到的加密结果;
所述主机使用所述设备公钥对所述加密结果进行解密得到解密结果,判断所述解密结果与所述随机数是否一致;
若所述解密结果与所述随机数一致,则验证得到所述设备公钥与所述设备私钥相匹配。
优选的,所述使用用户证书验证所述第一证书签名的有效性,具体包括:
主机获取所述设备商证书中的第一证书主体,并使用所述用户证书对所述第一证书主体进行签发得到签发结果;
判断所述签发结果与所述第一证书签名是否一致,若所述签发结果与所述第一证书签名一致,则验证得到所述第一证书签名的有效性通过。
第三方面,本发明还提供了一种固件文件的执行方法,基于第一方面所述的固件文件的执行方法,所述执行方法还包括:
所述主机根据用户证书和设备商证书对所述外接设备的设备证书和设备私钥进行认证,以对所述外接设备进行认证,其中,所述外接设备由所述设备制造商生产得到;其中,所述外接设备由所述设备制造商生产得到;
其中,设备制造商的设备商证书由消费用户签发得到,具体的,所述设备商证书由第一证书主体和第一证书签名共同生成,所述第一证书主体由设备商标识和设备商密钥对中的设备商公钥构成,所述第一证书签名由所述消费用户的用户证书对所述第一证书主体签发得到;
其中,所述外接设备的存储区中存储有设备证书和设备密钥对中的设备私钥,所述设备证书的生成过程具体为:所述设备制造商还获取外接设备的设备标识,以所述外接设备的设备标识以及设备密钥对中的设备公钥构成第二证书主体,并使用所述设备商密钥对中的设备商私钥对所述第二证书主体进行签发得到第二证书签名,由所述第二证书主体和第二证书签名共同生成设备证书。
优选的,所述主机根据用户证书和设备商证书对所述外接设备的设备证书和设备私钥进行认证,具体包括:
主机从设备商证书中获取第一证书签名,使用用户证书验证所述第一证书签名的有效性;
在验证得到所述第一证书签名的有效性通过后,从所述设备商证书中获取设备商密钥对中的设备商公钥,并从所述设备证书中获取第二证书签名,使用所述设备商公钥验证所述第二证书签名的有效性;
在验证得到所述第二证书签名的有效性通过后,从所述设备证书中获取设备秘钥中的设备公钥,验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,若验证得到所述设备公钥与所述设备私钥相匹配,则完成所述外接设备的认证过程。
优选的,所述验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,具体包括:
主机向外接设备发送生成的随机数,并获取所述外接设备根据所述设备私钥对所述随机数进行加密所得到的加密结果;
所述主机使用所述设备公钥对所述加密结果进行解密得到解密结果,判断所述解密结果与所述随机数是否一致;
若所述解密结果与所述随机数一致,则验证得到所述设备公钥与所述设备私钥相匹配。
优选的,所述使用用户证书验证所述第一证书签名的有效性,具体包括:
主机获取所述设备商证书中的第一证书主体,并使用所述用户证书对所述第一证书主体进行签发得到签发结果;
判断所述签发结果与所述第一证书签名是否一致,若所述签发结果与所述第一证书签名一致,则验证得到所述第一证书签名的有效性通过。
第四方面,本发明还提供了一种固件文件的执行装置,用于实现第一方面、第二方面或第三方面任一所述的固件文件的执行方法,所述执行装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面、第二方面或第三方面任一所述的固件文件的执行方法。
第五方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面、第二方面或第三方面任一所述的固件文件的执行方法。
本发明通过对固件信息进行签名,以及对第一公钥进行签名,使固件文件中携带两层认证信息,从而能够在执行固件文件时,对固件文件进行两重认证,验证固件文件是否被篡改,从而确保最终载入通信网络的固件文件的安全性,确保通信网络的正常运行。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图2是本发明实施例提供的一种固件文件的结构示意图;
图3是本发明实施例提供的一种固件文件的执行方法的示意图;
图4是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图5是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图6是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图7是本发明实施例提供的一种设备商证书的结构示意图;
图8是本发明实施例提供的一种设备证书的结构示意图;
图9是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图10是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图11是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图12是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图13是本发明实施例提供的一种固件证书的结构示意图;
图14是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图15是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图16是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图17是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图18是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图19是本发明实施例提供的一种固件文件的执行方法的流程示意图;
图20是本发明实施例提供的一种固件文件的执行装置的架构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
本发明实施例1提供了一种固件文件的执行方法,在引导程序检测到外接设备时,读取外接设备中的固件文件,验证固件文件是否被篡改,其中,固件文件中至少包括固件信息、由第一密钥对中的第一私钥对固件信息签名后的第一信息、第一密钥对中的第一公钥,以及由第二密钥对中的第二私钥对第一密钥对中的第一公钥进行签名后的第二信息,则如图1所示,验证固件文件是否被篡改具体包括:
在步骤201中,主机使用第二密钥对中的第二公钥解密第二信息得到第一公钥相关信息,并将所述第一公钥相关信息与固件文件中直接携带的第一公钥进行匹配,两者一致则第一轮验证通过。
在步骤202中,在第一轮验证通过后,使用第一密钥对中的第一公钥对第一信息解密,得到固件信息相关信息,并将所述固件信息相关信息与固件文件中直接携带的固件信息进行匹配,两者一致则验证得到固件文件未被篡改,执行相应固件文件。
若第一轮验证不通过或在第一轮验证通过后验证得到固件信息相关信息与固件文件中直接携带的固件信息不匹配,则认为固件文件被篡改,将固件文件挂起而不执行。
其中,所述外接设备包括可拔插的光模块设备、芯片的片上存储空间和适用于刀片服务器上的可拔插器件中的至少一种;其中,所述可拔插的光模块设备包括SFP封装、QSFP封装、QSFP-DD封装和OSFP封装的光模块中的至少一种。
根据本领域技术人员对固件的安全要求不同,固件与第二密钥对可能存在以下三种关系,具体包括:
关系一:所有固件公用一份第二密钥对。
关系二:每一版本的固件公用一份第二密钥对。
关系三:为每一个固件文件生成唯一的第二密钥对。
上述三种关系同样适用于第一密钥对,为了确保固件文件的安全性,还存在一种优选的实施方式为:第二密钥对与固件文件之间采用关系一或关系二,第一密钥对与固件文件之间采用关系三。
所述第一公钥是直接包含在固件文件中的,第二公钥未写入固件文件,故在执行上述步骤201前,主机还需要获取第二公钥,为了解决此问题,在此还提供了三种可选的实施方式,具体包括:
方式一:将第二密钥对中的第二公钥直接写入主机的引导程序中。从而使主机根据引导程序中的第二公钥进行第一轮验证,而无需从它处获取第二公钥。
方式一实现较为简单,且由于不涉及网络传输,其安全性较高,但由于将第二公钥直接置入了引导程序中,若需要更换第二公钥,则需要对主机的引导程序进行更新,从而带来一系列繁琐的更新流程。且当固件文件与第二密钥对之间呈现上述关系三所述的关系时,固件文件的数量直接决定主机中存储的第二公钥的数量,导致在存在大量固件文件时,主机的存储资源被第二公钥大量占用。
方式二:第二公钥存储于相应的远端服务器中,每一份固件对应一份第一密钥对,所述主机在进行第一轮验证时,读取固件信息中的版本信息,并根据所述版本信息从远端服务器中获取对应的第二密钥对,从而进行第一轮验证。
方式二由于涉及网络传输,给其安全性带来了一定的风险,但由于第二公钥存储在远端服务器中,使其更易于管理和变更,从而能够在第二密钥对被恶意分子破解时,迅速对第二公钥进行修改,以确保使用了第二私钥进行签名的固件文件无法被执行,从而通过制止一部分固件文件的执行,避免给整个通信系统造成无法挽回的错误。如将方式二与上述关系二结合时,由于一个版本的固件公用一份第二密钥对,从而能够通过服务器中的第二公钥,对固件进行版本管理。如当通信系统不断迭代更新,导致无法兼容旧版本固件时,可通过将旧版本固件所对应的第二公钥从服务器中删除,以淘汰市面上的旧版本固件。
方式三:第二公钥由外接设备的使用方人工获取,并导入至主机。
该方式通常在进行固件文件或外接设备的售卖时,直接将第二公钥交由使用方,并由使用方导入主机,该方式由于依赖人工,使其存在一定的安全性风险,但能够通过与上述关系三结合,增大其安全性,从而能够较便捷地获取到第二公钥。
所述第一密钥对和第二密钥对由非对称加密算法生成,所述非对称加密算法包括RSA、ECDSA、ECC、AES和SM2中的一种或多种。
本实施例通过对固件信息进行签名,以及对第一公钥进行签名,使固件文件中携带两层认证信息,从而能够在执行固件文件时,对固件文件进行两重认证,验证固件文件是否被篡改,从而确保最终载入通信网络的固件文件的安全性,确保通信网络的正常运行。
在实际使用情况中,若直接对固件信息本身进行加密,可能会使得到的第一信息体积过大,导致生成的固件文件体积较大,从而需要具有更大存储空间的外接设备,最终导致外接设备的制造成本增加,且另一方面,也会导致验证固件文件的所需耗费的时间增长,针对此问题,还存在以下优选的实施方式,具体的,如图2所示:
所述第一密钥中的第一公钥相关信息具体为所述第一密钥中的第一公钥经过摘要算法处理后的结果。
所述固件信息相关信息具体为所述固件信息经过摘要算法处理后的结果。
与该优选的实施方式相对应的,在进行固件文件验证时,如图3所示,所述将所述第一公钥相关信息与固件文件中直接携带的第一公钥进行匹配具体为,对所述固件文件中直接携带的第一公钥计算得到第一公钥摘要结果,将所述第一公钥摘要结果与所述第一公钥相关信息进行匹配。
所述将所述固件信息相关信息与固件文件中直接携带的固件信息进行匹配具体为,对所述固件文件中直接携带的固件信息计算得到固件信息摘要结果,将所述固件信息相关信息与所述固件信息摘要结果进行匹配。
其中,将第一公钥相关信息与固件文件中直接携带的第一公钥进行匹配时所使用的摘要算法,与生成第一公钥相关信息时所使用的摘要算法相同。将所述固件信息相关信息与固件文件中直接携带的固件信息进行匹配时所使用的摘要算法,与生成固件信息相关信息时所使用的摘要算法相同。
所述摘要算法包括HASH算法、MD5算法和SHA-1算法中的一种或者多种。
实施例2:
本发明基于实施例1所描述的方法基础上,结合具体的应用场景,并借由相关场景下的技术表述来阐述本发明特性场景下的实现过程。
如存在一可拔插光模块,用于插入相应OLT设备中,所述可拔插光模块中的固件文件中包括固件信息、第一信息、第一公钥和第二信息,具体的,如图4所示:
在步骤301中,在生成所述固件文件时,预先生成2组密钥对,分别为密钥对A(相当于实施例1中的第一密钥对)和密钥对B(相当于实施例1中的第二密钥对),其中:密钥对A是用来给固件信息签名,密钥对B用于给密钥对A中的公钥(相当于实施例1中的第一公钥)签名。密钥对A和密钥对B均是基于RSA或者ECDSA非对称加密算法生成,长度可以选择1024或者2048或者更长的密钥对,可以选用通用的openssl工具生产密钥对,带加密的或者不带加密的密钥对。
在步骤302中,首先用SHA256对固件信息进行HASH摘要计算,得到固件信息相关信息,然后用密钥对A的私钥对固件信息相关信息进行签名,生成第一信息。此时固件文件包含了2部分,固件信息以及固件信息的签名信息(相当于实施例1中的第一信息)。
在步骤303中,进一步签名,对密钥对A的公钥计算HASH摘要,得到第一公钥相关信息,并使用密钥对B的私钥对第一公钥相关信息进行签名,得到密钥对A的公钥的签名文件,如图5所示;此时的固件文件信息有4部分,密钥对A的公钥的签名信息(相当于实施例1中的第二信息)、密钥对A的公钥(相当于实施例1中的第一公钥)、固件信息和固件信息的签名信息(相当于实施例1中的第一信息)。
系统在加载可拔插光模块中的固件文件时,会对固件信息进行签名认证,验证固件文件是否被篡改,下面将以系统上电时,开机引导程序boot对固件文件进行验证为例进行具体流程说明,如图5所示,具体包括:
在步骤401中,boot读取可拔插光模块的Flash存储区中的固件文件,从中获取第二信息,然后从boot的代码中读取密钥对B的公钥(相当于实施例1中的第二公钥),认证第二信息,即使用密钥对B中的公钥解密,从而得到第一公钥相关信息S1。
在步骤402中,boot读取Flash中的第一公钥,然后使用摘要算法,对第一公钥计算摘要,得到第一公钥摘要结果S2。
在步骤403中,boot比较S1和S2的值是否一致,如果不一致,则说明第二信息被篡改,文件不可信,程序挂起,不执行后续操作。如果S1和S2的值一致,则说明第二信息未被篡改,程序完成了第一层认证,程序继续往下执行。
在步骤404中,boot读取Flash中的第一信息,并使用第一公钥认证第一信息,即使用第一密钥对中的第一公钥对第一信息解密,从而得到固件信息相关信息S3。
在步骤405中,boot读取Flash中固件信息,然后用摘要算法,对固件信息计算摘要,得到固件信息摘要结果S4。
在步骤406中,boot比较S3和S4的值是否一致,如果不一致,则说明固件信息被篡改,固件文件不可信,程序挂起,不执行后续操作。如果比较得到S3和S4的值一致,则说明固件文件可信,程序完成第二层认证,程序继续执行后续流程,如加载固件信息,以载入固件。
实施例3:
在实际使用情况中,所述固件文件通常是与外接设备配合使用的,固件文件被篡改或外接设备不是有效的设备,均可能导致固件文件无法按照预期执行,为了解决此问题,还对外接设备进行认证,结合实施例1,本实施例还提出了一种优选的固件文件的执行方法。
所述固件文件的执行方法基于实施例1或实施例2所述的固件文件的执行方法实现,且在所述读取外接设备中的固件文件前,所述方法还包括:
所述主机根据用户证书对所述外接设备的设备证书和设备私钥进行认证,以对所述外接设备进行认证,其中,所述外接设备由所述设备制造商生产得到。
其中,所述用户证书由消费用户传输给主机。且根据外接设备的不同,所述对所述外接设备进行认证可以是在固件文件执行前,或在固件文件执行后,当外接设备中的设备证书和设备私钥的读取依赖于固件时,即固件程序被加载后,才能够通过固件程序读取设备证书和设备私钥时,则先认证固件文件,若认证得到固件文件未被篡改,再在加载固件后,继续对外接设备进行认证,若认证得到固件文件被篡改,则不加载固件,并不对外接设备进行认证。若认证得到外接设备有效,则载入所述外接设备,否则,若认证得到外接设备无效,不载入所述外接设备。
当外接设备中的设备证书和设备私钥的读取不依赖于固件时,所述外接设备的认证即可在固件文件执行前,也可在固件文件执行后。如当在固件文件执行前,对外接设备进行认证时,若认证得到外接设备有效,则读取外接设备中的固件文件,并对固件文件进行验证;若认证得到外接设备无效,则不读取外接设备中的固件文件。
其中,所述外接设备的存储区中存储有设备证书和设备密钥对中的设备私钥,所述设备证书的生成过程具体为:
所述外接设备至少涉及设备制造商、消费用户和外接设备,其中,外接设备由所述设备制造商生产得到,如图6所示,具体的:
在步骤501中,设备制造商获取由消费用户签发的设备商证书;其中,所述设备商证书由第一证书主体和第一证书签名共同生成,所述第一证书主体由设备商标识和设备商密钥对中的设备商公钥构成,所述第一证书签名由所述消费用户的用户证书对所述第一证书主体签发得到;所生成的设备商证书如图7所示。
其中,所述设备制造商可能为一个或多个,所述设备商标识可以是设备制造商的厂商信息。所述外接设备可能为一个或多个。在本实施例的认证生成过程中主要涉及三方主体,包括消费用户、设备制造商和外接设备,一个消费用户对应一个或多个用户证书,一个设备制造商对应一个或多个设备商密钥对。所述设备商密钥对是由设备制造商使用非对称加密算法预先生成的。所述非对称加密算法具有多种,包括RSA、ECDSA、ECC、AES和SM2等。
消费用户自身生成一个无需签发或经自身进行签发的用户证书,所述用户证书的生成具有多种方式,举例而言:
第一种方式,以任意自定义的字符串作为用户证书。
第二种方式,所述消费用户生成用户密钥对,以用户标识和用户密钥对中的用户公钥构成所述用户证书的证书主体,并使用用户密钥对中的用户私钥对所述用户证书的证书主体进行签发得到证书签名,所述用户证书的证书主体和证书签名共同构成所述用户证书。
所述用户证书是所有设备商证书和设备证书验证有效性的最根本依据。
每个设备制造商对应一个或多个设备商证书,所述设备制造商将将自身的设备商标识和设备商公钥(即上述的第一证书主体)发送给消费用户,向消费用户请求设备商证书,消费用户根据所述设备商标识验证所述设备商为合法设备商后,生成设备商证书。若验证所述设备商不合法,则不生成设备商证书。
其中,所述第一证书签名由消费用户的用户证书对所述第一证书主体签发得到,其一种可选的实施方式具体为:计算所述第一证书主体的摘要,使用用户私钥对计算得到的摘要进行加密得到第一证书签名。计算摘要的方法有多种,包括MD4、MD5、SHA-1、SHA-256、SHA-384和SHA-512等。
在步骤502中,所述设备制造商还获取外接设备的设备标识,以所述设备商证书、外接设备的设备标识以及设备密钥对中的设备公钥构成第二证书主体,并使用所述设备商密钥对中的设备商私钥对所述第二证书主体进行签发得到第二证书签名,由所述第二证书主体和第二证书签名共同生成设备证书;所生成的设备证书如图8所示。
每个外接设备对应一个设备证书,由对应制造所述外接设备的设备制造商生成。每个外接设备还对应一设备密钥对,由设备制造商预先生成。每个设备具有唯一的设备标识。所述设备标识是由所述设备制造商从相应设备中获取的。
其中,在设备制造商获取外接设备的设备标识后,设备制造商还根据所述设备标识验证所述外接设备是否为合法的外接设备,若合法,则生成设备证书,否则,不生成设备证书。
在步骤503中,将所述设备证书和设备密钥对中的设备私钥烧写至所述外接设备的存储区中;所述用户证书由消费用户传输给主机,以便于安装所述外接设备的主机完成所述外接设备的认证过程。
在本实施例中,所述消费用户可理解为设备生产认证流程的管理方,其具有管理外接设备是否合法、设备商是否合法的绝对权限。举例而言,所述消费用户可以是主机的使用方、售卖方或制造方,且所述消费用户还作为委托商委托所述设备制造商制造所述主机可用的外接设备,设备制造商制造外接设备的权限控制在消费用户手中,若消费用户不向设备制造商提供有效的设备商证书,则设备制造商无法生成有效的设备证书,从而无法生成得到有效的设备。或消费用户不向主机传输有效的用户证书,则无法进行所述外接设备的有效认证,设备无法被安装至所述主机上。
本实施例通过消费用户、设备商、外接设备三方的交互,为外接设备生成对应的设备证书,使在向主机插入外接设备时,能够通过设备证书对外接设备进行认证,识别被篡改的或不合法的外接设备,从而确保外接设备的合法性和安全性,确保通信网络的整体安全性。
基于上述实施例中的外接设备,本实施例还针对如何对所述外接设备进行认证提供了一套具体的实施方式,即所述以便于安装所述外接设备的主机完成所述外接设备的认证过程,如图9所示,具体包括:
在步骤601中,主机从所述设备证书中获取设备商证书,并从设备商证书中获取第一证书签名,使用用户证书验证所述第一证书签名的有效性。
在步骤602中,在验证得到所述第一证书签名的有效性通过后,从所述设备商证书中获取设备商密钥对中的设备商公钥,并从所述设备证书中获取第二证书签名,使用所述设备商公钥验证所述第二证书签名的有效性。
在步骤603中,在验证得到所述第二证书签名的有效性通过后,从所述设备证书中获取设备秘钥中的设备公钥,验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,若验证得到所述设备公钥与所述设备私钥相匹配,则完成所述外接设备的认证过程。
其中,所述验证所述第一证书签名的有效性实际是验证设备商证书是否有效,所述验证所述第二证书签名的有效性实际是验证设备证书是否有效。
所述主机和所述外接设备相匹配,举例而言,当所述外接设备为可拔插光模块时,所述主机可以是OLT设备。
在此还提供了使用用户证书验证所述第一证书签名的有效性的一种可选的实施方式,如图10所示,具体包括:
在步骤701中,主机获取所述设备商证书中的第一证书主体,并使用所述用户证书对所述第一证书主体进行签发得到签发结果。
在步骤702中,判断所述签发结果与所述第一证书签名是否一致,若所述签发结果与所述第一证书签名一致,则验证得到所述第一证书签名的有效性通过。
在上述用户证书的生成方式一或用户证书的生成方式二下,该实施方式均能够适用于第一证书签名有效性的认证的过程。
在此还针对上述用户证书的生成方式二,提供另一种可选的实施方式,具体包括:
主机获取所述设备商证书中的第一证书签名,并获取所述用户证书中的用户公钥,使用所述用户公钥对所述第一证书签名进行解密得到解密结果。
所述主机还获取所述设备商证书中的第一证书主体,计算所述第一证书主体的摘要得到摘要结果。
判断所述摘要结果与所述解密结果是否一致,若所述摘要结果与所述解密结果一致,则验证得到所述第一证书签名的有效性通过。
在验证得到第一证书签名与第二证书签名的有效性通过后,还需验证设备密钥对的有效性,本实施例提供了一种可选的实施方式,如图11所示,所述验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,具体包括:
在步骤801中,主机向外接设备发送生成的随机数,并获取所述外接设备根据所述设备私钥对所述随机数进行加密所得到的加密结果。
在步骤802中,所述主机使用所述设备公钥对所述加密结果进行解密得到解密结果,判断所述解密结果与所述随机数是否一致。
在步骤803中,若所述解密结果与所述随机数一致,则验证得到所述设备公钥与所述设备私钥相匹配。
其中,作为一种可选的实施方式,在步骤801中,主机向外接设备发送生成的随机数还可以是发送随机数的哈希值,与此相对应的,在步骤802中,判断所述解密结果与所述随机数的哈希值是否一致;在步骤803中,若所述解密结果与所述随机数的哈希值一致,则验证得到所述设备公钥与所述设备私钥相匹配。
本实施例通过设备与固件的双重认证,确保载入的固件文件和外接设备的安全性。
本实施例中的“第一”、“第二”和“第三”没有特殊的限定的含义,之所以用其做描述仅仅是为了方便在一类对象中差异出不同的个体进行表述,不应当将其作为顺序或者其他方面带有特殊限定含义解释。
实施例4:
相较于实施例3中将设备商证书直接置入设备证书内的实施方式,本实施例还提供了另一种实施方式,即不将设备商证书置入设备证书内,而是由消费用户将设备商证书传输至主机。
所述主机根据用户证书和设备商证书对所述外接设备的设备证书和设备私钥进行认证,以对所述外接设备进行认证,其中,所述外接设备由所述设备制造商生产得到。
其中,所述用户证书和所述设备商证书由消费用户传输给主机。
所述外接设备至少涉及设备制造商、消费用户和外接设备,其中,外接设备由所述设备制造商生产得到,如图12所示,具体包括:
在步骤901中,设备制造商获取由消费用户签发的设备商证书;其中,所述设备商证书由第一证书主体和第一证书签名共同生成,所述第一证书主体由设备商标识和设备商密钥对中的设备商公钥构成,所述第一证书签名由所述消费用户的用户证书对所述第一证书主体签发得到。
在步骤902中,所述设备制造商还获取外接设备的设备标识,以所述外接设备的设备标识以及设备密钥对中的设备公钥构成第二证书主体,并使用所述设备商密钥对中的设备商私钥对所述第二证书主体进行签发得到第二证书签名,由所述第二证书主体和第二证书签名共同生成设备证书;所生成的设备证书如图13所示。
在步骤903中,将所述设备证书和设备密钥对中的设备私钥烧写至所述外接设备的存储区中;所述用户证书和设备商证书由消费用户传输给主机,以便于安装所述外接设备的主机完成所述外接设备的认证过程。
设备商证书以及用户证书的生成过程与实施例1基于同一构思,在此不再赘述。
但与实施例1不同的是,本实施例在生成设备证书时,以设备公钥和设备标识作为第二证书主体,而并未将设备商证书置于其中,再使用设备商私钥对所述第二证书主体签发得到第二证书签名,从而生成设备证书。
同时,设备商证书由消费用户传输给主机,由此带来不同的认证过程。
所述以便于安装所述外接设备的主机完成所述外接设备的认证过程,如图14所示,具体包括:
在步骤1001中,主机从设备商证书中获取第一证书签名,并使用用户证书验证所述第一证书签名的有效性。
在步骤1002中,在验证得到所述第一证书签名的有效性通过后,从所述设备商证书中获取设备商密钥对中的设备商公钥,并从所述设备证书中获取第二证书签名,使用所述设备商公钥验证所述第二证书签名的有效性。
在步骤1003中,在验证得到所述第二证书签名的有效性通过后,从所述设备证书中获取设备秘钥中的设备公钥,验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,若验证得到所述设备公钥与所述设备私钥相匹配,则完成所述外接设备的认证过程。
在进行认证时,由于设备商证书以预先由消费用户传输至主机,故可直接从设备商证书中提取第一证书签名,并进行后续认证。
所述验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,具体包括:
主机向外接设备发送生成的随机数,并获取所述外接设备根据所述设备私钥对所述随机数进行加密所得到的加密结果。
所述主机使用所述设备公钥对所述加密结果进行解密得到解密结果,判断所述解密结果与所述随机数是否一致。
若所述解密结果与所述随机数一致,则验证得到所述设备公钥与所述设备私钥相匹配。
其中,作为一种可选的实施方式,主机向外接设备发送生成的随机数还可以是发送随机数的哈希值,与此相对应的,在进行认证时,判断所述解密结果与所述随机数的哈希值是否一致;若所述解密结果与所述随机数的哈希值一致,则验证得到所述设备公钥与所述设备私钥相匹配。
本实施例提供了一种验证第一证书签名有效性的可选的实施方式,即所述使用用户证书验证所述第一证书签名的有效性,具体包括:
主机获取所述设备商证书中的第一证书主体,并使用所述用户证书对所述第一证书主体进行签发得到签发结果。
判断所述签发结果与所述第一证书签名是否一致,若所述签发结果与所述第一证书签名一致,则验证得到所述第一证书签名的有效性通过。
根据外接设备的不同,所述对所述外接设备进行认证可以是在固件文件执行前,或在固件文件执行后,当外接设备中的设备证书和设备私钥的读取依赖于固件时,即固件程序被加载后,才能够通过固件程序读取设备证书和设备私钥时,则先认证固件文件,若认证得到固件文件未被篡改,再在加载固件后,继续对外接设备进行认证,若认证得到固件文件被篡改,则不加载固件,并不对外接设备进行认证。若认证得到外接设备有效,则载入所述外接设备,否则,若认证得到外接设备无效,不载入所述外接设备。
当外接设备中的设备证书和设备私钥的读取不依赖于固件时,所述外接设备的认证即可在固件文件执行前,也可在固件文件执行后。如当在固件文件执行前,对外接设备进行认证时,若认证得到外接设备有效,则执行固件文件,若认证得到外接设备无效,则不执行固件文件。使通过设备与固件的双重认证,确保最终载入的固件文件和外接设备的安全性。所述固件文件的执行方法在实施例1及实施例2中已有详细阐述,在此不加以赘述。
本实施例不将设备商证书置入设备证书内,而是由消费用户将设备商证书传输至主机,相对于实施例1,本实施例更适用于消费用户与主机之间的设备商证书传输是完全安全的场景,如消费用户即为主机的制造商时,无需将设备商证书置入设备证书中,而是通过直接传输设备商证书至主机,在简化认证生成流程的同时,也能够确保认证生成过程的安全性。
实施例5:
本发明基于实施例3和实施例4所描述的方法基础上,结合具体的应用场景,并借由相关场景下的技术表述来阐述本发明特性场景下的实现过程。
以实施例3为例,如存在一可拔插光模块,此可拔插光模块由设备制造商V制造生产,用于插入相应OLT设备中,且可拔插光模块中存储有固件文件,该OLT设备由消费用户C制造生产,则在此场景中,所述外接设备为可拔插光模块,主机为OLT设备。
所述可拔插光模块中的认证生成方法如图15所示,具体包括:
在步骤1101中,设备制造商V生成设备商密钥对,包括设备商公钥V_Key_Pubic,和设备商私钥V_Key_Private。
在步骤1102中,设备制造商V将设备商公钥V_Key_Public和厂商信息(相当于实施例3中的设备商标识)发送给消费用户C,请求设备商证书。
在步骤1103中,消费用户C用为设备制造商V生成未签发的设备商证书,其中包括设备商公钥和厂商信息,并使用用户证书进行签发得到设备商证书Cert_V。
在步骤1104中,消费用户C将设备商证书Cert_V发送给设备制造商V。
在步骤1105中,设备制造商V为每台可拔插光模块生成设备密钥对,包括设备公钥Dev_Key_Pubic和设备私钥Dev_Key_Private。
在步骤1106中,设备制造商V为每台可拔插光模块生成未签发的设备证书,其中包含设备的唯一安全标识(相当于实施例3中的设备标识)、设备公钥Dev_Key_Public以及已生成的设备商证书Cert_V;并使用设备商私钥对其进行签发得到签发后的设备证书Cert_Dev。
在步骤1107中,设备制造商V将设备私钥Dev_Key_Private和设备证书Cert_Dev烧写到外接设备的设备安全存储区,如写入至只读存储器ROM(Read-only memory)中,待可拔插光模块进行拔插时进行可拔插光模块的认证过程。
同时,消费用户C将用户证书传输给OLT设备,以用于可拔插光模块的认证。
将所述可拔插光模块插入OLT设备时,所述OLT设备从所述可拔插光模块中读取固件文件,并验证所述固件文件是否被篡改,其中,读取固件文件,并验证所述固件文件是否被篡改的具体实施方式已在实施例1和实施例2中进行详细描述,在此不加以赘述。
若固件文件未被篡改,则根据所述固件信息载入固件,启动固件程序,使用所述固件程序对可拔插光模块进行认证。若验证得到固件被篡改,则不载入固件,且拒绝载入所述可拔插光模块。
所述可拔插光模块的认证,如图16所示,具体包括:
在步骤1201中,当可拔插光模块插入OLT设备时,OLT设备从可拔插光模块中获取设备证书Cert_Dev。
在步骤1202中,OLT设备从设备证书Cert_Dev中提取设备商证书,使用用户证书验证设备商证书的有效性;若验证有效,则使用设备商证书中的设备商公钥验证设备证书的有效性;若验证得到设备商证书无效或验证得到设备证书无效,则判定设备为非法设备,流程结束,OLT设备不载入所述可拔插光模块;若验证得到设备商证书和设备证书均有效,则从设备证书中提取出设备公钥Dev_Key_Public。
在步骤1203中,OLT设备产生随机数Rand,将随机数Rand发送给可拔插光模块。
在步骤1204中,可拔插光模块用设备私钥Dev_Key_Private对Rand加密,并将加密结果Rand_sign发送给OLT设备。
在步骤1205中,OLT设备用Dev_Key_Public解密Rand_sign得到Rand_a;比较Rand和Rand_a是否相等,如果相等则判定可拔插光模块为合法设备,如果相等则判定可拔插光模块为合法设备,接受可拔插光模块的载入,否则,判定可拔插光模块为非法设备,拒绝载入所述可拔插光模块。
而基于实施例4的基础上,同样以可拔插光模块为例,如图17所示,可拔插光模块中的认证生产方法同样执行上述步骤1101-步骤1105,再进入步骤1106’,接着执行步骤1107。
在步骤1106’中,设备制造商V为每台可拔插光模块生成未签发的设备证书,其中包含设备的唯一安全标识(相当于实施例3中的设备标识)和设备公钥Dev_Key_Public;并使用设备商私钥对其进行签发得到签发后的设备证书Cert_Dev。
同时,消费用户C将用户证书和设备商证书传输给OLT设备,以用于可拔插光模块的认证。在进行可拔插光模块认证时,如图18所示,执行上述步骤1201,再执行步骤1202’,接着执行步骤1203-步骤1205。
在步骤1202’中,OLT设备根据自身存储的设备商证书,使用用户证书验证设备商证书的有效性;若验证有效,则使用设备商证书中的设备商公钥验证设备证书的有效性;若验证得到设备商证书无效或验证得到设备证书无效,则判定设备为非法设备,流程结束,OLT设备不载入所述可拔插光模块;若验证得到设备商证书和设备证书均有效,则从设备证书中提取出设备公钥Dev_Key_Public,继续进行后续认证。
实施例6:
基于实施例1-实施例5的基础上,本实施例将进一步将实施例1与实施例3或实施例4深度融合,即对设备商密钥对进行复用,以设备商密钥对作为固件文件的第二密钥对使用,由此形成的固件文件的执行方法,具体包括:
在引导程序检测到外接设备时,读取外接设备中的固件文件,验证固件文件是否被篡改,其中,固件文件中至少包括固件信息、由第一密钥对中的第一私钥对固件信息签名后的第一信息、第一密钥对中的第一公钥。以及由设备商密钥对中的设备商私钥对第一密钥对中的第一公钥进行签名后的第二信息,则如图19所示,验证固件文件是否被篡改具体包括:
在验证固件文件是否被篡改前,验证外接设备的有效性,若验证得到外接设备合法,则从设备商证书中取出设备商公钥,其中,当基于实施例3进行实现时,所述设备商证书包含于设备证书中,所述设备证书存储于外接设备的存储区中,所述设备商证书由在进行外接设备的认证时,从设备证书中读取得到。
当基于实施例4进行实现时,所述设备商证书由消费用户传输至主机,故所述设备商证书能够直接被主机读取得到。
在步骤1301中,主机使用设备商公钥解密第二信息得到第一公钥相关信息,并将所述第一公钥相关信息与固件文件中直接携带的第一公钥进行匹配,两者一致则第一轮验证通过。
在步骤1302中,在第一轮验证通过后,使用第一密钥对中的第一公钥对第一信息解密,得到固件信息相关信息,并将所述固件信息相关信息与固件文件中直接携带的固件信息进行匹配,两者一致则验证得到固件文件未被篡改,执行相应固件文件。
本实施例通过设备商密钥对的复用,使外接设备与固件文件之间关联更紧密,使未置于外接设备中的固件文件无法得到有效验证,确保固件文件读取的安全性。
在实际使用情况中,由于固件文件是置于外接设备中,在使用时,由主机载入固件信息,作为软件部分,同时使用外接设备的硬件部分,由软件部分和硬件部分共同配合实现固件功能,而随着外接设备和固件文件的迭代更新,可能会出现一些版本的固件文件无法与一些旧的外接设备兼容,为了解决此问题,作为进一步优选的实施方式,将实施例1中的关系二与本实施例相结合,所述关系二为每一版本的固件公用一份第二密钥对,在本实施例中,则表现为:
设备商根据所需生产的外接设备所需要的固件文件版本,生成多对设备商密钥对,每一对设备商密钥对对应一个版本的固件文件,使用相应的设备商密钥对请求设备商证书,使每一个版本的固件文件对应唯一的设备商证书。
在生成设备商证书后,保持外接设备的认证生成过程,与固件文件的生成过程相互独立,即外接设备根据其所需的固件文件版本,使用对应的设备商密钥对中的设备商私钥对第二证书主体进行签发得到第二证书签名,由所述第二证书主体和第二证书签名共同生成设备证书。
根据固件信息的版本信息所对应的设备商密钥对中的设备商私钥对第一密钥对中的第一公钥进行签名,得到第二信息,生成对应的固件文件。将固件文件写入外接设备。
举例而言,存在一外接设备P,所需的固件版本为v1,所对应的设备商密钥对为A,使用设备商密钥对A生产外接设备,即外接设备中的设备证书是由设备商密钥对A的私钥进行签发得到的,在对其进行认证时,需使用设备商密钥对A的公钥。
而存在一固件信息V,版本为v2,所对应的设备商密钥对为B,使用设备商密钥对B生成固件文件,即固件文件中的第二信息是由设备商密钥对B的私钥进行签发得到的,在对其进行认证时,需使用设备商密钥对B的公钥。
若在生成过程中,误将固件信息V写入外接设备P,则若需要使固件信息V和外接设备P均认证通过,至少需要设备商密钥对A的公钥和设备商密钥对B的公钥,而在对固件文件进行认证与对外接设备进行认证时均使用同一设备商证书,故仅存在一份设备商公钥,无法同时满足固件文件和外接设备的认证有效性的通过条件,从而能够避免版本不正确的固件文件被执行载入,从而确保网络通信的正常运行。
实施例7:
如图20所示,是本发明实施例的固件文件的执行装置的架构示意图。本实施例的固件文件的执行装置包括一个或多个处理器21以及存储器22。其中,图20中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图20中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的固件文件的执行方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行固件文件的执行方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的固件文件的执行方法,例如,执行以上描述的图1、图4-图6、图9-图12以及图14-图19所示的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种固件文件的执行方法,其特征在于,所述执行方法包括:
在引导程序检测到外接设备时,读取外接设备中的固件文件,验证固件文件是否被篡改,其中,固件文件中至少包括固件信息、由第一密钥对中的第一私钥对固件信息签名后的第一信息、第一密钥对中的第一公钥,以及由第二密钥对中的第二私钥对第一密钥对中的第一公钥进行签名后的第二信息,则验证固件文件是否被篡改具体包括:
主机使用第二密钥对中的第二公钥解密第二信息得到第一公钥相关信息,并将所述第一公钥相关信息与固件文件中直接携带的第一公钥进行匹配,两者一致则第一轮验证通过;
在第一轮验证通过后,使用第一密钥对中的第一公钥对第一信息解密,得到固件信息相关信息,并将所述固件信息相关信息与固件文件中直接携带的固件信息进行匹配,两者一致则验证得到固件文件未被篡改,执行相应固件文件。
2.根据权利要求1所述的固件文件的执行方法,其特征在于,所述第一密钥中的第一公钥相关信息具体为所述第一密钥中的第一公钥经过摘要算法处理后的结果;
所述固件信息相关信息具体为所述固件信息经过摘要算法处理后的结果。
3.根据权利要求2所述的固件文件的执行方法,其特征在于,所述将所述第一公钥相关信息与固件文件中直接携带的第一公钥进行匹配具体为,对所述固件文件中直接携带的第一公钥计算得到第一公钥摘要结果,将所述第一公钥摘要结果与所述第一公钥相关信息进行匹配;
所述将所述固件信息相关信息与固件文件中直接携带的固件信息进行匹配具体为,对所述固件文件中直接携带的固件信息计算得到固件信息摘要结果,将所述固件信息相关信息与所述固件信息摘要结果进行匹配。
4.根据权利要求1-3任一所述的固件文件的执行方法,其特征在于,所述外接设备包括可拔插的光模块设备、芯片的片上存储空间和其他适用于刀片服务器上的可拔插器件中的至少一种;其中,可拔插的光模块设备还包括SFP封装、QSFP封装、QSFP-DD封装和OSFP封装的光模块中的至少一种。
5.一种固件文件的执行方法,其特征在于,基于权利要求1-4任一所述的固件文件的执行方法,所述执行方法还包括:
所述主机根据用户证书对所述外接设备的设备证书和设备私钥进行认证,以对所述外接设备进行认证,其中,所述外接设备由所述设备制造商生产得到;
其中,所述外接设备的存储区中存储有设备证书和设备密钥对中的设备私钥,所述设备证书的生成过程具体为:设备制造商获取由消费用户签发的设备商证书;所述设备商证书由第一证书主体和第一证书签名共同生成,所述第一证书主体由设备商标识和设备商密钥对中的设备商公钥构成,所述第一证书签名由所述消费用户的用户证书对所述第一证书主体签发得到;
所述设备制造商还获取外接设备的设备标识,以所述设备商证书、外接设备的设备标识以及设备密钥对中的设备公钥构成第二证书主体,并使用所述设备商密钥对中的设备商私钥对所述第二证书主体进行签发得到第二证书签名,由所述第二证书主体和第二证书签名共同生成设备证书。
6.根据权利要求5所述的固件文件的执行方法,其特征在于,所述主机根据用户证书对所述外接设备的设备证书和设备私钥进行认证,具体包括:
主机从所述设备证书中获取设备商证书,并从设备商证书中获取第一证书签名,使用用户证书验证所述第一证书签名的有效性;
在验证得到所述第一证书签名的有效性通过后,从所述设备商证书中获取设备商密钥对中的设备商公钥,并从所述设备证书中获取第二证书签名,使用所述设备商公钥验证所述第二证书签名的有效性;
在验证得到所述第二证书签名的有效性通过后,从所述设备证书中获取设备秘钥中的设备公钥,验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,若验证得到所述设备公钥与所述设备私钥相匹配,则完成所述外接设备的认证过程。
7.根据权利要求6所述的固件文件的执行方法,其特征在于,所述验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,具体包括:
主机向外接设备发送生成的随机数,并获取所述外接设备根据所述设备私钥对所述随机数进行加密所得到的加密结果;
所述主机使用所述设备公钥对所述加密结果进行解密得到解密结果,判断所述解密结果与所述随机数是否一致;若所述解密结果与所述随机数一致,则验证得到所述设备公钥与所述设备私钥相匹配。
8.根据权利要求6所述的固件文件的执行方法,其特征在于,所述使用用户证书验证所述第一证书签名的有效性,具体包括:
主机获取所述设备商证书中的第一证书主体,并使用所述用户证书对所述第一证书主体进行签发得到签发结果;
判断所述签发结果与所述第一证书签名是否一致,若所述签发结果与所述第一证书签名一致,则验证得到所述第一证书签名的有效性通过。
9.一种固件文件的执行方法,其特征在于,基于权利要求1-4任一所述的固件文件的执行方法,所述执行方法还包括:
所述主机根据用户证书和设备商证书对所述外接设备的设备证书和设备私钥进行认证,以对所述外接设备进行认证,其中,所述外接设备由所述设备制造商生产得到;
其中,设备制造商的设备商证书由消费用户签发得到,具体的,所述设备商证书由第一证书主体和第一证书签名共同生成,所述第一证书主体由设备商标识和设备商密钥对中的设备商公钥构成,所述第一证书签名由所述消费用户的用户证书对所述第一证书主体签发得到;
其中,所述外接设备的存储区中存储有设备证书和设备密钥对中的设备私钥,所述设备证书的生成过程具体为:所述设备制造商还获取外接设备的设备标识,以所述外接设备的设备标识以及设备密钥对中的设备公钥构成第二证书主体,并使用所述设备商密钥对中的设备商私钥对所述第二证书主体进行签发得到第二证书签名,由所述第二证书主体和第二证书签名共同生成设备证书。
10.根据权利要求9所述的固件文件的执行方法,其特征在于,所述主机根据用户证书和设备商证书对所述外接设备的设备证书和设备私钥进行认证,具体包括:
主机从设备商证书中获取第一证书签名,使用用户证书验证所述第一证书签名的有效性;
在验证得到所述第一证书签名的有效性通过后,从所述设备商证书中获取设备商密钥对中的设备商公钥,并从所述设备证书中获取第二证书签名,使用所述设备商公钥验证所述第二证书签名的有效性;
在验证得到所述第二证书签名的有效性通过后,从所述设备证书中获取设备秘钥中的设备公钥,验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,若验证得到所述设备公钥与所述设备私钥相匹配,则完成所述外接设备的认证过程。
11.根据权利要求10所述的固件文件的执行方法,其特征在于,所述验证所述设备公钥与外接设备的存储区中的设备私钥是否匹配,具体包括:
主机向外接设备发送生成的随机数,并获取所述外接设备根据所述设备私钥对所述随机数进行加密所得到的加密结果;
所述主机使用所述设备公钥对所述加密结果进行解密得到解密结果,判断所述解密结果与所述随机数是否一致;
若所述解密结果与所述随机数一致,则验证得到所述设备公钥与所述设备私钥相匹配。
12.根据权利要求10所述的固件文件的执行方法,其特征在于,所述使用用户证书验证所述第一证书签名的有效性,具体包括:
主机获取所述设备商证书中的第一证书主体,并使用所述用户证书对所述第一证书主体进行签发得到签发结果;
判断所述签发结果与所述第一证书签名是否一致,若所述签发结果与所述第一证书签名一致,则验证得到所述第一证书签名的有效性通过。
13.一种固件文件的执行装置,其特征在于,所述执行装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-12任一所述的固件文件的执行方法。
CN202211240309.9A 2022-10-11 2022-10-11 一种固件文件的执行方法和装置 Pending CN115643060A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211240309.9A CN115643060A (zh) 2022-10-11 2022-10-11 一种固件文件的执行方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211240309.9A CN115643060A (zh) 2022-10-11 2022-10-11 一种固件文件的执行方法和装置

Publications (1)

Publication Number Publication Date
CN115643060A true CN115643060A (zh) 2023-01-24

Family

ID=84945123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211240309.9A Pending CN115643060A (zh) 2022-10-11 2022-10-11 一种固件文件的执行方法和装置

Country Status (1)

Country Link
CN (1) CN115643060A (zh)

Similar Documents

Publication Publication Date Title
JP4067985B2 (ja) アプリケーション認証システムと装置
EP2659373B1 (en) System and method for secure software update
JP5079803B2 (ja) ゲーム装置を認証するシステムおよび方法
KR100657532B1 (ko) 전자 장치 보안 방법, 보안 시스템 및 전자 장치
CN109639427B (zh) 一种数据发送的方法及设备
US20210012008A1 (en) Method of initializing device and method of updating firmware of device having enhanced security function
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
JP6371919B2 (ja) セキュアなソフトウェアの認証と検証
TW201732669A (zh) 受控的安全碼鑑認
US20160344704A1 (en) Method and decision gateway for authorizing a function of an embedded control unit
KR20060094171A (ko) 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
CN103269271A (zh) 一种备份电子签名令牌中私钥的方法和系统
CN110795126A (zh) 一种固件安全升级系统
US10282549B2 (en) Modifying service operating system of baseboard management controller
JP2009175923A (ja) プラットフォーム完全性検証システムおよび方法
JP2017157018A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及びトラステッド・プラットフォーム・モジュール
CN109218025A (zh) 方法、安全装置和安全系统
CN111162911A (zh) 一种plc固件升级系统及方法
CN111177709A (zh) 一种终端可信组件的执行方法、装置及计算机设备
CN111147259B (zh) 鉴权方法和设备
JP5183517B2 (ja) 情報処理装置及びプログラム
CN109508529B (zh) 一种支付终端安全启动校验的实现方法
KR20070059891A (ko) 어플리케이션 인증 보안 시스템 및 그 인증 보안 방법
US20140230052A1 (en) System and method for testing a secured manufactured device
CN116561734A (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