安全芯片固件更新方法及装置与流程

文档序号:19681247发布日期:2020-01-14 17:23阅读:351来源:国知局
安全芯片固件更新方法及装置与流程

本公开涉及软件技术领域,尤其涉及一种安全芯片固件更新方法及装置。



背景技术:

随着科学技术不断发展,多种多样的安全芯片已被应用到iot(theinternetofthings,物联网)设备中,用于对iot设备接收的网络数据进行安全验证。目前,安全芯片的固件远程更新主要使用tsm(trustedservicemanager,可信服务管理)和gp(globalplatform,全球平台组织)规范1中定义的标准流程来实现。

具体地,开发者更新安全芯片的固件后,将安全芯片的固件更新包发布到tsm平台上,tsm平台与iot设备中的安全芯片建立实时连接,使用新建的密钥对固件更新包进行加密,将加密后的固件更新包通过本地网络设备发送给iot设备中的安全芯片,安全芯片对加密的固件更新包进行解密,使用解密后的固件更新包进行固件更新。本地网络设备可以为网关、智能终端等。

iot设备与本地网络设备通常使用无线网络连接,基于无线网络难以建立稳定、快速的数据传输,导致安全芯片与tsm平台之间易出现网络中断,tsm平台需要与安全芯片重新建立网络连接,建立新密钥加密固件更新包,才能将固件更新包发送至安全芯片。多次网络连接和多次密钥建立增加了tsm平台的工作压力,延长了安全芯片的固件更新时间,降低了用户体验。



技术实现要素:

有鉴于此,本公开提供一种安全芯片固件更新方法及装置,通过pki架构的设置,安全芯片采用pki安全机制对从ca下载的固件更新包进行验证,在验证通过后使用固件更新包进行固件更新,安全芯片在固件更新的过程中不必与ca即云端建立实时网络连接。

根据本公开实施例的第一方面,提供了一种安全芯片固件更新方法,应用于本地设备中的安全芯片,所述方法包括:

获取所述本地网络设备发送的所述安全芯片的固件更新数据,所述固件更新数据是所述本地网络设备从证书颁发机构ca下载的数据,所述固件更新数据包括:带签名的固件更新包;

利用公钥基础设施pki安全机制,对所述固件更新包进行安全验证;

在验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

可选地,所述ca为二级ca,所述固件更新数据还包括:所述二级ca的当前二级ca证书;

所述pki安全机制包括证书吊销机制,所述证书吊销机制是基于二级ca证书的证书序列号大小实现证书吊销的机制,或者,所述证书吊销机制是基于二级ca证书的黑名单实现证书吊销的机制;

所述利用公钥基础设施pki安全机制,对所述固件更新包进行安全验证,包括:

使用预置的根ca公钥对所述当前二级ca证书进行公钥验签;

在所述当前二级ca证书的公钥验签合格后,使用所述证书吊销机制确定所述当前二级ca证书是否有效;

依据确定结果,对所述固件更新包进行安全验证。

可选地,所述证书吊销机制是基于二级ca证书的证书序列号大小实现证书吊销的机制;所述使用所述证书吊销机制确定所述当前二级ca证书是否有效,包括:

确定所述当前二级ca证书中的证书序列号是否大于或等于所述安全芯片中设置的有效二级ca证书的证书序列号;

若大于或等于,则确定所述当前二级ca证书有效;

若小于,则确定所述当前二级ca证书失效。

可选地,在所述确定所述当前二级ca证书有效之后,所述方法还包括:

当所述当前二级ca证书中的证书序列号大于所述安全芯片中设置的有效二级ca证书的证书序列号时,将所述有效二级ca证书的证书序列号,更新为所述当前二级ca证书中的证书序列号。

可选地,所述固件更新数据还包括:开发者公钥证书;所述签名基于开发者私钥得到;所述依据确定结果,对所述固件更新包进行安全验证,包括:

在确定所述当前二级ca证书失效后,验证所述固件更新包未通过安全验证;

