确认车辆的电子控制单元

文档序号:1967114 发布日期:2021-12-14 浏览:16次 >En<

阅读说明:本技术 确认车辆的电子控制单元 (Electronic control unit for confirming vehicle ) 是由 A·蒙代洛 A·特罗亚 于 2020-03-10 设计创作,主要内容包括:本公开包含用于确认车辆的电子控制单元的设备、方法及系统。实施例包含存储器及电路系统,所述电路系统经配置以基于车辆的电子控制单元的标识(ID)号来产生运行时密码散列及将所述运行时密码散列与存储在所述存储器的一部分中的密码散列进行比较。(The present disclosure includes apparatus, methods, and systems for validating an electronic control unit of a vehicle. Embodiments include memory and circuitry configured to generate a runtime cryptographic hash based on an Identification (ID) number of an electronic control unit of a vehicle and compare the runtime cryptographic hash to a cryptographic hash stored in a portion of the memory.)

具体实施方式

本公开包含用于确认车辆的电子控制单元的设备、方法及系统。实施例包含存储器及电路系统,所述电路系统经配置以基于车辆的电子控制单元的标识(ID)号来产生运行时密码散列及将运行时密码散列与存储在存储器的一部分中的密码散列进行比较。

许多电子控制单元一起工作以操作车辆。当在车辆上更换硬件时,有时原始硬件被更换为非原始硬件或未经培训或培训不当的人员更换硬件。例如,非原始硬件及/或不当安装可能导致车辆出故障。

因而,为了确保安全的车辆,重要的是确认(例如,认证及/或证明)安装在车辆中的硬件是真的(例如,与原始编程的相同)且恰当地安装。确认车辆的硬件还可确保电子控制单元的保修,因为仅可使用真实且原始的更换部件。当购买或出售轿车时,双方可确信车辆与轿车制造商出售的相同。

本公开的实施例可在车辆启动时确认电子控制单元。例如,本公开的实施例可检测车辆的通电且响应于检测到车辆通电而将运行时密码散列与存储在存储器的一部分中的密码散列进行比较。

如本文中所使用,“一”、“一个”或“数个”可指一或多个某物,且“多个”可指两个或更多个此类事物。例如,一存储器装置可指一或多个存储器装置,且多个存储器装置可指两个或更多个存储器装置。另外,如本文中所使用,特别是关于附图中的参考数字的指定符“R”、“B”、“S”及“N”指示如此指定的数个特定特征可被包含在本公开的数个实施例中。所述数目在指定符之间可相同或不同。

本文中的图遵循编号约定,其中首位或前几位数字对应于附图图号且其余数字识别附图中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。例如,101可指图1中的元件“01”,且类似元件可在图2中被引用为201。

图1说明根据本公开的实施例的具有数个物理块的存储器阵列101的一部分的图。存储器阵列101可为例如快闪存储器阵列,例如NAND快闪存储器阵列。作为额外实例,存储器阵列101可为电阻可变存储器阵列,例如PCRAM、RRAM、MMRAM或自旋力矩转移(STT)阵列等等。然而,本公开的实施例不限于特定类型的存储器阵列。此外,存储器阵列101可为安全存储器阵列,如本文中将进一步描述。此外,尽管未在图1中展示,存储器阵列101可连同与其操作相关联的各种外围电路系统一起位于特定半导体裸片上。

如图1中所展示,存储器阵列101具有存储器单元的数个物理块107-0(块0)、107-1(块1)、...、107-B(块B)。存储器单元可为单电平单元及/或多电平单元,举例来说,例如两电平单元、三电平单元(TLC)或四电平单元(QLC)。作为实例,存储器阵列101中的物理块的数目可为128个块、512个块或1,024个块,但实施例不限于存储器阵列101中的2的特定次幂或任何特定数目的物理块。

存储器单元的数个物理块(例如,块107-0、107-1、...、107-B)可被包含在存储器单元的平面中,且存储器单元的数个平面可被包含在裸片上。例如,在图1中所展示的实例中,每一物理块107-0、107-1、...、107-B可为单个裸片的部分。即,图1中所说明的存储器阵列101的部分可为存储器单元的裸片。

如图1中所展示,每一物理块107-0、107-1、...、107-B包含耦合到存取线(例如,字线)的存储器单元的数个物理行(例如,103-0、103-1、...、103-R)。每一物理块中的行(例如,字线)的数目可为32,但实施例不限于每物理块特定数目的行103-0、103-1、...、103-R。此外,虽然未在图1中展示,但存储器单元可经耦合到感测线(例如,数据线及/或数字线)的列。

