这是一篇较有深度的技术性文章,文章对La Grande安全保护技术有了一个相当完整的介绍。从中我们可以发现,Wintel联盟对未来PC的安全保护有了一个全新立意的高度,未来的PC将更安全!
安全保护是计算机的需要
本文作者 蒋远洪 翻译自Extremetech
前言
在2002年秋季英特尔开发商大会上LaGrande只有很少的细节透露,现在英特尔最终公开了相当数量的关于即将到来的 LaGrande 安全计算初始阶段的技术资料,LaGrande定义了硬件和芯片组的修改,用来支持诸如微软的下一代安全计算基础(NGSCB)即以前我们知道的 Palladium(守护神,具体资料参阅www.microsoft.com/ngscb)等安全计算环境。几个月前,在WinHEC内部预映上,微软发表了关于NGSCB的深入信息,我们没有为你做深入阐述,在这篇文章中,我将快速回顾安全计算的需要(虽然这是很显然的),同时也对NGSCB和LaGrande二者的关键功能方面都深入研究一下,重点在LaGrande的细节组件。
安全、保护是计算的需要
很明显,我们生活在一个黑客的世界中,无数的黑客除了袭扰我们以外似乎无所事事。他们有时是开玩笑,有时是为证明一个理由,而有时是为了实施严重的损害。某些黑客行为可能针对特定的公司和政府,或可能与恐怖分子有联系,但最险恶的黑客攻击是通过各种窥探方法盗取我们的个人信息以及敏感数据。用于寻找操作系统软件安全漏洞的病毒、蠕虫以及木马已感染了数以百万计的系统,造成了大量令人头疼的问题,比如清除及经济损失。微软、英特尔以及其他许多公司正开发受保护的计算环境以对付黑客攻击。与此同时还为敏感数据处理和电子商务交易提供安全计算。当应用软件在一个受保护的分区运行时,它可以改善了平台的稳定性。
虽然保护方法并不是万无一失的。但是NGSCB和LaGrande具有深思熟虑的构架和高水平设计的防御系统,一经配置就能保护绝大多数最终用户和商业企业免受软件攻击。事实上,英特尔和微软强调这些技术是保护免受软件攻击而非硬件攻击。针对我们计算机的许多攻击都来自匿名的入口并且是基于软件的。当然,你的系统有可能受到物理损害或被盗,并且操作系统和/或内部硬件保护系统最多只能对你的重要数据加密,如果你选择使用这些加密功能的话。正如英特尔安全设计师David Grawrock在IDF上他的LaGrande设计课程期间所提到的那样,用逻辑分析器窥探前端总线的人并不多。
基于时间和准确性的考虑,我将重放两场IDF介绍的大部分幻灯片.英特尔台式机安全技术市场经理Mike Ferron-Jones和英特尔台式机安全技术产品行销工程师Luke Girard所作的“LaGrande技术和安全计算概述”以及David Grawrock.所作的“LaGrande架构"。
下面我们将看到具代表性的安装在公司计算环境的安全和保护等级。你可能涉及客户的类似保护等级。无数的黑客工具可用于获取访问放火墙内的客户数据的权限,并且也有各种各样的穿过许多商业企业内的网络屏障的渗透方法。家用系统可能对更多的探查者开放。
要保护一个计算平台就需要更多的保护层次或等级。软件方法必须通过硬件保护来补充。大家对智能卡应该都很熟悉,但很快你们将听到更多关于“可靠平台模块”即TPM的介绍,TPM是一块芯片。它储存了独特的平台信息和加密钥匙,并包括了一个用于加密算法的随机编号发生器。 LaGrande是基于硬件的保护技术,它极大的提高了整体保护等级。
更安全的计算开端
这儿有一张大幻灯片,它显示了当今PC的薄弱环节,以及保护输入和输出的需求。我们可以看到,防止DMA攻击需要芯片组的支持,因为DMA数据交换不需要使用处理器。
下面我们可以看到 LAGRANDE技术在那儿最有用,注意在 Y轴上的“LT”是指LaGrande技术,而不是Lawrence Taylo。很明显,制定此缩写的英特尔技术或行销人员不是纽约巨人队的球迷,也不期望每次提到LT时,人们都想到的是一名后卫球员,而不是一项安全技术。但是你们可以看到主要的焦点还是基于软件的攻击,并且大部分的预计范围(数据、邮件、电子商务)都是可以保护的。
让我们在更多的细节上看看LaGrande的目标。
LaGrande的目标和组件
接下来的幻灯片讨论了LaGrande目标的最高等级。注意兼容性和性能应该不会受损,从现在开始的几年时间内,我们会看到操作系统与处理器配合实现 LaGrande技术的情况,就会知道是否真是这样。即将推出的Prescott处理器应该内建 LaGrande功能,但不会激活(类似于最初的 P 4内含超线程但未激活)。英特尔并不期望在较短的几年内激活处理器里的 LaGrande技术。
在此我们更详细的了解 LaGrande在商业安全和保护计算方面的应用。
正如前面所讨论的那样,要提供完整的平台安全和保护,硬件机制必须补充软件系统,当NGSCB提供了一个安全“段”或受保护的内核,并且NGSCB计算代理(程序)以一种保护的模式执行时,就需要可靠的硬件保护。证明一词意指系统可以验证一个程序或系统是不是它自己所说的它是某一东西,或者验证你是不是你自己说的你是某人。当微软在其白皮书和介绍中详细论述与NGSCB相关的证书,密封的存储,受保护的执行,以及受保护的输入/图形时,并没有论述需要使整个系统工作的处理器功能细节,直到本周之前,英特尔也没有这样做。
请理解英特尔本可以给出更多的细节,却把它留在将来公布。显然,AMD也在致力于这项技术,因此英特尔在开放论坛上只给出了和他们认为开发商需要知道的一样多的公开资料。开发商很可能在非公开的协议(NDAs)下收到更多的资料。
下图显示了英特尔更通用的由微软提出的NGSCB所定义的左侧/右侧域间隔和分区。
这是一张微软在IDF上介绍的幻灯片,显示了NGSCB的通常分区。
回想一下前面显示 PC薄弱环节的幻灯,下面你们可以看到 LaGrande是如何声称运用它的芯片组功能来减轻此薄弱环节所受攻击以保护内存的。尤其注意 DMA通道保护。
LaGrande的策略、目标和首次展示
我们想起了在1999年初,当奔腾III处理器首次推出时,英特尔被普遍认为不好的“处理器ID”功能,无数的用户反感地认为硬编码的ID为大规模的隐私侵犯提供了基础。来自英特尔的Mike Ferron-Jone承认英特尔已经上了宝贵的一课,对于LaGrande,英特尔将提供不同等级的性能可选项,在最高等级,英特尔将提供带或不带LT技术的处理器。清楚且简单,如果你不喜欢LT,英特尔只需要说一句“那就别买它呀!”。一旦你想要更多安全的计算,想要更好的保护免受黑客攻击,那么就买一块带LT的处理器。而且如果你买了一个LT处理器但是想要关闭此功能,就直接这样做。即将推出的Windows的Longhorn版本将自动检测你是否拥有能运行NGSCB的硬件平台,并由你决定是否运行保护环境。
英特尔将在以后披露LT更多的细节,并最终使此技术公开透明,为大多数用户所接受。用户必须能够完全控制任何个人信息的存储和公开。现在还有一点不清楚的地方,似乎用户可以在一个应用程序或操作系统基础上调用LT技术(假设在你的电脑上有多个操作系统),当被问及LT如何与多核心CPU共同工作时,英特尔称他们目前不会披露此类信息。
和微软一样,英特尔敏锐地意识到最终用户不大愿意以LaGrande的表面价值而接受它。特别地,用户相信象NGSCB和LT这样的技术将有助于加强数字权利管理(DRM)而使直接使用不再可能。还有一方面和微软一样,英特尔声称LT的最初目标是帮助商业企业保护他们的计算环境。随着时间过去,我们会看到LT技术进入家用计算环境。
这是一张显示推广和目标市场的幻灯片,星号脚注申明所有的日期都是出于计划目的,还有可能改变,因此在相长的一段时间内LT技术还不会在实际的商业系统中运行。而且如果微软继续推迟longhorn发布,在未来大多数系统(笔记本、台式机、服务器中心)上LT技术会更晚出现。
可靠平台架构回顾
英特尔回顾了可靠计算环境的核心功能以使我们对了解更多LaGrande硬件功能的细节有所准备。下面这些幻灯片与微软在WinHEC上讨论NGSCB的平台属性时的介绍相似,我们的目的在于回顾一下。
首先,让我们来看LT安全保护功能的概述,它包括受保护的执行、证明、封闭存储和受保护的输入/输出等。本质上跟NGSCB的东西一样。
这张图是对一些普通攻击形式,以及为保护计算机所需要的东西的评述。
下面几张幻灯更详细的描述了每一种安全保护功能。
我忘了拍关于受保护图形的幻灯片,但无需多言,图形幀缓存必须保护免受未经授权的访问,进出图形缓存必须加密并免受窥探。
按英特尔的说法,LaGrande技术是操作系统不可知者,正如大家在下面一张幻灯片中看到的声明所叙。
翻页后可以看到,LaGrande技术为达到此目的需要修改CPU和芯片组。
LaGrande CPU和芯片组的内部修改
这张幻灯无疑是大家翘首等待的,LaGrande在CPU和芯片组等级上究竟作些什么呢?
首先是LaGrande的硬件架构概述的幻灯片。
你能说明环—1吗?
请看上面一张幻灯,大家可以看到要保证作用域分隔、给保护内核和域管理器(DM)软件提供安全空间,CPU的延伸是必需的。这就意味着保护内核和域管理器必须能够运行在特权等级,这一特权等级远远高于在当今的x86 CPU中的环-0。你可能知道许多核心操作系统服务、内核功能、还有设备驱动通常在运行在环-0 。应用软件运行在环-3,尽管如果需要,中等级别也是可以用到的,但是环-1和2在x86芯片中的确用的不多,目前的 x86架构的问题是黑客程序能危及环-0的安全,因此需要一个比较安全,访问受限,无法攻击(人们希望) 的保护水平。
虽然英代尔仍然没有正式地命名这一个最高的保护标准,我在今年早起时候看到一些外国的科技网站稍稍提到“环-1”,虽然当时他们只是在一点点被披露的LaGrande的基础上编造了一个合乎逻辑的名字,
对于一个黑客或错误的应用程序来讲,要使其自身运行在这样极度特权的特权等级,或者访问在这一等级上驻留或执行的保护代码,几乎不可能的。
我将很快描述如何以Grawrock’s的课程材料为基础来建立可靠执行环境。
从上面的图形里,你也能看到CPU规定了内存保护策略(它能定义什么内存区域除了被保护的执行单元外是禁止进入的),和 芯片组(内存控制器逻辑) 帮助增强内存访问策略。显然地,前端总线通讯可以被保护(加密),虽然逻辑分析器不太可能会能够危及你的系统在芯片互相连接、或系统和输入/输出总线水平上的安全。仍需要芯片组级别的保护等级来防御鬼鬼祟祟的试图访问受保护的内存空间的DMA代理 ( 插入扩充总线的电路板或设备可以管理DMA总线)
按照现在的定义,只有USB鼠标和键盘作为被保护的输入设备受LT技术保护 ,而PS/2鼠标和键盘却不在保护之列。图形适配器也一定要重新设计以支持系统到幀缓冲的安全通道。ICH(输入/输出控制器集线器) 有受保护的到TPM的通路去读写数据。最后,为了要与一个LaGrande适应的平台配合,系统必须包括一个带LT技术的CPU,LT技术兼容的芯片组,和新的1.2 版TPM。1.2版本的TPM规范仍然不得而知,但是为了熟悉这项技术,你可以下载最近的TPM 1.1b公版规格,注意可靠计算机组的TPM规格提供了一个LT技术所需的TPM性能的超集。
保护环境设置——开始步骤
现在开始触及问题的实质。关键问题——系统如何载入受保护的操作系统组件并确定它被储存在一个被保护的区域中。保护区域是如何创造的呢?首先,需要一个被保护的内存空间,连同一个受保护的载入保护操作系统组件的方法,和一个要校验那些组件是正确的而不是一些冒名顶替者的方法。我们将不涉及那些会花费无数页来描述的吓人细节,在这里只列出主要的流程。
一个应用程序或操作系统组件位于坐标图的左边,这一坐标图在先前的幻灯(标准的应用程序空间)中描述过,而这一个应用程序或操作系统组件将会触发载入受保护的操作系统组件的需求,一经载入,受保护的操作系统组件最后将加载一个或多个受保护的程序。也许这是一个需要安全计算的电子商务或银行业的情节。
在载入可靠的操作系统组件同时,系统储存关于操作系统组件(例如域管理器和内核)的特征(唯一的标识符),这一特征稍后会被象数据库服务器这样的实体用来鉴别预期的受保护内核是否正在运行。受保护的组件被载入受保护的内存中,在那儿组件运行于新的非常安全的保护环上。唯一的标识符被安全的储存(封闭存储)。并且用了受保护的方法把属性写入TPM(可靠平台模块)硅内的闪存中。
然而,要使系统工作良好,必须先建立最初的信任让系统及(或)用户相信在系统中装载的受保护的环境密码是正确的!你能在下面的幻灯中看到,英特尔回顾了许多建立初始信任的方法。也许你信任这样说明的系统?我想不会。也许使用一张智能卡?或者也许使用一个带禁止入内响应的第三方服务?
假定我们有一个能工作的最初信任机制,下一步要就要有一个安全方法来载入被保护的环境,当它被载入受硬件保护的内存空间后用于校验环境的每一个内存页面。以对抗储存在TPM里的杂乱数据(属性),当加载可靠环境时一定也没有其他的系统程序运行。这就要求一个新的停止所有的其他系统活动,而且允许安全的载入开始的处理器指令,和一个实际上加载可靠操作系统环境进入“环 -1”之内的安全的软件程序。
保护环境设置——启动被保护的域
下列各项幻灯显示启动一个被保护的域的基本顺序,而且你能看到域管理器(处理左右手环境的软件)被首先载入,跟着是被保护的内核。最初,它可能是一个请求载入被保护的环境的应用程序,但是操作系统的要求占了绝大多数。
一次只能加载一个域管理器。不同的域管理器可能按顺序地加载和卸除,但是不能同时运行。并且域管理器运行在更高的优先等级。
要确保保护操作就必须使用鉴别码(AC),这样一套AC模块叫做ENTERACCS和EXITAC,用于加载和卸除被保护的域管理器。由芯片组厂商产生ENTERACCS和EXITAC代码是比较可靠的。
一个叫做SENTER的新处理器指令将会被包含在未来的LaGrande兼容的处理器中,而且执行关键操作,例如确保当保护环境被载入时中断其他所有的处理器活动,而且它把用于ENTERACCS软件的最初唯一标识符(钥匙)存储在TPM里的一个平台配置寄存器(PCR)中。SENTER 载入且校验进入鉴别码密码和预存密码的一致性。在下面的幻灯你能看到SENTER中断了所有其他的系统活动,然后它开始 ENTERACCS代码的载入,ENTERACCS鉴别代码依次载入并使域管理器(DM)生效。
下图显示的是受保护域启动事件另一个视图以及可能发生的问题,这些问题可能出现并需要不同的程序解决的。
下面的过程详细说明域管理器和ENTERACCS初始化密码是如何被识别的。
受保护的环境设置——处理特殊情况
Inte也介绍了一些关于如何处理各种情况(如意外重启或进入了睡眠模式)的有趣资料 ,这些情况如不处理就有可能对保护代码执行过程、或是保护内存中载入的敏感数据的能力产生问题。如果建立了一个保护环境后,系统被故意地或掉电重启,内存就很有可能仍然保留着数据,但是有效地保护特定内存区域的手段却会丢失。针对确定意外重启事件(可能通过检查启动时不变的或受保护的基于内存的标记),系统能在载入操作系统之前自动地对内存清零。在出现睡眠事件时,域管理器可能加密所有被保护内存区域,并在唤醒时解密这些区域。
结语
总之,我们仅仅是摸到了这一高度复杂技术的皮毛,这一技术在今后几年将嵌入大多数新的个人电脑中。在英特尔开发LaGrande的同时,AMD也正在研究相似的技术可以提供必需的硬件功能以帮助保护操作系统功能性。随着我们知道更多的细节,将在以后介绍他们。
网友评论