在确定所述当前二级ca证书有效后,使用所述当前二级ca证书中的二级ca公钥对所述开发者公钥证书进行公钥验签;

在所述开发者公钥证书的公钥验签不合格的情况下,验证所述固件更新包未通过安全验证;

在所述开发者公钥证书的公钥验签合格的情况下,使用所述开发者公钥证书中的开发者公钥对所述固件更新包的所述签名进行验签;

在所述签名验签合格的情况下,验证所述固件更新包通过安全验证;

在所述签名验签不合格的情况下,验证所述固件更新包未通过安全验证。

根据本公开实施例的第二方面,提供了一种安全芯片固件更新方法,应用于本地网络设备,所述方法包括:

从证书颁发机构ca下载安全芯片的固件更新数据,所述固件更新数据包括:带签名的固件更新包;

将所述固件更新数据发送给本地设备中的所述安全芯片,使得所述安全芯片在利用公钥基础设施pki安全机制,验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

根据本公开实施例的第三方面,提供了一种安全芯片固件更新装置,应用于本地设备中的安全芯片,所述装置包括:

获取模块,被配置为获取所述本地网络设备发送的所述安全芯片的固件更新数据,所述固件更新数据是所述本地网络设备从证书颁发机构ca下载的数据,所述固件更新数据包括:带签名的固件更新包;

验证模块,被配置为利用公钥基础设施pki安全机制,对所述固件更新包进行安全验证;

更新模块,被配置为在验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

可选地,所述ca为二级ca,所述固件更新数据还包括:所述二级ca的当前二级ca证书;所述pki安全机制包括证书吊销机制,所述证书吊销机制是基于二级ca证书的证书序列号大小实现证书吊销的机制,或者,所述证书吊销机制是基于二级ca证书的黑名单实现证书吊销的机制;

所述验证模块,包括:

验签子模块,被配置为使用预置的根ca公钥对所述当前二级ca证书进行公钥验签;

确定子模块,被配置为在所述当前二级ca证书的公钥验签合格后,使用所述证书吊销机制确定所述当前二级ca证书是否有效;

验证子模块,被配置为依据确定结果,对所述固件更新包进行安全验证。

可选地,所述证书吊销机制是基于二级ca证书的证书序列号大小实现证书吊销的机制;所述确定子模块,包括:

第一确定单元,被配置为确定所述当前二级ca证书中的证书序列号是否大于或等于所述安全芯片中设置的有效二级ca证书的证书序列号;

第二确定单元,被配置为若大于或等于,则确定所述当前二级ca证书有效;

第三确定单元,被配置为若小于,则确定所述当前二级ca证书失效。

可选地,所述装置还包括:

更改模块,被配置为在所述确定所述当前二级ca证书有效之后,当所述当前二级ca证书中的证书序列号大于所述安全芯片中设置的有效二级ca证书的证书序列号时,将所述有效二级ca证书的证书序列号,更新为所述当前二级ca证书中的证书序列号。

可选地,所述固件更新数据还包括:开发者公钥证书;所述签名基于开发者私钥得到;所述验证子模块,包括:

第一验证单元,被配置为在确定所述当前二级ca证书失效后,验证所述固件更新包未通过安全验证;

第一验签单元,被配置为在确定所述当前二级ca证书有效后,使用所述当前二级ca证书中的二级ca公钥对所述开发者公钥证书进行公钥验签;

第二验证单元,被配置为在所述开发者公钥证书的公钥验签不合格的情况下,验证所述固件更新包未通过安全验证;

第二验签单元,被配置为在所述开发者公钥证书的公钥验签合格的情况下,使用所述开发者公钥证书中的开发者公钥对所述固件更新包的所述签名进行验签;

第三验证单元,被配置为在所述签名验签合格的情况下,验证所述固件更新包通过安全验证;

第四验证单元,被配置为在所述签名验签不合格的情况下,验证所述固件更新包未通过安全验证。