所属领域的一般技术人员将明白,每一行103-0、103-1、...、103-R可包含存储器单元的数个页面(例如,物理页面)。物理页面是指编程及/或感测单元(例如,作为功能群组一起编程及/或感测的数个存储器单元)。在图1中所展示的实施例中,每一行103-0、103-1、...、103-R包括存储器单元的一个物理页面。然而,本公开的实施例不限于此。例如,在实施例中,每一行可包括存储器单元的多个物理页面(例如,耦合到偶数数据线的存储器单元的一或多个偶数页面,及耦合到奇数数据线的存储器单元的一或多个奇数页面)。另外,对于包含多电平单元的实施例,存储器单元的物理页面可存储数据的多个页面(例如,逻辑页面)(例如,数据的上页面及数据的下页面,其中物理页面中的每一单元存储朝向数据的上页面的一或多个位及朝向数据的下页面的一或多个位)。

如图1中所展示,存储器单元的页面可包括数个物理扇区105-0、105-1、...、105-S(例如,存储器单元的子集)。单元的每一物理扇区105-0、105-1、...、105-S可存储数据的数个逻辑扇区。另外,数据的每一逻辑扇区可对应于数据的特定页面的一部分。作为实例,存储在特定物理扇区中的数据的第一逻辑扇区可对应于与数据的第一页面对应的逻辑扇区,且存储在特定物理扇区中的数据的第二逻辑扇区可对应于数据的第二页面。每一物理扇区105-0、105-1、...、105-S可存储系统及/或用户数据,及/或可包含开销数据,例如错误校正码(ECC)数据、逻辑块地址(LBA)数据及元数据。

逻辑块寻址是一种可被主机用于识别数据的逻辑扇区的方案。例如,每一逻辑扇区可对应唯一逻辑块地址(LBA)。另外,LBA还可对应于(例如,动态地映射到)可指示存储器中的数据的那个逻辑扇区的物理位置的物理地址,例如物理块地址(PBA)。数据的逻辑扇区可为数个字节的数据(例如,256字节、512字节、1,024字节或4,096字节)。然而,实施例不限于这些实例。

应注意,物理块107-0、107-1、...、107-B,行103-0、103-1、...、103-R,扇区105-0、105-1、...、105-S及页面的其它配置是可能的。例如,物理块107-0、107-1、...、107-B的行103-0、103-1、...、103-R每一者可存储对应于单个逻辑扇区的数据,所述单个逻辑扇区可包含例如多于或少于512字节的数据。

图2是根据本公开的实施例的包含主机202及呈存储器装置206的形式的设备的计算系统200的框图。如本文中所使用,“设备”可指但不限于多种结构中的任一者或结构的组合,举例来说,例如电路或电路系统、一裸片或若干裸片、一模块或若干模块、一装置或若干装置或一系统或若干系统。此外,在实施例中,计算系统200可包含与存储器装置206类似的数个存储器装置。

在图2中所说明的实施例中,存储器装置206可包含具有存储器阵列201的存储器216。存储器阵列201可与先前结合图1所描述的存储器阵列101类似。此外,存储器阵列201可为安全阵列,如本文中将进一步描述。尽管图2中说明一个存储器阵列201,但存储器216可包含与存储器阵列201类似的任何数目的存储器阵列。

如图2中所说明,主机202可经由接口204耦合到存储器装置206。主机202及存储器装置206可在接口204上进行通信(例如,发送命令及/或数据)。主机202及/或存储器装置206可为物联网(IoT)启用装置,举例来说,例如汽车(例如,车辆及/或运输基础设施)IoT启用装置以及其它主机系统或其部分,且可包含存储器存取装置(例如,处理器)。所属领域的一般技术人员将明白,“处理器”可意指一或多个处理器,例如并行处理系统、数个协处理器等。

接口204可为呈标准化物理接口的形式。例如,当存储器装置206用于计算系统200中的信息存储时,接口204可为串行高级技术附件(SATA)物理接口、外围组件互连高速(PCIe)物理接口、通用串行总线(USB)物理接口或小型计算机系统接口(SCSI),以及其它物理连接器及/或接口。然而,一般来说,接口204可提供用于在存储器装置206与具有接口204可兼容的接收器的主机(例如,主机202)之间传递控制、地址、信息(例如,数据)及其它信号的接口。

存储器装置206包含控制器208以与主机202及存储器216(例如,存储器阵列201)进行通信。例如,控制器208可发送命令以对存储器阵列201执行操作,包含感测(例如,读取)、编程(例如,写入)、移动及/或擦除数据以及其它操作的操作。

控制器208可与存储器216包含在同一物理装置(例如,同一裸片)上。替代地,控制器208可被包含在通信地耦合到包含存储器216的物理装置的单独物理装置上。在实施例中,控制器208的组件可作为分布式控制器跨多个物理装置(例如,与存储器在同一裸片上的一些组件,及在不同裸片、模块或板上的一些组件)散布。

主机202可包含主机控制器(图2中未展示)以与存储器装置206进行通信。主机控制器可经由接口204将命令发送到存储器装置206。主机控制器可与存储器装置206及/或存储器装置206上的控制器208进行通信以读取、写入及/或擦除数据以及进行其它操作。此外,在实施例中,主机202可为具有IoT通信能力的IoT启用装置,如本文中先前所描述。

