CN116776311A - 分级验证启动方法和装置 - Google Patents
分级验证启动方法和装置 Download PDFInfo
- Publication number
- CN116776311A CN116776311A CN202310792054.5A CN202310792054A CN116776311A CN 116776311 A CN116776311 A CN 116776311A CN 202310792054 A CN202310792054 A CN 202310792054A CN 116776311 A CN116776311 A CN 116776311A
- Authority
- CN
- China
- Prior art keywords
- primary
- certificate
- verified
- verifying
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012795 verification Methods 0.000 title claims abstract description 46
- 230000000977 initiatory effect Effects 0.000 claims abstract description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请涉及终端设备安全启动领域,尤其涉及一种分级验证启动方法和装置。一种分级验证启动方法,所述方法包括:加载待验证启动镜像;验证所述待验证启动镜像中一级密钥的可信性,所述一级密钥由客户厂商生成,并由原厂商授权;当确定所述一级密钥可信时,通过所述一级密钥验证所述待验证启动镜像中程序镜像文件的可信性;当确定所述程序镜像文件可信时,根据所述程序镜像文件验证所述待验证启动镜像的可信性;当所述待验证启动镜像可信时,基于所述待验证启动镜像执行启动。
Description
【技术领域】
本申请涉及终端设备安全启动领域,尤其涉及一种分级验证启动方法和装置。
【背景技术】
如果电子设备启动了被恶意植入脚本或病毒的非可信来源的操作系统,则会被操作系统内的恶意程序窃取隐私,造成隐私泄露,危害用户信息、财产安全。
因此需要在电子设备启动操作系统时对操作系统进行安全校验。但是在相关技术中,产品版本发布时,在原厂商和客户之间,签名策略只能由一方来指定,无论由哪一方来指定,另外一方在不能获取到相应的安全策略和私钥的情况下均不能正常进行升级和启动。一旦产品出现了复杂问题,两方又有需要互相协助调试的需求,采用共享私钥的方式很明显是非常不安全的。
【发明内容】
本发明实施例提供了一种分级验证启动方法和装置,用以解决现有技术中在未掌握对方私钥的情况下,无法正常执行终端设备系统启动和升级的问题。
第一方面,本发明实施例提供了一种分级验证启动方法,所述方法包括:
加载待验证启动镜像;
验证所述待验证启动镜像中一级密钥的可信性,所述一级密钥由客户厂商生成,并由原厂商授权;
当确定所述一级密钥可信时,通过所述一级密钥验证所述待验证启动镜像中程序镜像文件的可信性;
当确定所述程序镜像文件可信时,根据所述程序镜像文件验证所述待验证启动镜像的可信性;
当所述待验证启动镜像可信时,基于所述待验证启动镜像执行启动。
可选的,所述验证所述待验证启动镜像中一级密钥的可信性,包括:
通过一次性可编程存储器OTP验证所述待验证启动镜像中,一级证书的可信性;
当所述一级证书可信时,通过所述一级证书验证所述一级密钥的可信性。
可选的,所述通过一次性可编程存储器OTP验证所述待验证启动镜像中,一级证书的可信性,包括:
通过OTP验证所述一级证书中的根公钥;
当所述根公钥可信时,通过所述根公钥验证所述一级证书的签名域;
当所述一级证书的签名域可信时,确定所述一级证书可信。
可选的,所述通过OTP验证所述一级证书中的根公钥,包括:
确定所述OTP中存储的根公钥的第一哈希值,所述第一哈希值由原厂商预存在所述OTP中;
计算所述一级证书中所存储根公钥的第二哈希值;
当所述第一哈希值与所述第二哈希值一致时,确定所述根公钥可信。
可选的,所述通过所述根公钥验证所述一级证书的签名域,包括:
通过所述根公钥对所述一级证书的签名值进行验签;
当所述签名值的验签结果与签名域中的签名内容一致时,确定所述一级证书可信,所述一级证书签名域内的签名内容包括一级公钥的哈希值。
可选的,所述当所述一级证书可信时,通过所述一级证书验证所述一级密钥的可信性,包括:
确定所述一级证书签名域中储存的一级公钥的第三哈希值;
计算所述二级证书中所存储一级公钥的第四哈希值;
当所述第三哈希值与所述第四哈希值一致时,确定所述一级公钥可信。
可选的,所述当确定所述一级密钥可信时,通过所述一级密钥验证所述待验证启动镜像中程序镜像文件的可信性,包括:
通过所述一级密钥验证所述二级证书的可信性;
当所述二级证书可信时,确定所述二级证书中的程序镜像文件可信。
可选的,所述通过所述一级密钥验证所述二级证书的可信性,包括:
通过所述一级公钥对所述二级证书的签名值进行验签;
当所述签名值的验签结果与签名域中的签名内容一致时,确定所述二级证书可信,所述二级证书签名域内的签名内容包括所述程序镜像文件的第五哈希值。
可选的,所述当确定所述程序镜像文件可信时,根据所述程序镜像文件验证所述待验证启动镜像的可信性,包括:
计算所述待验证启动镜像的第六哈希值;
当所述第六哈希值与二级证书中所述程序镜像文件的第五哈希值一致时,确定所述程序镜像文件可信。
可选的,所述方法还包括:
验证所述待启动镜像中二级密钥的可信性;
当所述二级密钥可信时,通过所述二级密钥验证所述待验证启动镜像中的芯片配置参数;
当所述芯片配置参数可信时,基于所述芯片配置参数更改芯片的debug配置。
可选的,所述通过所述二级密钥验证所述待验证启动镜像中的芯片配置参数之后,所述方法还包括:
验证待启动镜像中三级密钥的可信性;
当所述三级密钥可信时,通过所述三级密钥验证所述待验证启动镜像中的芯片ID;
当所述芯片ID可信时,基于所述芯片配置参数和所述芯片ID更改特定芯片的debug配置。
第二方面,本发明实施例提供了一种分级验证启动装置,所述装置包括:
加载模块,加载待验证启动镜像;
第一验证模块,验证所述待验证启动镜像中一级密钥的可信性,所述一级密钥由客户厂商生成,并由原厂商授权;
第二验证模块,当确定所述一级密钥可信时,通过所述一级密钥验证所述待验证启动镜像中程序镜像文件的可信性;
第三验证模块,当确定所述程序镜像文件可信时,根据所述程序镜像文件验证所述待验证启动镜像的可信性;
启动模块,当所述待验证启动镜像可信时,基于所述待验证启动镜像执行启动。
第三方面,本发明实施例提供了一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面任一项所述的方法。
第四方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面任一项所述的方法。
通过上述方法,原厂商通过配置根密钥,对客户厂商生成的加密方式,即一级密钥进行授权,在客户厂商可以自行执行安全策略对程序镜像文件进行签名和验签的同时,仍能够保证原厂商拥有系统最高控制权限,使得原厂商在不拥有客户厂商所生成私钥的情况下,可以正常执行镜像文件的下载并执行启动。
【附图说明】
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种分级验证启动方法的流程图;
图2为本申请实施例提供的一种分级验证启动装置的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
【具体实施方式】
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
如果电子设备启动了被恶意植入脚本或病毒的非可信来源的操作系统,则会被操作系统内的恶意程序窃取隐私,造成隐私泄露,危害用户信息、财产安全。
因此需要在电子设备启动操作系统时对操作系统进行安全校验。但是在相关技术中,产品版本发布时,在原厂商和客户之间,签名策略只能由一方来指定,无论由哪一方来指定,另外一方在不能获取到相应的安全策略和私钥的情况下均不能正常进行升级和启动。一旦产品出现了复杂问题,两方又有需要互相协助调试的需求,采用共享私钥的方式很明显是非常不安全的。相关技术无法解决这个矛盾。
同时,对于待验证启动镜像的验证,可以通过一次性可编程存储器(One-Time-Programmable Memory,OTP)中存储的公钥来进行,但对后续操作系统镜像或其他镜像的验证,则需要存储在待验证启动镜像中的公钥来进行,这样就导致如果对后续镜像签名的安全策略有了变化,需要更改待验证启动镜像代码,一旦待验证启动镜像有了变化又需要重新对其进行签名,操作非常不方便。
如图1所示,为本发明实施例提供的一种分级验证启动方法的流程图,参见图1,该方法的具体步骤包括:
S101,加载待验证启动镜像。
具体的,从rom开始启动,从外部存储器中加载待验证启动镜像到处理器的内部ram中进行验证。
其中,待验证启动镜像中预存有预先配置的证书链,证书链中包含若干级证书。各级证书中均存有预设内容,如用于解签的公钥,以及用于对待验证启动镜像进行验证的程序镜像文件等。各级证书中还存有该证书的证书类型,以及与公钥、程序镜像文件相对应的公开密钥算法和哈希算法类型等。
每一级证书中均包含有签名域和非签名域。签名域由私钥进行签名加密,用于存储加密内容。当通过对应的公钥解密后,确定该级证书可信,可以获取签名域中加密储存的内容。
其中,待验证启动镜像一般为引导程序bootloader,外部存储器一般为flash。
S102,验证待验证启动镜像中一级密钥的可信性。
具体的,通过OTP验证待验证启动镜像中一级证书的可信性,并在一级证书可信时,通过一级证书验证一级密钥的可信性。
其中,原厂商使用公开密钥算法生成根密钥对。根密钥对包括根公钥和根私钥。将根公钥的哈希值存储在OTP中,由于OTP一旦被编程过后就无法再被修改,所以由原厂商直接在OTP中写入的根公钥的哈希值被认为是可信的。
客户厂商生成一级证书,并生成一级密钥对。一级密钥对包括一级公钥和一级私钥。一级证书中存储有根公钥、一级公钥的哈希值,以及证书类型、公开密钥算法和哈希算法类型等。将一级公钥的哈希值配置在一级证书的签名域内,并通过原厂商的根私钥对第一根证书的签名域进行签名,即对一级公钥的哈希值进行加密。
通过OTP验证一级证书中存储的根公钥,在根公钥可信时,通过根公钥验证一级证书的签名域。当一级证书的签名域可信时,可以确定一级证书可信,即在一级证书中存储的内容可信。
具体的,读取OTP中存储的根公钥的第一哈希值,并计算实际在一级证书中所存储根公钥的第二哈希值。对根公钥的第一哈希值和第二哈希值进行对比,由于确定第一哈希值是可信的,所以当第一哈希值与第二哈希值一致时,确定根公钥可信。
在确定根公钥可信后,通过根公钥对一级证书的签名值(signature)进行验签,得到验签结果。对一级证书签名域内的签名内容进行哈希计算,得到签名内容的哈希值。当验签结果与签名内容的哈希值一致时,则确定一级证书可信,即确定一级证书的签名域内的内容全部可信,即一级根公钥的哈希值可信。
当一级证书可信时,通过一级证书验证一级密钥的可信性。
具体的,证书链中还包括由客户厂商生成的二级证书。二级证书中存储有一级密钥对中的一级公钥、程序镜像文件的第五哈希值,以及对应的证书类型、公开密钥算法和哈希算法类型等。将程序镜像文件配置在二级证书的签名域内,并通过客户厂商生成的一级密钥对中的一级私钥,对二级证书的签名域进行签名,即对程序镜像文件的第五哈希值进行加密。
从验证后确定为可信的一级证书的签名域中,获取一级公钥的第三哈希值,并计算二级证书中所存储一级公钥的第四哈希值。对第三哈希值和第四哈希值进行比较,当第三哈希值与第四哈希值一致时,确定一级公钥可信。
S103,当确定一级密钥可信时,通过一级密钥验证待验证启动镜像中程序镜像文件的可信性。
具体的,通过一级密钥验证二级证书的可信性,当二级证书可信时,确定在二级证书签名域内存储的程序镜像文件可信。
其中,通过一级公钥对二级证书签名域的签名值进行验签,得到验签结果。对一级证书签名域内的签名内容进行哈希计算,得到签名内容的哈希值。当确定验签结果与签名内容的哈希值一致时,确定二级证书可信,即确定二级证书签名域内的内容全部可信,即程序镜像文件的第五哈希值可信。
可选的,在一些实施例中,二级证书中还存储有安全版本号的哈希,用于对存储在OTP中的安全版本号进行验证。通过安全版本号可以起到防回滚的作用。
S104,当确定程序镜像文件可信时,根据程序镜像文件验证待验证启动镜像的可信性。
具体的,对待验证启动镜像进行计算,得到待验证启动镜像的第六哈希值。对第六哈希值与第五哈希值进行比较,当第六哈希值与第五哈希值一致时,确定待验证启动镜像可信。
S105,当待验证启动镜像可信时,基于待验证启动镜像执行启动。
具体的,当待验证启动镜像可信时,通过处理器运行待验证启动镜像,完成终端设备的启动。
在本发明实施例中,原厂商通过配置根密钥,对客户厂商生成的加密方式,即一级密钥进行授权,在客户厂商可以自行执行安全策略对程序镜像文件进行签名和验签的同时,仍能够保证原厂商拥有系统最高控制权限,使得客户厂商在不拥有客户厂商所生成私钥的情况下,可以正常执行镜像文件的下载并执行启动。
在一些实施例中,原厂商在对客户厂商的加密方式进行授权时,需要对部分特定的芯片进行授权,而不是对全部芯片进行授权。所以客户厂商在生成一级证书时,还需要在一级证书的签名域中添加特定芯片ID的哈希值,并由原厂商根密钥进行签名加密,从而实现与特定芯片的绑定。
在通过根公钥对一级证书的签名域进行解签时,除了会在一级证书的签名域内解析到一级公钥的哈希值外,还会解析到授权芯片的芯片ID的哈希值。在通过后续步骤确定一级公钥、待验证启动镜像的可信性通过验证后,对芯片ID所对应的特定芯片执行启动。
在一些实施例中,在芯片开启了安全引导(secure boot)模式后,由于安全需求,部分芯片调试接口会被屏蔽。例如,联合测试工作组指定的测试标准接口(Joint TestAction Group,JTAG)接口会被屏蔽,不允许随意开启。但是,对于客户厂商和原厂商来说,在某些特殊场景中有开启需求,即需要授权开启。
在本发明实施例中,在证书连中继续添加三级证书,在完成对待验证启动镜像的验证后,继续通过二级证书对三级证书进行校验。如果通过校验,则说明三级证书是完整、可信,且经过授权的,可以基于其执行芯片的debug配置。
具体的,客户厂商在生成二级证书时,还会生成二级密钥。二级密钥包括二级公钥和二级私钥。将二级公钥的哈希值存储在二级证书的签名域内,并将二级公钥存储在生成的三级证书中。
客户厂商生成三级证书,将二级公钥存储在三级证书内。同时,还会在三级证书的签名域内存储芯片的配置参数(debug mask),并通过二级私钥进行签名。
在实际执行芯片启动时,通过二级证书验证二级公钥的可信性。当二级公钥可信时,通过二级公钥对三级证书的签名域进行验签,以确定三级证书的可信性。当三级证书可信时,确定其中预存的芯片的配置参数可信,可以基于芯片的配置参数更改芯片的debug配置。
其中,通过二级证书对二级公钥进行验证的方法与前文相同,需要计算三级证书中二级公钥的哈希值,与二级证书签名域中存储的哈希值进行比较,当一致时,确定二级公钥是可信的。通过二级公钥对三级证书的签名域进行验证的方法同样与前文相同,通过二级公钥对三级证书的签名值进行验签,得到验签结果。对三级证书签名域内的签名内容进行哈希计算,得到签名内容的哈希值。当验签结果与签名内容的哈希值一致时,确定三级证书是可信的。
可选的,在一些实施例中,无需更改全部芯片的配置参数,只需要更改部分芯片的配置参数。所以可以继续添加四级证书,四级证书中添加对应的芯片的ID信息。当通过三级证书完成对四级证书的验证后,对四级证书中标记的芯片执行配置。
具体的,客户厂商在生成三级证书时,还会生成三级密钥。三级密钥包括三级公钥和三级私钥。将三级公钥的哈希值存储在三级证书的签名域内,并将三级公钥存储在生成的四级证书中。
客户厂商生成四级证书,并将三级公钥存储在四级证书内。同时,还会在四级证书的签名域内存储客户厂商需要验证的配置参数与芯片ID。
通过三级证书验证三级公钥的可信性。当三级公钥可信时,通过三级公钥对四级证书的签名域进行验签,以确定四级证书的可信性。当四级证书可信时,确定其中预存的芯片ID可信,可以基于此芯片ID对相应的芯片更改debug配置。
对应上述分级验证启动方法,本申请实施例还提供了一种分级验证启动装置。分级验证启动装置可以实现为终端设备。参见图2,为本申请实施例提供的一种分级验证启动装置的结构示意图,所述分级验证启动装置可以包括:加载模块201,第一验证模块202,第二验证模块203,第三验证模块204和启动模块205。
加载模块201,加载待验证启动镜像。
第一验证模块202,验证所述待验证启动镜像中一级密钥的可信性,所述一级密钥由客户厂商生成,并由原厂商授权。
第二验证模块203,当确定所述一级密钥可信时,通过所述一级密钥验证所述待验证启动镜像中程序镜像文件的可信性。
第三验证模块204,当确定所述程序镜像文件可信时,根据所述程序镜像文件验证所述待验证启动镜像的可信性。
启动模块205,当所述待验证启动镜像可信时,基于所述待验证启动镜像执行启动。
图3为本说明书电子设备一个实施例的结构示意图。电子设备可以为实现为上述终端设备。如图3所示,上述电子设备可以包括至少一个处理器;以及与上述处理单元通信连接的至少一个存储器,其中:存储器存储有可被处理单元执行的程序指令,上述处理器调用上述程序指令能够执行本实施例提供的分级验证启动方法。
其中,上述电子设备可以为能够与用户进行智能对话的设备,例如:云服务器,本说明书实施例对上述电子设备的具体形式不作限定。可以理解的是,这里的电子设备即为方法实施例中提到的机器。
图3示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图3显示的电子设备仅仅是一个示例,不应对本说明书实施例的功能和使用范围带来任何限制。
如图3所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器310、通信接口320、存储器330,连接不同系统组件(包括存储器330、通信接口320和处理器310)的通信总线340。
通信总线340表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器330可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器330可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本说明书各实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器330中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书所描述的实施例中的功能和/或方法。
处理器310通过运行存储在存储器330中的程序,从而执行各种功能应用以及数据处理,例如实现本说明书所示实施例提供的分级验证启动方法。
本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书所示实施例提供的分级验证启动方法。
上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(Erasable ProgrammableRead Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(Personal Computer;以下简称:PC)、个人数字助理(Personal Digital Assistant;以下简称:PDA)、无线手持设备、平板电脑(Tablet Computer)、手机、MP3播放器、MP4播放器等。
在本说明书所提供的实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本说明书各个实施例所述方法的部分步骤。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (14)
1.一种分级验证启动方法,其特征在于,所述方法包括:
加载待验证启动镜像;
验证所述待验证启动镜像中一级密钥的可信性,所述一级密钥由客户厂商生成,并由原厂商授权;
当确定所述一级密钥可信时,通过所述一级密钥验证所述待验证启动镜像中程序镜像文件的可信性;
当确定所述程序镜像文件可信时,根据所述程序镜像文件验证所述待验证启动镜像的可信性;
当所述待验证启动镜像可信时,基于所述待验证启动镜像执行启动。
2.根据权利要求1所述的方法,其特征在于,所述验证所述待验证启动镜像中一级密钥的可信性,包括:
通过一次性可编程存储器OTP验证所述待验证启动镜像中,一级证书的可信性;
当所述一级证书可信时,通过所述一级证书验证所述一级密钥的可信性。
3.根据权利要求2所述的方法,其特征在于,所述通过一次性可编程存储器OTP验证所述待验证启动镜像中,一级证书的可信性,包括:
通过OTP验证所述一级证书中的根公钥;
当所述根公钥可信时,通过所述根公钥验证所述一级证书的签名域;
当所述一级证书的签名域可信时,确定所述一级证书可信。
4.根据权利要求3所述的方法,其特征在于,所述通过OTP验证所述一级证书中的根公钥,包括:
确定所述OTP中存储的根公钥的第一哈希值,所述第一哈希值由原厂商预存在所述OTP中;
计算所述一级证书中所存储根公钥的第二哈希值;
当所述第一哈希值与所述第二哈希值一致时,确定所述根公钥可信。
5.根据权利要求3所述的方法,其特征在于,所述通过所述根公钥验证所述一级证书的签名域,包括:
通过所述根公钥对所述一级证书的签名值进行验签;
当所述签名值的验签结果与签名域中的签名内容一致时,确定所述一级证书可信,所述一级证书签名域内的签名内容包括一级公钥的哈希值。
6.根据权利要求2所述的方法,其特征在于,所述当所述一级证书可信时,通过所述一级证书验证所述一级密钥的可信性,包括:
确定所述一级证书签名域中储存的一级公钥的第三哈希值;
计算所述二级证书中所存储一级公钥的第四哈希值;
当所述第三哈希值与所述第四哈希值一致时,确定所述一级公钥可信。
7.根据权利要求1所述的方法,其特征在于,所述当确定所述一级密钥可信时,通过所述一级密钥验证所述待验证启动镜像中程序镜像文件的可信性,包括:
通过所述一级密钥验证所述二级证书的可信性;
当所述二级证书可信时,确定所述二级证书中的程序镜像文件可信。
8.根据权利要求7所述的方法,其特征在于,所述通过所述一级密钥验证所述二级证书的可信性,包括:
通过所述一级公钥对所述二级证书的签名值进行验签;
当所述签名值的验签结果与签名域中的签名内容一致时,确定所述二级证书可信,所述二级证书签名域内的签名内容包括所述程序镜像文件的第五哈希值。
9.根据权利要求1所述的方法,其特征在于,所述当确定所述程序镜像文件可信时,根据所述程序镜像文件验证所述待验证启动镜像的可信性,包括:
计算所述待验证启动镜像的第六哈希值;
当所述第六哈希值与二级证书中所述程序镜像文件的第五哈希值一致时,确定所述程序镜像文件可信。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
验证所述待启动镜像中二级密钥的可信性;
当所述二级密钥可信时,通过所述二级密钥验证所述待验证启动镜像中的芯片配置参数;
当所述芯片配置参数可信时,基于所述芯片配置参数更改芯片的debug配置。
11.根据权利要求10所述的方法,其特征在于,所述通过所述二级密钥验证所述待验证启动镜像中的芯片配置参数之后,所述方法还包括:
验证待启动镜像中三级密钥的可信性;
当所述三级密钥可信时,通过所述三级密钥验证所述待验证启动镜像中的芯片ID;
当所述芯片ID可信时,基于所述芯片配置参数和所述芯片ID更改特定芯片的debug配置。
12.一种分级验证启动装置,其特征在于,所述装置包括:
加载模块,加载待验证启动镜像;
第一验证模块,验证所述待验证启动镜像中一级密钥的可信性,所述一级密钥由客户厂商生成,并由原厂商授权;
第二验证模块,当确定所述一级密钥可信时,通过所述一级密钥验证所述待验证启动镜像中程序镜像文件的可信性;
第三验证模块,当确定所述程序镜像文件可信时,根据所述程序镜像文件验证所述待验证启动镜像的可信性;
启动模块,当所述待验证启动镜像可信时,基于所述待验证启动镜像执行启动。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至11任一项所述的方法。
14.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310792054.5A CN116776311A (zh) | 2023-06-28 | 2023-06-28 | 分级验证启动方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310792054.5A CN116776311A (zh) | 2023-06-28 | 2023-06-28 | 分级验证启动方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116776311A true CN116776311A (zh) | 2023-09-19 |
Family
ID=87992821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310792054.5A Pending CN116776311A (zh) | 2023-06-28 | 2023-06-28 | 分级验证启动方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116776311A (zh) |
-
2023
- 2023-06-28 CN CN202310792054.5A patent/CN116776311A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313690B (zh) | 自包含的加密引导策略验证 | |
US9871821B2 (en) | Securely operating a process using user-specific and device-specific security constraints | |
US8341422B2 (en) | Method and apparatus for incremental code signing | |
JP5173844B2 (ja) | 信頼コードグループ | |
US20130031371A1 (en) | Software Run-Time Provenance | |
US20060236122A1 (en) | Secure boot | |
US20150089238A1 (en) | System and method for verifying changes to uefi authenticated variables | |
CN112699419B (zh) | 安全执行可延伸固件应用程序的方法及计算器设备 | |
CN105718807B (zh) | 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法 | |
WO2015108580A1 (en) | Verifying the security of a remote server | |
Al Rahat et al. | Oauthlint: An empirical study on oauth bugs in android applications | |
JP6735872B2 (ja) | コンピュータシステム及びコンピュータシステムを初期化する方法 | |
CN112148314B (zh) | 一种嵌入式系统的镜像验证方法、装置、设备及存储介质 | |
CN112765637A (zh) | 数据处理方法、密码服务装置和电子设备 | |
CN113946375A (zh) | 嵌入式系统快速安全启动方法、装置及电子设备 | |
CN112511306A (zh) | 一种基于混合信任模型的安全运行环境构建方法 | |
WO2023102757A1 (zh) | 一种基于面向risc-v架构的启动验证方案 | |
CN117556430B (zh) | 一种安全启动方法、装置、设备及存储介质 | |
CN113448681A (zh) | 一种虚拟机监控器公钥的注册方法、设备和存储介质 | |
CN114491565B (zh) | 固件安全启动方法、装置、计算设备和可读存储介质 | |
CN116776311A (zh) | 分级验证启动方法和装置 | |
CN117874773B (zh) | 基于安全等级管控策略的操作系统安全启动方法及装置 | |
Vuillermoz | Analysis of TEE technologies as trust anchors | |
Andrade et al. | Thwarting Data Exfiltration by Repackaged Applications | |
CN114301601A (zh) | 一种基于Android平台的接口管理方法及终端 |
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 |