专利名称:用于基于硬件的安全的系统和方法
技术领域:
以下涉及用于管理电子资产的系统和方法。
背景技术:
在可以产生被视为“浪费”的制造过程中存在着各种因素。这些因素可以包括缺陷、库存(过量、冗余等等)、过量生产、过度加工、移动、运输以及等待。此外,存在可能归因于外部原因(例如,克隆、拷贝、技术转让和失窃(物理失窃和IP失窃都有))的花费。同样地,如今位于各种消费和商业产品的中心的是系统级芯片(SoC),在SoC中,将很多特征集成在单一的硅片上。制造商可以在不同平台中使用相同的SoC,同时启用或者禁用各种特征,以区分市场上的最终产品。对特征的未授权的启用代表了公司的重大收入损失。传统的特征编程方法包括通过不同的掩模(mask)组对SoC硅进行完全定制;使用可以被选择性“熔断(blown)”以对特征进行控制的硅熔断器(fuse);使用主板上的跳线;以及根据产品加载不同的组件和固件。特征的提供发生在各个制造位置处,该各个制造位置的设施执行一系列生产步骤,包括芯片的晶片制作、装配、封装、测试和系统集成,在系统集成中,将组件和固件集成在最终的产品或组合装置中。这些制造位置一般在国外,并处于将合同制造外包给这些设施的半导体公司的控制之外。结果,对于半导体公司来说,没有理由相信所分发的制造设施对专有和敏感数据的分发和搜集的管理,该专有和敏感数据是例如特征提供命令、内容保护密钥数据、软件/固件代码镜像、测试结果和产量报告数据。假定这种SoC所具有的价值,以及半导体公司将制造、装配和其产品分发外包的趋势,由于缺少可信的制造过程,多个新的问题开始出现
发明内容
现在将参照附图,描述仅作为示例的实施例,其中图I是资产管理系统(AMS)的框图。图2是示出了由图I的AMS所执行的用于向设备提供资产的实例操作的序列图。图3是示出了图I所示的控制器的一个实施例的细节的框图。图4A是示出了图I所示的装置的一个实施例的细节的框图。图4B是示出了图4A所示的装置的状态转移的状态图。
图5是示出了图I所示的测试器和代理的一个实施例的细节的框图。图6A是图I所示的代理API的一个实施例的细节的框图。图6B是图I所示的守护程序API的一个实施例的细节的框图。图7A是示出了 AMS的配置的框图,该AMS用于执行顺序化以及模式(schema)定义作业流程示例。图7B是示出了用于执行密钥注入的AMS的配置的框图。图7C是示出了用于执行特征激活的AMS的配置的框图。图8是示出了用于使用AMS来执行顺序化的示例操作集合的序列图。图9是示出了用于使用AMS来执行密钥注入的示例操作集合的序列图。 图IOA至IOB是示出了用于使用AMS来执行特征激活的示例操作集合的序列图。图11是示出了图I所示的AMS图形用户界面(GUI)所提供的快速状况视图的示例屏幕截图。图12是示出了由AMS⑶I提供的装置视图的示例屏幕截图。图13是示出了由AMS⑶I提供的具有警报栏的装置视图的示例屏幕截图。图14是示出了由AMS⑶I提供的主状况视图的示例屏幕截图。图15是示出了由AMS⑶I提供的警报视图的示例屏幕截图。图16是示出了 3行缩放模式下由AMS⑶I提供的作业视图的示例屏幕截图。图17是示出了 I行缩放模式下由AMS⑶I提供的作业视图的示例屏幕截图。图18是示出了细节缩放模式下由AMS GUI提供的作业视图的示例屏幕截图。图19是示出了由AMS⑶I提供的报告视图的示例屏幕截图。图20是示出了由AMS⑶I提供的产生报告视图的示例屏幕截图。图21是示出了由AMS⑶I提供的报告屏幕的示例屏幕截图。图22是示出了由AMS⑶I提供的控制器视图的示例屏幕截图。图23是示出了由AMS⑶I提供的修改控制器视图的示例屏幕截图。图24是示出了 3行缩放模式下由AMS⑶I提供的装置视图的示例屏幕截图。图25是示出了 I行缩放模式下由AMS⑶I提供的装置视图的示例屏幕截图。图26是示出了细节缩放模式下由AMS⑶I提供的装置视图的示例屏幕截图。图27是示出了由AMS⑶I提供的ping装置视图的示例屏幕截图。图28是示出了由AMS⑶I提供的同步装置视图的示例屏幕截图。图29是示出了由AMS⑶I提供的修改装置视图的示例屏幕截图。图30是示出了由AMS⑶I提供的去激活装置视图的示例屏幕截图。图31是示出了由AMS⑶I提供的移除装置视图的示例屏幕截图。图32是示出了 3行缩放模式下由AMS⑶I提供的产品视图的示例屏幕截图。图33是示出了 I行缩放模式下由AMS⑶I提供的产品视图的示例屏幕截图。图34是示出了细节缩放模式下由AMS GUI提供的产品视图的示例屏幕截图。图35是示出了由AMS GUI提供的添加产品视图的示例屏幕截图。图36是示出了 3行缩放模式下由AMS GUI提供的顺序化模式视图的示例屏幕截图。图37是示出了 I行缩放模式下由AMS GUI提供的顺序化模式视图的示例屏幕截图。
图38是示出了细节缩放模式下由AMS GUI提供的顺序化模式视图的示例屏幕截图。图39是示出了由AMS GUI提供的添加模式视图的示例屏幕截图。图40是示出了 3行缩放模式下由AMS GW提供的密钥类型视图的示例屏幕截图。图41是示出了 I行缩放模式下由AMS GUI提供的密钥类型视图的示例屏幕截图。图42是示出了细节缩放模式下由AMS GUI提供的密钥类型视图的示例屏幕截图。图43是示出了由AMS GUI提供的添加密钥类型视图的示例屏幕截图。图44是示出了 3行缩放模式下由AMS GUI提供的特征控制票据视图的示例屏幕截图。图45是示出了 I行缩放模式下由AMS GUI提供的特征控制票据视图的示例屏幕截图。图46是示出了细节缩放模式下由AMS GUI提供的特征控制票据视图的示例屏幕截图。图47是示出了由AMS⑶I提供的用户视图的示例屏幕截图。图48是示出了由AMS GUI提供的添加用户视图的示例屏幕截图。图49是示出了由AMS GUI提供的添加用户视图的示例屏幕截图,该视图示出了错误栏的一个不例。图50是示出了由AMS GUI提供的添加用户视图的示例屏幕截图,该视图示出了错误栏的另一个示例。图51是在用于利用ACC的一个配置下的AMS的框图。图52是示出了图51所示的设备和ACC的其他细节的框图。图53是示出了图51和52所示的ACC的硬件组件的其他细节的框图。图54是示出了由ACC中的固件在通过各种状态进行转移中所执行的操作的序列的状态图。图55是示出了由ACC中的固件执行的弓丨导序列的流程图。图56是示出了由ACC中的固件执行的状态转移序列的流程图。图57a至57d是示出了针对图54和55所示的四个生命周期状态的子程序的流程图。图58是由ACC中的固件执行的命令解释器的流程图。图59是示出了由ACC中的固件执行的错误处理器程序的流程图。图60是示出了由ACC中的固件执行的休眠子程序的流程图。图61是示出了在装置和ACC之间的单一命令序列的流程图。图62是示出了在后端、装置和ACC之间的初始化协议的流程图。图63是示出了在后端、装置和ACC之间的密钥协定协议的流程图。图64是示出了在后端、装置和ACC之间使用机密消息协议进行认证的流程图。图65是示出了 MMO散列函数的框图。图66a至66f是示出了在虚拟库存的特征激活程序中执行的操作序列的流程图。特定实施方式
传统的特征编程方案的问题在于其需要在可信环境中进行,对做出改变来说可能是耗费巨大的,并且一般不能容易地进行取消。同样地,已经认识到,在没有办法区分合法和非法的部分的情况下,正在将伪造或丢弃的芯片作为新的产品对待。在一些情况下,被指明为要被销毁的有缺陷的芯片不知何故被循环回到生产线上,而好的器件被抽掉并为便宜的竞争者或者不兼容的芯片所替换。结果,芯片供货商开始看到其品牌正被日益稀释,而因为这些非官方的芯片由于不满足规范而被返回,质量保证的成本增加了。当考虑到被设计来保护数字媒体所有者的商业权利的内容保护方案的增殖(proliferation)时,另一问题出现了。这些内容保护方案要求在制造过程中将每个设备唯一的密钥数据编程到各个设备中。作为这些内容保护方案的被许可者,半导体制造商变得对内容保护密钥数据负有责任,并且当在其不可信的制造操作上分发内容保护密钥数据时,需要对该数据进行保护。当半导体制造商开始调整分布式制造模型时,其失去了对分布式制造操作的专有 设备和制造数据的直接控制。除了内容保护密钥数据之外,专有数据的其他对外形式(例如,特征提供命令、软件/固件指令/机器代码以及设备个性化数据)必须分布并存储在整个不可信的制造操作中。还需要将专有制造数据存储在半导体公司的不可信的分布式制造操作中,并从该不可信的分布式制造操作中搜集专有生产数据。对内专有制造数据可以作为测试报告/程序、过程数据以及产量管理数据而存在。通过数字资产的安全管理来获得竞争优势,由此在给定的制造过程中可以存在提高底线的机会。下面,描述了提供解决方案框架的系统,该解决方案框架可以用于降低以上提到的浪费,并在各种应用中获得竞争优势。要描述的系统包括被部署和集成在多个物理位置上的制造过程中的若干软件和硬件组件。这样,创建可以提供综合性基础结构解决方案的制造平台。资产管理系统(AMS)在本文中,可以将上述制造平台称为资产管理系统(AMS),并如图I所示以数字10来表示。AMS 10是可以适于容纳各种服务的定制解决方案。例如,如下讨论的,可以将AMS 10配置为通过控制对对应资产的提供(provision)来执行以下一项或多项顺序化(serialization)、密钥注入以及特征激活。因此,资产可以指代要被添加到设备14、应用到设备14、与设备14相关联或者以其他方式绑定到设备14的任何数字数据。设备14可以是能够利用这种资产的任何组件或项。例如,设备14可以表示芯片、电路板、电子消费设备、计算机、处理器、存储器等。AMS 10创建对将资产提供或注入到设备14中进行控制的控制通道4,以及执行日志数据的收集以跟踪资产的分发和使用的审计通道6。以下将要描述的AMS 10的组件可以是全局分布的、本地实现的或者包括远程和本地组件的任何配置。AMS10使得公司可以管理和控制在全球外包制造环境上敏感的制造过程。AMS 10包括一个或多个控制器22,其作为主服务器操作,并可以位于电子设备制造商的总部,以远程控制其在任何的全球位置的操作。控制器22可以在互联网或其他网络(未示出)上远程通信,以控制一个或多个辅助的或者远程的服务器(本文中称之为装置18)。装置18可以位于不同的制造、测试或分发地点。控制器22和装置18包括硬件安全模块(HSM) 19,以执行敏感并高信任度的计算,存储敏感信息(如,私钥),执行其他加密操作并建立组件之间的安全连接。使用HSM 19来创建控制器22和装置18之间以及装置18与嵌入到设备14中的资产控制核心(ACC) 12中的安全的信任点之间的安全终端点。HSM19可以是提供添加功能模块(FM) 11的能力的标准现有组件,功能模块(FM) 11包括执行附加安全操作的源代码。例如,如下面将要进一步解释的,AMS 10使得可以计量所消费的资产的信用,HSM 19在利用FM 11时使得在HSM 19所创建的安全边界内安全地执行这种计量。使用FM 11提供了更大的灵活性,其中,可以通过可信的和安全的方式来执行操作,例如,除了加密和签名外的方式。FM 11还提供更大的灵活性,其中,可以利用协议,例如,用来与ACC 12通信的ECMQV协议(稍后讨论)控制器22还提供图形用户界面(⑶1)8,以使得管理者、操作者和其他用户可以与控制器22、装置18以及更宽的AMS 10进行接合。装置18与一个或多个代理20通信,其中,使用代理应用编程接口(API) 21将各个代理20集成到测试脚本或者其他生产程序中,并且在一些实施例中,使用在测试器16及其应用外部的单独过程中起到代理作用的守护程序(daemon) API 23将各个代理20集成到测试脚本或者其他生产程序中。测试脚本或生产程序一般是在生产线上被加载到测试器16上的定制应用。应该意识到,术语“测试器”可以表示用于向设备14注入或者以其他方式提供电子资产的任何制造或生产设备。装置18 —般位于可以与测试器16处于相同物理位置的生产地点,或者代之,可以远离测试器16并在LAN、WAN或者其他网络(未示出)上连接。如图I所示,可以用冗余架构来部署装置18 (即,使用附加的装置18’),以确保如果基本装置18或主装置18不能正常工作或者离线,提供附加的装置18’来进行接管并最小化生产停工期。在一些实施例中,通过代理20,AMS 10可以利用嵌入在设备14上的ACC 12来建立装置18和设备14之间的安全通信。使用AMS 10,可以创建并部署工厂提供系统,这可以降低收入损失,并可以开启与合作方和下游客户的新的收入共享机会。AMS 10还可以在整个制造过程中提高整体安全性和品牌保护,特别是当使用外包的承包人来生产高利润的设备时。可以通过以下方式来完成制造和分发过程中的这种收入损失降低使用AMS 10来帮助防止半导体和其他电子设备14中未授权的特征激活,降低过量的生产,降低库存和供应链成本,启动强有力的内置收入和品牌保护措施,以及开启从售后市场收入潜力中获益的新机会。图2示出了可以如何使用控制器22、装置18、代理20和ACC 12来向设备14定义、分发和应用资产,以及出于审计目的在各种阶段收集日志报告。在控制器22处,制造商(或者要提供的资产的拥有者)定义产品,即利用正在提供的特定类型的服务(例如顺序化、密钥注入、特征激活等)的对象。控制器22还定义与产品和应用于产品的服务相对应的资产类型。通过对资产和产品进行分别定义,在一些实施例中,唯一的产品名称可以使得不同类型的多个资产在一起传送。例如,可以传送密钥,同时激活一组特征,或者可以同时传送和注入密钥和序列号。这节省了时间和带宽,因为两个资产可以利用控制通道4的相同实例,以逐个产品的优化传送。控制器22产生、获取或者以其他方式导入多个资产,并且将该资产绑定到产品,这在资产和产品之间创建了关联,以使得服务的应用可以将资产注入或者添加到产品,并最终针对该产品生产一个或多个设备14。然后,将产品与装置18绑定。还可以将产品与一个以上的装置18绑定,以使得AMS 10可以被配置为跨装置18分发产品的资产。如果正在不同的设施处生产相同类型的设备14,可以创建不同的产品,每个位置一种产品。例如,可以在若干地理位置中生产设备14,每个位置具有在不同生产设施处的装置18。然后,可以针对各个设施创建产品,并将其绑定到对应的装置18。可以注意到,装置18可以在一个以上的测试器16处为一个以上的代理20提供服务,并因此可以针对相同的装置18定义一个以上的产品。然后,控制器22向装置18提供产品和对应的资产,存储这些资产并从而在装置18处提供该产品。控制器22同时记录发送产品和资产的事件,并等待来自装置18的成功接收和存储该资产的肯定应答(ACK)。装置18被配置为与至少一个代理20通信。代理20被配置为在生产或分发阶段利用资产。代理20从而请求其需要用来执行该阶段的资产。装置18计量并获得适当数量的资产,并记录该事件,以记录向特定代理20 (并从而特定的测试器16)的资产分配。然后,向代理20提供资产。然后,代理20可以开始循环,包括应用资产以及针对其所操作的各个设备14记录该事件。可以看出,当使用ACC 12时,执行与ACC12的交换,其细节在下面提供。在某些点处,例如在达到日志阈值时,代理20向装置18提供代理日志组,代理18存储该日志。在其他实施例中,装置18可以从代理20请求日志。然后,控制器22在某个稍后的点处(例如,在同步操作期间)请求针对与装置18相关联的产品的日志,并且向控制器22提供都由装置18存储的装置日志和代理日志。然后,控制器22 可以存储这些日志,并使其可用于对其中包含的数据进行审计和其他后处理或者分析。通过在一个方向上控制分发,并在另一个方向上强制执行事件记录和事件收集,AMS 10能够提供对制造过程的控制。如上讨论的,可以将AMS 10配置为提供各种服务,例如顺序化、密钥注入和特征激活。可以使用图2中示例说明的控制和审计通道来实现这些服务。为了针对这些各种服务配置AMS 10的组件,控制器22、装置18、代理20和ACC 12应该具有特定的能力。现在将参照图3至6描述这些组件的其它细节。图3中更详细地示出了控制器22。可以将控制器22实现为安全强化的在机架上安装的系统,可以通过标准web浏览器100、100’的web接口来访问该系统。如图3所示,控制器22包括控制器22处的web浏览器可以访问或者web浏览器100’可以远程访问的⑶I
8。⑶I 8基于web服务器104,web服务器104利用控制器守护程序106与装置18安全地进行通信(以S来表示),并且一般与数据库110没有安全措施(以U来表示)。报告工具108也可以安全地访问关系型数据库110,以获得日志记录以及其他用于产生报告的数据。可以使来自报告工具108或者任何类似应用的服务请求能够访问数据库110中的数据。利用数据库模式(schema)来用于日志的高效存储、服务模块所要求的数据的高效存储,以及当由服务模块要求时,对数据的高效查找。可以从数据库110导出来自所有服务模块的定制日志数据。在删除装置18之前,控制器22应该与装置18同步,以确保已经收集了所有日志。该示例中的控制器22还支持与控制器守护程序106 —起操作的命令行接口(CLI)工具102。如果使用该CLI工具102,CLI工具102应该提供与⑶I 8类似的功能。控制器22以指定的时间间隔自动同步装置18,以确保任何涉及服务的资产在其所指定的最大量,即,控制器确保装置18具有其需要用来根据意图进行操作的资产。可以提供只读同步模式来查询当前信用等级,而无需将任何的信用加满(top up)。还可以使用同步操作来发送装置配置设置,以及如图2所示从装置18取回日志。这使得如果连接暂时丢失,AMS 10可以在没有中断的情况下支持各个生产地点处的高速制造。控制器22还可以向指定的电子邮件地址发布警告,以告知操作者可能停止生产的条件,理想地,在这些条件产生结果之前告知。控制器22在若干环境下发布警告,例如当控制器不能够与装置18联系时,如果当控制器22向装置18发送数据时存在任何的错误(以及反之亦然),当同步操作失败时,当装置18中的资产数到达指定的告警等级时,当关于装置18的空闲磁盘空间到达最小时,以及当装置18已经阻挡了来自代理20的连接时(因为代理IP地址不在装置18所管理的列表中)。如下面更详细描述的,可以通过GUI 8来执行对这些警报的管理。还使用控制器22来监视在AMS 10中运行的所有作业,例如同步操作以及其他长期运行的任务,可以监视其状况,并记录其进度。可以使作业信息在⑶I 8中可用。控制器22还使得操作者可以添加和移除用户角色(role)。可以向用户角色指派对AMS 10的各个组件进行访问的不同许可等级。将AMS 10产生的日志存储在关系型数据库110中。本示例中的控制器22在服务器硬件上运行,例如使用2x Intel Xeon quad core5300 processor i 3GHz的Dell 2950 PowerEdge 2U在机架上安装的服务器。控制器22还可以使用110/220伏特750瓦特的冗余功率模块、DVD ROM、双吉比特NIC以及PCIe升降器(riser)。控制器22要求例如针对HSM和SSL证书的导出PKCS10请求来进行初始提供, 由设备认证授权机构(CA)对证书签名,以及将SSL和HSM证书导入到HSM 19中。可以意识到,也可以使用对各个HSM 19唯一的任何身份证书。控制器22应该使得可以配置常规设置,例如用于电子邮件警报的名称和SMTP设置。应该提供对多用户账户的支持,并且可以使用每个用户的许可矩阵来允许准许或者拒绝对AMS 10的各个部分的访问。这样,可以定义不同的用户角色,并且以每个模块为基础向各个用户角色给出不同许可。许可矩阵应该是可配置的,以使得客户可以定义这种许可并定义用户角色的数目,以在用户之间进行区分。控制器22对服务模块进行启用和禁用,以使得可以定义不同的服务产品,例如用于顺序化、密钥注入、特征激活等。控制器22还可以配置针对装置18的常规设置,设置是例如名称、制造商、位置、IP地址、端□号、套接字重试、套接字超时、发送/接收块大小以及已针对该装置22授权的代理20的列表。控制器22以可配置的时间间隔与各个装置18同步(例如,每30分钟)。然而,如果在下一次所调度的同步之前需要进行同步,控制器22还使得操作者可以立刻强制进行同步。控制器22提供对AMS 10的控制,并从而可以在添加新装置18之前对其授权。当从供应商发货时,装置18应该处于在使用前要求这种授权的状态。一旦授权已经成功完成,也可以执行控制器22对装置18的其他提供。控制器22还实现了信用系统,在该信用系统中,控制器22向装置18发布信用。不管何时装置18通过将资产提供给代理20 (如图2中所示)来消耗资产,信用都递减。操作者可以定义(最小和最大等级)告警,并且如果关于装置18的当前信用小于或等于告警等级,控制器22发布警报。如果关于装置18的当前信用小于最小等级,控制器22将信用加满到最大等级。如果装置18用完了信用,其不再可以向代理20提供资产。一般应该根据装置18而不是根据服务模块来分配信用。如上提到的,控制器22监视针对各个装置18的作业列表。这创建了允许与其他装置18相独立地为各个装置18提供服务的多线程设计。此外,可以并行并且独立于其他作业来执行各个装置18上的作业。这允许由分别的线程对多个Π请求进行处理,并允许由分别的线程对多个装置18连接进行处理,以使得与一个实体的通信部不干扰与另一个实体的通信,从而添加了 AMS 10的并行性。还监视各个装置18的健康度,包括空闲的和已使用的硬盘空间、空闲的和已使用的存储器、诸如HSM19的其他硬件组件的健康度、与控制器22的上一次通信的日期/时间、以及与各个代理20的上一次通信的日期/时间。控制器22提供ping工具以检查装置18的网络活跃度,该ping工具使用了控制器22和装置18之间的安全通信通道。还提供了时间同步工具来将各个装置18上的时间与控制器22同步,以确保控制器22和装置18上的系统时间和HSM时间在UTC中指定并且相同。控制器22还应该提供禁止装置18向代理提供服务的过程。可以提供适当的告警和确认,这种动作可以干涉或者甚至停止生产线。当被禁用时,装置18应该继续为控制器22提供服务。例如,当禁用装置18时,ping工具应该仍然工作。该功能使得操作者可以在检测到异常并要求补救动作的情况下通过装置18来控制其制造商。可以产生电子邮件警报来标记可能潜在地停止生产线的问题,并且可以指定多个电子邮件地址,以使得可以告知所有感兴趣或者被影响到的各方。控制器22还应该能够自动且手动触发对其自身的备份。在硬件故障或者其他事故的情况下,应该能够从备份将控制器22恢复到新的硬件或者现有的硬件。由控制器22来启用对装置软件的远程更新(包括HSM代码)以及控制器软件的 本地更新(包括HSM代码)。控制器22管理被允许连接到各个应用的代理IP地址和子网的列表,并使得来自⑶I 8和CLI工具102的服务请求成为可能。如图I所示,一般以冗余对的方式来使用装置18,以用于故障检测和故障恢复(failover)。在冗余装置18、18’的情况下,可以向各个装置18、18’给出类似的资产量,每组具有不同的值。因此,如果一个装置18发生故障,代理20还可以从另一个装置18’获得资产,而不冒具有重叠资产的危险,特别是在资产必须是唯一的情况下。装置18还应该是安全加强的在机架上安装的系统。图4A中示出了装置18的示例配置的其他细节。装置18包括装置守护程序112,用于控制控制器22和代理20之间的通信,以提供安全通信通道;以及包括装置关系型数据库114,用于存储日志和其他数据。如上讨论的,装置18可以位于测试位置处、第三方制造商处、装配工厂处,或者任何的生产或分发位置。一个装置18为一个或多个代理20提供服务,并且如果使用,装置18可以通过一个或多个代理20与ACC 12通信。控制器至装置的通信应该是安全的,例如,使用SSL连接、受到保护以及相互认证。将从装置18至代理20的所有资产发布记录在活动日志中。当控制器22收集这些日志时,将其保存在数据库114中,并且如稍后讨论的,可以在GUI的报告视图中查看。当将新装置18添加到AMS 10时,其处于离线状态。然后,为了使用而激活装置
18。一旦装置18是活跃的,在其可以开始产生服务之前,仍然需要对其进行同步。图4B示出了装置18的各种状态。装置18可以在与控制器22类似的硬件上运行,并且所有高信任度的计算将发生在HSM 19内部。装置18具有至少一个HSM 19,但是在一些实施例中,可以支持更多HSM19,以增强诸如ECMQV (稍后将讨论ECMQV的使用)之类的加密操作的性能。为了冗余和高可用性,应该成对提供装置18。冗余对中的装置18、18’都应该总是活跃的,因为代理20可以连接到其中的任一个。在控制器22上对装置18、18’分别进行配置。应该注意到,操作者应该确保在资产方面,装置18、18’都具有类似的配置。从容量规划的角度看,应该将每个对视为一个装置18,例如,你可以仅将该对的吞吐量预期为不超过单一装置18的吞吐量。可以针对SSL、HSM和ACC证书进行来自HSM 19的导出PKCSlO请求,并且证书应该由设备CA签名。然后,将证书导入HSM 19中。当装置18与测试器16互动时,高性能对最小化测试时间是极为重要的。因此,在可能之处应该进行协议优化。例如,可以在HSM 19中预先产生短时的公钥,以在装置-ACC协议中使用。与控制器22的用于传递定制数据和日志数据的通信也应该是高效的,以使得在其与代理20的互动中不影响到装置18的性能。装置18使用装置守护程序112处理来自控制器22和代理20的服务请求,并使用多线程,以使得可以通过与控制器22可以使用多线程进行并行操作的相同方式,彼此独立地为控制器22和代理20提供服务。这样,为控制器22给出单独的线程,并且为各个代理20给出单独的线程。应该将针对数据库114的模式设计为日志的高效存储、各个服务模块所请求的数据的高效存储、以及服务模块所请求的数据的高效查找。如图5所示,代理20是软件库,并且每个代理20都集成到客户的测试程序或脚本或者在生产线上被加载到测试器16 (被配置为对设备14进行测试的计算机)上的定制应用中,或者与之相集成。当可应用的情况下,代理20与ACC 12或软ACC 12’通信。当被配置为利用代理API21时,代理API 21向装置18请求资产,并通过安全SSL连接发送回所使用的资产的日志。除了代理API 21之外,AMS 10支持守护程序API 23的使用,守护程序API 23派生出从装置18取回资产并向装置18提供资产的单独的过程(S卩,守护程序25),减少了测试器应用116所正在进行的一些工作。图6A示出了利用代理API 21的代理20的配置。代理API 21允许在测试器16上运行的测试应用116a连接到装置18,以取回资产并向装置18返回日志。可以看出,代理API 21直接集成在测试应用116a中,这给出了对如何以及何时在测试器16和装置18之间传送资产和日志的完全控制。如图6A所示,代理API 21从装置18获得资产数据分组120,以及任何的日志请求126。代理API 21还向装置18提供资产请求124,并提供所请求的日志报告122。现在转到图6B,可以使用守护程序API 23来替代代理API 21,以卸下管理资产和日志的责任。如图6B所示,守护程序API 21集成在测试应用116b中,以使其可以与单独的过程(守护程序25)通信,该单独的过程担当测试应用116b和装置18之间用于管理资产数据包120、日志报告122、资产请求124和日志请求126的交换的中介。守护程序API 23提供更简单的接口,并且可以被配置为运行守护程序25来作为后台过程。如图6B中所示,守护程序API 23提供与测试应用116b的接口,以在需要资产时获得该资产,并当在各个测试结束期间或结束时产生日志数据128的时候获得该日志数据128。为了获得资产并向装置18提供日志报告122,守护程序API 23运行单独的守护程序25以提供代理API 21,以避免测试应用116b必须在测试过程期间经常连接到装置18,从而节省了时间。守护程序25可以在使用代理API 21的时候请求一批资产,并在需要资产时通过守护程序API 23向测试器16传送资产,以使得资产总是对测试器16可用,而不必连接到装置18。这样,测试应用116b仅需要与守护程序API 23进行接合,并从而通信,以获得资产并提供其日志数据(然后,守护程序25上的代理API 23将其打包进日志报告中)。守护程序25维持资产高速缓存130,以存储成批的资产来用于后续根据需要向测试器16分发,以及维持日志高速 缓存132以在测试完成时存储测试应用116b输出的日志数据128,该日志数据要被组织进日志报告122中。守护程序API 23还可以具有资源管理子系统(RMS) 27,被配置为独立地实现并向守护程序25注册资源管理过程。这样,用户可以实现其自己的资源管理过程(在其自己的指示下),以判定何时取回资产、发送回日志等等,并且可以通过名称将该过程与特定的产品简档相关联。如图6B中所示地使用守护程序25和守护程序API 23提供了若干优势。通过使守护程序25维持或者高速缓存与装置18的连接,测试应用116b不需要重复地请求新的会话,从而节省了在测试环境中至关重要的时间。以及,守护程序25可以利用阈值来控制其在资产高速缓存130中存储多少资产。例如,当与低阈值交叉时,该低阈值可以使得守护程序23利用代理API 21来分别在不扰乱测试步骤的情况下从装置18获得新批次的资产以及同时继续转发仍然具有的资产。以及,已经发现,当装置18向测试应用116a直接提供多个资产时,例如,当发送一批密钥时,如果当测试应用116a终止时在其上还有剩余的资产,这些资产可能丢失,因为其可能被从测试器的存储器擦去。在这种情况下,AMS 10可能正在浪费资产,而一个或多个实体可能损失收入或者不得不承担成本。通过如图6B所示将守护程序25与测试应用116b分离,在像这样的环境下,守护程序25和资产高速缓存130可以比测试应用116b存活得更长,并从而将不在没有恢复资产的机会的情况下浪费该资产。从而,如果守护程序25关闭,可以将剩余的资产标记为已浪费,并且可以产生日志报告并返回到装置18,以确保如果申请人允许,将剩余的量返还客户。在其他实施例中,可以简单 地针对测试应用116b的下一个实例维持剩余资产。可以使用守护程序API 23来创建如图6B中所示的独立应用,或者在其他实施例中可以将守护程序API 23与测试应用116b—起嵌入。应该使用守护程序API来卸下对测试应用116b中的资产和日志报告122的管理。可以在客户端或服务器模式下创建守护程序API 23。在服务器模式下,其连接到装置18并自动管理资产的取回和日志报告122的发送。在客户端模式下,其针对AMS资产和日志而连接到已经在运行的服务器模式守护程序应用。还可以存在自动模式,在自动模式中,守护程序API 23取决于守护程序25的另一实例是否已经在运行来使用客户端或服务器模式。守护程序API 23使用用于AMS产品(或资产)和日志的管理的基于文本的配置指示。可以在编译时从文件或者从存储器读取这些指示。配置指示包括一个或多个产品简档。产品简档包含=AMS产品的名称、用于登入装置18的连接凭证、资源管理过程以及过程设置。使用资源管理过程来管理与简档相关联的产品的资产以及日志。该过程包括针对资产加满等级的可配置指示(最小资产和最大资产)以及在其处自动向装置发送日志的阈值等级(最大日志)。由于典型地成对传送装置18,应该使用装置18、18’的IP地址和在装置故障的情况下从装置18到另一装置18’的故障切换来配置代理20。代理20应该报告任何的错误,例如,如果代理20不能够连接到装置18、18’中的一个。在连接错误的情况下,代理20在故障切换到另一装置18之前等待的时间应该是可配置的。ACC 12是集成在芯片的设计之中的小并且高效的加密安全引擎。将ACC 12集成到正在制造的设备14中,并从而ACC 12可以与AMS 10并行但是分开地建立。取决于应用,可以在有ACC 12或者没有ACC 12的情况下使用AMS 10。例如,顺序化和密钥注入可以不要求ACC 12,但是特征激活服务模块一般要求ACC 12。然而,可以在涉及顺序化和密钥注入的应用中使用ACC 12。一般将ACC 12嵌入到SoC管芯中,然后将SoC管芯封装到芯片中,将芯片安装在印刷电路板(PCB)上,并最终装配到电子设备14中。可以当每个具有ACC 12的芯片一通过晶片测试时,就将其注册并登入到控制器的数据库110中,这进而可以跟踪经历了晶片测试的每个制造的芯片。ACC 12具有输出端口组,并且对这些输出的聚集进行的评估指示了要启用哪些特征,要禁用哪些特征。一旦装配了,ACC 12可以仍旧担当最终设备14上信任的根(root) ο
将ACC 12设计为管理对非易失性存储器(NVM)的访问并保护NVM的特定区域免受未授权代理20的访问。ACC 12可以提供自含式的唯一设备ID(UID)产生,UID被用来唯一地标识ACC 12。ACC 12还可以提供自含式的密钥产生,该密钥被用来开启与可信服务器的安全通信通道。ACC 12应该确保可信源使用可信装置进行特征的启用和禁用,并且ACC12应该能够发起或者禁用设备自测和健康检查,以确保没有对设备14进行篡改。ACC 12还可以在不管何时发布了太多无效命令时,使设备锁定。使用ACC 12处理来自装置18的命令,并且可以将ACC 12编程为如果检测到指定数目的无效命令就关闭其自身。应该将ACC12设计为在任何电子制造测试环境中工作,因为AMS 10的安全特征不一定依赖于或能够信任装置18和ACC 12之间的数据链路。取而代之地,将安全性内置于使用加密的通信协议中。因此,AMS 10提供允许以安全可审计的方式在任何地方进行提供的能力从晶片加工到ODM到OEM到用户。为了保护ACC至装置通信通道,ACC 12使用非对称加密方案用于密钥交换,并且使用对称密钥加密来传递其与装置18之间的消息。非对称加密方案使用从隐秘的私钥产生的公钥。将私钥保持隐秘,而将公钥曝光。以安全、高度防篡改的设置来保护私钥是绝对必要的。通过能够内部地并且自动地产生唯一的私钥,以硬件和固件的组合来保护隐秘的密钥免于被曝光,所嵌入的ACC 12能够满足该要求。ACC 12为各个设备14产生唯一的标识符,并通过与装置18的加密通道参与到设备14的跟踪和提供中。一旦双方对对称密钥取得一致,装置18就以安全的方式向ACC 12发布机密消息,在本文中将该机密消息称为特征控制票据(FCT)50。后面参照图51至66对ACC 12进行更详细的描述。如上讨论的为了实现AMS 10,应该进行各种安全考虑。如上提到的,控制器22和装置18中的所有高信任度的计算都应该发生在HSM 19内部,特别是以在制造商和另一实体之间的各种信任级别在该实体处运行的装置18上。当执行顺序化时,装置18应该仅能够基于从控制器22接收到的序列号模式(这种模式在下面描述)产生序列号。对于密钥注入,装置18应该仅能够对从控制器22直接接收到(即,不是从另一装置18接收到)的已排序的密钥进行解密。对于特征激活,装置18应该仅能够对从控制器22直接接收到(即,不是从另一装置18接收到)的FCT 50进行解密。应该保护AMS 10所使用的信用或计量方案,以使得装置18可以仅使用从控制器22直接接收到的信用通知。装置18应该仅使用来自控制器22的资产,从控制器22对其进行提供,以确保不能使用被错误地发送到另一装置18的资产。对于装置18,应该不可能使用来自另一装置18的信用通知,并且攻击者应该不可能添加、移除或者改变装置18上的信用的数目。然而,可以意识到,出于高可用性/故障切换的目的,如果确保唯一的资产不被使用一次以上的机制存在,可以将AMS 10配置为使得可以将一个装置18上的资产复制到另一装置18。为了管理控制器22,web浏览器100应该仅能够在https上访问web服务器104,并且应该保护通信,例如,相互认证、加密、完整性检查、回放保护等。应该如图3中所示地保护web服务器104和控制器守护程序106以及CLI工具102和控制器守护程序106之间的通信,例如,使用SSL。类似地,应该保护控制器22和装置18以及装置18和代理20之间的通信,例如,使用SSL。应该使用ACC协议来保护应用HSM 19和ACC 12之间的通信,并且ACC 12应该对装置18进行认证。装置18不需要对ACC 12进行认证,因为ACC 12被视为可信的根。可以对从代理20到装置18到控制器22的日志进行加密,并且可以对该日志进行完整性保护,以防止偷听和篡改。只有控制器22应该能够对日志进行解密和验证。这些日志可以包括定制数据,例如,产量数据。应该加强控制器22和装置18以对抗攻击。将该加强应用到包括在HSM 19上运行的OS和应用在内的OS和应用(例如,数据库110)。优选地,所有的证书都是由可信设备CA发布的椭圆曲线加密(ECC)证书,它们由每个客户签名,且作为AMS子根证书。然后,可以将ECC证书用于web服务器104、控制器守护程序106、装置18以及代理20 (针对HSM证书、针对AMS 10中的每个HSM 19以及针对在与ACC 12的ECMQV协商中使用的ACC证书)中的各个之间的SSL。应该将客户名称嵌入到证书中,并对其进行检查,以使得通信仅发生在具有相同客户名称的端点之间。应该保护存储在数据库中的数据,以避免未授权的访问和修改。
针对AMS的产品和服务模块在本文讨论的示例中,产品是模型,其向AMS 10提供产品名称、其标识、其提供的服务、哪些装置18产生该产品以及资产列表。例如,资产可以是顺序化模式的聚集以及被应用了该模式聚集的装置18的列表。类似地,资产可以是密钥类型的聚集以及被应用了该密钥类型聚集的装置18的列表。在又一个示例中,资产可以是FCT 50的聚集以及对应的装置18的列表。本文中所讨论的服务模块确定各个AMS组件(控制器22、装置18、代理20和ACC 12)在生产过程中提供什么。在下面的示例中,AMS 10可以定义用于顺序化、密钥注入和特征激活的服务模块,然而,将要意识到,可以应用其他服务模块来传送和提供其他类型的资产。图7A、7B和7C中分别示出了顺序化、密钥注入和特征激活模块配置的示例。顺序化首先转向图7A,顺序化服务模块是用于提供产生、向芯片(或者其他电子对象或设备)指派以及跟踪唯一序列号的安全手段的AMS 10的配置。为了提供该服务,使用控制器22来定义产品模型,然后定义要绑定到各个产品模型的一个或多个顺序化模式134。各个顺序化模式134包含针对特定产品(例如,设备14)的序列号范围。不管同步操作何时发生,在制造商位置处,在安全、加密的连接上(例如,在SSL上)向装置18发送序列号模式134,一般是自动进行的。然后,代理20可以使用代理API 21或者守护程序API 23,通过产品名称请求序列号值。序列号由装置18产生,计量,并向代理20提供。然后,使用代理20在芯片制造过程中将序列号顺序地注入到各个管芯中。控制器22跟踪针对各个顺序化产品,已经消耗了多少序列号,并在⑶I 8中使这些结果可用。顺序化模式134是对与如何产生序列号有关的规则进行定义的对象。例如,其确定序列号数字是以十六进制还是十进制的形式呈现,以及是否包括固定的字符串。虽然可以将一个或多个顺序化模式134与顺序化产品绑定,特定的模式134仅可以绑定到一个产品。绑定到产品的顺序化模式134不能重叠,并且一旦绑定,就不应对模式134解绑。针对其他改变,例如,改变已经插入的静态字符串,应该创建新的顺序化模式134。如果将一个以上的模式134绑定到相同的产品,应该以优先级顺序对这样的多个模式134进行指派。当请求针对产品的序列号串时,从具有最高优先级的模式134给出序列号。如果模式134耗尽(即,来自模式134的计数值已经全部被指派),那么使用具有次最高优先级的模式。可以将顺序化产品绑定到一个以上的装置18,各个绑定具有最小和最大的库存等级。可以使用控制器22来确保绑定到多个装置18的产品具有不重叠的序列号范围。当将产品绑定到装置18时,控制器22将序列号的库存保持在指定的最大等级。一旦已经从控制器22向装置18发送了该库存,就不应该能够召回或者撤销这些序列号值。序列号模式124可以描述如何将基本值变换为序列号串。在本示例中,术语“序列号基本值”指代任何正的64比特整数,并且不应该将其与底值属性相混淆。序列号模式134具有若干属性开始、数目、底值以及总字符。开始和数目值限定了模式中允许的基本值的范围。底值属性确定了当基本值变换到序列号串时,用以10为底还是以16为底的格式来表示基本值。总字符属性限定了当将基本值表示为序列号串时,要使用多少字符。可以在序列号串中的任何位置处插入零个或者更多个静态字符串。可以注意到,应该不能够指定比用于表示模式134中的最大值所需的字符的最小数目更少的数目。例如,如果模式134以O开始,并且数目为1000,那么应该有三个或者更多字符,因为方案限定了范围
并且需要3个字符来表示999。给定序列号模式134和基本值,如下构建序列号串a)基本值必须在[开始值,开始值+数目-I]的范围内;b)然后,以指定的格式表示基本值;c)然后,取决于总字符属性,或者从左边(或者最高位端)截断所产生的字符串,或者在左边以零来填充。d)然后在所产生的字符串中插入任何的静态字符串。示例A :如果模式A=(开始=I,数目=100,字符=4,底值=16)并且基本值=55,结果是序列号0037。这是因为55在范围之内,55的十六进制格式是37,并且需要4个字符,从而填充两个零。如果基本值=3,结果是序列号0003。示例B:如果模式B=(开始=I,数目=100,字符=3,底值=10,静态字符串I=(位置=3,字符串=X),静态字符串2 =(位置=1,字符串=_))并且基本值=56,结果是序列号字符串0-56X。这是因为56在范围之内,56已经是以10为底的格式,将X插入在位置3处(即,最低位端的位置)并将破折号(_)插入在位置I处(即,最高位端的位置)。使用零来填充序列号字符串,因为56仅是两个字符。如果基本值=1,结果是序列号字符串0-0IX,以两个零来填充。当从控制器22向装置18发送序列号模式时(记录为控制器活动日志),当装置18产生序列号并向代理20发送时(记录为装置活动日志),以及将由代理20使用序列号时(记录为代理活动日志),顺序化服务模块创建日志。将所有日志保存在控制器22上(在收集之后)并且可以用于监视和跟踪序列号。每次向代理20发布序列号时,进行发布的装置的信用递减1,并且针对该产品的序列号库存也递减。在控制器22和装置18之间的同步操作期间,对这两个等级都进行补充,并且它们都用于计量装置18的序列号使用。图8示出了用于基于图2所示的基本AMS序列图来实现顺序化服务模块的序列 图。在图8中可以看出,控制器22产生顺序化模式134,将其与产品绑定,然后将产品与装置18绑定,并向装置18发送该产品和模式,由此产生和计量序列号。
转回到图7A,示出了顺序化产品工作流程。在该示例中,通过对顺序化模式进行文件编制,并向AMS管理者传送所提出的模式,商业管理者可以定义顺序化模式。然后,AMS管理者可以使用控制器⑶I 8来产生顺序化模式134。商业管理者还可以定义顺序化产品,对该产品定义编制文件并向AMS管理者传递该定义。然后,AMS管理者可以使用控制器GUI8,根据该定义创建顺序化产品。然后,AMS管理者将序列号模式与产品绑定,将产品与装置绑定,并使用控制器22来与装置18同步序列号模式。装置18然后使用代理20来注入序列号,例如,根据图8中示出的序列进行注入。
当被定义时,AMS 10为顺序化产品指派唯一的产品ID,并由操作者提供唯一的标识名称,以与其他产品加以区分。针对各个顺序化产品,装置18可以直接向代理20传送序列号或者可以经由FCT 50传送序列号。如果经由FCT 50传送序列号,那么操作者将(在下面提供的示例中)需要在要存储序列号的ACC 12内指定2字节的存储器偏移(十六进制),并且还指定了 8字节的记录标签值(十六进制)。装置18从控制器22接收序列号产品/模式,响应来自代理20的针对序列号的请求,基于序列号模式134产生序列号,计量序列号,从代理20接收回日志,并将日志发送回控制器22。针对向代理20传送的每个序列号,装置信用减少1,且如果信用到达零(0),不应再传送序列号。当要经由FCT 50传送序列号时,不应该能够直接进行传送,S卩,装置18应该拒绝任何这样的请求。同样地,当经由FCT 50传送时,装置18中的记录应该与直接传送序列号时相同,除非还应该记录ACCUID,。应该对可配置的接收块大小进行调节(在单个块中从装置18返回的日志数)。当经由FCT 50传送序列号时,应该保护ACC旗标、记录标签和存储器地址数据在装置18上免受篡改。代理20应该能够使用代理API 21或守护程序API 23,通过顺序化产品名称和数目从装置18请求序列号。代理20还应该支持用于传送的两种机制,即直接或者经由FCT50。代理20应该记录各个序列号的使用,并向装置18返回日志。代理20还应该将已丢弃的序列号记录为已浪费。当经由FCT 50传送序列号时,代理中的记录应该与直接传送序列号时相同,除非还应该记录ACC UID0如上讨论的,代理20从测试应用116b获得日志数据128,例如,当使用守护程序API 23时。已经发现,AMS 10提供的审计通道使得在制造过程期间能够进行各种相关。例如,当在测试器16中向芯片添加序列号时,测试器16 —般知道特定芯片在晶片上的位置。可以将该位置信息与所添加的序列号一起加以记录,并最终由控制器将该信息存储到关系型数据库HO中。这样,在稍后的时间,如果在制造过程中芯片测试不成功,可以使用该关系型数据库110,将失败的芯片的序列号与其在管芯上的位置相关,以确定是否在机器内的过程或者位置的特定部分中发生故障。在另一示例中,可以使用与序列号的添加相关联的时间戳来跟踪特定机器在特定时间的故障,或者甚至在所谓的芯片盗窃中识别特定的雇员。因此,审计通道6和关系型数据库110可以用于各种数据挖掘和分析,以提高责任承担以及识别和矫正制造过程中的故障的根本原因。密钥注入现在转回到图7B,密钥注入服务模块是对将密钥注入到产品中的安全手段(例如,设备14)进行提供的AMS 10的配置。为了提供该服务,使用控制器22来定义一个或多个密钥类型138。密钥类型138定义了密钥在文件中的格式。然后,如图7B中仅以示例的方式示出的,使用控制器22来定义产品模型140,然后将一个或多个密钥类型138与各个产品模型140绑定。已经发现,通过将密钥直接添加到产品定义而不将密钥类型与产品分开,根据客户在不同的应用中定义项目名称和产品类型的不同方式,可能发生混淆。例如,如果将多个密钥类型添加到“产品桶(product bucket) ”中,则在产品信用低的时候,就可能难以确定哪个密钥低,并从而难以知道加满哪个密钥。通过如图7B所示将密钥类型138与产品140分开,提供了附加的抽象等级,以更接近地反映客户一般如何利用资产。这样,可以使用控制器22来定义产品类型140,该产品类型140可以形成一个或多个密钥类型138以及其他资产的“二进制数据块(blobs) ”,以避免不注意地载入不正确的密钥,并更好地对各个密钥类型138的实际库存等级进行跟踪。由此,当导入密钥时(例如在如图7B中所示的DVD 136上),根据密钥类型将密钥分隔在截然不同的“桶”中,而不是试图向特定产品直接分配密钥,然后在没有必要地将针对该产品类型140使用的密钥的数目和类型进行逻辑相关的情况下,由不同的名称来指代该特定的产品。取而代之地,通过密钥类型138来对密钥进行简单分隔,然后通过产品类型140抽象的方式来定义客户定义的关联。同样地,当定义产品140时,可以建立特定的许可,以使得产品140仅使用特定的密钥类型,例如,来自于特定的分销商。由于可以根据各种合同约束提供特定的密钥类型138,对密钥类型138的分隔 和分配进行的更好控制确保了遵守这种合同约束。图7B中还示出了密钥转换139,可以通过客户特定的方式来使用密钥转换139,以修改特定的密钥类型138。如图7B所示,可以在导入密钥时应用密钥转换139,例如,是否该密钥类型138的密钥总是要以该种方式转换,以使得可以对所变换的密钥类型138进行定义。备选地,可以在进行传送之前或者传送时应用密钥转换139,其中,在产品特定的基础上或者在应用特定的基础上对密钥进行转换。在又一个备选中,可以在向代理20传送密钥之前在装置18处应用密钥转换139。当确定在何处应用密钥转换139时,应该基于密钥转换139位于何处来进行安全考虑,例如,当由于装置18位置处的较低可信度,导致在装置18处要求较高安全性。可以注意到,通过如图所示分隔密钥类型138和产品类型140,可以将转换139与产品140而不是密钥类型138相关联,以最小化所要求的密钥类型138的数目。换言之,当导入时,可以将密钥类型138分隔地存储,并且根据产品类型140执行密钥转换139,以避免添加又一个密钥类型138以及这可能导致的潜在混淆。一旦定义了密钥类型138,可以使用⑶I 8将该类型的密钥从密钥文件(例如,经由DVD 136)导入到控制器22上。然后,操作人员可以使用⑶I 8来指定要向装置18发送的密钥的数目。如果已经定义了散列,那么AMS 10验证该散列值。不管同步操作何时发生,在安全、加密的连接上(例如,SSL)向在制造商位置处的装置18发送密钥,在本示例中,自动地发送。然后,可以使用代理API 21或守护程序API 23,通过产品名称请求密钥。当代理20取回密钥时,其请求产品或者该产品的单位数目。装置18查询与该产品绑定的所有密钥类型,并返回针对各个密钥类型的指定数目的密钥。然后,代理20将密钥注入到装配线上的每个管芯中。可以将密钥注入产品绑定到一个或多个装置18,各个绑定具有最小和最大的库存等级。当将产品绑定到装置18时,控制器22将其密钥的库存保持在指定的最大等级。一旦已经从控制器22向装置18发送了库存,便不能召回或者撤销密钥。控制器22跟踪针对各个密钥类型138已经注入了多少密钥,并使得这些结果在⑶I 8上可获得。图9示出了用于执行密钥注入服务的示例序列图。可以看出,当与顺序化相比较时,密钥注入也具有将密钥从文件导入的步骤,然而,可以意识到,也可以由控制器22产生密钥,并且是在定义密钥类型的时候进行。因此,图9中示出的序列仅用于示出的目的。当实现针对密钥注入的AMS 10时,在将密钥数据导入到控制器22上后,不应该以明文方式存储密钥数据。解密仅应该发生在装置18向代理20传送密钥时,除非使用了 ACC12,在使用ACC 12的这种情况下,不对数据解密,直到ACC 12对该数据进行了处理(S卩,通过处理FCT 50内的密钥)。密钥类型138具有定义了文件中的密钥格式的若干属性。针对HDCP_TX密钥,下面在表I中提供了一般的密钥类型定义。
名称HDCP—TX 最小长度为I个字符并且最大长度 为256个字符的字符串,其唯一地标
___识密钥类型。_
总长度308__密钥字节流的总长度。_
密钥唯一 id偏I OI密钥字节流中基于O的偏移,在其中___可以发现密钥标识符。_
密钥唯一id长8密钥标识符的长度。
___
密钥数据偏移8密钥字节流中基于O的偏移,在其中
__可以发现密钥数据_
密钥数据长度280__密钥数据的长度。_
散列算法 SHA-I用来检查密钥数据的完整性的散列
__算法。_ 散列数据偏移288密钥字节流中基于O的偏移,在其中
___可以发现散列。_
散列数据长度20散列的长度。散列用于检验密钥的完
___整性。_
散列保护偏移O密钥字节流中基于O的偏移,在其中
___可以计算散列。_
散列保护长度288_用于计算散列的数据长度。_
密钥文件报头8密钥文件报头的长度。
长度___表I :样本密钥类型定义将密钥注入服务模块配置为当向装置18发送密钥时,当向代理20发送密钥时以及当由代理20消耗密钥时,创建日志(分别是控制器活动日志、装置活动日志、代理活动日志),而不管其是成功、失败还是被浪费掉。图9中示出了这种记录事件。在由装置18在同步操作期间返回之后,所有的日志都被存储在控制器22上,并且可以被用来监视和跟踪密钥使用。每次向代理20发布密钥时,装置的信用递减1,并且针对该产品的密钥库存也递减。在控制器22和装置18之间的同步操作期间,对这两个等级都进行补充,并且都使用其来计量在装置18上的使用。类似于顺序化,AMS 10向各个密钥注入产品指派唯一的产品ID以及由操作者提供的唯一的标识名称。针对各个密钥注入产品,应该允许以上讨论的两个机制,即直接向代理20提供密钥,以及使用FCT 50来进行传送。如果经由FCT 50传送密钥,操作者也可以指定ACC 12内的2字节的存储器偏移以及8字节的记录标签值。AMS 10向各个密钥类型138指派唯一的密钥类型ID以及由操作者提供的唯一的标识名称。在本示例中,将密钥视为字节流。可以从在控制器22本地的文件(例如,DVD 136)导入一批明文的已排序的密钥。AMS 10向各个密钥指派唯一的密钥ID。可以注意到,该唯一的密钥ID与密钥中的密钥标识符不是同一个。还可以从⑶I 8运行所在的远程计算机导入密钥文件。特别的情况是允许对被PGP加密的HDCP密钥进行PGP解密,然后导入。存在着支持这些HDCP密钥的特定文件格式。针对PGP解密,可以使用GNU GPG。在这种情况下,假定所要求的证书和私钥都已经导入到GNU GPG中。
在特定的密钥类型138的导入期间,如果使用了密钥标识符,那么密钥的密钥标识符将与针对该密钥类型138的所有之前导入的密钥标识符相比较。可以注意到,这种机制不能保护密钥文件免于为另一密钥类型所再次使用,并因而应该使用操作规则进行避免。在特定密钥类型的导入期间,如果使用了散列,那么针对所有的密钥计算散列并进行检验。不使用HSM 19来执行这种散列计算。如果已经有导入特定密钥类型的密钥的作业正在运行中,应该防止操作者导入该相同密钥类型的密钥。应该允许ー个或多个密钥与密钥注入产品绑定。可以将各个密钥类型指派给多个产品。针对各个产品中的各个密钥类型,应该对要求这些密钥类型中的多少密钥类型进行指定。应该能够将密钥类型从产品解除绑定,但这仅在该产品没有绑定到任何装置18的情况下进行。应该允许各个密钥注入产品绑定到ー个或多个装置18。各个装置18可以具有多个为其指派的密钥产品,并且应该能够将密钥注入产品从装置18解除绑定。控制器22不应向装置18发送复制的密钥。一旦已经向装置传送了密钥,就应该将其从控制器22删除。类似于顺序化,应该使用计量系统,并且一旦向装置18发布密钥,就不应该能够将其返回、召回或者撤销。当经由FCT 50传送密钥时,装置18和代理20中的记录应该与直接传送密钥的时候相同,只是还包括了 ACC UID0密钥注入服务模块还可以支持在导入密钥之前在控制器22处处理密钥,使得可以对密钥进行任何转换,在本文中将其称为密钥导入签名对象。应该能够对密钥导入签名对象进行定义,其中,AMS 10向各个签名对象指派唯一的签名对象ID,并且向各个签名对象指派由操作者提供的唯一的标识名称。签名对象是驻留在控制器22上的共享对象,并且使用签名来进行加密保护。然后,在将其导入以允许操作者对密钥进行转换之前,针对每个密钥,调用共享对象中的功能一次。可以注意到,可以对密钥标识符(例如,在HDCP的情况下,KSV)进行拷贝,以使得即使在签名对象已经潜在地将其弄乱(obfuscate)的情况下,控制器22也总是可以对其进行访问。应该能够将密钥导入签名对象指派给ー个或多个密钥类型138,并且各个密钥类型138应该能够具有最多一个所指派的密钥导入签名对象。也应该能够将密钥导入签名对象从密钥类型138解除指派。控制器22当被配置用于密钥注入吋,还可以支持密钥转换插件139,密钥转换插件139使得在对密钥解密之后但在将其发送至装置18之前,可以在控制器22处对该密钥进行处理。可以将其称为密钥至装置转换。密钥转换插件139允许例如基于每个客户或者每个产品来进行对密钥的硬件特定或者端对端协议特定的修改。这使得可以进行诸如用于纠错的比特分配之类的修改,并且可以在导入密钥时或者在向装置18传送之前执行该转换。应该能够对这种密钥至应用转换139进行定义,并且AMSlO应该为各个转换指派唯一的签名对象ID,应该为各个转换指派操作者所提供的唯一的标识名称。转换是驻留在控制器22上的共享对象,并且应该使用签名来进行加密保护。在将其向装置18发送以对密钥进行转换之前,针对每个密钥,调用共享对象中的功能一次。可以注意到,应该对密钥标识符进行拷贝,以使得即使在转换已经发生的情况下,控制器22也总是可以对其进行访问。当绑定到产品时,应该能够向密钥至装置转换指派ー个或多个密钥类型138。各个绑定的密钥类型138应该具有最多一个所指派的密钥至装置转换。也应该能够将密钥至装置转换与产品中的密钥类型解除指派。密钥注入服务模块还可以支持装置签名对象,这允许在对密钥解密之后但在将其向代理20发送之前,在装置18处对该密钥进行后处理。关于装置签名对象,还应该支持密钥通过(pass-through)。取决于是启用密钥通过还是禁用密钥通过,強制在装置18将向代理20发送密钥之前,是否应该呈现装置签名对象。在本文中将其称为密钥至代理签名对象。应该能够对密钥至代理签名对象进行定义,并且,AMS 10向各个签名对象指派唯一的签名对象ID,并且向各个签名对象指派由操作者提供的唯一的标识名称。签名对象是驻留在控制器22上的共享对象,并且由签名来进行加密保护。在将其向装置18发送以对 密钥进行转换之前,针对每个密钥,可以调用共享对象中的功能。可以注意到,还应该对密钥标识符进行拷贝,以使得即使在转换发生的情况下,控制器22也可以对其进行访问。应该能够向密钥至代理签名对象指派ー个或多个密钥类型。各个密钥类型应该具有最多ー个所指派的密钥至代理签名对象,并且也应该能够将密钥至代理签名对象与密钥类型解除指派。密钥注入服务模块还可以支持只读同步模式,其中,控制器仅查询当前密钥等级,并在不传送新密钥的情况下从装置取回日志。装置18不应该向代理20发送复制的密钥,并且一旦密钥已经传送,应该将其从装置18删除。当经由FCT 50传送密钥时,不应该能够将其直接传送,并且当将密钥注入产品与装置18解除绑定时,应该将属于该产品的所有密钥从装置18删除。代理20应该能够通过产品名称和数目从装置18请求密钥ニ进制数据块,并且取决于将多少密钥类型绑定到该产品,各个密钥ニ进制数据块应该包含ー个或多个密钥。例如,如果产品利用3个密钥类型,密钥ニ进制数据块将包括3个密钥。代理20不应该向测试器16发送复制的密钥。一旦向测试器16传送了密钥,就应该将其从代理20删除。代理20还应该分别记录密钥ニ进制数据块中的各个密钥的使用,并且应该记录预期丢弃的任何密钥。特征激活如图7C所示,当配置为提供特征激活服务模块吋,AMS 10使用ACC 12提供在加工之后动态激活或去激活产品的特征组的安全手段。如上提到的,还可以将ACC 12与顺序化和密钥注入服务模块一起使用,但是对于与特征激活服务模块一起使用来说,特别地有利。为了提供该服务,使用控制器22来定义ー个或多个FCT 50,然后定义产品模型。然后,将FCT 50绑定到各个产品模型,在这种情况下,还将所有的FCT50绑定到生产该产品的装置18。然后使用ACC 12将FCT 50应用到装配线上的各个管芯。可以将产品绑定到一个或多个装置18,各个绑定具有最小和最大的库存等级。当将产品绑定到装置18时,控制器22将其FCT 50的库存保持在指定的最大等级。一旦已经从控制器22向装置18发送了库存等级,就不应该能够召回或者撤销FCT 50。控制器22跟踪已经有多少FCT 50应用到各个产品,并使得这些结果在⑶I 8上可获得。在本文描述的示例中,ACC 12包含256比特(32字节)特征寄存器120、标签寄存器和NVRAM。特征寄存器120意在用于控制(开启或关闭,或者部分开启或部分关闭)设备14上的特征。确切地如何开启、关闭特征等取决于设备。使用通过FCT 50的提供的ACC命令来从特征寄存器120、标签寄存器和NVRAM读取数据,或者将数据写入到特征寄存器120、标签寄存器和NVRAM中。FCT 50包含特征数据和记录标签。特征数据确定激活或者去激活哪些产品特征。记录标签提供对ACC 12将要使用特征数据来激活哪些特征的记录。将特征数据编程进ACC特征寄存器120中,将记录标签编程进ACC标签寄存器中。记录标签的值也取决于客户。写入特征寄存器的两个命令(下面更详细地进行描述)是SETFEAT和SETFEAT_TEMP。当使用后者时,特征数据不存储在NVRAM中,并且可以在掉电时丢失。在本示例中,ACC 12还包含64比特(8字节)记录标签(寄存器)。记录标签意在用于记录将什么编程到ACC 12上。当使用写到ACC 12的任何命令(除了 SETFEAT_TEMP)时,对记录标签进行设置。如何对记录标签进行解释取决于应用。ACC 12还包含NVRAM,其数量取决于实现。写到NVRAM的命令是WRACCESS。可以写的数据的最大量通常是強制的,例如,500字节。将什么写到NVRAM以及写到何处取决于实现。不管同步操作何时发生,在安全、加密的连接(例如,SSL)上自动向在制造商位置处的装置18发送FCT 50。然后,代理20可以使用代理API 21或守护程序API 23来通过产品名称请求FCT 50。当代理20请求特征激活产品时,其可以获得与该产品単独绑定的所有FCT 50。当代理20从装置18取回FCT 50时,其查询所有的服务模块,寻找具有该名称的支持ACC的产品,在这种情况下,可以向代理20传送多个FCT50,然后向ACC 12单独发送。代理API 21可以不与ACC 12直接接合,在这种情况下,要求与实现相关的接ロ。当使用特征激活服务模块时,在特征数据离开控制器22之后以及在进入ACC 12之前,该特征数据绝不应该是明文形式。从图IOA中可以看出,在向装置发送特征数据时、在向代理20发送特征数据时以及在向ACC 12发送特征数据吋,特征激活服务模块创建日志(分别是控制器日志、装置日志和代理日志)。当在同步操作期间由装置18返回之后,将所有的日志存储在控制器上,并且可以使用该日志来监视和跟踪特征使用。毎次在装置18上使用特征数据时,装置信用递减1,并且各个装置18还维持特征数据产品等级,毎次使用特征数据时,该特征数据产品等级递减I。当控制器22与装置18同步时,对特征数据等级和信用等级进行补充。这两种机制都被用来计量装置18上的特征数据使用。在图IOA中,对产品和特征数据的定义、以及FCT 50的传送和日志报告与在顺序化和密钥注入中使用的机制类似。然而,可以观察到,当利用ACC 12吋,将资产的注入或应用的正常循环分隔为循环对,循环I涉及密钥产生,循环2在循环I内,涉及特征编程。通过提供下面会详细描述的命令cmd[STARTACC]来发起循环I。通过提供命令cmd[ST0PACC]来终止循环。图IOB中更详细地示出了循环。一旦提供cmd[STARTACC],ACC 12就产生公钥,并且在一些时间后,代理20通过发送命令cmd[REQRESP]来请求响应,以获得ACC公钥。代理20继而向装置18提供这些公钥,装置18使用这些密钥来产生共享密钥,例如,使用稍后作为示例的ECMQV协议。装置18现在已打开了与ACC 12的安全连接,并且可以计量和加密特征并记录该事件。然后,向代理20提供装置公钥和加密的特征。代理20然后通过包 括FCT 50的命令cmd[INITIAL FCT | FCT]来发起特征编程循环。然后,ACC 12将特征编程在特征寄存器120中,并且代理使用cmd[REQRESP]来再次请求响应。作为响应,ACC 12提供与特征编程步骤有关的已加密的响应,以及代理20记录该事件。由于建立了安全连接,如上提到的,可以在循环终止之前应用附加的特征编程步骤。因此,可以看出,当实现具有ACC 12的AMS 10时,资产的一般性提供和传送与不要求ACC 12的那些服务类似,同时还要求建立与ACC 12的安全连接所需的附加考虑和命令。可以意识到,还适于在顺序化和密钥注入服务模块中使用这些操作,以利用FCT 50来携帯序列号和密钥。由此,使用由AMS 10提供的公共应用框架,各种实现都是可用的。关于在本文中作为示例的其他服务模块,针对特征激活,AMS 10应该向各个产品指派唯一的产品ID以及由操作者提供的唯一的标识名称。AMS 10可以向各个所定义的特征指派唯一的特征ID以及由操作者提供的唯一的标识名称。各个特征对命令类型进行定义,在本示例中,是32字节的数据值。应该允许将ー个或多个特征绑定到特征激活产品,并 且将各个特征绑定到多个产品。应该能够将特征从产品解除绑定,但仅在产品没有绑定到任何装置18的情况下进行。可以将各个特征激活产品绑定到ー个或多个装置18,并且各个装置18可以具有多个向其指派的特征激活产品。可以实现计量过程,在该过程中,控制器22将在同步操作期间加满装置18上的特征激活产品等级。操作者将定义告警,最小和最大等级,与本文中作为示例的其他服务模块相类似。如果特征激活产品没有绑定到任何装置18,可以在控制器22上对其进行修改/删除,并且如果没有对特征指派任何特征激活产品,可以在控制器22上对其进行修改/删除。如果没有产品绑定到装置18,可以在控制器22上删除该装置18。应该保护特征命令、记录标签和数据在装置18上免受篡改,并且应该支持只读同步模式,以使得在不提供更多FCT50的情况下进行查询以及获得日志。装置18支持使用以下在图51至66中定义的协议,经由代理20向ACC 12传送特征。这包括从控制器22接收特征激活产品、响应来自代理20的对特征激活产品的请求、计量该产品、从代理20接收回日志以及向控制器22发送回日志。装置18针对各个传送的FCT 50对装置信用进行递减,并且当将特征激活产品从装置18解除绑定时,应该从装置18中删除属于该产品的所有特征。代理20可以通过特征激活产品名称来从装置18请求特征;可以使用上述协议与ACC 12进行接合;以及可以将产品中的各个特征分别向ACC 12传送,记录特征,井向装置18返回日志。特征激活特征使用日志应该包括正确地格式化的用于客户日志数据的单字符串字段。AMS ⑶I图11至50示出了图I和图3中示出的⑶I 8的示例屏幕截图。在该示例中,⑶I8是基于web的应用,为AMS 10提供图形界面。如将要解释的,⑶I 8被设计为由AMS操作者作为预期用户,并从而提供连接到AMS控制器22的能力,例如,通过使用用户名和密码来登入。GUI8使得操作者可以通过产品14、服务或者通过制造商来查看状况信息;复核当前的警报,管理和跟踪当前在控制器22上活跃的作业;查看和产生报告;查看关于控制器22的信息和统计数据;管理装置18和执行与装置18相关联的操作;管理系统中的产品14并执行与这些产品14相关联的操作;管理顺序化模式、密钥类型和FCT 50 ;管理使得可以访问控制器22和装置18的用户、密码和角色;访问针对特定应用的在线帮助;以及确定与该应用有关的信息(例如,编译日期、版本等)。
当实现为基于web的系统时,可以通过启动标准的web浏览器并将该浏览器指向适当的URL来访问⑶I 8。如图11中所示,⑶I 8可以包括快速状况视图200,可以将其配置为当用户登出或者控制器22锁定时出现。例如可以将快速状况视图200配置为在以下情况下出现=GUI 8在所登入的用户的部分上不活跃超时后,或者如果用户点击了锁定按钮或者从菜单选择了类似的选项(未示出)。快速状况视图200还使得可以甚至在没有用户登入时进行查看。这样,观察者可以在不必登入的情况下查看状况信息、警报和其他关键消息。例如,当装置18变成离线或者故障时,操作者或者甚至附近的另ー个人可以在不必首先登入的情况下立即意识到该情況。快速状况视图200还起到GUI 8的屏幕保护器的作用,以使得如果预设的时间段过去而GUI 8中没有动作,则显示200快速状况视图并且操作者可能需要再次登入以继续。这保护了 AMS 10免于无意的或者恶意的篡改,同时仍然基于“只读”提供重要的状况信息。快速状况视图200包括顶部202和底部204。在顶部202中,针对AMS 10提供的服务显示服务图标206。各个图标通过颜色(例如,红或蓝)指示是否存在与特定服务相关 联的装置18中任何装置的问题或警报。在底部204,针对⑶I 8中定义的任何产品14显示产品图标208。与顶部202相似,各个图标通过颜色指示在支持特定产品的系统或应用中,是否存在装置18中任何装置的问题或警报。正常操作对问题状态的不同顔色使得操作者可以快速识别问题,井深入该装置18以及应用来确定问题的来源,并且如果需要,采取任何的补救动作。如果需要,底部204可以提供多行(未示出),例如当存在很多产品14吋。在一些实施例中,可以向操作者给出用于定义哪些产品14应该出现在快速状况视图200中的选项。通过点击快速状况视图200上的图标中的任何图标,可以启动用户登入屏幕(未示出)。一旦登入,可以向操作者呈现根据所选择的图标过滤的状况视图。因此,在确定快速状况视图200中的特定服务的问题时,操作者可以点击该服务图标206,并且在登入后,可以将下ー视图过滤到该服务,例如,顺序化。一旦在状况视图中,操作者可以观察哪个(些)装置有警报,并且双击(或者其他输入)可以将操作者带向与装置18有关的信息的更详细的视图,使得其可以确定警报的来源。当登入时,可以向登入屏幕给出与快速状况视图200以及其他屏幕相似的格式,并在字段之间进行区分,可以使用不同的顔色突出显示各个字段,并提供状况栏来指示正在执行什么。如果存在错误登入,可以在该表格的顶部以红色背景来显示非字段专用的消息。一旦操作者已经成功连接并登入到特定的控制器22,主应用210出现,如果用户已经选择了特定的图标206、208,可以对主应用210进行过滤。图12中示出了提供装置视图的ー个示例。为了方便导航,GUI 8提供一致的面板形式以及用干与该应用交互的方法。该示例中的主应用210的主导航和信息区域包括应用菜单栏212、视图面板214、主信息面板216、状况栏218和版本栏220。图12中的应用菜单栏212包括五个菜単,SP,控制器(Controller)菜单、服务(Services)菜单、视图(View)菜单、动作(Actions)菜单以及帮助(Help)菜単。控制器菜单使得操作者可以修改控制器22以及GUI 8的登出。服务菜单包括针对各个服务的项,在本示例中,该各个服务包括顺序化、密钥注入和特征激活。视图菜单使得操作者可以从各种视图中选择,例如状况、警报、作业、报告、控制器、装置、产品、顺序化模式、密钥类型、特征控制票据(ticket)、用户等。动作菜单根据所选择的视图而改变。帮助菜单可以提供对各种帮助资源的访问,例如系统帮助、管理员指南、开发者指南、产品概述、系统概述、用户指南等。
视图面板214提供对⑶I 8中的不同视图的快速访问。这种视图可以包括状况视图、警报视图、作业视图、报告视图、、控制器视图、装置视图、产品视图、顺序化模式视图、密钥类型视图、FCT视图以及用户视图。可以注意到,在本示例中,视图面板214是对使用视图菜单的备选。在可应用的情况下,各个视图项旁边的数字指示了在AMS 10中活跃的相关项的数目(例如,警报视图的警报数目、作业视图的作业数目等)。很多视图还可以显示允许操作者根据所选择的服务来对数据中的项进行快速过滤的服务菜単。例如,如果装置视图是活跃的,并且在服务菜单中选择了顺序化项,则装置视图可以显示顺序化服务活跃的所有装置。当使用服务菜单来进行过滤时,可以禁用并隐藏标准过滤器栏。可以针对信息面板216中的各个项显示附加的服务特定信息,并且当在服务菜单中选择服务时,额外的服务特定动作可以出现。主信息面板216根据所选择的视图来显示与系统中的对象有关的信息。例如,对于作业视图,数据区域中的各个项是系统中的作业。主信息面板216包括若干特征。视图标题栏222显示活跃视图的标题以及(如果当前显示了表格)表格的标题。例如“ ModifyAppliance”的视图标题栏222可以示出'APPLIANCES .MODIFY APPLIANCE”。对于当前屏幕,视图标题栏222还可以包含至上下文敏感的在线帮助的链接。服务栏223向操作者提供与其感兴趣的服务相关的快速训练(hone in)。图12所示示例中的服务栏223在水平的格子中显示图标,并且可以包括以下项所有、顺序化、密钥注入、以及特征激活。选择“所有”移除了所有的过滤器,并在没有过滤的情况下显示活跃视图的結果。对剩余服务中的任意服务的选择将显示根据所选择的服务过滤的活跃视图。例如,使用所选择的服务的装置、涉及所选择的服务的作业等。这样,操作者可以更容易地在由单个控制器22提供的多个服务以及装置之间导航。可以针对数据区域中的各个项显示附加的服务特定的信息,并且当在服务栏中选择服务时,额外的服务特定的动作可以出现。动作栏224在其左侧包含各种具有下拉菜单的按钮,下拉菜单包含针对当前视图有效的任何的附加动作。在动作栏224的右侧是搜索字段。取决于视图,在搜索字段中键入的文本对数据区域226中数据的内容进行过滤。例如,对于装置视图,用户可以通过装置名称、制造商、位置或产品来进行搜索。取决于数据区域中所选择的项或者是否存在任何所选择的东西,动作栏224中的动作可以是有效的或者是无效的。如果动作是无效的,其可以变灰。总的来说,针对各个视图的动作列表一致是且动作变得有效或者无效是有利的。数据区域226呈现对于视图适当的信息,如果需要,进行过滤。在该示例中,各个视图可以支持多达三个缩放等级,以使得当需要寻找故障或者识别各种设置时,用户可以方便地深入到进ー步的细节。缩放级别可以是每页ー项、每三行ー项以及每行ー项。这些缩放等级的简写是1行、3行、以及详细。动作栏224中的下拉菜单225允许操作者选择缩放等级。分页栏228使得操作者可以在有太多项要放在一页上时,将很多项分页。如果缩放等级是“详细”,可以是每个项ー页。可以将分页栏228配置为当需要时自动出现。如果要显示的信息适合单页,则分页栏228不需要出现。在分页栏228的左侧是对数据区域226中呈现的信息的文本描述,具有选择每页显示项数以及应该如何对其排序的下拉菜単。例如,“按服务来查看10个项”,其中,项数和排序字段是下拉菜単。还存在按钮来在上升排序和下降排序之间进行切換。在分页栏228的右侧是分页小工具230,其可以包括描述显示哪些项的文本(例如,“46个报告中的11-20”);去往第一页的按钮;去往之前页的按钮;文本“YY页之XX”,其中XX是允许用户直接去往特定页面的文本字段,YY是总的页数;去往下ー页的按钮;以及去往最后ー页的按钮。状况栏218位于窗ロ的底部,并显示关于控制器22的基本信息,以例如指示进行了连接以及与哪个操作者连接。如所有视图所示的,可以包括锁定和刷新按钮。为了吸引操作者的注意,如图13所示,可以修改数据区226以包括警报栏232,在所示示例中,警报栏232指示所选择的产品(数据区域226中示出的)在被称为“TestApp” 的特定装置18上具有低的库存。可以向警报栏232给出独特并且加粗的顔色,例如红色,与其他警报一致,以将注意力立即吸引到该警报。在该示例中,警报栏232在数据区域226的宽度上延伸,并包括涉及紧急情况的图标,以进一歩像这样识别该警报。如图14所示,可以使用主应用210来运行主状况视图234,其以3种方式显示装置18 :按产品分组,按制造商分组或者按位置分组。如果通过点击产品图标208之ー来从快速状态屏幕200访问该视图,如果按产品14来过滤该视图,或者如果选择“按产品(ByProduct)”动作,那么将按产品来对装置分组。否则,按制造商对装置18分组。图14中示出的屏幕截图按产品示出了视图。如果如图14所示,显示按产品分组的装置18,显示各个产品,示出与该产品相关联的各个装置18。如果显示按制造商分组的装置18,则显示各个制造商,示出与该制造商相关联的各个装置18。如果显示按位置分组的装置18,则显示各个位置,示出与该位置相关联的各个装置18。装置图标236包括服务指示器237,该服务指示器237指示哪个服务在特定的装置上是活跃的,并提供对装置18当前有任何活跃的警报(通过将图标上色为红色)或者装置18在正确地操作(通过将图标上色为蓝色)的指示。服务指示器237可以利用颜色编码方案来指示各种状态。例如,橙色图标可以指示该装置18上的服务在资产上很低,红色图标可以指示该服务有问题,暗淡的或者“变灰”的图标可以指示没有将该服务指派给装置18,以及可以使用緑色图标来指示没有问题。在本示例中,状况视图234使用単一的缩放等级。视图动作(或者双击特定的装置)将操作者带到装置视图的每页ー项的缩放等级,同时显示所选择的装置18。与主状况视图234相关联的动作是查看(View)、按产品(Byproduct)、按制造商(By manufacturer)、以及按位置(By location)。操作者可以访问图15中示出的警报视图238,以检查AMS 10中存在的任何警报。图15中示出的缩放等级是I行缩放等级。在警报视图238中,操作者可以查看告警,ping被影响到的装置18,同步被影响到的装置18,以及移除警报。可以将控制器22配置为在若干不同的环境下发布警报,例如当控制器22不能够联系到装置18时,如果当控制器22向应用发送数据时(或者反之)存在任何错误,当同步操作失败时,当装置18的资产的数目到达资产告警等级时,当装置18上的空闲磁盘空间到达告警等级时,当控制器22 (或者任何的装置18)上的HSM 19对自身进行去激活时,或者当装置18阻挡了来自代理20的连接时(因为代理IP地址不在装置18所管理的列表中)。如果发布了警报,被影响到的装置18出现在数据区域226中的警报视图238中。警报视图238提供对警报的描述、识别发布警报所针对的服务,并提供发布警报的时间。对警报的正确响应取决于警报的原因。
操作者可以访问图16至18中示出的作业视图240,以执行与AMSlO中的作业相关联的各种动作,例如取消进行中的作业和移除完成的作业。该示例中的作业视图240支持图16中示出的3行缩放模式240a、图17中示出的I行缩放模式240b以及图18中示出的详细缩放模式240c。详细缩放模式240c所给出的每个作业的完整信息集合是名称、作业ID、系统(装置18或控制器22)、作业类型、作业状况、开始时间、结束时间或者估计结束时间(如果可用)、持续时间以及进度。在各个缩放模式240a-c中提供进度栏242,以提供对作业的状况的图形概述。在作业视图240内,操作者可以暂停作业、在缩放模式之间缩放、恢复作业、取消作业、查看作业日志、移除作业、示出完成的作业以及移除完成的作业操作者可以访问图19中示出的报告视图244,以产生AMS 10所支持的报告。图19示出了针对报告视图244的I行缩放模式。报告视图244提供报告的服务图标和名称。还可以通过在服务栏223上选择服务来过滤报告视图244,以将报告的列表限制到特定的服务。产生报告动作显不了图20中不出的产生报告表格246,用于操作者输入产生报告所需的信息。一旦操作者已经完成表格246,可以在查看报告屏幕248中如图21所示地查看报告。在本示例中,查看报告屏幕248还使得操作者可以下载PDF或CSV格式。可以产生各种报告类型,例如按产品或者按模式(用于顺序化),控制器22发布的资产的总数;针对特定的范围,按天发布的资产数;按装置18的资产数(总的,按天的等);代理接收到的资产数(总的,按天的等);丢失的日志数,复制的日志数,按资产ID或编号的日志数,针对所指定的产品/数据范围的日志数;等等。图22中示出的控制器视图250在数据区域226中提供了操作者所连接到的控制器22的细节。在本示例中,控制器视图250提供以下信息控制器名称、控制器正在提供的服务、控制器22的IP地址、控制器22的端ロ、SMTP IP地址、SMTP端ロ、SMTP域、“From”地址、“TO”地址、磁盘健康度、控制器HSM状況、HSM软件版本、控制器软件版本、系统10中的警报数、系统10中活跃的作业数、作业删除时间、系统检查间隔、控制器的磁盘空间以及在控制器22上可用的存储器。在控制器视图250中,操作者可以修改控制器22,测试电子邮件,以及登出。为了修改控制器22,选择控制器视图250中的修改按钮,启动图23中示出的修改控制器表格252。从图23可以意识到,修改控制器表格252使得操作者可以对控制器22的设置和细节作出改变,并应用这些设置。操作者可以访问图24至26中示出的装置视图254,以执行与装置18相关联的各种动作,例如添加、修改、移除和同步装置18。装置视图254可以支持详细的、3行和I行缩放模式。图24示出了“所有服务”模式下的装置视图。在“所有服务”模式下,各个装置18显示关于服务中的一个服务的服务特定信息。如果在装置18上仅有ー个服务活跃,则显示该服务。如果有ー个以上的服务活跃,则可以根据限定的优先级顺序来选择显示的服务。如果在服务栏223中选择服务,则在装置视图254中针对所有装置18显示该服务。图24中示出了 3行模式254a,图25中示出了 I行模式254b,以及图26中示出了详细模式254c。从图26中可以看出,在本示例中每个装置18的可用信息包括装置名称、装置18提供的服务、制造商、位置、IP地址和端ロ、状况(例如,在线、离线、不活跃、未提供)、HSM软件版本、可用磁盘空间、可用存储器、可用信用、信用的最小量、信用的最大量、信用告警等级、装置软件版本、警报的数目、作业的数目、连接重试的数目、连接超时周期、自动同步间隔、只读同步、资产块大小、上一次更新、可允许代理IP子网的列表、与控制器22的上一次通信的日期/时间、与各个代理20的上一次通信的日期/时间、以及服务特定的信息(例如,序列号、密钥、FCT 50)。可以通过如图24和25中所示出的特定缩放等级来显示这些细节中的特定细节。在装置视图254中,操作者可以在缩放模式之间执行缩放、ping装置18、同步装置18、添加装置18、修改装置18、移除装置18、激活装置18以及去激活装置18。如图27所示,ping装置动作启动ping屏幕256,其使得操作者可以在安全通道上Ping所选择的装置18,以确保其活着并确定其网络延迟。使用ping动作来测试特定的主机(装置18)在IP网络上是否可达以及测试SSL连接,对正在使用的计算机的网络接ロ卡(NIC)进行自测或者作为速度测试。ping可以估计往返时间(一般以毫秒计),记录分组丢失并当完成时打印统计数据摘要。图28所示,同步装置动作启动同步屏幕258,并使得操作者可以确保加满任何服务相关的对象(例如,如序列号、密钥、FCT 50等的资产),推动任何装置配置改变,并从装置18取回服务日志。同步动作确保任何服务相关对象或资产(例如,序列号、密钥、FCT 50)可以在其最大量处。同步动作还将装置的时钟与控制器的时钟同步,并从装置18取回服务日志。此外,对装置18做出的任何配置改变可以在对装置18进行同步后起效。还可以执行只读同步,只读同步将收集装置18的状况和资产信息,以看其是否在同步中,但是不进行任何改变。还可以使用同步从装置18获得服务日志。如图29所示,修改装置动作启动修改装置屏幕260。修改装置屏幕260使得操作者可以编辑装置18的细节。没有在图29中示出的是使得操作者可以为向装置18给出的信用设置阈值的最小信用、最大信用以及信用告警字段,以及何时发布低等级告警。控制器22和装置18应该规律地自动进行同歩,以及当装置18同步时,控制器22进行检查,以查看装置18上有多少资产。如果资产的数目等于或者低于最小值,则控制器22将装置的资产填到最大等级。如果资产的数目等于或者低于告警等级,则控制器22可以发布警报。当首次将装置18添加到控制器22时,其是以不活跃状况添加的(參见以上描述的图4B)。激活装置动作将所选择的装置18带上线(如果需要,自动发起提供)。如果将装置18带下线就停止相关的生产线,则去激活装置动作将使用适当的告警来将所选择的装置18带下线。图30示出了去激活装置屏幕262,去激活装置屏幕262示出了在使操作者确认该选择之前,要去激活所选择的装置。移除装置动作仅在所选择的装置没有在线的情况下可用,否则应该禁用该动作。图31示出了移除装置屏幕264,其与去激活装置屏幕262的相似之处在于由操作者确认选择之前,示出所选择的装置18。可以注意到,当被去激活时,装置18应该例如如上例示地通过将颜色改变为红色来对此进行指示,以向操作者提供与装置18的状况有关的进一步视觉提不。⑶I 8中的产品是对ー个或多个资产类型的已命名分组,其向AMSlO提供产品的名称、产品的标识符、资产列表(取决于服务,例如顺序化模式、密钥类型或者FCT 50)、资产应该应用于的装置的列表以及产品所提供的服务。在图32至34中示出的产品视图266中,操作者可以在AMS 10中管理产品并执行与产品相关联的各种动作,例如添加、修改或者移除产品。在图32中以3行缩放模式266a示出产品视图266,在图33中以I行缩放模式266b示出产品视图266,以及在图34中以详细缩放模式266c示出产品视图266。在图 34中可以看出,产品视图266可以包括与产品有关的各种信息,例如产品名称、服务、ID、可用资产(显示为计量表(meter),以详细缩放等级266c来对各个计量表进行单独显示)、资产列表(模式、密钥类型或者FCT 50)、装置18的列表、以及针对顺序化和密钥注入的注入方法(ACC或正常)、ACC记录字段和ACC偏移字段。在产品视图266中,操作者可以在缩放模式之间执行缩放,添加产品、修改产品以及移除产品。图35中示出了添加产品表格268,该添加产品表格268是针对顺序化进行例示的。对于密钥注入,可以将顺序化模式列表替换为密钥类型列表,而对于特征控制,可以将顺序化模式替换为FCT列表。AMS 10中的顺序化模式是对与如何产生序列号有关的规则进行定义的对象。例如,序列号数字是以十六进制还是十进制的形式呈现,以及是否包括固定的字符串。图36至38中示出了序列模式视图270。在这些视图中,操作者可以在AMS 10中管理顺序化模式并执行与模式相关联的各种动作,例如添加、修改或者移除模式。图36中示出了 3行缩放模式270a,图37中示出了 I行缩放模式270b,图38中示出了详细缩放模式270c。如在图38中最好地看出的,在本示例中对序列模式进行定义的信息包括模式名称、模式ID、总池中剰余的序列号(还未向装置18发送的)、开始值、要产生的序列号的总数目、是使用以 10为底还是使用以16为底、序列号中的字符总数(以进行填充或截断)、要包括的静态字符串和在序列号中的位置的列表、以及说明模式的样本。在顺序化模式视图270中,操作者可以在缩放模式之间执行缩放,添加模式,修改模式,移除模式,以及复制模式(修改当前选择但是以新的名称来保存)。为了添加/修改/复制顺序化模式,如图39中所示地启动添加/修改/复制模式表格272。AMS 10中的密钥类型是对与应该针对特定的产品注入何种类型的加密密钥有关的规则进行定义的对象。图40至42中示出了密钥类型视图274。在密钥类型视图274中,操作者可以在AMS 10中管理密钥类型并执行与密钥类型相关联的各种动作,例如添加、修改或者移除密钥类型。图40中示出了 3行缩放模式274a,图41中示出了 I行缩放模式274b,图42中示出了详细缩放模式274c。如图42中最好地示出的,密钥类型视图274可以提供的信息可以包括密钥类型名称、ID、从上次导入起可用的密钥、密钥长度、密钥标识符长度和偏移、密钥数据长度和偏移、文件报头长度、散列输出(长度和偏移)、散列算法以及散列输入。还示出了密钥类型图276,其提供对密钥的结构进行描述的画面,并且在改变參数时进行更新,以示出结构改变的方式。在密钥类型视图274中,操作者可以缩放、导入密钥、添加密钥类型、修改密钥类型、移除密钥类型以及复制密钥类型(修改当前选择,但是以新的名称来保存)。图43中示出了添加/修改/复制密钥类型表格278,可以看出,该表格278与详细缩放模式274c类似,除了使得可以对參数进行编辑之外。AMS 10中的FCT 50是对可以针对特定的产品指定的特定特征或多个特征进行定义的对象。FCT 50包括被称为特征寄存器282的比特阵列。可以将特定比特在特征寄存器282中的状态映射到设备14的特征,控制这些特征是活跃的还是被禁止的。FCT视图280在图44至46中示出,并在通过在对应的表元(cell)中填入不同的顔色来将活跃特征与未激活特征区分开的情况下,对特征寄存器282的视觉描述进行示出。图44中示出了 3行缩放模式280a,图45中示出了 I行缩放模式280b,图46中示出了详细缩放模式280c。在FCT视图280中,操作者可以管理FCT 50,并在AMS 10中执行与FCT 50相关联的各种动作,例如添加、修改或者移除票据。如图46中最好地示出的,在针对特定的FCT 50的FCT视图280中提供的信息可以包括FCT名称、ID、特征包含值、所实现的命令、标签(对在ACC 12上编程的特征或者特征的集合进行指示的记录标签)、以及注入的总数。在FCT视图280中,操作者可以在缩放模式之间导航,添加FCT 50,修改FCT 50,移除FCT 50以及复制FCT 50。管理者可以访问图47中示出的用户视图284,以执行与系统中的用户相关联的各种动作,例如添加用户、移除用户以及改变用户的密码。在本示例中,用户视图284是I行缩放等级。在图47中可以看出,用户视图284列出了如下的信息用户名、控制器许可、装置许可、用户许可、顺序化许可、密钥注入许可、特征控制许可以及上次的登入时间。各种许可对用户可以执行的操作进行了规定,例如,添加或移除装置,产生顺序化模式等。在用户视图284中,管理者可以添加用户、复制用户、修改用户、改变密码以及移除用户。添加用户表格286在图48中示出,并使得AMS 10可以根据所定义的用户角色,向其用户派定安全许可。这样,管理者可以定义用户角色,以允许或者拒绝对系统的特定部分的不同等级的访问。通过使用不同的许可创建若干用户,可以在⑶I 8内划分职责,以允许更加有效地操作GUI 8。例如,可以如下建立三个用户角色安全官员(S0)、管理者(AD)以及操作者 (OP)。针对各个用户角色,可以根据以上来设置各种许可,例如,仅查看,查看并保存,查看并操作,完全访问等。图49示出了具有错误栏288的添加用户表格286,错误栏288以红色示出,以吸引管理者的注意。图50使用字段特定的指示器栏290来对类似的错误进行示出,以突出显示错误的原因,在本示例中,由于在密码与确认密码字段之间缺乏一致性而出错。可以启动其他表格(未示出),以改变用户的密码和移除用户。还可以向⑶I 8提供在线帮助服务,⑶I 8可以包括链接到AMS在线帮助指南的菜单项或帮助图标或者都有(例如,如图11至50中所示出的),例如,具有HTML格式以使得可以被web浏览器所支持。菜单项可以将用户引导到标题页(目录),帮助按钮可以将用户引导到根据数据区域226中的当前视图确定的帮助文章(即,对上下文敏感的帮助)。资产控制核心现在转向图51,现在示出被配置为提供特征激活服务模块的AMSlO的实施例的进一歩细节。在图51中示出的示例中,系统10被配置为提供嵌入在电子设备14中的ACC12,与该ACC 12通信,向该ACC 12提供数据,从该ACC 12收集数据以及激活该ACC 12中的特征。如上讨论的,将设备14以及继而ACC 12连接到在加工/制造/装配过程中使用的测试器16。测试器16使用代理20,代理20是在测试器16上运行的软件模块。测试器16继而连接到装置18,装置18包括保护敏感性数据并在装置18内提供安全区域的HSM 19。如图I中示出的,代理20利用HSM 19和ACC 12之间的安全通信通道29对其间的通信进行加密保护。在通道29上,可以从装置18向ACC 12发送FCT 50。可以将装置18连接到后端基础设施11,后端基础设施11可以提供认证授权(CA)、数据库和用于控制ー个或多个装置18的控制器22,下面将对其进行详细解释。除了正连接到测试器16之外,ACC 12还可以在同时或者在稍后一些的时候(或者在处理期间的其它时间)在广域网(WAN) 24上连接到用户界面(UI)或者设备编程器26。如图所示,设备编程器26还可以经由WAN 24连接到ACC 12。设备编程器26和/或WAN24可以使用任何适合的连接连接到设备14和ACC 12,例如,串联、并联、有线、无线、红外、RFID等。在本示例中,ACC 12通过标准测试协议/连接28连接到测试器16,例如JTAG(联合测试动作组)IEEE-1149测试接ロ。取决于测试器16和装置18的相对位置,测试器16和装置18在适当的连接30上相连。在下面提供的示例中,装置18位干与测试器相同的物理设施中,并因此连接30可以是局域网(LAN)。如将要示出的,ACC 12可以包括各种类型的存储器,在图51中以标号34对其一般性并且总体示出。ACC 12使用一部分存储器来存储(持久性地或者暂时性地)各种密钥和证书。图51示出了在以下示例中使用的各种密钥和证书。在图51中示出了静态私钥dsi、静态公钥Qsi (也称为ACC的MD)、短时的私钥dei、短时的公钥Qei、CA的证书CERT[CA]、以及装置j的证书CERT[APPj]。在一个实施例中,将静态密钥存储在非易失性存储器(NVM)中,虽然可以将其掩模编程(mask program)到ROM存储器中。在另ー实施例中,不需要NVM,并且可以将密钥离线存储在硬盘上或者闪存上或者ACC 12外部的其他一些非易失性的批量数据存储介质中。在图52中可以看出,ACC 12是嵌入到目标系统级芯片(SoC)中的小的硬件核心,其在硅管芯上建立基于硬件的信任点(point of trust) 0可以将ACC 12视为消费设备14上的信任的根,因为其包括向敏感数据提供物理保护的防篡改特征以及提供远程证明和检验的方法。如下将要更详细地解释的,ACC 12能够产生针对ー个集成电路(IC)40的唯一的标识符(UID),并通过与装置18的安全和已认证的通信通道29參与到IC 40的跟踪和提供中。在图52中示出的示例中,将IC 40安装在印刷电路板(PCB)44上,然后可以将PCB 44装配到消费设备14中。虽然像这样进行了嵌入,ACC 12还可以继续担当PCB 44和/或最终的设备14上的信任的根。IC 40还可以包括分离的微控制单元(MCU) 42,可以使用微控制単元(MCU) 42通过经由通信接ロ 48将连接32连接到IC 40来建立与非测试器(例如,设备编程器26)的连接,针对适当的协议对通信接ロ 48进行配置,这是本领域公知的。将意识到,如图52中示出的,还可以使用通过PCB 44至WAN 24的直接连接来将通信接ロ 48集成到IC 40中。图52所示的外部MCU 42的角色将是通过以下步骤来方便在网络(例如,WAN 24)上在装置和ACC 12之间的FCT 50的通信通过通信接ロ 48接收FCT 50命令消息,并将联网数据(在这种情况下,可能是字节流)重新格式化为可以通过ACC 12并行接ロ 66 (同样參见图53)在其(MCU的)存储器映射接口上传递的由ACC 12进行处理的格式。相对地,ACC 12可以在其并行接ロ 66上向外部MCU 42返回响应消息,让MCU 42解释为字节流,并在通信接ロ48上发送回装置18。ACC 12可以连接到代理20,并从而经由测试接ロ 72(例如,JTAG)连接到装置18 (同样參见图53),装置18继而对连接28进行桥接。装置18是使用来对提供数据或者去柱/来自ー个或多个代理20的响应进行高速缓存、分发和搜集的安全模块。例如,当ACC 12变为在线,装置18可以跟踪其使用ACC的唯一的ID(UID)连接到的部分。然后,装置18和ACC 12可以进行到交换密钥信息和打开抗篡改通信通道29,这使得可以通过以下方式来传递数据ACC 12可以确定其正在与已授权的装置18通话,并且可以向装置18确保仅有ー个唯一的ACC 12可以对其已经发送的消息进行解密和响应。最終,可以向ACC 12发布FCT50,且ACC 12可以提供FCT响应,FCT响应包含提供命令、安全数据、密钥信息、顺序化信息以及装置18希望向ACC 12或者通常设 备14提供、推送、上载、注入或者收集的其他任何数据。可以将代理20视为对装置18和ACC 12之间的较低层的数据传输进行管理的一些软件。各个代理20耦合到测试器16或设备编程器26,并负责在装置18和代理20之间透明地传递数据。代理20包括传输层API,使用传输层API,可以使用装置18来分布命令和接收去往/来自ACC 12的响应。将要意识到,除非指定,否则优选地在HSM 19内执行装置18所执行的安全操作。取决于应用,可以通过标准的JTAP IEEE 1149测试端ロ(例如,测试接ロ 46和连接28)或者另ー编程接ロ将测试器16或者设备编程器26物理连接到芯片。在任一配置中,使用代理20来将传输层和物理层桥接。还可以将代理20视为不安全的,并且在本文描述的示例中,代理20不执行除了简单提供消息高速缓存机制并在装置18和ACC 12之间传递消息之外的任何加密功能。当然,如果想要,也可以为代理20装备上加密能力,该加密能力的改变度取决于应用的要求。后端基础设施11是指被用来在制造商和其客户/最終用户之间进行接合的整个 后端基础设施的概括性术语。在概念上,可以将曾经由系统10处理的每个设备和所有的编程记录保持在后端数据库中,制造商可以使用该数据库来查询各个制造部件的历史。该基础设施可以包括CA、数据库引擎、ERP应用和子模块、特征控制服务器(FCS)以及如果需要,电子商务前端服务器。系统10还可以包括连接器逻辑,以将其连接到ERP或者电子商务前端服务器。典型的系统环境可以具有后端服务器,后端服务器位于在客户的制造地点经由互联网上的安全协议与装置18通话的中心位置,该安全协议是例如加密套接字协议层(SSL)、传输层安全(TLS)或者第2层安全(MACSec)。图53示出了关于ACC 12的更多细节。图53中的黒色的外边界表示安全边界,以使得可以假定在该边界内执行的任何操作都是可信的。ACC 12—般是相对小的硬件核心,在只读存储器(R0M)52中存储了可定制的固件。在图53中示出的示例中,ACC 12还包含小型微控制器54、椭圆曲线加密(ECC)算术単元56、基于硬件的随机数产生器(RNG) 58、数据读/写存储器(RAM) 60和非易失性存储器(NVM) 62。ACC 12具有參与到Menezes-Qu-Vanstone(ECMQV)协议的椭圆曲线实现、椭圆曲线数字签名算法(ECDSA)以及使用基于高级加密标准(AES)的算法的消息加密和认证中的能力。如上提到的,将ACC 12设计为与连接到测试器16或者类似于设备编程器26的东西的装置18通信。为了保护该通信通道29,ACC 12可以使用非対称加密方案用于密钥交换,以及可以使用对称密钥加密,以在其与装置18之间传递消息。对于非对称加密,基于隐秘的私钥(例如,dsi)产生公钥(例如,Qsi)。以安全、高度抗篡改的设置来保护私钥是很重要的。通过能够内部地并且自动地产生唯一的私钥,以硬件和固件的组合来保护私钥免于曝光,嵌入式ACC 12能够满足该要求。对于特定的设备14,私钥在统计意义上是唯一的,并与该设备14持久地关联。将私钥保持隐秘,反之将公钥共享。对于ACC 12,如上讨论的,可以将公钥或者该公钥的ー些数字推导视为IC的唯一的设备ID(UID)。由于私钥与公钥具有一対一的映射,对于特定的设备14,UID也是统计意义上唯一的,并且与该设备14持久性关联(当该公钥是从静态私钥推导出的吋)。该IC识别技术以及通过提供下面描述的协议所提供的机密性和认证,向芯片或设备供货商给出了以下能力将每个可信的部件注册到数据库中,制定強制措施以检测和防止设备14的生产和分发中的不适当行为,例如克隆和对过量生产的部件的重新销售。可以将WD使用为安全协议的一部分,以通过相互的密钥协定在装置18和ACC 12之间建立隐秘。在密钥协定期间,在双方之间交换公钥,姆一方独立于另一方产生共享密钥,仅使用公开交换的公钥以及他/她自己保持隐秘的私钥。密钥协定的结果是双方达成仅在其双方之间共享的隐秘,而任何试图偷听的第三方不能完成该协定,除非其具有私钥的拷贝。装置18和ACC 12还可以參与到ECMQV密钥协定方案中,该方案产生仅为涉及到的双方所知的密钥。所产生的共享隐秘(例如,kij)是对称密钥加密的基础和先决条件,亦即,使用其来建立双方之间的高度抗篡改的已加密和已认证的通信通道29。一旦双方协定对称密钥,装置18可以通过安全和已认证的方式开始向ACC 12发布以及从ACC 12接收签名的机密消息(也称为FCT 50) 0 FCT 50命令是包含以下内容的消息特征提供、对受保护的NVM 62存储器区域的读/写访问、或者要以受控的安全和可跟踪方式向ACC 12提供的任何其他命令或消息。FCT 50响应是包含以下内容的消息状况、审计数据、或者要向装置18提供以建立、維持或遵守安全提供协议的其他任何命令或消息。可以使用特权来在测试和制造时间对特征进行正向启用,或者在售后市场中在重新连接到服务器或设备编程器26时对特征进行启用。可以使用特权的缺少来反向地对嫌疑设备中的未授权特征进行禁用,不管其是克隆、伪造品还是被盗的设备。通过各种加密技术的组合,可以获得完全的安全特征提供,其示例如下。每个ACC 12可以具有存储在其ROM 25或NVM 62中的根CA公钥。然后,各个装置j可以具有其自身的由根CA(未示出)所产生的唯一的证书CERT [APP J。证书可以相对小,并且对证书字段进行比特映射以易于解析。作为协议的一部分,装置18通过向ACC 12发送证书将其自身向ACC 12进行认证(下面将更详细地进行讨论)。ACC 12使用CA根证书对装置18的身份进行验证。各个装置18可以具有向其指派的客户ID(CID),CID是与证书一起发送的。证书中的CID应该与ACC 12中存储的CID之一相匹配,以确保特定的装置18属于特定设备14的正确的所有者/生产者,并被授权与所嵌入的ACC 12通信。ACC 12上的多个CID允许向分层(tiered)制造过程上的不同供货商提供其所有拥有的特征。例如,专用集成电路(ASIC)供货商可以为特定的原始设备制造商(OEM)配置SoC,然后,该原始设备制造商配置设备以将特定的设备销售商或者服务提供商作为目标,并在最后,可以允许最終客户基于他/她的服务计划来激活配置的又一子集。根据參与的供货商的安全身份数据(CID),可以使得ACC 12将访问控制强加到第三方供货商所拥有的特征。SoC的原始拥有者可以潜在地载入CID/特征集合配置表,作为其提供的一部分。在本实施例中,对从装置18至ACC 12的各个FCT 50进行加密、完整性保护、认证和保护免受重放和欺骗。可以将各个FCT 50锁(keyed)到特定ACC 12的WD,并且在使用设备的私钥对FCT 50成功解锁后,仅在每个设备的基础上授予特征特权(featureprivilege)。从而,试图截获被锁定到另ーUID的FCT 50的欺骗设备将不能解密该FCT 50。还可以向各个FCT 50提供与其相关联的序列号,以使得仅可以使用FCT 50—次,以防止其被拷贝或者被重放。可以由发布各个FCT 50的装置18对该各个FCT 50签名,以使得FCT50不能以不可检测到的方式改变。可以将从ACC 12回到装置18的响应配置为具有序列号和消息认证码(MAC)以使、得甚至不能改变或者重放该响应。由于将FCT 50与特定的UID相联系,装置18可以保持审计日志,该审计日志示出了在何处编程特定的WD,以及将特定的UID编程为什么。可以通过后端11将审计日志报告回SoC制造商/供货商。如果在这些日志文件的复查中检测到相同UID的多个实例,这将是对芯片已经被克隆或者被伪造的指示。ECMQV的使用提供了将特定的装置18链接到特定的ACC 12的加密隧道29。没有其他方可以參与到该协议或者在已加密的编程会话期间发送的解密命令中。特别地,可以选择ECMQV来作为创建通道29的技木,因为已知其更不容易遭受中间人攻击,这是所示环境中的可信的威胁。可以通过各种方式来对ACC 12和装置18进行配置,以适于特定的环境。以下讨论启用这种可配置性的各种特征。ACC 12应该利用非常小的总的硅区域,并且应该支持WD的片上产生(自包含于ACC 12中),以及ECC公-私密钥对的片上产生和存储。ACC 12的扫描链测试的启用/禁用应该在ACC ECC密钥对产生之前可用,以防止私钥暴露。应该提 供对从装置18至ACC 12的命令的认证/完整性保护,并且对于特定的ACC 12,关键安全(security-critical)命令应该是唯一的。装置18和ACC 12之间的FCT 50应该为了机密性而加密,并且经由向ACC 12提供的FCT 50来启用和禁用特征。ACC 12可以起到协议强制执行器的功能如果接收到的命令是无效的,ACC 12可以拒绝该命令,并且如果尝试了无效命令的阈值,可选地进行关闭。还应该有确保一旦ACC12锁定(如在当设备永久退休时的情况下,或者如果系统12检测到已经对设备进行了篡改),就不能重新启用ACC 12的能力。当没有在使用中吋,ACC 12应该能够降低功率到非常低的电流消耗,并且ACC 12操作不应该依赖于外部(核心外)的固件或者外部CPU来执行其基本功能。代理20和/或任何适合的接ロ(例如,46、48)可以提供灵活性来允许客户将其定制编程接ロ添加到ACC 12,这最终允许客户使用各种设备编程器26 (例如,USB端ロ、I2C串行接ロ、以太网等)与ACC 12通信。类似地,如果其能够开启与可信装置29的安全通信通道29,ACC 12编程应该能够发生在多个位置,在多个时间。这样,可以推迟编程,直到制造周期中花费最小的阶段。可以使用装置18和ACC 12来安全地编程和存储附加的信息,例如,唯一的设备标识号(例如,移动电话的IMEI/EIN)。硬件细节现在将要提供在图53中示出的硬件实现的进ー步细节。本示例中的ACC硬件包括微控制器54、访问暂存(scratch)数据随机存取存储器60和NVM 62的存储器总线控制器64、以及若干存储器映射的外设,该外设包括算术单元56 (被配置为用于EC操作)、通过外设控制器59可访问的RNG 58、以及虽然未示出,但可选的AES和SHA核心(如果面积/性能折衷是可行的)。此外,ACC 12可以具有可选的通用并行总线接ロ 66和外部接入NVM接ロ 68来为SoC设计者添加灵活性。在ACC 12的中心处是微控制器54,其在ACC 12完成的所有任务中扮演着必不可少的部分,包括认证和执行提供命令以及强制执行提供;执行高等级的安全协议;在排序低等级硬件加密加速器功能中进行协助;执行管理任务,例如初始化、配置、功率管理;以及在晶片测试期间的维护内建自测(maintenance built in self test, MBIST)和RNGBIST中进行协助。首要地,应该针对其尺寸来选择微处理器,然后增强微处理器以满足被认为是必需的速度性能。现场算术单元56提供对低等级加密计算的硬件加速。特别地,应该将现场算术单元56配置为高效地执行ニ进制场乘法。可以将现场算术単元56视为ACC 12的重要部分,因为其使得可以相对快地完成EC点乘。现场算术单元56可以用于加速ECDSA和ECMQV公钥协议,这两个协议分别用于提供认证和相互认证。下面将解释这些协议的细节。硬件和固件一般在面积、代码存储器、复杂度和性能度量方面进行折衷。一般地,基于对将在硬件中实现什么的判决主要是门数目,并且是性能驱动的。ACC 12的性能在测试器时间方面具有已测量到的直接成本暗示,并且等效的门数目驱动通过硅区域所測量到的实现的成本。在软件调节器(未示出)的帮助下,可以使用RNG 58来产生统计意义上的随机数,该统计意义上的随机数被用来作为加密密钥和WD。在椭圆曲线公钥加密方案中,使用随机数来作为私钥,并且当使用椭圆曲线标量点乘来将其与之前协定的曲线參数的产生点 相乘时,乘积可以是公钥。当ACC 12产生其静态私钥对时,可以使用RNG 58,在该ACC 12的整个生命中,该统计私钥对是静态的。此外,针对ACC 12和装置18之间的每个安全会话,创建新的短时的密钥。不管何时ACC要求产生新的静态或者短时的密钥,都要求RNG 58提供要作为产生静态或者短时的私钥的种子使用的随机比特流。随机比特流馈入到AES分组密码中,以调节RNG产生的原始熵,产生被用作静态私钥的均匀分布的随机数。在一些实施例中,在馈入到AES分组密码之前,可以将随机比特流馈入到基于软件的线性反馈移位寄存器(LFSR)中,以调节RNG数据。作为可测性设计(DFT)测试的一部分,应该要求ACC 12执行RNG 58的健康检查。该示例中的ACC 12可以具有16比特地址(范围从OOOOh-FFFFh)字节可寻址存储器空间。下面的表2列出了在本实施例中可以将存储器空间如何划分成不同的区域。
I所分配的开始地址丨结束地址丨字节数I名称丨描述_
0x0000IOxOFFF I4K IXRAMI承用擦除数据随机存取存储器
0x1000 IOxIFFF [4K ]-\]呆留
0x2000 T0x21FF 1512 [nVPRIV Iを VM 的私有空间 0x2200 0x23FF 512 NVPROT NVM 的受保护的空间0x2400 JOx2FFF I3K [NVSHARE I^VM的共享空间
0x3000 IOx3FFF [4K ]ACCREG I=ACC寄存器
0x4000
可以将ACC 12配置为具有至NVM存储单元62(例如,0TP、MTP、EPR0M、闪存等)的通用接ロ。NVM 62取决于IC技术,因此,这种NVM 62的NVM接ロ 70很有可能根据特定的应用而定义。NVM接ロ 70提供抽象,并且应该具有以安全的方式写、重写和擦除WD的能力,这可以轻易地适于专有NVM接ロ协议。特定类型的NVM 62是一次性可编程(OTP)的;这意味着一旦将其“烧入”,就不可能对其进行擦除或者重写到存储器位置中。如果使用了OTP存储器,则需要固件来确定其保持跟踪哪些存储器位置已经被写入,并维持用于发现最新的数据内容以及何处有可用的空间的机制。在本实施例中,有三个不同的NVM许可等级,各个许可等级具有加诸其上的不同限制。首先,私有空间许可等级,其中,保留NVM 62来专用于ACC的使用。ACC 12可以读并且可以写,但是其他代理被禁止访问该区域。存储在该区域中的数据可以包括隐秘的静态密钥、WD以及ACC 12的非易失性状态。其次,受保护的公共空间许可等级,其中,外部代理可以仅使用FCT 50和具有下面将要描述的具有认证的安全消息协议,将数据写入到该区域中。使用RDACCESS类型的FCT 50,该区域从JTAG端ロ 72是可读的。使用正常存储器访问以及使用RDACCESS类型的FCT 50,该区域从并行命令接ロ 66是可读的。典型地,该区域包含客户可能想要存储在仅允许通过片上逻辑可访问的NVM 62中的隐秘数据,假设片上逻辑没有将该数据泄露到芯片以外。第三,共享存储器空间许可等级,包含要存储在NVM 62中的ACC 12不需要保护的其他数据。外部代理可以使用cmd[SHARENVMWR]或cmd[SHARENVMRD],或者通过使用从并行命令接ロ 66的直接存储器访问,在该区域中进行读和写。下面将更详细地解释“cmd”命令。最小程度上,ACC 12应该具有足够的具有“私有”许可等级的NVM 62空间以存储片上隐秘。ACC 12的多个应用之ー是基于客户要求提供启用和禁用特征的方式。虽然对可以启用/禁用什么进行定义的准确的特征设置由客户提供,下面描述了如何可以使用提供接ロ 74以使得可以根据特定的客户要求进行调整。简而言之,如上提到的,ACC 12包括输出端ロ的集合(在图53中表示为启用控制器及接ロ 74),并且对这些输出的聚集进行的评估指示了要启用哪些特征,要禁用哪些特征。在一个实施例中,根据可能需要启用/禁用的特征项,在启用控制器和接ロ 74上检测到一个启用信号。对向启用控制器和接ロ 74输出的值进行确定的原始数据可以来自于NVM 62。对启用信号进行编码或扰码以使得没有特定的特征与単一的启用信号的一対一映射,这是可能的。在这种情况下,可能代之以需要评估信号的多个比持,以确定是否已经启用了特定的特征。可以意识到,可以由单个的客户应用来确定这是必需的还是可行的。这样,以ー些附加的逻辑作为代价,未授权的特征启用可以进行得更加困难。然而,加扰是否正是所必需的取决于来自客户的实际特征列表,以及正在考虑哪个威胁模型。如果已经威胁到ACC 12,如下将要解释的,变换到锁定状态,其中,将特征启用自动设置为某个非常基本的值,其中,仅启用刚好充足的最小集合的特征来用于调试和事后调查分析。取决于客户要求,在锁定状态时的特征启用值与新设备14的初始特征启用可以不同。典型地,ACC 12活跃的时间量相对短,并因此应该将其不活跃时的功耗视为比其活跃时更重要。ACC 12可以包括由底层的硅技术提供为在其不活跃时降低功率的功率管理电路。例如,可以使用可被使用来在ACC 12不活跃时节省功率的技术,包括时钟门控,且可以使用功率门控。图53中示出的ACC 12还提供了如IEEE 1149 (JTAG)规范中所定义的至JTAG测试接入端ロ(TAP)控制器72的双向通用串行命令接ロ。控制器72是简单的状态机,并实现特征提供命令来作为JTAG用户定义命令。JTAG规范提供了很好地定义的测试器接ロ,测试器可以使用该测试器接ロ,将来自提供服务器的高等级的命令解释为通过测试器接ロ传送到被测设计(DUT)的测试器命令。可以实现的ACC DFT特征包括以下I) RAM 60和NVM 62的软件MBIST可以由测试器16发布的命令所发起。针对RAM60和NVRAM的MBIST涉及在存储器的行和列上的固定的模式,然后将这些MBIST读回以确保其包含所期望的内容。然而,如果使用了 OTP NVM 62,测试每个地址位置是不切实际的,因此,可以将该模式仅施加到一个地址位置。2)针对ACC 12内部的寄存器插入由测试器16发起和控制的部分扫描链测试。将确信包含敏感信息的寄存器(可以是ACC 12中的控制和配置寄存器75的子集)从扫描链中排除。可以将以下的寄存器从扫描链中排除Life_Cycle_State和System_Ready寄存器、特征启用寄存器、重置启用寄存器、跨时钟域同步锁存器以及DFT启用/禁用寄存器。3)使用JTAG边界扫描来测试IC 40的主I/O。这是用于确保ACC 12不被断开(这可能是对攻击的指示)的附加安全措施。ACC自身的TAP控制器72对所有ACC 12 DFT特征进行控制,并且由此,应该对硬件进行设计,以使得可以基于ACC 12的状态来启用和禁用DFT特征。未初始化的ACC 12上电,进入测试状态,并具有默认启用的DFT特征。当ACC 12接收cmd[EXITTEST]时,软件从而导致了从测试状态到初始化状态的变换。作为该变换的结果,硬件可以确定其不再处于测试状态,并且对DFT特征进行禁用,直到其被再次启用。在本实施例中,如上所述,通过JTAG接ロ向ACC的TAP控制器72顺序发送装置18命令。很可能在一些应用中,可能想要具有除TAP控制器72之外的向ACC 12发布命令的备选方式,并从而可以提供针对要发送的命令的第二接ロ,称之为通用编程接ロ。可以将这种通用编程接ロ简单地视为16或32比特的处理器接ロ。应该将来自两个命令源的并行化输出复用(MUXED)在一起,并且在任何时候,应该仅有ー个命令接ロ是活跃的。所选择的命令接ロ 76是发布第一命令的命令接ロ(在存在着平手的情况下,可以选择TAP控制器72作为默认)。所选择的接ロ是活跃的接ロ,直到完成cmd[REQRESP],或者发布显式的cmd[ST0PACC]或者如果设备14重置。在MCU 54上运行的受保护的固件中实现的命令处理状态机的目的是执行对装置18所发布的命令的初步解码和过滤,以确定如何对其进行处理。针对ACC的操作的顺序
图54是对用于从ー个生命周期状态变换到下ー个生命周期状态的操作序列进行示出的高等级状态图。在其整个生命时间内,ACC 12可以基于过去发生过什么在四个状态中的ー个中操作,从而,将其称为ACC的生命周期状态。优选地,特定的动作仅在特定的生命周期状态中是许可的,这由硬件控制逻辑和固件代码的组合来强制执行。
固件应该基于从装置18接收到的命令,对状态变换进行单独控制。变换到新状态的第一步是将新的状态值写到私有NVM空间的固定位置。然后,可以将确定的状态值保持在NVM 62中,以使得如果在保存该状态之前电源被切断,ACC 12在上电后不回复到其已经变换通过的状态。換言之,应该将生命周期状态变换和至生命周期状态寄存器的更新作为原子操作来执行。现在将提供对图54中示出的四个生命周期状态的概述。测试状态80:当ACC 12是全新的尚未通过测试和分类的未初始化设备时,ACC 12处于测试状态80。如果ACC 12仍在该状态下,这暗示ACC 12没有完成BIST、扫描或者其他的测试操作,并从而被假定为没有为初始化状态82做好准备。在测试状态80期间,ACC12可以执行任何数目的芯片有效性测试,如果需要,重复进行。这些测试中的ー些可能破坏内部寄存器和存储器内容,从而可以预见,测试程序在完成之前要求多个重置循环。应该对 ACC 12进行设计,以使得通过多个重置循环,其仍然在测试状态80下,直到测试器发布ー个特别的命令,即命令cmd[EXITTEST](下面进行描述),可以将其指明为退出测试状态80的方式。cmd[EXITTEST]使得ACC 12在发布软重置之前,禁用所有DFT特征,以及变换至初始化状态80。禁用DFT特征防止了对手使用这些特征,在没有授权的情况下篡改SoC。DFT特征保持禁用,直到稍后在工作状态84下使用已认证的装置18发布的FCT 50对其进行明确启用。可以保留特征寄存器的最低有效位,以允许工作状态84下得DFT。DFT特征不应该能够改变生命周期状态,并且重新启用DFT不应该使得状态改变。软重置可以有助于确保ACC 12中没有残留的DFT数据留下。在发布软重置之前,应该使用ACC的固件来更新NVM62中的生命周期状态值,以确保当ACC 12重启时,其直接进行到执行初始化过程。初始化状态82 :在该状态下,ACC 12产生其静态密钥对(例如,dsi、Qsi)。从而可以使用公共静态密钥的X坐标作为ACC的nD。当对此已经完成吋,ACC 12可以更新非易失性生命周期状态,以使得下一次引导将进行到工作状态84。在本示例中,对cmd[EXITTEST]的响应包含MD。工作状态84 :在该状态下,ACC 12执行基本健康检查、更新特征寄存器,然后进入休眠,等待来自装置18的cmd[STARTACC]和后续的命令。ACC 12可以检验来自装置18的命令是有效的,并參与到已保护的通信中。如果不管任何原因,在以上状态中的任意状态中,ACC 12接收到有限数目的被确信是无效的命令,ACC 12可以自动变换到锁定状态86。特征寄存器的最小有效位允许工作状态84下的DFT。DFT特征不应该能够改变生命周期状态,并且重新启用DFT不应该使得状态改变。可以要求FCT 50设置DFT特征比特(特征的第零比持),以使得仅在安全条件下,才可以重新启用DFT。可以注意到,重新启用一般发生在易失性FCT启用操作中,其中,当设备掉电时,DFT能力丢失。DFT启用的易失性特性允许在设备的生命周期上的多个启用,即使当考虑到使用非易失性存储器来存储启用比持。锁定状态86:如果ACC 12遇到以下条件之一,可以到达该状态i)被发布了cmd [LOCKOUT], ii)检测到并超过最大允许的错误数目,iii)检测到不可恢复错误。锁定机制预期总体上作为对重复尝试攻击ACC 12和整个系统10的威慑手段。一旦ACC 12处于锁定状态86,ACC 12停止处理附加命令。从而,之后的任何使用ACC命令通信的尝试将导致作为响应的锁定状況。此外,固件可以恢复到预先指定的特征集合,或者简单地維持当前特征集合,防止对特征集合或NVM 62的受保护空间的进一步改变,然后,关闭并进入休眠。
生命周期状态变换一般是渐进的,并且是非易失性的,也就是说,一旦ACC 12已经变换到新的状态,即使通过电源和重置循环,其也不可回到之前的状态。对此的例外可以是至锁定状态86的变换,这将是易失性的。存储在NVM 62中的生命周期状态86不应通过去往锁定状态86来受到修改,使得如果ACC 12经历了电源和重置循环,该ACC 12将被解锁。通过防止命令和协议错误导致ACC 12的持久性锁定,该方案可以防止SoC被无意间永久性地禁用。然而,存在着可能阻止ACC 12正常操作的特定错误(大多数是由于硬件缺陷)。如果ACC 12遇到这些不可恢复错误中的任何错误,则ACC 12可能持久地陷入到锁定状态86中。可以使用在RAM 60中分配的计数器来保持对从重置开始,ACC12已经观察到多少错误条件的跟踪。毎次ACC 12遇到错误条件,则其将递增错误数目。当ACC 12到达最大允许错误数目吋,ACC 12变换到易失性的锁定状态86中。错误计数器可以允许在对ACC 12锁定之前,任何指定数目的可允许错误。固件引导序列、状态变换以及生命周期状态一般可以将固件组织为以下的组加密基元的集合,包括各种底层算木基元;BIST基元的集合;引导和启动定序器;生命周期状态功能;以及解释和处理进入的命令和消息的功能集合。稍后将在对通信协议的讨论之后,描述加密基元,并且将与对命令处理的讨论一起对BIST基元进行讨论。从而,以下将关注于引导和启动序列、生命周期状态功能以及对进入的命令和消息进行解释和处理的功能集合。引导/启动如图55中所示的,在每一次ACC 12重启处,嵌入到ACC 12中的微控制器54在上电或者完成重置吋,自动开始执行固件引导代码。固件程序应该总是以下面的顺序开始执行引导序列1)执行ー些必需的低等级寄存器初始化和配置;2)读取存储在NVM 62中的特征启用列表,并确定哪些特征需要被启用或者禁用,然后,驱动适当的特征启用信号;3)读取NVM 62以得到ACC 12在关闭或重置之前的上ー个状态;以及4)通过写入到生命周期循环状态寄存器并跳到对在该特定状态下所需要的任何东西进行处理的子程序,变换到适当的生命周期状态。图56中提供了对状态变换序列进行示出的图。可以使用以下序列开始每个状态变换首先,状态变换子程序具有对其正在变换往的新状态进行指示的输入參数,并在然后如下操作1)针对当前状态,检查新状态,以确保状态变换是有效的;2)如果新状态与NVM62中存储的上一个状态不同,使用新的状态值来更新NVM 62 ;3)将新的状态值写到生命周期循环寄存器;4)确定该状态变换是否是上电或者硬重置之后的第一个状态变换。如果是,则默认自动进入到休眠模式;以及5)否则,调用对应的状态功能,以在该特定的状态下开始执行所要求的操作。可以注意到,对于步骤5,每个状态可以具有其自身的子程序,以处理在该状态下所必需的操作。图57a至57d中示出了状态子程序中每个的子程序。图57a中不出了测试状态子程序,图57b中不出了初始化状态子程序,图57c中不出了工作状态程序,以及图57d中示出了锁定状态子程序。可以看出,子程序一般遵循在图 54的生命周期循环图中示出的高级框图。可以注意到,只要考虑到固件,则对特征进行启用和禁用涉及将适当的值写到硬件寄存器的集合,并将该值存储在NVM 62中的已知位置中。还可以注意到,在特定的应用中,ACC 12可以使用OTP存储器来存储非易失性数据。OTP存储器不允许固件擦除之前所写的数据。一般可以将OTP存储器视为保险丝(fuse)电路一开始每个比特具有为“O”的值,并且在将“I”写到特定的比特位置后,保险丝永久烧毁,并且不可能再被恢复。针对这种情况要发生,固件应该考虑到数据段是是有效,在何处寻找最新的数据,何处存在空闲空间可用以及当没有更多空闲空间时会发生什么,以及分配足够的额外冗余空间以允许多次写入。如果NVM 62不是0ΤΡ,固件可以将其作为RAM对待,并且可以任意覆写已存在的内容。然而,应该意识到,NVM 62—般慢于SRAM。固件应该尝试以脉冲方式来访问NVM 62以最小化对性能的影响。当ACC 12掉电或者突然与装置18断开连接吋,固件应该尽可能快地将重要的信息存储至NVM 62。使用特定的NVM 62技术,应该读回写入到NVM 62中的数据,以确保写是成功的,因为ー些NVM 62写操作可能不是100%可靠。此外,固件应该维持运行对观察到多少失败/无效命令的计数,并且如果该计数到达阈值,固件应该将ACC 12置于锁定状态86中。同样地,如果在合理的时间量内,命令没有成功地提供适当的响应,这可以是对ACC 12内部出错或者ACC 12已经被过早地断开的指示。在这种情况下,装置18可以尝试重置,或者其将需要将该断开记录到数据库中;并在该ACC 12再次重新连接的情况下恢复上次的操作。为了阻止旁路攻击(由于基本探測算法的实现细节,对手通过检查无意间泄露的信息来提取隐秘信息),ACC的固件可以包括特定的固件反击措施以减轻这些攻击。将在固件实现规范中对反击措施(如果有反击措施的话)进行指定。可以注意到,特定的反击措施在系统10中产生了复杂性,这继而増加了执行时间和能量消耗。图58提供了对命令解释器子程序进行示出的图,其勾画出固件针对接收到的命令做了什么。固件负责处理下面的表3中示出的以下命令
权利要求
1.一种对设备上的特征进行编程的方法,所述方法包括 在所述设备上提供硬件模块,所述硬件模块包括用于存储特征激活信息的非易失性存储器(NVM),所述NVM的至少一部分是受保护的,所述硬件模块还包括用于执行加密操作的加密控制器; 所述硬件模块接收第一命令,所述第一命令用于建立与连接到所述硬件模块的代理的安全会话; 所述硬件模块使用所述加密控制器,产生一个或多个公钥,并向所述代理提供所述一个或多个公钥,以使得所述代理能够向装置提供所述公钥,以产生共享的密钥; 所述硬件模块从所述代理获得已加密的特征集合; 所述硬件模块使用所述共享的密钥对所述特征集合解密;以及 所述硬件模块根据所述特征集合,对所述设备的所述NVM上的一个或多个特征进行编程。
2.根据权利要求I所述的方法,其中,使用椭圆曲线Menezes-Qu-Vanstone协议产生所述共享的密钥。
3.根据权利要求I或2所述的方法,其中,所述NVM包括用于允许在所述硬件模块上运行测试的测试状态、用于产生静态密钥和唯一标识符的初始化状态、以及用于参与所述安全会话的工作状态。
4.根据权利要求3所述的方法,其中,在检测到预定数目的无效命令时,所述硬件模块变换到锁定状态,以保护对所述NVM的进一步访问。
5.根据权利要求I至4中任一项所述的方法,其中,将所述硬件模块并入到晶片、芯片、印刷电路板或电子设备中。
6.—种包括计算机可执行指令的计算机可读介质,所述计算机可执行指令包括用于执行根据权利要求I至5中任一项所述的方法的指令。
7.一种对设备上的特征进行编程的方法,所述方法包括 通过与所述设备上的硬件模块通信的代理,提供到所述硬件模块的连接,所述硬件模块包括用于存储特征激活信息的非易失性存储器; 从所述代理获得由所述硬件模块使用加密控制器产生的一个或多个公钥; 使用所述一个或多个公钥,产生共享的密钥; 使用所述共享的密钥,对特征集合加密; 通过所述代理,向所述硬件模块提供已加密的特征集合;以及 计量信用池,所述信用池指示要被编程的硬件模块的数量。
8.根据权利要求7所述的方法,其中,使用椭圆曲线Menezes-Qu-Vanstone协议产生所述共享的密钥。
9.根据权利要求7或8所述的方法,其中,使用硬件安全模块来执行所述共享的密钥和所述计量。
10.根据权利要求7至9中任一项所述的方法,还包括记录与所述信用池的所述计量相关的事件。
11.根据权利要求10所述的方法,还包括从所述代理获得一个或多个日志,并且在从控制器接收到请求时,向所述控制器提供来自所述代理的所述日志和针对所述计量产生的日志。
12.一种包括计算机可执行指令的计算机可读介质,所述计算机可执行指令包括用于执行根据权利要求7至11中任一项所述的方法的指令。
13.一种服务器装置,包括处理器、存储器和至代理的连接,所述服务器装置被配置为执行根据权利要求7至11中任一项所述的方法。
14.一种对设备上的特征进行编程的方法,所述方法包括 提供至所述设备上的硬件模块的第一连接和至装置的第二连接,所述装置包括要在所述设备上被编程的特征集合,所述硬件模块包括用于存储特征激活信息的非易失性存储器; 向所述硬件模块发送命令,以发起与所述硬件模块的安全会话; 从所述硬件模块获得由所述硬件模块产生的一个或多个公钥; 向所述装置提供所述公钥; 从所述装置获得已加密的特征集合; 通过建立与所述硬件模块的特征编程会话,来提供所述已加密的特征集合;以及 从所述硬件模块获得与所述特征集合的应用相关的响应。
15.根据权利要求14所述的方法,其中,使用椭圆曲线Menezes-Qu-Vanstone协议产生所述共享密钥。
16.根据权利要求14或15的方法,其中,由包括软件库的代理来执行所述方法。
17.根据权利要求14至16中任一项所述的方法,还包括在传送所述已加密的特征集合时,产生日志,并向所述装置提供所述日志。
18.—种包括计算机可执行指令的计算机可读介质,所述计算机可执行指令包括用于执行根据权利要求14至17中任一项所述的方法的指令。
19.一种用于控制要应用到设备的资产的硬件模块,所述硬件模块被配置为被并入所述设备中,所述硬件模块包括 加密控制器,用于执行加密操作; 随机数产生器,用于产生唯一的标识符; 非易失性存储器(NVM),其至少一部分受保护,以存储特征激活信息;以及 提供接口,向所述设备提供一个或多个输出,所述一个或多个输出指示特征集合中哪些特征被启用,哪些特征被禁用。
20.根据权利要求19所述的硬件模块,其中,通过所述提供接口,将所述硬件模块集成到晶片、芯片、印刷电路板或者电子设备中。
21.根据权利要求19或20所述的硬件模块,其中,所述加密控制器被配置为使用椭圆曲线 Menezes-Qu-Vanstone 协议。
22.根据权利要求19至21中任一项所述的硬件模块,其中,所述NVM包括用于允许在所述硬件模块上运行测试的测试状态、用于产生静态密钥和唯一的标识符的初始化状态、以及用于参与所述安全会话的工作状态。
23.根据权利要求22所述的硬件模块,其中,在检测到预定数目的无效命令时,所述加密控制器被配置为变换到锁定状态,以保护对所述NVM的进一步访问。
24.一种对设备上的特征进行编程的方法,所述方法包括确定在所述设备上要启用的特征集合; 根据要启用哪些特征来填充特征寄存器; 使用所述特征寄存器来准备特征控制票据; 加密所述特征控制票据;以及 向装置提供一个或多个特征控制票据,以传送到能够使用所述特征被编程的一个或多个设备。
25.根据权利要求24所述的方法,其中,在硬件安全模块内执行所述准备。
26.根据权利要求24或25所述的方法,还包括在提供所述特征控制票据时,记录事件,并从所述装置获得日志。
27.根据权利要求26所述的方法,还包括在数据库中存储所述日志。
28.—种包括计算机可执行指令的计算机可读介质,所述计算机可执行指令包括用于执行根据权利要求24至27中任一项所述的方法的指令。
29.一种控制器服务器,包括处理器、存储器和至装置服务器的连接,所述控制器服务器被配置为执行根据权利要求24至27中任一项所述的方法。
30.一种与设备交换信息的方法,所述方法包括 在所述设备上提供硬件模块; 提供与所述硬件模块通信的装置; 在所述装置和所述硬件模块之间建立安全通信通道;以及 利用在所述安全通信通道上在所述装置和所述硬件模块之间发送的消息,在所述装置和所述硬件模块之间交换信息。
31.根据权利要求30所述的方法,还包括在所述装置和所述硬件模块之间提供代理,以代表所述装置分发所述消息。
32.根据权利要求30或31所述的方法,其中,所述消息包括要与所述设备相关联的一个或多个资产。
33.根据权利要求32所述的方法,其中,所述资产是以下一项或多项序列号、密钥或特征集合。
34.一种包括计算机可执行指令的计算机可读介质,所述计算机可执行指令用于与设备交换信息,所述计算机可执行指令包括用于以下步骤的指令 在所述设备上提供硬件模块; 提供与所述硬件模块通信的装置; 在所述装置和所述硬件模块之间建立安全通信通道;以及 利用在所述安全通信通道上在所述装置和所述硬件模块之间发送的消息,在所述装置和所述硬件模块之间交换信息。
35.一种用于与设备交换信息的系统,所述系统包括 要嵌入到所述设备上的硬件模块, 其中,所述硬件模块被配置为建立与装置的安全通信通道, 其中,所述硬件模块还被配置为交换在所述装置和所述硬件模块之间发送的消息;以及 其中,所述硬件模块还被配置为利用所述消息来获得或提供信息。
全文摘要
本发明提供了资产管理系统,其包括作为资产控制核心操作的硬件模块。资产控制核心一般包括嵌入到目标系统级芯片中的小的硬件核心,该硬件核心在硅管芯上建立基于硬件的信任点。通过具有难以被篡改的特征,可以使用资产控制核心作为客户设备上的信任的根。资产控制核心能够针对一个设备产生唯一的标识符,并通过与装置的安全通信通道参与到设备的跟踪和提供中。装置一般包括安全模块,该安全模块对提供数据进行高速缓存,并将其分发到连接到资产控制核心的很多代理中的一个代理处,例如,在生产线上或者在售后市场编程会话中。
文档编号H04L9/30GK102648471SQ200980155208
公开日2012年8月22日 申请日期2009年11月24日 优先权日2008年11月24日
发明者丹尼尔·欧洛夫林, 基尔安·史密斯, 威廉·拉汀, 尤里·珀尔厄, 托马斯·施蒂默林, 杰伊·史考特·富勒, 约瑟夫·库, 马修·J·坎帕尼亚, 马瑞内斯·斯特林克 申请人:塞尔蒂卡姆公司