存储器装置206上的控制器208及/或主机202上的主机控制器可包含控制电路系统及/或逻辑(例如,硬件及固件)。在实施例中,存储器装置206上的控制器208及/或主机202上的主机控制器可为耦合到包含物理接口的印刷电路板的专用集成电路(ASIC)。而且,存储器装置206及/或主机202可包含易失性及/或非易失性存储器的缓冲器及一或多个寄存器。

例如,如图2中所展示,存储器装置206可包含电路系统210。在图2中所说明的实施例中,电路系统210被包含在控制器208中。然而,本公开的实施例不限于此。例如,在实施例中,电路系统210可被包含在存储器216中(例如,与存储器216包含在同一裸片上)(例如,而不是在控制器208中)。电路系统210可包括例如硬件、固件及/或软件。

电路系统210可产生运行时密码散列241以用于确认(例如,认证及/或证明)车辆(例如,图3中的车辆351)的电子控制单元(例如,图3中的电子控制单元347)。经产生运行时密码散列241可基于电子控制单元的标识(ID)号245。例如,ID号245可为序列号且可经由接口(例如,图3中的接口349)从电子控制单元发送。所述接口可为串行高级技术附件(SATA)物理接口、外围组件互连高速(PCIe)物理接口、通用串行总线(USB)物理接口、小型计算机系统接口(SCSI)或总线,以及其它物理连接器及/或接口。在一些实例中,存储器装置216可从电子控制单元接收ID号245及/或可将ID号245存储在存储器216中(例如,在存储器阵列201中)。

如本文中所使用,确认电子控制单元(例如,图3中的电子控制单元347)可包含及/或指认证及/或证明电子控制单元是真的(例如,原始、经授权、由工厂提供、恰当地安装及/或由有证人员安装),且未被更改或不当地安装。存储在存储器阵列201中包含ID号245的数据的运行时密码散列241可包括例如SHA-256密码散列。此外,存储在存储器阵列201中的数据的运行时密码散列241可包括256字节的数据。

可例如由电路系统210产生(例如,计算)存储在存储器阵列201中的数据的运行时密码散列241。在此实例中,可由存储器装置206在内部产生经存储数据的运行时密码散列241而无需在接口204上移动外部数据。作为额外实例,可从外部实体传送数据的运行时密码散列241。例如,主机202可产生存储在存储器阵列201中的数据的运行时密码散列241且将经产生运行时密码散列241发送到存储器装置206(例如,电路系统210可从主机202接收存储在存储器阵列201中的数据的运行时密码散列241)。

可例如由电路系统210基于(例如,响应于)外部命令,例如从主机202接收的命令来产生(例如,计算)运行时密码散列241。例如,可通过读取存储在存储器阵列201中的数据及使用密码散列函数(例如,图3中的密码散列函数365)来散列数据而产生运行时密码散列241。作为额外实例,主机202可产生运行时密码散列241,且将经产生运行时密码散列241发送(例如提供)到存储器装置206(例如,电路系统210可从主机202接收运行时密码散列241)。

如图2中所展示,运行时密码散列241可经存储在存储器阵列201中。例如,运行时密码散列241可经存储在存储器阵列201的对存储器装置206及/或主机202的用户不可存取的一部分中(例如,在存储器阵列201的“隐藏”区域中)。

在实施例中,存储器阵列201(例如,阵列201的子集,或整个阵列201)可为安全阵列(例如,待保持在控制之下的存储器216的区)。例如,存储在存储器阵列201中的数据可包含敏感(例如,非用户)数据,例如主机固件及/或待针对敏感应用程序执行的代码。在此实施例中,可使用一对非易失性寄存器来定义安全阵列。例如,在图2中所说明的实施例中,电路系统210包含可用于定义安全阵列的寄存器214-1及214-2。例如,寄存器214-1可定义安全阵列的地址(例如,数据的起始LBA),且寄存器214-2可定义安全阵列的大小(例如,数据的结束LBA)。

一旦已定义安全阵列,电路系统210就可使用经认证且防重放的受保护命令来产生(例如,计算)与安全阵列相关联的密码散列243,所述密码散列243可在本文中被称为黄金散列243(例如,使得仅存储器装置206知道黄金散列243,且仅存储器装置206能够产生及更新黄金散列243)。在一些实例中,可由存储器装置206接收黄金散列243。例如,可从机械师、经销商及/或制造商发送黄金散列243。黄金散列243可经存储在存储器阵列201的不可存取部分中且可在确认车辆(例如,图3中的车辆351)的电子控制单元(例如,图3中的电子控制单元347)的过程期间使用,如本文中将进一步描述。

