一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种密钥管理方法及装置与流程

2022-06-08 20:08:26 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种密钥管理方法及装置。


背景技术:

2.在设备的安全启动、软件安装以及软件升级过程中均需对应的公钥,对需要启动的模块、待安装的安装包以及升级包进行验证,在验证通过后,才可以启动模块、安装软件以及升级软件,以保证安全启动、软件安装以及软件升级过程的安全性。
3.下面以安全启动为例进行说明,安全启动是指设备在启动过程中,前一个启动的模块(该模块可以理解为软件模块)对后一个需要启动的模块进行验证,若验证通过后,触发该后一个需要启动的模块启动,若验证不通过,则中止启动。
4.目前,在安全启动过程中对模块进行验证所采用的公钥存储在设备的处理器中的电子熔断器(efuse)中,鉴于efuse中的内容无法清除、修改,无法轻易变更存储在efuse中的公钥,导致公钥无法更新,不能对该公钥进行管理。


技术实现要素:

5.本技术提供一种密钥管理方法及装置,用以更新安全启动、软件安装以及软件升级过程中所需的公钥。
6.第一方面,本技术实施例提供了一种密钥管理方法,该方法可由设备中的密钥管理装置执行,在该方法中,密钥管理装置能够将密钥存储至设备中的安全存储区域,该密钥为设备在安全启动、软件安装、或软件升级过程中所需要的密钥。该安全存储区域位于该设备中的存储器中,在一定场景下,该安全存储区域内的数据可以被更新。在密钥管理装置存储了该密钥之后,可以接收密钥更新请求,该密钥更新请求用于请求对密钥进行更新,该密钥更新请求中包括更新凭证,更新凭证是由信任平台签名、并发布的;密钥管理装置先对该更新凭证进行验证,在验证通过之后,根据该密钥更新请求对密钥进行更新。这里是以直接管理密钥为例,在实际应用中,也可以采用类似的方式对密钥的相关信息(对密钥进行运算后的运算值,该运算可以是哈希运算,也可以为签名算法,还可以为其他运算)进行管理,这里无论是直接对密钥进行管理还是对密钥的相关信息进行管理其实质均是指对密钥进行管理。
7.通过上述方法,密钥管理装置能够对存储在安全存储区域的密钥进行更新,该密钥不再是不能被修改的,另外,在对密钥更新之前,还需要验证更新凭证,只有在对更新凭证验证通过的情况下,才能够对密钥进行更新,也使得密钥的更新方式更加安全。
8.在一种可能的实现方式中,存储在该安全存储区域中的密钥可以是对设备中需运行的软件代码进行验证所需的密钥。该设备除了需要运行的软件代码还需要运行固件代码,该固定代码是在设备启动过程中最先需要启动或运行的。对设备需运行的固件代码进行验证所需的固件密钥可以存储在安全存储区域,也可以存储在该设备的电子熔断器中,也即固件密钥和软件密钥存储在不同的区域中,电子熔断器中的存储的固件密钥不能被修
改。当然,该固件密钥也可以存储在其他不允许修改的存储区域中。
9.通过上述方法,对软件代码和固件代码验证所需的密钥分别存储在不同的位置,由于对软件代码验证所需的密钥存储在安全存储区域中,能够根据需要更新该密钥,已解除该设备与该软件代码的厂家的绑定关系。
10.在一种可能的实现方式中,当对设备进行安全启动时,密钥管理装置可以从电子熔断器中读取固件密钥,利用固件密钥对固件代码进行验证,具体的,对固件代码的签名(该签名是利用该固件密钥对应的私钥生成的)进行验证。所述软件代码和所述固件代码可以来自不同厂家。
11.在利用固件密钥对固件代码验证通过后,则允许该固件代码运行,在运行固件代码后,密钥管理装置可以从安全存储区域读取密钥,利用密钥对软件代码进行验证,具体的,对软件代码的签名(该签名是利用该密钥对应的私钥生成的)进行验证。在利用密钥对软件代码验证通过后,允许运行该软件代码。
12.当设备在安装该软件代码时,密钥管理装置可以从安全存储区域中获取该密钥,对该软代码的安装包进行验证,也即对该安装包上携带的签名进行验证,在验证通过后,允许安装该软件代码,也即通过该安装包安装该软件代码。
13.当设备在升级该软件代码时,密钥管理装置可以从安全存储区域中获取该密钥,对该软代码的升级包进行验证,也即对该升级包上携带的签名进行验证,在验证通过后,允许升级该软件代码,也即通过该升级包升级该软件代码。
14.通过上述方法,设备在运行软件代码、安装软件代码、或升级软件代码的过程中,可以从安全存储区域获取该密钥,使得能够对该软件代码进行验证,保证软件代码在运行、安装以及升级过程中的安全性。
15.在一种可能的实现方式中,密钥管理装置在将密钥存储至设备中的安全存储区域时,可以直接将密钥存储在安全存储区域,也可以先对密钥进行签名,将签名后的密钥存储至安全存储区域。这里并不限定对密钥签名所采用的私钥。
16.通过上述方法,密钥管理装置可以通过不同方式将密钥存储在安全存储区域,方式较为灵活,适用于不同场景。
17.在一种可能的实现方式中,密钥管理装置在对更新凭证进行验证时,可以确认更新凭证的签名是否来自信任平台,例如利用该信任平台的公钥对该签名进行验证,若更新凭证的签名是来自信任平台则验证通过,否则验证失败;若更新凭证还指示需要更新的密钥,密钥管理装置在对更新凭证进行验证时,除了确认更新凭证的签名是否来自信任平台,还可以确认更新凭证指示的需要更新的密钥与存储在安全存储区域的密钥是否一致,在确定更新凭证的签名来自信任平台以及更新凭证指示的需要更新的密钥与存储在安全存储区域的密钥一致的情况下,确定对更新凭证验证通过;在确定更新凭证的签名并非来自信任平台或更新凭证指示的需要更新的密钥与存储在安全存储区域的密钥不一致的情况下,确定对更新凭证验证失败。
18.通过上述方法,密钥管理装置在对更新凭证进行验证时,可以对更新凭证的签名以及更新凭证指示的内容进行确认,能够保证该更新凭证的有效性,进而,保证后续能够对密钥进行安全、有效的更新。
19.在一种可能的实现方式中,密钥管理装置对安全存储区域中的密钥进行更新之
后,可以将更新凭证标识为失效状态。这样可以避免再次接收到相同更新凭证的密钥更新请求,对密钥进行无效操作。
20.在一种可能的实现方式中,密钥管理装置还可以记录密钥的更新次数,也就是说,密钥管理装置在每次对安全存储区域中的密钥进行更新之后,还记录此次对密钥的更新,在记录的密钥更新次数上加一。密钥管理装置记录密钥的更新次数便于后续对密钥进行管理,如限制密钥所允许的更新次数。
21.在一种可能的实现方式中,密钥管理装置对安全存储区域中的密钥进行更新之前,可以先确定密钥的更新次数是否未小于预设次数,若密钥的更新次数小于预设次数,则密钥管理装置可以对密钥进行更新,若密钥的更新次数大于或等于预设次数,说明密钥的更新次数已经达到上限,密钥管理装置可以拒绝对密钥的更新。
22.通过上述方法,通过预设次数限制密钥允许的更新次数,便于密钥管理装置对密钥进行管理,确保该密钥不会被无限次的修改。
23.在一种可能的实现方式中,安全存储区域还包括密钥黑名单,密钥黑名单用于指示已失效的密钥。密钥管理装置可以利用密钥黑名单限制设备在安全启动、软件安装以及软件升级的过程中所使用的密钥,当设备在安全启动、软件安装以及软件升级的过程中所使用的密钥为密钥黑名单中指示的密钥,则停止该密钥的使用,或者不允许该密钥存储在安全存储区域(例如删除该密钥或拒绝该密钥存储在该安全存储区域)。当密钥黑名单中以直接记录已失效黑名单的情况下,此处不允许该密钥存储在安全存储区域,是指该密钥不允许存储在安全存储区域中除存储密钥黑名单的区域之外的区域。
24.在一种可能的实现方式中,安全存储区域位于闪存或处理器中,闪存和处理器中存储的数据的安全性较高,能够保证该密钥不易被篡改,保证密钥的安全性。
25.第二方面,本技术实施例还提供了一种密钥管理装置,该装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括传输单元、存储单元、更新单元以及验证单元,这些单元可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
26.第三方面,本技术实施例还提供了一种装置,该装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述设备的结构中包括处理器和存储器,所述处理器被配置为支持所述设备执行上述第一方面方法中相应的功能。所述存储器与所述处理器耦合,其保存所述通信装置必要的程序指令和数据。所述通信装置的结构中还包括通信接口,用于与其他设备进行通信,如获取密钥或接收密钥更新请求。
27.第四方面,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
28.第五方面,本技术还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
29.第六方面,本技术还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面所述的方法。
附图说明
30.图1a为本技术提供的一种系统的架构示意图;
31.图1b为本技术提供的一种安全启动所需启动的模块示意图;
32.图2为本技术提供的一种密钥管理方法示意图;
33.图3为本技术提供的一种密钥管理装置的结构示意图;
34.图4为本技术提供的一种密钥管理装置的结构示意图。
具体实施方式
35.如图1a所示,为本技术实施例提供的一种系统,该系统包括密钥管理装置100以及密钥更新装置200。
36.在本技术实施例中,密钥管理装置100可以位于设备中,对该设备在安全启动、软件安装、或软件升级过程中所需要的密钥进行管理,该管理操作包括但不限于:将该密钥存储在安全存储区域中、更新存储在安全存储区域中的密钥。
37.密钥更新装置200可以为独立于该设备的装置,也可以是部署在设备中的装置,在确定需要更新密钥时,能够向该密钥管理装置100发送密钥更新请求,以请求密钥管理装置100对密钥进行更新。
38.这里并不限定密钥更新装置200确定需要更新密钥的方式,例如,用户可以在密钥更新装置200上操作,如选择需要更新的密钥、确定更新后的密钥,还可以加载更新凭证。密钥更新装置200在检测到用户的操作后,可以确定需要更新的密钥和更新后的密钥,还可以获取更新凭证;之后,密钥更新装置200可以向密钥管理装置100发送密钥更新请求,以请求密钥管理装置100对密钥进行更新。
39.下面对安全启动、软件安装以及软件升级的过程分别进行说明:
40.(1)、安全启动
41.安全启动要求在设备启动过程中前一个启动的模块需要对后一个需要启动的模块进行验证,在验证通过后,才允许后一个模块启动。
42.下面以安全启动过程需要启动四个模块为例,参见图1b,如图1b所示,为设备启动过程中需要启动的四个模块,分别为模块a、模块b、模块c以及模块d。模块a、模块b、模块c以及模块d的启动顺序为模块a-》模块b-》模块c-》模块d。
43.模块a可以为设备中固件代码,是需要优先启动的模块,模块a可以是与该设备的处理器匹配的软件模块,可以是由处理器的生产厂家(这里以处理器的生产厂家为厂家1为例)配置在处理器中的。
44.模块b、模块c、模块d可以是需要运行在处理器的软件模块,可以是来自其他生产厂家的软件模块。模块b的生产厂家为厂家2、模块c的生产厂家为厂家3、模块d的生产厂家为厂家4。
45.模块b中携带有厂家2利用公钥b对应的私钥生成的签名b,模块c中携带有厂家3利用公钥c对应的私钥生成的签名c,模块d中携带有厂家4利用公钥d对应的私钥生成的签名d。
46.在该设备的存储区域中预先保存的模块b、模块c以及模块d的公钥分别为公钥b、公钥c以及公钥d。
47.模块a由于为固定代码,优先启动,启动之后,模块a会先从该设备的存储区域获取模块b的公钥b,利用公钥b对模块b中携带的签名b进行验证,在验证通过,触发模块b进行启动。
48.模块b启动之后,模块b会先从该设备的存储区域获取模块c的公钥c,利用公钥c对模块c中携带的签名c进行验证,在验证通过,触发模块c进行启动。
49.模块c启动之后,模块c会先从该设备的存储区域获取模块d的公钥d,利用公钥d对模块d中携带的签名d进行验证,在验证通过,触发模块d进行启动。
50.需要说明的是,这里以设备在启动时模块a、模块b、模块c以及模块d均采用类似的方式对后续启动的模块进行验证,这种情况下,设备的存取区域中会存储多个公钥。在实际应用中,允许模块之间采用其他方式进行验证,也即设备在启动过程中可以采用前述说明中的方式对后续启动的模块进行验证与其他方式结合的方式。例如,设备的存储区域中可以仅存储公钥b,模块a对模块b的验证可以采用前述方式进行验证,模块b与模块c、模块c与模块d之间可以采用其他方式进行验证,这里并不限定其他验证方式。这种情况下存储区域仅存储公钥b。
51.在本技术实施例中公钥b、公钥c或公钥d可以存储在该设备的安全存储区域中,在本技术实施例中安全存储区域可以位于闪存(flash)中,如可以是嵌入式非易失性带重放保护闪存块(flash embeded multimedia card replay protect memory block,flash emmc rpmb),闪存持久保护位(flash persistent protection bits,flash ppb),闪存牢固保护位(flash solid protection bits,flash spb),也可以是位于该设备处理器中的安全存储区域。
52.在本技术实施例中,安全存储区域中存储的数据(如公钥)允许被更新,如删除、修改等。
53.(2)、软件安装
54.当需要在设备中安装软件(也可以称为软件代码)时,该设备获取该软件的安装包(该安装包可以理解为模块),该安装包中携带有利用公钥e对应的私钥生成的签名,当需要安装该软件时,设备先获取公钥e,该公钥e可以是存储在设备的存储区域中的,这里并不限定公钥e存储在存储区域的方式以及时间,可以是预先配置在该存储区域的,也可以是在确定需要安装该软件时,由其他装置将该公钥e写入存储区域的。该公钥e也可以是携带在该软件的安装包中的,当获取到该安装包时,设备可以从该安装包中获取该公钥e。
55.设备利用公钥e对安装包中的签名进行验证,在验证通过后,利用该安装包安装该软件。
56.(3)、软件升级
57.当需要对设备中的软件进行升级时,该设备先获取该软件的升级包(该升级包可以理解为模块),该升级包中携带有利用公钥f对应的私钥生成的签名,当需要升级该软件时,设备先获取公钥f,该公钥f可以是存储在设备的存储区域中的,这里并不限定公钥f存储在存储区域的方式以及时间,可以是预先配置在该存储区域的,也可以是在确定需要升级该软件时,由其他装置将该公钥f写入存储区域的。该公钥f也可以是携带在该软件的升级包中的,当获取到该升级包时,设备可以从该升级包中获取该公钥f。
58.设备利用公钥f对升级包中的签名进行验证,在验证通过后,利用该升级包升级该
软件。
59.从上述说明中可知,在安全启动、软件安装以及软件升级的过程中,均需要使用公钥对待启动的模块、待安装的模块或待升级的模块进行验证,验证通过后才会进行启动、安装以及升级。以保证启动、软件安装以及软件升级的过程的安全性。
60.目前,设备在安全启动、软件安装、或软件升级过程中所需要的公钥通常会保存在处理器中的efuse中,由于efuse中存储的数据一旦写入将无法修改,导致该处理器所在的单板与存储在efuse中公钥对应的生产厂家(该生产厂家也即为模块的生产厂家)“绑定”。
61.以安全启动场景为例,这里的绑定是指单板与模块2的生产厂家(也即厂家2)的绑定关系,作为处理器所在单板的维修厂家的厂家1,在收到该单板时,不能更改该efuse中存储的数据。也即厂家1并不能改变efuse中存储的公钥。
62.另外,对于厂家1来说,每个单板可以与一个生产厂家绑定,不同的单板可能与不同的生产厂家绑定,厂家1需要维护与不同生产厂家绑定的多个单板,这种维护方式成本较高,且不灵活。举例来说,目前存在两个单板,单板a为与生产厂家2绑定的单板,单板b为与生产厂家3绑定的单板,当厂家1收到单板a和单板b后,对单板a和单板b进行维修,只能在单板a维修完成后,返回给用户a,在单板b维修完成后,返回给用户b。若用户b急需单板b,在单板b未维修完成单板a维修完成的情况下,厂家1无法改写efuse中存储的数据,无法改变单板a与生产厂家2的绑定关系,以用来应对用户b的需求。
63.而在本技术实施例中,密钥管理装置100可以将设备在安全启动、软件安装、或软件升级过程中所需要的公钥存储在该设备的安全存储区域中,并且还能够在接收到密钥更新请求后,能够更新该公钥,也就是说,设备在安全启动、软件安装、或软件升级过程中所需要的公钥在保存到设备之后并非是固定不变的,设备中安装的软件模块发生变更时,例如软件模块升级,或替换为另一个软件模块等,可以通过更新公钥,保证该设备在软件模块发生变更后,仍能够正常进行安全启动、软件安装或软件升级等过程,提高了公钥配置的灵活性。
64.另外,在单板的维修厂家中,作为单板的维修厂家可以通过密钥管理装置100变更安全存储区域中存储的公钥,以改变单板与厂家之间的绑定关系,应对不同的用户的需求,有效的提升了单板维修的灵活性。
65.下面结合附图对本技术实施例提供的一种密钥管理方法进行说明,这里以密钥管理装置100对公钥进行管理为例进行说明,参见图2,该方法包括:
66.步骤201:密钥管理装置100获取公钥,该公钥为设备在安全启动、软件安装、或软件升级过程中所需要的公钥。
67.本技术实施例并不限密钥管理装置100获取该公钥的方式,例如,该公钥可以是在设备出场之前预先配置给密钥管理装置100的,也可以在设备出场之后,发送给该密钥管理装置100的。
68.步骤202:密钥管理装置100在获取公钥后,可以将公钥存储至设备中的安全存储区域。
69.密钥管理装置100在获取公钥后,可以直接将该公钥存储至安全存储区域,也可以先对该公钥进行签名,在签名之后,将签名后的公钥存储至该安全存储区域。
70.在将公钥存储在安全存储区域之后,则可以对该公钥进行更新。
71.步骤203:密钥更新装置200向密钥管理装置100发送密钥更新请求,密钥管理装置100接收密钥更新请求,密钥更新请求用于请求对公钥进行更新,该密钥更新请求中携带有更新凭证。该更新凭证是由信任平台签名、并发布的。这里并不限定该信任平台的类型,例如该信任平台可以是该设备或该设备中处理器的生产厂家,也可以是该厂家信任的平台,如该厂家信任的其他厂家,该设备运行的模块的生产厂家,也可以是权威机构,如证书颁发机构(certificate authority)。
72.密钥更新装置200在发送密钥更新请求之前,需要先获取更新凭证,更新凭证可以是由用户加载在密钥更新装置200中,也可以是密钥更新装置200向信任平台申请的,例如密钥更新装置200可以向信任平台发送凭证获取请求,请求信任平台签发更新凭证,该凭证获取请求中可以携带密钥更新装置200的身份信息,该凭证获取请求还可以指示需要更新的密钥、密钥的更新方式等。信任平台在接收到该凭证获取请求后,可以利用该密钥更新装置200的身份信息进行验证,在验证通过后,签发该更新凭证。本技术实施例并不限定密钥更新装置200获取更新凭证的方式。
73.更新凭证中可以携带有信任平台的签名信息,该签名信息可以利用信任平台的私钥生成的。该更新凭证还记录了该更新凭证所适用的设备或处理器,这里并不限定更新凭证还记录了该更新凭证所适用的设备或处理器的方式,例如该更新凭证可以记录该设备或该设备的处理器的型号,也可以携带能够唯一标识该设备或该设备的处理器的信息。
74.更新凭证还可以指示需要更新的公钥以及公钥更新方式。这里并不限定该更新凭证指示需要更新的公钥的方式,例如更新凭证中可以直接记录该需要更新的公钥。
75.又例如,更新凭证可以记录该需要更新的公钥的标识信息,该标识信息可以是预先为该公钥配置的。对于存储在安全存储区域的公钥的标识信息,密钥管理装置100是可以获知的,这里并不限定密钥管理装置100获取该公钥的标识信息的方式,例如密钥管理装置100在接收到需要存储在安全存储区域的公钥时,可以同时接收该公钥的标识信息,密钥管理装置100可以保存该公钥的标识信息。又例如,密钥管理装置100可以通过发送查询消息向其他装置查询该公钥的标识信息。
76.在本技术实施例中公钥更新方式包括但不限于:修改、删除、增加。
77.当公钥更新方式为修改,说明需要对存储在安全存储区域的公钥进行修改,更新凭证中还可以携带修改后的公钥。当公钥更新方式为删除,说明需要对需要更新的公钥进行删除。当公钥更新方式为增加,说明在安全存储区域中增加新的公钥,更新凭证中还可以携带需要增加的公钥。
78.需要说明的是,当该设备中安全存储区域中仅存储了一个公钥,更新凭证也可以不指示需要更新的公钥。
79.步骤204:密钥管理装置100接收到密钥更新请求后,可以先获取该密钥更新请求中的更新凭证,对该更新凭证进行验证。
80.密钥管理装置100对更新凭证进行验证时,可以利用该信任平台的公钥验证该更新凭证中的签名是否来自信任平台,这里并不限定密钥管理装置100获取信任平台的公钥的方式,例如该信任平台的公钥可以预先保存在该密钥管理装置100中,密钥管理装置100可以从本地获取该信任平台的公钥。又例如,密钥管理装置100可以再确定需要对更新凭证进行验证时,从该信任平台获取该信任平台的公钥,如在该信任平台的网站获取该信任平
台的公钥。
81.若该更新凭证的签名并非来自该信任平台,密钥管理装置100对该更新凭证验证失败,若该更新凭证的签名来自该信任平台,密钥管理装置100可以确定对该更新凭证验证通过,也可以进一步确认更新凭证指示的需要更新的公钥与存储在安全存储区域的公钥是否一致,在确认一致后,确定对该更新凭证验证通过,否则,验证失败。
82.密钥管理装置100确认更新凭证指示的需要更新的公钥与存储在安全存储区域的公钥是否一致的方式与更新凭证指示需要更新的公钥的方式有关;例如,更新凭证中直接记录了需要更新的公钥,密钥管理装置100可以对更新凭证中记录的需要更新的公钥与存储在安全存储区域的公钥进行比对,确定是否一致。例如,更新凭证中利用需要更新的公钥的标识信息指示需要更新的公钥,密钥管理装置100可以确定更新凭证中记录的标识信息与存储在安全存储区域的公钥的标识信息是否一致。
83.步骤205:密钥管理装置100在对更新凭证验证通过后,可以根据更新凭证对存储在安全存储区域的公钥进行更新。
84.当更新凭证指示的公钥更新方式为修改,密钥管理装置100可以将存储在安全存储区域的公钥更新为更新凭证中指示的修改后的公钥。
85.当更新凭证指示的公钥更新方式为删除,密钥管理装置100可以将存储在安全存储区域的公钥删除。
86.当更新凭证指示的公钥更新方式为增加,密钥管理装置100可以将在安全存储区域中增加更新凭证中携带的需要增加的公钥。
87.对于存储在安全存储区域的公钥,为了能够进一步保证对该公钥的更新操作有效性,如该公钥的更新操作只能由持有更新凭证特定的一方(如只能由设备的生产厂家或该生产厂家信任的一方)进行修改,或只能在特定时间段(如在返厂期间)内进行修改。为此,可以设置该更新凭证的有效状态,一个更新凭证只能对该公钥更新一次,当利用该更新凭证对存储在安全存储区域的公钥进行了一次修改之后,该更新凭证将无法继续使用。也就是说,密钥管理装置100根据更新凭证对存储在安全存储区域的公钥更新之后,该更新凭证也即变为失效凭证,密钥管理装置100可以将该更新凭证标识为失效状态。
88.这里并不限定将更新凭证标识为失效状态的方式,例如,密钥管理装置100可以保存该更新凭证,将该更新凭证标识为失效凭证,当再次接收到密钥更新请求后,密钥管理装置100可以先确定密钥更新请求中携带的更新凭证是否与保存的、标识的失效凭证一致,若一致,说明密钥更新请求中携带的更新凭证为失效凭证,密钥管理装置100可以拒绝该密钥更新请求,拒绝更新该公钥。
89.又例如,密钥管理装置100可以保存该更新凭证的标识信息(该更新凭证的标识信息可以是信任平台分配的、能够唯一指示该更新凭证的信息,该更新凭证的标识信息可以记录在该更新凭证中或携带在密钥更新请求中),当再次接收到密钥更新请求后,密钥管理装置100可以先确定密钥更新请求中携带的更新凭证的标识信息是否与保存的、失效凭证的标识信息一致,若一致,说明密钥更新请求中携带的更新凭证为失效凭证,密钥管理装置100可以拒绝该密钥更新请求,拒绝更新该公钥。
90.除了标识更新凭证的失效状态,还可以通过限制公钥的更新次数来保证更新操作的有效性。密钥管理装置100可以预先配置公钥的更新次数,将公钥的更新次数设置为预设
次数,在每次对安全存储区域中的公钥进行更新之前,还确定公钥的更新次数是否超过预设次数,也即确认公钥的更新次数是否大于或等于预设次数。这里公钥的更新次数是指针对存储在安全存储区域的公钥已完成的更新的次数。
91.这里并不限定密钥管理装置100预先配置预设次数的方式,例如密钥管理装置100可以设置一个包括固定数量的比特位,每个比特位对应公钥的一次更新,公钥发生了一次更新之后,密钥管理装置100可以将该比特位的值改为设定值(如比特位的初始值为0,设定值为1),当该固定数量的比特位的值均变为设定值时,说明当前公钥的更新次数已达到预设次数。又例如,密钥管理装置100可以维持一个累计值,并设置该累计值的初始值等于该预设次数,每对存储在安全存储区域的公钥更新一次,该累计值的数量减少,当该累计值减少到0时,说明当前公钥的更新次数已达到预设次数。
92.若确认公钥的更新次数大于或等于预设次数,密钥管理装置100则可以拒绝此次对存储在安全存储区域的公钥的更新。
93.若确认公钥的更新次数小于预设次数,密钥管理装置100对存储在安全存储区域的公钥进行更新,并记录此次对该公钥的更新,也即在每完成一次对存储在安全存储区域的公钥的更新,公钥的更新次数就会加一,该公钥的更新次数是随着对存储在安全存储区域的公钥的更新进行累加的。
94.当然,在本技术实施例中,也可以不限制公钥的更新次数,而仅是在本地记录公钥的更新次数。
95.在本技术实施例中,也可以将标识更新凭证的失效状态以及限制公钥的更新次数结合使用,例如,密钥管理装置100可以设置一个包括固定数量的比特位,每个比特位对应公钥的一次更新,且每个比特位对应一个更新凭证,公钥发生了一次更新之后,密钥管理装置100可以将该比特位的值改为设定值(如比特位的初始值为0,设定值为1),该设定值既可以指示该公钥已发生了一次更新,也可以指示该比特位对应的更新凭证为失效状态,当该固定数量的比特位的值均变为设定值时,说明当前公钥的更新次数已达到预设次数,且固定数据的比特位对应的各个更新凭证也均已为失效状态。
96.在一些场景中,私钥容易发生暴露或被窃取的情况,如果继续在设备的安全启动、软件安装以及软件升级的过程中继续使用该私钥对应的公钥会对该设备的安全性造成威胁。
97.对于已暴露或被窃取的私钥,需要及时通知到密钥管理装置100,以阻止该私钥对应的公钥的使用,在本技术实施例中,安全存储区域中的可以包括公钥黑名单,该公钥黑名单可以指示已失效的公钥,该已失效的密钥是指示已停止使用的公钥(例如,运行在处理器中的软件模块的厂家已明确指示不再使用的公钥)。
98.这里并不限定公钥黑名单指示已失效的公钥的方式,例如该公钥黑名单可以直接记录已失效的公钥,又例如,该公钥黑名单可以直接记录已失效的公钥的标识信息。
99.当密钥管理装置100在接收到需要存储在安全存储区域的公钥时,可以先确定该公钥是否为公钥黑名单所指示的公钥,若是,则拒绝将该公钥存储在安全存储区域,否则,将该公钥存储在安全存储区域。
100.当密钥管理装置100在接收到密钥更新请求时,可以先确定密钥更新请求中携带的更新后的公钥是否为公钥黑名单所指示的公钥,若是,则拒绝对存储在安全存储区域的
公钥进行更新,否则,根据更新凭证对存储在安全存储区域的公钥进行更新。
101.当设备在安全启动、软件安装以及软件升级的过程中,也可以利用该公钥黑名单识别设备在安全启动、软件安装以及软件升级的过程中使用的公钥是否已失效。
102.设备在安全启动时,获取对待启动的模块进行验证所需的公钥,例如存储在安全存储区域的公钥或该安装包中携带的公钥,确定该公钥是否为公钥黑名单指示的公钥,若是,则停止启动该模块,否则,启动该模块。
103.设备在安装软件时,获取对待安装的安装包进行验证所需的公钥,例如存储在安全存储区域的公钥或该安装包中携带的公钥,确定该公钥是否为公钥黑名单指示的公钥,若是,则停止安装该软件,否则,安装该软件。
104.设备在升级软件时,获取对软件的升级包进行验证所需的公钥,例如存储在安全存储区域的公钥或该升级包中携带的公钥,确定该公钥是否为公钥黑名单指示的公钥,若是,则停止升级该软件,否则,升级该软件。
105.需要说明的是,在本技术实施例中以将对密钥直接存储或更新为例,在实际应用中,也可以存储密钥的关联信息,如对该密钥进行哈希运算后获得的哈希值,该密钥的哈希值的作用与密钥的作用等同,可以利用如图2所示的实施例的方式存储该密钥的关联信息、更新该密钥的关联信息。
106.基于与方法实施例同一发明构思,本技术实施例还提供了一种密钥管理装置,用于执行上述如图2所示的方法实施例中所述密钥管理装置执行的方法,相关特征可参见上述方法实施例,此处不再赘述。
107.如图3所示,所述密钥管理装置300包括接传输单元302、存储单元301、以及更新单元303。
108.存储单元301,用于将密钥存储至设备中的安全存储区域,密钥为设备在安全启动、软件安装、或软件升级过程中所需要的密钥。
109.传输单元302,用于接收密钥更新请求,密钥更新请求中包括更新凭证,更新凭证是由信任平台签名、并发布的。
110.更新单元303,用于在对更新凭证验证通过之后,对密钥进行更新。
111.在一种可能的实现方式中,存储在该安全存储区域中的密钥可以是对设备中需运行的软件代码进行验证所需的密钥。该设备除了软件代码还可以包括固件代码,该固定代码是在设备启动过程中最先需要启动或运行的。
112.对设备需运行的固件代码进行验证所需的固件密钥可以存储在安全存储区域,也可以存储在该设备的电子熔断器中,也即固件密钥和软件密钥存储在不同的区域中,电子熔断器中的存储的固件密钥不能被修改,当然,该固件密钥也可以存储在其他不允许修改的存储区域中。
113.在一种可能的实现方式中,当对设备进行安全启动时,密钥管理装置还包括验证单元304,验证单元304可以从电子熔断器中读取固件密钥,利用固件密钥对固件代码进行验证,具体的,对固件代码的签名(该签名是利用该固件密钥对应的私钥生成的)进行验证。所述软件代码和所述固件代码可以来自不同厂家。
114.验证单元304在利用固件密钥对固件代码验证通过后,则允许该固件代码运行,在运行固件代码后,验证单元304还可以从安全存储区域读取密钥,利用密钥对软件代码进行
验证,具体的,对软件代码的签名(该签名是利用该密钥对应的私钥生成的)进行验证。在利用密钥对软件代码验证通过后,允许运行该软件代码。
115.当设备在安装该软件代码时,验证单元304可以从安全存储区域中获取该密钥,对该软代码的安装包进行验证,也即对该安装包上携带的签名进行验证,在验证通过后,允许安装该软件代码,也即通过该安装包安装该软件代码。
116.当设备在升级该软件代码时,验证单元304可以从安全存储区域中获取该密钥,对该软代码的升级包进行验证,也即对该升级包上携带的签名进行验证,在验证通过后,允许升级该软件代码,也即通过该升级包升级该软件代码。
117.作为一种可能的实施方式,存储单元301在将密钥存储至设备中的安全存储区域时,可以直接将该密钥存储在安全存储区域,也可以先对密钥进行签名,将签名后的密钥存储至安全存储区域。
118.作为一种可能的实施方式,更新单元303在对更新凭证进行验证时,可以确认更新凭证的签名是否来自信任平台;在确定更新凭证的签名来自信任平台后,对该更新凭证验证通过,否则,验证失败。若更新凭证还指示了需要更新的密钥,更新单元在对更新凭证验证通过时,除了确认更新凭证的签名是否来自信任平台,还可以确认更新凭证指示的需要更新的密钥与存储在安全存储区域的密钥是否一致。在确认更新凭证的签名来自信任平台以及更新凭证指示的需要更新的密钥与存储在安全存储区域的密钥一致的情况下,对该更新凭证验证通过,否则验证失败。
119.作为一种可能的实施方式,更新单元303在对安全存储区域中的密钥进行更新之后,将更新凭证标识为失效状态。
120.作为一种可能的实施方式,更新单元303在对安全存储区域中的密钥进行更新之后,还可以记录密钥的更新次数。
121.作为一种可能的实施方式,更新单元303在对安全存储区域中的密钥进行更新之前,可以确定密钥的更新次数是否小于预设次数,若小于,则对安全存储区域中的密钥进行更新,否则,拒绝对密钥进行更新。
122.作为一种可能的实施方式,安全存储区域还包括密钥黑名单,黑名单用于指示已失效的密钥。
123.作为一种可能的实施方式,安全存储区域位于闪存或处理器中。
124.需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本技术的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
125.上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述
计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,ssd)。
126.在一个简单的实施例中,本领域的技术人员可以想到如图3所示的实施例中密钥管理装置可采用图4所示的形式。
127.如图4所示的装置400,包括至少一个处理器401、存储器402,可选的,还可以包括通信接口403。
128.存储器402可以是易失性存储器,例如随机存取存储器;存储器402也可以是非易失性存储器,例如只读存储器,快闪存储器,硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)、或者存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器402可以是上述存储器的组合。本技术实施例中的安全存储区域可以位于该存储器402中,例如位于该存储器402的非易失性存储器中。
129.本技术实施例中不限定上述处理器401以及存储器402之间的具体连接介质。
130.处理器401可以为中央处理器(central processing unit,cpu),该处理器401还可以是其他通用处理器、数字信号处理器(digital signal process,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、人工智能芯片、片上芯片等。通用处理器可以是微处理器或者是任何常规的处理器等。具有数据收发功能,能够与其他设备进行通信,在如图4装置中,也可以设置独立的数据收发模块,例如通信接口403,用于收发数据;处理器401在与其他设备进行通信时,可以通过通信接口403进行数据传输,如接收密钥或密钥更新请求。
131.当所述密钥管理装置采用图4所示的形式时,图4中的处理器401可以通过调用存储器402中存储的计算机执行指令,使得所述密钥管理装置可以执行上述任一方法实施例中的所述密钥管理装置执行的方法。
132.具体的,图3的传输单元、存储单元、更新单元以及验证单元的功能/实现过程均可以通过图4中的处理器401调用存储器402中存储的计算机执行指令来实现。或者,图3中的存储单元、以及更新单元的功能/实现过程可以通过图4中的处理器401调用存储器402中存储的计算机执行指令来实现,图3的传输单元的功能/实现过程可以通过图4中的通信接口403来实现。
133.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
134.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或
方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
135.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
136.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
137.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献