发布信息

一种安全引导启动方法和装置 专利技术说明

作者:admin      2023-06-29 22:35:41     480



计算;推算;计数设备的制造及其应用技术1.本技术涉及信息安全领域,特别是涉及一种安全引导启动方法、装置、计算机设备和存储介质。背景技术:2.安全引导启动(secure boot)是指一系列基于密码学的验证操作,确保从存储模块引导至系统级芯片(soc,system on chip)的目标程序的安全性和完整性,以保证加载的目标程序的可信可靠。通过安全引导启动,设备可以基于可信可靠的目标程序,安全地初始化与目标程序对应的执行环境(tee,trusted execution environment),进而保障软件、外接芯片和i/o接口的功能安全,并且可以实现代码隔离和对设备的安全管理。3.在安全引导启动过程中,系统级芯片逐级加载目标程序的引导程序并进行验证,以保证每一级的引导程序均是安全可信的,直到设备载入最后一级的引导程序验证完成,即可启动该目标程序。在实际应用中,引导程序会遭受故障注入等攻击,进而跳过安全引导启动中的部分验证,从而降低安全引导启动的可靠性,无法保障目标程序的安全性。4.相关技术中,为了保证安全引导启动的可靠性,通常会通过额外验证的方式,进一步验证待验证参数对应的变量;若验证通过,则可以认为引导程序按照预设的逻辑流程执行操作,没有受到攻击;若验证未通过,则可以认为引导程序没有按照预设的逻辑流程执行操作,同时终止本次设备的启动,从而避免非法的目标程序在该设备上进行加载,进而可以保障设备的安全性。5.但是在相关技术中,若在额外验证环节进行故障注入,则无法检测出对应的故障程序,降低了安全引导启动的可靠性,进而还会导致设备载入其他不安全程序,对设备造成损害。6.针对相关技术中无法检验出额外验证过程中是否发生了故障注入,从而降低了安全引导启动的可靠性、和设备的安全性的技术问题,目前还没有提出有效的解决方案。技术实现要素:7.在本实施例中提供了一种安全引导启动方法、装置、计算机设备和存储介质,以解决相关技术中无法检验出额外验证是否发生了故障注入,从而降低了安全引导启动的可靠性、和设备的安全性的技术问题。8.第一个方面,在本实施例中提供了一种数据安全防护方法,所述方法包括:9.在当前级引导启动进程中,获取目标数据;其中,所述目标数据包括当前级引导启动进程的待验证数据,以及当前级以前的全部引导启动进程的待验证数据;判定所述目标数据是否符合当前级引导启动进程的验证条件;若不符合,则结束当前级引导启动进程,并拒绝启动下一级引导启动进程。10.在其中的一些实施例中,所述判定所述目标数据是否符合当前级引导启动的验证条件包括:分别获取所述待验证数据对应的验证值;判断所述待验证数据和与其对应的所述验证值是否符合预设关联关系;若存在任一所述待验证数据与相对应的验证值不符合所述预设关联关系,则确定所述目标数据不符合当前级引导启动进程的验证条件。11.在其中的一些实施例中,所述待验证数据和与其对应的所述验证值的预设关联关系包括:所述待验证数据和与其对应的所述验证值均满足当前级的引导启动映射关系,其中,所述待验证数据为所述引导启动映射关系的自变量,与所述待验证数据对应的所述验证值为所述引导启动映射关系的因变量;所述判断所述待验证数据和与其对应的所述验证值是否符合预设关联关系,包括:判断所述待验证数据和与其对应的所述验证值是否满足所述当前级的引导启动映射关系。12.在其中的一些实施例中,第n级的引导启动函数包括:在其中的一些实施例中,第n级的引导启动函数包括:其中,所述a0为预设常数;所述bn表示第n级存在bn个所述待验证数据;an,i表示第n级的第i个所述待验证数据对应的系数;所述x为所述待验证数据;所述f(x)的计算结果为所述验证值。13.在其中的一些实施例中,所述判断所述待验证数据和与其对应的所述验证值是否满足所述当前级的引导启动映射关系,包括:验证a0是否等于其中,所述14.在其中的一些实施例中,所述若不符合,则结束当前级引导启动进程,并拒绝启动下一级引导启动进程之后,所述方法还包括:更新所述预设常数a0。15.在其中的一些实施例中,所述方法应用于终端,所述终端包括存储器,所述存储器存储有引导启动程序;所述方法还包括:在判定当前级以前的引导启动进程合法的情况下,从所述存储器中载入当前级的引导启动程序,以创建当前级的引导启动进程。16.在其中的一些实施例中,所述存储器包括第一存储器和第二存储器;其中,所述第一存储器存储有第1级引导启动程序;所述第二存储器存储有第n级引导启动程序,并且,n大于1。17.第二个方面,在本实施例中提供了一种安全引导启动装置,所述装置包括:18.获取模块:用于在当前级引导启动进程中,获取目标数据;其中,所述目标数据包括当前级引导启动进程的待验证数据,以及当前级以前的全部引导启动进程的待验证数据;19.判定模块,用于判定所述目标数据是否符合当前级引导启动进程的验证条件;20.防护模块,用于若不符合,则结束当前级引导启动进程,并拒绝启动下一级引导启动进程。21.第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的一种安全引导启动方法。22.第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的一种安全引导启动方法。23.与相关技术相比,在本实施例中提供的一种安全引导启动方法,所述方法包括:在当前级引导启动进程中,获取当前级引导启动的待验证数据;其中,所述当前级引导启动的待验证数据为本级及本级以前的所有待验证数据;判定所述待验证数据是否符合当前级引导启动的验证条件;若不符合,则结束当前级引导启动进程的技术方案,解决了相关技术中只对待验证数据对应的变量进行额外验证,从而导致验证不充分,进而降低了安全引导启动的可靠性、和设备的安全性的技术问题,实现了对安全引导启动中的全部验证过程都进行额外验证,达到了提高安全引导启动稳定性、提高设备安全性的技术效果。24.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。附图说明25.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:26.图1为相关技术中示出的一种安全引导启动方法的流程图;27.图2是本实施例示出的另一种安全引导启动方法的流程图;28.图3是本实施例示出的另一种安全引导启动方法的流程图;29.图4为本实施例示出的另一种安全引导启动方法的流程图;30.图5是本实施例示出的另一种安全引导启动方法的流程图;31.图6是本实施例示出的一种安全引导启动装置的结构框图;32.图7是本实施例示出的一种计算机设备结构框图。具体实施方式33.为更清楚地理解本技术的目的、技术方案和优点,下面结合附图和实施例,对本技术进行了描述和说明。34.除另作定义外,本技术所涉及的技术术语或者科学术语应具有本技术所属技术领域具备一般技能的人所理解的一般含义。在本技术中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本技术中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本技术中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本技术中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本技术中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。35.为了更好的理解本技术技术方案的技术问题,在本实施例中首先对相关技术中的一种安全引导启动方法进行说明。36.请参见图1,图1为相关技术中示出的一种安全引导启动方法的流程图。以待验证参数为签名为例,如图1所示,所述方法包括:37.s101,获取待验证签名。38.s102,对待验证签名进行验证;若验证通过,则至s103;若不通过,则至s104。39.s103,将待验证签名对应的变量赋值为第一随机数;进一步执行s104。40.s104,判断待验证签名是否通过本级验证;若验证通过,则继续执行s105;反之,若未通过,则结束本次引导启动。41.s105,遍历所有待验证参数,重复s101至s104,若验证通过,则进一步执行s106。42.s106,验证待验证参数对应的变量是否等于第一随机数;若验证失败,则结束本次引导启动;反之,若验证正确,则继续载入下一级引导启动程序,以继续下一级的安全引导启动。43.其中,上述方法还可以验证公钥的哈希值、签名值、程序的哈希值、存储地址值等,对此,本实施例不做其他限定。44.需要注意的是,只有当待验证参数为签名或者哈希值时,才会进行上述s103;并且,只有当本级待验证参数中存在签名或者哈希值时,才会进行上述s106。45.例如,当待验证参数为存储地址值时,该待验证参数对应的引导启动进程为:46.步骤1,获取待验证参数;47.步骤2,对待验证参数进行验证;48.步骤3,验证待验证参数是否通过本级验证。49.在实际应用中,故障注入通常发生在引导启动的验证或者判断步骤,也就是说,相关技术中步骤102、步骤103、和步骤106都容易发生故障注入。50.在上述步骤中,由于步骤106是对步骤103中的变量进行验证,因此,步骤106可以验证出步骤103在对变量进行赋值时是否有故障注入;但是却无法验证出步骤102是否发生了故障注入。51.由于若步骤106验证通过,则会重复步骤101至步骤106以进行下一级的引导启动进程,并且下一级的验证过程与本级无关,因此,也无法验证本级的步骤106是否发生了故障注入。52.因此,相关技术中的技术方案无法验证出步骤102或步骤106是否发生了故障注入,降低了安全引导启动的可靠性,无法充分保障硬件设备的安全性。基于此,相关技术中存在只对待验证数据对应的变量进行额外验证,从而导致验证不充分,进而降低了安全引导启动的可靠性、和设备的安全性的技术问题。53.因此,相关技术中,对其他的待验证数据的验证过程也存在验证不充分的技术问题。54.基于此,在示出的一种实施例中,本实施例提供了一种安全引导启动方法,所述方法包括:55.s201,在当前级引导启动进程中,获取目标数据;其中,所述目标数据包括当前级引导启动进程的待验证数据,以及当前级以前的全部引导启动进程的待验证数据。56.其中,待验证数据可以是公钥值、签名值、程序哈希值、存储地址等,对此本实施例不作其他限定。57.当前级引导启动进程的待验证数据可以是至少一个待验证数据;当前级以前的全部引导启动进程的待验证数据可以是当前级以前的每一级引导启动进程的待验证数据。58.需要注意的是,当前级引导启动进程的待验证数据的数量可以大于前一级引导启动进程的待验证数据的数量,或者,当前级引导启动进程的待验证数据的数量可以小于前一级引导启动进程的待验证数据的数量,或者,当前级引导启动进程的待验证数据的数量等于前一级引导启动进程的待验证数据的数量,对此,本实施例不作其他限定。59.在实际应用中,在当前级的引导启动进程中,可以获取当前级和当前级以前的每一级的待验证数据为目标数据。60.需要注意的是,若当前级为第一级,此时获取的目标数据仅为第一级引导启动进程的待验证数据。61.s202,判定所述目标数据是否符合当前级引导启动进程的验证条件。62.其中,所述当前级引导启动进程的验证条件,用来验证本级及本级以前的所有待验证数据是否同时满足本级的验证条件。63.在实际应用中,终端的处理器可以基于获取到的当前级和当前级以前的所有待验证数据,和预设的当前级的引导启动进程的预设条件,来判断当前级和当前级以前的所有待验证数据是否符合预设的当前级的引导启动进程的预设条件。64.s203,若不符合,则结束当前级引导启动进程,并拒绝启动下一级引导启动进程。65.在实际应用中,若所述目标数据不符合当前级引导启动的验证条件,则说明该安全引导启动过程中,受到了敌手攻击,在已载入的引导程序中已注入了故障。为了保障终端设备的安全,应当结束本次安全引导启动。具体可以是结束当前级引导启动进程,同时也拒绝载入下一级引导启动程序,以拒绝启动下一级引导过程。66.在上述方法中,一方面,通过验证本级的所有待验证数据是否满足本级的验证条件,可以对本级中的验证结果进行二次验证,以确定本级中本次验证之前的验证过程是否发生了故障注入;另一方面,通过验证本级之前的所有待验证数据是否满足本级的验证条件,可以同时对本级以前的每一个该验证步骤进行安全验证,以确定出之前每一级的该验证步骤是否发生了故障注入;从而提高了安全引导启动的可靠性,进而提高了终端的安全性。67.在示出的一种实施例中,所述方法应用于终端,所述终端包括存储器,所述存储器存储有引导启动程序;所述方法还包括:在判定当前级以前的引导启动进程合法的情况下,从所述存储器中载入当前级的引导启动程序,以创建当前级的引导启动进程。68.例如,请参见图3,图3为本实施例示出的一种安全引导启动方法的流程图。69.如图3所示,所述方法包括:70.s301,从存储器中载入第n级的引导启动程序,以创建第n级的引导启动进程。71.s302,在当前级引导启动进程中,获取目标数据。72.s303,判定所述目标数据是否符合当前级引导启动进程的验证条件。若不符合,则执行步骤304;若符合,则执行步骤305。73.s304,判定第n级引导启动进程合法。74.然后,重复上述步骤,对第n+1级引导启动进程进行验证。75.s305,结束当前级引导启动进程,并拒绝启动下一级引导启动进程。76.在示出的一种实施例中,所述存储器包括第一存储器;其中,所述第一存储器存储有第1级引导启动程序。77.例如,所述第一存储器可以是内部存储器。78.在实际应用中,可以从所述内部存储器中载入所述第一级的引导程序,以创建第一级的引导启动进程。79.由于安全引导启动中的第一级引导启动程序存储在内部存储器中,相较于存储在外部芯片中,增加了获取引导启动程序的难度,因此增加了获取到与引导启动的验证条件相关的必要信息的难度,也就难以伪造新的合法点,增加了被破解的难度。80.在示出的一种实施例中,所述存储器还包括第二存储器;其中,所述第二存储器存储有第n级引导启动程序,并且,n大于1。81.其中,所述外部存储器可以是外部非易失性存储器(nvm,non-volatile memory),对此,本实施例也不作限定。82.例如,所述第二存储器可以是外存储器。83.在实际应用中,可以从所述外部存储器中载入当前级的引导程序,以创建当前级的引导启动进程。84.在示出的一种实施例中,所述在当前级引导启动进程中,获取目标数据之前,所述方法还包括:获取第一待验证数据,对所述第一待验证数据进行第一验证;所述在当前级引导启动进程中,获取目标数据包括:基于通过所述第一验证的所述第一待验证数据,获取所述目标数据。85.其中,所述第一待验证数据为用于确定目标程序身份信息的待验证数据;所述第一验证为与第一待验证数据对应的验证过程,用于验证目标程序的身份信息是否合法。86.例如,第一待验证数据可以是目标程序的公钥值,对应的第一验证为用于验证目标程序的公钥值是否合法;第一待验证数据可以是签名值,对应的第一验证为签名验证,用于验证目标程序的签名值是否合法。87.在实际应用中,在获取所述目标数据之前还可以先获取当前级的第一待验证数据,并对当前级的第一待获取数据进行第一验证;若第一待验证数据验证成功,则可以基于第一验证获取当前级的待验证数据。88.例如,以仅获取当前级的待验证数据为例,且以当前级的第一待验证数据为a1、b1、c1为例,请参见图4,图4为本实施例示出的另一种安全引导启动方法的流程图。如图4所示,所述方法包括:89.s401,在当前级引导启动进程中,获取当前级的第一待验证数据a1、b1、c1。90.s402,基于获取到的第一待验证数据a1、b1、c1,分别进行第一验证;若验证通过则继续执行步骤403。91.s403,基于验证通过的第一待验证数据,获取当前级的待验证数据。92.需要注意的是,在实际应用中,为了减少验证所需的计算量,通常会逐一获取第一待验证数据进行验证;例如,请参见图5,图5是本实施例示出的另一种安全引导启动方法的流程图,如图5所示,上述步骤401-步骤402可以是:93.s501,在当前级引导启动进程中,获取当前级的第一待验证数据a1。94.s502,基于第一待验证数据a1,进行与第一待验证数据a1对应的第一验证;若验证通过,则执行步骤s503。95.s503,获取当前级的第一待验证数据b1;96.s504,基于第一待验证数据b1,进行与第一待验证数据b1对应的第一验证;若验证通过,则执行步骤s505。97.s505,获取当前级的第一待验证数据c1;98.s506,基于第一待验证数据c1,进行与第一待验证数据c1对应的第一验证。99.需要注意的是,基于第一验证通过的第一待验证数据,获取当前级的待验证数据的步骤,可以发生在当前级引导启动过程中,也可以发生在创建当前级引导启动之前;100.也就是说,如果发生在当前级引导启动过程中,则是先载入当前级的安全引导程序,以创建当前级的引导启动进程,然后再获取当前级的第一待验证数据;如果发生在创建当前级引导启动之前,则是先前获取当前级的第一待验证数据,然后载入当前级的安全引导程序,以创建当前级的引导启动进程,进一步基于第一待验证数据获取当前级的待验证数据。对此,本实施例不作其他限定。101.在示出的一种实施例中,基于通过第一验证的所述第一待验证数据获取当前级的待验证数据,包括:从所述通过第一验证的所述第一待验证数据中,提取出所述当前级的待验证数据。102.在实际应用中,为了保障目标程序身份信息的安全性,通常目标程序的身份数据会设置的较为复杂、长度较长,在对身份信息进行额外验证时,为了保障验证时的计算效率,通常不会以原有的身份数据进行验证,而是按照预设的规则,从原有的身份数据中提取部分数据作为当前级的待验证数据。103.例如,以目标程序的身份信息为16比特的数据,且预设规则为:提取身份信息的前8比特位的数据为当前级的待验证数据,为例,则提取出的当前级的待验证数据为身份信息的前8比特位的数据。104.进一步地,为了提高密码的安全性,同时还可以通过设定预设规则来限定提取当前级的待验证数据的方法,进一步增大伪造当前级待验证数据的难度。105.例如,以目标程序的身份信息为16比特的数据,且预设规则为:依次提取身份信息的2n(其中,n≥0)位置上的数据为当前级的待验证数据,为例,则提取出的当前级的待验证数据为身份信息的第1、2、4、8、16位上的数据。对此,本实施例也不做过多限定和说明。106.需要注意的是,只针对当前级的第一待验证数据存在基于通过第一验证的第一代验证数据,获取当前级的待验证数据的过程,并不需要在当前级获取当前及以前的第一待验证数据,进而获取当前级以前的待验证数据。例如,第n级获取的目标数据包括第n级的待验证数据、第n-1级的待验证数据、和第1级至第n-2级的待验证数据,在第n-1级的引导启动进程中,已经基于通过第n-1级的第一验证的第n-1级的第一待验证,获取到了第n-1级的待验证数据;因此,在第n级的引导启动过程中,只需要获取第n-1级验证过程中获取到的第n-1级的待验证数据即可。107.在上述的方法中,一方面,在检验当前级的待验证数据是否符合当前级引导启动进程的验证条件可以对当前级的第一验证过程进行额外验证,以判断当前级的第一验证过程处是否发生了故障注入;另一方面,基于当前级引导启动进程的验证条件,对当前及以前的待验证数据进行验证,可以验证之前所有级中,该额外验证步骤是否发生了故障注入,从而可以提高安全引导启动的可靠性,进而提高终端设备的安全性。108.在示出的一种实施例中,所述判定所述目标数据是否符合当前级引导启动的验证条件包括:分别获取所述待验证数据对应的验证值;判断所述待验证数据和与其对应的所述验证值是否符合预设关联关系;若存在任一所述待验证数据与相对应的验证值不符合所述预设关联关系,则确定所述目标数据不符合当前级引导启动进程的验证条件。109.其中,验证值与待验证数据之间具有唯一的对应关系。110.例如,待验证数据可以是xn,i,其中,n代表第n级的待验证数据,i代表该级第i个待验证数据。验证值可以是yn,i,其中,n代表第n级的待验证数据,i代表该级第i个验证值。当待验证数据和验证值中的n和i都相等时,该待验证数据与该验证值一一对应。111.又例如,待验证数据集合{xd}可以是:112.{xd}={x1,1,x1,2,x1,3,x2,1,x2,2,x2,3};113.验证值集合{yd}可以是:114.{yd}={y1,1,y1,2,y1,3,y2,1,y2,2,y2,3};115.那么,将具有对应关系的待验证数据和验证值组成待验证数对的集合{(xd,yd)}可以是:{(xd,yd)}={(x1,1,y1,1),(x1,2,y1,2),(x1,3,y1,3),(x2,1,y2,1),(x2,2,y2.2),(x2,3,y2,3)}。116.需要注意的是,在本实施例中,将待验证数据(即xn,i)和验证值(即yn,i)的下标写作二元(n,i)的形式,仅为方便理解该待验证数据或者该验证值是第n级引导启动中的第i次验证所对应的数据。117.类似的,将待验证数据(即xd)和验证值(即yd)的下标写作一元(d)的形式,也是为了方便理解上述待验证数据(即xd)是验证数据集合(即{xd})中的第d个待验证数据;或者上述验证值(即yd)是验证值集合(即{yd})中的第d个验证数据值。118.根据上述集合{(xd,yd)}即可确定出具有对应关系的待验证数据和验证值。119.预设关联关系用于确定待验证数据是否为与待验证值对应的合法的数据。例如,当验证值是待验证数据的一次函数时,预设关联关系可以是:验证值随着待验证数据的增大而增大;对此,本技术也不做其他限定。120.验证值与验证参数符合预设关联关系,若待验证数据和与其对应的验证值符合预设关联关系,则可以说明该待验证数据是与验证值对应的、唯一合法的验证参数。121.例如,存在合法的验证参数a,和与验证参数a具有预设关联关系的验证值y(a);此时获取了待验证参数a,且验证值y(a)与待验证参数a具有唯一的对应关系;若待验证参数a和验证值y(a)满足预设关联关系,则可以说明待验证数据a=验证参数a,即待验证数据a是合法数据。122.在实际应用中,在获取到与待验证数据对应的验证值之后,分别判断每一相互对应的待验证数据和验证值是否符合预设关联关系;若符合,则说明待验证数据是合法的;反之,若不符合,则说明待验证数据是不合法的。123.还需要注意的是,在验证待验证数据与验证值的关系时,若存在任一的待验证数据是不合法的数据,则说明已经进行的引导启动过程中发生了故障注入。124.在实现时,验证值可以存储在存储器中;获取验证值,可以是从存储器中载入验证值。125.在示出的另一实施例中,所述方法还包括:初始化所述验证值。126.在实际应用中,所述方法包括:127.步骤一:选定一个n比特随机数a0,存入系统级芯片内部存储中。为方便实际操作,这里n一般选取为8的偶数倍;也可以是其他长度,对此,本实施例不作限定。128.步骤二:设置安全引导启动中共有d级引导启动过程,每个引导过程中需要验证bi个值(i≤d),例如公钥的哈希值,签名值,程序的哈希值,存储地址值等等。129.需要注意的是,每层引导过程中的待验证值的数量可以是一样的,也可以是不一样的,对此本实施例不作限定;在实际应用中,本层引导过程中的待验证值的数量往往大于或等于上一层引导过程中的待验证值的数量。130.步骤三:选定第一级引导启动中与所述第一待验证数据对应的需要验证的值;并且从需要验证的值中提取出n比特(例如公钥哈希值的低n比特),记为共享因子xi,此时1≤i≤b1。131.选定一个有限域并任取b1个n比特随机数记为a1,i,同样有1≤i≤b1。在这个有限域上构建1级安全引导启动多项式将之前的共享因子代入一级安全引导启动多项式中,得到对应多项式输出值存入系统级芯片内部存储中。132.步骤四:此后每一级的引导启动,均增加类似设置。具体地,在相同的有限域上构建d级安全引导启动多项式代入之前的多项式点并在系数ad,i中选取bd个为n比特随机数,即可计算出其它的ad,i系数,确定此d级安全引导启动多项式。再将第d级引导启动过程中需要验证的值均提取出n比特,记为xi,令此时有sd-1<i≤sd。将代入d级安全引导启动多项式,计算出对应的并将存入外部非易失性存储器中对应存储d级安全引导启动程序的部分。133.需要注意的是,在获取上述验证值时,可以直接获取与待验证数据对应的验证值,即先判断待验证数据与验证值的对应关系,然后获取验证值;也可以先获取验证值,然后判断待验证数据与验证值的对应关系,对此,本实施例不作限定。134.在示出的一种实施例中,判定待验证数据与验证值的对应关系的方法可以是:135.例如,获取到的待验证数据为x1,1-x1,3,x2,1-x2,3,共计6个待验证数据;将待验证数据依次按照n和i降序排列的顺序组成第一待处理数据集合{xd}:136.{xd}={x1,1,x1,2,x1,3,x2,1,x2,2,x2,3};137.从存储器中载入验证值,依次按照n和i降序排列的顺序组成验证值集合{yd}:138.{yd}={y1,1,y1,2,y1,3,y2,1,y2,2,y2,3};139.基于所述待验证数据集合{xd}和验证值集合{yd},将具有相同n和i值的待验证数据和验证值组成所述待验证数对。140.例如,所述待验证数对集合{(xd,yd)}可以是:{(xd,yd)}={(x1,1,y1,1),(x1,2,y1,2),(x1,3,y1,3),(x2,1,y2,1),(x2,2,y2,2),(x2,3,y2,3)}。141.在示出的一种实施例中,所述待验证数据和与其对应的所述验证值的预设关联关系包括:所述待验证数据和与其对应的所述验证值均满足当前级的引导启动映射关系,其中,所述待验证数据为所述引导启动映射关系的自变量,与所述待验证数据对应的所述验证值为所述引导启动映射关系的因变量;142.所述判断所述待验证数据和与其对应的所述验证值是否符合预设关联关系,包括:143.判断所述待验证数据和与其对应的所述验证值是否满足所述当前级的引导启动映射关系。144.例如,引导启动映射关系可以是函数关系,验证值随着待验证数据的变化而变化。145.具体的,第n级的引导启动映射关系包括:其中,所述a0为预设常数;所述bn表示第n级存在bn个所述待验证数据;an,i表示第n级的第i个所述待验证数据对应的系数;所述x为所述待验证数据;所述f(x)为所述验证值;146.所述判断所述待验证数据和与其对应的所述验证值是否满足所述当前级的引导启动映射关系,包括:147.验证a0是否等于其中,所述148.在实际应用中,利用拉格朗日差值法判定所述待验证数对是否符合当前级引导启动的验证函数时,不需要知道当前级引导启动的验证函数f(x)中的所有系数参数,例如,an,i;在验证过程中只需要基于所述待验证数对(xd,yd)即可进行验证。149.基于此,利用拉格朗日差值法判定所述待验证数对是否符合当前级引导启动的验证函数时,所述终端中不用存储上述验证函数,进而也不需要存储上述第一待验证数据对应的系数,只需要存储所述验证函数中的参数a0,和第一共享数据yd即可,减少了安全引导启动的计算量,提高了安全引导启动的效率,同时也降低了对终端存储空间的资源消耗。150.在示出的一种实施例中,所述若不符合,则结束当前级引导启动进程,并拒绝启动下一级引导启动进程之后,所述方法还包括:更新所述当前级的引导启动函数。151.在实际应用中,若所述待验证数据不符合当前级引导启动的引导启动函数,则说明该安全引导启动过程中,受到了敌手攻击,在已载入的引导程序中已注入了故障,所述验证函数f(x)的信息受到了一定的泄露,为了保证安全引导启动程序的安全性,需要更新该引导启动函数。152.在示出的另一实施例中,所述更新所述引导启动函数包括:基于第一预设参数对引导启动函数中的预设参数a0进行更新;进一步地,对验证值进行更新。153.在实际应用中,通过更新a0可以基于较低的计算量和计算难度实现对引导启动函数的弱更新;由于引导启动函数中的a0发生了更新,对应的还需要更新yd。154.例如,生成一个n比特随机数δ,对参数a0和每一个yi均异或随机数δ,再将结果保存至各参数原位置,以更新所述引导启动函数f(x)的a0和对应的yd。155.在示出的另一实施例中,所述更新所述引导启动函数包括:重新构建引导启动函数中的预设参数a0和验证值。156.在实际应用中,可以生成一个n比特随机数δ作为新的多项式常数项,重复上述初始化所述验证值的方法,在此不再进行赘述,以进行强更新,得到新的引导启动函数并根据x值计算引导启动函数输出值δi为新的验证值。因为均有和因此可将a0异或随机数δ,而每个y与对应的δ异或,再将更新参数保存至原位置。157.可选的,在实际应用中,还可以根据用户的实际情况设置用于触发强更新或弱更新的触发条件。158.例如,设置参数t,表示每启动t次;设置参数t,表示每启动t次。响应于安全引导启动t次,触发弱更新;响应于安全引导启动t次,触发强更新。159.可选的,还可以令t>t。例如,取t=2t时,响应于启动t次,触发一次弱更新;进一步的,响应于触发了2次弱更新(即,t=2t),触发一次强更新。160.在示出的另一实施例中,所述方法还包括更新终端。161.在实际应用中,更新者已知安全启动多项式的形式。与该终端进行通信,以获取该终端中存储的各(x,y)点,更新者可利用拉格朗日插值法计算出进一步地,保留常数项a0不变,由于更新了固件,部分验证信息(例如固件哈希值、签名值等)中提取的x也相应改变为x′。更新者重复上述初始化所述验证值的实施例中的方法,得到新的引导启动函数,以及该引导启动函数上新的点(x′,y′)。将更新的固件存入设备中,并将新计算的y′替换固件原存储的y值。162.需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。163.在本实施例中还提供了一种安全引导启动装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。164.具体的,请参见图6,图6为本实施例示出的一种安全引导启动装置的结构框图。如图6所示,该装置包括:165.获取模块601,用于在当前级引导启动进程中,获取目标数据;其中,所述目标数据包括当前级引导启动进程的待验证数据,以及当前级以前的全部引导启动进程的待验证数据;166.验证模块602,用于判定所述目标数据是否符合当前级引导启动进程的验证条件;167.防护模块603,用于若不符合,则结束当前级引导启动进程,并拒绝启动下一级引导启动进程。168.需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。169.在本实施例中还提供了一种计算机设备,请参见图7,图7是本实施例示出的一种计算机设备的结构框图。170.其中,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线701连接的处理器702、存储器703、网络接口704、显示屏705和输入装置706。171.其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种安全引导启动方法。172.该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。173.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。174.需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。175.此外,结合上述实施例中提供的一种安全引导启动方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种安全引导启动方法。176.应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本技术提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本技术保护范围。177.显然,附图只是本技术的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本技术适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本技术披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本技术公开的内容不足。[0178]“实施例”一词在本技术中指的是结合实施例描述的具体特征、结构或特性可以包括在本技术的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本技术中描述的实施例在没有冲突的情况下,可以与其它实施例结合。[0179]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部