存储器装置206(例如,电路系统210)可确认存储在存储器阵列201中的数据(例如,图3中的数据363),包含电子控制单元(例如,图3中的电子控制单元347)的ID号245。例如,电路系统210可响应于存储器装置206、电子控制单元及/或车辆(例如,图3中的车辆351)的供电(例如通电及/或上电)来确认存储在阵列201中的数据。因而,可在对存储器装置206、电子控制单元及/或车辆供电时(例如,自动地)启动电子控制单元的确认。

作为额外实例,电路系统210可启动存储在存储器阵列201中的数据(例如,图3中的数据363)的确认。例如,主机202可将命令发送到存储器装置206(例如,电路系统210)以启动存储在存储器阵列201中的电子控制单元(例如,图3中的电子控制单元347)的ID号245的确认以确定电子控制单元是否真实。

在其中存储器阵列201是安全阵列的实施例中,本文中先前所描述的黄金散列243还可用于确认存储在存储器阵列201中包含ID号245的数据(例如,图3中的数据363)。例如,可产生(例如,计算)运行时密码散列241并将其与黄金散列243进行比较。如果所述比较指示运行时密码散列241与黄金散列243匹配(例如,相等),那么可确定ID号245是有效的(例如,图3中的有效369),且因此电子控制单元(例如,图3中的电子控制单元347)是真实的。然而,如果所述比较指示运行时密码散列241与黄金散列243不匹配,那么这可指示ID号245是无效的(例如,图3中的无效371),且因此电子控制单元是不真实的。

在一些实例中,可将不真实的电子控制单元(例如,图3中的电子控制单元347)报告给主机202。主机202可响应于运行时密码散列241与黄金散列245不相等(例如,电子控制单元不真实)而显示消息(例如,图3中的消息350)及/或发送消息。例如,所述消息可识别电子控制单元且将电子控制单元分类为不真实及/或安装不当。

可响应于电路系统210检测到计算系统200、存储器装置206、电子控制单元(例如,图3中的电子控制单元347)及/或车辆(例如,图3中的车辆351)的供电而产生运行时密码散列241并将其与黄金散列243进行比较。

图2中所说明的实施例可包含额外电路系统、逻辑及/或组件,未说明这些额外电路系统、逻辑及/或组件以免混淆本公开的实施例。例如,存储器装置206可包含地址电路系统以锁存通过I/O电路系统在I/O连接器上提供的地址信号。地址信号可由行解码器及列解码器接收及解码,以存取存储器阵列201。此外,存储器装置206可包含与存储器阵列201分离及/或除存储器阵列201之外的主存储器,举例来说,例如DRAM或SDRAM。本文中将进一步描述(例如,结合图10)进一步说明存储器装置206的额外电路系统、逻辑及/或组件的实例。

图3是根据本公开的实施例的电子控制单元确认过程361的实例的框图。电子控制确认过程361可包含使用电路系统(例如,图2中的电路系统210)且通过应用密码散列函数365来产生运行时密码散列341。运行时密码散列341可用于确认(例如,认证及/或证明)存储在存储器316中(例如,在存储器阵列301)中包含ID号(例如,图2中的ID号245)的数据363。ID号可由存储器316经由接口349从电子控制单元347接收。

在数个实施例中,电子控制单元确认过程361可包含确认多个电子控制单元,且电子控制确认过程316可包含产生用于确认数据363(包含多个电子控制单元中的每一者的每一ID号)的运行时密码散列。

如本文中所使用,确认存储在存储器阵列301中的数据363可包含及/或指认证及/或证明电子控制单元347是真的(例如,原始、经授权、由工厂提供、恰当地安装及/或由有证人员安装),且没有用未经授权电子控制单元安装或更换及/或不当地安装。可通过读取存储在存储器阵列301中包含ID号(例如,图2中的ID号245)的数据363及应用密码散列函数365来散列数据363而产生运行时密码散列341。在一些实例中,密码散列函数365可为SHA-256密码散列函数。

运行时密码散列341(例如,图2中的运行时密码散列241)可经存储在存储器阵列301(例如,图2中的存储器阵列201)中。例如,运行时密码散列341可经存储在存储器阵列301的对存储器装置(例如,图2中的存储器装置206)及/或主机(例如,图2中的主机202)的用户不可存取的一部分中。

在实施例中,存储器阵列301(例如,阵列301的子集或整个阵列301)可为安全阵列(例如,待保持在控制之下的存储器316的区)。例如,存储在存储器阵列301中的数据可包含敏感(例如,非用户)数据,例如主机固件及/或待针对敏感应用程序执行的代码。在此实施例中,可使用一对非易失性寄存器来定义安全阵列。例如,在图2中所说明的实施例中,电路系统210包含可用于定义安全阵列的寄存器214-1及214-2。一旦已定义安全阵列,电路系统就可使用经认证且防重放的受保护命令来产生(例如,计算)与安全阵列相关联的密码散列343,所述密码散列343在本文中可被称为黄金散列343(例如,使得仅存储器装置知道黄金散列343,且仅存储器装置能够产生及更新黄金散列343)。