根据本公开实施例的第四方面,提供了一种安全芯片固件更新装置,应用于本地网络设备,所述装置包括:

下载模块,被配置为从证书颁发机构ca下载安全芯片的固件更新数据,所述固件更新数据包括:带签名的固件更新包;

发送模块,被配置为将所述固件更新数据发送给本地设备中的所述安全芯片,使得所述安全芯片在利用公钥基础设施pki安全机制,验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

根据本公开实施例的第五方面,提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。

根据本公开实施例的第六方面,提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第二方面中任一项所述方法的步骤。

根据本公开实施例的第七方面,提供了一种安全芯片固件更新装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取所述本地网络设备发送的所述安全芯片的固件更新数据,所述固件更新数据是所述本地网络设备从证书颁发机构ca下载的数据,所述固件更新数据包括:带签名的固件更新包;

利用公钥基础设施pki安全机制,对所述固件更新包进行安全验证;

在验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

根据本公开实施例的第八方面,提供了一种安全芯片固件更新装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

从证书颁发机构ca下载安全芯片的固件更新数据,所述固件更新数据包括:带签名的固件更新包;

将所述固件更新数据发送给本地设备中的所述安全芯片,使得所述安全芯片在利用公钥基础设施pki安全机制,验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

本公开实施例提供的技术方案可以包括以下有益效果:

本公开中,安全芯片获取本地网络设备从ca下载且发送的固件更新数据,利用公钥基础设施pki安全机制,验证固件更新数据包括的固件更新包是否满足安装要求,在验证固件更新包满足安装要求的情况下,使用固件更新包进行固件更新。基于pki架构的设置,使得安全芯片在固件更新的过程中不必与ca即云端建立实时网络连接,避免了背景技术中基于多次网络连接和多次密码建立增大了云端工作压力的问题,增加了升级传输的稳定性,减少了安全芯片的固件更新时间,提高了用户体验。由于云端无需对固件更新包进行加密,无需配置加密机,因此节省了云端工作成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

图1是根据一示例性实施例示出的一种安全芯片固件更新方法流程图;

图2是根据一示例性实施例示出的一种安全芯片固件更新方法的示意图;

图3是根据一示例性实施例示出的另一种安全芯片固件更新方法流程图;

图4是根据一示例性实施例示出的另一种安全芯片固件更新方法流程图;

图5是根据一示例性实施例示出的一种安全芯片固件更新方法流程图;

图6是根据一示例性实施例示出的一种安全芯片固件更新装置框图;

图7是根据一示例性实施例示出的另一种安全芯片固件更新装置框图;

图8是根据一示例性实施例示出的另一种安全芯片固件更新装置框图;

图9是根据一示例性实施例示出的另一种安全芯片固件更新装置框图;

图10是根据一示例性实施例示出的一种用于安全芯片固件更新装置的一结构示意图;

图11是根据一示例性实施例示出的另一种用于安全芯片固件更新装置的一结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1是根据一示例性实施例示出的一种安全芯片固件更新方法流程图,图1所示的方法应用于本地设备中的安全芯片,图1所示的安全芯片固件更新方法包括以下步骤:

在步骤101中,获取本地网络设备发送的安全芯片的固件更新数据,固件更新数据是本地网络设备从证书颁发机构ca下载的数据,固件更新数据包括:带签名的固件更新包。

安全芯片内部拥有独立的处理器和存储单元,具有数据安全存储、加解密运算、数据安全认证等功能。本公开中,本地设备安装有安全芯片,本地设备的主处理器与安全芯片的芯片处理器通过设备的内部总线连接。

本公开引入公钥基础设施pki架构中的证书颁发机构ca和证书。开发者升级安全芯片后,使用开发者私钥对安全芯片的固件更新包进行签名,将带签名的固件更新包上传至ca。本地网络设备从ca下载安全芯片的固件更新数据,固件更新数据包括带签名的固件更新包和证书,将下载的固件更新数据发送给本地设备的主处理器,本地设备的主处理器将固件更新数据发送给安全芯片。签名算法可以采用ecdsa-256bit,证书格式可以为x509.v3。

