计算装置完整性保护转让专利

申请号 : CN201280055793.6

文献号 : CN103946859B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 毛忆念阿南德·帕拉尼古德李青爱德华·乔治·小泰德曼约翰·华莱士·纳谢尔斯基

申请人 : 高通股份有限公司

摘要 :

一种操作计算机系统的方法包含:在所述计算机系统处获得与所述计算机系统的多个硬件组件中的每一者相关联的检验输入信息;在所述计算机系统处以加密方式处理所述检验输入信息以获得加密结果;以及在所述计算机系统处取决于所述加密结果与检验值的比较而确定是否允许或禁止所述硬件组件中的至少一者的进一步操作。

权利要求 :

1.一种操作计算机系统的方法,所述方法包括:

在所述计算机系统处获得与所述计算机系统的多个硬件组件中的每一个相关联的检验输入信息,所述检验输入信息包括所述计算机系统的所述多个硬件组件中的每一个的识别符,所述检验输入信息包括针对所述多个硬件组件中的每一者的制造商或型号中的至少之一;

在所述计算机系统处,通过将单向散列函数应用于所述检验输入信息的加密方式处理所述检验输入信息以获得表示所述计算机系统的当前硬件配置的加密结果;

通过将存储在所述计算机系统上的检验密钥以加密方式应用于存储在所述计算机系统上的带正负号的值来计算检验值;以及在所述计算机系统处取决于所述加密结果与所述检验值的比较而确定是否允许或禁止所述多个硬件组件中的至少一个的进一步操作,所述检验值包括装置完整性信息,所述装置完整性信息包括所述计算机系统的预定硬件配置的多个组件中的每一个的识别符,其中所述获得、处理和确定是以周期性或响应于触发事件中的至少一种方式来执行。

2.根据权利要求1所述的方法,其进一步包括在所述计算机系统处:从所述计算机系统上的存储装置存取所述检验值;以及

进行所述加密结果与所述检验值的所述比较。

3.根据权利要求2所述的方法,其中所述存取包括从所述计算机系统的一次可编程存储器存取所述检验值。

4.根据权利要求1所述的方法,其中所述以加密方式处理包含使用所述检验输入信息和存储在所述计算机系统上的密钥产生所述加密结果。

5.根据权利要求4所述的方法,其进一步包括在移动电信装置处进行所述加密结果与所述检验值的所述比较。

6.根据权利要求1所述的方法,其进一步包括将所述加密结果存储在所述计算机系统上的一次可编程存储器中。

7.根据权利要求6所述的方法,其中所述存储包括在首次确定所述加密结果时对现场可编程只读存储器进行编程。

8.根据权利要求1所述的方法,其进一步包括:

将所述加密结果从所述计算机系统朝向远程设备发射;以及

在所述计算机系统处从所述远程设备接收所述比较的指示;

其中所述确定是基于所述指示。

9.一种计算装置,其包括:

一组第一组件;以及

第二组件,其以通信方式耦合到所述第一组件,所述第二组件经配置以:获得与所述第一组件中的每一个相关联的检验输入信息,所述检验输入信息包括所述第一组件中的每一个的识别符,所述检验输入信息包括针对所述第一组件中的每一者的制造商或型号中的至少之一;

通过将单向散列函数应用于所述检验输入信息的加密方式处理所述检验输入信息以获得表示所述计算装置的当前硬件配置的加密结果;

通过将存储在所述计算装置上的检验密钥以加密方式应用于存储在所述计算装置上的带正负号的值来计算检验值;以及取决于所述加密结果与所述检验值的比较而确定是否允许或禁止所述第二组件、或所述第一组件中的至少一个中的至少一个的进一步操作,所述检验值包括装置完整性信息,所述装置完整性信息包括所述计算装置的预定硬件配置的所述第一组件中的每一个的识别符,其中所述第二组件经配置以用周期性或响应于触发事件中的至少一种方式来确定是否允许或禁止所述进一步操作。