在一些实例中,黄金散列343可由存储器316接收,经存储在存储器阵列301的不可存取部分中,且可在确认电子控制单元347的过程361期间使用。例如,可从机械师、经销商及/或制造商发送黄金散列343。在一些实例中,可响应于机械师、经销商及/或制造商更换车辆351上的电子控制单元347而从机械师、经销商及/或制造商发送经更新黄金散列,且可基于更换电子控制单元的ID号来产生经更新运行时密码散列并将其与经更新黄金散列进行比较。

确认电子控制单元347的过程361可响应于存储器装置(例如,图2中的存储器装置206)、电子控制单元单元347及/或车辆351的供电(例如,通电及/或上电)而开始。因而,可在对存储器装置、电子控制单元347及/或车辆351供电时(例如,自动地)启动电子控制单元347的确认。

作为额外实例,可响应于从主机(例如,图2中的主机202)接收到启动存储在存储器阵列301中包含ID号(例如,图2中的ID号245)的数据363的确认的命令而启动确认电子控制单元347的过程361。

可产生(例如,计算)运行时密码散列341并将其与黄金散列343进行比较。如果比较367指示运行时密码散列341与黄金散列343匹配(例如,相等),那么可确定ID号(例如,图2中的ID号245)是有效的369,且因此电子控制单元347是真实的且可完成确认电子控制单元347的过程361。然而,如果比较367指示运行时密码散列341与黄金散列343不匹配,那么这可指示ID号是无效的371,且因此电子控制单元347是不真实的。

在一些实例中,可将不真实的电子控制单元347报告给主机(例如,图2中的主机202)。主机可响应于电子控制单元不真实而例如在车辆351的信息娱乐系统上显示消息350,及/或将消息350发送例如给车辆经销商、制造商及/或对车辆进行保修的某人。例如,所述消息可识别电子控制单元347且将电子控制单元347分类为不真实及/或不当地安装。

可响应于经更新黄金散列与经更新运行时密码散列相等而移除消息350。例如,可响应于机械师、经销商及/或制造商更换车辆351上的电子控制单元347而从机械师、经销商及/或制造商发送经更新黄金散列,且可基于更换电子控制单元的ID号来产生经更新运行时密码散列并将其与经更新黄金散列进行比较。

在一些实施例中,响应于运行时密码散列341与密码散列343不相等,车辆351可被断电及/或车辆351的特征可能不可用(例如,被停用)。例如,如果不真实的电子控制单元347与自主驾驶特征的功能性相关,那么自主驾驶特征可能不可用。使自主驾驶特征不可用可防止起因于例如由于电子控制单元347不真实或由无证机械师安装致使电子控制单元347出故障及/或失效而对自主车辆351中的乘客造成受伤或死亡。

响应于经更新黄金散列与经更新运行时密码散列相等,车辆351可被通电及/或车辆351的特征可为可用的(例如,被启用)。例如,可响应于机械师、经销商及/或制造商更换车辆351上的电子控制单元347而从机械师、经销商及/或制造商发送经更新黄金散列,且可基于更换电子控制单元的ID号来产生经更新运行时密码散列并将其与经更新黄金散列进行比较。

可响应于检测到存储器装置(例如,图2中的存储器装置206)、电子控制单元347及/或车辆351的供电(例如,通电及/或上电)而产生运行时密码散列341并将其与密码散列343进行比较。

图4A说明根据本公开的实施例的用于定义安全存储器阵列的一对寄存器414-1及414-2的实例,且图4B说明根据本公开的实施例的包含使用寄存器414-1及414-2定义的安全存储器阵列的存储器阵列401的一部分的图。寄存器414-1及414-2可分别为例如先前结合图2所描述的寄存器214-1及214-2,且安全存储器阵列401可例如为先前结合图2所描述的存储器阵列201。例如,如图4B中所展示,安全存储器阵列401可以与先前结合图1所描述的存储器阵列101类似的方式包含存储器单元的数个物理块407-0、407-1、...、407-B,每一物理块包含具有存储器单元的数个扇区的数个物理行403-0、403-1、...、403-R。

如图4A中所展示,寄存器414-1可定义安全阵列的地址(例如,安全阵列的不同部分的地址),且寄存器414-2可定义安全阵列的大小(例如,安全阵列的不同部分的大小)。由寄存器414-1定义的安全阵列的地址可对应于例如安全阵列的起点(例如,起始LBA)(例如,安全阵列的不同部分的起点),且由寄存器414-2定义的安全阵列的大小可对应于例如安全阵列的终点(例如,结束LBA)(例如,安全阵列的不同部分的终点)。