在物联网场景中,本地设备可以为智能家居设备,如电视、空调、冰箱等,本地网络设备可以为网关、安装了功能应用程序app的手机等,本地设备通过本地网络设备上网。网关或手机从ca下载安全芯片的固件更新数据,并将固件更新数据发送给电视、空调或冰箱等智能家居设备中的安全芯片。

在步骤102中,利用公钥基础设施pki安全机制,对固件更新包进行安全验证。

pki架构可以仅包括一个级别的ca,也可以包括n个级别的ca,n为大于或等于二的正整数。

场景一:pki架构包括n个级别的ca。

本场景中,开发者使用开发者私钥对固件更新包进行签名,最低级别n级ca使用n级ca私钥对开发者公钥进行签名,得到开发者证书,n-1级ca使用n-1级ca私钥对n级ca公钥进行签名,得到n级ca证书,n-2级ca使用n-2级ca私钥对n-1级ca公钥进行签名,得到n-1级ca证书,基于上述方法,直至根ca使用根ca私钥对二级ca的二级ca公钥进行签名,得到二级ca证书。安全芯片从ca获取固件更新数据,固件更新数据除包括带签名的固件更新包外,还包括二至n个级别ca的ca证书。

pki安全机制包括证书吊销机制,证书吊销机制有多种,例如,证书吊销机制可以是基于各级ca证书的证书序列号大小实现证书吊销的机制,或者,证书吊销机制可以是基于各级ca证书的黑名单实现证书吊销的机制。

在安全验证过程中,按照从高级ca至低级ca的顺序,逐级对各级别ca的ca证书进行公钥验签和有效性验证,若确定当前级别ca的ca证书的公钥验签不合格,或者,确定当前级别ca的ca证书虽然公钥验签合格但是失效,则确定固件更新包未通过安全验证,停止安全验证工作。

下面以n等于二为例,参见图2是根据一示例性实施例示出的一种安全芯片固件更新方法的示意图,对本场景下固件更新包的安全验证过程进行举例说。

开发者使用开发者私钥对固件更新包进行签名,并将固件更新包和签名一起发布至二级ca,二级ca使用二级ca私钥对开发者公钥进行签名,得到开发者证书,根ca使用根ca私钥对二级ca的二级ca公钥进行签名,得到二级ca的二级ca证书,二级ca将带签名的固件更新包、二级ca证书和开发者证书,通过本地网络设备发送给本地设备中的安全芯片。这时固件更新数据包括固件更新包、二级ca证书和开发者证书。本公开中,将安全芯片当前接收的二级ca证书称为当前二级ca证书。

参见图3是根据一示例性实施例示出的另一种安全芯片固件更新方法流程图,步骤102可以通过以下方式实现:在步骤1021中,使用预置的根ca公钥对当前二级ca证书进行公钥验签;在步骤1022中,在当前二级ca证书的公钥验签合格后,使用证书吊销机制确定当前二级ca证书是否有效;在步骤1023中,依据确定结果,对固件更新包进行安全验证。

针对步骤1021,安全芯片在出厂时预置了升级程序、根证书、二级ca的有效二级ca证书的组织信息和证书序列号,其中,根证书记录了根ca的公钥;在标准x509.v3证书中,组织信息可以包括:组织名称(oganizationname)、国家(country)等。安全芯片使用根证书记录的根ca公钥对当前二级ca证书进行公钥验签。

安全芯片使用根证书记录的根ca公钥对当前二级ca证书进行公钥验签,校验当前二级ca证书的真实性;若当前二级ca证书的公钥验签不合格,则验证固件更新包未通过安全验证。

