Windows XP要比9x系列的操作系统安全和稳定得多,但是一连串的漏洞、修补漏洞的补丁、利用漏洞发起攻击的蠕虫又显示出微软还有很长一段路要走。改进安全性不仅仅是一个修补Bug和补救设计疏忽的问题,它还意味着提供这样一个平台,这个平台内含的功能使得设计者和用户能够执行安全的、可信赖的计算。
微软的战略是继续评估其代码中存在问题的领域并发布补丁,同时开始将更多的开发工作转移到使用.NET框架的托管代码,以避免可能影响安全性的常见错误。就长期目标而言,微软正在开发一个野心勃勃的新式基础结构——以前叫做Palladium,现在则改成了一个笨拙的缩写词NGSCB(读作“ing-scub”),全称是Next-Generation Secure Computing Base。
尽管有人嘲笑NGSCB只不过是一种强制许可限制和实现严格DRM(数字版权管理)技术的升级版,但其设计目标是提供这样一种功能,这种功能确保应用程序确实就是它们所宣称的那样,它们的角色和权限受到适当的限制,可以可靠地采用高强度加密技术建立起可信赖的平台,为信息交换和交易提供安全的服务。
要使用NGSCB功能,主板必须带有SSC/TPM(Secure Support Component/Trusted Platform Module,即安全支持组件/可信赖平台模块),还要有支持NGSCB的处理器和芯片组、经过改装的外围设备。在处理器方面,Intel已在讨论有关LaGrande技术的计划,这种技术将提供诸如保护安全内存(即使是对于DMA访问)引擎之类功能。从即将出现的Prescott CPU及其支持芯片组开始,Intel将在它的芯片组中提供LaGrande技术。
NGSCB提供了一种额外的运行模式,软件可以在需要执行敏感任务时随时切换进入这种模式。想象一个三层的蛋糕模型,底层是硬件,中间是内核模式的软件(例如操作系统核心),顶层是用户模式的软件,例如应用程序。在概念上,NGSCB将把每一层分成两个部分。
左边的部分就是现在的硬件/软件运行情况,它仍象以前一样工作;右边的一部分则属于安全区域。应用程序通常在左边的一部分运行,直到需要某种安全服务时,它们才临时地切换到右边的部分。
在右边这一部分中,系统提供四种关键性的功能:安全IO,密封存储,进程高度隔离,以及签证(Attestation)——数字签名的程序标识。
安全IO意味着流经输入/输出设备和系统的每一比特信息不仅已经加密(因而很难嗅探),而且经过密码签名(因而不可能在传递途中被修改)。在NGSCB的最初版本中,安全IO路径具体包括USB设备(包括键盘和鼠标)、CPU和芯片组、图形控制器,以及连接这些设备的通道。由于这些位置的信息都得到了保护,这样,恶意软件就很难得逞,例如很难监视键盘动作,也很难扫描视频内存窃取输出到屏幕的信息。
密封存储是经过密码加密的安全磁盘存储,只能通过特定的密钥加密/解密——这样,除非取得明确的授权,否则一个应用程序就不能偷窥另一程序的密封存储空间中的内容。进程高度隔离的意义也相似,它意味着一个程序不能分析或操作另一个程序使用的内存空间。
签证则提供了这样一种机制,这种机制保证每一个应用程序就是它所声明的那个程序,具体是记录一个加密的校验和,如果应用程序被修改,校验和就变成非法。其基本思路是保证特定的数据只能由获得明确授权的应用程序访问——同时确保应用程序不会被诸如特洛伊木马之类的恶意程序非法修改。这种层次的安全机制不仅能在独立的系统上发挥作用,在联网的机器上也同样有效。
管理这些功能并为应用程序提供API的是nexus,这是一个运行在右边内核层的组件。微软打算在Longhorn中提供一个基本的nexus——但是,如果你不信任Microsoft,又该怎么办?
首先,是否使用nexus和NGSCB功能完全由用户自己决定。其次,微软计划向研究机构和有限的用户开放其nexus源代码。另外,作为一种可选的方案,第三方也可以创建可替换使用的nexus,这种第三方的nexus不必局限于Windows设备,因此可以想象的是,具有NGSCB功能的Windows客户程序能够与支持NGSCB的Linux或Solaris服务器建立安全的联系——只要这些环境能够提供相应的支持。
在用户感受方面,NGSCB的实际效果在很大程度上还不能确定,不过微软已经认识到一个高效的UI是至关紧要的。系统的整体安全性由整个链条上最薄弱的环节决定,而这个最薄弱的环节往往是用户以及用户作出的判断。例如,今天的恶意软件之所以扩散得如此之快,很大一部分原因在于用户浏览网站时,一遇到是否信任某个程序的对话框总是习惯性地点击“是”。令人感兴趣的是,NGSCB允许第三方信任代理担保应用程序,这就使得企业可以将判断/决策委托给可信赖的外部实体。
NGSCB不是万能的魔法,但它承诺让硬件、操作系统和应用程序开发者一起协作,在应用程序之间提供更坚固的隔离墙,堵塞大量可能泄漏敏感信息的机会,这一切应该能够让系统管理员睡得更安稳一些了。