例如,如图4A中所展示,寄存器414-1及414-2可定义N对值,其中每一相应对包括由寄存器414-1定义的地址值(例如,addr)及由寄存器414-2定义的大小值(例如,size)。例如,在图4A中所说明的实例中,Pair0包括地址值addr0及大小值size0(例如,Pair0=[addr0,size0]),Pair1包括地址值addr1及大小值size1(例如,Pair1=[addr1,size1]),依此类推,其中PairN包括地址值addrN及大小值sizeN(例如,PairN=[addrN,sizeN])。一对的地址值可对应于安全阵列的一部分的起点(例如,起始LBA),且那对的地址值及大小值的总和可对应于安全阵列的那个部分的终点(例如,结束LBA)。因而,整个安全阵列(例如,包括整个安全阵列的部分)可由以下项给出:[addr0,addr0+size0]∪[addr1,addr1+size1]∪…∪[addrN,addrN+sizeN]。

由寄存器414-2定义的大小值为零的第一对可停止安全阵列的定义。例如,在图4A中所说明的实例中,如果Pair2的大小值为零,那么安全阵列将由以下项给出:[addr0,addr0+size0]∪[addr1,addr1+size1]。

图4B中说明由寄存器414-1及414-2定义的安全阵列的实例(例如,其中由寄存器414-2定义的所有大小值均为非零)。例如,如图4B中所展示,与存储器阵列401的扇区405-0相关联的地址(例如,LBA)是addr0,与存储器阵列401的扇区405-1相关联的地址是addr0+size0,与存储器阵列401的扇区405-2相关联的地址是addr1,与存储器阵列401的扇区405-3相关联的地址是addr1+size1,与存储器阵列401的扇区405-4相关联的地址是addrN,且与存储器阵列401的扇区405-5相关联的地址是addrN+sizeN。因而,安全阵列包括扇区(例如,存储在扇区中的数据)405-0到405-1、扇区405-2到405-3及405-4到405-5。然而,在存储器阵列401的扇区405-0及扇区405-1到405-2之前的存储器阵列401的扇区不是安全阵列的部分(例如,安全阵列包括阵列401的子集)。

图5是根据本公开的实施例的包含主机502及存储器装置506的实例系统的框图。主机502及存储器装置506可分别为例如先前结合图2所描述的主机202及存储器装置206。

计算装置可使用层分阶段引导,其中每一层认证及加载后一层且在每一层处提供越来越复杂的运行时服务。一层可由前一层服务且服务于后一层,从而创建建立在较低层上且服务于较高阶层的互连层网络。如图5中所说明,第0层(“L0”)551及第1层(“L1”)553在主机内。第0层551可将固件衍生秘密(FDS)密钥552提供到第1层553。FDS密钥552可描述第1层553的代码的身份及其它安全性相关数据。在实例中,特定协议(例如稳健物联网(RIOT)核心协议)可使用FDS 552来确认其加载的第1层553的代码。在实例中,特定协议可包含装置标识合成引擎(DICE)及/或RIOT核心协议。作为实例,FDS可包含第1层固件映像本身、以密码方式识别经授权第1层固件的清单、在安全引导实施方案的背景下的经签名固件的固件版本号及/或装置的安全性关键配置设置。装置秘密558可用于创建FDS 552且经存储在与主机502的存储器中。

如由箭头554所说明,主机可将数据传输到存储器装置506。经传输数据可包含外部公共标识、证书(例如,外部标识证书)及/或外部公钥。存储器装置506的第2层(“L2”)555可接收经传输数据,且在操作系统(“OS”)557的操作中并在第一应用程序559-1及第二应用程序559-2上执行数据。

在实例操作中,主机502可读取装置秘密558,散列第1层553的身份,且执行计算,包含:

KL1=KDF[Fs(s),Hash(“immutable information(不变信息)”)]

其中KL1是外部公钥,KDF(例如,美国国家标准与技术研究院(NIST)特别出版物(National Institute of Standards and Technology(NIST)Special Publication)800-108中所定义的KDF)是密钥导出函数(例如HMAC-SHA256),且Fs(s)是装置秘密558。FDS 552可通过执行以下项来确定:

FDS=HMAC-SHA256[Fs(s),SHA256(“immutable information”)]

同样地,存储器装置506可将数据传输到主机502,如由箭头556所指示。

图6是根据本公开的实施例的用于确定数个参数的实例过程的框图。图6是确定包含外部公共标识、外部证书及外部公钥的参数的实例,所述参数接着发送到存储器装置(例如,图5中的506)的第2层(例如,第2层555),由箭头654所指示。图6中的第0层(“L0”)651对应于图5中的第0层551且同样地FDS 652对应于FDS 552,第1层653对应于第1层553,且箭头654及656分别对应于箭头554及556。

来自第0层651的FDS 652经发送到第1层653且被非对称ID产生器661用于产生公共标识(“IDlk public”)665及私密标识667。在缩写的“IDlk public”中,“lk”指示第k层(在这个例中第1层),且“public”指示所述标识是公开共享的。公共标识665被说明为由延伸到主机的第1层653的右边及外部的箭头共享。经产生私密标识667用作输入到加密器673中的密钥。加密器673可为用于对数据加密的任何处理器、计算装置等。