10.根据权利要求9所述的装置,其中所述第二组件进一步经配置以:从所述计算装置上的存储装置存取所述检验值;以及

进行所述加密结果与所述检验值的所述比较。

11.根据权利要求10所述的装置,其中所述第二组件包括一次可编程存储器,且所述第二组件经配置以从所述一次可编程存储器存取所述检验值。

12.根据权利要求9所述的装置,其中为了以加密方式处理所述检验输入信息,所述第二组件经配置以使用所述检验输入信息和存储在所述计算装置上的密钥产生所述加密结果。

13.根据权利要求9所述的装置,其中所述第一组件中的每一个经配置以提供和那个组件相关联的所述检验输入信息。

14.根据权利要求9所述的装置,其中所述第二组件进一步经配置以将所述加密结果存储在所述计算装置上的一次可编程存储器中。

15.根据权利要求14所述的装置,其中所述第二组件经配置以在首次确定所述加密结果时对现场可编程只读存储器进行编程以便存储所述加密结果。

16.根据权利要求9所述的装置,其进一步包括以通信方式耦合到所述第二组件的收发器,其中所述第二组件进一步经配置以:将所述加密结果经由所述收发器朝向远程系统发送;以及

经由所述收发器从所述远程系统接收指示;

其中所述第二组件经配置以基于所述指示确定是否允许或禁止所述进一步操作。

17.一种计算装置,其包括:

用于获得与所述计算装置的多个硬件组件中的每一个相关联的组件信息的装置,所述组件信息包括所述计算装置的所述多个硬件组件中的每一个的识别符,所述组件信息包括针对所述多个硬件组件中的每一者的制造商或型号中的至少之一;

用于通过将单向散列函数应用于所述组件信息的加密方式处理所述组件信息以获得表示所述计算装置的当前硬件配置的加密结果的装置;

用于通过将存储在所述计算装置上的检验密钥以加密方式应用于存储在所述计算装置上的带正负号的值来计算检验值的装置,所述检验值包括装置完整性信息,所述装置完整性信息包括所述计算装置的预定硬件配置的多个组件中的每一个组件的识别符,其中所述用于获得的装置经配置以用周期性或响应于触发事件中的至少一种方式获得所述组件信息;

用于进行所述加密结果与所述检验值的比较的装置;以及

用于取决于所述加密结果与所述检验值的所述比较而确定是否允许或禁止所述计算装置的进一步操作的装置。

18.根据权利要求17所述的装置,其中所述用于通过将单向散列函数应用于所述组件信息的加密方式处理所述组件信息以获得表示所述计算装置的当前硬件配置的加密结果的装置包含用于以加密方式组合所述组件信息和存储在所述计算装置上的密钥的装置。

19.根据权利要求17所述的装置,其进一步包括用于存储所述检验值的一次可编程存储器装置。

20.根据权利要求19所述的装置,其中所述一次可编程存储器装置包括现场可编程只读存储器。

21.根据权利要求17所述的装置,其进一步包括以通信方式耦合到所述用于通过将单向散列函数应用于所述组件信息的加密方式处理所述组件信息以获得表示所述计算装置的当前硬件配置的加密结果的装置和所述用于取决于所述加密结果与所述检验值的所述比较而确定是否允许或禁止所述计算装置的进一步操作的装置的收发器装置,其用于:将所述加密结果朝向远程系统发送;以及

从所述远程系统接收指示;

其中所述用于确定的装置经配置以基于所述指示确定是否允许或禁止所述进一步操作。

说明书 :

计算装置完整性保护

背景技术

[0001] 计算装置是极为流行的,对于许多人已变为几乎不可缺少的。这些装置是复杂的,提供了许多特征和功能。芯片上系统(SoC)设计变得越来越复杂。一个芯片组可含有多个微处理器(或核心)且每一核心可具有单独的功能性。另外,在每一核心上运行的软件可由不同的公司/实体编写。而且,负责系统集成的实体可不同于提供在每一核心上运行的软件的实体。系统的操作取决于软件和相应核心的兼容性和互操作性。
[0002] 如果在组件的原始组合中不使用芯片组组件,那么装置的操作可能受损。装置的组件(包含芯片组)可彼此分离,且组件与其它非原始组件重新集成。重新集成的装置出于若干原因而可能是不合意的,包含操作相对于原始芯片组可能减少,例如原因在于较低质量组件的使用、与原始组件的软件较不兼容的软件、对于与原始组件一起操作未授权或未特定设计的软件等等。

