对隔离计算环境编程的系统和方法

文档序号:6552998阅读:190来源:国知局
专利名称:对隔离计算环境编程的系统和方法
本申请是2004年12月22日提交的美国专利申请第11/022,493号的部分延续,后者是2004年12月8日提交的美国专利申请第11/006,837号的部分延续,而该申请又是2004年11月15日提交的美国专利申请10/989,122号的部分延续。
背景如在以上所引用的申请中讨论的,对隔离计算环境,有时候称为可信计算基础的使用带来了管理计算机,尤其是在按使用付费(pay-per-use)或即用即付(pay-as-you-go)商业模型中使用的计算机的操作的重要能力。当这一计算机为最终用户所控制时,隔离计算环境可表示不在场服务供应商或其它有利益方的利益。由于隔离计算环境代表不在场方来操作,因此它必须维持其完整性以表示该不在场方在整个制造和递送过程中的利益。在制造期间对隔离计算环境的编程可能会不必要地将隔离计算环境的有效性限于一特定的操作环境,诸如特定的商业逻辑/政策、应用、处理器销售商或操作系统版本。相反,在递送给最终用户之后对隔离计算环境编程可能会允许最终用户不利于服务提供商而干扰隔离计算环境的编程。
概述根据本发明公开的一方面,一种用于隔离计算环境的配置和编程的方法和装置使用了密码学方法来进行认证。在一个实施例中,隔离计算环境可以在发行和分发之前在安全制造环境中编程。在另一实施例中,隔离计算环境最初用通用系统环境和标准密钥来编程。隔离计算环境然后可使用该通用系统环境和标准密钥来认证将来的中间或最终编程和密钥。这一级别的编程可在安全制造环境之内或之外发生。在又一实施例中,隔离计算环境的编程可以被推迟到安全制造环境之外。在该实施例中,操作系统可以负责在日常的基础上从大容量存储设备下载编程。隔离计算环境然后可负责下载数据的认证和授权。
为实现稍后的制造阶段中或在递送到现场,包括递送给最终用户之后的认证和授权,隔离计算环境可用设置或传输密钥以及初始程序来编程以提供特定功能。隔离计算环境然后可由可信源或用递送周期中稍后的认证数据来更新。通过推迟最终编程,隔离计算环境的有效性和灵活性可被极大地扩展。为实施最终编程,可对计算机施加制裁(sanction)以限制计算机的有效性,直到经批准的代码版本在隔离计算环境中进行安装或直到所尝试的下载无法通过认证。
隔离计算环境的灵活性可通过允许计算机和隔离计算环境跨不同的操作和安装环境交互的应用程序接口来进一步增强。
附图简述