针对步骤1022,安全芯片在出厂时预置了二级ca的有效二级ca证书的证书序列号,证书序列号反映固件更新包的版本。若安全芯片的新固件被研发出来,则根ca给二级ca下发新二级ca证书,新二级ca证书的证书序列号发生变化,新二级ca证书的证书序列号可以是在原有的有效二级ca证书的证书序列号基础上增加预设单位如1后得到的,根ca针对同一安全芯片先后下发的多个二级ca证书的证书序列号逐渐递增。

安全芯片发生固件更新时,安全芯片删除原有的有效二级ca证书的证书序列号,将新二级ca证书的证书序列号作为有效二级ca证书的证书序列号使用,保证了安全芯片中有效二级ca证书的证书序列号,与针对最新固件更新包签发的二级ca证书的证书序列号一致。

当证书吊销机制是基于二级ca证书的证书序列号大小实现证书吊销的机制时,参见图4是根据一示例性实施例示出的另一种安全芯片固件更新方法流程图,步骤1022可以通过以下方式实现:在步骤1022-1中,确定当前二级ca证书中的证书序列号是否大于或等于安全芯片中设置的有效二级ca证书的证书序列号;在步骤1022-2中,若当前二级ca证书中的证书序列号大于或等于安全芯片中设置的有效二级ca证书的证书序列号,则确定当前二级ca证书有效;在步骤1022-3中,若当前二级ca证书中的证书序列号小于安全芯片中设置的有效二级ca证书的证书序列号,则确定当前二级ca证书失效。

针对步骤1022-2,安全芯片在确定当前二级ca公钥证书有效之后,当当前二级ca证书中的证书序列号大于安全芯片中设置的有效二级ca证书的证书序列号时,执行有效二级ca公钥证书的证书序列号的更新操作,具体删除原有的有效二级ca公钥证书的证书序列号,将当前二级ca证书的证书序列号作为有效二级ca证书的证书序列号使用。例如,安全芯片中原有的有效二级ca公钥证书的证书序列号为sn1,当前二级ca公钥证书中的证书序列号为sn2,若确定sn2大于sn1,则将安全芯片中有效二级ca公钥证书的证书序列号由sn1改为sn2。

针对步骤1022-3,二级ca易发生私钥泄露,若二级ca发生私钥泄露之后安全芯片发生了固件更新,安全芯片中有效二级ca证书的证书序列号已经变大,则攻击者使用的原有的二级ca证书的证书序列号,小于安全芯片中当前设置的有效二级ca证书的证书序列号。这时安全芯片确定攻击者使用的二级ca证书失效。

当证书吊销机制是基于各二ca证书的黑名单实现证书吊销的机制时,可以通过确定二级ca证书是否位于黑名单内,确定该二级ca证书是否有效。

根ca对二级ca进行管理,生成二级ca证书的黑名单,黑名单又称为证书吊销列表,黑名单中记录了已被吊销的二级ca证书的信息。安全芯片可以通过本地网络设备从根ca获取该黑名单,查找当前二级ca证书是否位于该黑名单中,在当前二级ca证书位于黑名单中时,确定当前二级ca证书失效,在当前二级ca证书未在黑名单中时,确定当前二级ca证书有效。

相比于黑名单吊销机制,采用证书序列号单调递增的吊销机制,节省了下载黑名单所需的网络流量消耗、存储黑名单占用的空间,减少了本地设备实现成本和安全芯片实现成本。

实现中,安全芯片在出厂时预置了二级ca的有效二级ca证书的组织信息。安全芯片在当前二级ca证书的公钥验签合格后,可以验证当前二级ca证书的组织信息是否与安全芯片预置的组织信息一致,校验当前二级ca证书的合法性;若验证组织信息不一致,则验证固件更新包未通过安全验证;若验证组织信息一致,则进一步使用证书吊销机制确定当前二级ca证书是否有效。基于组织信息验证操作,实现了对当前二级ca证书的合法性验证。