主机的第1层653可包含非对称密钥产生器663。在至少一个实例中,随机数产生器(RND)636可任选地将随机数输入到非对称密钥产生器663中。非对称密钥产生器663可产生与主机,例如图5中的主机502相关联的公钥(“KLk public”)669(被称为外部公钥)及私钥(“KLK private”)671(被称为外部私钥)。外部私钥可经链接到车辆(例如,图3中的车辆351)。例如,外部私钥可为使用车辆标识号(VIN)及/或其它车辆信息产生的随机数。外部公钥669可为到加密器673中的输入(作为“数据”)。加密器673可使用外部私密标识667及外部公钥669的输入来产生结果K’675。外部私钥671及结果K’675可经输入到额外加密器677中,从而得到输出K”679。输出K”679是传输到第2层(图5的555)外部证书(“IDL1 certificate”)681。外部证书681可提供验证及/或认证从装置发送的数据的来源的能力。作为实例,从主机发送的数据可通过验证证书而与主机的身份相关联,如将关联图8进一步描述。此外,外部公钥(“KL1 public key”)683可经传输到第2层。因此,主机的公共标识665、证书681及外部公钥683可经传输到存储器装置的第2层。

图7是根据本公开的实施例的用于确定数个参数的实例过程的框图。图7说明产生装置标识(“IDL2 public”)766、装置证书(“IDL2 Certificate”)782及装置公钥(“KL2 public key”)784的存储器装置(例如,图5中的存储器装置506)的第2层755。

如图6中所描述,从主机的第1层传输到存储器装置的第2层755的外部公钥(“KL1public key”)783被存储器装置的非对称ID产生器762用于产生存储器装置的公共标识(“IDlk public”)766及私密标识768。在缩写的“IDlk public”中,“lk”指示第k层(在这个例中第2层),且“public”指示所述标识是公开共享的。公共标识766被说明为由延伸到第2层755右边及外部的箭头共享。经产生私密标识768用作输入到加密器774中的密钥。

存储器装置的第2层755可包含非对称密钥产生器764。在至少一个实例中,随机数产生器(RND)738可任选地将随机数输入到非对称密钥产生器764中。非对称密钥产生器764可产生与存储器装置,例如图5中的存储器装置506相关联的公钥(“KLk public”)770(被称为装置公钥)及私钥(“KLK private”)772(被称为装置私钥)。装置公钥770可为到加密器774中的输入(作为“数据”)。加密器774可使用装置私密标识768及装置公钥770的输入来产生结果K’776。装置私钥772及结果K’776可经输入到额外加密器778中,从而得到输出K”780。输出K”780是传输回到第1层(图5的553)的装置证书(“IDL2 certificate”)782。装置证书782可提供验证及/或认证从装置发送的数据的来源的能力。作为实例,从存储器装置发送的数据可通过验证证书而与存储器装置的身份相关联,如将关联图8进一步描述。此外,装置公钥(“KL2 public key”)784可经传输到第1层。因此,存储器装置的公共标识766、证书782及装置公钥784可经传输到主机的第1层。

在实例中,响应于主机从存储器装置接收公钥,主机可使用装置公钥来加密待发送到存储器装置的数据。反之亦然,存储器装置可使用外部公钥来加密待发送到主机的数据。响应于存储器装置接收到使用装置公钥加密的数据,存储器装置可使用其自身的装置私钥来解密数据。同样地,响应于主机接收到使用外部公钥加密的数据,主机可使用其自身的外部私钥来解密数据。由于装置私钥不与存储器装置外部的另一装置共享且外部私钥不与主机外部的另一装置共享,发送到存储器装置及主机的数据保持安全。

图8是根据本公开的实施例的用于验证证书的实例过程的框图。在图8所说明的实例中,从主机(例如,从图5中的主机502的第1层553)提供公钥883、证书881及公共标识865。证书881及外部公钥883的数据可用作到解密器885中的输入。解密器885可为用于解密数据的任何处理器、计算装置等。证书881及外部公钥883的解密结果可连同公共标识一起用作到次级解密器887中的输入,从而得到输出。如在889处所说明,外部公钥883及来自解密器887的输出可指示证书是否被验证,从而得到是或否891作为输出。响应于证书被验证,可接受、解密及处理从经验证装置接收的数据。响应于证书未被验证,可丢弃、移除及/或忽略从经验证装置接收的数据。以这种方式,可检测及避免发送恶意数据的恶意装置。作为实例,可识别发送待处理数据的黑客且不处理黑客数据。

图9是根据本公开的实施例的用于验证签名的实例过程的框图。在其中装置正在发送可被验证以便避免后续否认的数据的例子中,可产生签名并将其与数据一起发送。作为实例,第一装置可向第二装置作出请求且一旦第二装置执行请求,第一装置就可指示第一装置从未作出此请求。例如使用签名的反否认方法可避免第一装置的否认且确保第二装置可执行经请求任务而无后续困难。

存储器装置906(例如图2中的存储器装置206)可将数据990发送到主机(例如图2中的主机202)。存储器装置906可在994处使用装置私钥971来产生签名996。可将签名996传输到主机902。主机902可在998处使用先前接收的数据992及外部公钥969来验证签名。以这种方式,签名是使用私钥来产生,且使用公钥来验证。以这种方式,每一装置的唯一签名可对发送签名的装置保持私密,同时允许接收装置能够解密签名以供验证。这与由发送装置使用接收装置的公钥来加密且由接收装置使用接收器的私钥来解密的数据的加密/解密形成对比。在至少一个实例中,装置可通过使用内部密码术过程(例如,椭圆曲线数字签名(ECDSA)或类似过程来验证数字签名。

图10是根据本公开的实施例的实例存储器装置1006的框图。存储器装置1006可为例如先前结合图2所描述的存储器装置206。

如图10中所展示,存储器装置1006可包含数个存储器阵列1001-1到1001-7。存储器阵列1001-1到1001-7可与先前结合图1所描述的存储器阵列101类似。此外,在图10中所说明的实例中,存储器阵列1001-3是安全阵列,存储器阵列1001-6的子集1011包括安全阵列,且存储器阵列1001-7的子集1013及1015包括安全阵列。子集1011、1013及1015每一者可包含例如4千字节的数据。然而,本公开的实施例不限于特定数目或布置的存储器阵列或安全阵列。

如图10中所展示,存储器装置1006可包含补救(例如,恢复)块1017。补救块1017可用作在操作存储器装置1006期间可能发生的错误(例如,失配)的情况下的数据源。补救块1017可在可由主机寻址的存储器装置1006的区外部。

如图10中所展示,存储器装置1006可包含串行外围接口(SPI)1004及控制器1008。存储器装置1006可使用SPI 1004及控制器1008来与主机及存储器阵列1001-1到1001-7进行通信,如本文中先前所描述(例如,结合图2)。

如图10中所展示,存储器装置1006可包含用于管理存储器装置1006的安全性的安全寄存器1019。例如,安全寄存器1019可配置应用程序控制器且在外部与应用程序控制器进行通信。此外,安全寄存器1019可由认证命令修改。

如图10中所展示,存储器装置1006可包含密钥1021。例如,存储器装置1006可包含八个不同狭槽来存储密钥,例如根密钥、DICE-RIOT密钥及/或其它外部会话密钥。

如图10中所展示,存储器装置1006可包含电可擦除可编程只读存储器(EEPROM)1023。EEPROM 1023可提供对主机可用的安全非易失性区,其中可擦除及编程个别字节的数据。

如图10中所展示,存储器装置1006可包含计数器(例如,单调计数器)1025。计数器1025可用作从主机接收及/或发送到主机的命令的防重放机构(例如,新鲜度产生器)(例如,以对命令集或序列进行签名)。例如,存储器装置1006可包含六个不同的单调计数器,其中的两者可被存储器装置1006用于经认证命令,且其中的四者可被主机使用。

如图10中所展示,存储器装置1006可包含SHA-256密码散列函数1027及/或HMAC-SHA256密码散列函数1029。SHA-256及/或HMAC-SHA256密码散列函数1027及1029可被存储器装置1006用于产生密码散列,举例来说,例如本文中先前所描述的块220的密码散列,及/或如本文中先前所描述的用于确认存储在存储器阵列1001-1到1001-7中的数据的黄金散列。此外,存储器装置1006可支持DICE-RIOT 1031的L0及L1。

尽管本文中已说明及描述特定实施例,但所属领域的一般技术人员将明白,经计算以实现相同结果的布置可替换所展示的特定实施例。本公开意在涵盖本公开的数个实施例的调适或变动。应理解,以上描述是以说明性方式且非限制性方式进行。在审阅以上描述后,上述实施例的组合及本文中未具体地描述的其它实施例对于所属领域的一般技术人员来说将是显而易见的。本公开的数个实施例的范围包含其中使用以上结构及方法的其它应用。因此,本公开的数个实施例的范围应参考所附权利要求书及此权利要求书被赋予的等效物的全范围来确定。

在前述具体实施方式中,出于简化本公开的目的而将一些特征分组在单个实施例中。本公开方法不应被解释为反映本公开的所公开实施例必须使用比每一权利要求中明确地陈述的特征更多的特征的意图。相反,如所附权利要求书所反映,发明主题在于少于单个所公开实施例的所有特征。因此,所附权利要求书由此并入具体实施方式中,其中每一权利要求独立作为单独实施例。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:由绞合线连接供电的间歇致动器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!