图1是计算机的简化和代表性框图;图2是简化的隔离计算环境的框图;图3是示出隔离计算环境服务之间的功能关系的简化和示例性框图;图4是示出用于对隔离计算环境连续编程的系统的框图;以及图5是描绘推迟隔离计算环境的编程和设置的方法的流程图。
各实施例的详细描述尽管以下正文陈述了众多不同实施例的详细描述,但是应当理解,该描述的法律范围由本申请公开末尾陈述的权利要求书的言辞来限定。该详细描述应被解释为仅是示例性的,且不描述每一可能的实施例,因为描述每一可能的实施例即使不是不可能的也是不切实际的。可使用现有技术或在本申请提交日之后开发的技术来实现众多替换实施例,而这仍落入权利要求书的范围之内。
还应当理解,除非一术语在本专利中使用语句“如此处所使用的,术语‘__’此处被定义为指……”或类似的语句来定义,否则毫无意图将该术语的含义明确地或隐含地限制在其简单或普通意义之外,且这类术语不应当被解释为基于本专利的任何一节中所作出的任何陈述(权利要求书的语言除外)而在范围上有限制。就本专利末尾的权利要求书中引用的任何术语在本专利中以与单数意义相一致的方式来引用而言,这是为简明起见而如此做的,仅仅是为了不使读者感到混淆,且这类权利要求术语并不旨在隐含地或以其它方式限于该单数意义。最后,除非一权利要求要素是通过叙述单词“装置”和功能而没有叙述任何结构来定义的,否则任何权利要求要素的范围并不旨在基于35 U.S.C.§112第6段的应用来解释。
许多发明性功能和许多发明性原理最佳地使用或利用软件程序或指令以及诸如专用IC等集成电路(IC)来实现。期望本领域的普通技术人员虽然可能要进行大量的工作和由例如可用时间、现有技术以及经济问题促动的许多设计选择,但是当受到此处所公开的概念和原理的指引时仍能够容易地以最小的实验来生成这些软件指令和程序以及IC。因此,为了简明以及最小化使根据本发明的原理和概念晦涩的任何风险,对这些软件和IC(如果有的话)的进一步讨论将限于对于较佳实施例的原理和概念所必需的那些讨论。
对隔离计算环境的使用允许诸如因特网服务供应商、租借代理、银行等服务供应商即使在计算机不受服务供应商的物理控制时也能对计算机实施某些政策。为了有效,隔离计算环境可能需要某种可信级别,该可信级别意味着隔离计算环境在可信环境中编程或维持回到安全环境的信任链。
如上所述,其中所需的安全环境可能易于建立和维护的早期编程可将隔离计算环境限于一组有限的计算平台选项。早期设置和后期编程或配置的组合有助于隔离计算环境的灵活性,同时有助于确保其安全性。
图1示出了计算机110形式的计算设备。计算机110的组件可包括但不限于,处理单元120、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构中的任一种的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任一可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
系统存储器130包括以易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图1示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器141、对可移动、非易失性磁盘152进行读写的磁盘驱动器151以及对可移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
上文讨论并在图1中示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定位设备161(通常指鼠标、跟踪球或触摸垫)向计算机20输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。除监视器之外,计算机也可包括其它外围输出设备,如扬声器197和打印机196,它们通过输出外围接口195连接。
计算机110可以使用到一台或多台远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有以上相对于计算机110所描述的元件,尽管在图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172可以是内置或外置的,它通过用户输入接口160或其它适当的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出远程应用程序185驻留在存储器设备181上。
通信连接170、172允许设备与其它设备通信。通信连接170、172是通信介质的示例。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传送介质。“已调制数据信号”可以是以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。计算机可读介质可包括存储介质和通信介质两者。
参考图2更详细讨论的隔离计算环境125可储存程序和数据并引发其执行。隔离计算环境125可被开发和配置成实施计算机110的用户和对计算机110有利益的服务供应商之间的协定的条款。
隔离计算环境125可以用一种以上方式来实例化。当由一个或多个离散组件实现时,隔离计算环境125可被设置在计算机的主板(未描述)上。主板可以是任何电路互连和适用于给定应用的组件安装基础技术,并且范围可从光纤玻璃材料到模塑环氧树脂、聚酯薄膜、陶瓷等。当隔离计算环境125被设置在主板上或主板中时,隔离计算环境125可被包围在环氧树脂中或被埋于互连层或组件之下。包围或埋置隔离计算环境125可用于增加移除或篡改隔离计算环境125本身、到隔离计算环境125的相关联的电源和接地连接、或到隔离计算环境125的数据和地址连接的难度。理想地,隔离计算环境125的移除或去盖(de-lid)导致对主板和/或周围组件的永久损坏并使计算机110无法操作。
隔离计算环境125的另一种实例化可以如图1所示,其中隔离计算环境125被结合在处理单元120中。通过如此设置在处理单元中可提供对处理单元寄存器的更好访问和对数据序列的监视以及对物理攻击的改进的抵抗性的优点。
参考图2,讨论并描述了简化和代表性的隔离计算环境。该隔离计算环境可以是或类似于以上介绍的隔离计算环境125。隔离计算环境125可包括存储器202、逻辑电路204以及时钟或定时器206,例如定时器206可以用于通过对真实时间的间隔计数来实现时钟。存储器202可包括易失性和非易失性存储器两者。
隔离计算环境125还可包括数字签名验证电路208。当需要外部实体的单向验证,例如服务器(未描绘)的验证时,随机数生成器210可以是数字签名验证电路208的一部分。数字签名技术是公知的,并且此处未详细讨论散列、签名验证、对称和非对称加密算法及其各自的密钥。
隔离计算环境125的各块可通过总线212来耦合。总线212可以与用于外部访问的系统或处理单元总线214分开。分开的总线可通过限制对总线212所传递的数据的访问来提高安全性。总线212可结合诸如余额数据线等安全预防措施,以使对储存在存储器202中的密码密钥216的强大攻击变得更困难。
存储器202可包括非易失性存储器,该非易失性存储器除储存密码密钥216之外还可储存至少一个验证程序218和至少一个实施程序220。这些程序在下文中更详细讨论。其它数据222可被储存在存储器202中,例如与已知的BIOS码或应用程序相关联的散列码和/或其它数字签名信息。可被储存在存储器202中的数据222的其它示例可以是与计算机110的当前状态有关的依从性数据、或用于验证所下载的对验证程序218或实施程序220的更新的证书信息。存储器202中的非易失性存储器也可允许可信的、安全的引导过程与操作系统144分开。
确认和实施程序218、220被示为储存在隔离计算环境125中,但是它们也可被储存在外部,而这些程序的数字签名或散列储存在隔离计算环境125中,例如在存储器202的数据部分216中。或者,数字签名可被储存在隔离计算环境125之外,可能作为元数据附加到这些程序。当监视或度量应用程序时,隔离计算环境125可在程序执行之前或期间确认应用程序的散列或数字签名。由于程序218、220和储存在存储器202中的数据是与即用即付、按使用付费商业模型的成功相关联的安全性的一部分,因此重要的是保护数据免受非授权访问和篡改。对存储器202的非授权访问可以使用逻辑电路204或数字签名签证电路208或两者的组合来限制。对存储器的访问可被限于运行已知程序代码,即隔离计算环境125信任的程序代码的进程。程序代码可以是确认程序218或实施程序220。然而,其它程序可被授予对存储器202的访问。例如,支持对使用信用或余额的管理的应用程序可使用隔离计算环境125的存储器。当需要修复或维护时,对存储器202的访问可被授予具有正确凭证的联网设备上支持的服务进程以实现修复。
隔离计算环境125可具有若干种功能。隔离计算环境125的一种功能是保护其自身免受非授权更新和篡改。储存在隔离计算环境125中的程序和数据可在制造时注入或可在用隔离计算环境125本身认证的签名正确签署的情况下下载。另一种功能可以是监视和/或度量计算机110的状态以确定计算机110的状态中是否有黑客攻击或其它非授权改变正在进行或已发生。监视和度量的另一方面可以是支持计算机110的涉及与供应资源相关联的功能和诸如事件分派器或余额管理器等主存安全功能的状态的合法改变。第三种功能可以是确认当前BIOS码和确认对BIOS码的更新和扩展。隔离计算环境125的另一种功能可以是提供可靠时钟或定时器,两者都作为用于计量程序和到期日的时间源。时钟或定时器也可确保隔离计算环境125被日常地授予对计算机110的访问而不会“极度缺乏”CPU或总线周期。另一种功能可以是当在计算机110中确定非依从状态时实施制裁。隔离计算环境125的又一种功能是用作独立监管程序,该监管程序观察计算机的使用并确保它遵从由供应商或合法拥有者提出的商业条款和政策。即用即付和预订计算机是这一技术的示例。
为保护免受非授权更新和篡改,可保护存储器202。为达到这一目的,可使存储器202仅对特定的程序,例如在计算机110的安全操作模式的控制下通过数字签名认证的更新例程可访问。可以使存储器202对由诸如操作系统或内核等另一执行环境执行的任何程序不可访问。内核通常在计算机110引导时运行。作为示例,来自IntelTM的x86处理器可在若干种模式或执行环下操作。环0-2由内核占据,环3由“用户模式”进程占据。第三种模式SMM(系统管理模式)由BIOS占据。能够访问安全存储器202的程序可以在SMM下运行,因为它在内核所达范围之外,但是需要保护BIOS。或者,隔离计算环境125可以使用专用设备独立于CPU来实现。
为了隔离计算环境125的安全起见,除隔离计算环境125之外的设备可能完全无法寻址专用于隔离计算环境存储器202的物理存储器。这仅是用于确保仅隔离计算环境能够访问和更改与隔离计算环境存储器202的操作相关联的任何数据,包括程序218、220、密钥216和状态/操作数据222的一种方法。数字签名验证电路208可用于验证来自外部,即通过操作系统144的对存储器202的所有请求的改变。通过使用内部储存的密钥确认数字签名,可对由非可信源,即操作系统144接收的数据建立信任。
图3描绘了隔离计算环境125的逻辑视图。密码服务302用于保护内部层或服务免受篡改或非授权访问。密码密钥304可被储存在安全存储器中,诸如图2的存储器202。配置表306和核心服务308可用于对隔离计算环境125的特征和功能编程。应用程序接口(API)310可用于支持与隔离计算环境125的双向数据传输。通过使用应用程序接口310,可将有效通信的命令集限于特定的格式、模式和/或安全政策。以此方式,不符合预定义特征集的数据传送可被拒绝而不被进一步处理。例如,要求带有更新ICE的某些方面的有效载荷的消息被可信授权机构数字签署。
更新服务312可用于响应于对接收消息的认证来改变密钥304、配置表306和核心服务308。与图2的实施程序220相同或相似的制裁服务314可被触发以在初始制造之后运输时或在正常操作期间标识出不相容条件之后限制计算机110的功能。制裁服务可使用激活机制来阻碍计算机的功能。激活机制可被嵌入在总线驱动程序或时钟电路中,或者可以是微处理器(未描绘)的硅的组件,诸如微码。或者,激活机制可以是对计算机的周期性复位。在一个实施例中,复位之间的周期随机地变化,但是一般可以足够长以允许执行诊断和维护功能。可以使激活机制及其物理表现是抗篡改的,因为禁用激活机制可用于使制裁作废。
主存应用程序316或其它功能性程序可以与隔离计算环境125相关联。主存应用程序316可以最初被安装在隔离计算环境125中或者可以在稍后实例化,例如在制造后期、在零售中心处、或在递送给顾客之后。主存应用程序316可以与对按使用付费计算机的计量相关联、可用作对度量功能的把关定时器(watchdog)、或者可以是其中期望安全性度量的任何应用程序、功能或资源。单个隔离计算环境125可以支持一个以上主存应用程序316(当隔离计算环境125被称为“冰(ICE)”时,主存应用程序可被称为“冰柱(icicle)”)。
核心服务308和主存应用程序316之间的关系可取决于应用并随时间改变。例如,在一个实施例中,核心服务308可控制对隔离计算环境125的更新,即,用作对更新的监督者等。在另一实施例中,主存应用程序316可用作监督者。在又一实施例中,核心服务308可在呈现令牌时放弃监督责任或将其委托给主存应用程序316。尽管是复杂的,但是另一实施例可在核心服务308和主存应用程序316之间共享监督责任。
更新服务312响应于经由应用程序接口310接收的经确认的消息,可用于对整个核心服务308、配置表306、密钥304和/或主存应用程序316进行更新或重新编程。当更新核心服务308时,可更新一个或多个操作例程。操作例程可影响对计算机110进行的度量以及在最终用户操作期间施加的制裁。对配置表306的更新可包括支付时间表、度量准则、默认设置等。对密钥的更新可以是替换旧密钥或安装新密钥以允许确认后续消息。因此,在经确认的消息中接收的数据可包括由核心服务308、配置表306设置、主存应用程序316或密钥304使用的任何或所有例程。为防止重新加载更新的前一版本,尤其是已遭损坏的版本,可将序列号或时戳用作经确认的消息的一部分。
图4描绘了诸如计算机110等计算机中的代表性生命周期阶段。还示出了可用于保护诸如隔离计算环境125等计算机的安全区域的代表性过渡密码密钥。在制造过程中的早期,如早至芯片测试期间,可将初始密钥402注入到计算机125或其组件中。注入一般通过直接写入存储器电路202来发生,这通常在它被足够的保护性电路围绕并物理硬化之前进行以保护存储器202免受这一直接写入过程。
在制造404之后,可用设置密钥406替换初始密钥402。设置密钥406可以在制造商或其子进程以及编程阶段408之间共享。在编程期间,可安装操作系统和应用程序。如果计算机110的最终目的地是已知的,则可发生本地化。在某些可信环境中,隔离计算环境125可在制造期间保持开放,从而允许安装更标准的隔离计算环境。绑定到特定操作系统和功能环境然后可被推迟而没有密码锁施加的限制。在一个实施例中,操作系统的安装和设置可受缚于隔离计算环境125的设置和编程。在另一实施例中,所有隔离计算环境都可被给予一标准密钥或组密钥,从而允许该组中的所有机器用单个密钥来编程。被编程到隔离计算环境125中的唯一标识符然后可用于区分和个性化用于每一单独的隔离计算环境125的密码密钥和环境。在编程408期间,也可安装过渡密码密钥410。过渡密钥410可在编程操作和设置/配置操作412之间共享。设置/配置412可以是零售递送中心或可以是服务供应商集结区。在设置和配置期间,可对个别用户账户编程、建立电子邮件服务、对因特网连接编程、并且在按使用付费计算机的情况下可安装使用计划和初始操作信用。
在设置/配置过程期间,可安装操作密钥414,且在某些情况下可安装维护密钥418。一个或多个操作密钥414可能不与最终用户共享,但是(多个)操作密钥可驻留在计算机110中,或更具体地,可被储存在隔离计算环境125中。可将若干组对称密钥安装在对称密钥加密环境中,或者如果使用非对称密码技术,则可安装根证书和公钥。计算机此时可对最终用户的有益操作416作好准备。在操作416的过程中,可能需要维护。如果需要特殊访问,则可绕过操作密钥414并使用维护密钥418来将计算机110置于特殊维护模式420中。当维护过程420完成时,计算机110可返回到操作模式416。
操作密钥414可在正常操作期间使用,例如用于向即用即付账户增加值。其它专用密钥可在任一点处安装以供补充用途,包括但不限于数字签署的更新。在制造和递送过程的每一阶段,核心服务308、配置表306和密钥304中的代码可被更新以反映在该阶段执行的操作,或允许为下一阶段调度活动。这一顺序处理中使用的密钥管理过程在行业中是已知的。
在计算机110或诸如隔离计算环境125等计算环境的生命周期中的每一步骤,可通过使用安装的密钥和所呈现供认证的令牌来建立信任。通过呈现可接受的令牌,诸如数字签署的更新,与发送方建立信任。计算机110或隔离计算环境125仅在制造过程的早期必须依赖于支持环境来执行可信动作,诸如初始密钥402的注入。在该初始可信环境之外,不期望计算机110或隔离计算环境125先验地信任所呈现的任何数据。此外,隔离计算环境可认证请求并确认其授权。例如,它可向各种隔离计算环境组件的更新和安装应用变化的政策。例如,更新核心服务和配置服务可被授予非常严格控制的组,而更新主存应用程序被授予其作者。
在隔离计算环境125的初始编程以及初始密钥402的注入之后的任何时刻,例如在制造404步骤,隔离计算环境125可对计算机110施加制裁。制裁可将功能限于适用于完成计算机110的编程和设置中的稍后步骤的一组最小的有用例程或服务,但足以妨碍最终用户的有益使用。制裁可包括持久复位、精简指令集、减缓操作、最小化屏幕区域或颜色等,且制裁可在递送阶段期间改变。这些早期制裁可以在用适用于最终用户操作的核心服务308、配置表306设置和密钥304更新隔离计算环境125时解除。作为计算机110,或更具体地,隔离计算环境125的配置的认证的一部分,可数字地验证核心服务308的特征。例如,验证可使用数字签名或散列以及先前建立的信任令牌,诸如根证书或已知的散列。
当实例化时,编程和设置例如通过适当软件模块的连续安装作为一系列步骤发生,且可通过“最后一个”模块的安装来解除制裁。即,最后一个模块可确定底层模块已被安装且完整无缺,并且然后可解除制裁。
或者,可以不施加制裁,直到在制造或顾客履行过程中的后期。在一个实施例中,如果隔离计算环境125未被更新,则制裁服务314在激活制裁之前监视诸如多次复位、日历日期或自从构建以来的日子等触发事件。
图5是描绘在所讨论和描述的计算机的隔离计算环境中推迟编程的方法的流程图。在502处提供诸如计算机110等计算机。该计算机可包括物理隔离计算环境,或者隔离计算环境可由操作系统来实现。一般而言,硬件隔离计算环境可以更安全地防篡改和攻击。
在递送给最终用户之前,较佳地在制造过程中的早期,可在504处用运输功能对隔离计算环境编程。运输功能可限于允许朝向顾客递送的当前和/或后续步骤的能力,但是可能不包括最后的最终用户功能。对运输功能编程可包括对诸如密钥406、410等运输密码密钥以及核心服务308中的至少一个下载功能编程。下载功能可允许随后下载中间功能或最终用户功能。
为帮助实施制造和递送周期的完成,可在506处限制或减少计算机的操作。如上所述且在所引用的优先权文献中有许多选项可用于限制计算机操作,并且它们可包括减少处理单元120的功能或周期性地复位计算机110。
可在508处接收并认证传入消息。该数据可对应于经更新的功能或诸如密钥304、核心服务308或配置数据等用于更新配置表306的其它数据设置。可在510处用经认证的数据对隔离计算环境重新编程。该数据可包括其自己的安全令牌,诸如数字签名,或者隔离计算环境可使用运输密钥与主机建立经认证的会话以验证数据的真实性。当安装并验证操作级代码时,可在512处移除与计算机110的运输配置相关联的制裁,从而允许用户的有益使用。
通过遵循诸如上述的过程,可在制造过程中的早期,即破坏隔离计算环境的机会被保持为低时保护隔离计算环境125或其它安全环境。可授权其它中间制造和递送操作以在每一步都可证明其通过呈现适当的密钥来作出改变的权限的意义上作出更新和改变。对配置表306和核心服务308的最终更新允许隔离计算环境跨更广范围的计算机配置、操作系统和本地化来使用。同时,隔离计算环境维护足够的功能来支持制造和递送,但是通过使用中间密码密钥来保留其完整性/可信性。
尽管以上正文陈述了本发明的众多不同实施例的详细描述,但是应当理解,本发明的范围由本专利末尾陈述的权利要求书的言辞来定义。该详细描述应被解释为仅是示例性的,且不描述本发明的每一可能的实施例,因为描述每一可能的实施例即使不是不可能的也是不切实际的。可使用现有技术或在本专利提交日之后开发的技术来实现众多替换实施例,这仍将落入定义本发明的权利要求书的范围之内。
由此,可在此处所描述和示出的技术和结构上作出许多修改和变化而不脱离本发明的精神和范围。因此,应当理解,此处所描述的方法和装置仅是说明性的,且不限制本发明的范围。
权利要求
1.一种在计算机中使用的隔离计算环境,执行计算机可执行指令的所述隔离计算环境包括核心服务;用于接收消息的接口,所述消息包括更新代码和配置信息中的至少一个;用于访问第一密钥并使用所述第一密钥来验证所述消息的数字签名的密码服务;以及更新服务,其中在使用所述第一密钥验证所述消息之后,所述更新服务响应于所述消息来更新所述核心服务。
2.如权利要求1所述的隔离计算环境,其特征在于,还包括配置表,其中所述更新服务响应于包括所述配置信息的所述消息更新所述配置表。
3.如权利要求1所述的隔离计算环境,其特征在于,还包括用于限制所述计算机的功能的制裁服务。
4.如权利要求3所述的隔离计算环境,其特征在于,所述制裁服务在响应于通过所述第一密钥验证的消息更新所述核心服务之前限制所述计算机的功能。
5.如权利要求1所述的隔离计算环境,其特征在于,还包括主存应用程序,其中所述消息包括核心服务更新数据和主存应用程序更新数据中的至少一个。
6.如权利要求1所述的隔离计算环境,其特征在于,所述核心服务的特征被数字地验证。
7.如权利要求1所述的隔离计算环境,其特征在于,还包括应用程序接口,所述应用程序接口提供所述计算机和所述隔离计算环境之间的标准接口,以便于进行实例化所述隔离计算环境上主存的应用程序、配置所述隔离计算环境上主存的应用程序以及更新所述隔离计算环境中的任一项。
8.一种适用于使用隔离计算环境来操作的计算机,所述计算机包括处理器耦合到所述处理器、用于储存处理器可执行指令的存储器;以及响应经由所述应用程序接口发送的信号的隔离计算环境,所述隔离计算环境包括密码电路;处理电路;用于储存应用程序接口、第一可执行码和第一配置的安全存储器;以及用于阻碍所述计算机的功能的制裁电路;其中所述制裁电路阻碍所述计算机的功能,至少直到所述第一可执行码和所述第一配置中的一个使用所述应用程序接口被替换为止。
9.如权利要求8所述的计算机,其特征在于,还包括用于双向数据传输的端口,其中经由所述端口接收的数据包括第二可执行码和第二配置中的至少一个。
10.如权利要求8所述的计算机,其特征在于,所述应用程序接口包括用于更新所述第一可执行码和所述第一配置中的一个的第一例程。
11.如权利要求8所述的计算机,其特征在于,所述应用程序接口包括对至所述隔离计算环境的安全数据传输连接的支持。
12.如权利要求8所述的计算机,其特征在于,还包括耦合在所述计算机和所述制裁电路之间的触发机制,由此当触发所述制裁电路时所述计算机的功能被阻碍。
13.如权利要求12所述的计算机,其特征在于,所述触发机制是防篡改的。
14.如权利要求8所述的计算机,其特征在于,阻碍所述计算机的功能包括持久复位和减少所述处理器的功能中的一种。
15.一种对计算机中的隔离计算环境编程的方法,所述计算机具有操作系统,所述方法包括提供包括隔离计算环境的所述计算机;将临时性功能编程到所述隔离计算环境中;从操作系统接收可执行指令;认证所述可执行指令;用经更新的功能覆盖所述临时性功能对所述隔离计算环境重新编程。
16.如权利要求15所述的方法,其特征在于,还包括当对所述可执行指令的认证失败时限制所述计算机的功能。
17.如权利要求15所述的方法,其特征在于,将所述临时性功能编程到所述隔离计算环境中包括对过渡密码密钥和至少一下载功能编程。
18.如权利要求17所述的方法,其特征在于,用经更新的功能对所述隔离计算环境重新编程包括使用所述过渡密码密钥认证所述经更新的功能。
19.如权利要求17所述的方法,其特征在于,用经更新的功能对所述隔离计算环境重新编程包括使用所述过渡密码密钥认证所述经更新的功能的来源。
20.如权利要求15所述的方法,其特征在于,还包括限制所述计算机的操作,其中限制所述计算机的操作包括减少处理器的功能和复位所述计算机中的至少一种。
全文摘要
一种计算机设有隔离计算环境。该隔离计算环境适用于允许初始编程以在制造、分发和销售过程中使用。该隔离计算环境还允许经认证的源或经认证的代码用代码和配置数据更新该隔离计算环境以在最终用户环境中使用。为鼓励最终更新,该计算机可被置于有限功能模式,直到安装了授权码且是可操作的。公开了用于该隔离计算环境的制裁和安全更新的方法和装置。
文档编号G06F9/00GK101057218SQ200580038813
公开日2007年10月17日 申请日期2005年11月12日 优先权日2004年11月15日
发明者A·法兰克, T·G·菲力普斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1