针对步骤1023,若确定当前二级ca证书失效,则验证整个更新包未通过安全验证。若确定当前二级ca公钥证书有效,则安全芯片可以执行以下操作:

使用二级ca公钥证书中的二级ca公钥对开发者证书进行公钥验签,校验开发者公钥证书的合法性;

在开发者公钥证书的公钥验签不合格的情况下,验证整个固件更新包未通过安全验证;

在开发者公钥证书的公钥验签合格的情况下,使用开发者公钥证书中的开发者公钥对整个固件更新包的签名进行验签,校验固件更新包的合法性和真实性;

在签名验签合格的情况下,验证固件更新包通过安全验证;

在签名的验签不合格的情况下,验证固件更新包未通过安全验证。

通过上述多个步骤,完成包括两个级别ca的pki架构下的固件更新包验证。

场景二:pki架构仅包括一个级别ca。例如,pki架构仅包括根ca,或者,pki架构仅包括二级ca。

在pki架构仅包括根ca的情况下,根ca使用自身的ca私钥对开发者公钥进行签名,得到开发者证书,开发者使用开发者私钥对安全芯片的固件更新包进行签名,并将带签名的固件更新包上传至根ca。本地网络设备从根ca下载带签名的固件更新包和开发者证书,并将其发送给本地设备。

安全芯片在出厂时预置了升级程序和根证书,根证书记录了根ca的ca公钥。安全芯片先使用根证书记录的ca公钥对获取的开发者证书进行公钥验签;在开发者证书的公钥验签不合格的情况下,验证固件更新包未通过安全验证;在开发者证书的公钥验签合格的情况下,使用开发者证书中的开发者公钥对固件更新包的签名进行验签;在签名验签合格的情况下,验证固件更新包通过安全验证;在签名的验签不合格的情况下,验证固件更新包未通过安全验证。

在pki架构仅包括二级ca的情况下,二级ca使用自身的ca私钥对开发者公钥进行签名,得到开发者证书,开发者使用开发者私钥对安全芯片的固件更新包进行签名,并将带签名的固件更新包上传至二级ca。本地网络设备从二级ca下载带签名的固件更新包和开发者证书,并将其发送给本地设备。

安全芯片在出厂时预置了升级程序和根证书,根证书记录了二级ca的ca公钥。安全芯片先使用根证书记录的ca公钥对获取的开发者证书进行公钥验签;在开发者证书的公钥验签不合格的情况下,验证固件更新包未通过安全验证;在开发者证书的公钥验签合格的情况下,使用开发者证书中的开发者公钥对固件更新包的签名进行验签;在签名验签合格的情况下,验证固件更新包通过安全验证;在签名的验签不合格的情况下,验证固件更新包未通过安全验证。

由于二级ca安全性不高,易发生ca私钥泄露,以及ca公钥置于设备内无法吊销,仅能对配对的ca私钥进行验签,因此需要投入专门的硬件安全设施,来保护二级ca的ca私钥安全。

在步骤103中,在验证固件更新包通过安全验证的情况下,使用固件更新包进行固件更新。

安全芯片在验证固件更新包通过安全验证的情况下,安装固件更新包,完成固件更新。

安全芯片在验证固件更新包未通过安全验证的情况下,不安装固件更新包,保证了自身的数据安全。

本公开基于pki架构的设置,使得安全芯片在固件更新的过程中不必与ca即云端建立实时网络连接,避免了背景技术中基于多次网络连接和多次密码建立增大了云端工作压力的问题,增加了升级传输的稳定性,减少了安全芯片的固件更新时间,提高了用户体验。由于云端无需对固件更新包进行加密,无需配置加密机,因此节省了云端工作成本。

传统tsm方案,对于本地设备的开发者,需要实现本地设备与tsm之间安全通道的建立,以确保数据安全传输,然而建立安全通道的过程涉及了多种加密算法和协议,开发门槛较高。而本公开采用pki架构进行固件更新数据传输,本地设备的开发者只需实现简单的http下载固件更新数据的功能即可,降低了开发门槛、开发难度,便于程序开发。

