CN101454751A - 在点对点互连系统上的安全环境初始化指令的执行 - Google Patents
在点对点互连系统上的安全环境初始化指令的执行 Download PDFInfo
- Publication number
- CN101454751A CN101454751A CNA200780019112XA CN200780019112A CN101454751A CN 101454751 A CN101454751 A CN 101454751A CN A200780019112X A CNA200780019112X A CN A200780019112XA CN 200780019112 A CN200780019112 A CN 200780019112A CN 101454751 A CN101454751 A CN 101454751A
- Authority
- CN
- China
- Prior art keywords
- processor
- chipset
- point
- static state
- enter
- 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
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
- G06F21/74—Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Abstract
描述了用于在微处理器系统中初始化安全操作的方法和装置。在一个实施例中,系统包括用于执行安全进入指令的处理器,和用于在安全进入指令的执行期间使系统进入静态的芯片组。
Description
技术领域
本发明概要地涉及微处理器系统,并且更详细地涉及可在可信任的或安全的环境中操作的微处理器系统。
背景技术
在本地的或远程的微型计算机上执行的金融的和个人的事务日益增长的数量已推动了“可信任的”或“安全的”微处理器环境的建设。这些环境试图解决的问题是保密性的缺失、或数据被损坏或被滥用。用户不想使他们的私人数据公开。用户也不想他们的数据被修改或用在不正确的事务中。这些情况的示例包括医疗记录的无意公开,或从在线银行或其它存储机构对资金进行电子偷窃。相似地,内容供应商寻求对数字内容(例如,音乐、其它音频、视频或总的来说其它类型的数据)的保护,以免在未鉴定情况下被复制。
现有的可信任系统可利用可信任软件的完全的封闭的集合。这种方法较易实现,但具有不允许同时使用通用的、商业上可获得的操作系统和应用软件的缺点。该缺点限制了对此类可信任系统的接受程度。
其它手段要求系统使其处理器通过总线互连。
附图说明
本发明由示例的而非限制的方式在附图的图形中示出,并且在附图中相同的附图标记指向相似的部件,以及其中:
图1是在微处理器系统中执行的示范软件环境的图。
图2是根据本发明的一个实施例的,特定的示范的可信任的或安全的软件模块和示范系统环境的图。
图3是根据本发明的一个实施例的,示范的可信任的或安全的软件环境的图。
图4是根据本发明的方法实施例的,其它过程框和软件的流程图。
具体实施方式
以下描述说明了用于在微处理器系统中初始化可信任的或安全的环境的技术。在以下描述中,可能提出多个具体细节,例如逻辑实现、软件模块分配、加密技术、总线信号发送技术以及操作的细节,以便提供对本发明的更透彻的理解。然而,本领域技术人员将认识到,本发明可在没有这些具体细节的情况下实践。另外,控制结构、门级电路和完整的软件指令序列没有详细示出以免使本发明不明确。本领域技术人员,通过所包含的描述,将能够实现正确的功能性,而不用做过度的实验。本发明以微处理器系统的形式公开。然而,本发明可以其它形式实践,例如数字信号处理器、小型计算机或大型计算机。
现在参考图1,示出在微处理器系统中执行的示范软件环境的图。图1中示出的软件不是可信任的(不可信任的)。当在高特权级别中操作时,操作系统150的大小和持续更新使其很难以及时的方式执行任何信任分析。许多操作系统位于特权环路(ring)零(0)内,即最高特权级别。应用152、154和156具有低得多的特权并且通常位于特权环路三(3)内。不同特权环路的存在以及将操作系统150和应用152、154和156分进这些不同的特权环路,似乎基于做出信任操作系统150所提供的该设施的决定,允许以信任的模式操作图1的软件。然而,在实践中做出该信任决定通常是不切实际的。造成该问题的原因包括操作系统150的大小(代码的行数)、操作系统150可能接收大量更新(新的代码模块和补丁)的事实以及操作系统150也可包含例如由操作系统开发者之外的各方提供的设备驱动的代码模块的事实。操作系统150可以是通用的操作系统,例如Linux或或可以是任何其它合适的已知的或否则可获得的操作系统。已经运行或正在运行的应用或操作系统的具体的类型或名字是无关紧要的。
现在参考图2,根据本发明的一个实施例,示出特定的示范的可信任的或安全的软件模块和示范系统环境200的图。在图2的实施例中,处理器202、处理器212、处理器222和可选的其它处理器(未示出)显示为单独的硬件实体。虽然图2示出三个处理器,本发明的实施例可包含任意数量的处理器,包括单个处理器。
系统200也包括含有输入/输出(I/O)控制器或集线器的芯片组240,以及任何其它系统或其它逻辑,如下所述。其它实施例可包括其它组件作为对图2中示出的组件的替代或附加,而且处理器或其它组件的数量可不同,它们相对彼此的设置也可不同。
处理器202、212和222可包括一个或多个执行核,例如核203、205、213、215、223和225。在一些实施例中,处理器或核可由运行在一个或多个物理处理器或核上的单独的硬件执行线程替代。这些线程拥有另外物理处理器的多个属性。为了具有通用的表述以讨论对多个物理处理器和处理器上多个线程的任何混合的使用,表述“逻辑处理器”可用于描述物理处理器或在一个或多个物理处理器中操作的线程。因此,一个单线程处理器可认为是一个逻辑处理器,而多线程或多核处理器可认为是多个逻辑处理器。
处理器202、212和222也可包括“非核(un-core)”逻辑,例如非核逻辑201、211和221,其中“非核”逻辑是与任何执行核分开的逻辑。非核逻辑可包括寄存器或任何其它存储位置,例如寄存器207、217和227,其可用于存储关于包含它的处理器的信息。此类寄存器或存储位置可以是可编程的或硬编码的,而且此类信息可包括对应处理器中包含的核的和/或逻辑处理器的数量。寄存器207、217和227可以是在上电复位期间刷新的标准的全局存储器映射寄存器。
处理器202、212和222也可包含某些的特殊电路或逻辑部件以支持安全的或可信任的操作。例如,处理器202可包含安全进入(secureenter)(SENTER)逻辑204以支持特殊的SENTER指令的执行,执行该指令可启动可信任操作。处理器202也可包含互连信息逻辑206以支持处理器与其它组件之间的特殊互连信息,从而支持特殊的SENTER操作。因为若干原因,特殊互连信息的使用可增加系统的安全性或可信任性。如果例如处理器202、212和222或芯片组240的电路部件包含本公开的实施例的合适的逻辑部件,它们可仅发出或响应这些信息。因此,特殊互连信息的成功交换可有助于确保正确的系统配置。特殊互连信息也可允许通常应该被禁止的活动,例如重置平台配置寄存器278。潜在的恶意的不可信任代码侦察某些互连事务的能力可通过仅允许响应特殊的安全指令而发出特殊的互连信息来削减。SENTER逻辑204、互连信息逻辑206和用在本发明的实施例中的任何其它逻辑可使用任何已知的手段实现,例如逻辑电路、微码和固件。
另外,处理器202可包含安全存储器208以支持安全初始化操作。在一个实施例中,安全存储器208可以是处理器202的内部缓存,也许在特殊模式中操作。在备选实施例中,安全存储器208可以是特殊存储器。其它处理器,例如处理器212和处理器222,也可包括SENTER逻辑214、224,总线信息逻辑216、226,和安全存储器218、228。
“芯片组”可定义为支持用于所连接的单个或多个处理器的存储器和/或I/O操作的电路和逻辑的集合。芯片组的单独部件可在单个芯片、一对芯片上聚集在一起,或者在多个芯片中分散,所述芯片包括处理器。在图2的实施例中,芯片组240可包括用于支持处理器202、212和222的I/O操作的电路和逻辑,而每个处理器包括用于支持存储器操作的电路和逻辑。备选的,芯片组240也可包括用于支持处理器202、212和222的存储器操作的电路和逻辑。在备选实施例中芯片组240的功能可在一个或多个物理设备中分配。
芯片组240另外可包括其自身的互连信息逻辑242,以支持PTP结构(fabric)230上的特殊的互连信息,从而支持特殊的SENTER操作。这些特殊的互连信息中的一些可包括将密钥寄存器244的内容转移到处理器202、212或222,从而允许处理器设置或清除特殊的“QUIESCE”指示器246以使芯片组240停止(quiesce)或恢复(de-quiese)系统200(如下所述),或允许特殊的“QUIESCED”标志248由处理器检查。总线信息逻辑242的附加特征可以是将系统200中的处理器的存在或参与(participation)记录在“EXISTS”寄存器270中。
处理器202、212、222可通过点对点(PTP)互连结构230彼此连接、连接到芯片组240、以及连接到任何其它组件或代理(agent)。处理器202、212和222以及芯片组240可分别包括接口单元209、219、229和239,以连接到PTP结构230并将信息发送到系统200中存在的或参与的每个和任何其它的代理,和从系统200中存在的或参与的每个和任何其它的代理接收信息。接口单元209、219、229和239中的每一个可包括任意数量的单向和/或双向端口以用于和任意数量的其它组件通信。根据分层点对点互连架构,可通过PTP结构230实现通信,例如,其中包括表示信息和/或数据的信号的数据包,由链路层、协议层、路由层、传输层、物理层和任何其它此类层中的任何层或所有层分成帧,从一个代理发送到另一个代理(点对点)。因此,接口单元209、219、229和239中的每一个可包括用于生成对应于每层的信号的电路或逻辑。数据包也可包括用于检测或校正错误的冗余或其它信息。
令牌(token)276,包含一个或多个平台配置寄存器(PCR)278、279,该令牌276可连接到芯片组230。在一个实施例中,令牌276可包含特殊的安全特征,而且在一个实施例中可包括可信任平台模块(TPM)281,TPM在Trusted Computing Platform Alliance(TCPA)MainSpecification中公开,其版本是1.1a,2001年12月1日由TCPA发布(可在网站www.trustedpc.com获得)。
在系统环境200中标识的两个软件组件是安全虚拟机监视器(SVMM)282模块和安全初始化鉴定代码(SINIT-AC)280模块。SVMM282模块可在系统盘或其它大容量存储设备(storage)上存储,并在必要时可移动或复制到其它位置。在一个实施例中,在开始安全起用过程(secure launch process)之前,SVMM 282可移动或复制到系统200中的一个或多个存储页面。在安全进入过程之后,可创建虚拟机环境,其中SVMM 282可作为系统内最具特权的代码操作,而且可用于允许或拒绝所创建的虚拟机内的操作系统或应用对特定系统资源的直接访问。
安全进入过程所需要的一些动作可能超出了简单硬件实现的范围,而且相反可有利地使用可绝对信任其执行的软件模块。在一个实施例中,这些动作可由安全初始化(SINIT)代码执行。一个示范动作可要求测试表示系统配置的关键部分的不同控制,以确保该配置支持安全环境的正确实例化。第二示范动作可以是计算和记录SVMM 282模块的标识并将系统控制转移给它。此处“记录”的意思是将SVMM 282的信任度量放在寄存器或其它存储位置中,例如放在PCR 278或PCR279中。当采取该第二动作时,SVMM 282的可信任度可由潜在的系统用户审查。
SINIT代码可由处理器的或芯片组的厂商产生。因此,SINIT代码是可信任的,用于协助芯片组240的安全起用。为了发布SINIT代码,在一个实施例中,众所周知的加密哈希由整个SINIT代码构成,产生称为“摘要”的值。一个实施例产生160比特的摘要值。摘要然后可由私有密钥(在一个实施例中由处理器的厂商掌握)加密,以形成数字签名。当SINIT代码和对应的数字签名捆绑时,该组合可称为SINIT鉴定代码(SINIT-AC)280。接着可验证SINIT-AC 280的复制,如下所述。
SINIT-AC 280可在系统盘或其它大容量存储设备上或在固定的介质中存储,而且可在必要时移动或复制到其它位置。在一个实施例中,在开始安全起用过程之前,SINIT-AC 280可移动或复制到系统200的一个或多个存储页面中,以形成SINIT-AC的存储器驻留复制。
运行在系统200上的任何特权的软件,例如操作系统,可在逻辑处理器上启动安全起用过程,随后将该逻辑处理器称为启动逻辑处理器(ILP)。在当前示例中,处理器202是ILP,然而PTP结构230上的任何处理器能够是ILP。SINIT-AC 280的存储器驻留复制和SVMM282的存储器驻留复制此刻都不可认为是可信任的。
ILP(处理器202)执行特殊的指令以启动安全起用过程。该特殊的指令可以称为安全进入(SENTER)指令,而且可由SENTER逻辑204支持。SENTER指令可首先检验系统200中的每个逻辑处理器在芯片组240中记录,例如在EXISTS寄存器270中。连接到PTP结构230的处理器和其它代理中的每个包括寄存器或其它存储位置,例如寄存器207、217和227,以指示它所包括的逻辑处理器的数量。读取这些寄存器以检验系统拓扑精确地表示在芯片组240中。
在该检验后,SENTER指令写到QUIESCE指示器246以使芯片组240停止系统200。芯片组240在PTP结构230上开始握手序列以使PTP结构230上的所有的处理器和其它的代理,除了一个处理器(静态主(quiescent state master)),进入静态。在本实施例中,处理器202是静态主,也是ILP。停止序列可包括将“STOP_REQ”信号发送到每个非主处理器以使它们完成其事件处理,清空其缓冲区,而且将“STOP_ACK”信号返回到芯片组240以确认它们进入静态。静态是其中处理器不执行指令和在PTP结构230上不生成事务的状态。在芯片组240从代表在芯片组240中记录的每个逻辑处理器的每个代理接收到STOP_ACK信号之后,可设置QUIESCED标志248。
在系统停止后,SENTER指令可安全地执行安全模块,如下所述。出于此目的,PTP结构230仍然是起作用的而TPM281对于静态主仍然是可访问的。在安全模块的执行完成后,静态主可清除QUIESCE指示器246以使芯片组240将系统200带出静态。
为了执行安全模块,ILP(处理器202)可首先将SINIT-AC 280和密钥284的复制都移到安全存储器208中,以用于鉴定和随后执行包括在SINIT-AC 280中的SINIT代码。在一个实施例中,该安全存储器208可以是ILP(处理器202)的内部缓存,也许在特殊模式中操作。密钥284表示公共密钥,对应于用于加密包括在SINIT-AC 280模块中的数字签名的私有密钥,并且用于检验数字签名以及由此鉴定SINIT代码。在一个实施例中,密钥284可已经存储在处理器中,也许作为SENTER逻辑204的一部分。在另一个实施例中,密钥284可存储在芯片组240的只读密钥寄存器244中,它由ILP读取。在又一个实施例中,处理器或者芯片组的密钥寄存器244可实际上存有密钥284的加密摘要,其中密钥284自身包括在SINIT-AC 280模块中。在最后这个实施例中,ILP从密钥寄存器244读取摘要,对SINIT-AC 280中嵌入的密钥284计算同样的加密哈希,并且比较这两个摘要以确保所提供的密钥284确实是可信任的。
SINIT-AC的复制和公共密钥的复制然后可存在于安全存储器208内。ILP现在可通过使用公共密钥的复制来解密包括在SINIT-AC的复制中的数字签名,验证SINIT-AC的复制。该解密产生加密哈希的摘要的原始复制。如果新计算的摘要匹配该原始摘要,则可认为SINIT-AC的复制与其所包括的SINIT代码是可信任的。
ILP现在通过将SINIT-AC模块的加密摘要值写到安全令牌276中的平台配置寄存器272中来记录SINIT-AC模块的唯一标识,如以下所述。ILP对其SENTER指令的执行现在可通过将执行控制转交给ILP的安全存储器208内持有的SINIT代码的可信任的复制而终止。然后可信任的SINIT代码可执行其系统测试和配置动作,而且可记录SVMM的存储器驻留复制,和上述“记录”的定义一致。
SVMM的存储器驻留复制的记录可以几种方式执行。在一个实施例中,运行在ILP上的SENTER指令将所计算的SINIT-AC的摘要写到安全令牌276内的PCR 278中。随后,可信任的SINIT代码可将所计算的存储器驻留的SVMM的摘要写到安全令牌276内的相同的PCR 278或者另一个PCR 279。如果SVMM摘要写到相同的PCR 278,安全令牌276对原始内容(SINIT摘要)和新值(SVMM摘要)进行哈希运算,并将结果写回到PCR 278。在第一个对PCR 278的写(初始化)限于SENTER指令的实施例中,结果摘要可用作对于系统的可信任的根(a root of trust for the system)。
一旦可信任的SINIT代码完成了其执行,并且已经在PCR中记录了SVMM的标识,SINIT代码可将ILP执行控制转交给SVMM。在典型的实施例中,由ILP执行的最初的SVMM指令可表示SVMM的自身初始化例程。然后在此刻正在执行的SVMM复制的监督下,系统200可在可信任模式中操作,如以下对图3的讨论中所概括的。从此以后,整个系统在可信任模式下操作,如以下对图3的讨论中所概括的。
现在参考图3,根据本发明的一个实施例,示出示范的可信任的或安全的软件环境的图。在图3的实施例中,可信任的和不可信任的软件可在单个计算机系统上同时加载并同时执行。SVMM 350选择性地允许或阻止从一个或多个不可信任的操作系统340和不可信任的应用310到330对硬件资源380的直接访问。在此处的上下文中,“不可信任的”不一定指操作系统或应用在故意破坏,而是指交互作用代码的大小和变化使得可靠地声称软件正在如预期般运转而且没有病毒或其它外部代码干扰其执行是不切实际的。在典型的实施例中,不可信任的代码可包括当今个人电脑上可发现的常规操作系统和应用。
SVMM 350也选择性地允许或阻止从一个或多个可信任的或安全的内核360和一个或多个可信任的应用370对硬件资源380的直接访问。该可信任的或安全的内核360和可信任的应用370可能限制了大小和功能性,以有助于在其上执行信任分析的能力。可信任的应用370可以是任何软件代码、程序、例程或例程的集合,它们在安全环境中是可执行的。因此,可信任的应用370可以是多种应用,或代码序列,或可以是较小的应用,例如Java小程序。
通常由操作系统340或内核360执行的能够修改系统资源保护或特权的指令或操作可由SVMM 350捕获,并选择性地允许、部分地允许或拒绝。作为示例,在典型的实施例中,将通常由操作系统340或内核360执行的改变处理器的页表的指令,相反将由SVMM 350捕获,这将确保请求没有正在试图改变超出其虚拟机的范围的页特权。
现在参考图4,根据方法400中的本发明的实施例,示出其它过程框和软件的流程图。
在方法400的框410中,逻辑处理器使SINIT-AC和SVMM模块的复制对于随后SENTER指令的访问是可使用的。在本示例中,ILP将SINIT-AC和SVMM代码从大容量存储设备加载到物理存储器中。在备选实施例中,任何逻辑处理器可做此工作,而不仅是ILP。处理器通过执行SENTER指令而成为ILP,如框412所标识的。
在框420中,SENTER指令检验系统200中每个逻辑处理器记录在芯片组240中,例如在EXISTS寄存器270中。在框422中,SENTER指令写到QUIESCE指示器246以使芯片组240停止系统200。在框424中,芯片组240将“STOP_REQ”信号发送到每个非主处理器以使它们完成其事件处理,清空其缓冲区,并将“STOP_ACK”信号返回给芯片组240以确认它们进入静态。在框426中,设置QUIESCED标志248以指示芯片组240已从代表在芯片组240中记录的每个逻辑处理器的每个代理接收到STOP_ACK信号。
在框430中,ILP将芯片组的公共密钥和SINIT-AC的存储器驻留复制移至其自身的安全存储器中以用于安全执行。在框432中,ILP使用该密钥验证SINIT-AC的安全存储器驻留复制,而且接着执行它。在框434中,SINIT-AC的执行可实行系统配置的和SVMM复制的测试,然后记录SVMM的标识,并且最终开始SVMM的执行。在框436中静态主清除QUIESCE指示器246,以使芯片组240将系统200带出静态(在框438中)。
在前述的说明中,本发明已经参考其特定的示范实施例进行描述,然而,显而易见的是,在不偏离如所附权利要求中提出的本发明的更广泛的实质和范围的情况下,可对其做出多种修改和改变。因此,说明和附图应被认为具有解释性的而不是限制性的意义。
Claims (20)
1.一种系统,包括:
用于执行安全进入指令的第一处理器;以及
在执行所述安全进入指令期间使所述系统进入静态的芯片组。
2.如权利要求1所述的系统,还包括点对点结构以将所述第一处理器耦合到所述芯片组。
3.如权利要求2所述的系统,还包括第二处理器,所述第二处理器由所述点对点结构耦合到所述芯片组,其中在所述安全进入指令的所述执行期间所述芯片组也使所述第二处理器进入所述静态。
4.如权利要求2所述的系统,其中所述芯片组也使所述系统进入所述静态,在所述静态中,仅有所述第一处理器和所述芯片组通过所述点对点结构通信。
5.如权利要求1所述的系统,还包括可信任平台模块,其中所述可信任平台模块在所述静态期间可由所述第一处理器访问。
6.如权利要求1所述的系统,其中所述第一处理器也要执行安全初始化鉴定代码模块。
7.如权利要求1所述的系统,其中所述第一处理器也要执行安全虚拟机监视器模块。
8.如权利要求1所述的系统,其中所述芯片组包括可由所述第一处理器访问的指示器,以使所述芯片组促使所述系统进入所述静态。
9.如权利要求3所述的系统,其中:
所述芯片组包括:
可由所述第一处理器访问的指示器,所述指示器使所述芯片组促使所述系统进入所述静态;以及
用于指示所述系统中的每个处理器的标识的第一存储位置;所述第二处理器包括第二存储位置,所述第二存储位置用于指示所述第二处理器连接到所述点对点结构;以及
所述第一处理器包括逻辑,所述逻辑用于在访问所述指示器以使所述芯片组促使所述系统进入所述静态前,检验所述第二处理器的标识在所述第一存储位置中指示。
10.一种方法,包括:
通过点对点结构在耦合到芯片组的第一处理器上开始执行安全进入指令;
使得执行安全进入指令期间所述芯片组促使耦合到所述点对点结构的第二处理器进入静态。
11.如权利要求10所述的方法,还包括所述芯片组维护耦合到所述点对点结构的代理的列表。
12.如权利要求11所述的方法,还包括读取所述第二处理器中的存储位置以识别通过所述第二处理器耦合到所述点对点结构的代理的数量。
13.如权利要求10的所述的方法,还包括所述第一处理器在所述静态期间访问可信任平台模块。
14.如权利要求13所述的方法,还包括执行安全初始化鉴定模块。
15.如权利要求14所述的方法,还包括读取所述芯片组中的指示器,以检验在执行所述安全初始化鉴定模块之前已进入所述静态。
16.如权利要求13所述的方法,还包括执行安全虚拟机监视器模块。
17.如权利要求16所述的方法,还包括读取所述芯片组中的指示器,以检验在执行所述安全虚拟机监视器模块前已进入所述静态。
18.如权利要求10所述的方法,还包括在进入所述静态前使所述第二处理器完成其事件处理并清空其缓冲区。
19.如权利要求18所述的方法,还包括:
所述第二处理器将信号发送到所述芯片组以确认所述第二处理器进入所述静态。
20.一种处理器,包括:
用于执行第一指令以调用安全操作初始化的安全进入逻辑;以及
使芯片组促使通过点对点结构耦合到所述芯片组的代理进入静态的互连信息收发逻辑。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/442,230 US8973094B2 (en) | 2006-05-26 | 2006-05-26 | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
US11/442,230 | 2006-05-26 | ||
PCT/US2007/069742 WO2007140300A1 (en) | 2006-05-26 | 2007-05-25 | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101454751A true CN101454751A (zh) | 2009-06-10 |
CN101454751B CN101454751B (zh) | 2016-01-20 |
Family
ID=38750970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780019112.XA Active CN101454751B (zh) | 2006-05-26 | 2007-05-25 | 在点对点互连中执行安全环境初始化的装置与方法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8973094B2 (zh) |
JP (4) | JP4883459B2 (zh) |
KR (1) | KR101263061B1 (zh) |
CN (1) | CN101454751B (zh) |
DE (1) | DE112007001321T5 (zh) |
TW (1) | TWI431533B (zh) |
WO (1) | WO2007140300A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102473224A (zh) * | 2009-12-22 | 2012-05-23 | 英特尔公司 | 提供安全应用执行的方法和装置 |
US9087200B2 (en) | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
CN104813330A (zh) * | 2012-12-31 | 2015-07-29 | 英特尔公司 | 在运行时测量在安全区域内加载的应用 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8973094B2 (en) | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
US9304964B2 (en) * | 2006-06-30 | 2016-04-05 | Intel Corporation | Separable transport layer in cache coherent multiple component microelectronic systems |
KR20110009679A (ko) * | 2008-05-16 | 2011-01-28 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 시스템 관리 커맨드 제공 방법, 전자 디바이스 및 컴퓨터 시스템 |
US8989705B1 (en) | 2009-06-18 | 2015-03-24 | Sprint Communications Company L.P. | Secure placement of centralized media controller application in mobile access terminal |
US8578138B2 (en) | 2009-08-31 | 2013-11-05 | Intel Corporation | Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode |
US9921967B2 (en) | 2011-07-26 | 2018-03-20 | Intel Corporation | Multi-core shared page miss handler |
EP2817755B1 (en) * | 2012-02-20 | 2021-03-24 | Intel Corporation | Directed wakeup into a secured system environment |
US8712407B1 (en) | 2012-04-05 | 2014-04-29 | Sprint Communications Company L.P. | Multiple secure elements in mobile electronic device with near field communication capability |
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 |
US8862181B1 (en) | 2012-05-29 | 2014-10-14 | Sprint Communications Company L.P. | Electronic purchase transaction trust infrastructure |
US9282898B2 (en) | 2012-06-25 | 2016-03-15 | Sprint Communications Company L.P. | End-to-end trusted communications infrastructure |
US9053042B2 (en) * | 2012-06-27 | 2015-06-09 | Intel Corporation | Method, system, and device for modifying a secure enclave configuration without changing the enclave measurement |
US9066230B1 (en) | 2012-06-27 | 2015-06-23 | Sprint Communications Company L.P. | Trusted policy and charging enforcement function |
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 |
US8863252B1 (en) | 2012-07-25 | 2014-10-14 | Sprint Communications Company L.P. | Trusted access to third party applications systems and methods |
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 |
US8954588B1 (en) | 2012-08-25 | 2015-02-10 | Sprint Communications Company L.P. | Reservations in 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 |
US9015068B1 (en) | 2012-08-25 | 2015-04-21 | Sprint Communications Company L.P. | Framework for real-time brokering of digital content delivery |
US8752140B1 (en) | 2012-09-11 | 2014-06-10 | Sprint Communications Company L.P. | System and methods for trusted internet domain networking |
US9189411B2 (en) * | 2012-12-28 | 2015-11-17 | Intel Corporation | Logging in secure enclaves |
US9747102B2 (en) | 2012-12-28 | 2017-08-29 | Intel Corporation | Memory management in secure enclaves |
US9323686B2 (en) | 2012-12-28 | 2016-04-26 | Intel Corporation | Paging in secure enclaves |
US9037854B2 (en) * | 2013-01-22 | 2015-05-19 | Amazon Technologies, Inc. | Privileged cryptographic services in a virtualized environment |
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 |
US9104840B1 (en) | 2013-03-05 | 2015-08-11 | Sprint Communications Company L.P. | Trusted security zone watermark |
US8881977B1 (en) | 2013-03-13 | 2014-11-11 | Sprint Communications Company L.P. | Point-of-sale and automated teller machine transactions using trusted mobile access device |
US9613208B1 (en) | 2013-03-13 | 2017-04-04 | Sprint Communications Company L.P. | Trusted security zone enhanced with trusted hardware drivers |
US9049013B2 (en) | 2013-03-14 | 2015-06-02 | Sprint Communications Company L.P. | Trusted security zone containers for the protection and confidentiality of trusted service manager data |
US9049186B1 (en) | 2013-03-14 | 2015-06-02 | Sprint Communications Company L.P. | Trusted security zone re-provisioning and re-use capability for refurbished mobile devices |
US9191388B1 (en) | 2013-03-15 | 2015-11-17 | Sprint Communications Company L.P. | Trusted security zone communication addressing on an electronic device |
US9021585B1 (en) | 2013-03-15 | 2015-04-28 | Sprint Communications Company L.P. | JTAG fuse vulnerability determination and protection using a trusted execution environment |
US8984592B1 (en) | 2013-03-15 | 2015-03-17 | Sprint Communications Company L.P. | Enablement of a trusted security zone authentication for remote mobile device management systems and methods |
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 |
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 |
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 |
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 |
US9069952B1 (en) | 2013-05-20 | 2015-06-30 | Sprint Communications Company L.P. | Method for enabling hardware assisted operating system region for safe execution of untrusted code using trusted transitional memory |
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 |
US9161325B1 (en) | 2013-11-20 | 2015-10-13 | Sprint Communications Company L.P. | Subscriber identity module virtualization |
US9118655B1 (en) | 2014-01-24 | 2015-08-25 | Sprint Communications Company L.P. | Trusted display and transmission of digital ticket documentation |
US9226145B1 (en) | 2014-03-28 | 2015-12-29 | Sprint Communications Company L.P. | Verification of mobile device integrity during activation |
US9703733B2 (en) | 2014-06-27 | 2017-07-11 | Intel Corporation | Instructions and logic to interrupt and resume paging in a secure enclave page cache |
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 |
US9473945B1 (en) | 2015-04-07 | 2016-10-18 | Sprint Communications Company L.P. | Infrastructure for secure short message transmission |
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 |
KR101780636B1 (ko) * | 2016-05-16 | 2017-09-21 | 주식회사 코인플러그 | 인증 정보의 발급 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 |
KR101799343B1 (ko) * | 2016-05-16 | 2017-11-22 | 주식회사 코인플러그 | 인증 정보의 사용 방법, 파기 방법 및 이를 지원하는 블록체인기반 인증 정보 관리 서버 |
US10499249B1 (en) | 2017-07-11 | 2019-12-03 | Sprint Communications Company L.P. | Data link layer trust signaling in communication network |
US10552344B2 (en) | 2017-12-26 | 2020-02-04 | Intel Corporation | Unblock instruction to reverse page block during paging |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603000A (en) * | 1989-05-15 | 1997-02-11 | Dallas Semiconductor Corporation | Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells |
US5339405A (en) | 1992-03-30 | 1994-08-16 | International Business Machines Corporation | Command quiesce function |
US5758141A (en) * | 1995-02-10 | 1998-05-26 | International Business Machines Corporation | Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register |
US5694617A (en) * | 1995-03-31 | 1997-12-02 | International Business Machines Corporation | System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation |
US5659750A (en) * | 1995-05-15 | 1997-08-19 | Nvidia Corporation | Apparatus for context switching of input/output devices in responses to commands from unprivileged application programs |
US5905861A (en) * | 1996-12-02 | 1999-05-18 | Lovell; William S. | Data authentication circuit |
JP3546678B2 (ja) | 1997-09-12 | 2004-07-28 | 株式会社日立製作所 | マルチos構成方法 |
JP2000076216A (ja) * | 1998-09-02 | 2000-03-14 | Nec Corp | マルチプロセッサシステム及びそのプロセッサ二重化方法並びにその制御プログラムを記録した記録媒体 |
US6493741B1 (en) * | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
JP3749640B2 (ja) * | 1999-10-15 | 2006-03-01 | 株式会社東芝 | Icカード利用装置、icカード及び記憶媒体 |
US6754829B1 (en) * | 1999-12-14 | 2004-06-22 | Intel Corporation | Certificate-based authentication system for heterogeneous environments |
US6507904B1 (en) | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
JP3576945B2 (ja) | 2000-09-13 | 2004-10-13 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステムにおける命令実行方法及びその装置 |
JP2002197047A (ja) * | 2000-10-31 | 2002-07-12 | Hewlett Packard Co <Hp> | 入力/出力読出しデータがプロセッサローカルキャッシュに直接配置されるコンピュータシステム |
US6938164B1 (en) * | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US7103771B2 (en) | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US20030126454A1 (en) | 2001-12-28 | 2003-07-03 | Glew Andrew F. | Authenticated code method and apparatus |
GB0205046D0 (en) * | 2002-03-05 | 2002-04-17 | Bitarts Ltd | Security arrangement |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US20030191943A1 (en) * | 2002-04-05 | 2003-10-09 | Poisner David I. | Methods and arrangements to register code |
US20030229794A1 (en) | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US7379418B2 (en) * | 2003-05-12 | 2008-05-27 | International Business Machines Corporation | Method for ensuring system serialization (quiesce) in a multi-processor environment |
US20050114687A1 (en) * | 2003-11-21 | 2005-05-26 | Zimmer Vincent J. | Methods and apparatus to provide protection for firmware resources |
US9189230B2 (en) * | 2004-03-31 | 2015-11-17 | Intel Corporation | Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution |
US7698552B2 (en) | 2004-06-03 | 2010-04-13 | Intel Corporation | Launching a secure kernel in a multiprocessor system |
US20060059269A1 (en) * | 2004-09-13 | 2006-03-16 | Chien Chen | Transparent recovery of switch device |
US8145816B2 (en) | 2004-09-15 | 2012-03-27 | Intel Corporation | System and method for deadlock free bus protection of resources during search execution |
US7934076B2 (en) | 2004-09-30 | 2011-04-26 | Intel Corporation | System and method for limiting exposure of hardware failure information for a secured execution environment |
US20060288209A1 (en) * | 2005-06-20 | 2006-12-21 | Vogler Dean H | Method and apparatus for secure inter-processor communications |
US7822978B2 (en) * | 2005-07-22 | 2010-10-26 | Intel Corporation | Quiescing a manageability engine |
US8286002B2 (en) * | 2005-12-02 | 2012-10-09 | Alcatel Lucent | Method and apparatus for providing secure remote access to enterprise networks |
US8973094B2 (en) | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
-
2006
- 2006-05-26 US US11/442,230 patent/US8973094B2/en active Active
-
2007
- 2007-05-25 WO PCT/US2007/069742 patent/WO2007140300A1/en active Application Filing
- 2007-05-25 DE DE112007001321T patent/DE112007001321T5/de not_active Withdrawn
- 2007-05-25 CN CN200780019112.XA patent/CN101454751B/zh active Active
- 2007-05-25 JP JP2009506817A patent/JP4883459B2/ja not_active Expired - Fee Related
- 2007-05-28 TW TW096118973A patent/TWI431533B/zh not_active IP Right Cessation
-
2008
- 2008-11-25 KR KR1020087028845A patent/KR101263061B1/ko active IP Right Grant
-
2011
- 2011-11-28 JP JP2011259595A patent/JP6012166B2/ja active Active
-
2013
- 2013-03-15 US US13/837,498 patent/US20130212672A1/en not_active Abandoned
-
2014
- 2014-05-22 JP JP2014106374A patent/JP6026462B2/ja active Active
-
2015
- 2015-12-09 US US14/964,020 patent/US20160085965A1/en not_active Abandoned
-
2016
- 2016-07-05 JP JP2016133348A patent/JP2016197436A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102473224A (zh) * | 2009-12-22 | 2012-05-23 | 英特尔公司 | 提供安全应用执行的方法和装置 |
US9087200B2 (en) | 2009-12-22 | 2015-07-21 | Intel Corporation | Method and apparatus to provide secure application execution |
CN102473224B (zh) * | 2009-12-22 | 2016-10-12 | 英特尔公司 | 提供安全应用执行的方法和装置 |
US10102380B2 (en) | 2009-12-22 | 2018-10-16 | Intel Corporation | Method and apparatus to provide secure application execution |
US10885202B2 (en) | 2009-12-22 | 2021-01-05 | Intel Corporation | Method and apparatus to provide secure application execution |
CN104813330A (zh) * | 2012-12-31 | 2015-07-29 | 英特尔公司 | 在运行时测量在安全区域内加载的应用 |
Also Published As
Publication number | Publication date |
---|---|
US20160085965A1 (en) | 2016-03-24 |
JP6026462B2 (ja) | 2016-11-16 |
JP2012089147A (ja) | 2012-05-10 |
DE112007001321T5 (de) | 2009-04-23 |
JP2014194804A (ja) | 2014-10-09 |
JP4883459B2 (ja) | 2012-02-22 |
KR20090005219A (ko) | 2009-01-12 |
WO2007140300A1 (en) | 2007-12-06 |
TW200820081A (en) | 2008-05-01 |
US20130212672A1 (en) | 2013-08-15 |
TWI431533B (zh) | 2014-03-21 |
US8973094B2 (en) | 2015-03-03 |
JP6012166B2 (ja) | 2016-10-25 |
CN101454751B (zh) | 2016-01-20 |
JP2016197436A (ja) | 2016-11-24 |
KR101263061B1 (ko) | 2013-05-09 |
US20070277223A1 (en) | 2007-11-29 |
JP2009534763A (ja) | 2009-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101454751B (zh) | 在点对点互连中执行安全环境初始化的装置与方法 | |
EP1980970B1 (en) | Dynamic trust management | |
JP4498735B2 (ja) | オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム | |
CN101410772B (zh) | 用于执行安全环境起始指令的系统 | |
CN100530209C (zh) | 用于限制安全执行环境的硬件失败信息泄漏的系统和方法 | |
EP1754126B1 (en) | Enhancing trusted platform module performance | |
Sparks | A security assessment of trusted platform modules | |
CN104321748B (zh) | 用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置 | |
US20080034350A1 (en) | System and Method for Checking the Integrity of Computer Program Code | |
CN101167060A (zh) | 用以提供安全开机架构的系统与方法 | |
CN103649964A (zh) | 安全寄存执行体系架构 | |
TW201937366A (zh) | 具開機之可信驗證與容錯移轉之計算機系統及方法 | |
Sastry et al. | Designing Voting Machines for Verification. | |
JPH0675862A (ja) | ドッキングステーション向き接続承認方法 | |
RU2808198C1 (ru) | Способ доверенной загрузки устройства с возможностью заверения разных этапов загрузки несколькими независимыми владельцами ключей | |
Harrison et al. | Proceedings from the Workshop on Issues of Integrity and Security in an ADA Runtime Environment Held in Orlando, Florida on 3-5 April 1990 | |
Butler | Leveraging Emerging Disk Functionality for New Security Services | |
GB2412465A (en) | Resetting a register on receipt of a locality confirming message |
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 |