发明内容

[0003] 一种操作计算机系统的方法的实例包含:在所述计算机系统处获得与所述计算机系统的多个硬件组件中的每一者相关联的检验输入信息;在所述计算机系统处以加密方式处理所述检验输入信息以获得加密结果;以及在所述计算机系统处取决于所述加密结果与检验值的比较而确定是否允许或禁止所述硬件组件中的至少一者的进一步操作。
[0004] 此方法的实施方案可包含以下特征中的一者或多者。所述方法进一步包含在所述计算机系统处:从所述计算机系统上的存储装置存取所述检验值;以及进行所述加密结果与所述检验值的所述比较。所述存取包含从所述计算机系统的一次可编程存储器存取所述检验值。所述以加密方式处理包含使用所述检验输入信息和存储在所述计算机系统上的密钥产生所述加密结果。可包含在移动电信装置处进行所述加密结果与所述存储的检验值的所述比较。可包含将所述加密结果存储在所述计算机系统上处于一次可编程存储器中。所述存储包含在首次确定所述加密结果时对现场可编程只读存储器进行编程。可包含通过将存储在所述计算机系统上的检验密钥以加密方式应用于存储在所述计算机系统上的带正负号的值来计算所述检验值。所述以加密方式处理包含将单向散列函数应用于所述检验输入信息。所述获得、处理和确定是以周期性或响应于除了时间过去之外的触发事件中的至少一种方式来执行。可能包含:将所述加密结果从所述计算机系统朝向远程设备发射;以及在所述计算机系统处从所述远程设备接收所述比较的指示;其中所述确定是基于所述指示。
[0005] 一种计算装置的实例包含:一组第一组件;以及第二组件,其以通信方式耦合到所述第一组件,所述第二组件经配置以:获得与所述第一组件中的每一者相关联的检验输入信息;以加密方式处理所述检验输入信息以获得加密结果;以及取决于所述加密结果与检验值的比较而确定是否允许或禁止(1)所述第二组件或(2)所述第一组件中的至少一者中的至少一者的进一步操作。
[0006] 此计算装置的实施方案可包含以下特征中的一者或多者。所述第二组件经配置以:从所述计算装置上的存储装置存取所述检验值;以及进行所述加密结果与所述检验值的所述比较。所述第二组件包含一次可编程存储器,且所述第二组件经配置以从所述一次可编程存储器存取所述检验值。为了以加密方式处理所述检验输入信息,所述第二组件经配置以使用所述检验输入信息和存储在所述装置上的密钥产生所述加密结果。所述第一组件中的每一者经配置以提供所述相关联检验输入信息。所述第二组件进一步经配置以通过将存储在所述装置上的检验密钥以加密方式应用于存储在所述装置上的带正负号的值来计算所述检验值。所述第二组件经配置以将单向散列函数应用于所述检验输入信息以获得所述加密结果。所述第二组件经配置以用周期性或响应于除了时间过去之外的触发事件中的至少一种方式来确定是否允许或禁止所述进一步操作。所述第二组件经配置以将所述加密结果存储在所述装置上处于一次可编程存储器中。所述第二组件经配置以在首次确定所述加密结果时对现场可编程只读存储器进行编程以便存储所述加密结果。可包含以通信方式耦合到所述第二组件的收发器,其中所述第二组件进一步经配置以:将所述加密结果经由所述收发器朝向远程系统发送;以及经由所述收发器从所述远程系统接收指示;其中所述第二组件经配置以基于所述指示确定是否允许或禁止所述进一步操作。
[0007] 一种计算装置的另一实例包含:用于获得与所述计算装置的多个硬件组件中的每一者相关联的组件信息的装置;用于以加密方式处理所述组件信息以获得加密结果的装置;用于使用所述计算装置上的非易失性存储装置获得检验值的装置;用于进行所述加密结果与所述检验值的比较的装置;以及用于取决于所述加密结果与所述检验值的所述比较而确定是否允许或禁止所述计算装置的操作的装置。
[0008] 此计算装置的实施方案可包含以下特征中的一者或多者。所述用于以加密方式处理的装置包含用于以加密方式组合所述组件信息和存储在所述计算装置上的密钥的装置。可包含用于存储所述检验值的一次可编程存储器装置。所述一次可编程存储器装置包含现场可编程只读存储器。所述用于获得的装置经配置以用周期性或响应于除了时间过去之外的触发事件中的至少一种方式获得所述组件信息。所述用于以加密方式处理的装置包含用于将单向散列函数应用于所述组件信息的装置。可包含用于通过将存储在所述装置上的检验密钥以加密方式应用于存储在所述非易失性存储装置中的带正负号的值来计算所述检验值的装置。可包含以通信方式耦合到所述用于以加密方式处理的装置和所述用于确定的装置的收发器装置,用于:将所述加密结果朝向远程系统发送;以及从所述远程系统接收指示;其中所述用于确定的装置经配置以基于所述指示确定是否允许或禁止所述进一步操作。
[0009] 一种计算装置的计算机可读媒体的实例包含经配置以致使计算机进行以下操作的计算机可读指令:获得与计算装置的多个组件中的每一者相关联的组件信息;以加密方式处理所述组件信息以获得加密结果;使用所述计算装置上的存储装置获得检验值;进行所述加密结果与所述检验值的比较;以及取决于所述加密结果与检验值的所述比较而确定是否允许或禁止所述计算装置的进一步操作。
[0010] 此计算机可读媒体的实施方案可包含以下特征中的一者或多者。所述经配置以获得所述检验值的指令经配置以致使所述计算机从所述计算装置的一次可编程存储器存取所述检验值。所述经配置以致使所述计算机以加密方式处理所述组件信息的指令经配置以致使所述计算机以加密方式组合所述组件信息和存储在所述计算装置上的密钥。可包含经配置以致使所述计算机在首次获得所述加密结果时将所述加密结果存储在所述计算装置的一次可编程存储器中作为所述检验值的指令。所述经配置以致使所述计算机获得所述组件信息的指令经配置以致使所述计算机以周期性或响应于除了时间过去之外的触发事件中的至少一种方式获得所述组件信息。所述经配置以致使所述计算机以加密方式处理所述组件信息的指令经配置以致使所述计算机将单向散列函数应用于所述组件信息。所述经配置以致使所述计算机获得所述检验值的指令经配置以致使所述计算机以加密方式组合存储在所述计算装置上的带符号的值和开放地存储在所述计算装置上的检验密钥以计算所述检验值。可包含经配置以致使所述计算机将所述加密结果从所述计算机系统朝向远程设备发射的指令,其中所述经配置以致使所述计算机确定的指令经配置以致使所述计算机基于响应于所述加密结果的发射而接收到的指示确定是否允许或禁止所述进一步操作。
[0011] 本文中描述的项目和/或技术可提供以下能力中的一者或多者以及未提到的其它能力。可更好地确保为了彼此一起使用而设计的兼容组件的使用。可减少不良质量且可能不合法地翻新的芯片组。

