CN114756869A - 数据处理设备 - Google Patents
数据处理设备 Download PDFInfo
- Publication number
- CN114756869A CN114756869A CN202210273332.1A CN202210273332A CN114756869A CN 114756869 A CN114756869 A CN 114756869A CN 202210273332 A CN202210273332 A CN 202210273332A CN 114756869 A CN114756869 A CN 114756869A
- Authority
- CN
- China
- Prior art keywords
- hardware component
- response
- challenge
- hardware
- remaining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/86—Secure or tamper-resistant housings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Image Processing (AREA)
- Information Transfer Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
- Hardware Redundancy (AREA)
Abstract
公开了一种数据处理设备,其包括多个硬件部件,例如以下中的一个或多个:微处理器、中央处理单元、片上***硬件部件、条件访问硬件部件、解扰器硬件部件、图形硬件部件、视频硬件部件和现场可编程门阵列硬件部件。多个数据处理硬件部件中的第一硬件部件配置为将质询发送到多个数据处理硬件部件中的至少一个其余硬件部件。每个其余硬件部件配置为接收相应的质询,并处理所述质询,以产生一个或多个相应的响应。该设备配置为使用一个或多个响应来验证设备完整性。
Description
分案申请说明
本申请是国际申请日为2016年12月13日、国际申请号为PCT/EP2016/080859的PCT国际申请,于2018年8月16日进入中国国家阶段的、发明名称为“数据处理设备和验证数据处理设备的完整性的方法”、申请号为2016800820474的中国发明专利申请的分案申请。
技术领域
本申请涉及硬件篡改和验证数据处理设备的物理完整性的检测,具体地便于防范硬件修改以及检测在设备中的硬件部件的修改。
背景技术
目前,大多数旨在劫持数字设备的攻击集中在软件,但随着安全软件的健壮性将持续增加,攻击将更多地集中在硬件上。基于硬件篡改的攻击是已知的,该硬件篡改通过移除、添加或交换设备中的一个或多个集成电路或其他硬件部件,或利用外部设备仿真这种硬件部件。因此,在硬件层面验证设备完整性级将越来越重要。尤其是在设备的完整性对保护收入流是至关重要的情况下,例如在条件访问***中,例如电视机顶盒或数字权利管理,以及在通用目的计算平台(例如个人电脑和便携式设备(例如笔记本电脑、移动电话、智能手机、平板电脑等)),在这些情况中越来越多地用于包括隐私和安全问题的敏感应用,如电子银行或电子医疗。随着几乎所有日常设备(物联网)的连通性越来越高,对硬件完整性检查的需求将变得普遍。
确保数据处理***中的软件的完整性的几种方案是已知的,并包括各种方法,例如通过在***启动时存储每个软件构件的散列并比较从每个软件构件中创建的散列来创建软件构件的签名。这些解决方案有时通过专用的安全硬件(例如由可信计算组织(Trusted Computing Group,TGC)开发的可信平台模块(Trusted Platform Module,TPM))提供便利。在TCG 的可信网络连接(TNC)架构中,TPM用于完整性测量和远程认证。在启动过程中,在关键软件和固件被载入之前,TPM测量(散列)PC的所有关键软件和固件元件(包括BIOS、启动加载器和操作***内核)。通过在软件运行之前进行这些测量并将它们存储在TPM上,测量值是隔离的,并且对于后续的修改尝试来说是安全的。当PC连接到网络时,将存储的测量值发送到TNC服务器,根据服务器的可接受配置的列表进行检查,如果发生不匹配,则将其隔离为受感染端点。
发明内容
本公开的方面在独立权利要求中阐述。公开的实施例的一些可选的特征在从属权利要求中阐述。
在本公开的一些实施例中,数据处理设备包括多个硬件部件,例如一个或多个以下硬件部件:微处理器、中央处理单元、片上***、条件访问设备、解扰器设备、图形设备、视频设备、芯片、RFID或密钥读取器、可信平台模块以及现场可编程门阵列器件。多个数据处理硬件部件中的第一硬件部件配置为将质询发送到多个硬件部件中的至少一个其余硬件部件发送质询。每个其余硬件部件配置为接收相应的质询(例如来自第一硬件部件或另一其余硬件部件的质询),并处理该质询以产生响应。该设备配置为基于来自至少一个其余硬件部件的响应来验证设备完整性,例如检查响应(或响应链中的最后的响应)是否是预期的。
在一些实施例中,设备配置为基于由至少一个其余硬件部件产生的响应来生成设备验证密钥,该设备验证密钥可用于验证数据处理设备的完整性。例如,第一硬件部件可以接收一个或多个响应,生成设备验证密钥并验证或使用该设备验证密钥,或者这些任务将由在设备中的不同硬件部件来执行。例如,第一硬件部件可以将关于一个或多个响应的信息发送到第二硬件部件,生成设备验证密钥,并使用接收的信息并解密任务关键信息,或将设备验证密钥发送给第三硬件部件,该第三硬件部件解密任务关键信息。可以基于一个或多个硬件部件的集体响应来生成一个或多个设备验证密钥,一个或多个设备验证密钥可以简单地是由(一个或多个)硬件部件的响应。
在一些实施例中,设备包括以加密形式存储任务关键信息的存储器。任务关键信息是设备或设备的方面所需以解密的形式以起作用的。设备可以基于由其余硬件部件产生的响应来使用一个或多个设备验证密钥来解密加密的关键任务信息(由产生一个或多个设备验证密钥的硬件部件或从该硬件部件接收一个或多个设备验证密钥的另一硬件部件来完成)。因此,设备澄清(clarification)可能隐含在解密任务关键信息的成功(或失败)中。一个或多个设备验证密钥可以基于(一个或多个)响应而生成,或者可以简单地是一个或多个响应。在多于一个其余硬件部件的情况下,例如,一个或多个响应可以用作一个或多个设备验证密钥,取决于例如响应是单独地产生的还是在链中与每个响应一起依赖于先前响应而产生的。一般来说,因此,其余硬件部件的集体响应(例如单独的响应或取决于其余单独的响应的一个或多个响应)可用于解密任务关键信息。有利地,通过使用其余硬件部件的响应来解密设备(或设备的方面)所需的任务关键信息以起作用,视图仅仅规避设备验证的对设备的攻击将失败。由于响应用于解密任务关键信息,而不仅仅用于检查一个或多个预期值,因此规避验证步骤会使设备在没有关键任务信息的情况下不起作用。
关键任务信息的示例是设备或设备的方面所需以起作用的固件(或其他软件)。例如,任务关键信息包括以下中的一个或多个:BIOS、操作***内核、硬件部件驱动、启动加载器和内容解密密钥。在一个特定的示例中,数据处理设备包括条件访问设备,任务关键信息包括解密密钥,解密密钥用于由所述条件访问设备使用,以控制对使用所述数据处理设备可消费的内容的访问。在另一特定示例中,数据处理设备包括视频解扰器,并且任务关键信息包括解扰密钥,该解扰密钥用于由视频解扰器使用以解扰视频信号。
在一些实施例中,初始其余硬件部件配置为从第一硬件部件接收其质询,每个随后的其余硬件部件所接收的质询是由相应的先前其余硬件部件产生的响应。例如,每个随后的其余硬件部件可以直接从先前硬件部件接收由先前硬件部件产生的响应,或者先前硬件部件可以将其响应发送给第一或另一个硬件部件,该第一或另一硬件部件然后将该响应发送给随后的硬件部件。其余硬件部件中的最后一个配置为直接或经由中间的硬件部件将其响应发送到第一硬件部件。如上所述,该设备可以配置为:在第一或另一硬件部件处,使用从其余硬件部件中的最后一个硬件部件接收的响应来生成设备验证密钥。收到的响应可以直接用作设备验证密钥。
在每个随后的其余硬件部件直接从先前硬件部件接收作为质询的响应的实施例中,简化了通信,因为在所讨论的硬件部件之间路由响应/质询,而不是必须在第一硬件部件或其他通信集线器的参与下来回路由响应/质询。
每个其余硬件部件可以配置为将非传递函数应用到接收的质询,以产生其响应。有利地,在随后的硬件部件的质询是来自前一硬件部件的响应的实施例中,使用非传递响应函数使得整体响应对于质询从硬件部件传递到硬件部件的顺序敏感,因此,正确的最后响应或生成的设备验证密钥不仅验证单独的硬件部件,还验证它们在验证链中的布置顺序。
硬件部件可以以各种配置、使用各种手段连接。在一些实施例中,硬件部件使用总线(例如I2C总线)进行互连。在一些实施例中,可以使用专用的物理连接来进行互连,例如每个其余硬件部件通过专用物理线路连接到第一硬件部件,在该专用物理线路上第一硬件部件可以写入到其余硬件部件,或从其余硬件部件读取。
在一些实施例中,其余硬件部件在链中连接,其中在链中的初始其余硬件部件的输入连接到第一硬件部件的输出。在链中的每个随后的其余硬件部件的输入连接到在链中的相应的先前其余硬件部件的输出,并且第一硬件部件的输入连接到在链中的最后一个其余硬件部件的输出。第一硬件部件配置为向在链中的初始其余硬件部件的输入发送质询,并且还配置为接收由其余硬件部件在第一硬件部件的输入处产生的一个或多个响应。这些实施例采用菊花链物理连接模型,但是可以通过使除了“活动的”其余硬件部件之外的所有硬件部件接收质询,并提供响应以仅仅通过该质询(“活动的”硬件部件的上游)和响应(“活动的”硬件部件的下游),来支持向每个其余硬件部件发送单独的质询,并在第一硬件部件处接收单独的质询。
如与这里讨论的任何物理连接方案一样,对于每个其余硬件部件,单独的质询可以是相同的或不同的,可以特定于每个其余硬件部件,或者可以是先前由第一硬件部件接收的(或由其确定的)响应。质询可以是固定的,也可以随时间而变化。当然,在一些实施例中,物理连接链还有助于逻辑链,在逻辑链中每个响应直接从先前的硬件部件传递到随后的硬件部件,作为随后的硬件部件的质询。由第一硬件部件接收的一个或多个响应可以由设备用于如上所述的设备完整性验证,例如通过第一硬件部件或设备的一个或多个不同硬件部件接收关于由第一硬件部件接收的一个或多个响应的信息。
在链中的每个其余硬件部件都可以实现类似于IEEE标准1149.1(JTAG)规范的基础结构。参见IEEE标准1149.1-2013或任何先前公开的版本,其通过引用并入本文。具体地,每个其余硬件部件可以具有指令移位寄存器,该指令移位寄存器用于接收指令集的指令。该指令集可以包括至少一个处理质询指令以处理质询并产生响应。每个其余硬件部件还可以具有对应于处理质询指令的数据移位寄存器,该数据移位寄存器用于接收质询。每个其余硬件部件可以配置为实现多种模式。例如,可以使用类似JTAG的状态机的状态来实现这些模式中的每一个。
应当理解,在本文中使用的术语“移位寄存器”用于涵盖这样的数据寄存器或存储器的任何实现:其中,位从寄存器的一侧移入、并在先进先出的基础上在另一侧移出,无论通过通用数字逻辑或其他方式实现为数字电子电路的物理寄存器(例如触发器)均可。类似地,这里理解的“移位寄存器”可以具有到寄存器的并行接口,用于读取、写入或用于读取及写入。例如,在用于实现JTAG测试接入点(TAP)或类似实现的移位寄存器的背景下,例如,在TAP状态机的选择IR、选择DR、更新IR和/或更新DR状态中,可以在硬件部件(例如集成电路)内并行地写入/读取位。
具体地,在第一模式中,每个其余硬件部件可以配置为一次一位地从其输入移位到指令移位寄存器以及从指令移位寄存器移位到其输出。在第二模式中,每个其余硬件部件可以配置为一次一位地从其输入移位到数据移位寄存器以及从数据移位寄存器移位到其输出。在第三模式中,每个其余硬件部件可以配置为:当处理质询指令在指令移位寄存器中时,读取在数据移位寄存器中的质询,处理该质询以产生响应,并将响应写入到数据移位寄存器。第一硬件部件可以配置为通过对于所有其余硬件部件是共有的模式控制线,一起控制所有其余硬件部件的模式。也就是说,所有的其余硬件部件可被控制,使得它们在任何时间都处于相同的模式。
第一硬件部件可以被配置为控制其余硬件部件的模式,以将相应指令移位到指令移位寄存器中,将质询移位到数据移位寄存器中,使得其余硬件部件处理质询以产生响应,并且将响应移出数据移位寄存器,从而从其余硬件部件接收一个或多个响应。在提供质询并且单独地接收响应的实施例中,在第一硬件部件处从每个其余硬件部件接收响应。在响应从一个其余硬件部件传递到下一硬件部件以作为质询的实施例中,第一硬件部件从链中的最后一个硬件部件仅接收单个响应。
一些实施例实现逻辑链和物理链,在逻辑链中,将来自一个其余硬件部件的响应作为质询传递给下一其余硬件部件,在物理链中,通过连接两个其余硬件部件的物理通信线,将一个硬件部件的响应作为质询直接传递给下一个硬件部件。有利地,在JTAG类架构中实现其余硬件部件的物理和逻辑菊花链,提供了用于设备验证的有效实现,其使用相对较少的指令,并且可以利用大多数硬件部件中提供的现有基础结构的优势用于测试目的。
在一些这样的实施例中,第一硬件部件配置为使质询逐位地移位到初始其余硬件部件的数据移位寄存器中,初始其余硬件部件处理该质询,并将其响应写入到其数据移位寄存器中,来自在链中的相应的先前硬件部件的数据寄存器的响应被逐位地移入在链中的每个随后的其余硬件部件的数据移位寄存器,每个随后的硬件部件处理来自相应的先前硬件部件的、在其数据移位寄存器中的响应作为其质询,以将其响应写入到数据移位寄存器,并且写入到相应的在链中的最后的其余硬件部件的数据移位寄存器中的响应被逐位地移位到第一硬件部件的输入。
第一硬件部件可以配置为使得处理质询指令由在链中的每个随后的其余硬件部件执行,该执行不早于在链中的相应的先前硬件部件使得将其响应写入其数据寄存器。在一些实施例中,这可以通过使用处理质询指令和旁路指令的组合来实现(这些指令使得所讨论的其余硬件部件将信号从其输入传递到其输出)。在其他实施例中,可以使用更简单的指令集。具体地,在一些实施例中,处理质询指令被加载到所有的指令移位寄存器中,并且然后质询和响应逐数据移位寄存器宽度地从一个硬件部件简单地移位到下一硬件部件,而对中间的无效或无关的数据简单地丢弃。然而,在其中当来自先前其余硬件部件响应已经加载到对应的数据移位寄存器中时才执行处理质询指令的实施例中,有利地,其余硬件部件能够维持内部状态,当质询从链传递下去时,仅产生一次响应。这使得能够实现所期望的仅在设备启动之后才执行质询/响应链的实现。
在一些实施例中,第一硬件部件配置为在将质询移位到在链中的初始其余硬件部件的数据移位寄存器中和将写入到在链中的最后的其余硬件部件的数据移位寄存器中的响应移位到所述第一硬件部件的输入之间,使得在链中的每个其余硬件部件仅执行一次处理质询指令。通过对于每个质询/响应链仅执行一次质询响应指令,其余硬件部件可以各自维持内部状态作为处理质询的功能,例如为每个质询/响应链的执行返回不同的响应,例如提供是当前质询的功能的响应,以及来自先前质询/响应链的执行的响应。有利地,这使得每个响应能够依赖于所有先前的质询,例如链式设备验证。
在一些实施例中,用于实现第一和其余硬件部件之间以及各其余硬件部件之间的通信的物理层符合IEEE标准1149.1(JTAG)规范,每个其余硬件部件包括TMS、TCK、TDI和TDO引脚以及符合规范的状态机,并至少实现规范要求的最小指令集。第一硬件部件可以监控最后其余硬件部件的TDO引脚,例如第一硬件部件可以具有连接到最后其余硬件部件的TDO引脚的输入引脚。
通常,响应被产生为质询的功能。在所有方面以及在实施例中,产生响应可以包括将质询与和产生响应的其余硬件部件相关联的硬件部件密钥组合,并且,例如将单向函数应用到该组合。单向函数可以是加密的散列函数。处理质询以产生响应可以包括将质询与硬件部件密钥一起散列。散列可以使用加密散列函数来完成,例如MD5、SHA-0、SHA-1、SHA-2或 SHA-3。通常,硬件部件可以各自产生特定于硬件部件的特定制造、类型或版本的响应,或者对于单独的硬件部件特定且唯一的响应。通常,响应也将特定于质询,即两个不同的质询将从硬件部件引出相应的不同的响应。此外,响应可以依赖于硬件部件的内部状态,而内部状态又可以依赖于先前的质询。
附图说明
现结合附图,通过示例的方式描述特定实施例,其中:
图1a、1b和1c阐释了具有多个数据处理硬件部件的数据处理设备,该多个数据处理硬件部件使用各种连接方式互连以用于设备验证;
图2阐释了设备验证的方法;
图3阐释了包括对经加密的任务关键信息进行解密的设备验证方法;
图4a和图4b阐释了图3的方法的示例;
图5a和5b阐释了基于单独的质询响应对的方法;
图6阐释了图5a和图5b的方法的实现,其中数据处理硬件部件连接在链中用于设备验证;
图7阐释了符合IEEE-1149.1的链连接方案的细节;
图8阐释了在从数据处理硬件部件收集质询相应对的期间在链中的数据处理硬件部件的状态;
图9阐释了基于分别在第一和每个其余硬件部件处具有充当随后的质询的先前响应的质询响应对的链的方法;
图10阐释了图9的方法的实现,其中数据处理硬件部件连接在链中用于设备验证;
图11阐释了在使用单一指令的质询响应对链的执行期间在链中的数据处理硬件部件的状态;
图12阐释了在使用两个指令来执行质询响应对链以使得数据处理硬件部件被限制为产生单个质询响应对期间链中的数据处理硬件部件的状态;
图13阐释了在使用三个指令执行质询响应对链以使得数据处理硬件部件能够限于产生多个质询响应对,同时保持与每个质询响应对相关的内部状态的期间链中的数据处理硬件部件的状态。
具体实施方式
参见图1A、1B和1C,数据处理设备100包括多个数据处理硬件部件102、104、106和108。设备100可以是任何处理数据的设备,例如服务器、个人电脑、移动计算设备(如智能手机或平板电脑)、机顶盒、数字视频记录仪、摄像头、视频摄像头、媒体消费、访问或记录设备、用于控制大门或门口的访问控制设备、收费站、索道门、控制设备、工业处理控制设备、电子健身或健康设备、连接的家用设备等。通常地,设备100将具有一个或多个输入接口(例如键盘、读卡器、RFID读取器、摄像头、麦克风、一个或多个连接器、有线和/或无线网络连接等)以及一个或多个输出接口(例如显示器、扬声器、打印机、一个或多个连接器、有线和/或无线网络连接等)。
硬件部件102、104、106和108可以设置在常见的设备外壳或壳体中。
硬件部件将通常是或者包括集成的电路或芯片,例如微处理器、中央处理单元(CPU) 或片上***(SoC)。硬件部件通常具有引脚,以接收数据并呈现输出,并且引脚通常通过导体(例如电线、在电路板上的导电迹线等)相互连接。出于设备验证的目的,硬件部件中的一个可以充当主硬件部件102,以驱动与其余硬件部件的通信,其余硬件部件充当从动硬件部件104、106、108,接收并响应来自硬件部件102的信号。在一些实施例中,如将在下面详细描述的,硬件部件102、104、106和108布置在链中,在该链中质询和/或响应从一个硬件部件传递到下一硬件部件(参见图1A)。参考图1B,在其他实施例中,硬件部件104、106 和108通过硬件部件102和硬件部件104、106和108中的每一个之间的专用双向连接而与硬件部件102通信。在一些实施例中,硬件部件102、104、106和108通过总线110来通信(参见图1C)。在一些实施例中,总线110是I2C总线,硬件部件102充当在I2C总线上的主机,从硬件部件104、106和108读取和写入,以引发并收集用于设备验证的响应。
在一些实施例中,硬件部件102是执行数据处理设备100的启动载入器的硬件部件,例如CPU或SoC。然而,在其他实施例中,硬件部件102可以是设备100中配置为引发并收集响应的任何硬件部件。在实现机顶盒的数据处理设备100的示例中,其余硬件部件104、106 和108例如可以是条件访问模块、视频解扰起或通信接口。当然,应当理解,实施例将不仅限于四个硬件部件(一个在质询中发起硬件部件以及三个响应硬件部件),还可以包括任何数量的硬件部件,例如两个硬件部件(一个发起硬件部件、一个响应硬件部件)、三个硬件部件 (一个发起硬件部件、两个响应硬件部件)或大于四个的任何数量的硬件部件。
参见图2,数据处理设备100配置为在步骤202处向设备100中的硬件部件发送质询,以在步骤204处从硬件部件接收响应,并在步骤206处使用响应以验证设备完整性。设备完整性的验证可以以多种方式完成,例如通过将响应与预期响应对比。硬件部件的响应可以是来自每个硬件部件的响应组、来自响应链中(如下所详细描述的,其中每个响应取决于先前的响应)的最后的硬件部件的响应和/或派生量(例如从一个或多个响应派生的一个或多个设备验证密钥)。
参见图3,在一些实施例中,设备100配置为在步骤302处向设备100中的硬件部件发送质询,以在步骤304处从硬件部件接收响应,并在步骤306处使用响应以解密任务关键信息。任务关键信息是以加密形式存储在设备100中的信息、但其对于设备100或设备100的方面需要以解密形式以起作用。在步骤308处,设备使用任务关键信息用于设备初始化、设备操作或设备初始化或操作的方面。在来自硬件部件的响应不正确的情况下(例如在一个或多个硬件部件被篡改的情况下),在步骤306处任务关键信息将不会被正确地解密,并且因此,步骤308将失败。因此,如果硬件部件已经提供了正确的响应,才能执行步骤308。
贯穿该说明书,质询将理解为意指任何数据项目(例如以任何恰当的格式或基础的数字、字母数字串、位序列),该数据项目从一个硬件部件发送到另一硬件部件,以由其它硬件部件引发响应,通常作为质询的功能。响应可以例如通过将质询与特定于硬件部件的硬件部件密钥相结合(例如级联)并通过散列函数(例如MD5、SHA-1、SHA-2或SHA-3)传递结果来产生。
基于关于响应是如何通过有效的、无篡改的硬件部件产生响应的知识,响应是否如预期那样的验证能够验证硬件部件的完整性。对于有效硬件部件的预期响应可以基于每个硬件部件的响应行为的现有知识来确定,或者可以在建立阶段确立,作为制造过程的部分,在制造过程中一个或多个质询被发送到硬件部件,可以将观察到的响应和预期响应(或允许其验证的信息,例如散列)通常地记录在设备100的***分中的一次性写入物理存储器中,例如在硬件部件102中。
如上所述,在一些实施例中,将实际响应与用于***验证的预期响应进行对比,而在一些实施例中,预期响应被用于加密任务关键信息。在前一情况中,可以使用各自的散列来比较响应,通过仅将响应的散列存储在设备中来降低发现预期响应的风险。具体地,可以存储预期响应的散列,并与实际响应的散列进行比较,以避免存储预期响应。在后者情况下,任务关键信息可以在设备的制造或建立期间使用预期响应进行一次加密,并以加密形式存储。结果,预期响应不需要存储在设备100中,从而移除了可能的攻击途径。替代性地,如果需要不时地更新任务关键信息,则可以存储预期响应。因此,可以使用来自设备中的多个硬件部件的(集体)响应或单独的响应来以各种方式验证多个硬件部件/设备的完整性。
现在参考图4A描述一些实施例,其中数据处理设备100的引导序列对固件进行加载。在这些实施例的一些中,在步骤402处硬件部件102启动并执行引导序列。作为引导序列的一部分,在步骤404处,硬件部件102向硬件部件104、106和108发送质询,并在步骤406 处接收响应。例如,硬件部件102发送质询到硬件部件104,硬件部件104返回响应到硬件部件102。然后针对硬件部件106和108重复此操作。对于硬件部件106和108的质询可以是先前接收的响应(即分别来自硬件部件104和106的响应)或者可以是针对每个硬件部件相同或不同的独立质询。替代性地,硬件部件104可以将其响应发送到硬件部件106作为质询,硬件部件106将其响应发送到硬件部件108作为质询,硬件部件108将其响应返回到硬件部件102。这将在下面更详细地描述。
在步骤408处,硬件部件102使用该响应来解密经加密的固件,然后在步骤410处,利用经解密的固件继续引导序列。当然,应当理解,管理设备验证的质询部分的硬件部件不需要与使用该响应的硬件部件(在这些实施例中用于固件的解密)和后续使用任务关键信息的硬件部件(在这些实施例中利用经解密的固件继续引导序列)是相同的硬件部件。取决于具体的实施例和要求,管理质询响应部分、使用响应、使用解密的任务关键信息可以在同一单一硬件部件处执行、在对于每个任务相应的硬件部件处执行,或可以以任何适当的方式分配在任何数量的硬件部件之间。
现在参考图4B描述一些实施例,其中数据处理设备100的条件访问模块需要内容密钥来解密内容以允许其呈现给用户。步骤402至406与以上参考图4A描述的相同。在步骤412 中,硬件部件(或更一般地,设备100)使用该响应以解密内容密钥,在步骤414处,使用经解密的内容密钥来解密经加密的内容以供显示。
现参考图5A和图5B描述一些实施例,其中硬件部件102发送质询并从每个硬件部件104、 106和108接收响应。在步骤502处,硬件部件102将质询发送到其它硬件部件104、106、 108中的一个硬件部件。在步骤504处,在其它硬件部件处接收质询,其他硬件部件在步骤 506处产生响应。
在步骤508处,其它硬件部件将响应返回到硬件部件102,并且硬件部件102在步骤510 处接收该响应。重复步骤502至510,直到硬件部件102接收到所有响应。如上所述,应当理解,质询可以是彼此独立的,使得响应是彼此独立的并且集体地用于验证设备的完整性(在这种情况下,质询可以被发送出去,并且平行地或交叉地接收响应),或者除了第一质询以外的所有质询可以是从先前的硬件部件接收的响应,使得只有来自最后的要质询的硬件部件的响应可以用于设备验证。
如上所述,在步骤512处,硬件部件102使用一个或多个响应来解密任务关键信息(例如通过从一个或多个响应中生成设备验证密钥),并在步骤514处使用任务关键信息。应该理解,步骤512和514可以被使用一个或多个响应来验证设备完整性的任何步骤所替代。
上面参考图5A和5B描述的过程可以在以上参考图1A、图1B和图1C所描述的任何架构中实现。现参考图6来描述用上面参考图1A描述的链式连接布置来实现该过程的具体实施例。硬件部件102用作主机,并且连接以形成在硬件部件102处开始并在硬件部件102处结束的链硬件部件104、106和108中的每一个硬件部件实现相应的响应函数A、B、C(I)。
硬件部件102将质询发送到硬件部件104,该硬件部件104将响应函数A应用于质询。该响应然后经由硬件部件104和106被发送回硬件部件102,硬件部件104和106简单地将响应传递通过(II)。然后,硬件部件102将质询经由硬件部件104发送到硬件部件106,该硬件部件104将质询传递通过。硬件部件106将响应函数B应用到质询,并且将响应经由硬件部件108发送回到硬件部件102,该硬件部件108将响应传递通过(III)。在类似的方式中,硬件部件108接收传递通过硬件部件104和106的质询,并且,由硬件部件108通过应用响应函数C而产生的响应被发送回到硬件部件102(IV)。如上所述,硬件部件102然后使用响应(视情况或者可以是最后的响应)来验证设备完整性(V)。如上所述,在一些实施例中,响应功能将其输入(质询)与硬件部件特定密钥相结合,并产生该结合的散列,或者另外地产生响应。
可以采用各种物理层和协议来实现刚刚描述的链式布置,其示例在IEEE标准1149.1中规定。现在参照图7描述可以使用IEEE标准1149.1规范实现的特定实施例。
参见图7,硬件部件104、106和108中的每一个硬件具有输入引脚702、输出引脚704和可连接在输入和输出引脚702、704之间的多个移位寄存器702、704。每个随后的硬件部件(例如硬件部件106)的输入引脚702通过数据线(导体)708连接到链中每个先前硬件部件(例如硬件部件104)的输出引脚704。在链中的最后一个硬件部件108的输出引脚通过数据线710连接到硬件部件102的数据输入I。初始硬件部件(硬件部件104)的输入经由数据线712连接到硬件部件102的数据输出O。
每个硬件部件104、106和108具有多个模式,包括第一模式,在该第一模式中个,硬件部件102可以将指令加载到每个硬件部件的指令移位寄寄存器(未图示)中。硬件部件102配置为通过经由硬件部件104、106和108的引脚702和704以及相应的指令移位寄存器将位从其输出O移向其输出I,以实现这一点。在第二模式中,硬件部件102可以将数据(特别是质询)加载到与每个硬件部件104、106、108中的当前加载的指令相关联的数据移位寄存器中。硬件部件102配置为通过经由硬件部件104、106和108的引脚702和704以及相应的数据移位寄存器将位从其输出O移向其输出I,以实现这一点。因此,在第一模式中加载到指令移位寄存器中的指令作用为确定在第二模式中哪个数据移位寄存器数据被移位通过的开关。应当理解,随着数据移入硬件部件104的移位寄存器,先前在硬件部件104的数据移位寄存器中的数据逐步地移入硬件部件106等的数据移位寄存器中,其中硬件部件108的数据移位寄存器中的数据被移出硬件部件108的数据移位寄存器,并返回到硬件部件102的输入 I。在第三模式中,使得每个硬件部件104、106和108处理其各自的数据移位寄存器中的数据以产生响应,并将响应写回到数据移位寄存器中。
硬件部件102通过硬件部件102的模式选择引脚MS处的信号来控制每个硬件部件104、 106和108处的位的移位和模式的改变,该硬件部件102通过模式选择线712连接到硬件部件104、106、108相应的模式选择引脚712至714。硬件部件104、106和108的模式通过状态机来控制,在状态机中,状态转换由在时钟线716连接到硬件部件104、106和108的相应时钟引脚718的时钟引脚CK处的时钟信号(在上升沿和/或下降沿)计时的模式选择引脚 MS的值来确定。
在一些实施例中,硬件部件104、106和108实现IEEE标准1149.1规范,并且作为主主机的硬件部件102在其MS和CK引脚处分别提供由IEEE标准1149.1针对硬件部件104、106、108和TCK引脚以及根据TMS的引脚714和718的TCK信号。此外,在这些实施例中,硬件部件102利用其O引脚连接到硬件部件104(在链中的初始硬件部件)的、由IEEE标准 1149.1指定的TDI引脚712,并利用其I引脚连接到硬件部件108(在链中的最后的硬件部件) 的、由IEEE标准1149.1指定的TDO引脚704,以接收从该链返回的数据。在这些实现中,每个硬件部件实现IEEE标准1149.1所要求的最小指令集。在一些实施例中,硬件部件104、 106和108仅部分符合IEEE标准1149.1,并且仅实现最小指令集中的一些或不实现最小指令集。硬件部件102不需要根据IEEE标准1149.1本身来实现TAP,而是可以仅当作驱动与使用IEEE标准1149.1用作TAP的硬件部件104、106和108的通信的主机。当然,硬件部件 102还可以利用单独的TCK、TMS、TDI和TDO引脚来实现TAP本身,例如出于测试的目的,而通过附加硬件部件(例如外部测试硬件部件)来驱动。在一些这样的实施例中,TCK、 TMS、TDI和TDO引脚中的一个或多个(或全部)可以与硬件部件102中的CK、MS、O和 I引脚中的对应一个相同,并且部件102可以具有第一模式和第二模式,在第一模式中,该硬件部件102引发来自部件104、106和108的相应,在第二模式中,该硬件部件102用作TAP 链中的TAP,并且不驱动这些部件的TMS和TCK引脚。例如,在第二模式中,部件102可以使用CK、MS和O引脚相应地作为TCK、TMS和TDO引脚,令单独的TDI引脚连接到在链中先前的TAP,并停止对于在第二模式中的I引脚上的响应的侦听。
不管指令集是否符合IEEE标准1149.1,在一些实施例中硬件部件104、106和108实现自定义(“处理质询”)指令以处理对应于(可应用的)指令的数据移位寄存器706中的质询,以产生对于质询的响应,将响应代替质询写入数据移位寄存器。在下面进一步详细描述的一些实施例中,进一步的自定义指令保持响应(“处理质询保持”),选择与处理质询指令相同的数据移位寄存器而不导致该数据移位寄存器中的数据被处理。在一些实施例中,实现并使用 IEEE标准1149.1BYPASS指令和相应的单一位移位寄存器。
现在使用参见图6和图7描述的配置来描述实现如上参见图5A和5B描述的过程的一些实施例的设备状态(硬件部件102从硬件部件104、106、108收集来自硬件部件104、106、108的状态)。在这些实施例中,如上所述,被发送到后续硬件部件的质询是从先前硬件部件接收的响应,但是应当理解,这些实施例同样适用于通过利用独立质询取代来自先前硬件部件的响应而向每个硬件部件发送独立质询。
在第一状态中,硬件部件将处理质询指令移入硬件部件104的指令寄存器中,并将旁路指令移入硬件部件106和108的指令寄存器中。然后,硬件部件102将质询移入在硬件部件 104中的、与处理质询指令相关联的数据寄存器,因此移出硬件部件104的位被移位通过硬件部件106和108的旁路数据寄存器以及由硬件部件102丢弃的链的输出。处理质询指令然后使得硬件部件104产生作为函数A的输出的响应并且在转换到第二状态期间将其写入到移位数据寄存器(“响应”)。
在第二设备状态中,硬件部件102将空数据或虚拟数据移入硬件部件104的移位数据寄存器中,而不改变任何硬件部件中的指令将由硬件部件104产生的响应移位到在此处数据在I处被硬件部件102捕获的链的输出。在将处理质询指令从硬件部件104移位到硬件部件106、并将旁路指令从硬件106移位到硬件部件108的过程中,硬件部件102然后将旁路指令移入硬件部件104的指令寄存器。硬件部件102进一步将其在第二状态中从硬件部件104接收到的响应经由硬件部件104的旁路数据移位寄存器移入硬件部件106,结果使设备进入第三状态。在从第三状态转换到第四状态时,硬件部件106然后产生响应并将其写入与处理质询指令(“b响应”)相关联的数据移位寄存器。类似于第二状态,在第四状态中,硬件部件102 然后将响应从硬件部件移位回到其输入I,并对于在如图8中阐释的第五和第六状态中的硬件部件108类似地进行该过程。
尽管在如上所述的一些实施例中描述了将指令移位通过指令寄存器的顺序,即处理质询指令从一个硬件部件移位到下一硬件部件,使得所有硬件部件都会收到相同的处理质询指令,而在另外的实施例中,硬件部件中的一些或全部可以具有相互不同的处理质询指令,并且指令寄存器的大小在硬件部件之间可以不同。在那些实施例中,不是将处理质询指令从一个硬件部件转移到下一硬件部件,而是通过相应地将指令位从硬件部件102移位通过硬件部件的链,每个硬件部件可以接收其自己的特定处理质询指令。
可以指出,在第二、第四和第六状态中,硬件部件104、106和108在被加载处理质询指令时,分别使用被压入到数据寄存器的空数据或虚拟数据来产生未使用的响应。为了防止这种情况,例如为了能够由硬件部件维持准确的响应状态,可以使用如上所述的处理质询保持指令代替在上述第二、第四和第六状态中的处理质询指令。
代替使用处理质询保持指令,在一些实施例中,与处理质询相关联的数据移位寄存器除了具有用于质询/响应的位之外还具有附加位,指示数据移位寄存器的内容是否要在更新数据移位寄存器时被处理。具体地,当包括附加位的质询第一次被压入到数据移位寄存器中时,该附加位被设置为一值,称之为1,指示质询要被处理。在更新数据移位寄存器时,硬件部件读取附加位,从值中来确定质询要被处理,处理质询,并将响应写回到数据移位寄存器,翻转附加位的值。在下一更新时,然后,如果没有新的质询被推入到数据移位寄存器,附加位将保持在翻转的值(处理质询指令仍在指令寄存器中),并且当硬件部件在下一更新期间读取在数据移位寄存器中的数据时,响应于检测到的附加位的翻转值,通过硬件部件来抑制质询和写入响应的处理。当然,应该理解,跟踪内部处理/不进行处理的状态的其他方式同样是可能的。
参见图9,现在描述其中引发质询响应链使得每个响应取决于所有先前的响应和质询的的实施例,这些实施例可以使用上面参考图1A、图1B和图1C描述的任何架构来实现。例如,响应可以经由总线110从硬件部件104被路由到硬件部件106(参见图1C),或者直接从硬件部件104被路由到硬件部件106(参见图1A)。后者将在下面更详细地描述。
在步骤902中,主机(例如硬件部件102)将质询发送到例如在链中的第一硬件部件,硬件部件104。在步骤904处,硬件部件104接收来自硬件部件102的质询,并产生响应,该响应被发送到链中的下一硬件部件(在本示例中是硬件部件106)。在步骤906中,在链中的下一硬件部件接收来自在链中的先前硬件部件的响应(例如硬件部件106接收来自硬件部件104的响应),并产生其响应,该响应被发送到下一硬件部件。在步骤908中,直到链中的最后的硬件部件接收来自先前硬件部件的响应,并产生其响应,该响应被发送回到主机(在该示例中是硬件部件108产生其响应,该响应被发送到硬件部件102)为止,重复该过程。
在步骤910中,主机接收来自在链中的最后的硬件部件的响应,并且,在步骤912处,使用该响应来对任务关键信息进行解密,该任务关键信息然后在步骤914中使用。如上所述,应当理解,步骤912和步骤914可以被任何在数据处理设备100中的主机硬件部件处和/或在不同的硬件部件处使用响应来验证硬件完整性的步骤所替代。类似地,可以以上述任何方式产生响应。
参见图10,在以上参考图1A描述的架构中实现的以上参考图9描述的过程的一些实施例中,硬件部件102用作主机,硬件部件104、108和110实现相应的质询响应函数A、B、C(I)。硬件部件102将质询发送到硬件部件104,该硬件部件104将函数A应用于质询以产生响应(II)。响应然后从硬件部件104发送到硬件部件106,该硬件部件106将其响应函数B 应用到从硬件部件104接收的响应(III)。由响应函数B在硬件部件106处产生的响应然后被发送到硬件部件108,该硬件部件108将其响应函数C应用到接收的响应(IV)。随后将硬件部件108产生的响应(其依赖于来自硬件部件104和106的响应以及质询)发送到硬件部件102,在硬件部件102处使用该响应(V)。
在一些实施例中,刚刚参考图10描述的实施例是基于通过硬件部件104、106和108的移位指令和质询/响应数据,使用如上参考图7描述的链式硬件部件的布置来实现的。现参考图11描述这种实施例的操作。具体地,在设备的第一状态下,处理质询指令被移入每个硬件部件104、106和108的指令寄存器,质询被移入硬件部件104的数据移位寄存器,其中虚拟数据或空数据通过链被移入到硬件部件106和108的数据移位寄存器中。在从第一状态到第二状态的转换中,硬件部件104产生其响应并将该响应写入到数据移位寄存器。由于硬件部件106和108也使得加载处理质询指令,硬件部件106和108对在数据移位寄存器中的数据产生响应,尽管这是未使用的响应,随着位被通过链移位,该响应被丢弃。
在第二设备状态中,充足数量的位被移入硬件部件104的数据寄存器,以将由硬件部件 104产生的响应移入硬件部件106的数据移位寄存器。类似于硬件部件104,在从第二设备状态到第三设备状态的转换中,硬件部件106对其数据寄存器的内容(由硬件部件104产生的响应)产生响应,并将该响应写入到其数据寄存器中。在第三设备状态中,一些位被再次压入到设备中,以将硬件部件106的响应移动到硬件部件108的数据寄存器,硬件部件108然后更新以将其响应写入其数据寄存器,随后,在设备状态四处,更多数量的位被压入链中,以将由硬件部件108产生的响应压入硬件部件108的输出,使得可以在硬件部件102的引脚 I处捕获该响应作为硬件部件链的响应。
上文参考图11描述的方法具有简单的优点,即一旦利用处理质询指令加载该链,则每次质询/响应从一个硬件部件移动到下一个硬件部件时都执行该处理质询指令。但是,这意味着被丢弃的处理质询指令的执行有多次重复。这样的担心是不需要的:处理在链中的硬件部件上的负载,或者硬件部件需要维持在初始状态,例如,在引导周期中仅强制一次处理质询硬件部件的执行,或者使任何给定硬件部件的每个后续响应依赖于该硬件部件的一个或多个先前响应。
在一个方法中,现参见图12描述,指令的顺序被修改,使得在相应的数据寄存器加载来自先前硬件部件的响应之前,每个硬件部件不执行处理质询指令。为此,通过参照上述IEEE 标准1149.1,仅加载处理质询指令到硬件部件104(即在链中的第一硬件部件)并加载旁路指令到硬件部件106和108,而修改参照图11描述的第一设备状态。
在第二设备状态中,进一步的处理质询指令被移位到硬件部件104的指令寄存器中,因此将处理质询指令从硬件部件104移位到硬件部件106的指令寄存器。如前所述,来自硬件部件104的响应被移位到硬件部件106的数据移位寄存器中。类似地,在第三设备状态中,进一步的处理质询指令被移位到指令寄存器链中,将处理质询指令从硬件部件106移位到硬件部件108的指令移位寄存器。来自硬件部件106的数据移位寄存器的响应再次被移位到硬件部件108的数据移位寄存器中。作为结果,硬件部件104在从状态1转换到状态2时产生其使用的(第一)响应,硬件部件106在从状态2转换到状态3时产生其使用的(第一)响应,在从第三设备状态转换到第四设备状态时,硬件部件108产生其使用的(第一)响应并将该响应写入到其数据寄存器中,然后,通过硬件部件108的输出将该响应推出以在硬件部件102的I引脚处被捕获,作为在第四设备状态中的链的响应。
在一个方法中,现参见图13描述,指令的顺序被修改,使得每个硬件部件在通过链的响应的横向过程中仅执行一次处理质询指令。具体地,第一设备状态和上述参见图12描述的一样,但是在第二设备状态中,处理质询持有指令取代处理质询指令被移位到硬件部件104的指令移位寄存器中。该处理质询持有指令选择同样的数据寄存器作为处理质询指令,但不造成进一步的影响。将处理质询持有指令移位到硬件部件104的指令移位寄存器中,将处理质询指令从硬件部件104移位到硬件部件106中。在第三和第四设备状态中,旁路指令被移位到硬件部件104的指令移位寄存器,每次将相邻的处理质询持有和处理质询指令沿着链进一步向下移位,如从图13的检测中可以理解的那样。
在第一设备状态之后的每个设备状态中,多个空位或虚拟位被移位到第一硬件部件104 的数据移位寄存器中,以造成各个硬件部件在从一个状态转换到下一个状态时产生的质询被移位到下一硬件部件中,在第二设备状态中将来自硬件部件104的响应移位到硬件部件106,在第三设备状态中从硬件部件106移位到硬件部件108,并且在第四状态中,从硬件部件108 移出以在硬件部件102的引脚I被捕获。以这种方式,在从一个设备状态转换到下一设备状态期间,处理质询指令一次只存在于一个硬件部件中,使得当质询/响应传输通过该链时,链中的每个硬件部件仅执行一次处理质询指令。
应当理解,如在上述实施例中那样,可以通过向数据移位寄存器添加附加位来代替处理质询持有指令的使用,附加位指示是否应该产生对于数据移位寄存器的内容的响应并将其写入数据移位寄存器,如上面参考图8描述的实施例所详细描述的那样。在使用数据移位寄存器中的附加位的实施例中,响应将仅产生一次,而与指令无关,直到通过硬件部件102将包括适当设置的附加位的新质询压入到一个或多个数据移位寄存器中而将附加位重置(重置为其指示应产生并写入响应的值)为止。
还包含下列实施例:
1.数据处理设备,其包括多个数据处理硬件部件,该数据处理硬件部件包括第一硬件部件和一个或多个其余硬件部件,其中:
第一硬件部件配置为将质询发送到一个或多个其余硬件部件;
每个其余硬件部件配置为接收相应的质询,并处理该质询,以产生响应;以及
该设备配置为基于由一个或多个其余硬件部件产生的一个或多个响应来验证设备的完整性。
2.根据条款1的数据处理设备,其包括以加密形式存储任务关键信息的内存,
其中该设备或设备的方面需要解密形式的任务关键信息以起作用,以及
其中该设备配置为基于由一个或多个其余硬件部件产生的一个或多个响应,使用一个或多个设备验证密钥对加密的任务关键信息解密。
3.根据条款2的数据处理设备,其中任务关键信息包括设备或设备的一方面所需以起作用的固件。
4.根据条款2或条款3的数据处理设备,其中任务关键信息包括以下中的一个或多个:软件、BIOS、操作***内核、硬件部件驱动、启动加载器和内容解密密钥。
5.根据条款2、3或4的数据处理设备,其中该数据处理设备包括条件访问设备,任务关键信息包括解密密钥,该解密密钥用于由条件访问设备使用,以控制对使用数据处理设备可消费的内容的访问。
6.根据条款2至5中任一项的数据处理设备,其中数据处理设备包括视频解扰器,并且任务关键信息包括解扰密钥,该解扰密钥用于由视频解扰器使用以解扰视频信号。
7.根据前述任一条款的数据处理设备,其中
初始其余硬件部件配置为接收其来自第一硬件部件的质询;
由每个随后的其余硬件部件接收的质询是由相应的先前其余硬件部件产生的响应;
最后的其余硬件部件配置为将其响应发送到第一硬件部件;以及
该设备配置为使用从其余硬件部件中的最后一个硬件部件接收的响应来验证设备的完整性。
8.根据条款7的数据处理设备,其中每个随后的其余硬件部件配置为从相应的先前其余硬件部件接收由相应的先前其余硬件部件产生的响应。
9.根据条款7或8的数据处理设备,其中每个其余硬件部件配置为将非传递函数应用到其质询,以产生其响应。
10.根据前述任一条款的数据处理设备,
其中其余硬件部件与以下元件以链式连接:
在链中的初始其余硬件部件的输入,其连接到第一硬件部件的输出;
在链中的每个随后的其余硬件部件的输入,其连接到在链中的相应的先前其余硬件部件的输出;
第一硬件部件的输入,其连接到在链中的其余硬件部件的最后一个硬件部件,以及
其中第一硬件部件配置为:
将质询发送到在链中的初始其余硬件部件的输入;以及
接收由其余硬件部件在第一硬件部件的输入处产生的一个或多个响应。
11.根据条款10的数据处理设备,其中每个其余硬件部件包括:
指令移位寄存器,用于接收指令集的指令,指令集至少包括处理质询指令,以处理质询并产生响应;以及
数据移位寄存器,其对应于处理质询指令,用于接收质询,
其中每个其余硬件部件配置为:
在第一模式中,一次一位地从其输入移位到指令移位寄存器,并从指令移位寄存器一次一位地移位到其输出;
在第二模式中,一次一位地从其输入移位到数据移位寄存器,并从数据移位寄存器一次一位地移位到其输出;以及
在第三模式中,当处理质询指令在指令移位寄存器中时,读取在数据移位寄存器中的质询,处理该质询以产生响应,并将响应写入到数据移位寄存器,
其中第一硬件部件配置为控制其余硬件部件的模式,使得:
将相应的指令移入指令移位寄存器;
将质询移入数据移位寄存器;
使其余硬件部件处理该质询以产生响应;以及
将响应移出数据移位寄存器,从而接收来自其余硬件部件的一个或多个响应,以及
其中所述第一硬件部件配置为在对于所有其余硬件部件是共有的模式控制线上一起控制所有其余硬件部件的模式。
12.根据条款11的数据处理设备,其中第一硬件部件配置为使得:
质询被逐位地移位到初始其余硬件部件的数据移位寄存器中;
初始其余硬件部件处理该质询,并将其响应写入其数据移位寄存器;
来自在链中的相应先前硬件部件的数据移位寄存器的响应被逐位地移位到在链中的每个随后的其余硬件部件的数据移位寄存器中;
每个随后的硬件部件处理作为质询的来自其数据移位寄存器中的相应的先前硬件部件的响应,以将其响应写入到数据移位寄存器中;以及
将写入到在链中的最后的其余硬件部件的相应的数据移位寄存器的响应被逐位地移位到第一硬件部件的输入。
13.根据条款12的数据处理设备,其中第一硬件部件配置为使得处理质询指令由在链中的每个随后的其余硬件部件执行,该执行不早于使得在链中的相应的先前硬件部件将其响应写入其数据寄存器。
14.根据条款12的数据处理设备,其中第一硬件部件配置为在将质询移位到在链中的初始其余硬件部件的数据移位寄存器中和将写入到在链中的最后的其余硬件部件的数据移位寄存器中的响应移位到第一硬件部件的输入之间,使得在链中的每个其余硬件部件仅执行一次处理质询指令。
15.根据前述任一条款的数据处理设备,其中多个硬件部件包括以下一个或多个:集成电路、微处理器、中央处理单元、片上***、条件访问部件、解扰器部件、图形部件、视频部件和现场可编程门阵列部件。
16.根据前述任一条款的数据处理设备,其中其余硬件部件处理质询以产生响应包括:将质询和与其余硬件部件相关联的硬件部件密钥一起散列,优选地使用密码散列函数(例如 MD5、SHA-0、SHA-1、SHA-2或SHA-3)进行散列。
17.在任何先前条款中要求保护的数据处理设备,其中用于实现初始硬件部件和其余硬件部件之间的、以及各其余硬件部件之间的通信的物理层符合IEEE-1149.1(JTAG)规范,每个其余硬件部件包括TMS、TCK、TDI和TDO引脚以及规范符合状态机。
18.一种验证具有多个硬件部件的数据处理设备的完整性的方法,该方法包括:
将一个或多个质询发送到多个硬件部件;
接收来自多个硬件部件的响应;
使用响应来验证数据处理装置的完整性。
19.根据条款18的方法,其中来自多个硬件部件的响应与来自每个多个硬件部件的相应的响应相结合。
20.根据条款18或19的方法,其中接收响应包括:接收来自多个硬件部件中的一个硬件部件的响应,来自多个硬件部件中的一个硬件部件的响应取决于来自多个硬件部件中的其他硬件部件的相应的响应。
21.根据条款20的方法,其中多个硬件部件按顺序提供相应的响应,顺序中的随后的硬件部件接收顺序中的先前硬件部件的响应作为质询,并且响应于所接收的质询而产生响应。
22.根据条款21的方法,其中响应于所接收的质询的响应被产生为所接收的质询的非传递函数。
23.根据条款18至22中任一项的方法,该方法包括:使用多个硬件部件的响应来解密信息,该信息需要以解密的形式以用于设备或设备的方面的操作。
24.根据条款18至23的方法,其中多个硬件部件包括以下一个或多个:集成电路、微处理器、中央处理单元、片上***、条件访问部件、解扰器部件、图形部件、视频部件和现场可编程门阵列部件。
25.根据条款18至24中任一项的方法,产生对于质询的响应以产生响应包括:将质询和硬件部件密钥一起散列,优选地使用密码散列函数(例如MD5、SHA-0、SHA-1、SHA-2 或SHA-3)进行散列。
阅读了上述一些实施例的特定描述后,本领域技术人员将容易理解,上述实施例和特征的许多变化、修改和并列是可能的,并且将落入所附权利要求的范围内。具体地,显而易见的是,已经描述了使用任何公开的物理实现和协议来收集来自多个硬件部件(单独的响应或取决于其余响应的响应)的响应的多种方法。响应可以以上面公开的各种方式中的任何一种方式使用,而不管如何收集响应或用于收集响应的基础设施。
Claims (1)
1.数据处理设备,其包括多个数据处理硬件部件,所述数据处理硬件部件包括第一硬件部件和一个或多个其余硬件部件,其中:
所述第一硬件部件配置为将质询发送到所述一个或多个其余硬件部件;
每个其余硬件部件配置为接收相应的质询,并处理所述质询,以产生响应;以及
该设备配置为基于由一个或多个其余硬件部件产生的一个或多个响应来验证设备的完整性。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1522244.1A GB201522244D0 (en) | 2015-12-16 | 2015-12-16 | Hardware integrity check |
GB1522244.1 | 2015-12-16 | ||
CN201680082047.4A CN108701191B (zh) | 2015-12-16 | 2016-12-13 | 数据处理设备和验证数据处理设备的完整性的方法 |
PCT/EP2016/080859 WO2017102766A1 (en) | 2015-12-16 | 2016-12-13 | Hardware integrity check |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680082047.4A Division CN108701191B (zh) | 2015-12-16 | 2016-12-13 | 数据处理设备和验证数据处理设备的完整性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114756869A true CN114756869A (zh) | 2022-07-15 |
Family
ID=55274883
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680082047.4A Active CN108701191B (zh) | 2015-12-16 | 2016-12-13 | 数据处理设备和验证数据处理设备的完整性的方法 |
CN202210273332.1A Pending CN114756869A (zh) | 2015-12-16 | 2016-12-13 | 数据处理设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680082047.4A Active CN108701191B (zh) | 2015-12-16 | 2016-12-13 | 数据处理设备和验证数据处理设备的完整性的方法 |
Country Status (11)
Country | Link |
---|---|
US (1) | US20180367317A1 (zh) |
EP (1) | EP3391276B1 (zh) |
JP (1) | JP6949843B2 (zh) |
CN (2) | CN108701191B (zh) |
BR (1) | BR112018012130A2 (zh) |
CA (1) | CA3007579A1 (zh) |
ES (1) | ES2938771T3 (zh) |
GB (1) | GB201522244D0 (zh) |
MX (2) | MX2018007302A (zh) |
SG (1) | SG11201804841VA (zh) |
WO (1) | WO2017102766A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10897459B2 (en) * | 2017-01-26 | 2021-01-19 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using encryption key |
US10972265B2 (en) | 2017-01-26 | 2021-04-06 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment |
US10897360B2 (en) | 2017-01-26 | 2021-01-19 | Microsoft Technology Licensing, Llc | Addressing a trusted execution environment using clean room provisioning |
JP6972721B2 (ja) * | 2017-07-18 | 2021-11-24 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及び情報処理プログラム |
US10826690B2 (en) * | 2017-12-28 | 2020-11-03 | Intel Corporation | Technologies for establishing device locality |
CN110677250B (zh) | 2018-07-02 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 密钥和证书分发方法、身份信息处理方法、设备、介质 |
CN110795742B (zh) | 2018-08-02 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 高速密码运算的度量处理方法、装置、存储介质及处理器 |
CN110795774B (zh) | 2018-08-02 | 2023-04-11 | 阿里巴巴集团控股有限公司 | 基于可信高速加密卡的度量方法、设备和*** |
CN108985044A (zh) * | 2018-08-07 | 2018-12-11 | 长沙龙生光启新材料科技有限公司 | 一种数据处理设备及验证其完整性的方法 |
CN110874478B (zh) | 2018-08-29 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 密钥处理方法及装置、存储介质和处理器 |
US11269522B2 (en) * | 2019-07-16 | 2022-03-08 | Microsoft Technology Licensing, Llc | Private data analytics |
CN112311718B (zh) * | 2019-07-24 | 2023-08-22 | 华为技术有限公司 | 检测硬件的方法、装置、设备及存储介质 |
WO2023113825A1 (en) * | 2021-12-17 | 2023-06-22 | Hewlett-Packard Development Company, L.P. | Backlight controls |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5859657A (en) * | 1995-12-28 | 1999-01-12 | Eastman Kodak Company | Led printhead and driver chip for use therewith having boundary scan test architecture |
US20040064457A1 (en) * | 2002-09-27 | 2004-04-01 | Zimmer Vincent J. | Mechanism for providing both a secure and attested boot |
US7751312B2 (en) * | 2003-06-13 | 2010-07-06 | International Business Machines Corporation | System and method for packet switch cards re-synchronization |
US20050289343A1 (en) * | 2004-06-23 | 2005-12-29 | Sun Microsystems, Inc. | Systems and methods for binding a hardware component and a platform |
ATE424566T1 (de) * | 2004-11-22 | 2009-03-15 | Freescale Semiconductor Inc | Integrierte schaltung und verfahren zur gesicherten prüfung |
WO2007063475A2 (en) * | 2005-11-29 | 2007-06-07 | Koninklijke Philips Electronics N.V. | Proofs of vicinity using cpufs |
US20090204964A1 (en) * | 2007-10-12 | 2009-08-13 | Foley Peter F | Distributed trusted virtualization platform |
GB2464966B (en) * | 2008-10-31 | 2012-08-29 | Hewlett Packard Development Co | Policy enforcement in trusted platforms |
US8544092B2 (en) * | 2009-03-12 | 2013-09-24 | International Business Machines Corporation | Integrity verification using a peripheral device |
JP5423088B2 (ja) * | 2009-03-25 | 2014-02-19 | ソニー株式会社 | 集積回路、暗号通信装置、暗号通信システム、情報処理方法、及び暗号通信方法 |
WO2012122994A1 (en) * | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
US8612766B2 (en) * | 2011-07-05 | 2013-12-17 | Microsoft Corporation | Secure credential unlock using trusted execution environments |
KR102013841B1 (ko) * | 2012-08-06 | 2019-08-23 | 삼성전자주식회사 | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 |
US9940486B2 (en) * | 2015-02-23 | 2018-04-10 | Cisco Technology, Inc. | Detection of hardware tampering |
-
2015
- 2015-12-16 GB GBGB1522244.1A patent/GB201522244D0/en not_active Ceased
-
2016
- 2016-12-13 BR BR112018012130A patent/BR112018012130A2/pt active Search and Examination
- 2016-12-13 CA CA3007579A patent/CA3007579A1/en active Pending
- 2016-12-13 SG SG11201804841VA patent/SG11201804841VA/en unknown
- 2016-12-13 CN CN201680082047.4A patent/CN108701191B/zh active Active
- 2016-12-13 WO PCT/EP2016/080859 patent/WO2017102766A1/en active Application Filing
- 2016-12-13 JP JP2018531586A patent/JP6949843B2/ja active Active
- 2016-12-13 CN CN202210273332.1A patent/CN114756869A/zh active Pending
- 2016-12-13 EP EP16812931.0A patent/EP3391276B1/en active Active
- 2016-12-13 MX MX2018007302A patent/MX2018007302A/es unknown
- 2016-12-13 US US15/781,444 patent/US20180367317A1/en not_active Abandoned
- 2016-12-13 ES ES16812931T patent/ES2938771T3/es active Active
-
2018
- 2018-06-14 MX MX2022004044A patent/MX2022004044A/es unknown
Also Published As
Publication number | Publication date |
---|---|
CA3007579A1 (en) | 2017-06-22 |
US20180367317A1 (en) | 2018-12-20 |
JP2018537793A (ja) | 2018-12-20 |
CN108701191A (zh) | 2018-10-23 |
WO2017102766A1 (en) | 2017-06-22 |
SG11201804841VA (en) | 2018-07-30 |
ES2938771T3 (es) | 2023-04-14 |
EP3391276A1 (en) | 2018-10-24 |
BR112018012130A2 (pt) | 2018-11-27 |
CN108701191B (zh) | 2022-04-05 |
EP3391276B1 (en) | 2023-02-01 |
MX2018007302A (es) | 2018-09-28 |
JP6949843B2 (ja) | 2021-10-13 |
MX2022004044A (es) | 2022-05-06 |
GB201522244D0 (en) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701191B (zh) | 数据处理设备和验证数据处理设备的完整性的方法 | |
CN110414244B (zh) | 加密卡、电子设备及加密服务方法 | |
US20220292226A1 (en) | Peripheral Device Comportability with Security Circuitry | |
US9596082B2 (en) | Secure debug trace messages for production authenticated code modules | |
US11928215B2 (en) | Firmware verification mechanism | |
EP3044721B1 (en) | Automatic pairing of io devices with hardware secure elements | |
US20200235917A1 (en) | Shared secret generation | |
TWI821971B (zh) | 安全加密協同處理器 | |
US20230177154A1 (en) | Sparse Encodings for Control Signals | |
TW202240406A (zh) | 唯讀記憶體(rom)安全性 | |
TW202240591A (zh) | 唯讀記憶體(rom)安全性 | |
US20240106644A1 (en) | Mitigation of side channel attacks on platform interconnects using endpoint hardware based detection, synchronization and re-keying | |
EP4285264A1 (en) | Secure chip-wide communication | |
WO2012030296A2 (en) | Electronic encryption device and method | |
CN111143815A (zh) | 一种数据处理设备及验证其完整性的方法 | |
WO2013129987A1 (en) | Electronic encryption device and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |