CN101681410A - 用于控制安全环境中的处理器执行的设备 - Google Patents

用于控制安全环境中的处理器执行的设备 Download PDF

Info

Publication number
CN101681410A
CN101681410A CN200880015564A CN200880015564A CN101681410A CN 101681410 A CN101681410 A CN 101681410A CN 200880015564 A CN200880015564 A CN 200880015564A CN 200880015564 A CN200880015564 A CN 200880015564A CN 101681410 A CN101681410 A CN 101681410A
Authority
CN
China
Prior art keywords
context
safe processor
processor
trust
discrete
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.)
Granted
Application number
CN200880015564A
Other languages
English (en)
Other versions
CN101681410B (zh
Inventor
威廉·迈克尔·比尔斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nagrastar LLC
Original Assignee
EchoStar Broadband LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EchoStar Broadband LLC filed Critical EchoStar Broadband LLC
Priority to CN201310100243.8A priority Critical patent/CN103294946B/zh
Publication of CN101681410A publication Critical patent/CN101681410A/zh
Application granted granted Critical
Publication of CN101681410B publication Critical patent/CN101681410B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Stored Programmes (AREA)

Abstract

本文所描述的各个实施例涉及用于在安全计算环境(100)中执行软件的设备,可使用安全处理器(104)且所述安全处理器(104)经配置以在从第一软件部分到第二软件部分切换执行时请求从第一上下文到第二上下文的上下文交换,可与所述安全处理器通信的上下文管理器(106)可经配置以接收并起始所请求的上下文交换,可与所述安全处理器和所述上下文管理器通信的信任向量检验器(108)可经配置以依据来自上下文管理器的命令载入信任向量描述符。

Description

用于控制安全环境中的处理器执行的设备
技术领域
本文所描述的本发明的各个实施例不同地涉及用于控制在安全环境中一个或一个以上处理器的执行的设备、系统和过程。另外,这些各个实施例的实施可包括控制空中和非空中电视接收装置(例如,由电缆、卫星、电信、无线和/或其他音频、视频和/或数据服务提供者所提供的接收装置)中的处理器执行。
相关申请案
本申请案主张于2007年5月11日申请的题为“用于控制安全环境中的处理器执行的设备、系统和方法”(APPARATUS,SYSTEM AND METHOD FOR CONTROLLINGPROCESSOR EXECUTION IN A SECURE ENVIRONMENT)的美国临时申请案第60/917,582号的优先权,所述临时申请案以引用方式全文并入本文。
背景技术
发明内容
本文所描述的各个实施例涉及用于建立和加强安全计算环境以执行软件部分的设备、系统和方法。更确切地说,一个实施例提供一种安全处理器,其在提供对计算环境资源的受限存取的环境中执行软件部分。
在另一实施例中,一种用于提供安全计算环境的系统包括但不限于安全处理器、上下文管理器和信任向量检验器。安全处理器可经配置以执行具有相关联上下文的软件程序和/或例行程序中的一些或所有,所述相关联上下文为(例如)软件所限于的特定操作环境。软件可包括(例如)方法、子程序、例行程序、整个应用程序,或一个或一个以上软件应用程序的任何部分。在至少一个实施例中,软件可限于一个或一个以上上下文。
在又一实施例中,一种用于控制安全操作环境中的安全处理器的执行的方法包括安全处理器请求上下文交换。在一个实施例中,上下文交换为到针对不同软件部分的新上下文的切换。在一个实施例中,上下文管理器接收上下文交换请求。在其他实施例中,上下文管理器将信任向量描述符载入到信任向量检验器中。在至少一个实施例中,上下文管理器复位安全处理器。在其他实施例中,信任向量检验器基于所载入的信任向量描述符控制安全处理器对一个或一个以上资源的存取。
描述一种计算机可读媒体,其具有用以控制安全处理器的执行的经编码数据结构。所述数据结构可包括关于界定安全处理器的操作环境的一个或一个以上上下文的数据。另外,上下文可包括识别给定上下文的字段、安全处理器可存取的一个或一个以上存储器区的指定,和安全处理器可存取的一个或一个以上硬件资源的指定。类似地,一种执行所述数据结构的计算机系统根据硬件信任向量确定安全处理器是否可存取硬件资源。
提供此发明内容以便以简化形式介绍概念的选择,将在下文在具体实施方式中进一步描述所述概念。此发明内容既不希望识别所主张标的物的关键特征或实质特征,也不希望用以限制所主张标的物的范围。
附图说明
在下文参看附图描述一些实施例。在若干个图中相似数字表示相似元件。
图1为用于本文所描述的本发明的至少一个实施例中的计算环境的框图。
图2为用于至少一个实施例中的信任向量表的实施例的简化数据结构图。
图3A和图3B为用于在计算环境中改变上下文且维持计算环境的方法的实施例的流程图。
图4为用于至少一个实施例中的装置的框图。
图5为用于另一实施例中的装置的框图。
图6为用于本文所描述的本发明的至少一个实施例中和/或与本文所描述的本发明的至少一个实施例一起使用的用于验证用于软件代码或数据的存储器区的方法的流程图。
具体实施方式
本发明现将参看附图更充分地描述一些实施例,在附图中仅展示可能实施例中的一些。然而,其他方面可以许多不同形式来具体化且不应被理解为限于本文所陈述的实施例。本说明书中所陈述的实施例涉及关于可信微处理器计算的方法和系统。此类计算可出现于(例如)预订卫星电视系统中。其他实施例也可包括(例如)但不限于电缆电视、广播电视、有线或无线电信系统、音频/视频/数据分配系统、任何内容递送服务和/或任何其他计算环境。
在图1所示的实施例中,计算环境100可包括由虚线102表示的安全计算或操作环境。安全计算或操作环境102可包括安全中央处理单元(“CPU”)或处理器104、上下文管理器106和信任向量检验器108。另外,处理器104、上下文管理器106和信任向量检验器108中的每一者可彼此直接或间接地通信。安全处理器104可为任何类型的通用处理器且在需要时可特定设计成安全的。在实施例中,上下文管理器106和信任向量检验器108可为用于本发明的实施例中的特定设计的硬件装置、软件模块或硬件和软件的组合。
在一个实施例中,安全处理器104操作以执行至少三个基本活动:在软件程序中执行数学函数或逻辑运算、将数据移向存储器中的不同位置和从存储器中的不同位置移动数据以维持用于软件程序中的数据,和/或进行决策和跳到软件程序中的新指令。为完成这些任务,安全处理器104可包括算术或逻辑单元(ALU)(未图示)、寄存器124、存储器122和内部或外部存储器或其他数据存储装置126。ALU执行数学函数或逻辑运算。寄存器124维持关于安全处理器104正执行的操作的信息或数据。举例来说,数据寄存器可保持用于由ALU完成的数学运算中的数据值;存储器寄存器可保持存储器126中数据所将存储的地址。存储器126通常由临时或以其他方式维持和/或存储数据的一个或一个以上硬件装置、结构或组件组成。在一个实施例中,存储器包括高速缓冲存储器122和一个或一个以上其他存储器126,所述高速缓冲存储器122保持由安全处理器104有规律地存取的数据。高速缓冲存储器122为集成在安全处理器104内的存储器区字段、直接连接至安全处理器104的存储器,或易于由安全处理器104存取或与安全处理器104介接的存储器126的区字段。在另一个实施例中,存储器126可包括存储器管理单元(MMU)128,其控制数据从存储器126的读取和数据到存储器126中的写入。存储器126可由一种或一种以上类型的存储器组成,例如,随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器、光学存储器,或维持数据的一个或一个以上其他存储技术。所属领域的技术人员将认识到,安全处理器104不限于关于计算系统的解释,而是可包括此项技术中所知的其他组件和功能。另外,提供本文中的计算系统解释以简化关于本发明的实施例的解释,且本发明不应限于本文中所描述的计算系统。
在执行上述三个活动的过程中,安全处理器104执行软件的若干部分。这些软件部分通常组合以形成软件程序或应用程序以完成大型任务。通常,软件部分为由安全处理器104执行的一个或一个以上指令。在下文中,软件部分可被称作软件例行程序、子例行程序或模块。在执行软件部分时,安全处理器104可创建被称作堆栈(未图示)的抽象数据类型。堆栈可为存储器(例如,高速缓冲存储器122或存储器126)中的一组存储器地址,安全处理器104分别将数据或指令存储到其中或从其中读取数据或指令。举例来说,在将数据项目或指令保存到堆栈中时,安全处理器104可将堆栈指针记录在寄存器124中,堆栈指针为存储器中数据或指令所存储的地址。可在两个或两个以上软件部分之间共享数据,且为促进这个共享,可将数据存储于提供给软件部分的堆栈和堆栈指针中。
在各个实施例中,安全处理器104在操作环境中执行各种软件部分,所述操作环境包括(例如)软件、存储器122/126和资源120的组合。安全处理器104可经配置以执行软件、与软件、存储器、资源和其类似者介接,和/或利用软件、存储器、资源和其类似者来执行给定操作。为防止和/或最小化恶意或另外非所要代码的引入,提供促进对安全处理器104的操作环境的控制的系统、方法、设备和其类似者。
在至少一个实施例中,安全操作环境102可由一个或一个以上“上下文”指定。上下文通过指定允许安全处理器104执行的那些指令、功能和/或操作来界定操作环境的边界。举例来说,软件应用程序可含有四个指令。上下文可指定安全处理器104可执行这四个指令中的第一个、这些指令中的一个或一个以上、所有这些指令、其组合,或其类似者。就是说,上下文可建立排斥执行非指定指令的容许环境。举例来说,如果安全处理器104试图执行并非所述四个指令中的一个的指令,那么辨识出异常且防止安全处理器104执行另一个指令。
在另一个实例中,上下文可允许安全处理器仅存取存储器地址1-20。倘若安全处理器尝试存取存储器地址40,那么辨识出异常且防止安全处理器104存取存储器地址40。
在再一实例中,上下文可指定允许安全处理器104仅存取硬盘驱动器。倘若安全处理器104尝试存取用户接口装置,那么辨识出异常且防止安全处理器104存取用户接口。
在各个实施例中,上下文管理器106和信任向量检验器108建立并加强上下文。上下文管理器106监管上下文的改变。两个或两个以上软件部分各自具有相关联的上下文。在执行第一软件部分时,使用第一上下文来界定安全操作环境。同样,在安全处理器104执行第二软件部分时,使用不同的第二上下文来界定不同的安全操作环境。为在软件部分之间进行切换,上下文管理器建立与待执行的新软件部分相关联的新上下文。在建立新上下文的过程中,新软件部分在适合于所述软件部分的操作环境中执行。将与新软件部分的上下文的偏差辨识为安全异常。因此,针对每一软件部分设置安全操作环境以在需要时控制安全处理器104。
如上所述,各个实施例也可包括加强上下文的信任向量检验器108。信任向量检验器108虚拟地和/或物理上位于(在数据信号流中)安全处理器104与给定系统的其他虚拟或物理组件(例如,资源120和存储器126)之间。在信任向量检验器108放置的情况下,信任向量检验器108可经配置以截取安全处理器104、资源120和/或存储器126之间和/或中间的通信。在实施例中,信任向量检验器108可被载入信息,所述信息界定给定上下文且信任向量检验器108将所述信息与安全处理器104进行的动作进行比较。如果动作不与信任向量检验器108中的所载入信息相匹配,那么所述上下文中不允许所述动作。不与所载入信息相匹配的动作是在所允许上下文外。信任向量检验器108将这些动作辨识为异常且防止所述动作发生。举例来说,信任向量检验器108从安全处理器104接收存取存储器126的请求,信任向量检验器108确定在当前上下文内是否允许所述请求,且如果不允许所述请求,那么信任向量检验器108辨识出异常且防止存取存储器126。
安全处理器104也可经配置以在执行第一软件部分与执行第二软件部分之间周期性地切换。在一个实施例中,在不同软件部分之间切换执行之前,可执行一个或一个以上步骤以确保系统100的安全。举例来说,安全处理器104可清除高速缓冲存储器122和/或MMU 128,且保存指向堆栈中的数据的指针。安全处理器104可向上下文管理器106传达上下文交换110的请求(也就是,改变到新的预定上下文的请求)。在实施例中,上下文管理器106将复位112发送到安全处理器104以将其复位,和将指令114发送到信任向量检验器108以从存储器126或可由信任向量检验器108存取的其他安全存储器(未图示)载入与所要上下文相关联的信任向量描述符。在实施例中,所述复位合意地导致安全处理器104的一个或一个以上内部状态的清除。应了解,此类清除减少了将恶意软件引入到安全处理器104的风险。所述复位可包括清除安全处理器104的一个、多个或所有状态的任何方法。在另一个实施例中,安全处理器104可在复位期间经配置以使得所有状态信息为不可操作且不可用的。
更具体来说,对于至少一个实施例而言,安全处理器104可通过执行启动或硬复位操作来完成复位功能。此启动可发生(例如)在安全处理器104执行新上下文中的一个或一个以上指令之前。应了解,启动可为需要重新载入软件的软启动或需要对安全处理器104和/或一个或一个以上其他组件断电和上电的硬启动。对于每一个实施例而言为合意但非必要的,软启动和硬启动均擦除存储于高速缓冲存储器122、寄存器124和/或存储器126中的数据和/或指令中的一些(如果不是所有)。在实施例中,可使用一个或一个以上通常所知的方法来擦除高速缓冲存储器122、寄存器124和/或存储器126中的数据或指令中的一些或所有。举例来说,可通过在先前存储的数据上写入新数据来删除所存储的存储器地址。因此,安全处理器104可经配置以擦除对于第二上下文而言并非所要的不能用的数据和/或指令,或以其他方式使所述数据和/或指令可用于第一上下文。
在至少一个实施例中,安全处理器104不维持从一个上下文到另一个上下文的任何状态信息。就是说,安全处理器可经配置以不保留任何先前上下文或软件的任何知识。
如图1所示,信任向量检验器108经由通信路径116与安全处理器104通信。在一个实施例中且通常为了防止安全异常,信任向量检验器108可经配置以将硬件中断121发送到安全处理器104。在接收到硬件中断121后,如下文结合图3所解释,安全处理器104复位和/或启动或重新启动到另一个上下文中。这另一个上下文可为预定的或为实时确定的。在另一个实施例中,信任向量检验器108可经配置以处理当前上下文中的安全异常,同时响应于安全异常请求到新上下文的上下文交换。
在各个实施例中,信任向量检验器108可经配置且载入使得其能够加强任何给定上下文的信息。此信息可永久地载入、在上下文交换前面载入、在安全处理器的复位期间载入、在安全处理器104复位后载入,和/或在另一个时间时载入。举例来说,所载入的信息可包括从存储器126或其他安全存储器(未图示)载入的一个或一个以上信任向量描述符。在需要时,此存储器126可经配置以使得其仅可由信任向量检验器108存取。在其他实施例中,信任向量检验器108可包括和/或能够存取一个或一个以上专用或共享存储器装置,例如ROM、EEPROM、硬盘驱动器或其类似者。在需要时,此存储器可经配置以持久地含有一个或一个以上信任向量描述符。在至少一个实施例中,信任向量描述符界定:安全处理器104可执行的软件程序、例行程序和/或指令。信任向量描述符也可经配置以界定安全处理器104可如何、何时存取、控制、利用、传达(或其类似者)资源和/或安全处理器104可存取、控制、利用、传达(或其类似者)哪些资源。类似地,信任向量描述符可界定安全处理器104可存取哪些存储器126或122和安全处理器104可在上下文中起始、执行和完成的其他活动。
信任向量描述符的一个实施例展示于图2中。在这个实施例中,信任向量描述符包括至少一个信任向量描述符202且可包括多个信任向量描述符202、204或206。信任向量描述符可存储(例如)于信任向量表(TVT)数据结构200或任何其他所要数据结构中。如上文参看图1所提及,在载入或以其他方式指定信任向量描述符202以供信任向量检验器108使用后,建立新上下文且所述新上下文掌管安全处理器104的操作。
如图2中所描绘的实施例中所进一步展示的,每一个信任向量描述符202、204和206可界定不同上下文且因而可具有不同数据。在实施例中,信任向量描述符202、204和206的每一区段中的数据为某种类型的。每一信任向量描述符202、204和206可含有一个或一个以上其他数据字段但不限于所描述的数据字段。信任向量描述符202、204和206可由上下文识别(ID)字段208识别。在其他实施例中,每一信任向量描述符202、204和206可包括用于以下各项的数据字段:代码开始地址210、代码结束地址212、密钥号214、目标CPU和向量号(#)216、刷洗类型218、硬件信任向量描述符220、存储器数据区222、CPU启动地址224、信任向量描述符签名226,和代码签名228。
代码开始地址210和代码结束地址212识别代码的哪部分将被验证且接着由安全处理器104(图1)执行。应了解,存在用于识别待执行的代码部分的其他方法,例如,代码开始地址和代码的长度。举例来说,代码开始地址210和代码结束地址212可指定含有所要代码的一组或一组以上的多个、不连续的存储器区。此类区可(例如)由两个或两个以上开始地址和结束地址进一步指定。
在至少一个实施例中,信任向量描述符202、204、206可包括用以检验待执行的软件和/或其部分的确实性的密钥号和/或其他参考信息。参考信息可包括(例如)用以验证代码的代码的指纹(识别)、用以验证代码的代码的签名,和/或对用以检验代码的签名的密钥的参考。另外,在具有多个密钥的实施例中,密钥号214可指定使用哪个密钥来检验所产生的签名且由此验证软件的一部分。应了解,此检验可(例如)通过将所产生的签名与信任描述符签名226和/或代码签名228进行比较来发生。
如果系统具有多个处理器,那么目标CPU字段216提供关于使用哪个处理器的指定器。如将结合图4所解释的,可在一个或一个以上安全处理器上执行软件部分。向量号字段216提供针对信任向量描述符202的指定器。
如结合图6所论述,刷洗类型字段218提供关于如何刷洗软件部分(也就是,证实软件部分的确实性)的信息。举例来说,如果验证或刷洗软件部分一次,那么刷洗类型字段218可包括“初始”刷洗的指定器。其他类型的刷洗方法包括但不限于:“连续”刷洗,借此在操作时连续地刷洗软件部分;和“从不”,其不需要对软件部分进行任何刷洗。在其他实施例中,可使用其他刷洗方法。
可使用硬件信任向量描述符字段220来界定上下文中的资源存取。更具体来说,硬件信任向量描述符220识别安全处理器104(图1)在由给定信任向量描述符202、204、206界定的上下文内执行的操作期间可进行介接、通信(或其类似者)的那些资源(例如,外围装置或内部组件)。在一个实施例中,硬件信任向量描述符220可为位图或位阵列,其中阵列中的每一位表示某种类型的硬件。举例来说,硬件信任向量描述符220可呈现为“0101”。第一位设定为“1”可表示处理器可存取硬盘驱动器控制器。第二位设定为“0”可表示处理器不可存取智能卡。第三位设定为“1”且第四位设定为“0”可表示处理器可存取I/O端口但不可存取视频控制器。硬件信任向量描述符220中位的数目可随在其中使用安全处理器的实施例而变化,且可少于或多于四个位。应了解,可使用硬件信任向量描述符220的其他实施例。举例来说,信任向量描述符220可经配置,以使得除了由硬件信任向量220识别的资源外在给定实施内的所有资源可为安全处理器所用。其他实施例也为可能的且包括于所附或此后所添加的权利要求书的范围内。
存储器数据区字段222也可用以界定上下文中的资源存取且进一步界定安全处理器104(图1)可存取存储器126(图1)中的哪些地址空间(例如)以从存储器读取数据和/或将数据写入到存储器中。关于硬件信任向量220,存储器数据区字段222可通过特定地址、基于开始和停止地址、作为相连区块和/或以其他方式来指定地址空间。又,可用肯定(也就是,可存取的地址空间)、异常(即,除了所识别的地址空间外皆为可存取的)或其他方式来表达地址空间。因而,应了解,存储器数据区字段222可识别可读取和/或写入可执行数据的地址。包含于一个或一个以上未界定地址中的数据可同样被指定为不可执行的,使得倘若安全处理器尝试执行代码和/或利用来自禁止数据区的数据便将发生安全异常。
在一个实施例中,与软件的其他部分共享可存取存储器126(图1)的一个或一个以上部分。另外,软件的每一部分可在一个或一个以上上下文中执行。在此实施例中,一个软件部分可能需要将数据传递到另一软件部分,但并不在同一上下文中执行所述两个软件部分。存储器数据区字段222可经配置以通过使用(例如)对所识别地址空间的异常方法来支持这种情形。类似地,在另一个实施例中,对于由此指定的任何或每一存储器区而言,存储器数据区字段222可包括指定将包括于一个或一个以上刷洗操作中的存储器区的共同或单独刷洗位。
如针对本文所描述的至少一个实施例所论述的,在安全处理器104(图1)交换上下文时,可复位安全处理器且将其启动到新上下文中。参看图2,CPU启动地址字段224提供存储器126(图1)中的地址,将在所述地址启动安全处理器104(图1)。在一个实施例中,启动地址224为快闪存储器中的偏移。在其他实施例中,对于存储器126而言,启动地址224为ROM地址、RAM地址或其他地址。在实施例中,每一上下文可具有唯一启动地址224。
信任向量描述符202、204和206也可包括签名字段226。签名字段226提供数据值(例如,私有密钥)以用以检验每一信任向量描述符202、204、206。对信任向量描述符的检验可发生在指示信任向量检验器108(图1)载入给定信任向量描述符之前或之后发生。另外,签名字段226可经配置以提供签名以用以检验给定信任向量描述符的在字段208到228中的一些数据或所有数据。另外,应了解,在允许安全处理器104(图1)执行给定软件部分的一些或所有之前,可刷洗(如结合图6所解释)或验证给定软件部分的一些、从不刷洗或验证给定软件部分或擦除或验证给定软件部分的全部。
在本发明的至少一个实施例中,信任向量描述符也可经配置以包括代码签名字段228,其提供用以在由安全处理器执行给定软件代码部分之前检验给定软件代码部分的数据。应了解,可将任何类型的数字签名用作签名226和/或代码签名228。举例来说,数字签名可使用私有和公用密钥系统,例如美国联邦信息处理标准出版物186(1994年5月19日)数字签名标准(DSS)中所描述的验证方法,此文献针对其所教导的所有内容且特定针对其关于数字签名、私有密钥系统和公用密钥系统的使用的教导以引用方式全部并入本文中。
展示用于交换上下文301和用于管理安全异常309的过程300的实施例的流程图展示于图3A和图3B中。上下文交换过程可由上下文管理器、安全处理器和/或安全处理器与上下文管理器的组合执行。如图3A所示,保存目前由安全处理器104(图1)执行的上下文(操作303)。在至少一个实施例中,安全处理器104(图1)保存指向堆栈的指针、将任何所需数据存储到存储器126(图1),和完成在上下文交换发生之前所需的任何“清除”功能。保存操作可在要求时、以规则间隔、在需要基础上和/或以其他方式发生在上下文交换之前(如图3A所示)。上下文交换过程也可包括上下文交换请求的通信(操作302)。这个请求通常从安全处理器发送到上下文管理器且可发生在请求上下文交换之前或之后且可出现在广泛各种境况中。
举例来说,在出现致使安全处理器需要在不同或第二上下文下执行第二软件部分的情形时,安全处理器104(图1)可正执行第一软件部分。为促进第二软件部分的执行,安全处理器104(图1)可经配置以将交换上下文的请求传达给上下文管理器106(图1)-如图3A中由操作302所示。上下文交换请求可包括(例如)安全处理器104(图1)所希望交换到的上下文202(图2)的上下文ID 208(图2)。上下文交换请求可取决于所使用的特定实施或实施例而含有额外或其他信息。
如图3A中进一步展示,上下文交换过程可包括复位安全处理器104(操作304)。就是说,可在接收到由安全处理器所传达的上下文交换请求后由上下文管理器复位安全处理器。安全处理器复位合意地擦除安全处理器高速缓冲存储器122、MMU 128、寄存器124、存储器或其类似者中的任何数据,且从安全处理器104(图1)清掉先前软件状态。同样,应了解,在请求操作302和/或保存操作303未完成的情况下,各个实施例可包括复位操作304。
如图3A中进一步展示,上下文交换过程也可包括将信任向量载入到信任向量检验器中(操作306)。在需要时,上下文管理器106(图1)将信任向量描述符(例如,描述符202(图2))载入到信任向量检验器106(图1)中。如上文关于本发明的某些实施例所论述,信任向量检验器可预先被载入处于非活动状态的描述符。因此,应易于了解,对于任何给定实施例而言,信任向量检验器的载入可为任选的和/或不必要的。
上下文交换过程也包括启用新上下文(操作308),以使得载入到信任向量检验器中或在必要时针对活动状态以其他方式指定的软件部分准备好与新上下文一起使用。在一些实施例中,可通过将保存于信任向量描述符202(图2)中的签名226(图2)与所产生的签名相比较来验证信任向量描述符202(图2)。此验证可发生在描述符载入到信任向量检验器108中之前或之后。类似地,可通过将代码签名228(图2)与所产生的签名相比较来验证将在新上下文下执行的软件部分。在下文结合图6更详细地论述验证信任向量描述符和软件部分。信任向量描述符202和软件部分的载入合意地配置安全处理器以用于在新上下文中执行软件。
用于管理安全异常309的过程的实施例展示于图3B中。至少对于这个实施例而言,由信任向量检验器108(图1)从安全处理器104(图1)接收资源请求。在接收到资源请求(操作310)后,信任向量检验器将所述请求与当前活动信任向量描述符相比较且确定所述请求是否符合所述描述符(操作312)。举例来说,信任向量检验器可将所请求的存储器地址与当前活动信任向量描述符中的授权存储器数据区222(图2)的列表相比较。
在请求符合当前活动信任向量描述符时,信任向量检验器允许安全处理器与资源之间的通信发生(操作316)。举例来说,信任向量检验器将资源请求118(图1)传递给适当资源120(图1)。
在请求不符合信任向量描述符时,可触发安全异常(操作320),其导致安全处理器的复位(操作330)。在至少一个实施例中,信任向量检验器将硬件中断或复位指令(例如,指令121(图1))发送到安全处理器。另外,对于至少一个实施例而言,在安全异常发生时,整个芯片集而不仅是安全处理器都可复位。
所述过程可进一步包括最近触发的安全异常是否为安全异常发生的第二次出现的任选确定(操作322)。在最近触发的安全异常并非第二次安全异常时,可指示信任向量检验器等待预定或实时确定的时段(操作326)。另外且对于至少一个实施例而言,信任向量检验器可经编程以警告安全处理器其将在给定等待时段期满后复位。应了解,在等待时段期间,安全处理器可完成额外处理动作和/或请求额外资源。在等待时段期满后,复位安全处理器(操作330)。
在至少一个实施例中,安全处理器的复位可发生在至少两个单独情形下。第一,可由上下文管理器106(图1)响应于上下文交换而复位安全处理器104(图1)。上下文交换复位抑制可能注入到系统100(图1)中的任何恶意代码存取与另一上下文相关联的状态信息。第二,只要信任向量检验器108(图1)响应于一个或一个以上安全异常而起始安全处理器104(图1)和/或任何支持电路的硬件复位或硬启动,便可复位安全处理器104。在这种情形中,安全异常硬件复位防止恶意代码完成在当前上下文中未经授权的过程。因此,应了解,上下文交换和安全异常可起始复位,其促进安全处理器、存储器、资源和其类似者的安全和/或经授权使用,且提供对此类组件免受不安全和/或未经授权使用的某程度的保护。
包括安全操作环境402的实施例的装置400的实施例的框图展示于图4中。装置400可为(例如)卫星电视转换器装置。在至少一个实施例中,装置400可包括控制电子装置426,其可进一步包括但不限于以下各项中的一个或一个以上:安全操作环境402、主处理器环境404、存储器406、外围接口408,和数据存储接口410(在(例如)由硬盘驱动器434提供外部数据存储时使用)。更具体来说,安全操作环境402可包括:第一安全操作环境412,其包括第一安全处理器414和第一信任向量检验器416;和第二安全操作环境418,其包括第二安全处理器420和第二信任向量检验器422。安全操作环境的其他实施例可包括单个安全处理器、多个安全处理器、单个向量检验器、多个向量检验器、单个操作环境或多个操作环境。第一安全操作环境412和第二操作环境418也可以可操作方式连接到一个或一个以上共同或专用上下文管理器424。因此,应了解,可使用环境、处理器、向量检验器和上下文管理器的各种组合。
如图4中进一步展示,控制电子装置426也可包括系统总线432。去往和来自总线的通信可为直接的(如图4所示)和/或经由一个或一个以上独立型或集成型总线主控器或其类似者。举例来说,安全处理器414/420可包括总线主控器。
信任向量检验器416、422和430合意地经配置以分别调解从安全处理器到系统总线432/从系统总线432到安全处理器的通信。另外,应了解,一个或一个以上安全处理器(例如,安全处理器414和420)可经配置以执行控制电子装置426的相同(并行地)或不同的功能或任务。举例来说,处理器414可经配置以处理显示数据和用户命令,而处理器420经配置以处理安全功能,例如,解密视频信号、检验用户观看权利和与电视转换器装置400的其他组件互动。
安全操作环境402可提供于一个或一个以上集成电路或分开的离散组件中,所述安全操作环境402包括安全处理器414和420、信任向量检验器416和422,和上下文管理器424。举例来说,处理器414和420可分别与信任向量检验器416和422组合成单个集成电路或两个单独的集成电路,也就是,每一个安全操作环境412和418一个集成电路。
另外,安全处理器414和420、信任向量检验器416和422、上下文管理器424和/或其他组件可提供于硬件和/或软件的任何所要组合中。举例来说,上下文管理器424可为包括一个或一个以上过程的软件模块。类似地,可使用包括一个或一个以上逻辑组件的硬件电路。
控制电子装置426也可包括一个或一个以上易失性和/或非易失性存储器组件406。此类存储器装置的实例包括但不限于随机存取存储器和快闪存储器。
安全处理器414和420和/或上下文管理器424也可或替代地连接至一个或一个以上共同或单独的存储器组件或存储器范围(未图示)。存储器组件(其可为安全的)可用以存储(例如)对应于一个或一个以上上下文的TVT 200(图2)和/或一个或一个以上信任向量描述符202(图2)。同样,存储器组件可经配置以存储经计算的散列,所述散列用于经计算的签名与信任向量描述符和/或软件部分的参考签名的比较中。
上下文存储器范围、参考签名和信任向量描述符可存储于不安全的存储器406中。举例来说,上下文存储器范围、参考签名和/或信任向量描述符可存储于可重写和易失性存储器中,例如随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)或快闪存储器。在至少一个实施例中,上下文管理器424可通过使用指针、存储器地址或类似参考来与存储器406通信。
在至少一个实施例中,安全处理器414和420和信任向量检验器416、422和430可为通用处理器。安全处理器也可包括但不限于高速缓冲存储器和存储器管理单元(MMU)。在需要时,安全处理器也可执行指令获取、数据读取/写入、I/O读取/写入以及其他功能和例行程序。
一个或一个以上信任向量检验器416、422和430利用一个或一个以上地址核查器来调解安全处理器414和420与系统总线432、存储器406、外围接口408、数据存储装置接口410和/或控制电子装置426的其他组件之间的存取。另外,信任向量检验器416、422和430防止从处理器414、420或428直接连接到系统总线432和通过其延伸连接到存储器406、外围接口408或硬盘驱动器接口410。通过充当处理器与总线之间的看门人,信任向量检验器可控制和促进安全处理器与其他系统组件之间的连接和/或隔离。
信任向量检验器可取决于其所用于的实施例而经配置以在任何给定时间处置一个或一个以上上下文。同样,信任向量检验器416可经配置(作为地址核查器)以存储和检验针对给定上下文的有效存储器范围。此信息可(例如)作为个别条目存储于信任向量描述符中。所属领域的技术人员将认识到,处置上下文数据的其他方法为可能的且在本发明的各个实施例的范围内。
只要达到一个或一个以上处理器存取请求是在有效范围外的确定,信任向量检验器便可经配置以通过发信号、做标记、安全异常或以其他方式来作出响应。类似地,信任向量检验器可经配置以检验存取模式,例如针对存储器406的任何范围的读取、读取/写入和写入。举例来说,信任向量检验器416可经配置以使得在接收到由安全处理器414所作的写入请求后,其确定数据存储器范围是否为针对相应上下文的有效范围且数据存储器范围是否准许写入存取。举例来说,如果不准许写入存取,那么信任向量检验器416可经配置以标记安全异常。
在各个实施例中,用以存储程序代码或数据的存储器范围可为相连或非相连的。举例来说,存储器范围可呈一个或一个以上地址和一个或一个以上头尾(from-to)地址的长度的形式。同样,存储器范围可利用一个或一个以上存储器组件或装置。举例来说,存储器范围可利用两个DDR-SDRAM存储器组件、与三个EEPROM存储器组件组合的一个DDR-SDRAM存储器组件,和/或实际和/或虚拟存储器和/或数据存储装置的其他组合。此类装置可接近或远离给定控制电子装置。
进一步参看图4,信任向量描述符也可用以部分地或整体地授权对应于一个或一个以上上下文的外围组件。举例来说,信任向量描述符可授权经由外围接口408存取智能卡436、遥控装置438、电视和/或其他外围装置中的一个或一个以上。可通过条目指针和外围范围来(例如)在信任向量表中表示所述一个或一个以上外围装置。可以一个或一个以上头尾地址的形式来表达范围。如结合图2所解释,可使用位图来在上下文的信任向量描述符内授权外围装置,例如,位图“0101B”被解译为授权外围组件一(1)和三(3)。
在图4所示的实施例中,上下文管理器424负责管理安全处理器414和420上的安全上下文交换。在一个实施例中,在初始阶段期间,也就是,在电视转换器装置400的启动过程期间,上下文管理器424从存储器406接收针对一个或一个以上上下文的信任向量描述符。在信任向量描述符载入到上下文管理器424中之前,可通过验证信任向量描述符来检验信任向量描述符的完整性。举例来说,可通过使用散列函数计算摘要、用密钥对摘要签字以创建经计算的签名和将经计算的签名与参考签名226(图2)相比较来检验信任向量描述符的完整性。在这个实例中,如果经计算的签名与参考签名的比较不匹配,那么可产生安全异常或可警告控制电子装置426,且上下文管理器424将不能够启用软件。
在至少一个实施例中,信任向量检验器416和422可将信任向量描述符限制于存储器406的某个范围或某些范围。举例来说,在初始阶段启动过程期间和在信任向量检验器416和422从上下文管理器424接收到一个或一个以上命令之前,可从存储器406的某个界定范围或某些界定范围且不从存储器的其他范围载入一个或一个以上信任向量描述符。
在其他实施例中,也可针对一个或一个以上上下文验证存储于从列出于信任向量描述符中的区210(图2)到区212(图2)的存储器范围中的代码。同样,上下文管理器424可存储用于验证以进行进一步的上下文确认的经计算的散列。
如关于至少一个实施例结合图3所解释的,安全处理器414和420可通过将信号(例如,对内容交换的请求)传输到上下文管理器424来改变上下文。上下文管理器424在接收到一个或一个以上信任向量描述符的指定后检验对应于一个或一个以上上下文的程序存储器范围的确实性。一旦上下文存储器范围经检验,上下文管理器424便向信任向量检验器416和422通知对应于经检验的上下文的用于载入信任向量描述符的存储器406的范围。在一个实施例中,在初始化后、连续地、随机地、根据进度表或响应于某事件来检验存储器406的程序存储器范围和数据存储器范围的参考签名。
对应于一个或一个以上上下文的存储器406范围和参考签名可封入和/或存储于不安全位置中。举例来说,对应于一个或一个以上上下文的存储器406范围和参考签名可封入于定义标头中。另外,可使用非对称密钥来导出签名。然而,应了解,也可使用安全存储的对称密钥来导出签名。
再次参看图4,控制电子装置404可包括主处理器操作环境404,其进一步包括主处理器428和主信任向量检验器430。在至少一个实施例中,主处理器环境404可用以执行(例如)用户接口和其他软件例行程序。一般地,此类例行程序不需要与由安全处理器414和416所执行的例行程序相同的安全级别。
另外,不能够执行安全上下文交换的某些过程(例如,Linux操作系统)一般由主处理器428而非安全处理器414执行。另外,主环境可经配置以包括经配置以调解主处理器对一个或一个以上资源的存取的信任向量检验器430。另外,可将上下文管理器从主环境排除且由此消除主处理器进行的上下文交换。
图5提供用于至少一个实施例中的装置的框图。如所示,这个装置500包括具有安全处理器410和上下文管理器424的安全操作环境502。另外,这个装置包括含有主处理器512的主处理环境404。安全处理器410与主处理器512经由总线432互连。信任向量检验器504、506和508连接到总线432且经配置以调解安全处理器510和/或主处理器512对一个或一个以上资源的存取请求。信任向量检验器504、506和508可经配置以相对于安全处理器410异步地操作。更具体来说,上下文管理器424在初始阶段(例如,启动序列)期间用与特定上下文或更通常地与安全级别有关的存储器406范围来载入信任向量检验器504、506和508。这个上下文可接着用于处理器与资源之间的所有通信,直到执行上下文改变且将新信任向量描述符载入到一个或一个以上向量检验器中为止。因此,应了解,安全处理器经由其相关联上下文管理器来确定其自身和主处理器所利用的向量检验器的配置。
在另一实施例中,个别组件可具有一个以上的信任向量检验器,且一个以上的安全处理器可存取同一个检验器模块。举例来说,在多安全处理器配置中,每组件多个信任向量检验器准许每组件两个或两个以上上下文的进一步异步处置。在又一个实施例中,在无由信任向量检验器504、506和508所调解的另一连接或除此连接以外,一个或一个以上组件单独地连接到系统总线432。
现参看图6,其针对本发明的至少一个实施例展示用于刷洗或验证用于软件部分、信任向量描述符或数据的存储器范围的过程600。如所示,产生为验证指定的局部数据的散列(操作610)。举例来说,控制电子装置426(图4)确定针对存储器范围的散列值或其他类似值。
用密钥对散列进行签字且由此产生经计算的签名(操作612)。在至少一个实施例中,可用公用密钥对参考散列进行签字以产生经计算的签名。存储经计算的签名以用于比较(操作613)。
如图6中进一步展示,验证过程可包括检索参考签名(操作614)。对于至少一个实施例,上下文管理器106(图1)检索信任向量数据结构的签名字段226(图2)或代码签名字段228(图2)的参考签名。然而,应了解,可从不同数据结构检索或从另一组件接收参考签名。举例来说,上下文管理器可从安全存储器检索签名。在至少一个实施例中,用私有密钥对先前散列签字以创建参考签名。
如图6中进一步展示,验证过程可包括将经计算的签名与参考签名相比较(操作616)。就是说,上下文管理器106(图1)可将通过用公用密钥对散列签字而创建的经计算签名与从信任向量数据结构检索的参考签名在数学上相比较。应了解,可通过逐位比较或其他计算过程来完成经计算的签名与参考签名的比较。如果所述签名相匹配,那么验证软件部分、信任向量描述符或数据。
验证过程任选地包括确定验证过程是否为连续的(操作618)。在至少一个实施例中,上下文管理器106(图1)确定信任向量描述符中刷洗类型数据字段218(图2)的设定值。举例来说,如果在刷洗类型数据字段218中设定连续刷洗类型位,那么上下文管理器106(图1)确定验证为连续的。应了解,上下文管理器106(图1)可通过检查随软件部分、信任向量描述符或数据发送的标头中的值、通过检索另一存储器部分中的设定值或通过从另一组件接收指令来确定验证的类型。
如果验证为连续的,那么图6所示的验证过程的另一实施例可任选地包括等待一段时段以对同一个软件部分、信任向量描述符或数据执行另一验证(操作620)。在至少一个实施例中,上下文管理器106(图1)等待预定的时段且接着完成对同一软件部分、信任向量描述符或数据的另一验证。预定时段可为来自一秒、数秒、数分钟、数小时、数日或同样的一小部分的任何时段。在至少一个实施例中,上下文管理器106(图1)中的计时器对预定时段进行计数。在达到设定限制后,再次执行验证过程。
根据上文,一个实施例包括一种用于在安全计算环境中执行软件的系统。所述系统包括安全处理器,其经配置以在从第一软件部分到第二软件部分切换执行时请求从第一上下文到第二上下文的上下文交换。所述系统进一步包括与安全处理器通信的上下文管理器,其经配置以接收所请求的上下文交换且起始上下文交换。所述系统进一步包括与安全处理器和上下文管理器通信的信任向量检验器,其经配置以依据来自上下文管理器的命令载入信任向量描述符。
在至少一个实施例中,上下文管理器响应于上下文交换来起始安全处理器的复位。
在至少一个实施例中,上下文管理器将信任向量描述符与第二上下文相关联。
在至少一个实施例中,信任向量检验器根据信任向量描述符控制安全处理器对一个或一个以上资源的存取。
在至少一个实施例中,所述系统包括与上下文管理器通信的第二安全处理器。第二安全处理器执行一个或一个以上其他软件部分,且经配置以在从第三软件部分到第四软件部分切换执行时请求从第三上下文到第四上下文的上下文交换。所述系统也包括与第二安全处理器和上下文管理器通信的第二信任向量检验器,其经配置以依据来自上下文管理器的命令载入第二信任向量描述符。信任向量检验器经配置以根据第二信任向量描述符控制第二安全处理器对一个或一个以上资源的存取。
在至少一个实施例中,所述系统包括经配置以在静态上下文中执行软件部分的主处理器。所述系统也包括与主处理器通信的主信任向量检验器,其经配置以载入信任向量描述符且控制主处理器在静态上下文中对一个或一个以上资源的存取。
在至少一个实施例中,所述系统包括与主信任向量检验器通信的总线主控器,其经配置以在静态上下文中执行操作。
在至少一个实施例中,在静态上下文中执行的软件部分为操作系统。
另一个实施例包含一种用于在安全计算环境中执行软件的系统。所述系统包括两个或两个以上安全处理器,每一安全处理器经配置以在从第一软件部分到另一软件部分切换执行时请求从第一上下文到另一上下文的上下文交换。所述系统进一步包括与所述两个或两个以上安全处理器中的每一者通信的上下文管理器,其经配置以接收由所述两个或两个以上安全处理器中的至少一者请求的上下文交换。响应于所接收到的请求,上下文管理器起始请求安全处理器的复位且将另一所请求上下文与第一信任向量描述符相关联,所述第一信任向量描述符经配置以用于控制对至少一个资源的存取。上下文管理器进一步起始到另一所请求上下文的交换。所述系统也包括经配置以在静态上下文中执行操作系统的主处理器。所述系统也包括多个信任向量检验器,其中每一信任向量检验器与安全处理器中的至少一者和主处理器通信。信任向量检验器经配置以载入与所请求上下文相关联的第一信任向量描述符或主信任向量描述符,所述主信任向量描述符经配置以用于控制主处理器对一个或一个以上资源的存取。
在至少一个实施例中,安全处理器中的一者经配置以在从第一软件部分到第二软件部分切换执行时请求从第一上下文到第二上下文的第一上下文交换。
在至少一个实施例中,安全处理器中的一者经配置以在从第三软件部分到第四软件部分切换执行时请求从第三上下文到第四上下文的第二上下文交换。
在至少一个实施例中,第二软件部分与第四软件部分大体上类似。
另一实施例包含一种用于在接收到交换到用于软件部分的上下文的请求后在安全操作环境中执行软件的方法。所述方法包括载入信任向量描述符,所述信任向量描述符经配置以用于控制处理器的操作和复位处理器。
在至少一个实施例中,信任向量描述符界定处理器对一个或一个以上外围装置的存取,且信任向量检验器控制处理器对所述一个或一个以上外围装置的存取。
在至少一个实施例中,信任向量描述符包含位图。
在至少一个实施例中,所述方法进一步包括验证软件部分。
在至少一个实施例中,验证操作包括产生软件部分的散列、对所产生的散列签字以创建经计算的签名、检索参考签名以及将参考签名与经计算的签名相比较。如果签名相同,那么所述方法进一步包括允许执行软件部分。
在至少一个实施例中,所述方法包括等待一段时段和执行软件部分的第二次验证。
在至少一个实施例中,第二次验证发生在软件验证为连续时。
在至少一个实施例中,所述方法包括从安全处理器接收资源请求和确定资源请求是否符合信任向量描述符。如果资源请求不符合信任向量描述符,那么所述方法包括触发安全异常和复位安全处理器。
在至少一个实施例中,所述方法进一步包括确定安全异常是否为第二安全异常。如果安全异常并非第二安全异常,那么所述方法包括在复位安全处理器之前等待一段时段。如果安全异常为第二安全异常,那么所述方法进一步包括复位安全处理器而无需等待所述时段。
一个实施例为一种设备,其包括安全处理器,所述安全处理器经配置以请求到用于软件部分的上下文的上下文交换和通过产生软件部分的散列来验证软件部分。安全处理器经进一步配置以对所产生的散列签字以创建经计算的签名、检索参考签名和将参考签名与经计算的签名相比较。如果签名相同,那么安全处理器允许执行软件部分。所述设备也包括上下文管理器,其经配置以接收所请求的上下文交换、将信任向量描述符载入到信任向量检验器中和复位安全处理器。所述装置也包括信任向量检验器,其经配置以从安全处理器接收资源请求和确定资源请求是否符合信任向量描述符。信任向量检验器也经配置以在资源请求不符合信任向量描述符时触发安全异常且确定安全异常是否为第二安全异常。如果安全异常并非第二安全异常,那么信任向量检验器在复位安全处理器之前等待一段时段。然而,如果安全异常为第二安全异常,那么信任向量检验器复位安全处理器而无需等待所述时段。
另一实施例包含一种具有经编码数据结构的计算机可读媒体,所述数据结构在计算机系统上执行用以控制安全处理器的执行。所述数据结构包含一个或一个以上上下文,其中每一上下文包含识别上下文的上下文识别字段、指定安全处理器可存取的存储器区的存储器数据区,和指定安全处理器可存取的硬件资源的硬件信任向量。所述计算机系统经配置以基于硬件信任向量确定安全处理器是否可存取硬件资源。
在至少一个实施例中,硬件信任向量为识别允许安全处理器所进行的存取的类型的位图。
在至少一个实施例中,数据结构包括代码开始地址字段。
在至少一个实施例中,数据结构包括代码结束地址字段。
在至少一个实施例中,数据结构包括密钥号字段、目标处理器字段、向量号字段、刷洗类型字段、处理器启动地址字段、信任向量描述符签名字段,和代码签名字段。
在至少一个实施例中,代码开始地址字段和代码结束地址字段界定用于在上下文中执行的软件部分的程序存储器范围。
在至少一个实施例中,刷洗类型字段指定软件部分的验证是否为连续的。
另一个实施例为一种计算机系统,其包含安全处理器和计算机可读媒体。计算器可读媒体包括具有供安全处理器执行的一个或一个以上上下文的经编码数据结构。每一上下文包含上下文识别字段、指定安全处理器可存取哪些硬件资源的硬件信任向量、代码开始地址字段、代码结束地址字段,和处理器启动地址字段。代码开始地址字段和代码结束地址字段界定用于在上下文中执行的软件部分的程序存储器范围。所述计算机系统经配置以基于硬件信任向量确定安全处理器是否可存取硬件资源。
在至少一个实施例中,上下文包含目标处理器字段。
另一个实施例包含一种用于保护计算系统免受恶意软件损害的方法。所述方法包括载入信任向量描述符,所述信任向量描述符界定上下文。所述方法进一步包括接收恶意软件和尝试执行恶意软件中的指令。所述方法进一步包括辨识出所述指令为上下文的异常、防止所述指令执行和复位安全处理器。
在至少一个实施例中,所述方法包括接收针对恶意软件的上下文交换。
在至少一个实施例中,所述方法包括识别恶意软件。
在至少一个实施例中,识别恶意软件进一步包括产生恶意软件的散列、由散列创建经计算的签名、检索参考签名和将经计算的签名与参考签名相比较。如果经计算的签名与参考签名不同,那么所述方法进一步包括防止指令执行。
在至少一个实施例中,所述方法包括识别信任向量描述符。
在至少一个实施例中,指令存储于在上下文中不可存取的存储器区中。
在至少一个实施例中,指令尝试对在上下文中不可存取的外围装置或存储器位置的存取。
虽然在上文已论述许多示范性方面和实施例,但所属领域的技术人员将认识到其某些修改、排列、添加和子组合。因此,所附权利要求书和随后引入的权利要求希望被解译为包括在其真实精神和范围内的所有此类修改、排列、添加和子组合。

Claims (20)

1.一种设备,其包含:
安全处理器(104),其可操作以执行软件指令的第一部分和第二部分,且进一步可操作以产生在和所述软件指令的所述第一部分相关联的第一上下文与和所述软件指令的所述第二部分相关联的第二上下文之间切换的请求;
第一离散电路(106),其通信地耦合到所述安全处理器,所述第一离散电路接收所述请求且起始在所述第一上下文与所述第二上下文之间的上下文切换,所述第二上下文与上下文识别符相关联;以及
第二离散电路(108),其通信地耦合到所述安全处理器和所述第一离散电路,所述第二离散电路可操作以基于所述上下文识别符调解所述安全处理器与和所述安全处理器相关联的至少一个资源(120)之间的存取。
2.根据权利要求1所述的设备,其中所述第二上下文与信任向量描述符相关联,且其中所述第二离散电路响应于来自所述第一离散电路的命令来载入所述信任向量描述符。
3.根据权利要求2所述的设备,其中所述第二离散电路可操作以基于所述信任向量描述符调解所述安全处理器与所述至少一个资源之间的所述存取。
4.根据权利要求1所述的设备,其中所述第一离散电路响应于所述请求来起始所述安全处理器的复位。
5.根据权利要求1所述的设备,其中所述资源包含存储器(126),且其中所述第二离散电路调解所述安全处理器与所述存储器之间的存取。
6.根据权利要求1所述的设备,其中所述资源包含至少一个外围装置(408),且其中所述第二离散电路调解所述安全处理器与所述至少一个外围装置之间的存取。
7.一种设备,其包含:
主处理器(512),其可操作以在静态上下文中执行第一软件指令;
安全处理器(410),其可操作以执行第二软件指令的第一部分和第二部分,且进一步可操作以产生在和所述第二软件指令的所述第一部分相关联的第一上下文与和所述第二软件指令的所述第二部分相关联的第二上下文之间切换的请求;
第一离散电路(424),其通信地耦合到所述安全处理器,所述第一离散电路接收所述请求且起始在所述第一上下文与所述第二上下文之间的上下文切换,所述第二上下文与上下文识别符相关联;
总线(432),其通信地耦合到所述主处理器和所述安全处理器;
至少一个资源(406、408、434、436),其通过所述总线通信地耦合到所述主处理器和所述安全处理器;以及
第二离散电路(504、506、508),其通信地耦合到所述总线且可操作以基于所述上下文识别符调解所述安全处理器和所述主处理器对所述至少一个资源的存取。
8.根据权利要求7所述的设备,其中所述第二上下文与信任向量描述符相关联,且其中所述第二离散电路响应于来自所述第一离散电路的命令来载入所述信任向量描述符,所述第二离散电路可操作以基于所述信任向量描述符调解所述主处理器和所述安全处理器对所述至少一个资源的所述存取。
9.根据权利要求7所述的设备,其中所述第一离散电路响应于所述请求来起始所述安全处理器的复位。
10.根据权利要求7所述的设备,其中所述资源包含存储器(406),且其中所述第二离散电路调解所述主处理器和所述安全处理器对所述存储器的存取。
11.根据权利要求7所述的设备,其中所述资源包含至少一个外围装置(434),且其中所述第二离散电路调解所述主处理器和所述安全处理器对所述至少一个外围装置的存取。
12.根据权利要求7所述的设备,其中所述至少一个外围装置包含硬盘驱动器。
13.一种设备,其包含:
第一安全处理器(414),其可操作以执行软件指令的第一部分和第二部分,且进一步可操作以产生在和所述软件指令的所述第一部分相关联的第一上下文与和所述软件指令的所述第二部分相关联的第二上下文之间切换的第一请求;
第二安全处理器(420),其可操作以执行所述软件指令的第三部分和第四部分,且进一步可操作以产生在和所述软件指令的所述第三部分相关联的第三上下文与和所述软件指令的所述第四部分相关联的第四上下文之间切换的第二请求;
离散上下文管理器电路(424),其通信地耦合到所述第一安全处理器和所述安全处理器,所述离散上下文管理器电路接收所述第一请求且起始所述第一上下文与所述第二上下文之间的第一上下文切换,所述第二上下文与第一上下文识别符相关联,且所述离散上下文管理器电路进一步接收所述第二请求且起始所述第三上下文与所述第四上下文之间的第二上下文切换,所述第四上下文与第二上下文识别符相关联;
第一离散信任向量检验器电路(416),其通信地耦合到所述第一安全处理器和所述离散上下文管理器电路,所述第一离散信任向量检验器电路可操作以基于所述第一上下文识别符调解所述安全处理器与和所述第一安全处理器相关联的至少一个资源(406、408、434、436)之间的存取;以及
第二离散信任向量检验器电路(422),其通信地耦合到所述第二安全处理器和所述离散上下文管理器电路,所述第二离散信任向量检验器电路可操作以基于所述第二上下文识别符调解所述第二安全处理器与所述至少一个资源之间的存取。
14.根据权利要求13所述的设备,其中所述第二上下文与第一信任向量描述符相关联,且其中所述第一离散信任向量检验器响应于来自所述离散上下文管理器的命令来载入所述第一信任向量描述符,其中所述第一离散信任向量检验器电路可操作以基于所述第一信任向量描述符调解所述第一安全处理器与所述至少一个资源之间的所述存取。
15.根据权利要求13所述的设备,其中所述第一离散信任向量检验器电路响应于所述请求来产生起始所述安全处理器的复位的信号。
16.根据权利要求13所述的设备,其进一步包含:
主处理器(428),其可操作以在静态上下文中执行第二软件指令;以及
主信任向量检验器电路(430),其通信地耦合到所述主处理器,所述主信任向量检验器电路接收来自所述离散上下文管理器的命令以载入信任向量描述符,且基于所述信任向量描述符调解所述主处理器在所述静态上下文中对所述至少一个资源的存取。
17.根据权利要求16所述的设备,其中所述至少一个资源包含可由所述第一安全处理器、所述第二安全处理器和所述主处理器存取的存储器(406)。
18.根据权利要求16所述的设备,其中所述至少一个资源包含可由所述第一安全处理器、所述第二安全处理器和所述主处理器存取的外围装置(434)。
19.根据权利要求17所述的设备,其中所述第二软件指令包含在所述静态上下文中执行的操作系统。
20.根据权利要求19所述的设备,其中所述操作系统可与电视接收器一起操作。
CN2008800155645A 2007-05-11 2008-05-08 用于控制安全环境中的处理器执行的设备 Expired - Fee Related CN101681410B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310100243.8A CN103294946B (zh) 2007-05-11 2008-05-08 用于控制安全环境中的处理器执行的设备

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US91758207P 2007-05-11 2007-05-11
US60/917,582 2007-05-11
PCT/US2008/063089 WO2008141100A2 (en) 2007-05-11 2008-05-08 Apparatus for controlling processor execution in a secure environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310100243.8A Division CN103294946B (zh) 2007-05-11 2008-05-08 用于控制安全环境中的处理器执行的设备

Publications (2)

Publication Number Publication Date
CN101681410A true CN101681410A (zh) 2010-03-24
CN101681410B CN101681410B (zh) 2013-06-05

Family

ID=39855296

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2008800155645A Expired - Fee Related CN101681410B (zh) 2007-05-11 2008-05-08 用于控制安全环境中的处理器执行的设备
CN201310100243.8A Expired - Fee Related CN103294946B (zh) 2007-05-11 2008-05-08 用于控制安全环境中的处理器执行的设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201310100243.8A Expired - Fee Related CN103294946B (zh) 2007-05-11 2008-05-08 用于控制安全环境中的处理器执行的设备

Country Status (11)

Country Link
US (2) US8613081B2 (zh)
EP (3) EP2164020B1 (zh)
JP (1) JP5007867B2 (zh)
KR (1) KR101058140B1 (zh)
CN (2) CN101681410B (zh)
CA (1) CA2685058C (zh)
HK (1) HK1183954A1 (zh)
IL (1) IL201697A (zh)
MX (1) MX2009012134A (zh)
TW (2) TWI536264B (zh)
WO (1) WO2008141100A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168130A (zh) * 2013-05-17 2014-11-26 罗伯特·博世有限公司 用于运行通信模块的方法和通信模块

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112009000612A5 (de) * 2008-03-14 2012-08-02 Mitsubishi Electric Corp. Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
US8839420B2 (en) 2009-05-01 2014-09-16 Adobe Systems Incorporated Validation of function call parameters
US8732830B2 (en) * 2009-05-28 2014-05-20 Adobe Systems Incorporated Scripting engine externalized function execution control
JP5565040B2 (ja) * 2010-03-30 2014-08-06 富士通株式会社 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
US9037895B2 (en) 2010-10-13 2015-05-19 The Trustees Of Columbia University In The City Of New York System and methods for silencing hardware backdoors
US8904190B2 (en) * 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US20140149729A1 (en) 2011-07-18 2014-05-29 Ted A. Hadley Reset vectors for boot instructions
US8418230B1 (en) * 2012-08-28 2013-04-09 Netcomm Wireless Limited Apparatus and method for mobile communications and computing
US9135435B2 (en) * 2013-02-13 2015-09-15 Intel Corporation Binary translator driven program state relocation
US9183399B2 (en) 2013-02-14 2015-11-10 International Business Machines Corporation Instruction set architecture with secure clear instructions for protecting processing unit architected state information
US9298911B2 (en) * 2013-03-15 2016-03-29 Intel Corporation Method, apparatus, system, and computer readable medium for providing apparatus security
JP6081300B2 (ja) * 2013-06-18 2017-02-15 株式会社東芝 情報処理装置及びプログラム
GB2520061B (en) * 2013-11-08 2016-02-24 Exacttrak Ltd Data accessibility control
WO2015157690A1 (en) * 2014-04-11 2015-10-15 Rubicon Labs, Inc. System and method for sharing data securely
US9503443B2 (en) * 2014-09-15 2016-11-22 Ciena Corporation Secure access systems and methods to network elements operating in a network
US20160224098A1 (en) * 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US10121013B2 (en) * 2015-05-07 2018-11-06 Samsung Electronics Co., Ltd. XOR-based scrambler/descrambler for SSD communication protocols
EP3271827A4 (en) * 2015-07-29 2019-02-27 Hewlett-Packard Enterprise Development LP FIREWALL FOR DETERMINING ACCESS TO A SECTION OF A MEMORY
US11250134B2 (en) 2015-08-21 2022-02-15 Cryptography Research, Inc. Secure computation environment
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
CA3002871C (en) * 2015-10-23 2022-10-04 Cem Corporation Improvements in solid phase peptide synthesis
US9799130B1 (en) * 2015-10-27 2017-10-24 Google Inc. Lossless spatial feature descriptor compression
DE102016009232A1 (de) * 2016-07-28 2018-02-01 Giesecke+Devrient Mobile Security Gmbh Integriertes Teilnehmeridentitätsmodul mit Core-OS und Anwendungs-OS
US10452870B2 (en) 2016-12-06 2019-10-22 Dish Technologies Llc Smart card authenticated download
US10325077B2 (en) 2016-12-23 2019-06-18 DISH Technologies L.L.C. Strong authentication of client set-top boxes
US10484753B2 (en) 2016-12-23 2019-11-19 DISH Tchnologies L.L.C. Securely paired delivery of activation codes from smart card to remote client set-top box
US10484752B2 (en) 2016-12-23 2019-11-19 DISH Technologies L.L.C. Securely paired delivery of activation codes from smart card to host set-top box
US10171870B2 (en) * 2016-12-28 2019-01-01 DISH Technologies L.L.C. Forced execution of authenticated code
US10552206B2 (en) * 2017-05-23 2020-02-04 Ge Aviation Systems Llc Contextual awareness associated with resources
GB2563881B (en) * 2017-06-28 2019-12-25 Advanced Risc Mach Ltd Realm execution context masking and saving
US20200216097A1 (en) * 2017-08-10 2020-07-09 Argus Cyber Security Ltd System and method for detecting exploitation of a component connected to an in-vehicle network
US11238155B2 (en) * 2018-06-28 2022-02-01 Intel Corporation Microarchitectural mechanisms for the prevention of side-channel attacks
JP7210238B2 (ja) * 2018-11-15 2023-01-23 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
US11218316B2 (en) * 2018-12-05 2022-01-04 Ares Technologies, Inc. Secure computing hardware apparatus
FR3106685B1 (fr) * 2020-01-23 2022-05-06 Renault Sas Procédé et système de sécurisation des notifications audio d’un calculateur de véhicule
US12072979B2 (en) 2020-03-19 2024-08-27 Peter Andrew Blemel Apparatus and application device for protection of data and information
US11403403B2 (en) 2020-04-13 2022-08-02 KameleonSec Ltd. Secure processing engine for securing a computing system
WO2021211091A1 (en) * 2020-04-13 2021-10-21 KameleonSec Ltd. Secure processing engine for securing a computing system
DE102020120656A1 (de) 2020-08-05 2022-02-10 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Vorrichtung und Verfahren zur Authentifizierung in einem Steuergerät

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298119A (ja) * 1992-04-17 1993-11-12 Mitsubishi Electric Corp マイクロプロセッサのコンテキストスイッチ機構
FR2765361B1 (fr) * 1997-06-26 2001-09-21 Bull Cp8 Microprocesseur ou microcalculateur imprevisible
DE60006780T2 (de) * 1999-01-07 2004-09-23 Remedan Aps Steuergerät für einen Rechner, Verwendung eines Steuergeräts, Rechner der ein Steuergerät beinhaltet, und Verfahren um Einheiten an einem Rechner zuzuschalten und abzukoppeln
JP4820004B2 (ja) * 1999-01-12 2011-11-24 マイクロソフト コーポレーション ディスプレイ装置の画素サブコンポーネントにマッピングされるサンプルを得るために画像データをフィルタリングする方法およびシステム
US6832376B1 (en) * 1999-09-29 2004-12-14 Unisys Corporation Method and apparatus for resuse of a thread for different programmed operations
US6832378B1 (en) * 2000-06-20 2004-12-14 International Business Machines Corporation Parallel software processing system
EP1331539B1 (en) * 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US20030221030A1 (en) 2002-05-24 2003-11-27 Timothy A. Pontius Access control bus system
US7743257B2 (en) * 2002-06-27 2010-06-22 Nxp B.V. Security processor with bus configuration
KR100955284B1 (ko) 2002-11-18 2010-04-30 에이알엠 리미티드 보안 모드와 비보안 모드 사이의 프로세서 전환하는 데이터 처리장치, 데이터 처리방법 및 컴퓨터 판독가능한 기록매체
US7383587B2 (en) 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
EP1563380B1 (en) 2002-11-18 2006-07-19 ARM Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
DE60317376T2 (de) * 2003-05-27 2008-08-28 Nxp B.V. Zugriffsgeschütztes bussystem
US7730318B2 (en) * 2003-10-24 2010-06-01 Microsoft Corporation Integration of high-assurance features into an application through application factoring
US7249381B2 (en) 2004-03-29 2007-07-24 Bryte Computer Technologies, Inc. Controller and resource management system and method with improved security for independently controlling and managing a computer system
EP1603088A1 (fr) * 2004-06-03 2005-12-07 Nagracard S.A. Composant pour module de sécurité
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
EP1619572A1 (en) * 2004-07-23 2006-01-25 Texas Instruments Incorporated System and method of identifying and preventing security violations within a computing system
US7502928B2 (en) * 2004-11-12 2009-03-10 Sony Computer Entertainment Inc. Methods and apparatus for secure data processing and transmission
CN100440893C (zh) * 2006-02-28 2008-12-03 北京航空航天大学 实现分布式访问控制与通信安全的系统与方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168130A (zh) * 2013-05-17 2014-11-26 罗伯特·博世有限公司 用于运行通信模块的方法和通信模块

Also Published As

Publication number Publication date
TW200901034A (en) 2009-01-01
TW201506789A (zh) 2015-02-16
EP2164020A3 (en) 2012-12-12
HK1183954A1 (zh) 2014-01-10
US9043902B2 (en) 2015-05-26
CA2685058C (en) 2016-11-08
CN101681410B (zh) 2013-06-05
IL201697A0 (en) 2010-05-31
US20140033297A1 (en) 2014-01-30
US20080282345A1 (en) 2008-11-13
TWI457829B (zh) 2014-10-21
TWI536264B (zh) 2016-06-01
MX2009012134A (es) 2009-11-25
EP2624166B1 (en) 2014-12-17
EP2156359B1 (en) 2014-06-25
WO2008141100A3 (en) 2009-05-22
WO2008141100A2 (en) 2008-11-20
EP2624166A2 (en) 2013-08-07
EP2164020B1 (en) 2014-02-26
IL201697A (en) 2015-08-31
EP2624166A3 (en) 2013-09-04
KR20090130121A (ko) 2009-12-17
CN103294946B (zh) 2016-12-07
EP2156359A2 (en) 2010-02-24
CA2685058A1 (en) 2008-11-20
EP2164020A2 (en) 2010-03-17
JP5007867B2 (ja) 2012-08-22
CN103294946A (zh) 2013-09-11
JP2010530563A (ja) 2010-09-09
KR101058140B1 (ko) 2011-08-24
US8613081B2 (en) 2013-12-17

Similar Documents

Publication Publication Date Title
CN101681410B (zh) 用于控制安全环境中的处理器执行的设备
EP2397958B1 (en) Computing system providing normal security and high security services
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
US20160239232A1 (en) Integrated Circuit Device That Includes A Secure Element And A Wireless Component For Transmitting Protected Data Over A Local Point-To-Point Wireless Communication Connection
US20160174068A1 (en) Integrated Circuit Device That Includes A Secure Element And A Wireless Component For Transmitting Protected Data Over A Local Point-To-Point Wireless Communication Connection
US8095802B2 (en) System and method for securely saving a program context to a shared memory
US9239934B2 (en) Mobile computing system for providing high-security execution environment
US8082551B2 (en) System and method for sharing a trusted platform module
US20140344947A1 (en) Method and apparatus for handling storage of context information
JP2004005679A (ja) コンピュータシステム、メモリ構造、および、プログラムを実行する方法
US11341265B1 (en) Function-call interceptor framework for managing access to on-device content deemed sensitive by the user
US20040088569A1 (en) Apparatus and a method for securely switching status of a computing system
US7143278B2 (en) Method and apparatus for offloaded enhanced boot process
US20100333103A1 (en) Information processor and information processing method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NAGRASTAR CO., LTD.

Free format text: FORMER OWNER: ECHOSTAR BROADBAND LLC

Effective date: 20110224

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20110224

Address after: American Colorado

Applicant after: NAGRASTAR LLC

Address before: American Colorado

Applicant before: ECHOSTAR TECHNOLOGIES LLC

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130605

CF01 Termination of patent right due to non-payment of annual fee