附图说明

[0012] 图1是计算机装置的简化图。
[0013] 图2A是建立和存储用于装置完整性检验的检验值的过程的框流程图。
[0014] 图2B是检验装置完整性的过程的框流程图。
[0015] 图3是图2所示过程的实例的框流程图。
[0016] 图4是电信系统的简化图。
[0017] 图5是检验图4所示装置的完整性的过程的框流程图。
[0018] 图6是用于远程地检验装置完整性的系统的框图。

具体实施方式

[0019] 提供了通过产生将重要装置组件以加密方式绑定的信息集合来阻止单独装置的组件被组装成新装置并使用的技术。装置的组件中的一者(“锚”芯片组)用以验证或确认装置上的组件组合是原始的组合,且因此是有效/可接受的组合。锚芯片组使用确认其它硬件组件且优选为所有其它指定硬件组件的组合与所述锚芯片组在一起的软件。锚芯片组可列举其它硬件组件(例如,RAM存储器芯片、快闪/eMMC非易失性存储器芯片、相机模块、显示器模块、GPS模块、WiFi模块、蓝牙模块、电力管理模块、RF模块等等)。举例来说,锚芯片组将其它组件的制造商、型号和/或唯一识别符(例如,序列号)信息与锚芯片的唯一信息(例如,序列号)组合。此组合使用加密摘要算法来产生信息集合,在没有硬件组件的原始组合地情况下几乎不可能且当然实际无法产生所述信息集合。将此信息集合称为“胶位(Glue Bits)”,因为它们帮助确保组件不会分离。胶位是在装置制造生命周期的早期阶段期间(例如,初始装置制造、初始装置操作期间)产生,且存储在锚芯片可存取的一次写入存储器中。锚芯片将间歇性地(例如,周期性地,响应于触发事件等等)重新计算胶位,且将重新计算的胶位与存储的胶位集合进行比较。如果重新计算的和存储的胶位集合匹配,那么锚芯片将允许组件的操作继续。如果重新计算的和存储的胶位集合不匹配,那么锚芯片禁止锚芯片以及可能其它组件的操作。
[0020] 参见图1,计算装置10包含若干组件。此处,计算装置10是移动电信装置,例如移动电话,且包含调制解调器处理器12、应用程序处理器14、射频(RF)调制解调器16、快闪/eMMC模块18、随机存取存储器(RAM)20、全球定位卫星(GPS)系统模块22、电力管理模块24、WiFi模块26、 模块28,和存储器30。快闪/eMMC模块18包括非易失性快闪存储器和/或嵌入式多媒体卡(eMMC)。存储器30包括装置10的其它存储器,例如只读存储器(ROM)。
RF调制解调器16经配置以使用无线电磁信号与其它装置(例如,蜂窝式网络基站)通信。GPS模块22经配置以处理GPS卫星信号以确定装置10的位置。WiFi模块26和蓝牙模块28经配置以分别使用WiFi和蓝牙协议与例如接入点等其它装置通信。虽然在装置10的组件之间未展示连接,但组件12、14、16、18、20、22、24、26、28以通信方式彼此连接,例如通过处理器12、14中的至少一者和/或直接连接。此外,调制解调器处理器12且可能应用程序处理器14是一个硬件处理器的部分。而且,组件12、14、16、18、20、22、24、26、28中的每一者含有相应组件信息(CI)13、15、17、19、21、23、25、27、29,用于产生加密值以检验装置完整性。在此实例中,处理器12还存储密钥40,例如存储在硬件中,用于产生加密值。密钥40经存储以使得密钥40对未经授权组件是不可存取的(例如,实际无法(如果不是不可能)存取,至少在不破坏处理器
12的情况下)。
[0021] 在装置10的智能组件内驻留有装置完整性信息。此信息可称为检验值或参考值(RV),其为胶位的所存储真实值。无论信息的实际形式如何,使用术语胶位来指示装置完整性信息有用于帮助确保原始组件(例如,选择组件12、14、16、18、20、22、24、26、28、30中的一者)保持在一起,例如用于将启用的智能组件的操作。在装置10中,调制解调器处理器12包含RV34,但应用程序处理器14可包含RV36或者快闪/eMMC可包含RV38。通常,RV34和RV36将不同。举例来说,相同组件但不同密钥可用以产生RV34或RV36,且因此RV34将不同于RV36,但并不要求这样。为了下文论述的简单,关于装置完整性信息的产生和使用仅论述调制解调器处理器12,但所述论述适用于类似配置的任何组件,例如应用程序处理器14。装置完整性信息经配置以用加密方式绑定与装置完整性信息相关联的组件且用以产生装置完整性信息,如下文进一步论述。
[0022] 装置10包含驻留在处理器可读、计算机可读存储器中的软件。所述软件包含处理器可读程序代码,即指令,其经配置以致使处理器执行上文和下文描述的功能。特定来说,装置10包含软件32,其可存储在存储器30中但为了说明性目的而单独展示。软件32驱动硬件处理器,且可包含基本操作系统(OS)功能和/或调制解调器驱动器,且可与RF调制解调器16交互。在非易失性存储器中的软件32内,存在经配置以实施装置完整性的软件。此软件在本文称为装置完整性软件或胶代码。
[0023] 调制解调器处理器12经配置以验证其调制解调器代码。调制解调器处理器硬件经由确保调制解调器代码的完整性的安全引导操作来验证调制解调器代码。调制解调器代码包含用以致使调制解调器处理器12在适当时产生和使用装置完整性信息的代码。调制解调器代码经配置以致使处理器12在装置首次被引入网络以使用时(例如,在制造之后首次操作时)产生装置完整性信息,且随后检验装置完整性信息。处理器12将在处理器12的第一加电期间产生RV34且例如通过双态触发一次写入位来致动一次可修改的指示符。处理器12将把RV34存储在非易失性存储器中供未来用于装置完整性检验(即,确保相关组件的装置组成匹配于原始相关组件组成)。
[0024] 参见图2A,进一步参见图1,建立和存储用于装置完整性检验的检验值的过程50包含所示的阶段。然而,过程50仅是实例且不是限制性的/详尽的。
[0025] 在阶段52处,使用检验输入信息,例如组件序列号和/或其它识别符产生检验值(此处为RV34)。检验值优选产生一次,例如在装置为了操作的第一加电期间。检验值可以多种方式产生,例如将散列函数应用于锚芯片中的检验输入信息,将散列函数和密钥应用于锚芯片中的检验输入信息(例如,其中密钥存储在芯片上),在制造期间使用签名密钥加密检验输入信息,且使检验密钥对锚芯片为可存取的(例如,暴露于装置的软件中)。
[0026] 在阶段54处,将检验值存储在非易失性存储器中。所存储检验值可存储在多种位置中,但是以其受保护免于被覆写的方式存储。所存储胶位可在锚芯片内(例如,PROM、EPROM或例如现场可编程只读存储器等一次可编程存储器中的胶位34)或锚芯片外(例如,应用程序处理器14中的胶位36或者快闪或eMMC18中的胶位38)的非易失性一次可编程存储器中。此外,所存储胶位可从装置10远程地存储且与远程位置处的重新计算的位进行比较。
[0027] 参见图2B,进一步参见图1和2A,检验装置完整性的过程55包含所示的阶段。然而,过程55仅是实例且不是限制性的/详尽的。
[0028] 在阶段56处,获得检验输入信息(例如,通过从装置10中的硬件组件获得CI)。检验输入信息与构成希望帮助确保完整性的组合的每一硬件组件相关联。
[0029] 在阶段58处,使用经验证软件代码以加密方式处理检验输入信息以获得加密结果胶位。在阶段60处,取决于加密结果与所存储检验值的比较而确定允许或禁止硬件组件中的至少一者的操作。阶段52和54优选地执行一次,且阶段56、58和60响应于触发(例如,在装置10的每次启动或充电时)等等而重复执行(例如,周期性地)。
[0030] 参见图3,过程50的特定实施方案,此处为检验装置完整性的过程70,包含所示的阶段。然而,过程70仅是实例且不是限制性的/详尽的。
[0031] 在阶段72处,锚芯片(此处为调制解调器处理器12)准备好产生加密值。处理器12从装置10的在装置完整性检验中希望包含的组件获取或获得(例如,读取)组件信息13、15、17、19、21、23、25、27、29。组件信息13、15、17、19、21、23、25、27、29与装置10的在装置完整性中将包含的各种组件中的每一者相关联。举例来说,组件信息13、15、17、19、21、23、25、27、
29可为组件12、14、16、18、20、22、24、26、28的序列号和/或制造/型号信息。处理器12响应于触发事件而获得组件信息13、15、17、19、21、23、25、27、29,所述触发事件例如装置10的充电事件或加电、定时器的期满、触发消息的接收(例如,从网络服务器(未图示))等等。
[0032] 在阶段74,处理器12产生加密值或胶位。处理器12使用密钥40和组件信息13、15、17、19、21、23、25、27、29来以加密方式形成加密值。此处,处理器12使用密钥40和组件信息
13、15、17、19、21、23、25、27、29作为对单向散列函数(例如,SHA256)的输入以产生加密值。
特定来说,处理器12获得调制解调器处理器12、应用程序处理器14、RF调制解调器16、快闪/eMMC模块18、RAM模块20、GPS模块22、电力管理模块24、WIFI模块26和蓝牙模块28的组件信息13、15、17、19、21、23、25、27、29。此处,处理器12根据下式使用散列消息验证码(HMAC)计算胶位:
[0033] 胶位=HMACHw-Key(MEID||modem ver||CompInfo1||CompInfo2||...||CompInfon) (1)
[0034] 其中CompInfom是调制解调器m的组件信息,modem ver是调制解调器处理器12的版本,且MEID是移动设备识别符或与装置相关联的任何识别符(如果可用)。这是实例,且不是可用于确定胶位的仅有技术或等式。举例来说,可省略MEID和/或modem ver,或可根据下式在无密钥的情况下使用散列函数(例如,SHA1):
[0035] 胶位=SHA1(MEID||modem ver||CompInfo1||CompInfo2||...||CompInfon)  (2)[0036] 在阶段76处,处理器12分析一次写入指示符的值。此处,一次写入指示符是一次写入位,且处理器12确定一次写入位是否指示零或一。或者,可使用多位值来为一次写入指示符提供冗余和高可靠性。如果一次写入指示符指示检验值RefVal已经被存储(此处,一次写入位具有值一),那么过程70前进到阶段82。如果一次写入指示符指示检验值尚待存储(此处,一次写入位具有值零),那么过程70前进到阶段78,其中处理器12将胶位(即,加密值)作为检验值存储在非易失性一次可编程存储器中。首次报告的胶位被视为真实的,且因此经存储以供未来参考。处理器12通过对现场可编程只读存储器或实施一次写入位的其它一次可编程存储器装置进行编程来改变一次写入位以指示一。过程70随后前进到阶段80,其中装置10的操作继续,优选地装置10的组件的所有功能性均被启用。过程70返回到阶段72。
[0037] 在阶段82处,在检验值已经存储的情况下,从存储器读取检验值。处理器12从其在非易失性存储器中的存储位置读取检验值RefVal以用于与在阶段74处确定的加密结果进行比较。
[0038] 在阶段84处,对胶位和检验值进行比较。处理器12将胶位与检验值进行比较且确定其是否相同。如果其相同,那么过程70前进到阶段80,且如果胶位和检验值不相同,那么过程70前进到阶段86。
[0039] 在阶段86处,禁止装置10的操作。处理器12在确定装置10的完整性已受损之后禁止装置10的操作。举例来说,处理器12可关于信息用于形成胶位的任何组件禁止处理器12的进一步操作。或者,处理器12可终止与装置10的任何其它组件的协作,无论所述组件的信息是否用以形成胶位。
[0040] 其它实例
[0041] 可使用除了上文论述的配置和方法的其它配置和方法。举例来说,虽然论述已聚焦于装置10上RV的产生以及装置10上RV34的存储,但可从将检验完整性的装置远程地产生用于检验装置的完整性的值。参见图4,服务器110将签名密钥112存储在存储器中,包含处理器114,且可与将检验完整性的装置116通信。装置116含有组件信息(CI)118,且将检验密钥120和带正负号的值(SV)122存储在存储器中,且含有处理器124。处理器114、124经配置(例如,通过适当的存储的软件代码指令)以执行关于图5论述的操作。
[0042] 还参见图5,检验装置完整性的过程130包含所示的阶段。然而过程130仅是实例且不是限制性的。过程130可例如通过添加、移除、重新布置、组合和/或同时执行阶段而更改。
[0043] 在阶段132处,在装置外产生SV118且存储在装置116上。服务器114从装置116获得CI118且使用签名密钥112来以加密方式处理CI118以产生SV122。服务器处理器114将SV122发射到装置116,SV122随后存储在该处。可例如在装置116的制造期间执行此阶段,其中服务器110是制造商的服务器,签名密钥保持与装置116分离,且制造商提供SV122。
[0044] 在阶段134处,将对应于签名密钥112的检验密钥120存储在装置116上。此阶段也可在装置116的制造期间执行,其中制造商提供检验密钥120。或者,此阶段可在装置116的制造之后执行,例如其中装置116通过网络下载检验密钥120。检验密钥120可开放地存储在装置116中,即在硬件中并非不可存取地隐藏,但是以其在一旦编程后(例如,存储在一次可编程存储器中)便无法更改的方式存储。
[0045] 在阶段136处,确定是否产生胶位。装置116等待触发事件,例如装置116的加电或充电、定时器的期满、触发消息的接收(例如,从网络服务器(未图示))等等。在不存在触发的情况下,过程130保持在阶段136处。响应于触发,过程130继续到阶段138。
[0046] 在阶段138处,装置116使用CI118产生胶位,且以加密方式处理SV122。装置处理器124获得CI118且将散列函数应用于CI118以确定胶位。装置处理器124还获得检验密钥120且使用检验密钥120以加密方式处理SV122以确定参考值(RV)。
[0047] 在阶段140处,进行关于胶位是否匹配于RV的查询。装置处理器124将从CI118确定的胶位与从SV122和检验密钥120导出的RV进行比较。如果胶位不匹配于计算的RV,那么过程130继续到阶段142,其中至少部分地停用装置116。如果胶位匹配于计算的RV,那么过程130继续到阶段144,其中装置116的操作继续,优选地其中启用装置116的组件的所有功能性。
[0048] 再者,参见图6,可远程地进行完整性确定。系统200包含服务器210、网络212以及例如移动电信装置等计算机装置214。服务器210经配置以通过网络212与装置214通信且反之亦然。装置214包含装置处理器216,其经配置以收集组件信息(CI)218且以加密方式处理CI218(例如,根据上文论述的技术(例如,通过应用散列函数、应用密钥等等))。装置处理器216进一步经配置以经由网络212将以加密方式处理的CI经由收发器220发射到服务器210。
服务器210包含服务器处理器222,其经配置以将从装置214接收的信息与由服务器处理器
222获得(例如,从存储器存取或从存储的信息确定)的参考信息进行比较。服务器处理器
222经配置以经由网络212将装置214的完整性是否完整的指示(例如,从装置214接收的信息是否匹配于参考信息)发送到装置214。装置处理器216经配置以经由收发器220接收指示且基于所述指示确定是否禁止或允许装置214的操作。或者,装置处理器216可在不加密CI218的情况下将CI218发送到服务器210。
[0049] 其它考虑
[0050] 再其它实施方案和配置是可能的。
[0051] 如本文使用,包含权利要求书中,以“...中的至少一者”结束的项目列表中使用的“或”指示分离性的列表,使得例如“A、B或C中的至少一者”意味着A或B或C或AB或AC或BC或ABC(即,A和B和C)。在描述若干实例配置后,在不脱离本发明的精神的情况下可使用各种修改、替代构造和等效物。举例来说,以上元件可为较大系统的组件,其中其它规则可优先于或另外修改本发明的应用。而且,可在考虑以上元件之前、期间或之后进行若干步骤。因此,以上描述不界定本发明的范围。此外,可揭示一个以上发明。