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

安全存储装置中的弹性软件更新的制作方法

2022-07-14 02:46:50 来源:中国专利 TAG:

安全存储装置中的弹性软件更新
1.相关申请
2.本技术要求2019年11月25日申请且标题为“安全存储装置中的弹性软件更新(resilient software updates in secure storage devices)”的美国专利申请第16/694,583号的优先权,所述美国专利申请的全部公开内容特此以引用方式并入本文中。
3.版权声明
4.本专利文献的公开内容的一部分含有受版权保护的材料。版权所有者不反对任何人对此专利文献或专利公开内容进行传真复制,因为它出现在专利和商标局的专利文件或记录中,但无论如何在其它方面保留所有版权。


背景技术:

5.所公开的实施例是针对安全存储装置中的软件更新。具体来说,所公开的实施例是针对此类安全存储装置在潜在可变的环境中提供可靠且有弹性的更新。
6.在许多环境中,在必须避免或逐步处置更新存储装置软件的故障的条件下频繁地更新安全存储装置。举例来说,可在车辆在运动中时安装对自主车辆的操作系统的软件更新。软件更新过程中的故障可潜在地使得车辆的硬件系统变得不响应,这可潜在地导致碰撞。
7.当前,安全存储装置的许多更新程序有效地要求将存储装置置于特殊模式下或要求安全存储装置在执行软件更新之前处于特定环境中。此要求确保软件更新过程中的任何故障将不会不利地影响装置或依赖于装置的组件的用户。
8.此当前程序不必要地限制软件更新的频率,且不利地影响使用此类存储装置的系统的用户体验。因而,所属领域中需要一种以可靠且有弹性的方式支持任何时间软件更新的改进的安全存储装置。所公开的实施例提供此种技术解决方案。
附图说明
9.图1为说明根据本公开的一些实施例的用于管理软件更新的计算机系统的框图。
10.图2为说明根据本公开的一些实施例的用于初始化安全存储装置以供软件更新的方法的流程图。
11.图3为说明根据本公开的一些实施例的用于执行启动时间序列的方法的流程图。
12.图4为说明根据本公开的一些实施例的用于执行运行时间管理更新的方法的流程图。
13.图5为说明根据本公开的一些实施例的用于完成软件更新的方法的流程图。
14.图6为根据本公开的一些实施例的计算装置的框图。
15.图7为根据本公开的一些实施例的存储装置的布局的框图。
具体实施方式
16.所公开的实施例描述用于实现对存储在安全存储装置上的软件图像的任何部分
的修改而不损害软件图像的执行的技术。所公开的实施例通过使软件更新能够跨越功率循环更有弹性而解决以上问题,因此防止装置软件的损坏。在这样做时,所公开的实施例允许在几乎没有风险的情况下对计算机系统的关键部分执行软件更新,从而极大地降低原本将需要在严重受限条件中实施的软件更新的成本和计算复杂性。
17.所述技术包含在第一时间点开始的软件更新序列,可被事件中断,且可在稍后时间(甚至在重启之后)恢复或重新开始软件更新。在另一方面中,所公开的实施例可以仅允许特许用户控制前述软件更新序列的发起和配置。另外,在另一方面中,所公开的实施例支持包含a/b(完整图像)软件更新和差分(部分)软件更新的多种类型的软件更新方案。
18.在本文中所描述的实施例中,软件更新可包括启动程序。在这些实施例中,更新过程的任何故障可使得装置不起作用(即,使装置“失效”)且使得装置不能够启动。故障的实例包含功率损失、通信链路中断和恶意行为者干预。所公开的实施例通过利用安全存储装置的特征来降低与这些故障相关联的风险。具体来说,所公开的实施例利用特许用户的概念以防止未经授权用户发起软件更新程序。另外,所公开的实施例提供使得安全存储装置能够跨越启动序列维持系统状态的状态跟踪特征,所述启动序列允许安全存储装置将系统恢复到其先前状态或重新开始更新序列。
19.如上文所描述,所公开的实施例支持完全更新和部分更新。如果实施完整图像更新方案,那么可保存安全装置上的前一软件图像,直到准备好安装新图像为止,接着可将启动指针分配给新图像作为作用中图像。然而,在现有系统中,仍存在指针改变操作可能使装置失效的风险。所公开的实施例解决如本文中更详细地描述的此问题。
20.如果新图像较大且新图像中引入的改变相对较小,那么完整图像更新不必要地消耗大量通信有效负载和存储装置上的较大大小的缓冲空间。在此情境下,差分更新减小通信大小和缓冲器利用率。然而,由于此更新的“逐段”性质,在更新程序期间增加额外复杂性。此复杂性增加了也由所公开的实施例解决的额外故障点。
21.图1为说明根据本公开的一些实施例的用于管理软件更新的计算机系统的框图。
22.在所说明实施例中,系统(100)包含经由网络(110)以通信方式连接的远程计算装置(112)和目标计算装置(102)。尽管单独地说明,但系统(100)可包含多个装置(112,102)且可经由多个网络进行通信。在所说明实施例中,装置(102,112)包括例如图7中所说明的计算装置。举例来说,远程计算装置(112)可包括一或多个服务器计算机且目标计算装置(102)可包括消费型计算装置。在一些实施例中,目标计算装置(102)可包括车载电子控制单元(ecu)或其它装置。在其它实施例中,目标计算装置(102)可包括膝上型、台式、移动、可佩戴或其它消费型计算装置。在其它实施例中,目标计算装置(102)自身可包括服务器或其它网络装置。本公开不对装置(102,112)的类型和使用造成限制。
23.在所说明实施例中,远程计算装置(112)包含软件图像存储装置(114)和更新管理器(116)。在一个实施例中,软件图像存储装置(114)在远程计算装置(112)外部。在一些实施例中,软件图像存储装置(114)包含存储软件图像的文件系统。在其它实施例中,软件图像存储装置(114)包含存储软件图像的数据库。在这些实施例中,数据库可包括用于存储文件的关系、nosql、密钥值或任何其它类型的数据库。在所说明实施例中,软件图像是指界定一件软件的文件。在一些实施例中,软件图像是指经设计以替换软件的先前版本的软件的替换件的源代码图像。在其它实施例中,软件图像是指部分更新。部分更新包括对一件软件
的更新,所述更新包括小于整件软件。在一些实施例中,软件图像存储装置(114)存储完整和部分软件图像两者。软件图像可呈人可读源代码或机器可读二进制(编译)代码的形式。本公开不对软件图像的特定数据格式造成限制。软件图像大体上由远程计算装置(112)的操作员管理。当以软件图像的形式创建对软件的更新时,操作员将软件图像上传到软件图像存储装置(114)。其它技术可用于将软件图像插入到软件图像存储装置(114)中,例如版本控制系统(例如,git)、连续整合系统或其它系统。
24.远程计算装置(112)另外包含更新管理器(116)。在一些实施例中,更新管理器(116)和软件图像存储装置(114)可实施于单一装置上(例如,分别作为数据库和应用程序服务器)。在其它实施例中,更新管理器(116)包括独立计算装置(例如,服务器)。如所说明,更新管理器(116)访问软件图像存储装置(114)。在所说明实施例中,更新管理器(116)从软件图像存储装置(114)检索软件图像。在一些实施例中,更新管理器(116)响应于来自目标计算装置(102)的更新请求而从软件图像存储装置(114)检索软件图像。替代地或结合前述内容,更新管理器(116)可周期性地检查存储于软件图像存储装置(114)中的新软件图像且响应于检测到新软件图像而检索软件图像。替代地或结合前述内容,更新管理器(116)可订阅软件图像存储装置(114),且软件图像存储装置(114)可将软件图像在新近存储于软件图像存储装置(114)中时推送到更新管理器(116)。更新管理器获得软件图像的特定机构并不意图为限制性的。
25.在所说明实施例中,更新管理器(116)相对于某些图像执行各种操作。举例来说,更新管理器(116)可被配置成对软件图像执行校验和验证以确保软件图像的完整性。在其它实施例中,更新管理器(116)假设软件图像的完整性且产生待由其它装置使用的软件图像的校验和(例如,md5)。然而,主要地,更新管理器(116)负责协调软件图像从远程计算装置(112)到目标计算装置(102)的传送。此作用先前已经描述且本文中不再重复。
26.远程计算装置(112)经由一或多个网络(110)将软件图像传送到目标计算装置(102)。在所说明实施例中,网络(110)包括因特网(网络的网络)。在此实施例中,网络(110)包括广域网(wan),然而,可利用其它网络类型代替任何特定描述网络。
27.目标计算装置(102)经由网络(110)接收软件图像。具体来说,目标计算装置(102)经由对应更新管理器(108)接收软件图像。更新管理器(108)被配置成处理接收到的软件图像且将软件图像(106)加载到安全存储装置(104)中。在所说明实施例中,更新管理器(108)可以软件实施或经由专用硬件实施。在图2到6的描述中更详细地描述更新管理器(108)的特定操作且所述描述以全文引用的方式并入本文中。
28.在所说明实施例中,安全存储装置(104)包括存储装置(例如,基于快闪、基于磁盘等)以及安全平台模块(spm)。在一些实施例中,此安全平台模块可包括符合iso/iec11889标准的模块且可包括受信任平台模块。所使用的特定标准不是限制性的。一般来说,安全存储装置(104)被配置成不仅存储软件图像,而且验证基础存储介质的完整性。spm可包含例如随机数产生、加密密钥产生功能、加密/解密功能、认证功能和其它安全功能等特征。在一些实施例中,spm可替代地实施为更新管理器(108)的部分。
29.在所说明实施例中,安全存储装置(104)可分段成多个部分。这些部分可配置有启用和停用未经授权的用户的写入的各种性质。安全存储装置(104)通常将包含存储当前软件图像的被称作“作用中软件空间”的部分。除作用中存储空间之外,安全存储装置(104)可
包含隐藏存储部分。
30.现在参考描述系统用于安全地更新软件图像的过程的图2到5。
31.图2为说明根据本公开的一些实施例的用于初始化安全存储装置以供软件更新的方法的流程图。在执行图2中所描绘的方法之前,装置执行方法包含第一软件图像(被称作图像a)且尚未开始执行任何软件更新步骤。所说明的方法准备用于更新装置的图像,且接着重启装置以开始或重新开始更新程序。在所说明实施例中,方法(200)由装置的特许用户(包含远程特许用户)执行。
32.在框202中,方法(200)配置安全存储装置的第一部分以在写入受保护模式下操作。此第一部分还被称作“软件更新源代码图像空间”。在所说明实施例中,方法(200)由存储空间的特许用户操作。参考图1,此特许用户可包括更新管理器(108)。为确定起见,特许“用户”指代目标计算系统(例如,102)上的用户帐号且并不指代人类用户。因此,特许用户可包括在特许用户帐户下执行的软件应用程序。在所说明实施例中,接着将第一部分设置为写入受保护,仅特许用户可写入到所述第一部分,阻止所有其它用户帐户写入到第一部分。
33.在框204中,方法(200)将软件图像下载到在框202中配置的第一部分。如先前所描述,方法(200)可经由网络从远程存储库检索软件图像。响应于接收到软件图像,方法(200)将图像复制或以其它方式传送到在框202中配置的写入受保护的第一部分。在所说明实施例中,第一部分存储用于执行软件更新的程序的源代码。一般来说,这可包含第一级启动加载程序(fsbl)和用于管理更新程序的系统代码。
34.在一些实施例中,在框204中,方法(200)同时将第一部分的现有内容保存到存储器中。也就是说,在执行框204之前,方法(200)在将新软件图像写入到第一部分之前将第一部分的当前内容复制到存储器中。在一些实施例中,第一部分的当前内容包括用于安装安装在装置上的软件的当前版本的代码。
35.在框206中,方法(200)配置安全存储装置的第二部分以在写入受保护模式下操作。此第一部分还被称作“软件更新缓冲空间”。可执行作为写入受保护的部分的安全存储装置的第二部分的创建,如框202的描述中所描述。
36.在框208中,方法(200)将第二部分中的数据传送到存储器且将经更新的软件图像下载到第二部分。在所说明实施例中,类似于先前在框204的描述中所描述,执行从第二部分到存储器的数据传送。在所说明实施例中,存储于第二部分中的数据包括用于更新装置上的软件的实际更新数据。在一些实施例中,下载整个更新图像,而在其它实施例中,仅下载部分更新数据。
37.在框210中,方法(200)修改安全存储装置的恢复块以指向框202中创建的第一部分。方法(200)还将恢复块高速缓存于存储器中。通过执行框210,所述方法确保在每次重启时更新更新程序直到完成为止。先前恢复块经高速缓存以使得能够在完成更新程序后恢复正常操作。
38.在所说明实施例中,恢复块是指在启动后在执行fsbl之前执行的安全存储装置的第一块。一般来说,恢复块包含存储器检测代码以及低级磁盘验证和恢复代码。在框210中,方法(200)复写此恢复块以替代地指向加载写入到第一部分的软件图像的fsbl。一般来说,fsbl为被配置成设置存储器区段、复位磁盘、定位第二级启动加载程序(即,第一部分)、读
取第二级启动加载程序(即,第一部分)到存储器中并且将控制传送到第二级启动加载程序(即,第一部分)的合适的小程序。在所说明实施例中,fsbl包括负责加载和开始加载于第一部分中的更新程序的fsbl。
39.在框212中,方法(200)针对在先前框中下载的经更新的软件图像计算新的黄金测量值。如本文中所使用,黄金测量值是指可用于安全地识别一件软件的任何值。一般来说,使用一或多个加密函数产生黄金测量值。举例来说,一件软件的散列可用作黄金测量值。在其它实施例中,黄金测量值可包括经更新的软件图像的散列树。此黄金测量值形成信任根,因为其可用于验证其它软件是否与预期格式和值匹配。
40.在所说明实施例中,黄金测量值包括两部分测量值。第一测量值包括加载在第一部分中的第一级启动加载程序的散列。第二黄金测量值包括存储于第二部分中的整个更新图像的散列。在一些实施例中,散列还可包含存储于装置中的秘密密钥,且可包括基础数据的基于散列的消息认证码(hmac)。
41.在所说明实施例中,方法(200)另外高速缓存针对第一和第二部分计算的现有黄金测量值。此针对系统的当前状态有效地高速缓存黄金测量值。
42.在框214中,方法(200)高速缓存安全存储装置的当前更新状态信息且将新更新状态信息初始化为初始状态。如本文中所使用,“状态”是指安全存储装置的操作状态。这些状态界定给定装置的当前操作状态。如本文中所使用,初始状态是指被配置成指示安全存储装置处于需要初始化的状态下的一或多个值。在一个实施例中,初始化的部分包括使用黄金测量值和在所说明实施例中在框212中计算的黄金测量值建立新的信任根。
43.在框216中,方法(200)将安全存储装置的第三部分配置为在写入启用模式下。此第三部分还被称作“作用中存储空间”。如上文所描述,第三部分包含待更新的当前操作性软件图像(被称作图像a)。通过将第三部分设置为写入启用的,方法(200)允许任何用户(或用户的子集)将数据写入到作用中存储空间。
44.因此,在框216的执行之后,安全存储装置配置有三个单独部分:写入受保护的第一部分和存储于存储介质的隐藏部分中的第二部分,以及在使用时存储作用中软件图像的第三写入启用部分。方法(200)另外修改安全存储装置的启动偏好以启动包含经更新的软件图像的第一部分。新软件图像的副本另外存储在第二部分内。
45.在框218中,在重新配置安全存储装置部分并修改启动过程之后,方法(200)重启装置。在所说明实施例中,重启包括软件发起的重启。在一些实施例中,方法(200)可迫使安全存储装置重启。在重启之后,方法(200)结束且可后接图3中所描述的方法。
46.在一些实施例中,框218中的重启确保额外安全性。在其它实施例中,方法(200)可放弃重启。
47.图3为说明根据本公开的一些实施例的用于执行启动时间序列的方法的流程图。方法(300)可由装置的非特许用户执行。在所说明实施例中,方法(300)在启动时间执行,且在被视为安全的上下文中离线执行,因为更难侵入。相比之下,方法(400,500)在运行时间执行且可经受恶意行为者的干扰。因此,方法(400,500)由特许用户在访问已知密钥的情况下执行。
48.在框302中,方法(300)测量第一部分的内容以计算第一部分的第一测量值(在框202的描述中还被称作软件更新源代码图像空间)。如上文所描述,此可使用加密函数,例如
散列函数或类似函数执行。方法(300)接着将此第一测量值与图2的框212中由系统产生的第一部分的黄金测量值进行比较。本质上,方法(300)确定第一级启动加载程序是否有效。
49.在框304中,方法(300)确定框302中产生的第一测量值是否与第一部分的黄金测量值(在框212中产生)匹配。
50.在框306中,如果方法(300)确定第一测量值与第一黄金测量值匹配(即,启动加载程序有效),那么方法计算第二黄金测量值且完成启动序列。
51.在框308中,方法(300)在完成启动序列之后运行运行时间更新验证程序。图4中提供框308的细节,其并入本文中且不重复。
52.一般来说,在首次重启期间,第一黄金测量值与fsbl将不匹配且方法将继续进行到框310。
53.在框310中,方法(300)将恢复块复制到启动代码位置。如上文所描述,恢复块包括到存储于第一部分中的启动代码位置的指针。
54.在框312中,方法(300)运行fsbl。在所说明实施例中,fsbl初始化系统且将点返回到存储在第一部分内的软件更新图像。
55.在框314中,方法(300)加载且运行存储于第一部分内的软件更新图像。在一个实施例中,fsbl将控制传送到加载于第一部分中的更新软件,所述更新软件接着控制本文中所描述的处理。
56.在框316中,方法(300)在执行更新软件后加载装置的状态。在一个实施例中,装置的状态是指存储在装置的一或多个非易失性寄存器中的数据。本公开不限于某一类型的数据。在一个实施例中,状态可包括在每一功率循环处自动递增的更新计数器。替代地或结合前述内容,状态信息可包含存储本文中所描述的各种状态排列的寄存器数据。在一些实施例中,存储状态的寄存器可包括平台配置寄存器。
57.在框318中,方法(300)分析装置的状态。如将描述,在框316中加载的状态寄存器指示在重启之前执行的任何更新或回退操作的当前状态。
58.如果方法(300)确定恢复或更新操作在上次功率循环期间完成,那么方法在框306中继续启动序列且在框308中最终运行运行时间更新验证程序。在此框中,方法(300)成功地已经更新装置(或回退)且操作可正常重新开始。如在框318中所使用,更新操作是指框322、326和332中所描述的更新操作的写入部分。
59.在框320中,方法(300)在确定状态信息指示回退操作正在进行之后验证状态信息。在所说明实施例中,回退操作指示系统应返回到图像a。在一些实施例中,方法(300)测量更新的当前状态,且将所述测量值与存储在寄存器文件内的值进行比较。在检测到匹配后,方法(300)可继续进行。如果方法(300)检测到失配,那么方法(300)可结束或抢先恢复装置。
60.在框322中,在验证状态信息之后,方法(300)开始回退到前一软件图像。在所说明实施例中,方法(300)通过使用存储于第二部分内的数据对作用中存储空间执行连续写入操作来执行此框。同时,方法(300)还在每次连续写入之后用软件图像的预期测量值来更新状态信息,因此确保所述回退可甚至在功率损耗或其它中断的情况下继续进行。
61.在框324中,方法(300)重启装置并且过程可以重新开始方法(300)。在此情境下,如果方法(300)完全回退更新,那么在框318中的决策将分支到框306。替代地,如果方法
(300)中断中间回退,那么方法(300)将最终返回到框320以继续回退。
62.替代地,方法(300)可确定状态信息指示应发起更新。在此情境下,在框326中,方法(300)发起对更新图像(图像b)的更新且递增地更新状态信息。类似于框322中所描述的操作,方法(300)访问存储于第二部分中的更新图像且将数据连续写入到第三部分以更新软件。同时,方法(300)还在每次连续写入之后用经更新的软件图像的预期测量值来更新状态信息,因此确保所述更新可甚至在功率损耗或其它中断的情况下继续进行。
63.在框328中,方法(300)在已执行所有写入且方法(300)重新开始之后重启装置。类似于关于框324所描述的内容。如果完成更新,那么方法(300)将最终返回到框306。然而,如果更新被中断,那么方法(300)将最终分支到框330以重新开始更新。
64.在框330中,方法(300)在确定状态信息指示更新操作正在进行之后验证状态信息。在一些实施例中,方法(300)测量更新的当前状态,且将所述测量值与存储在寄存器文件内的值进行比较。在检测到匹配后,方法(300)可继续进行。如果方法(300)检测到失配,那么方法(300)可结束或抢先恢复装置。
65.在框332中,方法(300)继续对更新图像(图像b)的更新且递增地更新状态信息。类似于框322和326中所描述的操作,方法(300)访问存储于第二部分中的更新图像且将数据连续写入到第三部分以更新软件。同时,方法(300)还在每次连续写入之后用经更新的软件图像的预期测量值来更新状态信息,因此确保所述更新可甚至在功率损耗或其它中断的情况下继续进行。
66.在框334中,方法(300)在已执行所有写入且方法(300)重新开始之后重启装置。类似于在框328中执行的重启中所描述的过程而执行此过程,以确保不会由于功率损耗而停止重新开始的更新。
67.图4为说明根据本公开的一些实施例的用于执行运行时间管理更新的方法的流程图。在所说明实施例中,方法(400)可由装置的特许用户执行。
68.在框402中,装置启动已完成,所述方法连接到特许用户,且请求更新管理操作。在一些实施例中,特许用户包括远程用户。
69.在框404中,特许用户将状态信息和第二黄金测量值从装置寄存器上传到远程服务器。在一些实施例中,此信息包括在启动序列期间由装置产生的信息,包含黄金测量值和寄存器的内容。在一些实施例中,仅在需要更新的情况下将所述信息传输到远程服务器。在一些实施例中,仅在方法(400)确定更新图像已经完全写入但方法(400)的其余部分尚未执行的情况下传输信息。这使得能够在写入之后但在方法(400)中的更新已完成之前重启。
70.在框406中,方法(400)将在(如框206中所描述的第二部分,替代地被称作“软件更新缓冲空间”的)启动期间产生的第二测量值与第二黄金测量值进行比较。换句话说,在框310中,方法将第二部分的第二测量值与与更新图像相关联的第二黄金测量值和与前一图像相关联的第二黄金测量值进行比较。更新图像和前一图像分别被称作图像b和图像a。
71.在框408中,方法(400)将第二测量值与更新图像(存储于第二部分中的图像)的黄金测量值和前一图像(从第二部分高速缓存的图像)的黄金测量值进行比较。在框408中,方法(400)确定计算出的值是否与图像a、图像b或另一值匹配。当前第二部分的黄金测量值被称作黄金测量值b,而经高速缓存的第二部分的黄金测量值被称作黄金测量值a。如上文所描述,第二测量值是指更新图像自身的散列。因此,方法(400)将待应用的更新数据的值与
现有已知黄金测量值进行比较。在所说明实施例中,第二测量值是指在启动时间执行的第二部分的测量值。
72.在框410中,方法在确定第二测量值与图像b(更新图像)的黄金测量值匹配之后完成更新程序。在此情境下,成功地完成更新,且预期更新图像内容处于作用中存储空间中。因此,方法(400)可安全地完成在图5中更详细地描述的更新程序。
73.在框412中,方法(400)确定第二测量值与黄金测量值a(与前一图像a相关联)匹配。在此情境下,方法(400)取消当前更新,接着通过验证软件恢复到在发起更新之前的状态来完成软件更新。在此情境下,方法(400)已恢复到前一图像(例如,经由框320、322、324中执行的回退操作)。因此,方法(400)取消更新程序(即,通过更新状态寄存器)且继续进行以结束完成图5中的程序。
74.如果第二测量值与第二黄金测量值a或b并不匹配,那么方法(400)继续进行到框414。在框414中,方法(400)确定作用中存储空间包含可能损坏的数据。然而,方法(400)首先确定是否已满足若干更新重试。如上文所描述,计数器可用于在传信故障之前控制更新尝试的次数。值得注意的是,尽管图3中描述的方法最终引起图像a或图像b被写入到作用中存储空间,但恶意用户可拦截更新程序且在框306之后将另一图像写入到作用中存储空间。因此,框414中的决策防止此劫持。
75.在框416中,方法(400)重新初始化系统状态以迫使更新序列重新开始。如本文中所描述,安全装置包含一或多个寄存器,其在重启之间持续地存储装置的状态。在框416中,方法(400)修改此系统状态以指示装置应在图5的框502处以初始化状态重新启动。方法(400)接着重启装置(418)且继续进行以执行图5中所描述的重启例程(框420)。
76.在框422中,方法(400)检测损坏状态且相应地改变系统状态。在一个实施例中,方法(400)修改系统寄存器以指示应发生回退操作。关于回退操作的细节提供于图5中。接下来,方法(400)迫使系统恢复(424)。方法(400)接着迫使安全装置的重启(框426)以实现系统恢复。在重启之后,方法(400)接着执行图5中所描述的重启例程(框429)。
77.图5为说明根据本公开的一些实施例的用于完成软件更新的方法的流程图。在所说明实施例中,方法(500)可由装置的特许用户执行。
78.在框502中,方法(500)请求安全存储装置的作用中存储空间的额外测量值。如上文所描述,此测量值可包括作用中存储空间的加密测量值。
79.在框504中,方法(500)将额外测量值与前一软件图像和经更新软件图像的黄金测量值两者进行比较。如果额外测量值与所要黄金测量值并不匹配(基于更新或恢复的决策),那么方法(500)继续进行到框506。
80.在框506中,方法(500)发出警报。警报的特定细节并不意图为限制性的且可使用用于响应于损坏的状态而发出警报的任何技术。举例来说,方法(500)可通知第三方作用中存储空间不在有效状态下。替代地或结合前述内容,方法(500)可警告用户关于作用中存储空间不在有效状态下。
81.在框508中,方法(500)接着可清洁装置或在一些实施例中使其失效。在一个实施例中,方法(500)可通过格式化安全存储装置的相关部分以防止装置操作来清洁装置。在其它实施例中,方法(500)可简单地将装置断电或以其它方式逐步失效。在执行框508之后,方法(500)结束。
82.在框510中,方法(500)响应于确定额外测量值与所要黄金测量值匹配而锁定作用中存储空间。在一个实施例中,使用已知加密密钥来执行锁定作用中存储空间。
83.在框512中,在锁定作用中存储空间之后,方法(500)请求安全存储装置的作用中存储空间的第二额外测量值。如上文所描述,此第二测量值可包括作用中存储空间的加密测量值。方法(500)接着将第二额外测量值与前一软件图像和经更新软件图像的黄金测量值两者进行比较。如果额外测量值与所要黄金测量值并不匹配(基于更新或恢复的决策),那么方法(500)继续进行到框506和508。先前描述框506和508,且本文中不再重复所述描述。
84.在框514和516中,方法(500)将存储器中先前存储的数据恢复到其原始位置。在所说明实施例中,此先前存储的数据包含恢复块图像、寄存器内容,和安全存储装置的第一和第二部分的内容。在一个实施例中,当恢复安全存储装置的第一和第二部分的先前内容时,方法(500)将第一和第二部分配置为写入启用的。
85.在框518中,方法(500)传信完成的更新。在一些实施例中,传信完成的更新可包括使用新软件图像启动装置。替代地或结合前述内容,方法(500)可产生指示装置经更新且准备好操作的外部信号。
86.图6为根据本公开的一些实施例的计算装置的框图。
87.在所说明实施例中,计算装置(600)经由接口(606)以通信方式耦合到总线(608)。总线(608)可包括以太网、控制器局域网(can)、flexray、面向媒体的系统传输(most)总线或类似类型的总线。对应地,接口(606)可包括用于访问所使用的特定类型的总线的类似接口。
88.计算装置(600)另外包含微控制器(602)、r/f子系统(610)、专用组件(asc)(612)和存储器系统(604)。在所说明实施例中,微控制器(602)可包括被配置成控制计算装置(600)的操作的处理器或更小微控制器。在一些实施例中,微控制器(602)访问存储在存储器系统(604)中的程序指令,且根据那些指令驱动asc(612)。asc(612)的实例包含外围装置和其它特定用途(例如,汽车)装置。由计算装置(600)采用的asc的类型不是限制性的且可由计算装置(600)采用任何类型的asc。
89.计算装置(600)另外包含r/f系统(610)。在所说明实施例中,r/f系统(610)可包含用于与无线网络通信的一或多个无线电装置或收发器。r/f系统(610)可包含蓝牙、wi-fi或蜂窝式无线电装置或卫星收发器。在一些实施例中,r/f系统(610)包含无线电装置或收发器的组合。在一些实施例中,计算装置(600)可不包含r/f系统(610)且可替代地利用车辆范围r/f系统,如先前所描述。
90.微控制器(602)管理存储器系统(604)。在所说明实施例中,存储器系统(604)可包括如先前所描述的安全存储装置。在所说明实施例中,存储器系统(604)包含sram(604a)、eeprom(604b)和快闪存储装置(604c)。在所说明实施例中,sram(604a)可用作微控制器(602)的l1或l2高速缓存。类似地,eeprom(604b)可用作计算装置(600)的固件存储装置。sram(604a)和eerpom(604b)的特定细节(或存在)不是限制性的。
91.存储器系统(604)另外包含快闪存储装置(604c)。在所说明实施例中,快闪存储装置(604c)包括焊接到pcb且连接(经由pcb)到图6中所描绘的其它组件的nand快闪存储装置。如先前所描述,快闪存储装置(604c)用于存储操作代码以及由计算装置(600)使用的数
据。
92.图7为根据本公开的一些实施例的存储装置的布局的框图。
93.在所说明的存储系统(700)中,存在两个逻辑存储空间:装置存储空间(702)和特许用户(pu)存储空间(710)。一般来说,空间(702)默认地可由任何非特许用户访问,而空间(710)仅可由特许用户访问。
94.装置存储空间(702)包含作用中软件图像(图像a,704)。此图像(704)可包括装置上当前执行的软件。另外,装置存储空间(702)包含安全存储空间(706),其包含加密密钥(706a)、一组寄存器(706b)和恢复块(706c)。在一个实施例中,以加密方式保护安全存储空间(706),使得仅用户(例如,特许用户)可使用所建立的密钥访问安全存储空间(706)。最后,装置存储空间(702)包含通用空间(708),其包含第一部分(708a)、第二部分(708b)和第三部分(708c)。一般来说,通用空间(708)可由特许和非特许用户访问且可被配置成按需要进行写入保护。当写入受保护时,仅特许用户可修改写入受保护部分的内容。
95.pu存储空间(710)包括仅可由特许用户访问的安全存储区域。pu存储空间(710)可包含原始图像a(712)以及更新图像b(714)的副本。另外,pu存储空间(710)包含加密密钥(716),其用于访问安全存储空间(706)以及任何写入受保护部分(708a,708b)。另外,pu存储空间(710)包含备用空间(718)。此备用空间(718)包括存储部分,其可用于备份第一部分(718a)、第二部分(718b)、寄存器(718c)和恢复块(718d)的副本,如先前图中所描述。
96.已在下文中参考附图更充分地描述本公开,附图形成本公开的一部分且借助于说明展示某些实例实施例。然而,主题可以多种不同形式实施,并因此意图被理解为所涵盖或要求保护的主题不受限于本文中所阐述的任何实例实施例。提供实例实施例只是为了说明。同样,旨在为要求保护的或涵盖的主题提供合理宽泛的范围。除其它之外,例如,主题可体现为方法、装置、组件或系统。因此,实施例可例如采用硬件、软件、固件或其任何组合(除软件本身之外)的形式。因此以下详细描述并不意图以限制性意义作出。
97.在整个说明书和权利要求书中,在明确陈述的含义之外,术语可以具有上下文中提出或暗示的细微差别含义。同样,如本文中所使用的短语“在一个实施例中”不一定指代相同实施例,且如本文中所使用的短语“在另一实施例中”不一定指代不同实施例。举例来说,要求保护的主题旨在包含整个或部分实例实施例的组合。
98.一般来说,术语可根据上下文中的使用来至少部分地理解。举例来说,如上文所使用的例如“和”、“或”或“和/或”等术语可包含多种含义,这些含义可至少部分取决于此类术语被使用的上下文。通常,“或”如果用于关联列表(例如,a、b或c)那么打算意指a、b和c,此处是在包含性意义上使用;以及a、b或c,此处是在排他性意义上使用。另外,至少部分取决于上下文,本文中所使用的术语“一或多个”可用于以单数意义描述任何特征、结构或特性,或可用于以复数意义描述特征、结构或特性的组合。类似地,至少部分取决于上下文,例如“一(a/an)”或“所述”的术语也可理解为传达单数使用或传达复数使用。另外,术语“基于”可以被理解为不一定旨在传达一组排他性的因素,并且,相反地,可以至少部分地取决于上下文允许存在不一定明确描述的额外因素。
99.已参考方法和装置的框图和操作说明描述本公开。应理解,框图或操作说明的每一框和框图或操作说明中的框的组合可借助于模拟或数字硬件和计算机程序指令来实施。这些计算机程序指令可提供到通用处理器、专用计算机、asic或其它可编程数据处理设备,
使得经由计算机的处理器或其它可编程数据处理设备执行的指令实施框图或一或多个操作框中所指定的功能/动作。在一些替代实施方案中,框中标注的功能/动作可不按操作说明中标注的次序发生。举例来说,取决于所涉及的功能性/动作,连续展示的两个框实际上可大体上同时执行或所述框有时可按相反次序执行。
100.出于本公开的目的,计算机可读介质(或一或多个计算机可读存储介质)存储计算机数据,所述数据可包含可由计算机以机器可读形式执行的计算机程序代码(或计算机可执行指令)。借助于实例而非限制,计算机可读介质可包括用于数据的有形或固定存储的计算机可读存储介质,或者用于含代码的信号的暂时性解释的通信介质。如本文中所使用的计算机可读存储介质是指物理或有形存储装置(相较于信号),且包含但不限于以用于例如计算机可读指令、数据结构、程序模块或其它数据等信息的有形存储的任何方法或技术实施的易失性和非易失性、可移除和不可移除式介质。计算机可读存储介质包含但不限于ram、rom、eprom、eeprom、快闪存储器或其它固态存储器技术、cd-rom、dvd或其它光学存储装置、盒式磁带、磁带、磁盘存储或其它磁性存储装置,或可用于有形地存储所要信息或数据或指令并且可以由计算机或处理器访问的任何其它物理或物质介质。
再多了解一些

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

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

相关文献