将资产安全地提供给目标设备的模块的制作方法

文档序号:11142301阅读:425来源:国知局
将资产安全地提供给目标设备的模块的制造方法与工艺
目前,片上系统(SoC)供应商可以销售许多不同种类的相同“集成电路”(还被称为“芯片”或“IC”),每个种类被配置用于特定应用。IC配置通常通过熔断一个或多个熔断器或者否则对IC上的一次性可编程存储器进行编程。该类型的IC配置一般地是单向过程并且不能被取消。规避配置过程的永久性的一个方法是在一次性可编程存储器内添加冗余或备用位,其可以被组合以修改先前的设置(例如,通过将多个位在一起进行异或来产生最后的配置设置)。然而,该类型的冗余具有有限的灵活性,并且需要占据IC上的附加基板面的附加熔断器。另外,在设置后面具有多个熔断器不消除执行多个编程步骤以配置IC添加成本的需要。同样地,配置现今继续由IC供应商(或者其承包商)执行,IC供应商然后保持具有多个熔断器配置的IC的库存。相同IC的不同种类的储存通常是低效的。例如,如果其是过度生产的或者如果客户的IC配置需要改变,则被配置用于特定应用的被储存的IC潜在地被浪费。此外,在一些情况下,如果所配置的IC的库存不足以满足需求,则订单实现可能被延期。而且,由IC供应商造成的配置的现存模型可以限制IC供应商与下游客户之间的实际的商业关系和收益流实践(practical)的范围。例如,本模型可以限制在其初始销售之后根据IC的重新配置生成未来收入的能力。如果下游客户希望获得所配置的特征集之外的特征,则当前IC通常地缺乏用于解锁该功能性的手段并且因此没有机会将下游特征实现用作收入流。而且,对于安全系统和应用的需要是增长的。目前,据称安全IC常常在工厂地板上(onthefactoryfloor)利用安全密钥被编程。安全密钥可以以各种方式被使用,诸如例如保护所存储的数据、控制对数字内容的访问或者加密/验证在事务中被使用的数据。现今,这些密钥可以存储在一次性可编程存储器中,其可以直接保持密钥或保持基本密钥,基本密钥与导出用于各种函数的密钥的密码(cryptographic)函数一起使用。通常地,通过执行安全设施中的密钥加载过程来提供安全性。附图说明在附图的图中以示例的方式而非以限制的方式图示了本公开。图1图示了根据一个实施例的密码管理器(CM)系统的网络图。图2是根据一个实施例的图示了图1的CM系统的设备之间的消息的示图。图3是根据一个实施例的图示了模块生命周期的流程图。图4是根据一个实施例的将模块创建和部署到电器设备的方法的流程图。图5是根据一个实施例的将模块部署到测试器设备的CM库的方法的流程图。图6是根据一个实施例的图示了针对预计算数据(PCD)部署授权的图1的CM系统的设备之间的消息的示图。图7是根据一个实施例的在生成和输入时的顺序PCD文件和在重新分块之后的两个顺序PCD文件的流程图。图8是根据一个实施例的在生成和输入时的两个非顺序PCD文件和在合并之后的非顺序PCD文件的流程图。图9是根据一个实施例的图示了模块、PCD和票单关系的示图。图10是根据一个实施例的PCD生成过程的流程图。图11是根据一个实施例的图示高带宽数字内容保护(HDCP)输入过程的网络图。图12是根据一个实施例的HDCP生命周期中的输入HDCP资产的输入过程的流程图。图13是根据一个实施例的生成和封装用于CM系统中的安全部署的PCD资产的方法的流程图。图14是根据一个实施例的票单处理(ticketing)和HSM交互守护进程(THID)部件的框图。图15是根据一个实施例的对模块进行票单处理以将数据资产安全地提供给目标设备的方法的流程图。图16是根据一个实施例的包括处理器和连接到可移除存储设备的可移除存储设备接口的计算机系统的一个实施例的示图。图17是根据一个实施例的区域划分的示图。具体实施方式本文所描述的实施例描述了用于在目标设备的制造生命周期的一个或多个阶段中将安全资产提供给目标设备的安全资产管理基础设施的技术。该安全资产管理基础设施(还被称为CM生态系统)包括被设计为实现提供安全芯片制造(在下文中被称为“CM”系统)的使用情况的硬件和软件的多设备密码管理器(CM)系统。该CM系统包括各种授权、定制和测试子系统以及其他经处理的旨在安全设备的制造。该CM系统安全地生成、处理和递送有效载荷(序列)。其通常地包括CM根设备(在本文中被称为“根设备”或“CM根设备”)、一个或多个CM服务电器设备(在本文中被称为“服务设备”或“CM服务设备”)、若干CM电器设备(在本文中被称为“电器设备”或“CM电器设备”)、测试器设备和若干CM核心与相关软件。该CM生态系统中的CM电器是将有效载荷(还被称为序列或模块序列)安全地生成、处理和递送给目标设备的CM核心的产品。该CM核心是能够执行命令集合的硬件核心,其是用于将功能性递送给目标设备(还被称为产品)的构造块。这些命令的执行的结果是CM系统的目标。序列可以被数字签名和/或携带其他密码有效性的例证(例如,MAC),CM核心可以验证该例证以确认序列的原始和有效性。即使被用于递送序列的通信信道是不受信任的,这也提供对什么数据将被CM核心接受(并且哪些操作将由CM核心执行)的控制。在一个实施例中,CM核心是CryptoManagerTM核心。CryptoManagerTM核心是提供对于特征激活、配置管理和安全密钥管理的密码控制的硬件核心。CryptoManagerTM被集成到片上系统(SoC)设计中并且经由被定位在SoC主总线上的寄存器接口而被访问。该模块是程序,包含指令和数据两者,对于该模块的执行导致序列的安全构建。该序列可以是由在委托电器设备内的HSM上运行的模块所产生并且由CM核心消所耗的二进制数据。CM核心对于序列的安全执行是CM系统的主要目标。模块的确切指令集合可以被定义为CM系统设计的一部分。电子设备和包含电子部件的其他设备的制造和组装已经连同这样的硬件设备的增加的使用而增加,电子部件诸如微控制器、传感器、处理等。为了降低制造成本,许多公司已经将制造过程的各方面外包给第三方公司。这些第三方公司中的一些第三方公司可以是海外的并且可以处于其中企业安全不与其他管辖区域一样鲁棒的管辖区域。在某些设备的制造中,软件、代码、密钥和其他重要的资产可以被嵌入或被安装在硬件设备中。当前,这些资产可以从客户传输到存储介质的制造地点,诸如被存储在光盘上。这些资产的管理对客户的安全性和收益可以是重要的,因为其在所有方面不是完全满意的。本文所描述的实施例提供安全资产管理系统和技术以向不受信任的环境中的这些硬件设备安全地提供资产。该安全资产管理系统包括许多部件,许多部件协作以允许客户在由第三方制造商所执行的制造过程期间监测和控制这样的资产的接收和消耗。该系统包括被安装在第三方制造商处的远程部件和由客户用来与这些远程部件进行通信并且控制这些远程部件的部件。资产可以是需要在设备可以做好准备用于销售给客户之前被安全地传送给消耗设备的数字数据,数字数据诸如密钥或密钥集、证书、唯一设备标识符等。图1图示了根据一个实施例的CM系统100的网络图。CM系统100通常包括各种密码管理器(CM)设备。CM系统100可以提供被设计成通过网络服务接口将安全密钥和资产管理能力提供给目标设备106(例如移动设备)的安全事务处理和数据报告基础设施。针对CM系统100的用户或客户可以是生产用于移动设备的芯片集的无晶圆半导体供应商、制造移动互联网连接设备的系统集成商(OEM)以及将这些设备部署在其无线网络上的移动网络运营商(MNO)等。这样的客户将其设备或部件的加工中的一些加工转包给操作远程制造设施的第三方制造商,远程制造设施诸如高容量制造地点130。作为客户的制造和通信系统的任务关键部分,对于CM系统100的设计优先考虑是高可用性和整体性。CM系统100包括充当针对设备和模块的初始提供设施的提供设备110,其可以是CM系统100的一部分或在CM系统100中被使用到设备的初始标识和凭证。诸如在图2中所图示的,根设备102接收由提供设备110签名的数据。根设备102是授权CM系统100的安装、配置和操作的实体。根设备102可以保护主密钥并且授权在任何给定地点(诸如制造地点130)中的CM系统100的部件的设置、安装、配置和操作。出于安全性原因,在一些实施例中,提供设备110可以不具有到CM系统100的剩余部分的永久连接。换言之,根设备102可以被认为是授权CM系统的操作中的设置和主要配置参数的离线根。通常地,数据通过诸如通用串行总线(USB)闪存盘等的可移除存储设备被传送给根设备102并且从根设备102被传送。计算机系统受安全性与方便性之间的权衡的支配。考虑到根授权的主要任务是对支持整个CM部署的安全性的主密钥进行保护,根授权设计由对于安全性的需要驱动。这是为何根授权可以是空气间隔的(即,未连接到任何计算机网络)。此外,HSM可以被用于保护由根授权存储的最重要的密钥。由于根授权是离线的,因而其不被假定为连续地可用。因此,根授权可以提前授权许可动作的范围,从而使得当需要采取动作时不必要包含根授权。该根授权的授权被提供给服务设备,其中做出关于将实际使用哪些授权的决策。包括一个或多个服务设备104的服务107(在下文中“服务”)提供中心地控制和监测CM系统100的操作以及将数据提供给电器集群109(一个或多个电器设备的集合)的方式。服务设备104是被用于促进CM系统100的中心管理以及将数据提供给电器集群109的硬件电器。此外,其分发分配(经由委托电器设备108)去往目标设备106的模块、数据和安全参数。目标设备106是单块集成电路,通常包含CM核心。服务107的服务设备104可以驻留在客户的物理安全企业数据中心140中并且可以将总控键(turn-key)安全服务提供给公司来管理其在远程制造现场130中的资产。在另一实施例中,服务107可以包括通过企业网105进行连接的多个数据中心140处的多个服务设备104,如在图1中所图示的。资产是,需要安全地被传送给目标消耗设备(例如,CM核心)的数字数据文件,诸如HDCP设备密钥集。资产是诸如密钥、序列号和固件的任何敏感数据,其通过CM系统安全地被管理并且被提供给从制造供应链到终端用户的各种生命周期阶段处的设备。资产通常是设备特定的。例如,perso1、perso2和设备序列化记录是资产。数字内容保护LLC(DCP)是创建和销售HDCP密钥的组织。例如,客户从DCP购买其密钥,并且然后将HDCP密钥引进到CM服务中。该引进过程将密钥文件重定格式为预计算(PCD)文件并且将其加密,从而使得仅合适地被授权的电器设备可以访问PCD。电器集群109负责在制造现场130处在制造目标设备106的过程期间本地托管将被传送给目标设备106(例如,CM核心)的敏感数据。管理电器集群109的分发网络以及跨越安全电器设备108的网络103提供PCD资产、票单授权、签名序列和模块的能力可以由网络服务接口提供给CM系统100的用户。该电器集群109可以负责将敏感数据安全地本地存储在制造设施地点130中并且负责使该数据以对于诸如片上系统(SoC)或在这样的SoC上的子部件的目标设备106(在半导体器件测试和/或制造过程期间与低延时的方式高度可用。目标设备106可以在SoC的设计阶段期间被集成到SoC设计中以提供SoC特征激活、配置管理和安全密钥管理的密码控制。在一些实施例中,目标设备106各自包括CM核心。该CM核心是能够执行命令集合的硬件核心,其是用于将功能性递送给产品(目标设备106)的构造块。这些命令的执行的结果是CM系统100的最终目标。委托(Delegate)是根设备102将CM核心编程能力的子集所授予的实体,允许根设备102未知的数据被合并到去往目标设备106(例如CM核心)的序列中。电器设备108是被设计为将安全计算、数字签名和序列分发提供给合并了由委托实体提供的数据的目标设备106(例如,CM核心)的服务器。电器设备108各自包含硬件安全模块(HSM)111,其用作拱顶(vault)安全保护敏感数据和用于模块的执行的平台两者。此外,电器设备108生成、采集、保护、数字签名并且经由服务107将各种日志信息提供给客户。电器集群109(还被称为委托集群)是一组委托电器设备108,其提供由委托电器设备108提供的服务的增加的可用性。如果特定电器设备108不能够实现请求,则测试器设备112可以连接到相同电器集群109中的任何其他电器设备108以在没有较大中断的情况下继续服务。测试器设备112是半导体器件加工中被使用以测试设备恰当地运转的机器。该CM系统使用测试器设备112以在晶圆分类和封装测试期间对数据进行编程。测试器设备112一般地是被定位在制造者的地点130、被用于将序列递送给特定目标设备106(例如,CM核心)的不受信设备。该测试器设备112是被设计为执行验证、表征和高容量制造测试的设备。测试器设备112运行一系列半导体测试,其中的一个或数个将是CM系统操作的一部分。该测试器设备112依赖于与委托电器集群109发起通信并且提供日志信息。序列是由在委托电器设备108内的HSM111上运行的模块产生并且由CM核心消耗的二进制数据。由CM核心造成的序列的安全执行是CM系统100的主要目标。该测试器设备112可以访问客户端库114。该客户端库114可以是将被与测试器设备112的主要应用进行集成的软件部件。该客户端库114可以是由密码研究公司所提供的客户端库。在本文中描述了由包含CM核心的CM系统100中的测试器设备112发起的典型的交互。在其他实施例中,在非CM核心系统中,由测试器设备112造成的交互可以是稍微不同的。当测试器设备112运行“CRI”测试时,测试器设备112可以调用将请求发送给电器设备108中的一个电气设备的脚本。作为响应,电器设备108执行本文所描述的导致将序列安全递送到在给定测试中被使用的一个或多个CM核心的协议。为了使数据可用于目标设备106,电器集群109可以通过网络103(诸如公共因特网、私有网络和/或其组合)被连接到被称为服务107的资产管理服务,网络103诸如公共因特网、私有网络和/或其组合。电器集群109可以驻留在外包制造设施地点130的数据中心中并且可以充当服务107的代理。电器集群109以低延时方式使用强验证和访问控制制造期间使得PCD资产的安全高度可用的本地库存和票单授权对于在目标设备106(例如,移动设备和芯片集)是可用的。将资产提供和/或安装到设备可以被称为资产管理事务。资产管理事务可以由模块管理。单个电器集群109可以运行许多模块并且每个模块可以被设计为将单个类型的事务提供给CM核心使能的目标设备。在HSM111上执行由模块需要的安全性敏感计算。模块连同防干扰HSM111可以消耗来自服务107提供给电器设备108或电器集群109的块(bulk)授权文件的目标设备特定授权或票单。模块是包含指令和数据两者的程序,其执行导致序列的安全构建。模块的每个指令集被定义为CM系统设计的一部分。模块模板是程序,其定义模块的指令集。模块模板由根设备102引入并且其执行导致模块的创建。模块模板提供用于CM系统扩展性的机制。如本文所描述的,PCD是由委托电器设备分发分配、通常地离线地被计算、成批地(inbulk)被发送给委托电器设备、由指数所索引并且作为序列的一部分被传送的数据。该指数可以独立于目标设备的序列号或其他标识符。PCD模板是成为针对特定类型的模块的输入的PCD如何被格式化的描述。PCD类型是基于具有诸如唯一性、序列化等的特定性质的特定PCD模板的PCD的集合。例如,PCD包括CM根生成的密钥、序列号等,其安全地被封装,从而使得设备上的仅CM核心IP可以提供数据。对于另一示例而言,PCD包括来自各种供应商的、从CM服务到目标设备被安全地管理的密钥(例如,HDCP密钥)。在被加载到服务中时,密钥数据被转换为PCD。给定PCD类型内的所有资产由具有相同票单名称的票单所索引。票单是使能使用计数限制的实施和CM核心参数的唯一性/顺序发布的数据。票单由服务操作者授权并且由CM模块消耗。下文更详细地描述了模块、PCD资产和票单。一般而言,必须信任CM设备(例如,102、104和108)以便提供代表CRI客户(或者根授权实体的客户)管理、分发和编程有价值的电子资产所需要的安全基础。建立可以被用于所有设备的验证的、跨越CM系统100的信任的根对于CM基础设施的总体安全模型是首要的。为了解决安全地建立和提供安全标识符和凭证的问题,可以使用提供设备110(还被称为CRISP或CRISP设备)。可以在任何CM设备的生命周期中的起始点处使用CRISP。在CRISP可以提供任何新CM设备之前,CRISP首先创建其自身凭证并且将其自身建立为对于提供资产的实体(例如,密码研究公司)和在制造中将资产分发到CM设备的其客户两者来说受信任的第三方。CRISP提供将CM系统100从使用CRI发出的密钥(例如,由密码研究公司所提供的密钥)操作切换为使用通常地由根授权(RA)所生成的客户特定密钥来操作的能力。应当注意,描述的各部分指代CM系统100的部件(诸如根、服务或电器)作为逻辑实体。有时,逻辑实体的内部结构是重要的。例如,服务实体通常地包括两个服务器、共享文件系统、共享数据库等。在服务107的内部是重要的并且这些服务器中的每一个服务器被视为逻辑实体的上下文中,其中的每一个被称为服务设备以将其与服务实体(其表示服务设备以及共享资源)区分。类似地,根设备102是实现根授权的功能性的服务器;电器设备是单个服务器(通常地电器设备108的电器集群109的成员)。目标设备106是CM系统100的功能性的消费者,目标设备106通常地目标设备的CM核心。根设备102、服务设备104和电器设备108各自包括主计算设备(例如处理器等)以及嵌入式HSM111。ID和密钥中的一些ID和密钥将被存储在HSM111内,同时其他的将被存储在设备的硬盘驱动器上。ID或密钥的确切位置是基于其灵敏度和实现细节来确定的,如本文所描述的。ID被用于标识CM系统100内的部件。部件中的一些部件是实体(例如服务107),同时其他的是设备(例如服务设备104)。而且,如本文所使用的,芯片系列(ChipSeries)指代共享CM核心内的相同安全参数的产品的集合(例如,共享例如RsbSigningKey的属性的公共集的产品的集合)。该概念还由根授权(RootAuthority)的数据模型反映。安全参数的每个集合被封装在根授权上的不同的ChipSeries数据集中。ChipSeriesID是ChipSeries的标识符。ChipSeriesName或别名是由ChipSeries的客户所使用的代号。产品是共享例如deviceID空间的属性的公共集的设备的集合。DeviceID是目标设备的标识符。产品名称(ProductName)或产品别名可以是由产品的客户使用的代号。ChipID是产品的ID而不是芯片、核心或设备的标识符。提供系统可以包括一个或多个提供设备110(在图1中被标记为CRISP设备110)。CRISP设备110充当CM系统100中的所有设备和模块的初始密钥提供授权,其提供设备的激活标识和凭证,提供系统诸如密码研究公司(CRI系统提供)CRISP实体。具体而言,根设备102接收由诸如在图2中所图示的提供设备110签名的数据:电器定义文件,其指定电器设备和其HSM111的属性;服务定义文件,其指定服务设备和其HSM的属性;模块模板、PCD模板、ChipSeries模板等。关于CM系统100的所有设备的信息,特别是其ID和其密钥,将由CRISP设备110传递给根授权(根设备102)。该数据用作根授权的授权的基础。例如,当激活新服务107时,根(Root)操作者从根授权已知的所有服务设备104的列表选择服务设备104以建立新服务。应当注意,在某些情况下,对于根授权而言输入CRISP设备110尚未授权的设备、模块或其他数据可以是可能的。虽然CM系统100可以以有意义的方式运行,但是这样的输入可以引入不受信任的元件并且可以具有严重的安全性和可靠性后果。图2是根据一个实施例的图示了图1的CM系统100的设备之间的消息的示图。图2图示了CM系统消息传送200的高级概述。这些消息提供CM系统100中的消息的视觉表示。它们可以在逻辑上划分为以下功能性组:定义;激活;模块分发;PCD分发;和粗略地对应于上文所描述的CM生态系统生命周期阶段的票单分发。操作还可以细分为数个特定阶段:模块;PCD和票单分发。应当注意,每个编号的消息可以实际上表示数个消息,但是通常已经被表示以图示消息交换。而且,图2中所描绘的消息可以包含数个部分。在本文中描述了生成和处理每个消息所要求的消息和相关联的功能性。消息的划分归因于两个因素:对于在设备106和HSM111为目标的消息的编码需要和文件签名。对于以HSM为目标的文件而言,HSM通常处理以二进制格式编码的输入数据。因此,应当以该方式来编码以HSM111为目标的数据。对于以设备为目标的文件而言,出于处理的简单性,可以使用JSON来编码将由服务设备或电器设备处理的数据。为了避免使HSM111解析JSON对象,消息可以分成这两个类型:二进制或JSON。HSM111的特征之一是备份恢复机制,其使用主备份密钥(MasterBackupKey(MBK))。而且,为了操作,HSM111必须具有被存储在其中的MBK。在根、服务和电器设备上,MBK被不同地对待。在根设备102上,MBK如计划地被用于备份/恢复操作。在服务设备104和电器设备108上,可以不使用MBK并且MBK可以被生成并且存储在HSM111上。对于定义而言,如上文所描述的,CRISP设备的110作用是提供设备标识和凭证的初始验证。CRISP设备110创建和分发凭证,其被用于在其被激活之前建立服务设备104与电器设备108之间的相互验证的安全外壳(SecureShell(SSH))隧道。此外,CRISP设备110用作关于设备的经验证的公共信息到根授权并且继续到其他设备的分发器。例如,ApplianceActivationConn密钥对被用于提供针对SSH验证的电器凭证。该密钥对被生成在电器设备108上并且其公共密钥在电器定义消息202中的定义期间被发送给CRISP设备110。作为电器定义的一部分,根设备102从CRISP210接收电器定义消息202中的该公共密钥(连同该种类和其他种类的其他公共密钥)。该公共密钥被分发到可以使用该公共密钥安全地与电器设备108进行通信的服务设备104。附加的定义消息可以被用于其他设备的定义。例如,服务定义消息204可以由CRISP设备110从服务设备104接收。作为服务定义的一部分,根设备102接收来自CRISP的服务定义消息208中的该公共密钥(连同该种类和其他种类的其他公共密钥)。而且,作为根定义的一部分,根设备102可以从CRISP设备110接收根定义消息210。定义的另一重要的部分是提供在根设备102与设备(服务设备104和电器设备108两者)中的每一个之间共享的设备特定场合(nonce)的一次性使用密码,其允许激活消息的验证并且在激活期间递送加密数据。更广泛地,定义是在设备中的每一个设备与CRISP设备110之间交换数据的过程,其使用针对其安全性的物理接近性,其在激活期间被利用以引导安全。根授权的主要功能之一是将授权提供给CM系统100的剩余部分。为了激活,CM系统100的设备可以经由激活消息交换激活文件。这可以通过使用可移除的存储设备(例如,USB闪盘驱动器)传送签名文件来完成。每个授权包括数个文件,其中的一些成对出现:一个内容文件和一个签名或散列文件。当授权需要被递送给设备自身(非HSM111)时,消息内容通常以JSON格式表达,同时二进制格式被用于靶向HSM111的授权。这一切意味着典型的授权是TAR文件,包含数个文件。如在图2中所图示的,服务设备104从根设备102接收服务激活消息212和电器激活消息214。电器设备108可以从服务设备104接收电器激活消息216。基础设施配置包括以一系列签名文件的形式由根设备102提供给服务设备的授权集。这些文件由服务设备104处理并且其中的一些还被发送给电器设备108。例如,在电器设备108可以执行任何有用的功能作为CM系统100的一部分之前(除被升级之外),电器设备108需要被激活。为了这样做,根设备102创建和签名电器激活消息214并且将其发送给服务设备104。该消息的传送构成激活授权。从根设备的视角,该电器激活已经发出,但是其可以长时间不对电器设备108自身产生任何影响。仅当Service操作者决定对所提供的授权动作并且转发所接收的授权时,其可以具有生效的机会。在从服务设备104接收该电器激活消息216之后,电器设备108验证其上的签名并且应用激活授权,只有这样其可以到达有效状态。应当注意,电器激活授权的一部分可以由服务设备104自身处理。例如,这是服务设备104如何接收SSH凭证的,其需要使用SSH凭证以当激活电器设备108时连接到电器设备108。如上文所描述的,根授权可以提前授权许可动作的范围,使得当需要采取动作时包含根授权不是必要的。该根授权的授权(214,216)被提供给服务设备104,其中做出关于将实际使用哪些授权的决策。如在图2中所图示的,消息被用于在CM系统中的设备之间安全地交换关于模块、PCD和票单的信息。例如,根设备102接收将模块模板输入根设备102的模块模板输入消息220和将PCD模板输入根设备102的PCD模板输入消息230。下文更详细地描述了模块、模块模板和PCD模板。服务设备104接收将模块输入服务设备104的模块输入消息222和将模块部署到电器设备108的模块部署消息224。服务设备104接收将PCD输入服务设备104的PCD输入消息232和将PCD部署到电器设备108的PCD部署消息234。电器设备108接收将模块输入电器设备108的模块输入消息226和将模块部署到目标设备106的模块部署消息228。电器设备108接收将PCD输入电器设备108的PCD输入消息236。PCD可以结合部署到目标设备106的模块被部署到目标设备106。应当注意,PCD被用于将数据输入提供给模块。一般而言,存在对模块的两个主要输入,包括PCD和票单。例如,为了将密钥传送给目标设备106的CM核心,密钥以PCD的形式提供,其当其响应于来自测试器设备112的请求而被执行时由模块消耗。PCD是对PCD相关的信息的一般引用,如本文所描述的。服务设备104和电器设备108可以交换票单消息240。具体而言,电器设备108从服务设备104接收票单授予(grant)消息240。PCD的形式的票单是当在目标设备106上被执行时到模块的输入。下文描述了关于票单的附加细节。CM系统100的特征之一是在执行命令序列的委托电器设备108上运行的命令解释器。基本上存在顺序的两种类型的命令:由根授权进行密码签名的一个类型、由诸如服务设备104的委托进行密码签名的另一类型)。这些序列将安全和验证的编程指令提供给目标设备106(例如,CM核心)。模块模块是包含指令和数据的程序,对于模块的执行导致序列的安全构建。序列进而被定义为由目标设备106的CM核心所消耗的模块的二进制输出。对CM核心的序列的安全传输和其后续执行是CM系统100的主要目标。换句话说,模块封装由CM系统100所提供的一件不同的功能性。委托电器设备上的模块的执行以与通常是CM核心的最终消费者设备的交互的形式递送由CM系统100所提供的实体。一般而言,模块是将数据安全地提供给目标设备的应用。模块在其被授权为在特定制造地点处的特定电器集群上运行的根授权中起源。模块可以以来自电器集群上的库存的PCD资产的形式将加密资产处理为设备唯一的不可重放的消息。一些模块不具有PCD并且一些模块不具有唯一消息。模块使用票单系统确保资产不被复制或加倍花费(double-spent)。模块包含由在制造过程期间使用客户端库调用模块的测试器设备写到设备的信息,制造过程期间例如是晶圆分类或最后测试期间。大多数模块还在电器设备上安全地记录设备事务。日志条目包括跟踪数据,数据诸如deviceId和密钥标识符。票单系统跟踪模块使用并且可以要求库存确保每次测试器设备写到设备时,有效载荷对于该设备唯一并且防止重放或加倍花费。电器设备可以已经包括针对每个模块的指定数目的PCD和票单的库存。模块可以由服务操作者部署到所选择的电器集群,但是可以首先要求来自根的授权。服务然后维持由每个电器集群处的每个模块所要求的足够的水平的PCD和票单的库存,以覆盖具有针对网络连接故障或带宽波动的容限的生产率。模块向CM系统架构提供灵活性和扩展性。可以在运行的CM系统100上开发、测试和部署新模块,同时其将支持使用先前部署的模块的生产。模块生命周期在某种程度上是复杂的,其是系统要求的反映,其调用可扩展机制以将还未知的特征提供给运行系统,同时不牺牲任何系统安全性。以下描述提供贯穿模块生命周期的模块管理的各种实施例。图3是根据一个实施例的图示模块生命周期300的流程图。在302处,CRISP操作者创建模块规格文件(CM文件)。在304处,CRISP操作者使用CRISP命令行接口(CLI)或其他用户接口运行命令(例如,cmComplier命令)来创建模块模板(CMT文件)。CM文件由CMComplier用作输入。在306处,操作者(CRISP操作者和根操作者)使用CRISPCLI和RootCLI根据需要生成PCD。在308处,模块模板和PCD模板经由拇指驱动器(或其他可移除的存储设备,如本文所描述的)从CRISP被传送给根。在310处,在根CLI处,根操作者运行命令(例如,createModule命令)来创建模块。在一个实施例中,对于模块M1而言,softHSM创建模块并且HSM对模块进行签名。模块包含或使用以下中的一些或全部:PCD305(来自CRISP和/或Root);来自Root数据库的密钥(加密的);由根操作者提供的参量;针对电器设备108稍后提供的数据的“占位符”311。应当注意,在该示例性实施例中,模块不包含PCD,但是模块可以要求PCD存在于电器上。由根操作者所提供的模块的参量可以是针对特定管理模块的特定特征比特。其可以包括确定例如在何处存储所得密钥的存储器偏移。在312处,具有占位符311的模块经由拇指驱动器从根设备102被传送给服务设备104。在314处,在根CLI处,根操作者运行命令(createModuleDeploymentAuthorization命令)以生成模块部署授权(ModuleDeploymentAuthorization)。在316处,模块授权文件经由拇指驱动器从根设备102被传送给服务104。在318处,服务操作者上载针对HDCP模块的高带宽数字内容保护(HDCP)密钥文件(来自DCP)。服务操作者请求服务设备104将PCD密钥转换为被格式化为PCD文件的HDCP加密密钥。在320处,服务设备104将PCD305和票单307提供给电器设备108。服务设备104可以继续向电器设备108授予票单以给出使得电器设备108执行模块的许可。服务设备104可以询问电器设备108以确定库存状态,并且当库存下降到配置限制以下时可以将PCD发送给电器设备108。在322处,模块通过网络被部署到电器设备108。在该实施例中,当服务操作者使用用户界面(GUI或CLI)时、当将电器设备108添加到电器集群109(未图示在图3中)时以及当将模块部署到新电器设备108时,可以触发部署命令(loadModule命令)。在324处,使用测试器CLI,测试方法开发者创建测试脚本315(例如,lot_test)并且将其加载到测试器设备112上。在326处,测试脚本315触发客户端库114到电器设备108通信,其调用模块。在328处,客户端库114向电器设备108发送参量,发送电器设备108使用该参量连同PCD305以产生发送到测试器设备112的模块序列313。在330处,电器设备108的HSM111组装PCD305和测试器信息,签名委托签名块(DSB)并且创建模块序列313。在332处,电器设备108将模块序列312发送给针对测试器设备112的客户端库114以发送到CM核心。在一个实施例中,根设备接收模块模板、PCD模板和包括与多个类型的特定事务类型相关联的参量的用户输入。模块基于模块模板、预计算数据和参量而被生成并且被部署到电器设备。当模块在电器设备上执行时,导致待被执行的操作的序列的安全构造,作为关于目标设备(例如,CM核心)的特定事务类型的事务。在一些实施例中,模块是基于模块模板由根授权产生的。模块模板可以通过与设备定义的分发类似的机制由CRISP设备110分发。模块模板基本上基于模块需要支持的使用情况定义模块的类型。将在相同生产阶段处被运行为电器设备与CM核心之间的事务的单个集合的使用情况可以使用模块模板,模块模板组合期望的功能性的集合。基于该模块模板,将在根设备102上创建针对特定chipSeries数据集的模块。该模块连同模块部署消息将被分发布到电器集群以执行与CM核心的交互来将组合的数据提供给目标设备。模块管理可以分为两个不同的CM系统功能:模块输入和模块部署。在高层处,模块输入是电器设备要求在其可以将模块加载到其HSM中并且使用其服务测试器设备请求之前执行什么。然而,如果模块部署消息未针对特定模块而被接收和处理,则其将不能够执行其功能。模块部署消息递送模块密钥(moduleKey),其被用于对模块内的敏感信息进行加密。此外,模块部署消息将模块绑定到特定集群。该模块可以根据约定而别命名,约定诸如利用包括模块功能性的描述的复合描述符(与模块模板名称相同)、模块域、对模块模板参数的引用和版本。例如,提供针对开发模式中的产品的序列化、cvdak(ChipVendorDeviceAesKey)和padak(ProvisioningAuthorityDeviceAesKey)编程功能性的模块的名称将是:srl_cvdak_padak_productname_dev_01,其中最后的参数是版本,其技术上不是名称的一部分,但是通常伴随该名称。模块模板参数可以在模块创建期间被提供并且可以被给出参考(句柄)。这些参考变为模块的名称的一部分。例如,srl_cvdak_padak模块模板要求开发模式。模块模板编码该要求并且根CLI提示根操作者进入该模式以及针对选择的参考(别名)。该参考将被用于标识模块。例如,在模块命名的srl_cvdak_padak_productname_dev_01中,“dev”是对模块模板参数的引用。模块是由根设备102通过将模块模板转换为模块而产生的。模块模板自身是模块。即,模块模板是在根设备102内的HSM解释器上运行的程序。模块模板执行的结果是另一模块。模块模板定义将响应于来自测试器设备112的请求由模块执行的一般功能性。例如,可以创建模块模板以执行序列化、将序列号提供给CM核心等。然而,可以要求关于CM核心的一些特定信息来构建模块以执行序列化。模块模板可以由根HSM上的解释器运行以产生模块。在一个实施例中,模块在TAR归档303中在根设备102、服务设备104与电器设备108之间被传送。服务设备104可以保存特定模块并且通过利用不同的模块部署授权来再次使用以将其部署在不同的电器集群上。模块自身是部署中立的,换句话说,它可以被部署在任何电器集群上。模块部署消息是将模块部署到电器集群的那部分,包括提供利用待递送给电器/HSM的clusterKey而被加密的moduleKey。电器设备验证模块部署消息上的签名,检查电器设备是否属于消息中指定的应用集群,并且将其传递给HSM,其中moduleKey被解开并且被存储。在一个实施例中,根设备102包括处理器和被配置为连接到可移除存储设备的可移除存储设备接口。该处理器可操作为接收命令以创建模块。响应于命令,处理器执行模块模板以生成模块。该处理器将模块部署到电器设备,例如通过将模块存储到可移除的存储设备。具体而言,处理器经由可移除的存储设备接口将模块存储在可移除的存储设备中以将模块传送给服务设备,并且服务设备被配置为通过网络将模块分发到电器设备。在一些实施例中,处理器可以利用PCD、密钥、来自操作者的输入(例如,与特定事务类型相关联的参量)或其任何组合而生成模块。在另一实施例中,处理器可以利用稍后待提供的数据的占位符生成模块,如本文所描述的。该处理器可以生成模块部署授权并且将模块部署授权存储在可移除存储设备中以将模块部署授权传送给服务设备,服务设备通过网络将模块分发到电器设备。在一个实施例中,电器设备108包括处理器、网络接口和耦合到处理器的测试器设备接口。该处理器通过网络接口从服务设备接收模块并且通过测试器设备接口从测试器设备的CM客户端库接收通信。CM客户端库是提供从测试器设备到CM电器集群的接口的函数集。响应于通信,处理器调用模块以基于通信中的参量来生成模块序列。该处理器将模块序列发送给CM客户端库以由测试器设备运行来在目标设备的制造生命周期的操作阶段中将模块序列递送给目标设备的CM核心。在另一实施例中,电器设备108包括HSM,HSM可操作以组装测试器信息和PCD、签名DSB并且利用测试器信息、PCD和该DSB来创建模块序列。在另一实施例中,测试器设备被配置为将模块序列递送给目标设备的CM核心作为测试脚本的一部分。图4是根据一个实施例的创建模块以及部署模块至电器设备的方法400的流程图。方法400可以由处理逻辑执行,处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件、固件或其组合。在一个实施方式中,图1至图3的根设备102执行方法400。在其他实施方式中,本文所描述的CM系统100的其他部件可以执行方法400的操作中的一些或全部操作。参考图4,方法400以处理逻辑接收创建模块的命令开始(框402)。该模块是在目标设备的制造生命周期的操作阶段中将数据资产安全地提供给目标设备106(目标设备106的CM核心)的第一应用。响应于命令,处理逻辑执行模块模板以生成模块(框404)。该模块模板是定义针对模块和数据资产的指令集的第二应用。该处理逻辑将模块部署到电器设备(框406),并且方法400结束。模块的指令集当由电器设备执行时导致操作的序列的安全构造以将数据资产安全地提供给目标设备。电器设备被配置为将数据资产分发到目标设备的密码管理器核心。在另一实施例中,处理逻辑确定预计算数据(PCD)是否已经被接收(框408),预计算数据包含数据资产(框408)。当在框408处PCD已经被接收时,处理逻辑利用PCD生成模块(框410),并且返回到框406以将模块部署到电器设备。在另一实施例中,处理逻辑从根数据库检索密钥并且处理逻辑利用PCD和密钥生成模块。在另一实施例中,处理逻辑从根操作者接收输入,并且输入包括与特定事务类型相关联的参量。该处理逻辑利用PCD和参量生成模块。如本文所描述的,该处理逻辑可以利用针对待由电器设备提供的数据的占位符生成模块。如本文所描述的,该处理逻辑可以通过将模块存储在可移除的存储设备中以将模块传送给服务设备,从而将模块部署到电器设备。该服务设备被配置为通过网络将模块分发到电器设备。在另一实施例中,该处理逻辑生成模块部署授权并且将模块部署授权存储到可移除存储设备以将模块部署授权传送给服务设备,并且该服务设备被配置为通过网络将模块部署授权分发到电器设备。在另一实施例中,该处理逻辑利用根模块私有密钥对模块进行签名。图5是根据一个实施例的部署测试器设备的CM库的模块的方法500的流程图。方法500可以由处理逻辑执行,其可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件、固件或其组合。在一个实施方式中,图1至图3的电器设备108执行方法500。在其他实施方式中,本文所描述的CM系统100的其他部件可以执行方法500的操作中的一些或全部。参考图5,方法500以处理逻辑通过网络从服务设备接收模块开始(框502)。该处理逻辑确定通信是否从测试器设备的CM客户端库被接收(框504)。如果没有通信被接收,则处理逻辑继续,直到通信被接收。该通信包括来自CM客户端库的参量。响应于通信,处理逻辑调用待执行的模块以基于参量生成模块序列(框506)。该处理逻辑将模块序列发送给CM客户端库(框508),并且方法500结束。测试器设备的测试器脚本在目标设备的制造生命周期的操作阶段中将模块序列递送给目标设备的CM核心。在另一实施例中,处理逻辑组装测试器信息和PCD、签名DSB并且利用测试器信息、PCD和DSB创建模块序列。该处理逻辑可以指令相应设备的HSM以组装测试器信息和PDC、签名DSB并且创建模块序列。该测试器设备被配置为将模块序列递送给目标设备的CM核心作为测试脚本的一部分。预计算数据(PCD)预计算数据或者简称PCD用作到模块的输入。它的生成和封装可以取决于PCD的类型在CM系统的不同的部分上发生。特别地,其可以要么由CM根要么由CMService完成。一般地,不同的类型的PCD对应于不同的客户使用情况以及因此不同的模块。然而,该对应性不是一对一的(或者映射的)。一些模块不要求PCD(例如,调试解锁模块(DebugUnlockModule)),同时其他模块可以要求多个类型的PCD,诸如组合的序列化/Perso1/Perso2模块。对于多个模块而言消耗单个类型的PCD也是可能的。例如,被格式化为PCD的HDCP密钥可能将由数个不同的模块消耗。PCD资产的生成可以或可以不发生在CM系统100内,即HDCP密钥被输入未生成的CM系统100中。在这样的情况中,PCD封装是当资产以PCD的形式被引入CM系统100中时的阶段。对于诸如HDCP密钥的一些类型的预计算数据而言,PCD封装可以由服务执行。对于诸如Perso1的其他类型而言,其将由CM根授权执行。该CM根授权是受信任的离线实体,其授权模块、CM电器设备和集群并且生成PCD。CM根授权未被连接到CM系统。第三选项用于将封装的PCD直接提供给CM服务的提供授权(例如,CRISP设备110)。CM服务由客户或密码研究公司托管的CM系统的中心管理。CM服务管理CM电器集群的分发网络和跨越CM电器设备的网络的预计算数据(PCD)资产、票单授权、签名序列和模块的提供。以下描述了用于PCD部署授权的消息传输。在一个实施例中,根设备102包括处理器和被配置为连接到可移除存储设备的可移除的存储设备接口其。该处理器可操作以接收生成对目标设备唯一的目标设备的PCD资产的第一命令。响应于第一命令,该处理器生成PCD资产并且封装PCD资产以用于将PCD资产安全部署到目标设备并且排他性地由目标设备使用。该处理器将封装的PCD资产部署在CM系统中以用于目标设备的标识和跟踪。在另一实施例中,该处理器还可操作以接收基于PCD模板成批地生成PDC资产的集合的CLI命令,其中PCD模板是PCD资产如何被格式化为针对特定类型的模块的输入的描述。该处理器生成PCD资产作为成批的PCD资产的集合的生成的一部分并且封装所生成的PCD资产以用于安全部署。该处理器通过网络将封装的PCD资产分发到CM系统的电器设备。电器设备将使用特定类型的模块将PCD资产安全地提供给目标设备的CM核心,模块是应用,当由电器设备执行时导致操作的序列的安全构造以在目标设备的制造生命周期的操作阶段中将PCD资产安全地提供给目标设备。在另一实施例中,服务设备104包括处理器和被配置为连接到可移除存储设备的可移除的存储设备接口。该处理器可操作以接收封装针对目标设备的PCD资产的第一命令。响应于第一命令,该处理器封装PCD资产以用于将PCD资产安全部署到目标设备并且排他性地由目标设备使用。该处理器将经封装的PCD资产部署在CM系统中以用于目标设备的标识和跟踪。在另一实施例中,PCD资产在CM设备外部被生成。响应于第一命令,处理器还可操作以输入PCD资产、封装用于安全部署的输入的PCD资产并且通过网络将经封装的PCD资产分发到CM系统的电器设备。电器设备将要使用模块将PCD资产安全地提供给目标设备CM核心,该模块是应用,当应用由电器设备执行时导致操作的序列的安全构造以在目标设备制造生命周期的操作阶段中将PCD资产安全地提供给目标设备。图6是根据一个实施例的图示了针对PCD部署授权600的图1的CM系统的设备之间的消息的示图。对于PCD部署授权而言,CRISP设备110将包含PCD发生器、PCD模板和模块模板ID的消息602提供给根设备102。在另一实施例中,消息602包括PCD模板、模板模块ID、PCD包装公共密钥、PCD包装密钥参考等。附加消息可以包括由实体签名密钥所签名的PCD包装公共密钥。消息602可以由CRISP模块密钥签名。该服务,包括服务设备104(主要的)和服务设备104(DR),以及共享数据库和存储接收消息604以输入CM根封装的PCD。消息604可以包括头部和数据的有效载荷(例如,AEAD_pcdinstanceKey(record))。对于基于CM根生成/封装的PCD而言,CLI命令集可以被用于操作者基于在来自CRISP设备110的消息602中所接收的PCD模板来成批地生成PCD资产。批PCD资产可以从根设备102输出并且利用诸如USB闪盘驱动器的可移除的存储设备输入CM服务中。服务设备104还可以利用密钥传送/服务封装的PCD输入消息606。消息606可以包括利用公共服务HSM密钥(例如,E_commonServiceHSMKey(pcdinstanceKey))而被加密(包装)的PCD实例密钥。备选地,消息606可以包括封装标识符、PCD类型、票单类型、记录格式、记录索引类型、记录单独标识符长度、记录大小等。消息606可以由待由服务设备104验证的根授权密钥来签名。如在所描绘的实施例中所图示的,服务设备104和电器设备108将各种数据存储在其相应的HSM中或硬盘或共享存储中。在一个实施例中,针对目标设备的敏感数据资产的唯一集合在目标设备外部被生成。CM设备安全地封装敏感数据资产的唯一集合以确保敏感数据的唯一集合将排他性地由目标设备使用。该CM设备将敏感数据资产的封装的唯一集合分发到目标设备以提供目标设备的后续标识和跟踪。以下描述了PCD生成和部署的各种实施例。PCD可以被存储和索引在记录中。每个条目(每个PCD记录)由索引参考。每个条目包含未加密数据、加密数据和消息验证代码(MAC)(例如,密钥密码散列函数)的一个或多个字段。出于检测数据复制的目的来解析未加密的数据是可能的。条目中的共同信息可以包括文件类型、票单类型和与PCD相关联的元数据。元数据可以指定在何处可以使用PCD。该PCD记录应当是唯一的,并且每个PCD记录可以具有全局唯一标识符。全局唯一标识符可以对于顺序访问的PCD而言是顺序的(sequential)。通常,全局唯一标识符对于票单控制的PCD而言是顺序的。在其他实施例中,全局唯一标识符对于查找表PCD而言可以是非顺序的,其中系统中的每个单独的PCD映射到不超过一个唯一票单。在一些配置中,对于一个票而言应用到不超过一个PCD记录是可能的,但是对于单个PCD记录而言由不超过一个票单引用是不可能的。该PCD记录可以顺序地或者使用表查找访问(随机访问)。在一些实施方式中,可以存在大量的PCD记录条目,并且PCD文件格式应当支持大量的(2^32)记录。甚至在没有文件压缩的情况下,该PCD文件格式也可以被构造为相对紧密的。在其他实现中,PCD可以被构造为在没有加密密钥的知识的情况下许可PCD文件头部和单独的PCD条目的验证。这被称为针对数据保护的非密钥的完整性检查,这允许在没有加密密钥的情况下的文件损坏的检测。该PCD还被构造为许可密钥的完整性检查,其中对于占有密钥的实体而言也验证完整的条目是可能的。即,加密内容可以在内容被解密之后被验证。这可以防止恶意操纵或者密钥管理问题。在一些实施方式中,PCD文件可以在没有加密密钥的知识的情况下并且在不改变块数据字段的情况下被分块(分为单独的文件)。单个索引PCD条目可以以许可针对PCD条目、PCD类型和票单类型的完全密钥完整性检查的方式被传递给HSM。该PCD可以作为单个可完全验证的条目被传递给HSM。这可以被要求用于票单绑定的实施。如本文所描述的,PCD可以由根、服务、CRISP或第三方生成或输入。模块和模块模板可以参考PCD,但是PCD不参考模块。CRISP设备110可以被用于建立PCD模板和文件格式,并且根设备102可以创建、跟踪和管理PCD实例化。PCD实例化应当落在CRISP提供的模板规格内。然而,根具有在标识PCD实例化、指定针对PCD的参数、将票单连接到PCD和将模块连接到PCD方面的决定权。PCD生成方应当在生成PCD之前接收关于PCD实例化的信息。PCD可以被管理并且被分发在PCD文件或者PCD独立的记录中。该PCD文件是用于多个PCD记录的存储机制。PCD文件可以在没有密钥的知识的情况下被操纵和被参考。该PCD文件格式是用于PCD存储和传输的主要机制。该CM服务以该形式输入和存储PCD。该PCD独立的记录是“完整的”PCD记录,其被提供给针对解密、验证和票单一致性检查的HSM,如在图7至图8中所图示的。图7是根据一个实施例的在生成和输入时的顺序PCD文件和在重新分块之后的两个顺序PCD文件702的流程图700。顺序的PCD文件702可以是顺序的并且包含被顺序地索引的记录。在文件内的索引和记录位置之间存在直接对应性。这些文件一般地传达顺序地被消耗的数据。如在图7中所图示的,顺序的PCD文件702包含内部头部704、外部头部706和多个PCD记录708-712。内部头部704包含由PCD记录708-712所共享的信息。内部头部704在顺序的PCD文件702被生成之后未被修改并且当顺序的PCD文件702重新分块时被复制。外部头部706包含与特定PCD文件实例有关的信息。其可以在每当顺序的PCD文件702被重新分块时被修改。PCD记录708-712是各自由内部头部中的recordFormat标识符指定的单独的PCD记录。为了存储效率,在PCD记录708-712中未复制来自内部头部和外部头部的信息。图7还图示了在顺序的PCD文件702的重新分块之后的顺序的PCD文件。在这种情况下,生成新外部头部714和716以包含在重新分块之后相对于特定PCD文件实例(PCD文件718和PCD文件720)的信息。内部头部704和PCD记录708-712保持相同,但是现在利用PCD文件718中的PCD记录708和709以及PCD文件720中的PCD记录710-712表示在两个不同的PCD文件718和720中。PCD记录708-712可以是独立的记录,像针对PCD记录708的PCD独立的记录722。独立的记录722可以包括可以由索引访问的单独的记录头部724。独立的记录头部724可以利用PCD记录708传输或者隐含。该数据结构是单个索引PCD条目可以验证和解密的装置。例如,CM电器设备软件将PCD独立的记录722的信息以该形式传递给HSM。在没有附加PCD信息的情况下,HSM能够完全解密和验证PCD和票单。可以从顺序的PCD文件702、718、720中的任何PCD文件创建PCD独立的记录722。创建独立的记录的过程不要求加密密钥。记录708可以包含MAC、加密数据区域或两者。执行这些密码操作所要求的初始化向量(IV)和相关联的数据完全存在于独立的记录722内。在一些实施方式中,当PCD记录被传输到HSM时,独立的记录头部704被隐含并且未被传输。图8是根据一个实施例的在生成和输入时的两个非顺序PCD文件802、820和在合并之后的非顺序PCD文件822的流程图800。该PCD文件还可以是非顺序的。这些文件包含由非顺序索引分类的记录。PCD文件802、820可以是非顺序的并且包含由非顺序索引分类的记录。文件记录利用索引查找而被参考,并且这些文件有时被称为查找PCD。如在图8中所图示的,PCD文件802包含内部头部804、外部头部806和多个PCD记录808-812。内部头部704包含由PCD记录808-812共享的信息。内部头部804在与PCD文件820合并之后未被修改。PCD文件822被生成并且在分类840和合并记录808-812之后内部头部804被复制。外部头部806包含与特定PCD文件实例、PCD文件802有关的信息。其可以在每当PCD文件802被合并(诸如与PCD文件820)时被修改。PCD文件820还包括内部头部804和外部头部844。内部头部804是相同的,但是外部头部844包含与PCD文件820有关的信息。PCD记录808-812是各自由相应内部头部804中的recordFormat标识符指定的单独的PCD记录。在该示例中,PCD文件802包括两个PCD记录808、809,并且PCD文件820包括三个PCD记录810-812。为了存储效率,在PCD记录808-812中未复制来自内部头部和外部头部的信息。图8还图示了在其中将PCD记录808-812分类840的合并之后的非顺序的PCD文件822。新外部头部846被生成。外部头部846包含相对于具有分类的记录PCD808-812的PCD文件820的信息。内部头部804和PCD记录808-812保持相同,但是现在表示在具有分类的PCD记录808-812的一个非顺序的PCD文件822中。PCD记录808-812可以是独立的记录,像针对PCD记录808的PCD独立的记录826。独立的记录826可以包括可以经由查找842由指数访问的单独的记录头部824。独立的记录头部824可以利用PCD记录808传输或者隐含。该数据结构是单个索引PCD条目可以验证和解密的装置。例如,该CM电器设备软件将PCD独立的记录826的信息以该形式传递给HSM。在没有附加PCD信息的情况下,HSM能够完全解密和验证PCD和票单。可以从PCD文件802、820、822中的任何PCD文件创建PCD独立的记录826。创建独立的记录的过程不要求加密密钥。该记录808可以包含MAC、加密数据区域或二者。执行这些密码操作所要求的初始化向量(IV)和相关联的数据完全存在于独立的记录826内。在一些实施方式中,当PCD记录被发射到HSM时,独立的记录头部704被隐含并且未被传输。图9是根据一个实施例的图示模块、PCD和票单关系的示图。该PCD定义是记录格式902(recordFormat)、PCD模板904和PCD类型906(pcdType)。记录格式902标识特定的每个记录的数据结构。PCD模板904标识被用于特定目的的PCD资产的种类,并且每个PCD模板904参考一个记录格式902并且包括描述PCD文件将如何描述或使用的元数据。应当注意,模块模板908指代特定PCD模板904。当模块910由CM根授权时,操作者指定对应于指定的PCD模板904的PCD。PCD类型906是针对PCD资产的特定实例的标识符。每个PCD类型906参考一个PCD模板904。该CM根创建新PCD类型906。在PCD类型906时,创建、关联、票单绑定、密钥和参数是固定的。操作系统将针对记录格式902、PCD模板904和PCD类型906随时间积累新标识符。由于这些定义以不能容易地被召回的方式渗透过系统,因而记录格式902、PCD模板904和PCD类型906的定义在其已经建立之后不应当改变。迁移包含创建新定义和随时间否决旧的一个。特定PCD类型906对应于票单类型912。票单类型可以是测试、开发、生产等。以下实施例描述如何定位PCD记录。对于顺序数据而言,文件中的记录的位置基于记录大小(在内部头部中指定的)和索引范围(在外部头部中指定的)而被确定。对于非顺序数据而言,执行索引搜索。记录利用索引被存储在如由recordIndividualIdentifierLength所指定的记录的前N个字节中。由于单个PCD文件可以不包含完全索引空间,因而由外部头部所指定的顺序索引范围必须在确定PCD文件是否包含讨论中的索引之前被解释。在顺序数据的一些实施例中,顺序数据利用必须同样匹配顺序索引的票单索引而被票单处理(ticketed)。PCD元素与票单之间的强唯一性绑定是期望的。另一方面,非顺序数据可以不被票单处理。虽然HSM模块调用可以由票单限制,但是对于票单而言映射到非顺序索引是不可能的。在一些实施方式中,顺序的PCD文件可以分离为较小的文件用于:(1)将不同的条带分配给不同的CM服务或CM电器设备;或者(2)生成可以在CM服务-CM电器设备连接之间传递的较小的颗粒度的PCD。许多种类的recordFormat可以被定义以将各种数量和类型的数据存储在系统过程中的各种点处使用的PCD记录中。innerHeader中的recordFormat字段的值可以被用于指示在PCD中使用的recordFormat的种类。针对记录的一些示例性记录可以是:序列化信息、个性化信息、设备标识符、各种各样的密钥(例如,提供授权密钥、HDCP密钥、设备密钥等)、前述内容的组合等。以下是PCDrecordFormat定义的示例:被分配给recordFormat的每个值将表示针对PCD记录的不同的种类的recordFormat。每个种类的PCD记录可以存储各种类型的数据,诸如密钥、设备标识符和其他信息。这样的值可以被加密或被解密,并且完整性检查值还可以被包括在PCD中。例如,可以定义这样的系统,其中recordFormat(被表示在具有例如innerHeader中的值“2”的系统中)可以存储在目标设备的提供中待包括的数据。这样的数据可以包括设备标识符、芯片系列标识符和各种密钥值。该数据可以被加密或被解密,并且包括针对记录中的数据的完整性检查值。在以下表(17字节)中提供独立的记录中的RecordFormat2的示例。针对recordFormat的其他值将指示具有不同的类别、不同的字段和大小、不同的描述和不同值的不同的种类的PCD记录。另一示例是指示针对HDCP密钥的PCD的recordFormat值。这样的PCD将保持数据诸如顺序的HDCP索引、HDCP密钥集、密钥选择向量(KSV)和完整性检查值。可以设立recordFormat以散布大量的不同的特定于deviceId的密钥。可以以使能加密密钥值的快速检索的形式来存储该文件。除非另外指明,否则PCD文件应当利用由索引分类的记录而被管理和被存储,其可以是例如前几个字节的未加密的记录数据。pcdTemplate定义PCD记录格式并且提供关于记录如何将被生成/被使用的上下文。它由内部头部中的pcdTemplate标识符参考。在以下表中示出了pcdTemplate字段的示例。以下的表包括PCD生成输入。PCD生成过程的示例可以包括以下全局动作:对于特定PCD类型的生成需要的值的存在的检查;与讨论中的PCD类型的域相关联的元数据的语义验证;对于新生成的PCD的潜在复制的检查。PCD生成过程可以包括以下每个记录的动作:deviceID的推导;每个设备的密钥的推导;以及完整性检查的计算,其被包括在PCD记录中。图10是根据一个实施例的PCD生成过程1000的流程图。该PCD生成过程1000包含(1)生成针对输出范围中的每个设备的模糊的deviceId值(框1002),(2)推导相关联的基本密钥(框1004),以及(3)执行多样化操作(1006)。在其他实施例中,可以使用生成数据集的其他方法,诸如增加通过所有deviceId值和测试计数器的SNE。代表小数目加密的SNE被用于使序列号显得随机,以便不透露关于产品收得率的任何信息。查找表PCD的生成与针对pcdTemplate0x00010001的过程几乎相同。PCD类型定义:pcdTypes在CM根处被创建并且参考pcdTemplate。在以下表中示出了在创建期间由pcdType指定的(并且当pcdType在CM根处被实例化时所选择的)示例字段。PCD类型信息从CM根被传输给CMService(PCD管理)、基于服务的PCD发生器/输入器(HDCP)或第三方PCD发生器/输入器(provisioningAuthority)。可以完成PCD加密和完整性检查,并且通过recordFormat指定密码方案。可以对PCD进行加密。以下的表包括PCD加密密钥。对于高带宽数字内容保护(HDCP)而言,输入过程在单个步骤中将密钥文件从数字内容保护LLP直接转换为PCD格式。当内容被传输为数字数据流以用于显示时,HDCP加密并且保护内容。参与显示链的任何设备要求HDCP密钥来起作用。HDCP由公司开发;HDCP技术的许可由公司的子公司数字内容保护LLC处理。HDCP密钥包括四十个56位秘密值(密钥)和一个非秘密40位值(密钥选择向量KSV)。在图11中概括HDCP输入过程。图11是根据一个实施例的图示HDCP输入过程1100的网络图。HDCP输入过程1100开始于(1)新HDCP密钥被接收、加密和上载到服务设备(框1102)。加密HDCP密钥被传播到电器设备(2)(框1104),电器设备(2)将它们添加到顺序数据库(3)(框1106)。根提供根签名块(RSB)并且提供数据(4)(框1108),其被传播给电器设备(5)(框1110)。电器设备经由测试器设备读取CM核心(6)的deviceId(框1112),并且测试器设备返回deviceID(7)(框1114)。电器设备基于deviceId(8)查找derivedKey(框1116)。HDCP密钥从顺序DB中被检索、利用传输密钥被加密并且利用derivedKey(9)被包装(框1118)。电器设备构建用于烧制包装密钥(10)的序列(框1120)。该序列被发送到CM核心(11)(框1122),CM核心(11)执行。该序列并且经由中断或状态更新(12)指示对于电器设备的完成(框1124)。在输入时,HDCP密钥被分配唯一的顺序地增加的64位PCD索引以用于UID分配。单个PCD索引被用于参考和票单处理目两者。可以执行(通过KSV)完整的复制检查作为输入过程的一部分。没有特定PCD类型内的独立地索引的HDCP记录可以具有经复制的KSV。所检测的复制导致整个输入集的拒绝并且要求手动介入来解决。这准许在输入时对于复制KSV的综合阻挡。在其他实施方式中,可以在输入时完成明智的复制检查。这可以是输入过程的开始时的快速返回复制检查。该检查的目的是向用户提供HDCP盘已经被输入的快速反馈。快速返回的检查不需要被充分理解并且可以使用KSV或其他检查机制。在其他实施方式中,CM电器设备在可以HDCP记录被消耗用于票单实施之前,要求CM服务发出的、特定于记录的密码票单。完整的CM票单系统必须实施HDCP密钥提供的一次性和唯一性质。CM服务设备可以跟踪所有发出的KSV值的历史并且如果在基于日志的检查中检测到复制则发出警报。可以基于以下各项执行复制检查:(1)CM电器设备参考的KSV的日志,(2)CM电器设备的具有KSV的序列的日志,(3)CM电器设备的消耗票单的日志,(4)测试器设备日志等。该系统可以跟踪足够的元数据以使得攻击复制能够被标识。例如,当系统处于健康操作模式时,基于日志的警报可以在提供动作的4小时内被返回。在其他实施例中,票单可以应用到除HDCP密钥提供外的情况,如本文所描述的。对于数据安全而言,CM电器设备可以仅访问/操纵HSM内的未加密的HDCP密钥。在PCD形式中,KSV值必须在没有密钥的知识的情况下是可读的。这使得CM服务设备和CM电器设备能够执行复制检查。图12是根据一个实施例的HDCP生命周期中的输入(incoming)HDCP资产的输入(import)过程1200的流程图。HDCP1202使用PGP密钥和口令短语1204解密(框1206)。执行具有KSV数据库1208的基本完整性检查以确认适当的PGP解密(框1210)。这可以是确保先前尚未输入相同HDCP密钥文件的快速的清洁的(sanitary)复制检查。该检查的目的是向用户提供HDCP已经被输入的快速的反馈,其中可以在HDCP生命周期中的后期执行综合检查。生成文件头部(框1212)。PCD索引被分配给每个记录(框1214)。使用UID计数器1216,索引是顺序的。一旦索引已经被分配,其绝不被重新使用。PCD记录被加密(框1218)到PCD文件1222中。对存储在复制数据存储1226中的先前生成的所有文件执行完整的KSV复制检查(有标签的DUP检查数据库)(框1224)。该过程确保(1)KSV仅被分配给单个UID,以及(2)KSV仅出现一次。针对KSV比较所使用的备份数据库包括PCD索引,从而使得可以定位/跟踪复制。应当注意,如果对完全形成的PCD文件执行检查,则相同过程可以被用于其他非HDCP数据。如果复制检查故障,则可以拒绝整个PCD。如果所有检查成功地完成,复制数据存储1226利用新输入的KSV增大(augment)。CM服务可以增大其索引跟踪数据库以覆盖新记录。该过程包含确保不存在重叠索引的索引唯一性检查。该输入由CM服务提交。这时候,HDCP密钥文件的输入和翻译被认为是成功的。以下描述描述了PCD生命周期决策。一个是序列化PCD的生命周期。序列化PCD通常被称为晶圆分类PCD。每个记录包括序列化数据和可选地perso1密钥分割。另一PCD生命周期决策是以下分配/设立过程:每当chipSeries或chipId改变时CM根定义新pcdType,并且CM根将pcdType授权/定义传递给CM服务设备。另一PCD生命周期决策是生成依存性类型。PCD经由cmCoreVersion特定发生器由CM根产生。针对生成所要求的所有数据/代码由CM根管理。另一PCD生命周期决策是生产生成。CMRoot生成PCD以对CM服务给以足够的库存(诸如超过6个月的库存)。应当推荐,deviceIdSequential值的范围被分配给生产和非生产服务。可以将PCD文件直接输入CM服务中。PCD生命周期的示例是p5PCD的生命周期。提供授权PCD由CRISP产生(作为提供授权)并且直接输入到CM服务设备。对于分配/设立而过程言,每当cmCoreVersion改变时CM根定义新pcdType,并且将pcdType授权/定义传递给CM服务设备。该CM根将pcdType信息传递给CRISP。安全和验证装置被用于传输pcdType信息(特别地,内部头部数据和pcdTypeKey)。CRISP生成(或选择重新使用)SNE参数、主密钥以及与provisioningAuthorityDeviceAesKey相关联的其他数据。对于生成依存性而言,该PCD经由使用CRISP管理的秘密用于密钥生成和SNE序列号生成的发生器来由CRISP产生。PCD(头部、加密)的封装要求由根为来源的pcdType信息。对于生产生成而言,CRISP生成PCD以对CM服务给以足够的库存(例如,超过6个月)。将PCD文件直接输入CM服务中。PCD生命周期的示例是密钥查找PCD的生命周期。密钥查找PCD被用于传达多样化的基本密钥组。它被设计为作为查找表被访问。密钥查找PCD被用于传达多样化的值:由deviceId索引的chipVendorDeviceAesKey;以及由provisioningAuthorityId索引的provisioningAuthorityDeviceAesKey。对于针对chipVendorDeviceAesKey的分配/设立决策而言,CM根定义新pcdType,每当:(1)chipSeries、(2)chipId、或(3)委托ID改变。实际上,可以针对委托ID块一次创建若干pcdType。该CM根将pcdType授权/定义传递给CM服务设备。对于针对provisioningAuthorityDeviceAesKey的分配/设立决策而言,CM根定义新pcdType,每当:(1)cmCoreVersion或(2)ID改变。实际上,可以针对委托ID块一次创建若干pcdType。CM根将pcdType授权/定义传递给CM服务设备并且将pcdType信息传递给CRISP。安全和验证装置被用于传输pcdType信息(特别地,内部头部数据和pcdTypeKey)。对于针对chipVendorDeviceAesKey的依存性的生成而言,PCD由CM根产生。针对生成所要求的所有数据/代码由CM根管理。对于针对provisioningAuthorityDeviceAesKey的依存性的生成而言,PCD由CRISP产生。CRISP管理的秘密被用于密钥生成和SNE序列号生成。PCD(头部、加密)的封装要求由根为来源的pcdType信息。对于生产生成而言,通常大量地生成查找PCD。数据文件可以是大的,例如适配在24GBPCD文件中的500M记录(recordFormat10具有48个字节/记录)。在具有AES-NI加速器的CPU核心上性能是相对高的。将PCD文件直接输入CM服务中。为了执行资产分发,模块部署、日志采集和其他基本功能,服务需要得到其管理的电器设备的当前状态。这使用GetState消息和相关JSON-RPCAPI调用完成。使用该方法,结合PCD移除和模块移除这两个其他消息,允许服务适当地处理电器设备的状态。在服务处起源的消息使用ServiceSigningPriv被签名,同时由电器设备所提供的那些使用ApplianceHsmSigningPriv被签名。本文所描述的实施例描述用于预计算数据(PCD)资产生成和在密码管理(CM)环境中的目标设备的制造生命周期的操作阶段中将PCD资产安全部署到目标设备的技术。一个实施方式包括根授权(RA)设备,根授权(RA)设备接收针对目标设备的唯一PCD资产的第一命令。作为响应,该RA设备生成PCD资产并且封装PCD资产以用于将PCD资产安全部署到目标设备,并且排他性地由目标设备使用。该RA设备将封装的PCD资产部署在CM系统中以用于目标设备的标识和跟踪。图13是根据一个实施例的生成和封装PCD资产用于CM系统中的安全部署的方法1300的流程图。方法1300可以由处理逻辑执行,处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件、固件或其组合。在一个实施方式中,图1至图3的根设备102执行方法1300。在一个实施方式中,图1至图3的服务设备104执行方法1300。在其他实施方式中,本文所描述的CM系统100的其他部件可以执行方法1300的操作中的一些或全部。参考图13,方法1300以处理逻辑生成或输入针对目标设备的唯一PCD资产开始(框1302)。该处理逻辑接收封装唯一PCD的命令(框1304)。该处理逻辑封装PCD资产用于将PCD资产安全部署到目标设备并且排他性地由目标设备使用(框1306)。该处理逻辑将封装的PCD资产部署在CM系统中以用于目标设备的标识和跟踪(框1308),并且方法1300结束。在一个实施例中,该处理逻辑驻留在根设备中。响应于命令,处理逻辑生成PCD资产并且封装所生成的PCD资产以用于安全部署。该PCD资产可以由处理逻辑部署,处理逻辑将封装的PCD资产存储在可移除存储设备中以将PCD资产传送给CM系统的服务设备。服务设备被配置为通过网络将PCD资产分发到CM系统的电器设备。电器设备可以使用模块将PCD资产安全地提供给目标设备的CM核心,并且PCD资产是到模块的输入。模块是当由电器设备执行时导致操作的序列的安全构造以在目标设备的制造生命周期的操作阶段中将PCD资产安全地提供给目标设备的应用。在一个实施例中,响应于基于PCD模板成批地生成PCD资产的命令行接口(CLI)命令,生成PCD资产。该PCD模板是PCD资产如何被格式化为针对特定类型的模块的输入的描述。在另一实施例中,PCD模板对应于PCD类型,PCD类型对应于具有唯一性或序列化中的至少一个的特定性质的PCD资产的集合。PCD类型的PCD资产的集合可以被索引。在另一实施例中,该处理逻辑驻留在服务设备中。响应于命令,服务设备生成并且封装PCD资产以用于安全部署。在另一实施例中,PCD资产在服务设备外部被生成,并且服务设备的处理逻辑输入PCD资产并且封装输入的PCD资产以用于安全部署。在一个实施例中,输入的PCD资产是HDCP密钥。在其他实施例中,所生成的PCD资产是个性化密钥或序列化密钥,如本文所描述的。输入的PCD资产可以通过根授权私有密钥签名,并且处理逻辑可以使用根授权公共密钥验证输入的PCD资产。如上文所描述的,PCD资产可以存储在独立的记录中,或者作为PCD文件中的PCD记录,PCD文件包含至少一个附加PCD记录。该PCD文件可以是顺序的PCD文件或非顺序的PCD文件。该顺序的PCD文件可以包括:1)包含由PCD记录和至少一个附加PCD记录共享的信息的内部头部;2)包含在顺序的PCD文件的任何分割之前与顺序的PCD文件的实例有关的信息的外部头部;以及3)PCD记录和至少一个附加PCD记录。该非顺序的PCD文件可以包括:1)包含由PCD记录和至少一个附加PCD记录共享的信息的内部头部;2)包含在第一非顺序PCD文件和第二非顺序PCD文件的合并之后与非顺序PCD的实例有关的信息的外部头部;以及3)PCD记录和至少一个附加PCD记录。在一个实施例中,处理逻辑可以将顺序的PCD文件分割为第一顺序的PCD文件和第二顺序的PCD文件。该处理逻辑生成包含与针对第一顺序的PCD文件的第一顺序的PCD文件有关的信息的第一外部头部,使得第一顺序的PCD文件包括内部头部,第一外部头部包含在分割之后与第一顺序的PCD文件和PCD记录有关的信息。处理逻辑还生成包含与第二顺序的PCD文件有关的信息的第二外部头部,使得第二顺序的PCD文件包括内部头部,第二外部头部包含在分割之后与第二顺序的PCD文件和至少一个附加PCD记录有关的信息。在另一实施例中,处理逻辑将第一非顺序的PCD文件和第二非顺序的PCD文件合并为非顺序的PCD文件。处理逻辑对PCD记录和至少一个附加PCD记录进行分类并且生成外部头部。在该实施例中,该第一非顺序的PCD文件可以包括:1)内部头部,2)包含与第一非顺序的PCD文件有关的信息的第一外部头部;以及3)PCD记录。该第二非顺序的PCD文件可以包括:1)内部头部,2)包含与第二顺序的PCD文件有关的信息的第二外部头部;以及3)至少一个附加PCD记录。票单票单可以被使用在诸如PCD资产的数据资(的消耗和提供中。如本文所使用的,票单可以是数字文件或数据,该数字文件或数据使能目标设备参数的使用计数限制和唯一性/连续发出的实施。票单可以在制造和/或测试期间由根授权进行授权并且由目标设备消耗。票单可以提供针对目标设备的授权以消耗数据资产,例如预计算密钥。该票单还可以结合待由目标设备消耗的数据资产以用于记录和审计目的并且可以提供针对单独的数据资产的库存跟踪机制。该信息可以通过网络从制造设施被传递给客户。票单或票单授权是模块可以要求以便运行事务的可验证值。票单授权可以迅速产生和验证(对称MAC)并且可以由电器设备自身或由电器集群点(peer)发出。票单授权可以包括索引值(例如,以选择预计算记录、制造序列号)和票单类型和请求标识符以防止误用或重新使用。给定票单授权可以向电器设备给予许可,使得其限于运行模块特定次数,诸如一次,。该票单授权可以变为序列号,其可以然后或稍后被加密以制造加密序列号,或被用作与计算数据索引以便参考预计算数据。该票单可以由创建其的电器设备或由电器设备点消耗并且可以限于特定请求。票单及其在资产管理系统的中的使用可以使得能够将许可的管理从操作和数据分离。例如,可以由多个模块使用选择HDCP密钥的票单类型。票单可以允许集群成员在连接的同时共享授权以防止序列号、HDCP密钥和/或其他凭证或数据的重新使用。如果电器集群连接性丢失,则电器设备可以满足其自身的票单要求。票单可以被用于实现对于电器设备或电器集群可以做出的事务的数目的限制。当连接电器设备108时,服务设备104(服务107)可以将更多票单授权分配给电器设备。可以在根据需要或根据使用基础上来提供票单授权,或者可以提供较大数量的票单授权,从而使得如果连接性丢失则电器设备可以针对在可以做出恢复连接性的尝试的时间期间运行。这可以防止制造设施中的停机时间。电器集群中的每个电器可以包括票单发出器,票单发出器可以是管理票单授权的电器上的处理逻辑。票单发出器可以操作以跟踪集群点的可用的票单资源、从模块或点接收票单请求、将请求发送给本地HSM守护进程或询问集群点的票单发出器。HSM可以顺序地发出票单授权、服从由服务设备授权的范围并且可以对有效票单或错误消息做出反应。票单可以被用于监测资产的库存和评定资产的状态。资产的共同状态由在服务和电器设备两者上传输和存储两者的密钥、数据资产(预计算数据)和票单授权库存组成。这可以提供资产的本地状态,该状态对于制造设施来说是本地的。在客户具有或已经承包多个设施处的设备的制造的情况下,本地状态数据可以与其他本地状态数据组合以提供针对客户的全局状态数据。状态信息可以与预报对于工厂处的预计算数据和票单授权的未来需求所需要的信息一起在用户接口中被提供给客户。一旦需求可以被估计,则操作者可以设定库存,从而使得库存的适当的裕度由服务107分发到每个工厂电器集群以在未来生产中消耗。可以在电器集群上维持预计算数据和票单授权的适当的最小量以在给定所估计的工厂消耗率的情况下,保证在缺少工厂连接性的情况下的指定生产运行时间。图14是根据一个实施例的票单处理和HSM交互守护进程(THID)部件1400的框图。THID部件1400包括THID外部API1402和HSMAPI1404。可以提供THID部件1400以管理电器设备108的HSM111,特别是与票单授权相连。THID部件1400可以给在电器设备108上(或在电器集群109上)操作的其他部件提供接口以访问HSM111用于机密性和完整性计算。这些计算或操作可以是快速路径操作1401或缓慢路径操作1403。快速路径操作1401可以被理解为起源于测试器设备112的时间临界操作以采集票单或调用模块,同时缓慢路径操作1403可以被理解为起源于服务队列1408的那些操作或不是快速路径操作1401的那些操作。缓慢路径操作1403可以是将票单从服务107添加到电器设备108(或电器集群109)的操作、审计由特定时间使用的票单或票单使用速率和其他资产消耗信息的操作以及移除票单的操作。THID部件1400可以提供多个应用编程接口(API)以促进与电器设备108中的其他部件的通信。THID部件1400可以接受多个同时请求。由于HSM111一次仅可以服务一个请求,请求因而可以被使序列化。THID部件1400可以是到电器设备108中的HSM111的仅有路径。THID部件1400包括票单高速缓存1406,票单高速缓存1406保持票单名称到票单卷的集合(具有最小和最大票单值)的映射1410以有效地反映HSM111的票单状态。票单高速缓存1406可以被用于从HSM111卸载所有票单请求(例如,GetTickets()请求)并且在THID部件1400中对它们进行处理。由于票单状态在HSM111中持续,因而在启动时,THID部件1400可以调用HSM111上的票单的审计并且利用审计或计数的结果初始化票单高速缓存1406。例如,THID部件1400调用HSM111上的AuditTickets()并且利用结果初始化票单高速缓存1406。票单高速缓存1406可以另外地跟踪分离的同伴地图1412中的“预留的”票单,同伴地图1412是由模块守护进程1414(例如,经由GetTickets())请求但是还未发送回到THID部件1400以用于调用特定模块(例如,InvokeModule())的调用的票单。模块守护进程1414解析CM模块并且准备相关数据和CM模块管理。因此,THID部件1400可以提供影响高速缓存状态的API,而其他API不影响。例如,外部API1402可以将命令发出到服务队列1408以添加票单、审计票单或移除票单。例如,针对AddTicket(tickets,importCounter,hsmId,andsignature)命令的外部API1402返回void。对于另一示例而言,AuditTickets(challenge)返回(hsmId,tickets,importCounter),并且RemoveTickets(tickets,importCounter,hsmId,signature)返回void。对于模块守护进程1414而言,外部API1402可以发出各种命令:GetTickets(ticketNames)返回票单;LoadModule(Module,signature,keys)返回moduleHandle;UnloadModule(moduleHandle)返回void(当前未被模块守护进程1414使用);以及InvokeModule(moduleHandle,input,tickets)返回序列(sequence)。在其他实施例中,THID部件1400可以包括提供和激活相关API。以上大部分直接通过到HSM。到THID的HSMAPI1404可以添加票单、审计票单、移除票单、加载模块、上载模块、调用模块等。HSMAPI1404可以包括以下各项:AddTickets(tickets,importCounter,hsmId,signature)返回void;AuditTickets(hsmId,challenge)返回(hsmId,tickets,importCounter)RemoveTickets(tickets,importCounter,hsmId,signature)返回void;LoadModule(Module,signature,keys)返回moduleId;UnloadModule(moduleId)返回void;以及InvokeModule(moduleId,input,tickets)返回序列(sequence)。例如,影响高速缓存状态的API可以包括API以得到票单,其可以返回票单以从高速缓存移除并且输入到预留的票单地图1412中;添加票单以直接转发给HSM111的API,并且在HSM111完成操作之后,THID部件1400可以调用API(例如,HSM111上的AuditTickets())以审计HSM111上的票单。票单高速缓存1406可以被清除并且被设定到审计状态。这可以允许“添加票单”数据对THID部件1400完全不透明。当前预留的票单然后从票单高速缓存1406被移除以保持两个集合不相交。3)AuditTickets()——在来自服务队列1408的每个明确AuditTickets()请求之后,票单高速缓存将票单高速缓存1406重新同步,如针对Add/RemoveTickets()所做出的(主要作为对于模块守护进程1414崩溃/调用错误等的漂移的预防措施)。服务队列1408可以用作针对CM服务的CM电器设备108的网关。4)InvokeModule()——在模块的成功调用时,所涉及的票单将被认为从预留的票单地图1412花费和移除。在故障的情况下,可能不清楚是否可以依赖于预留的票单地图1412来推断那些票单是没有用完的(unspent),。THID部件1400可以随着花费而丢弃票单,以防止票单或预计算数据的重新使用。重新同步(如上文所描述的)恢复结果发现没有被用完而被保守地丢弃的任何票单THID部件1400。THID部件1400可以用作针对来自测试器设备112和服务设备104的事务的到HSM111的网关。当前预留的票单可以然后从票单高速缓存1406移除以保持两个集合不相交。在做出审计票单的请求之后,可以使票单高速缓存1406重新同步以防止可以由模块守护进程1414崩溃/调用错误等引起的漂移。票单可以被用在由CM系统被用于实施模块可以在电器设备108上运行的次数和跟踪由模块使用的资产的跟踪系统中。票单确保资产不被复制或加倍花费。票单包括数据,该数据使能使用计数限制的实施和CM核心参数的唯一性/顺序发出。票单可以由根授权进行授权并且由CM核心消费。在一个实施方式中,在崩溃和重新启动时,THID部件1400将不具有任何预留的票单,因此模块守护进程1414(即,在GetTickets()与InvokeModule()之间)中的任何进程中模块调用将不满足票单必须预留的THID的要求,因此InvokeModule()将失败。如果模块守护进程1414崩溃和重新启动,或对THID部件1400的票单请求或模块调用的简单错误,预留的票单可以不被发送给THID部件1400,这允许THID部件1400中的预留票单累积。因此,在一些实施例中,预留票单可以时间戳记,并且一旦重新同步,如果其超过特定阈值秒数旧则可以被移除。这用作终止使THID部件1400中的预留票单免于累计的机制。在一些实例中,更多模块可以由服务设备104分配给电器设备超过可以在HSM111的存储器中适配。THID部件1400可以加载和卸载模块以管理HSM的存储器,这经由“最少频繁使用的”策略逐出一个或多个模块。例如,模块LRU可以被用于管理HSM的存储器,经由LRU策略逐出。这在多个客户共享电器集群中的资产-t管理系统的部署中可以是特别有用的。票单可以是关于什么预计算数据索引已经被花费的仅有授权信息,并且由于THID部件1400可以具有票单的知识,THID部件1400可以执行预计算数据清除过程以重新要求花费的预计算数据包的磁盘空间。在正常操作期间,THID部件1400是到委托电器设备的HSM的唯一接口。THID部件1400提取票单管理过程、使访问与HSM111同步、并且管理HSM的存储器和其他资源。HSM111(以及因此其接口点THID部件1400)具有三个主功能;1)发出并且花费资产管理票单;2)运行HSM比特码;和3)审计。比特码使用hsmInvokeModule调用而被运行。然而,比特码签名并且可以包含加密部件。运行的比特码可以被分割为两个调用,使得HSM111不验证签名并且对hsmInvokeModule的每个调用上的任何加密部件解密。loadHsmOps将比特码加载到HSM中,验证其签名并且对其可能包含的任何加密密钥进行解密(和可能地调度)。比特码实际上由hsmInvokeModule调用而被执行。在一个实施例中,票单可以在三个阶段中完成:1)使用addTickets调用将票单从服务设备加载到THID部件1400和HSM111中;2)THID部件1400使用getTickets调用来分配票单;和3)票单由hsmInvokeModule调用中的HSM比特码花费。存在两个类型的审计(一个用于比特码并且一个用于票单)。比特码调用可以包含日志调用。该数据穿过运行散列,并且还将由THID部件1400记录。HSM111可以被命令以输出并且签名该散列。该HSM111具有有限的存储器,因此其将仅存储运行散列。该HSM111可以被命令以输出并且签名其票单相关状态。如果该状态中的一些由THID部件1400在外部存储(例如,资产管理票单中的低存储器HSM提议),那么THID部件1400将它传递通过HSM111,使得HSM111可以对它进行签名。THID部件1400的主要目的是给在电器设备上运行的所有其他部件提供访问针对任何机密性或完整性计算的资产管理HSM部件的统一接口。可以存在一些异常。因为这是RPCAPI,所以可以由客户端代码抛出的异常落到三个类别中:1)如果其内存耗尽或遭遇漏洞,则RPC库可以抛出std::logic_error、std::bad_alloc等。客户端不被建议来处理这些异常(除最后暂停或等价之外),因为其通常表示其中恢复可能不是选项的严重的错误。2)如果RPC失败(服务器处的错误版本、连接中断、RPC库中的逻辑错误),则RPC库可以抛出CriRpc::RpcException;3)如果服务器抛出异常,则RPC库将把其中继为CriRpc::RelayedException。当添加一些数目的票单时,票单被传递为structticketStruct的向量。HSM可以维持其已经从服务设备接收的授权的数目的计数,该计数还是针对下一授权的预期计数器值。HSM可以检查该计数器值、检查签名、将票单添加到其库存并且然后使其计数器值增量。这防止授权被重放。存在两个类型的审计(一个用于比特码并且一个用于票单)。比特码调用可以包含日志调用。该数据穿过运行散列,并且还将由THID部件1400记录。该HSM111可以被命令以输出并且签名该散列。该HSM111具有有限的存储器,因此其将仅存储运行散列。该HSM111可以被命令以输出并且签名其票单相关状态。如果该状态中的一些由THID部件1400在外部存储(例如,资产管理票单中的低存储器HSM提议),则THID部件1400使它通过HSM111,使得HSM111可以对其进行签名。THID部件1400的主要目的是给在电器设备上运行的所有其他部件提供统一接口以访问针对任何机密性或完整性计算的资产管理HSM部件。因为这是RPCAPI,所以可以由客户端代码抛出的异常落到三个类别中:如果它内存耗尽或遭遇漏洞,则RPC库可以抛出std::logic_error、std::bad_alloc第。客户端不被建议处理这些异常(除最后暂停或等价之外),因为其通常表示其中恢复可能不是选项的严重的错误。如果RPC失败(服务器处的错误版本、连接中断、以及RPC库中的逻辑错误),则RPC库可以抛出CriRpc::RpcException;如果服务器抛出异常,则RPC库将把其中继为CriRpc::RelayedException。下表图示了根据一个实施例的THID部件API。addTickets调用的一个示例如下:voidaddTickets(vector<ticketRoll>tickets,uint64counter,byteArrayhsmId,byteArraysignature)为了将一些数目的票单添加到系统,票单被作为结构ticketStruct的向量被传递。HSM111维持其已经从服务设备接收的授权的数目的计数,其还是针对下一授权的预期计数器值。HSM111将检查该计数器值、检查签名、将票单添加到其库存并且然后使其计数器值增量。这防止授权被重放。下表包括参数和对应的描述。结构ticketRoll可以表示如下:枚举modeEnum可以表示如下:该函数将给定票单卷加载到HSM中。removeTickets调用可以表达如下:tuple<ticketAuditStruct,byteArray,ticketAuditStruct,byteArray>removeTickets(vector<ticketRoll>tickets,uint64counter,byteArrayhsmId,byteArraychallenge,byteArraysignature)该函数移除来自HSM的票单输入所中列出的所有票单。下表包括参数和对应的描述。HSM首先执行票单审计,产生ticketAuditStruct并且签名("responseBeforeRemoveTickets"||challenge||ticketAuditStruct)。它然后移除给定票单、执行另一审计并且签名("responseAfterRemoveTickets"||challenge||ticketAuditStruct)。下表包括异常和对应的描述∶getTickets调用可以表达如下:vector<uint64>getTickets(uint64ticketName,intn=1)下表包括参数和对应的描述∶参数描述ticketName待添加的票单名称。n所请求的票单数目。returnvalue至多长度为n的票单数目数组。该函数返回具有给定名称的至少一个和至多n个票单的向量。其尝试返回n个票单,但是如果可以迅速地获得少于n个,那么它将迅速地返回而不是等待全部n个。票单可以具有与其相关联的密码数据用于电器设备用作针对HSM的外部存储器的场景。该数据由THID部件1400保持;它未由该调用返回。由该调用返回的票单可以仅由使用hsmInvokeModule的相同客户端花费。其不能由连接到THID部件的另一过程使用。getTickets调用仅预留票单。如果调用器在将它们花费之前与THID部件断开,THID部件可以将相同票单给予另一客户端。下表包括异常和对应的描述∶auditTickets调用可以表达如下:pair<ticketAuditStruct,byteArraysignature>auditTickets(byteArraychallenge)下表包括参数和对应的描述∶响应是ticketAuditStruct:未以任何特定顺序返回结构中的票单。如果指定挑战,则HSM111将在("responseAuditTickets"||challenge||ticketAuditStruct)上产生签名。否则,签名将是空byteArray。下表包括异常和对应的描述。loadHSMOps调用可以表达如下:intloadHsmOps(byteArraymodule,byteArraysignature,vector<byteArray>encryptedModuleKeys)下表包括参数和对应的描述。该函数将给定模块加载到HSM中。存在于模块自身中的任何密钥利用encryptedModuleKey被加密;那些密钥被分离地给予到THID部件。HSM可以不具有足够的存储器以存储针对系统上的每个模块的选项。在这种情况下,THID部件负责根据负载需求管理HSM的存储器、加载和卸载代码。下表包括异常和对应的描述。hsmInvokeModule调用可以表达如下:byteArrayhsmInvokeModule(intmoduleHandle,byteArrayinputBlock,vector<pair<uint64,uint64>>tickets)下表包括参数和对应的描述。参数描述moduleHandle由loadHsmOps返回的模块句柄ID。inputBlock被输入到模块的包装的块。tickets(ticketname,ticketnumber)对的数组returnvalueHSM的输出。该函数调用已经利用loadHsmOps预加载的模块。它必须被给定由来自该客户端的loadHsmOps调用所返回的moduleHandle。同样地,票单参量的第二元素必须是来自getTickets调用的被返回到该客户端的票单号(第一元素是票单的名称)。一旦HSM代码已经运行,则其结果被返回为字节数组。下表包括异常和对应的描述。commitLog调用可以表达如下:logRecordcommitLog(byteArraylog)将外部日志消息添加到HSM的日志链。下表包括异常和对应的描述。异常描述InternalError某个内部错误发生。RpcException通常的RPC异常,例如I/O错误。auditLogs调用可以表达如下:pair<logRecord,byteArray>auditLogs(byteArraychallenge)auditLogs使用HSMAudit密钥来签名当前日志的运行散列。挑战被用于防止推迟和重放。它应当是随机的。下表包括异常和对应的描述。THID部件1400维持HSM111的状态的阴影复制,减去密钥。这意味着HSM代码可以是更简单的,并且还意味着THID部件1400不需要请求HSM111除密码信息外的任何信息。THID部件1400还可以将一些密码信息维持(根据CM票单系统说明)在HSM111外部(诸如哈希树)。这当前不期望被使用。如果它被使用,那么该信息由集群密钥进行MAC,但是出于存储器原因驻留在HSM111外部。票单名称被用于将票单类型在分组在一起。票单名称可以是64位。字节具有以下意义:MSB654321LSB供应商ID票单类型唯一ID分配以下票单类型:票单类型描述0测试1开发2生产总之,票单是签名授权以单次运行模块。票单提供模块执行的控制,允许复制预防以及提供这样的执行(审计日志)的审计跟踪。内部地,票单可以是一对64位字符串、票单名称和票单ID。票单名称表示票单类型。如果特定票单名称与PCD类型相关联,票单ID标识特定PCD记录。在模块文件的“输入”段中采集这样的关联。内部地,HSM维持其已知的票单名称中的每一个的CurrentTickets的列表。其还维持被用于防止重放攻击的计数器(hsmTicketCounter)。还可以签名票单。即使每个票单可以不具有单独的签名,票单卷(票单集)可以具有签名。该签名的验证可以被用于票单生效。存在三个类型的票单相关消息——审计、授予和移除。票单审计(TicketAudit)采集HSM111的内部状态并且将其传送给服务。票单授予(TicketGrant)将新票单提供给HSM111,同时票单移除(TicketRemove)从HSM111移除票单。以下示图描述了消息类型中的每一个消息类型的内容。由于票单通信在HSM111与服务设备104之间发生,消息中的每一个消息的内容需要进行ASN.1编码。以下是ASN.1消息的定义:TicketAudit::=SEQUENCE{hsmIDIA5String,hsmTicketCounterIA5String,currentTicketsCmTickets}CMTickets:=SEQUENCE{currentTicketIA5String}此处,CMTickets被定义为SEQUENCE而非SET以预留元素的排序。如果服务和电器HSM同意对票单进行分类并且按顺序处理列表,则这对于通过票单列表的搜索可以是有用的。以下定义票单授予消息的ASN.1格式。TicketGrant::=SEQUENCE{hsmIDIA5String,hsmTicketCounterIA5String,grantedTicketsCmTicketRange}CmTicketRange::=SEQUENCE{ticketNameIA5String,ticketRangeStartIA5String,ticketRangeEndIA5String}以下表示票单移除消息:TicketRemoval::=SEQUENCE{hsmIDIA5String,hsmTicketCounterIA5String,grantedTicketsCmTicketRange}图15是根据一个实施例的对模块进行票单处理以将数据资产安全地提供给目标设备的方法1500的流程图。方法1500可以由处理逻辑执行,处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件、固件或其组合。在一个实施方式中,图1至图3的电器设备108执行方法1500。在一个实施方式中,图14的电器设备108或THID部件1400执行方法1500。在其他实施方式中,本文所描述的CM系统100的其他部件可以执行方法1500的操作中的一些或全部操作。参考图15,方法1500以通过网络从CM系统的服务设备接收模块开始(框1502)。该模块是在目标设备的制造生命周期的操作阶段中将数据资产安全地提供给目标设备的应用。该处理逻辑确定票单是否通过网络从服务设备接收(框1504)。一旦接收到票单,则处理逻辑验证票单(框1506)。当票单被验证时,处理逻辑执行模块以将数据资产安全地提供给目标设备(框1508),并且方法1500结束。当票单未被验证时,处理逻辑发出无效票单的警报(框1510),并且方法1500结束或方法1500返回到框1504以接收确定另一票单是否被接收。在另一实施例中,票单是签名票单授权,其许可模块的单次执行以防止数据资产的复制并且防止数据资产的复制消耗。该处理逻辑防止在使用签名票单授权的模块的执行之后数据资产的复制和数据资产的复制消耗。在另一实施例中,处理逻辑使用票单以创建模块的执行的审计日志。在一个实施例中,票单包括一对N位字符串、表示与数据资产的类型相关联的票单类型的票单名称和标识特定数据资产记录的票单标识符(ID)。在另一实施例中,处理逻辑通过与模块和票单相连的网络接收PCD资产。模块文件(包括模块)的输入段将PCD类型与票单类型相关联。处理逻辑通过将票单的当前票单类型与模块文件的输入段中的票单类型相比较来验证票单。当票单类型和当前票单类型匹配时,票单被验证。在一个实施例中,电器设备的HSM维持电器设备已知的票单名称中的每一个的当前票单的列表并且维持被用于防止重放攻击的计数器。在另一实施例中,处理逻辑接收以下票单相关消息中的至少一个:来自获得HSM的内部状态并且将内部状态传送给服务设备的服务设备的第一票单相关消息;向HSM授予新票单的第二票单相关消息;或者从HSM移除票单的第三票单相关消息。在另一实施例中,处理逻辑通过验证针对数据资产的票单索引对顺序索引来验证票单,其中数据资产是顺序数据。在另一实施例中,数据资产是指定PCD类型和票单类型的顺序PCD文件中的PCD资产。处理逻辑通过将票单中的当前票单类型与PCD资产的票单类型相比较并且将当前PCD类型与PCD资产的PCD类型相比较来验证票单。在当前票单类型匹配PCD资产的票单类型并且当前PCD类型匹配PCD资产的PCD类型时,票单被验证。在一个实施例中,数据资产是包含HDCP密钥的HDCP记录,并且票单是由服务设备针对HDCP记录发出的密钥。当票单被验证时,处理逻辑消耗HDCP密钥以加强HDCP密钥提供的单次使用和唯一性质。处理逻辑跟踪由服务设备发出的票单的历史并且检测票单的历史中的复制。当在票单的历史中检测到复制时,处理逻辑生成警报。在另一实施例中,数据资产是包含加密HDCP密钥和密钥选择向量(KSV)值的HDCP记录。处理逻辑跟踪KSV值的历史并且执行基于日志的对历史的检查以检测攻击复制。基于日志的检查基于以下各项中的至少一项:1)参考发出的KSV值的相同一个的电器设备的日志;2)由具有发出的KSV值的相同一个的电器设备执行的序列的日志,3)由电器设备造成的消耗票单的日志;票单,或者4)测试器设备的日志。当检测到复制时,处理逻辑发出警报。在另一实施例中,HDCP记录被存储在PCD资产中,并且PCD资产中的KSV值是在没有HDCP密钥的知识的情况下由电器设备可读的,HDCP密钥由电器设备的HSM用于解密加密HDCP密钥。以下描述包括一些使用情况。下文概述了用作CM系统的基础的使用情况的核心集。个性化个性化即将唯一设备特定密钥提供给CM核心。出于安全性原因,其被分解为两个步骤,被称为perso1和perso2。实质上,在每个步骤处,密钥分割将被编程到CM核心并且内部地重新组合以产生设备特定密钥。设备序列化设备序列化将唯一序列号提供给CM核心。该序列号对于隐藏关于产品收得率的信息而言显得是随机的;然而它是序列数的函数。这允许预计算数据的索引在设备序列化中被使用并且确保特定产品内的ID唯一性。易失性RMA再筛分使能当芯片被运送到场中时,要求在制造期间测试芯片所需要的硬件支持测试特征,也被称为设计用于测试(DFT)的特征,被安全地禁止(disabled)。当坏的部分通过RMA信道被返回用于故障分析时,这些特征还必须稍后安全地使能(enabled)。CryptoManagerTM提供用于我们的客户验证设备并且对于每个设备授权提供再筛分测试使能/禁止操作的方法。非易失性RMA再筛分使能除通过上电复位不持续之外与上文相同。HDCP密钥管理&提供CM系统必须支持来自发出授权的HDCP密钥的安全块(bulk)输入并且将唯一HDCP密钥安全提供给特定CM核心。还必须提供将每个HDCP密钥绑定到唯一标识符并且贯穿其生命周期跟踪每个HDCP密钥的机制。提供授权密钥提供CM系统必须能够向CM核心提供对客户未知的密钥。这些密钥还必须被绑定到唯一标识符,并且这样的密钥和其标识符的配对应当能够促进这样的密钥的使用。图16是根据一个实施例的计算机系统1600的一个实施例的示图,计算机系统1600包括处理器1602和连接到可移除存储设备1605的可移除存储设备接口1603。可移除存储设备接口1603被配置为连接到可移除存储设备1605。处理器1602可操作以在CM设备的制造生命周期的设备定义阶段中执行指令1626(或软件)。指令1626可以包括被存储在主存储器1604中或在可移除存储设备1805中并且由处理器1602执行以执行关于模块、PCD和票单的各种操作的指令,如本文所描述的。在一个实施例中,计算机系统1600表示根设备102。在另一实施例中,计算机系统1600表示服务设备104。在另一实施例中,计算机系统1600表示电器设备108。备选地,计算机系统1600可以表示本文所描述的其他设备中的任何设备(诸如CRISP设备110)。在一些情况下,计算机系统1600可以被连接(例如,联网)到LAN、内联网、外联网或因特网中的其他机器。计算机系统1600可以是云中的主机、云提供商系统、云控制器、服务器、客户端或任何其他机器。计算机系统1600可以操作为在能力方面客户端-服务器网络环境中的服务器或客户端机器,或对等(或分发式)网络环境中的对等机器。机器可以是个人计算机(PC)、平板PC、控制台设备或机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络电器、服务器、网络路由器、交换机或网桥或执行指定待由该机器采取的动作的指令集(顺序或以其他方式)的任何机器。进一步地,虽然仅图示单个机器,但是术语“机器”还应当被理解为包括单独地或者联合地执行执行本文所讨论的方法中的任何一个或多个的指令集(或多个集合)的机器的任何集合。计算机系统1600包括处理器1602(例如,主机处理器或处理设备)、主存储器1604(例如,只读存储器(ROM)、闪速存储器、动态随机存取存储器(DRAM)、存储存储器1606(例如,闪速存储器、静态随机存取存储器(SRAM)等))以及次级存储器1618(例如,驱动单元形式的数据存储设备,其可以包括固定或可移除计算机可读存储介质),其经由总线1630彼此通信。处理器1602表示一个或多个通用处理设备,诸如微处理器、中央处理单元等。更特别地,处理器1602可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其他指令集的处理器或者实现指令集的组合的处理器。处理器1602还可以是一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。在一个实施例中,处理器1602可以驻留在第一集成电路上,并且主存储器1604可以驻留在第二集成电路上。例如,集成电路可以包括主计算机(例如,具有一个或多个处理核心、L1高速缓存、L2高速缓存等的CPU)、主控制器或其他类型的处理器1602。第二集成电路可以包括耦合到主设备的存储器设备,并且其主要功能性依赖于主设备,并且可以因此被认为在不形成主设备的核心架构的一部分的同时扩大主设备的能力。存储器设备可能能够与主设备通信。例如,存储器设备可以是单个IC或者在共同集成电路衬底上对单个IC设备的任何组合的多IC模块。图16的部件可以驻留在“共同承载衬底”,诸如例如集成电路(“IC”)管芯衬底、多IC模块衬底等,上。备选地,存储器设备可以驻留在一个或多个印刷电路板上,诸如例如母板、子板或其他类型的电路板。在其他实施方式中,主存储器和处理器1602可以驻留在相同或不同的承载衬底上。计算机系统1600可以包括芯片集1608,其指代被设计为与处理器1602一起工作并且控制处理器1602与外部设备之间的通信的集成电路或芯片组。例如,芯片集1608可以是母板上的IC集,母板将处理器1602连接到超高速设备,诸如主存储器1604和图形控制器,以及将处理设备连接到处理设备1610的低速外围总线,诸如USB、PCI或ISA总线。在一个实施例中,可以在芯片集1608中实现可移除存储设备接口1603。计算机系统1600还可以包括网络接口设备1622。计算机系统1600还可以包括一个或多个外围设备1610,诸如通过图形端口和图形芯片集连接到计算机系统的视频显示单元(例如液晶显示器(LCD))、字母数字输入设备(例如键盘)、光标控制设备(例如鼠标)、信号生成设备(例如扬声器)等。集成电路设备“编程”可以例如并且非限制性地包括:响应于主机指令,将控制值加载到设备内的寄存器或其他存储电路;并且因此控制设备的操作方面,建立设备配置或通过一次性编程操作(例如,在设备生产期间熔断配置电路内的熔断器)控制设备的操作方面;和/或将设备的一个或多个所选择的引脚或其他接触结构连接到参考电压线(还被称为带(strapping))以建立设备的特定设备配置或操作方面。术语“示例性的”被用于表达示例而非偏好或要求。域在CM系统中使用的域可以被用于反映将目标设备106划分为较小的集合,诸如对应于不同的产品、芯片系列、原始设备制造商(OEM)等的客户的视图。域还可以使用在CM系统中以确定PCD模板和模块模板的适用性。为了详细说明划分目标设备106,CM核心的集合可以属于特定芯片系列。如上文所描述的,芯片系列指代共享CM核心内的相同安全性参数的产品的集合(例如,共享共同属性集,的产品的集合,例如RsbSigningKey)。例如,CM核心的集合可以共享签名根上的序列的代表(使用RsbSigningPriv)的密钥对以及提供这些核心使用的其他基本密钥的集合。共享针对序列的相同密钥对的CM核心的集合可以被认为是模块域。CM核心的集合可以基于产品(也被称为chipID)、ChipSeries等划分。特定产品可以仅属于单个chipSeries。特定chipSeries内的任何CM核心还可以属于某种产品。图17是根据一个实施例的域划分1700的示图。域划分1700是针对客户1701的目标设备106(例如,CM核心)的划分。域划分1700包括基于芯片系列1702(chipSeries1-3)的第一级分组。芯片系列1702的划分中的每一个包括基于产品1704的第二级分组。每个产品1704包括多个目标设备106,其中的每一个目标设备包括该实施方式中的CM核心1706。在一些情况下,第三级分组可以基于原始设备制造商(OEM)1706。例如,在一个芯片系列1702(chipSeries2)内,一个OEM可以包括具有来自第一产品类型(product1)的CM核心1706的多个目标设备和具有来自不同的产品类型(product2)的CM核心1706的多个目标设备。对于另一示例而言,在相同芯片系列1702(chipSeries2)内,另一EOM可以包括具有相同产品类型(product2)中的CM核心1706的多个目标设备。而且,如在图17中所图示的,基于OEM1706的分组可以覆盖超过两种产品类型,诸如在跨越三个产品类型(Product1-3)的OEM1706中所图示的。备选地,基于CM核心1706的集合内的其他共同属性,可以定义域。域可以被用于统一基于特定数据集的特定资产的创建。例如,芯片系列1702(chipSeries1)内的模块可以基于相同根签名私有密钥(例如RsbSigningPriv密钥)。备选地,CM核心1706可以根据其他元数据集而被分配(portioned)。而且,域内的所有CM核心1706共享元数据集。为了指定CM核心1706中的数个数据值和密钥,两个数据包可以在CM系统中被使用,包括CMNetlist和HWCONFIG。Netlist是被用于产生CM核心的部分或设备以及和它们的相互连接的描述。HWCONFIG值从根被输出以变为硬件Netlist的一部分,并且HWCONFIG值可以是客户特定值。存在由CM系统(例如,根、模块)和由CM核心硬件共享的数个值(密钥和ID)。例如,RsbSigningPub由CM核心1706被用于验证其通过测试器设备112从电气HSM111接收的序列。这样的密钥的另一示例是chipVendorDeviceAesKey。该密钥被用作用于个性化的基本密钥。特别地,它被用于计算验证器,其由CM核心1706检查以验证电器108。除密钥之外,需要成为Netlist的一部分的常量。下表包含可以被输出变为Netlist的部分的示例值:对于PCD或模块而言,基于模块(PCD模板或模块模板)的特定实体的创建可以表达如下:模板+域=>实体即,为了创建模块,可以选择模块模板并且可以指定域。不同的模块模板可以具有不同的域类型,但是应当指定域。同样地,PCD类型创建可以使用PCD模板和域。以下描述提供PCD类型域和模块域的其他示例。模块域和PCD类型域从实际视角,模块域和PCD类型域的概念帮助描述基于特定模块模板或PCD模板创建多少不同的模块或PCD类型。为了产生模块,模块模板被限于特定模块域。例如,模块模板可以描述如何提供序列化和个性化(比如被命名为“serial+perso12”)。提供针对特定chipSeries(比如说“cs12”)的序列化和个性化的特定模块将被命名为“serial+perso.cs12”并且可以仅与属于chipSeriescs12的CM核心1706一起使用。类似地,比如说PCD模板“serial+perso12”可以提供设备ID数据和针对芯片ID“cid123”的个性化数据。基于将资产提供给“cid123”的“serial+perso12”模板的PCD类型的全部标识符将是两者的组合并且将被命名为“serial+perso12.cid123”。下表包括具有PCD类型域和模块域的示例使用实例:在上文描述中,阐述了许多细节。然而,对于具有本公开的益处的本领域的普通技术人员而言将明显的是,在没有这些特定细节的情况下,可以实践本发明的实施例。在一些实例中,以框图形式而不是详细示出众所周知的结构和设备以便避免模糊本描述。根据计算机存储器内的数据位上的操作的算法和符号表示呈现详细描述的一些部分。这些算法描述和表示是由数据处理领域的技术人员被用于最有效地将其工作的实质传达给本领域的技术人员的装置。算法此处并且一般地被构想为导致期望的结果的步骤的自相一致的序列。步骤是要求物理量的物理操纵的那些步骤。通常,虽然不必要,但是这些量可以采取能够存储、传送、组合、比较和以其他方式操纵的电气或磁性信号的形式。主要出于习惯用语的原因,将这些信号称为比特、值、元件、符号、字符、术语、数字等等有时已经证明方便。然而,应当记住,所有这些和类似术语将与适当的物理量相关联并且仅是应用到这些量的方便标签。除非另外特别地说明,如从以上讨论明显的,将理解到,贯穿说明书,利用术语(诸如“加密”、“解密”、“存储”、“提供”、“导出”、“获得”、“接收”、“验证”、“删除”、“执行”、“请求”、“通信”等)的讨论操纵并且将被表示为计算系统的寄存器和存储器内的物理(例如,电子)量的数据转换为类似地被表示为计算系统存储器或寄存器或其他这样的信息存储、传输或显示设备内的物理量的其他数据的计算系统或类似电子计算设备的动作和过程。词语“示例”或“示例性的”在本文中被用于指示用作示例、实例或例示。在本文中被描述为“示例’或“示例性的”的任何方面或者设计不必被解释为关于其他方面或者设计优选或者有利的。而是,词语“示例”或“示例性的”的使用旨在以具体的方式呈现概念。如在本公开中使用的,术语“或者”旨在意指包括性“或者”而不是排他性“或者”。即,除非另外指定或从上下文清楚的,“X包括A或B”旨在意指自然包括性排列中的任一个。即,如果X包括A;X包括B;或者X包括A和B两者,那么“X包括A或B”在前述实例中的任一个的情况下满足。另外,除非另外指定或从待涉及单数形式的上下文清楚的,如本公开和随附的权利要求中使用的冠词“一”和“一个”应当一般地被解释为意指“一个或多个”。而且,除非如此描述,否则术语“实施例”或“一个实施例”或“实施方式”或“一个实施方式”的使用自始至终不旨在意指相同实施例或实施方式。本文所描述的实施例还可以涉及一种用于执行本文中的操作的装置。该装置可以特别地出于所要求的目的而构建或者其可以包括由存储在计算机中的计算机程序选择性地激活或者重新配置的通用计算机。这样的计算机程序可以存储在非暂态计算机可读存储介质中,诸如但不限于任何类型的磁盘,包括软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、闪速存储器或者适于存储电子指令的任何类型的介质。术语“计算机可读存储介质”应当理解为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分发式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读介质”还应当理解为包括能够存储、编码或携带用于由机器运行的指令集并且使得机器执行本实施例的方法中的任何一个或多个的任何介质。因此,术语“计算机可读存储介质”应当被理解为包括但不限于固态存储器、光学介质、磁性介质、能够存储用于由机器执行的指令集并且使得机器执行本实施例的方法中的任何一个或多个的任何介质。本文所呈现的算法和操作固有地不涉及任何特定计算机或者其他装置。各种通用系统还可以根据本文中的教导与程序一起使用,或者构建更多专用装置以执行所要求的方法步骤可以证明是方便的。针对各种这些系统的所要求的结构将从下文描述出现。另外,未参考任何特定编程语言描述本实施例。将理解到,各种编程语言可以被用于实现如本文所描述的实施例的教导。以上描述阐述很多特定细节以便提供本发明的数个实施例的好的理解,细节诸如特定系统、部件、方法等的示例。然而,对于本领域的技术人员而言将明显的是,可以在没有这些特定细节的情况下实践本发明的至少一些实施例。在其他实例中,众所周知的部件或方法未详细描述或以简单的框图格式呈现以便避免不必要地模糊本发明。因此,上文阐述的特定细节仅是示例性的。特定实施方式可以从这些示例性细节变化并且仍然被预期为在本发明的范围内。应理解到,上文描述旨在是说明性而非限制性的。在阅读和理解上文说明之后,许多其他实施例将对本领域的技术人员将是明显的。因此,应当参考随附的权利要求确定本发明的范围连同这样的权利要求授权的等同物的全部范围。虽然已经参考本发明的特定实施例描述本发明,但是将明显的是,在不脱离本发明的较宽的精神和范围的情况下,可以对其做出各种修改和改变。例如,可以组合任何其他实施例或代替其配对物特征或方面应用(至少在可行的情况下)实施例中的任一个的特征或方面。因此,说明书和附图将被认为是说明性而不是限制性意义上的。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1