图5是根据一示例性实施例示出的一种安全芯片固件更新方法流程图,图5所示的方法应用于本地网络设备,图5所示的安全芯片固件更新方法包括以下步骤:

在步骤201中,从证书颁发机构ca下载安全芯片的固件更新数据,固件更新数据包括:带签名的固件更新包;

在步骤202中,将固件更新数据发送给本地设备中的安全芯片,使得安全芯片在利用公钥基础设施pki安全机制,验证固件更新包通过安全验证的情况下,使用固件更新包进行固件更新。

在物联网场景下,本地网络设备可以为网关、安装功能app的终端如手机等,本地设备可以为室内电视、空调、冰箱等物联网设备,物联网设备安装有安全芯片。

基于pki架构的设置,本地网络设备可以从ca下载安全芯片的固件更新数据,并将固件更新数据发送给本地设备的主处理器,由本地设备的主处理器将固件更新数据发送给内部安全芯片,使得安全芯片在固件更新的过程中不必与ca即云端建立实时网络连接,避免了背景技术中基于多次网络连接和多次密码建立增大云端工作压力的问题,增加了升级传输的稳定性,减少了安全芯片的固件更新时间,提高了用户体验。由于云端无需对固件更新包进行加密,无需配置加密机,因此节省了云端工作成本。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。

其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。

与前述应用功能实现方法实施例相对应,本公开还提供了应用功能实现装置及相应的终端的实施例。

图6是根据一示例性实施例示出的一种安全芯片固件更新装置框图,应用于本地设备中的安全芯片,所述装置包括:获取模块31、验证模块32和更新模块33;其中,

所述获取模块31,被配置为获取所述本地网络设备发送的所述安全芯片的固件更新数据,所述固件更新数据是所述本地网络设备从证书颁发机构ca下载的数据,所述固件更新数据包括:带签名的固件更新包;

所述验证模块32,被配置为利用公钥基础设施pki安全机制,对所述固件更新包进行安全验证;

所述更新模块33,被配置为在验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

在一个可选的实施例中,所述ca为二级ca,所述固件更新数据还包括:所述二级ca的当前二级ca证书;所述pki安全机制包括证书吊销机制,所述证书吊销机制是基于二级ca证书的证书序列号大小实现证书吊销的机制,或者,所述证书吊销机制是基于二级ca证书的黑名单实现证书吊销的机制。在图6所示的安全芯片固件更新装置的基础上,参照图7,所述验证模块32,可以包括:验签子模块321、确定子模块322和验证子模块323;其中,

所述验签子模块321,被配置为使用预置的根ca公钥对所述当前二级ca证书进行公钥验签;

所述确定子模块322,被配置为在所述当前二级ca证书的公钥验签合格后,使用所述证书吊销机制确定所述当前二级ca证书是否有效;

所述验证子模块323,被配置为依据确定结果,对所述固件更新包进行安全验证。

在一个可选的实施例中,所述证书吊销机制是基于二级ca证书的证书序列号大小实现证书吊销的机制,在图7所示的安全芯片固件更新装置的基础上,参照图8,所述确定子模块322,可以包括:第一确定单元322-1、第二确定单元322-2和第三确定单元322-3;其中,

所述第一确定单元322-1,被配置为确定所述当前二级ca证书中的证书序列号是否大于或等于所述安全芯片中设置的有效二级ca证书的证书序列号;

所述第二确定单元322-2,被配置为若大于或等于,则确定所述当前二级ca证书有效;

所述第三确定单元322-3,被配置为若小于,则确定所述当前二级ca证书失效。

在一个可选的实施例中,在图8所示的安全芯片固件更新装置的基础上,所述装置还可以包括:更改模块;

所述更改模块,被配置为在所述确定所述当前二级ca证书有效之后,当所述当前二级ca证书中的证书序列号大于所述安全芯片中设置的有效二级ca证书的证书序列号时,将所述有效二级ca证书的证书序列号,更新为所述当前二级ca证书中的证书序列号。

