CN1308783C - 用于隔离执行隔离指令的装置、方法和*** - Google Patents
用于隔离执行隔离指令的装置、方法和*** Download PDFInfo
- Publication number
- CN1308783C CN1308783C CNB018074006A CN01807400A CN1308783C CN 1308783 C CN1308783 C CN 1308783C CN B018074006 A CNB018074006 A CN B018074006A CN 01807400 A CN01807400 A CN 01807400A CN 1308783 C CN1308783 C CN 1308783C
- Authority
- CN
- China
- Prior art keywords
- processor
- isolation
- frame
- register
- iso
- 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.)
- Expired - Lifetime
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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Abstract
根据本发明的实施例,提供了一种执行隔离指令的技术。在一个平台中运行的处理器内,执行单元执行隔离指令。该处理器被配置为正常执行模式和隔离执行模式之一。当该处理器被配置为隔离执行模式时,参数存储器包含至少一个参数以支持隔离指令执行。
Description
技术领域
本发明涉及微处理器。本发明特别涉及处理器安全。
背景技术
微处理器和通讯技术的进步已经为那些超越了传统经营方式的应用开拓了很多机会。电子商务(E_commerce)和企业对企业(B2B)交易现在正变得流行,并以很快的速度到达全球市场。不幸的是,在现代微处理器***为用户提供了方便和有效的经营、通讯和交易方法的同时,它们对于不择手段的攻击而言也是脆弱的。举出几个这些攻击的例子,包括病毒、侵入、安全破坏和篡改。因此,为了保护计算机***的完整性和提高用户的信任,计算机安全正变得越来越重要。
由不择手段的攻击导致的威胁可以有多种形式。攻击可以是远程的,不需要物理接入。黑客远程发出的侵入攻击可以中断与成千上万用户相连的***的正常运行。病毒程序可以破坏一个单用户平台的代码和/或数据。
现有防范攻击的技术有很多缺点。反病毒程序只能扫描和检测已知病毒。大多数反病毒程序采用一种弱策略,在此策略中,一个文件或程序被假定是好的直到被证明是坏的。对很多安全应用程序来说,这种弱策略可能不适当。此外,大多数反病毒程序被驻留在平台中本地使用。这可能不适于小组作业环境。采用加密或其他安全技术的安全协同处理器或者智能卡在速度性能、存储器容量和灵活性上有局限。重新设计操作***产生了软件兼容性问题并导致开发努力方面巨大的投资。
发明内容
根据本发明的一个方面,提供了一种装置,该装置包括:执行单元,以在处理器内执行隔离指令,该处理器运行在一个平台中,该处理器被配置为正常执行模式和隔离执行模式之一;和参数存储器,包含至少一个参数,以支持在处理器被配置为隔离执行模式时的隔离指令执行;其中,所述隔离指令包括更新所述至少一个参数的隔离初始化(iso_init)指令和复位所述至少一个参数的隔离关闭(iso_close)指令之一。
根据本发明的另一方面,提供了一种方法,该方法包括:由在一个平台中运行的处理器内的执行单元执行隔离指令,该处理器被配置为正常执行模式和隔离执行模式之一;和当处理器被配置为隔离执行模式时,由包含至少一个参数的参数存储器支持隔离指令执行;其中,所述执行隔离指令的步骤包括执行更新所述至少一个参数的隔离初始化(iso_init)指令和复位所述至少一个参数的隔离关闭(iso_close)指令之一的步骤。
根据本发明的另一方面,提供了一种***,该***包括:芯片组;连接到芯片组的具有隔离存储器区域的存储器;和连接到芯片组和存储器的在一个平台中运行的处理器,该处理器具有隔离指令执行电路,该处理器被配置为正常执行模式和隔离执行模式之一,隔离指令执行电路包括执行隔离指令的执行单元,还包括参数存储器,其包含至少一个参数,以支持在处理器被配置为隔离执行模式时的隔离指令执行;其中,所述隔离指令包括更新所述至少一个参数的隔离初始化(iso_init)指令和复位所述至少一个参数的隔离关闭(iso_close)指令之一。
附图说明
本发明的优点和特征在下面对本发明的详细描述中将变得清楚,其中:
图1A是说明根据本发明的一个实施例的逻辑操作结构的图。
图1B是说明根据本发明的一个实施例在操作***和处理器中不同单元的可访问性的图。
图1C是说明可以实现本发明的一个实施例的计算机***的图。
图2是说明根据本发明的一个实施例的用于隔离指令的结构的图。
图3是说明根据本发明的一个实施例的内部存储器的图。
图4是说明根据本发明的一个实施例的外部存储器的图。
图5是说明根据本发明的一个实施例的执行iso_init指令过程的流程图。
图6A是说明根据本发明的一个实施例在iso_init指令中执行生成函数的过程的流程图。
图6B是说明根据本发明的一个实施例在iso_init指令中执行处理器安全内核加载器函数的过程的流程图。
图7是说明根据本发明的一个实施例的执行iso_close指令的过程的流程图。
图8A是说明根据本发明的一个实施例的执行iso_enter指令的过程的流程图。
图8B是说明根据本发明的一个实施例的执行iso_exit指令的过程的流程图。
图9A是说明根据本发明的一个实施例的执行iso_config_read指令的过程的流程图。
图9B是说明根据本发明的一个实施例的执行iso_config_write指令的过程的流程图。
具体实施方式
在本发明的一个实施例中提供了一项执行隔离指令的技术。一个执行单元在平台上运行的处理器中执行一条隔离指令。该处理器被配置成正常执行模式和隔离执行模式之一。当处理器被配置为隔离执行模式时,一个参数存储器包含至少一个参数以支持执行隔离指令。
在一个实施例中,隔离指令是隔离初始化(iso_init)指令、隔离关闭(iso_colse)指令、隔离进入(iso_enter)指令、隔离退出(iso_exit)指令、隔离配置读(iso_config_read)指令和隔离配置写(iso_config_write)指令之一。参数是隔离特征字、执行模式字、逻辑处理器值、包括一个屏蔽值和一个基本值的隔离设置、出口物理地址、入口物理地址和处理器安全内核加载器物理地址。
参数存储器是内部存储器和外部存储器之一。内部存储器包括存储执行模式字的控制寄存器、逻辑处理器寄存器、存储屏蔽值的屏蔽寄存器、存储基本值的基本寄存器、帧寄存器组、存储出口地址的退出帧寄存器、存储入口地址的进入帧寄存器和存储处理器安全内核加载器地址的加载器寄存器。外部存储器包括存储器控制器中心(MCH)存储器和输入/输出控制器中心(ICH)存储器。执行模式字把处理器配置为隔离执行模式。
在iso_init指令被执行时,假如隔离区域还没有被生成的话,使得处理器生成一块由存储器中的基本值和屏蔽值定义的隔离区域;在MCH寄存器中设定隔离区域的范围;利用加载器寄存器中的处理器安全内核加载器地址,把处理器安全内核加载器复制到隔离区域;并执行该处理器安全内核加载器。在iso_init指令被执行时,还使得处理器为平台初始化隔离区域,并获得处理器安全内核的位置。使得处理器执行处理器安全内核加载器的iso_init指令使得处理器把处理器安全内核复制到隔离区域,使用包含在处理器安全内核加载器中的公共密钥验证处理器安全内核的签名,并且如果签名被验证,就执行该处理器安全内核。因此,iso_init指令保证平台或环境的状态在隔离区域被生成时是清洁的。
在iso_enter指令被执行时,使得处理器在一个退出帧中存储帧寄存器组的内容,退出帧寄存器中的出口地址指向该退出帧,并把一个进入帧加载到该帧寄存器组中,进入帧寄存器中的入口地址指向该进入帧。在iso_exit指令被执行时,使得处理器把一个退出帧加载到帧寄存器组。退出帧寄存器中的出口地址指向该退出帧。在iso_colse指令被执行时,假如一个对应的逻辑处理器要最后退出的话,使得处理器复位处理器中的隔离设置,如果该处理器要最后退出的话,并复位在MCH和ICH中的隔离设置。在iso_config_read指令被执行时,使得处理器返回和参数存储器对应的配置存储器的内容。在iso_config_write指令被执行时,使得处理器写和参数存储器对应的配置存储器的内容。
下列指令是最基本的,不可被中断的,以保证环境和/或平台的完整性:iso_enter、iso_exit、iso_close、iso_config_read、iso_config_write。在iso_enter指令被执行时,使得处理器存储在一个退出帧中的帧寄存器组的内容,退出帧寄存器中的出口地址正指向该退出帧,并把一个进入帧加载到帧寄存器组,进入帧寄存器中的入口地址正指向该进入帧。在iso_exit指令被执行时,使得处理器把一个退出帧加载到帧寄存器组。退出帧寄存器中的出口地址指向该退出帧。在iso_colse指令被执行时,假如一个对应的逻辑处理器要最后退出的话,使得处理器复位处理器中的隔离设置,假如该处理器要最后退出的话,并复位MCH和ICH中的隔离设置。在iso_config_read指令被执行时,使得处理器返回和参数存储器对应的配置存储器的内容。在iso_config_write指令被执行时,使得处理器写和参数存储器对应的配置存储器的内容。
在下列描述中,为说明的目的,给出了许多细节以便提供本发明的一个详尽的理解。但是对于本领域的技术人员来说,为实现本发明,并非必需这些详细而明确的细节将显而易见。在其他例子中,为避免使本发明显得晦涩,公知的电气结构和电路被以块状方框图的形式示出。
结构综述
为计算机***或平台提供安全的一个原理是隔离执行结构的概念。隔离执行结构包括同计算机***或平台的操作***直接或间接交互作用的硬件和软件部件的逻辑的和物理的定义。操作***和处理器可能具有被称为环的几个等级的层次结构,与各种操作模式对应。环是被设计用于执行操作***内专门任务的软件和硬件部件的逻辑划分。该划分一般基于特权的程度或等级,也即变动平台的能力。例如,环-0是最内层的环,处于层次结构的最高层。环-0包含最关键、最有特权的部件。此外,环-0内的模块也可以访问特权较低一些的数据,反之则不然。环-3是最外层的环,处于层次结构的最底层。环-3一般包含用户或应用程序层并具有最低的特权。环-1和环-2表示具有减低的特权的中间环。
图1A是说明根据本发明的一个实施例的逻辑操作结构50的图。逻辑操作结构50是操作***和处理器的部件的抽象。逻辑操作结构50包括环-0 10、环-1 20、环-2 30、环-3 40和处理器安全内核(hub)加载器52。处理器安全内核加载器52是处理器执行程序(PE,processorexecutive)处置器(handler)的一个实例。该PE处置器用于处理和/或管理处理器执行程序(PE),这将在后面讨论。逻辑操作结构50有两种操作模式:正常执行模式和隔离执行模式。逻辑操作结构50中的每个环都可以在两种模式下操作。处理器安全内核加载器52仅在隔离执行模式下操作。
环-0 10包括两部分:正常执行环-0 11和隔离执行环-0 15。正常执行环-0 11包括对操作***非常关键的,通常被称为核的软件模块。这些软件模块包括基本操作***(例如,核)12、软件驱动程序13和硬件驱动程序14。隔离执行环-0 15包括操作***(OS)安全内核16和处理器安全内核18。OS安全内核16和处理器安全内核18分别是OS执行程序(OSE)和处理器执行程序(PE)的实例。OSE和PE是执行实体的一部分,这些执行实体在和隔离区域70和隔离执行模式相关的安全环境中运行。处理器安全内核加载器52是保存在***内一个芯片组中的受保护引导程序加载器代码,负责把处理器安全内核18从处理器或芯片组中加载到隔离区域,这将在后面说明。
类似地,环-1 20、环-2 30和环-3 40分别包括正常执行环-1 21、环2-31、环-3 41和隔离执行环-1 25、环-2 35和环-3 45。特别地,正常执行环-3包括N个应用程序421到42N而隔离执行环-3包括K个小应用程序(applet)461到46K。
隔离执行结构的一个概念是在***存储器中生成一个被称为隔离区域的隔离区,它受到计算机***中处理器和芯片组的双重保护。隔离区也可以在高速缓冲存储器中,由翻译后援(TLB,translation look aside)访问校验来保护。只允许从处理器的前端总线(FSB,front side bus)对该隔离区访问,采用被称为隔离读和写周期的特殊的总线(例如,存储器读和写)周期进行。该特殊总线周期也被用于巡视(snooping)。隔离读和写周期由运行在隔离执行模式中的处理器发出。隔离执行模式用处理器中的特权指令,与处理器安全内核加载器52相结合来初始化。处理器安全内核加载器52验证并把一个环-0安全内核软件模块(例如,处理器安全内核18)加载到隔离区域。处理器安全内核18为隔离执行提供涉及硬件的服务。
处理器安全内核18的任务之一是验证和并把环-0 OS安全内核16加载到隔离区域,并产生一个对平台、处理器安全内核18和操作***安全内核16的组合唯一的密钥层次结构的根。操作***安全内核16提供到基本OS 12(例如,操作***中不受保护的段)中服务的链接,提供隔离区域内的页面管理,并负责加把包括小应用程序461到46K的环-3应用程序模块45加载到隔离区域内划分出的受保护页面。操作***安全内核16也可以加载环-0支持模块。
操作***安全内核16可以选择支持隔离区域和普通(例如,非隔离的)存储器之间数据的分页(paging)。如果这样,则操作***安全内核16也负责在把页面回收(evict)到普通存储器前将隔离区域页面加密和散列处理(hash),并负责在页面恢复时校验页面内容。隔离模式小应用程序461到46K和它们的数据对来自其他小应用程序以及非隔离区域的应用程序(例如,421到42N)、动态链接库(DLL)、驱动器以至于基本操作***12的所有软件攻击都是抗篡改和抗监控的。只有处理器安全内核18或者操作***安全内核16可以干涉或监控小应用程序的执行。
图1B是说明根据本发明的一个实施例的操作***10和处理器中各个单元可访问性的框图。为说明目的,只示出了环-0 10和环-3 40的单元。逻辑操作结构50中的各个单元根据它们的环的层次和执行模式来访问可访问物理存储器60。
可访问物理存储器60包括隔离区域70和非隔离区域80。隔离区域70包括小应用程序页面72和安全内核页面74。非隔离区域包括应用程序页面82和操作***页面84。只有操作在隔离执行模式下的操作***的单元和处理器可以访问隔离区域70。非隔离区域80对于环-0操作***的所有单元和处理器都是可访问的。
包括基本OS 12、软件驱动器13和硬件驱动器14的正常执行环-011既可以访问OS页面84也可以访问应用程序页面82。包括应用程序421到42N的正常执行环-3只能访问应用程序页面82。然而正常执行环-0 11和环-3 41均不能访问隔离区域70。
包括OS安全内核16和处理器安全内核18的隔离执行环-0 15既可以访问包括小应用程序页面72和安全内核页面74的隔离区域70,也可以访问包括应用程序页面82和OS页面84的非隔离区域。包括小应用程序461到46K的隔离执行环-3 45只能访问应用程序页面82和小应用程序页面72。小应用程序461到46K驻留于隔离区域70。
图1C是说明了可以实现本发明的一个实施例的计算机***100的图。计算机***100包括处理器110、主机总线120、存储器控制器中心(MCH)130、***存储器140、输入/输出控制器中心(ICH)150、非易失性存储器或***闪存160、海量存储设备170、输入/输出设备175、令牌总线180、母板(MB)令牌182、读取器184和令牌(token)186。MCH 130可以被集成到集成了诸如隔离执行模式、主机-***设备总线接口、存储器控制的多项功能的芯片组中。类似地,ICH 150也可以同MCH 130一起或分开集成到芯片组中以执行I/O功能。为清楚起见,并非所有的外部设备总线都被示出。***100也可以包括例如***部件互联(PCI)、图形加速端口(AGP)、工业标准结构(ISA)总线和通用串行总线(USB)等的***设备总线。
处理器110表示任意一种结构类型的中央处理单元,例如复杂指令集计算机(CISC)、精简指令集计算机(RISC)、超长指令字(VLIW)或混合结构。在一个实施例中,处理器110和英特尔结构(IA)的处理器兼容,例如奔腾TM系列、IA-32TM系列和IA-64TM系列。处理器110包括正常执行模式112和隔离执行电路115。在正常执行模式112中,处理器110在非安全环境或者在没有隔离执行模式提供的安全特征的正常环境下运行。隔离执行电路115提供了允许处理器110在隔离执行模式下运行的机制。隔离执行电路115为隔离执行模式提供了软件和硬件支持。该支持包括为隔离执行进行配置,定义隔离区域,定义隔离指令(例如,解码和执行),产生隔离访问总线周期和产生隔离模式中断。
在一个实施例中,计算机***100可以是一个单处理器***,例如一台只有一个主中央处理单元,例如处理器110的桌上型计算机。在其他实施例中,计算机***100可以包括多个处理器,例如处理器110、110a、110b等,如图1C所示。这样,计算机***100可以是一个具有任意数量处理器的多处理器计算机***。例如,多处理器计算机***100可以作为服务器或工作站环境的一部分来运行。处理器110的基本描述和操作将在下面详细讨论。本领域技术人员将能理解处理器110的基本描述和操作适用于如图1C所示的其他处理器110a和110b,也适用于根据本发明的一个实施例可以被用在多处理器计算机***100中的任意数量的其他处理器。
处理器110也可以具有多个逻辑处理器。逻辑处理器,有时候被称为线程,是物理处理器内具有根据某种划分策略被分配的结构状态和物理资源的一个功能单元。在本发明的范围内,术语“线程”和“逻辑处理器”用来表达相同物。多线程处理器是具有多个线程或多个逻辑处理器的处理器。多处理器***(例如,包含处理器110、110a和110b的***)可以具有多个多线程处理器。
主机总线120提供了允许处理器110或者处理器110、110a和110b与其他处理器或设备,如MCH 130,通信的接口信号。除正常模式外,主机总线120还为隔离访问总线模式提供了对应的接口信号,用于处理器110被配置为隔离执行模式时的存储器读和写周期。隔离访问总线模式被应用于在处理器110处于隔离执行模式时开始的存储器访问。如果地址在隔离区域地址范围内并且处理器110被初始化为隔离执行模式,则隔离访问总线模式也被应用于指令预读取和高速缓冲存储器回写周期。如果隔离访问总线模式被应用并且处理器110被初始化为隔离执行模式,则处理器110响应巡视周期,到达隔离区域地址范围内的一个被缓存的地址。
MCH 130给存储器和输入/输出设备,如***存储器140和ICH 150,提供控制和配置。MCH 130提供接口电路以识别和伺服存储器参考总线周期上的隔离访问应用,存储器参考总线周期包括隔离存储器读和写周期。此外,MCH 130有表示在***存储器140中的隔离区域的存储器范围寄存器(例如,基本和长度寄存器)。一旦被配置,MCH 130就放弃任何对未使隔离访问总线模式被应用的隔离区域的访问。
***存储器140存储***代码和数据。***存储器140一般是用动态随机访问存储器(DRAM)或者静态随机访问存储器(SRAM)来实现。***存储器140包括可访问的物理存储器60(图1B所示)。可访问的物理存储器包括被加载的操作***142、隔离区域70(图1B所示)以及隔离控制和状态空间148。被加载的操作***142是被加载到***存储器140的操作***的一部分。被加载的OS 142一般是由在诸如引导只读存储器(ROM)的引导存储器内的某种引导代码从海量存储设备中加载的。如图1B所示,隔离区域70是处理器110在隔离执行模式下运行时定义的存储器区域。对隔离区域70的访问是受限的并由处理器110和/或MCR 130或其他集成了隔离区域功能的芯片组强制执行。隔离控制和状态空间148是一个类似于输入/输出口(I/O)、由处理器110和/或MCH 130定义的独立地址空间。隔离控制和状态空间148主要包括隔离执行控制和状态寄存器。隔离控制和状态空间148不覆盖任何现存地址空间并用隔离总线周期访问。***存储器140也可以包括未示出的其他程序或数据。
ICH 150表示***内具有隔离执行功能的一个已知单点。为清楚起见,只有一个ICH 150被示出。***100可以具有很多类似于ICH 150的ICH。如果有多个ICH,则一个被指定的ICH被选择以控制隔离区域配置和状态。在一个实施例中,该选择由一个外部短接引线(strapping pin)执行。本领域的技术人员知道,可以使用其他的选择方法,包括使用可编程配置寄存器。ICH 150具有很多被设计用于支持除传统I/O功能以外的隔离执行模式的功能。特别是ICH 150包括隔离总线周期接口152、处理器安全内核加载器52(图1A所示)、摘要存储器154、加密密钥存储器155、隔离执行逻辑处理器管理器156和令牌总线接口159。
隔离总线周期接口152包括与隔离总线周期信号接口的电路,以识别和伺服隔离总线周期,诸如隔离读和写总线周期。如图1A所示,处理器安全内核加载器52包括一个处理器安全内核加载器代码和它的摘要(例如,散列)值。处理器安全内核加载器52通过执行适当的隔离指令(例如,Iso_Init)来调用并被传递到隔离区域70。从隔离区域80,处理器安全内核加载器52把处理器安全内核18从***闪存存储器(例如,在非易失性存储器160中的处理器安全内核代码18)中复制到隔离区域70,验证并记录它的完整性,并管理一个用于保护处理器安全内核的秘密的对称密钥。在一个实施例中,处理器安全内核加载器52在只读存储器(ROM)中实现。为安全的目的,处理器安全内核加载器52是不可修改,抗篡改和不可替换的。摘要存储器154一般在RAM中实现,存储被加载的处理器安全内核18、操作***安全内核16和任何其他被加载到隔离执行空间中的关键模块(例如,环-0模块)的摘要(例如,散列)值。加密密钥存储器155存有对***100的平台而言是唯一的对称加密/解密密钥。在一个实施例中,加密密钥存储器155包括在制造时可以被编程的内部熔丝(fuse)。或者,加密密钥存储器155也可以用随机数发生器和一条引线的短接产生。隔离执行逻辑处理器管理器156管理在隔离执行模式下运行的逻辑处理器的运行。在一个实施例中,隔离执行逻辑处理器管理器156包括一个跟踪参与到隔离执行模式中的逻辑处理器数量的逻辑处理器计数寄存器。令牌总线接口159与令牌总线180相接口。处理器安全内核加载器摘要、处理器安全内核摘要、操作***安全内核摘要和可选附加摘要的组合表示整个隔离执行摘要,被称为隔离摘要。隔离摘要是鉴别控制隔离执行配置和运行的环-0代码的指纹。隔离摘要用于证明或者检验当前的隔离执行的状态。
非易失性存储器160存储非易失性信息。一般非易失性存储器160在闪存存储器中实现。非易失性存储器160包括处理器安全内核18。处理器安全内核18提供了隔离区域70最初的建立和低层的管理,包括校验、加载和记录操作***安全内核16,以及管理用于保护操作***安全内核的秘密的对称密钥。处理器安全内核18也可以为由其他硬件提供的低层安全服务提供应用程序接口(API)的抽象(abstraction)。处理器安全内核18也可以由原始设备生产商(OEM)或者操作***销售商(OSV)通过引导磁盘分发。
海量存储设备170存储诸如代码(例如,处理器安全内核18)、程序,文件、数据、应用程序(例如,应用程序421到42N)、小应用程序和操作***这样的文档信息。海量存储设备170可以包括紧致盘(CD)ROM 172、软盘174和硬(盘)驱动器176以及任何其他磁性或光学存储设备。海量存储设备170提供了读取机器可读介质的机制。如果采用软件实现,本发明的各个单元是完成必要任务的代码段。程序或代码段可以被存储在处理器可读介质中或者被包含在载波中的计算机数据信号或者被载波调制的信号在传输介质上传输。“处理器可读介质”可以包括任何可以存储或传送信息的介质。处理器可读介质的例子包括电子电路、半导体存储器设备、ROM,闪存存储器、可擦除可编程ROM(EPROM)、软盘、紧致盘CD-ROM、光盘、硬盘、光纤光学介质、射频(RF)链路等。计算机数据信号可以包括任何可以沿传输介质,例如电子网络信道、光纤、空气,电磁场,射频链路等传播的信号。代码段可以通过计算机网络例如国际互联网、企业内部网等下载。
I/O设备175可以包括任何完成I/O功能的I/O设备。I/O设备175的例子包括输入设备(例如,键盘、鼠标,轨迹球和定位设备)控制器、媒体卡(例如,声音、视频,图形)、网卡和任何其他***控制器。
令牌总线180提供了***中ICH 150和各种令牌之间的接口。令牌是完成具有安全功能的专用输入/输出功能的设备。令牌具有类似于智能卡的特点,包括至少一个保留目的的公共/私人密钥对和用私人密钥标记数据的能力。与令牌总线180相连的令牌的例子包括一个母板令牌182、令牌读取器184和其他的便携式令牌186(例如,智能卡)。ICH 150中的令牌总线接口159通过令牌总线180和ICH 150相连并保证在被命令检验隔离执行的状态时,对应的令牌(例如,母板令牌182、令牌186)只标记有效的隔离摘要信息。为安全目的,令牌应该被连接到摘要存储器。
隔离指令
图2是说明根据本发明的一个实施例的在图1C中所示的隔离执行电路115的一部分的图。隔离执行电路115包括执行单元230和参数存储器240。
执行单元230在处理器110内执行一条隔离指令,如图1C所示。如上述讨论,处理器110在包括MCR 130、***存储器140、ICH 150和令牌总线的平台中运行,如图1C所示。此外,处理器110被配置为正常执行模式和隔离执行模式之一。执行单元230可以包括对隔离指令进行解码的解码器、执行被解码指令中的任务的子执行单元、完成算术逻辑功能的算术逻辑单元和相关的寄存器。执行单元230接收隔离指令210。
隔离指令210也可以是一个宏指令,它包括很多微指令,或汇编语言级的指令。隔离指令210也可以是一个高级语言指令或者一个函数,一个例程,一个用高级语言写成的子程序。以下,术语“指令”是指处理器110(图1C)所执行的一个任务或函数的抽象概念。该任务或函数可以用单个操作、一系列微操作、一个微代码例程、一条宏指令、一个汇编语言例程或函数、一个高级语言的说明、一个高级语言子例程或子程序或函数、或者专用硬件电路来实现。
隔离指令210包括很多指令。在一个实施例中,这些指令包括隔离初始化(iso_init)指令212、隔离关闭(iso_enter)指令214、隔离进入(iso_enter)指令216、隔离退出(iso_exit)指令218,隔离配置读(iso_config_read)指令222和隔离配置写(iso_config_write)指令224。io_init指令212也可以被称为隔离生成(iso_create)指令。
参数存储器240包含至少一个用于在处理器110被配置为隔离执行模式时支持执行隔离指令210的参数。参数存储器240包括一个内部存储器232和一个外部存储器234。内部存储器232对处理器110来说是内部的,而外部存储器234对处理器110来说是外部的。参数是隔离特征字、执行模式字、逻辑处理器值、包括屏蔽值和基本值的隔离设置、帧、出口物理地址、入口物理地址和处理器安全内核加载器物理地址之一。
图3是说明根据本发明的一个实施例的在图2中所示的内部存储器232的框图。内部存储器232包括特征寄存器310、处理器控制寄存器320、逻辑处理器寄存器330、隔离设置寄存器340、帧寄存器组350、退出帧寄存器360、进入帧寄存器370和加载器寄存器380。
特征寄存器310存储隔离特征字。隔离特征字表明隔离指令出现于处理器110中以及出现的是隔离指令的哪个特征。特征的例子可以包括隔离指令的类型,一个随机数和一个随机数状态。处理器控制寄存器320存储执行模式字322。执行模式字322保存一位以表示处理器是否被配置为隔离执行模式。在一个实施例中,执行模式字只能由把控制传送到隔离执行模式或从隔离执行模式取回控制的指令来访问。这些指令的例子包括iso_int、iso_enter和iso_exit指令。
逻辑处理器寄存器330存储逻辑处理器值332。逻辑处理器值332表示进入隔离执行模式的逻辑处理器的数量。一个物理处理器可能具有多个逻辑处理器,每一个逻辑处理器与一个逻辑处理器对应。开始时,逻辑处理器值332是零。当一个逻辑处理器进入隔离执行模式时,逻辑处理器值332增加1。当一个逻辑处理器退出隔离执行模式时,逻辑处理器值332减小1。逻辑处理器值332有一个最大值以限制处于隔离执行模式的逻辑处理器的数量。当一个逻辑处理器退出并且逻辑处理器值332减小到零时,该逻辑处理器知晓它是将要从隔离执行模式中退出的最后一个逻辑处理器。
帧寄存器组350存储了对应于一帧的很多值。一帧包括很多在退出或进入隔离执行模式时需要被保存或恢复的很多寄存器值。一般这些帧的值是跟踪处理器状态时必需的值。在一个实施例中,处理器是奔腾型。帧信息包括控制寄存器3(CR3)、控制寄存器4(CR4)、中断描述符任务寄存器(IDTR)基准、IDTR界限、全局描述符任务寄存器(GDTR)基本值、GDTR界限值、任务寄存器(TR)值、扩展指令指针(EIP)、代码段(CS)值、CS描述符、扩展标志(EFLAGS)、扩展堆栈指针(ESP)、堆栈段(SS)值和SS描述符。与退出或进入隔离执行模式对应的帧分别被称为退出帧或进入帧。
退出帧寄存器360存储出口地址362。出口地址362是退出帧的物理地址。进入帧寄存器370存储入口地址372。入口帧地址372是进入帧的物理地址。加载寄存器380存储处理器安全内核加载器地址382。处理器安全内核加载器地址382是处理器安全内核加载器52的物理地址。
图4是说明根据本发明的一个实施例的在图2中所示的外部存储器234的框图。外部存储器234包括MCH存储器410和ICH存储器450。
MCH存储器410在MCH中并且是如图1C所示隔离区域控制135的一部分。MCH存储器410包括MCH逻辑处理器寄存器420、MCH屏蔽寄存器430和MCH基本寄存器440。MCH逻辑处理器寄存器420存储MCH逻辑处理器值422。MCH逻辑处理器值422表示被配置为使用如图1C所示***存储器140中的隔离区域70的逻辑处理器的数量。MCH屏蔽寄存器430和MCH基本寄存器440分别存储MCH屏蔽值432和MCH基本值442。MCH屏蔽值432和MCH基本值442用于定义隔离区域70。
ICH存储器450在ICH中如图1C所示。ICH存储器450包括ICH逻辑处理器寄存器460、ICH屏蔽寄存器470和ICH基本寄存器480。ICH逻辑处理器寄存器460存储ICH逻辑处理器值462。ICH逻辑处理器值462表示被配置为使用如图1C所示***存储器140中的隔离区域70的逻辑处理器的数量。ICH屏蔽寄存器470和ICH基本寄存器480分别存储ICH屏蔽值472和ICH基本值482。ICH屏蔽值472和ICH基本值482用于定义隔离区域70。ICH逻辑处理器值462是指寄存器中的全部逻辑处理器,包括那些分处于不同的物理处理器中的。但是MCH逻辑处理器值422只指那些在与对应的MCH直接连接的物理处理器中的逻辑处理器。
图5是说明根据本发明的一个实施例的执行iso_init指令的过程500的流程图。
在开始后,在块510中,过程500为初始化做准备。该准备可以包括受保护非分页模式的验证,隔离区域屏蔽和基本值的有效性的验证。然后,在块520中,过程500确定是否隔离区域已经被生成。如果已生成,过程500前进到块540。否则,在块530中,过程500生成一块隔离区域。生成的过程将在图6A中说明。
然后在块540中,过程500在MCH寄存器和处理器寄存器中设置范围。这包括更新处理器屏蔽和基本寄存器和MCH屏蔽和基本寄存器。接着在块550中,过程500使用在加载器寄存器中的处理器安全内核加载器地址把处理器安全内核加载器从ICH中复制到隔离区域。
然后在块560中,过程500为平台初始化隔离区域。然后在块570中,过程500获得处理器安全内核的一个位置或物理地址。接着在块580中,过程500通过执行处理器安全内核加载器代码把控制传递给处理器安全内核。然后过程500结束。
图6A是说明根据本发明的一个实施例的执行在iso_init指令中的生成函数的过程530的流程图。
在开始后,在块610中,过程530确定处理器安全内核加载器的大小是否小于或等于由屏蔽值定义的隔离区域的范围。如果不是,则隔离区域不足够大以存储整个处理器安全内核加载器,过程530在块615中产生一个失败或错误状态。否则在块620中,过程530通过设置执行模式字中的适当位而把处理器配置为隔离执行模式。
然后在块625中,过程530确定该处理器是否是第一个要生成隔离区域的处理器。如果不是,则在块630中,过程530确定是否处理器安全内核已经被初始化。如果处理器安全内核尚未被初始化,则过程530在块635中产生一个失败或错误状态。如果处理器安全内核已经被恰当地初始化,则在块640中,过程530读取包括屏蔽和基本值的全局处理器设置。然后在块645中,过程530通过把全局设置传递到处理器设置中来初始化处理器设置。然后过程530结束或者返回主过程。
如果该处理器是第一个要生成隔离区域的处理器,则在块650中,过程530确定模式是否正待初始化。这可以通过读取ICH中的一个状态值来实现。如果状态表明模式不在等待初始化,则在块655中,过程530产生一个失败或错误状态。否则,过程530在块660中确定是否已经有一个隔离区域。如果已经有一个隔离区域,则过程530前进到块670。如果没有隔离区域,则在块665中,过程530在ICH中保存设置(例如,基本和屏蔽值)。然后在块670中,过程530从ICH中获得设置(例如,基本和屏蔽值)。然后过程530结束或者返回主过程。
图6B是说明根据本发明的一个实施例在iso_init指令中执行处理器安全内核加载器函数的过程580的流程图。
在开始后,在块675中,过程580使用在处理器安全内核加载器中的处理器安全内核物理地址来把处理器安全内核复制到隔离区域中。然后在块680中,过程580使用在处理器安全内核加载器中的公共密钥来验证处理器安全内核的签名。接着在块685中,过程580确定是否该签名通过了验证。如果未通过验证,过程580在块690中产生一个失败或错误状态。否则在块695中,过程580执行处理器安全内核。然后过程580结束或者返回主过程。
图7是说明根据本发明的一个实施例的执行iso_close指令的过程700的流程图。
在开始后,在块710中,过程700为关闭做准备。该准备可以包括获得退出帧和保存当前IDTR界限。然后在块720中,过程700通过配置隔离执行模式字来设置隔离执行模式。接着在块730中,过程700通过清除指向处理器入口帧的指针来移去处理器的逻辑处理器。
然后在块740中,过程700确定这个是否是最后一个要从隔离执行模式退出的逻辑处理器。如果不是,则过程700前进到块760。否则,过程700在块750中复位处理器的隔离设置值(例如,基本和屏蔽值)。然后在块760中,过程700确定这个是否是最后一个要从隔离执行模式退出的处理器。如果不是,过程700前进到块780。否则,过程700在块770中复位MCH和ICH中的隔离设置。然后在块780中,过程700通过写执行模式字来清除隔离执行模式。然后,过程700结束。
图8A是说明根据本发明的一个实施例的执行iso_enter指令的过程800的流程图。
在开始后,过程800在块810中为进入做准备。该准备可以包括帧地址的验证和当前控制寄存器和IDTR界限的保存。然后在块820中,过程800通过配置执行模式字来设置隔离执行模式。接着在块830中,过程800把帧寄存器组的内容存储到退出帧中。退出帧寄存器中的出口地址指向退出帧。然后在块840中,过程800把一个进入帧加载到帧寄存器组中。进入帧寄存器中的入口地址指向进入帧。然后,过程800结束。
图8B是说明根据本发明的一个实施例的执行iso_exit指令的过程850的流程图。
在开始后,过程850在块860中为退出做准备。该准备可以包括验证帧地址和清除IDTR界限以保证如果在恢复帧之前有机器校验的话对正确的处理程序恰当调度。然后在块870中,过程850把一个退出帧加载到帧寄存器组中。退出帧寄存器中的出口地址指向退出帧。然后,过程850结束。
图9A是说明根据本发明的一个实施例的执行iso_config_read指令的过程900的流程图。
在开始后,过程900在块910中为读取配置存储器做准备。该准备可以包括验证配置存储器的地址。然后在块920中,过程900返回与参数存储器对应的配置存储器的内容。然后,过程900结束。
图9B是说明根据本发明的一个实施例的执行iso_config_write指令的过程950的流程图。
在开始后,过程950在块960中为写入配置存储器做准备。该准备可以包括验证配置存储器的地址。然后在块970中,过程950写与参数存储器对应的配置存储器的内容。然后,过程950结束。
虽然本发明是参考说明性的实施例进行描述的,但是不应该限制性地解释这些描述。说明性实施例的各种变化以及本发明的其他实施例对于本发明所属技术领域的本领域技术人员而言是清楚的,因而被认为是处于本发明的精神和范围内。
Claims (45)
1.一种装置,包括:
执行单元,以在处理器内执行隔离指令,该处理器运行在一个平台中,该处理器被配置为正常执行模式和隔离执行模式之一;和
参数存储器,包含至少一个参数,以支持在处理器被配置为隔离执行模式时的隔离指令执行;
其中,所述隔离指令包括更新所述至少一个参数的隔离初始化(iso_init)指令和复位所述至少一个参数的隔离关闭(iso_close)指令之一。
2.如权利要求1所述的装置,其中,隔离指令包括对所述参数存储器中的逻辑处理器寄存器进行增加的隔离进入(iso_enter)指令、对所述逻辑处理器寄存器进行减小的隔离退出(iso_exit)指令、对配置存储器进行读的隔离配置读(iso_config_read)指令和对所述配置存储器进行写的隔离配置写(iso_config_write)指令之一。
3.如权利要求2所述的装置,其中,至少一个参数是隔离特征字、执行模式字、逻辑处理器值、包括屏蔽值和基本值的隔离设置、帧、出口物理地址、入口物理地址和处理器安全内核加载器物理地址之一。
4.如权利要求3所述的装置,其中,参数存储器是内部存储器和外部存储器之一。
5.如权利要求4所述的装置,其中,内部存储器包括存储隔离特征字的特征寄存器、存储执行模式字的控制寄存器、存储逻辑处理器值的逻辑处理器寄存器、存储屏蔽值的屏蔽寄存器、存储基本值的基本寄存器、存储帧的帧寄存器组、存储出口地址的退出帧寄存器、存储入口地址的进入帧寄存器和存储处理器安全内核加载器地址的加载器寄存器。
6.如权利要求5所述的装置,其中,外部存储器包括在MCH中的存储器控制器中心(MCH)存储器和在ICH中的输入/输出控制器中心(ICH)存储器。
7.如权利要求6所述的装置,其中,执行模式字把处理器配置为隔离执行模式。
8.如权利要求7所述的装置,其中,当执行iso_init指令时,使得处理器:
假如隔离区域还没有被生成的话,在存储器中生成隔离区域,该隔离区域由基本值和屏蔽值定义;
在MCH存储器中设置隔离区域的范围;
利用加载器寄存器中的处理器安全内核加载器地址,把处理器安全内核加载器复制到隔离区域;并且
执行该处理器安全内核加载器。
9.如权利要求8所述的装置,其中,当执行iso_init指令时,还使得处理器:
为平台初始化隔离区域;并且
获取处理器安全内核的位置。
10.如权利要求9所述的装置,其中,使得处理器执行处理器安全内核加载器的iso_init指令使得处理器:
把处理器安全内核复制到隔离区域;并且
使用包含在处理器安全内核加载器中的公共密钥来校验处理器安全内核的签名;并且
如果签名被验证,则执行该处理器安全内核。
11.如权利要求7所述的装置,其中,当执行iso_close指令时,使得处理器:
假如一个对应的逻辑处理器要最后退出,则复位处理器中的隔离设置;并且
假如该处理器要最后退出,则复位在MCH和ICH中的隔离设置。
12.如权利要求7所述的装置,其中,当执行iso_enter指令时,使得处理器:
在退出帧中存储帧寄存器组的内容,退出帧寄存器中的出口地址指向该退出帧;并且
把进入帧加载到帧寄存器组,进入帧寄存器中的入口地址指向该进入帧。
13.如权利要求7所述的装置,其中,当执行iso_exit指令时,使得处理器:
把退出帧加载到帧寄存器组,退出帧寄存器中的出口地址指向该退出帧。
14.如权利要求7所述的装置,其中,当执行iso_config_read指令时,使得处理器:
返回与参数存储器对应的配置存储器的内容。
15.如权利要求7所述的装置,其中,当执行iso_config_write指令时,使得处理器:
写与参数存储器对应的配置存储器的内容。
16.一种方法,包括:
由在一个平台中运行的处理器内的执行单元执行隔离指令,该处理器被配置为正常执行模式和隔离执行模式之一;和
当处理器被配置为隔离执行模式时,由包含至少一个参数的参数存储器支持隔离指令执行;
其中,所述执行隔离指令的步骤包括执行更新所述至少一个参数的隔离初始化(iso_init)指令和复位所述至少一个参数的隔离关闭(iso_close)指令之一的步骤。
17.如权利要求16所述的方法,其中,所述执行隔离指令的步骤还包括执行对所述参数存储器中的逻辑处理器寄存器进行增加的隔离进入(iso_enter)指令、对所述逻辑处理器寄存器进行减小的隔离退出(iso_exit)指令、对配置存储器进行读的隔离配置读(iso_config_read)指令和对所述配置存储器进行写的隔离配置写(iso_config_write)指令之一的步骤。
18.如权利要求17所述的方法,其中,至少一个参数是隔离特征字、执行模式字、逻辑处理器值、包括屏蔽值和基本值的隔离设置、帧、出口物理地址、入口物理地址和处理器安全内核加载器物理地址之一。
19.如权利要求18所述的方法,其中,所述的支持隔离指令执行的步骤包括由参数存储器支持隔离指令执行的步骤,所述参数存储器是内部存储器和外部存储器之一。
20.如权利要求19所述的方法,其中,所述的支持隔离指令执行的步骤包括由内部参数存储器支持隔离指令执行的步骤,所述内部存储器包括存储隔离特征字的特征寄存器、存储执行模式字的控制寄存器、存储逻辑处理器值的逻辑处理器寄存器、存储屏蔽值的屏蔽寄存器、存储基本值的基本寄存器、存储帧的帧寄存器组、存储出口地址的退出帧寄存器、存储入口地址的进入帧寄存器和存储处理器安全内核加载器地址的加载器寄存器。
21.如权利要求20所述的方法,其中,所述的支持隔离指令执行的步骤包括由参数存储器支持隔离指令执行的步骤,所述外部存储器包括在MCH中的存储器控制器中心(MCH)存储器和在ICH中的输入/输出控制器中心(ICH)存储器。
22.如权利要求21所述的方法,其中,执行模式字把处理器配置为隔离执行模式。
23.如权利要求22所述的方法,其中,执行iso_init指令包括:
假如隔离区域还没有被生成的话,在存储器中生成隔离区域,该隔离区域由基本值和屏蔽值定义;
在MCH存储器中设置隔离区域的范围;
利用加载器寄存器中的处理器安全内核加载器地址,把处理器安全内核加载器复制到隔离区域;并且
执行该处理器安全内核加载器。
24.如权利要求23所述的方法,其中,执行iso_init指令还包括:
为平台初始化隔离区域;并且
获取处理器安全内核的位置。
25.如权利要求24所述的方法,其中,执行处理器安全内核加载器包括:
把处理器安全内核复制到隔离区域;
使用包含在处理器安全内核加载器中的公共密钥来校验处理器安全内核的签名;并且
如果签名被验证,则执行该处理器安全内核。
26.如权利要求22所述的方法,其中,执行iso_close指令包括:
假如一个对应的逻辑处理器要最后退出,则复位处理器中的隔离设置;并且
假如该处理器要最后退出,复位在MCH和ICH中的隔离设置。
27.如权利要求22所述的方法,其中,执行iso_enter指令包括:
在退出帧中存储帧寄存器组的内容,退出帧寄存器中的出口地址指向该退出帧;并且
把进入帧加载到帧寄存器组,进入帧寄存器中的入口地址指向该进入帧。
28.如权利要求22所述的方法,其中,执行iso_exit指令包括:
把退出帧加载到帧寄存器组,退出帧寄存器中的出口地址指向该退出帧。
29.如权利要求22所述的方法,其中,执行iso_config_read指令包括:
返回与参数存储器对应的配置存储器的内容。
30.如权利要求22所述的方法,其中,执行iso_config_write指令包括:
写与参数存储器对应的配置存储器的内容。
31.一种***包括:
芯片组;
连接到芯片组的具有隔离存储器区域的存储器;和
连接到芯片组和存储器的在一个平台中运行的处理器,该处理器具有隔离指令执行电路,该处理器被配置为正常执行模式和隔离执行模式之一,隔离指令执行电路包括:
执行隔离指令的执行单元,和
参数存储器,包含至少一个参数,以支持在处理器被配置为隔离执行模式时的隔离指令执行;其中,所述隔离指令包括更新所述至少一个参数的隔离初始化(iso_init)指令和复位所述至少一个参数的隔离关闭(iso_close)指令之一。
32.如权利要求31所述的***,其中,隔离指令还包括对所述参数存储器中的逻辑处理器寄存器进行增加的隔离进入(iso_enter)指令、对所述逻辑处理器寄存器进行减小的隔离退出(iso_exit)指令、对配置存储器进行读的隔离配置读(iso_config_read)指令和对所述配置存储器进行写的隔离配置写(iso_config_write)指令之一。
33.如权利要求32所述的***,其中,至少一个参数是隔离特征字、执行模式字、逻辑处理器值、包括屏蔽值和基本值的隔离设置、帧、出口物理地址、入口物理地址和处理器安全内核加载器物理地址之一。
34.如权利要求33所述的***,其中,参数存储器是内部存储器和外部存储器之一。
35.如权利要求34所述的***,其中,内部存储器包括存储隔离特征字的特征寄存器,存储执行模式字的控制寄存器、存储逻辑处理器值的逻辑处理器寄存器、存储屏蔽值的屏蔽寄存器、存储基本值的基本寄存器、存储帧的帧寄存器组、存储出口地址的退出帧寄存器、存储入口地址的进入帧寄存器和存储处理器安全内核加载器地址的加载器寄存器。
36.如权利要求35所述的***,其中,外部存储器包括在MCH中的存储器控制器中心(MCH)存储器和在ICH中的输入/输出控制器中心(ICH)存储器。
37.如权利要求36所述的***,其中,执行模式字把处理器配置为隔离执行模式。
38.如权利要求37所述的***,其中,当执行iso_init指令时,使得处理器:
假如隔离区域还没有被生成的话,在存储器中生成隔离区域,该隔离区域由基本值和屏蔽值定义;
在MCH存储器中设置隔离区域的范围;
利用加载器寄存器中的处理器安全内核加载器地址,把处理器安全内核加载器复制到隔离区域;并且
执行该处理器安全内核加载器。
39.如权利要求38所述的***,其中,当执行iso_init指令时,还使得处理器:
为平台初始化隔离区域;并且
获取处理器安全内核的位置。
40.如权利要求39所述的***,其中,使得处理器执行处理器安全内核加载器的iso_init指令使得处理器:
把处理器安全内核复制到隔离区域;并且
使用包含在处理器安全内核加载器中的公共密钥来校验处理器安全内核的签名;并且
如果签名被验证,执行该处理器安全内核。
41.如权利要求37所述的***,其中,当执行iso_close指令时,使得处理器:
假如一个对应的逻辑处理器要最后退出,则复位处理器中的隔离设置;并且
假如该处理器要最后退出,则复位在MCH和ICH中的隔离设置。
42.如权利要求37所述的***,其中,当执行iso_enter指令时,使得处理器:
在退出帧中存储帧寄存器组的内容,退出帧寄存器中的出口地址指向该退出帧;并且
把进入帧加载到帧寄存器组,进入帧寄存器中的入口地址指向该进入帧。
43.如权利要求37所述的***,其中,当执行iso_exit指令时,使得处理器:
把退出帧加载到帧寄存器组,退出帧寄存器中的出口地址指向该退出帧。
44.如权利要求37所述的***,其中,当执行iso_config_read指令时,使得处理器:
返回与参数存储器对应的配置存储器的内容。
45.如权利要求37所述的***,其中,当执行iso_config_write指令时,使得处理器:
写与参数存储器对应的配置存储器的内容。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/541,477 | 2000-03-31 | ||
US09/541,477 US6507904B1 (en) | 2000-03-31 | 2000-03-31 | Executing isolated mode instructions in a secure system running in privilege rings |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1423765A CN1423765A (zh) | 2003-06-11 |
CN1308783C true CN1308783C (zh) | 2007-04-04 |
Family
ID=24159746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018074006A Expired - Lifetime CN1308783C (zh) | 2000-03-31 | 2001-03-23 | 用于隔离执行隔离指令的装置、方法和*** |
Country Status (9)
Country | Link |
---|---|
US (1) | US6507904B1 (zh) |
JP (1) | JP4719398B2 (zh) |
CN (1) | CN1308783C (zh) |
AU (1) | AU2001249395A1 (zh) |
DE (1) | DE10196005B4 (zh) |
GB (1) | GB2377795B (zh) |
HK (1) | HK1050254B (zh) |
TW (1) | TW583584B (zh) |
WO (1) | WO2001075565A2 (zh) |
Families Citing this family (140)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2790844B1 (fr) * | 1999-03-09 | 2001-05-25 | Gemplus Card Int | Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme |
US7194634B2 (en) * | 2000-03-31 | 2007-03-20 | Intel Corporation | Attestation key memory device and bus |
US7013481B1 (en) * | 2000-03-31 | 2006-03-14 | Intel Corporation | Attestation key memory device and bus |
US6769058B1 (en) | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US6678825B1 (en) | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US7013484B1 (en) * | 2000-03-31 | 2006-03-14 | Intel Corporation | Managing a secure environment using a chipset in isolated execution mode |
US6754815B1 (en) | 2000-03-31 | 2004-06-22 | Intel Corporation | Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set |
US7089418B1 (en) * | 2000-03-31 | 2006-08-08 | Intel Corporation | Managing accesses in a processor for isolated execution |
US6760441B1 (en) | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use in an isolated execution environment |
US6934817B2 (en) * | 2000-03-31 | 2005-08-23 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6957332B1 (en) * | 2000-03-31 | 2005-10-18 | Intel Corporation | Managing a secure platform using a hierarchical executive architecture in isolated execution mode |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6976162B1 (en) * | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US6986052B1 (en) | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
WO2002006929A2 (en) * | 2000-07-18 | 2002-01-24 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US7793111B1 (en) * | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7178035B1 (en) * | 2000-11-02 | 2007-02-13 | Ati International, Srl | Write once system and method for facilitating digital encrypted transmissions |
US7958376B2 (en) * | 2000-11-02 | 2011-06-07 | Ati Technologies Ulc | Write once system and method for facilitating digital encrypted transmissions |
US7779117B2 (en) | 2002-05-31 | 2010-08-17 | Aol Inc. | Monitoring digital images |
US7035963B2 (en) * | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US7620955B1 (en) | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US6961941B1 (en) | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
US6873988B2 (en) * | 2001-07-06 | 2005-03-29 | Check Point Software Technologies, Inc. | System and methods providing anti-virus cooperative enforcement |
US7024555B2 (en) * | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
WO2003046715A1 (fr) * | 2001-11-29 | 2003-06-05 | Fujitsu Limited | Dispositif central de traitement et programme de fonctionnement |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
US7631196B2 (en) * | 2002-02-25 | 2009-12-08 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
WO2003090074A2 (en) * | 2002-04-18 | 2003-10-30 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
US7130951B1 (en) * | 2002-04-18 | 2006-10-31 | Advanced Micro Devices, Inc. | Method for selectively disabling interrupts on a secure execution mode-capable processor |
US7496966B1 (en) * | 2002-04-18 | 2009-02-24 | Advanced Micro Devices, Inc. | Method and apparatus for controlling operation of a secure execution mode-capable processor in system management mode |
US7603551B2 (en) * | 2003-04-18 | 2009-10-13 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
US6820177B2 (en) | 2002-06-12 | 2004-11-16 | Intel Corporation | Protected configuration space in a protected environment |
US7142674B2 (en) * | 2002-06-18 | 2006-11-28 | Intel Corporation | Method of confirming a secure key exchange |
US7165181B2 (en) * | 2002-11-27 | 2007-01-16 | Intel Corporation | System and method for establishing trust without revealing identity |
US20040117532A1 (en) * | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
US7318141B2 (en) | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
US7793286B2 (en) | 2002-12-19 | 2010-09-07 | Intel Corporation | Methods and systems to manage machine state in virtual machine operations |
US20040128345A1 (en) * | 2002-12-27 | 2004-07-01 | Robinson Scott H. | Dynamic service registry |
US7900017B2 (en) | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US7076802B2 (en) * | 2002-12-31 | 2006-07-11 | Intel Corporation | Trusted system clock |
US7334123B2 (en) * | 2003-05-02 | 2008-02-19 | Advanced Micro Devices, Inc. | Computer system including a bus bridge for connection to a security services processor |
US7415708B2 (en) * | 2003-06-26 | 2008-08-19 | Intel Corporation | Virtual machine management using processor state information |
WO2005003969A1 (en) * | 2003-06-27 | 2005-01-13 | Sun Microsystems, Inc. | Hybrid system implementing distinct and co-existing application execution environments and methods for implementing the same |
US20050044292A1 (en) * | 2003-08-19 | 2005-02-24 | Mckeen Francis X. | Method and apparatus to retain system control when a buffer overflow attack occurs |
US8122215B1 (en) | 2003-09-15 | 2012-02-21 | The Directv Group, Inc. | Method and apparatus for verifying memory contents |
US7739521B2 (en) * | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
US7610611B2 (en) * | 2003-09-19 | 2009-10-27 | Moran Douglas R | Prioritized address decoder |
US7681046B1 (en) | 2003-09-26 | 2010-03-16 | Andrew Morgan | System with secure cryptographic capabilities using a hardware specific digital secret |
US20050080934A1 (en) | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US7177967B2 (en) * | 2003-09-30 | 2007-02-13 | Intel Corporation | Chipset support for managing hardware interrupts in a virtual machine system |
US7496958B2 (en) * | 2003-10-29 | 2009-02-24 | Qualcomm Incorporated | System for selectively enabling operating modes of a device |
US7636844B2 (en) * | 2003-11-17 | 2009-12-22 | Intel Corporation | Method and system to provide a trusted channel within a computer system for a SIM device |
US20050108534A1 (en) * | 2003-11-19 | 2005-05-19 | Bajikar Sundeep M. | Providing services to an open platform implementing subscriber identity module (SIM) capabilities |
US7694151B1 (en) | 2003-11-20 | 2010-04-06 | Johnson Richard C | Architecture, system, and method for operating on encrypted and/or hidden information |
US8156343B2 (en) | 2003-11-26 | 2012-04-10 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US8037314B2 (en) | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US20050152539A1 (en) * | 2004-01-12 | 2005-07-14 | Brickell Ernie F. | Method of protecting cryptographic operations from side channel attacks |
US7802085B2 (en) | 2004-02-18 | 2010-09-21 | Intel Corporation | Apparatus and method for distributing private keys to an entity with minimal secret, unique information |
US20050216920A1 (en) * | 2004-03-24 | 2005-09-29 | Vijay Tewari | Use of a virtual machine to emulate a hardware device |
US7356735B2 (en) * | 2004-03-30 | 2008-04-08 | Intel Corporation | Providing support for single stepping a virtual machine in a virtual machine environment |
US7620949B2 (en) * | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US7590867B2 (en) | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
US20050288056A1 (en) * | 2004-06-29 | 2005-12-29 | Bajikar Sundeep M | System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module |
US7305592B2 (en) * | 2004-06-30 | 2007-12-04 | Intel Corporation | Support for nested fault in a virtual machine environment |
EP1628235A1 (en) * | 2004-07-01 | 2006-02-22 | Texas Instruments Incorporated | Method and system of ensuring integrity of a secure mode entry sequence |
US7484247B2 (en) | 2004-08-07 | 2009-01-27 | Allen F Rozman | System and method for protecting a computer system from malicious software |
US8640194B2 (en) * | 2004-08-25 | 2014-01-28 | Nec Corporation | Information communication device and program execution environment control method |
US7840962B2 (en) * | 2004-09-30 | 2010-11-23 | Intel Corporation | System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time |
US7680758B2 (en) * | 2004-09-30 | 2010-03-16 | Citrix Systems, Inc. | Method and apparatus for isolating execution of software applications |
US8146078B2 (en) | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
US8924728B2 (en) * | 2004-11-30 | 2014-12-30 | Intel Corporation | Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information |
US8533777B2 (en) | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
US7395405B2 (en) * | 2005-01-28 | 2008-07-01 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US8365021B2 (en) | 2005-06-17 | 2013-01-29 | Nec Corporation | Information processing device comprising a plurality of domains having a plurality of processors, recovery device, program and recovery method |
US20060294596A1 (en) * | 2005-06-27 | 2006-12-28 | Priya Govindarajan | Methods, systems, and apparatus to detect unauthorized resource accesses |
US7809957B2 (en) | 2005-09-29 | 2010-10-05 | Intel Corporation | Trusted platform module for generating sealed data |
US9573067B2 (en) * | 2005-10-14 | 2017-02-21 | Microsoft Technology Licensing, Llc | Mass storage in gaming handhelds |
US7496727B1 (en) | 2005-12-06 | 2009-02-24 | Transmeta Corporation | Secure memory access system and method |
US8959339B2 (en) * | 2005-12-23 | 2015-02-17 | Texas Instruments Incorporated | Method and system for preventing unauthorized processor mode switches |
US8694797B2 (en) | 2006-02-14 | 2014-04-08 | Lenovo (Sinapore) Pte Ltd | Method for preventing malicious software from execution within a computer system |
US8041958B2 (en) | 2006-02-14 | 2011-10-18 | Lenovo (Singapore) Pte. Ltd. | Method for preventing malicious software from execution within a computer system |
JP4575350B2 (ja) * | 2006-02-14 | 2010-11-04 | レノボ・シンガポール・プライベート・リミテッド | コンピューター・システム内で悪意あるソフトウェアの実行を防止するための方法 |
US8014530B2 (en) | 2006-03-22 | 2011-09-06 | Intel Corporation | Method and apparatus for authenticated, recoverable key distribution with no database secrets |
US8973094B2 (en) * | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
JP5621191B2 (ja) | 2006-07-18 | 2014-11-05 | 日本電気株式会社 | 情報通信処理装置、情報通信端末、情報通信システム、機能切替方法及び機能切替プログラム |
KR20100084605A (ko) * | 2007-05-31 | 2010-07-27 | 더 유니버시티 오브 레딩 | 프로세서 |
US9092212B2 (en) | 2007-05-31 | 2015-07-28 | James Arthur Dean Wallace Anderson | Processors |
US8739156B2 (en) * | 2007-07-24 | 2014-05-27 | Red Hat Israel, Ltd. | Method for securing the execution of virtual machines |
US8424082B2 (en) | 2008-05-08 | 2013-04-16 | Google Inc. | Safely executing an untrusted native code module on a computing device |
US8294723B2 (en) | 2008-11-07 | 2012-10-23 | Google Inc. | Hardware-accelerated graphics for web applications using native code modules |
US8675000B2 (en) * | 2008-11-07 | 2014-03-18 | Google, Inc. | Command buffers for web-based graphics rendering |
US8797337B1 (en) | 2009-07-02 | 2014-08-05 | Google Inc. | Graphics scenegraph rendering for web applications using native code modules |
US8775802B1 (en) | 2009-10-23 | 2014-07-08 | Secure Vector | Computer security system and method |
US9454652B2 (en) | 2009-10-23 | 2016-09-27 | Secure Vector, Llc | Computer security system and method |
US10242182B2 (en) | 2009-10-23 | 2019-03-26 | Secure Vector, Llc | Computer security system and method |
US8429429B1 (en) * | 2009-10-23 | 2013-04-23 | Secure Vector, Inc. | Computer security system and method |
US8938606B2 (en) * | 2010-12-22 | 2015-01-20 | Intel Corporation | System, apparatus, and method for segment register read and write regardless of privilege level |
WO2012112833A2 (en) * | 2011-02-17 | 2012-08-23 | Taasera, Inc. | System and method for application attestation |
US8850588B2 (en) | 2012-05-01 | 2014-09-30 | Taasera, Inc. | Systems and methods for providing mobile security based on dynamic attestation |
US9027102B2 (en) | 2012-05-11 | 2015-05-05 | Sprint Communications Company L.P. | Web server bypass of backend process on near field communications and secure element chips |
US9282898B2 (en) | 2012-06-25 | 2016-03-15 | Sprint Communications Company L.P. | End-to-end trusted communications infrastructure |
US8649770B1 (en) | 2012-07-02 | 2014-02-11 | Sprint Communications Company, L.P. | Extended trusted security zone radio modem |
US8667607B2 (en) | 2012-07-24 | 2014-03-04 | Sprint Communications Company L.P. | Trusted security zone access to peripheral devices |
US9183412B2 (en) | 2012-08-10 | 2015-11-10 | Sprint Communications Company L.P. | Systems and methods for provisioning and using multiple trusted security zones on an electronic device |
US9015068B1 (en) | 2012-08-25 | 2015-04-21 | Sprint Communications Company L.P. | Framework for real-time brokering of digital content delivery |
US9215180B1 (en) | 2012-08-25 | 2015-12-15 | Sprint Communications Company L.P. | File retrieval in real-time brokering of digital content |
WO2014046974A2 (en) | 2012-09-20 | 2014-03-27 | Case Paul Sr | Case secure computer architecture |
CN103793647B (zh) * | 2012-10-29 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 病毒文件处理***及方法 |
US9578664B1 (en) | 2013-02-07 | 2017-02-21 | Sprint Communications Company L.P. | Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system |
US9161227B1 (en) | 2013-02-07 | 2015-10-13 | Sprint Communications Company L.P. | Trusted signaling in long term evolution (LTE) 4G wireless communication |
US9613208B1 (en) | 2013-03-13 | 2017-04-04 | Sprint Communications Company L.P. | Trusted security zone enhanced with trusted hardware drivers |
US9191388B1 (en) | 2013-03-15 | 2015-11-17 | Sprint Communications Company L.P. | Trusted security zone communication addressing on an electronic device |
US9374363B1 (en) | 2013-03-15 | 2016-06-21 | Sprint Communications Company L.P. | Restricting access of a portable communication device to confidential data or applications via a remote network based on event triggers generated by the portable communication device |
US9324016B1 (en) | 2013-04-04 | 2016-04-26 | Sprint Communications Company L.P. | Digest of biographical information for an electronic device with static and dynamic portions |
US9454723B1 (en) | 2013-04-04 | 2016-09-27 | Sprint Communications Company L.P. | Radio frequency identity (RFID) chip electrically and communicatively coupled to motherboard of mobile communication device |
US9171243B1 (en) | 2013-04-04 | 2015-10-27 | Sprint Communications Company L.P. | System for managing a digest of biographical information stored in a radio frequency identity chip coupled to a mobile communication device |
US9838869B1 (en) | 2013-04-10 | 2017-12-05 | Sprint Communications Company L.P. | Delivering digital content to a mobile device via a digital rights clearing house |
US9443088B1 (en) | 2013-04-15 | 2016-09-13 | Sprint Communications Company L.P. | Protection for multimedia files pre-downloaded to a mobile device |
US9560519B1 (en) | 2013-06-06 | 2017-01-31 | Sprint Communications Company L.P. | Mobile communication device profound identity brokering framework |
US9183606B1 (en) | 2013-07-10 | 2015-11-10 | Sprint Communications Company L.P. | Trusted processing location within a graphics processing unit |
US9208339B1 (en) | 2013-08-12 | 2015-12-08 | Sprint Communications Company L.P. | Verifying Applications in Virtual Environments Using a Trusted Security Zone |
US9185626B1 (en) | 2013-10-29 | 2015-11-10 | Sprint Communications Company L.P. | Secure peer-to-peer call forking facilitated by trusted 3rd party voice server provisioning |
US9191522B1 (en) | 2013-11-08 | 2015-11-17 | Sprint Communications Company L.P. | Billing varied service based on tier |
US9226145B1 (en) | 2014-03-28 | 2015-12-29 | Sprint Communications Company L.P. | Verification of mobile device integrity during activation |
US9230085B1 (en) * | 2014-07-29 | 2016-01-05 | Sprint Communications Company L.P. | Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services |
US9779232B1 (en) | 2015-01-14 | 2017-10-03 | Sprint Communications Company L.P. | Trusted code generation and verification to prevent fraud from maleficent external devices that capture data |
US9838868B1 (en) | 2015-01-26 | 2017-12-05 | Sprint Communications Company L.P. | Mated universal serial bus (USB) wireless dongles configured with destination addresses |
US9405515B1 (en) * | 2015-02-04 | 2016-08-02 | Rockwell Collins, Inc. | Computing systems utilizing controlled dynamic libraries and isolated execution spaces |
US9473945B1 (en) | 2015-04-07 | 2016-10-18 | Sprint Communications Company L.P. | Infrastructure for secure short message transmission |
US9578054B1 (en) * | 2015-08-31 | 2017-02-21 | Newman H-R Computer Design, LLC | Hacking-resistant computer design |
US9819679B1 (en) | 2015-09-14 | 2017-11-14 | Sprint Communications Company L.P. | Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers |
US10282719B1 (en) | 2015-11-12 | 2019-05-07 | Sprint Communications Company L.P. | Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit |
US9817992B1 (en) | 2015-11-20 | 2017-11-14 | Sprint Communications Company Lp. | System and method for secure USIM wireless network access |
WO2017120812A1 (en) * | 2016-01-14 | 2017-07-20 | Intel Corporation | Secure communication channel for system management mode |
CN108090347B (zh) * | 2016-11-23 | 2022-01-14 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和*** |
US10499249B1 (en) | 2017-07-11 | 2019-12-03 | Sprint Communications Company L.P. | Data link layer trust signaling in communication network |
US10395722B2 (en) * | 2017-09-29 | 2019-08-27 | Intel Corporation | Reading from a mode register having different read and write timing |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255379A (en) * | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4366537A (en) | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
US5627987A (en) | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
EP0600112A1 (de) | 1992-11-30 | 1994-06-08 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5978481A (en) | 1994-08-16 | 1999-11-02 | Intel Corporation | Modem compatible method and apparatus for encrypting data that is transparent to software applications |
JP3672634B2 (ja) * | 1994-09-09 | 2005-07-20 | 株式会社ルネサステクノロジ | データ処理装置 |
US6058478A (en) | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
US5615263A (en) * | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) * | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
US5717903A (en) * | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
US5835594A (en) | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US6205550B1 (en) | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US6178509B1 (en) | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US6175925B1 (en) | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US6148401A (en) | 1997-02-05 | 2000-11-14 | At&T Corp. | System and method for providing assurance to a host that a piece of software possesses a particular property |
EP0970411B1 (en) | 1997-03-27 | 2002-05-15 | BRITISH TELECOMMUNICATIONS public limited company | Copy protection of data |
JP2944563B2 (ja) * | 1997-04-03 | 1999-09-06 | 甲府日本電気株式会社 | パイプライン型情報処理装置 |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6014745A (en) | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US6188995B1 (en) | 1997-07-28 | 2001-02-13 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
DE19735948C1 (de) | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
US6339826B2 (en) | 1998-05-05 | 2002-01-15 | International Business Machines Corp. | Client-server system for maintaining a user desktop consistent with server application user access permissions |
AU4234800A (en) | 1999-04-12 | 2000-11-14 | Digital Media On Demand, Inc. (Dmod, Inc.) | Secure electronic commerce system |
US20010037450A1 (en) | 2000-03-02 | 2001-11-01 | Metlitski Evgueny A. | System and method for process protection |
CA2341931C (en) | 2000-03-24 | 2006-05-30 | Contentguard Holdings, Inc. | System and method for protection of digital works |
-
2000
- 2000-03-31 US US09/541,477 patent/US6507904B1/en not_active Expired - Lifetime
-
2001
- 2001-03-23 CN CNB018074006A patent/CN1308783C/zh not_active Expired - Lifetime
- 2001-03-23 WO PCT/US2001/009371 patent/WO2001075565A2/en active Application Filing
- 2001-03-23 DE DE10196005T patent/DE10196005B4/de not_active Expired - Lifetime
- 2001-03-23 JP JP2001573180A patent/JP4719398B2/ja not_active Expired - Lifetime
- 2001-03-23 AU AU2001249395A patent/AU2001249395A1/en not_active Abandoned
- 2001-03-23 GB GB0225052A patent/GB2377795B/en not_active Expired - Lifetime
- 2001-06-19 TW TW090107585A patent/TW583584B/zh not_active IP Right Cessation
-
2003
- 2003-03-26 HK HK03102199.2A patent/HK1050254B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255379A (en) * | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
Also Published As
Publication number | Publication date |
---|---|
JP4719398B2 (ja) | 2011-07-06 |
GB2377795A (en) | 2003-01-22 |
US6507904B1 (en) | 2003-01-14 |
AU2001249395A1 (en) | 2001-10-15 |
GB0225052D0 (en) | 2002-12-04 |
JP2004500666A (ja) | 2004-01-08 |
WO2001075565A2 (en) | 2001-10-11 |
CN1423765A (zh) | 2003-06-11 |
HK1050254B (zh) | 2005-06-10 |
WO2001075565A3 (en) | 2002-06-27 |
DE10196005B4 (de) | 2011-01-05 |
DE10196005T1 (de) | 2003-03-13 |
GB2377795B (en) | 2004-12-01 |
TW583584B (en) | 2004-04-11 |
HK1050254A1 (en) | 2003-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1308783C (zh) | 用于隔离执行隔离指令的装置、方法和*** | |
US6633963B1 (en) | Controlling access to multiple memory zones in an isolated execution environment | |
EP3314853B1 (en) | Processors, methods, systems, and instructions to support live migration of protected containers | |
US6795905B1 (en) | Controlling accesses to isolated memory using a memory controller for isolated execution | |
US6678825B1 (en) | Controlling access to multiple isolated memories in an isolated execution environment | |
US6934817B2 (en) | Controlling access to multiple memory zones in an isolated execution environment | |
US6941458B1 (en) | Managing a secure platform using a hierarchical executive architecture in isolated execution mode | |
EP3414696B1 (en) | An apparatus and method for generating signed bounded pointers | |
US11199980B2 (en) | Techniques to provide run-time protections using immutable regions of memory | |
Olson et al. | Border control: Sandboxing accelerators | |
CN101281459B (zh) | 受保护的功能调用 | |
CN1252597C (zh) | 在一个独立执行环境中控制对多个独立存储器的访问 | |
TW201709048A (zh) | 用以保護影子堆疊之處理器、方法、系統和指令 | |
KR20170033891A (ko) | 보호 영역에서의 메모리 초기화 | |
US7085935B1 (en) | Managing a secure environment using a chipset in isolated execution mode | |
CN108205502A (zh) | 轻量可信任务 | |
US6754815B1 (en) | Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set | |
Lee et al. | Efficient security monitoring with the core debug interface in an embedded processor | |
Brant et al. | Challenges and opportunities for practical and effective dynamic information flow tracking | |
US7089418B1 (en) | Managing accesses in a processor for isolated execution | |
US7111176B1 (en) | Generating isolated bus cycles for isolated execution | |
EP4016288A1 (en) | Isa opcode parameterization and opcode space layout randomization | |
US6769058B1 (en) | Resetting a processor in an isolated execution environment | |
CN114981811A (zh) | 用于软件安全的装置和方法 | |
Jahanshahi | A brief review on some architectures providing support for dift |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20070404 |