在一个可选的实施例中,所述固件更新数据还包括:开发者证书;所述签名基于开发者私钥得到;在图7所示的安全芯片固件更新装置的基础上,所述验证子模块323,可以包括:第一验证单元、第一验签单元、第二验证单元、第二验签单元、第三验证单元和第四验证单元;其中,

所述第一验证单元,被配置为在确定所述当前二级ca证书失效后,验证所述固件更新包未通过安全验证;

所述第一验签单元,被配置为在确定所述当前二级ca证书有效后,使用所述当前二级ca证书中的二级ca公钥对所述开发者证书进行公钥验签;

所述第二验证单元,被配置为在所述开发者证书的公钥验签不合格的情况下,验证所述固件更新包未通过安全验证;

所述第二验签单元,被配置为在所述开发者证书的公钥验签合格的情况下,使用所述开发者证书中的开发者公钥对所述固件更新包的所述签名进行验签;

所述第三验证单元,被配置为在所述签名验签合格的情况下,验证所述固件更新包通过安全验证;

所述第四验证单元,被配置为在所述签名验签不合格的情况下,验证所述固件更新包未通过安全验证。

图9是根据一示例性实施例示出的一种安全芯片固件更新装置框图,应用于本地网络设备,所述装置包括:下载模块41和发送模块42;其中,

所述下载模块41,被配置为从证书颁发机构ca下载安全芯片的固件更新数据,所述固件更新数据包括:带签名的固件更新包;

所述发送模块42,被配置为将所述固件更新数据发送给本地设备中的所述安全芯片,使得所述安全芯片在利用公钥基础设施pki安全机制,验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

参见图10,图10是根据一示例性实施例示出的一种用于安全芯片固件更新装置的一结构示意图,安全芯片固件更新装置包括:通过内部总线51连接的主存储器52、主处理器53、外部接口54和安全芯片55,安全芯片55包括芯片处理器551和芯片存储器552。

其中,所述外部接口54,用于获取固件更新数据,并将固件更新数据传送给主处理器53;

所述主处理器53,用于将固件更新数据发送给安全芯片55;

所述芯片存储器552,用于存储安全芯片固件更新对应的机器可读指令;

所述芯片处理器551,用于读取芯片存储器552上的所述机器可读指令,并执行所述指令以实现如下操作:

获取所述本地网络设备发送的所述安全芯片的固件更新数据,所述固件更新数据是所述本地网络设备从证书颁发机构ca下载的数据,所述固件更新数据包括:带签名的固件更新包;

利用公钥基础设施pki安全机制,对所述固件更新包进行安全验证;

在验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

参见图11,图11是根据一示例性实施例示出的一种用于安全芯片固件更新装置的一结构示意图,安全芯片固件更新装置包括:通过内部总线61连接的存储器62、处理器63和外部接口64。

其中,所述外部接口54,用于获取和发送固件更新数据;

所述存储器62,用于存储安全芯片固件更新对应的机器可读指令;

所述处理器63,用于读取存储器62上的所述机器可读指令,并执行所述指令以实现如下操作:

从证书颁发机构ca下载安全芯片的固件更新数据,所述固件更新数据包括:带签名的固件更新包;

将所述固件更新数据发送给本地设备中的所述安全芯片,使得所述安全芯片在利用公钥基础设施pki安全机制,验证所述固件更新包通过安全验证的情况下,使用所述固件更新包进行固件更新。

在本申请实施例中,计算机可读存储介质可以是多种形式,比如,在不同的例子中,所述机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。特殊的,所述的计算机可读介质还可以是纸张或者其他合适的能够打印程序的介质。使用这些介质,这些程序可以被通过电学的方式获取到(例如,光学扫描)、可以被以合适的方式编译、解释和处理,然后可以被存储到计算机介质中。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1