可信计算(Trusted Computing,TC)
目录 |
可信计算又称可信用计算,是一项由可信计算组(Trusted Computing Group)推动和开发的技术。这个术语来源于可信系统(Trusted_system),并且有其特定含义。从技术角度来讲,“可信的”(Trusted)未必意味着对用户而言是“值得信赖的”(Trustworthy)。确切而言,它意味着可以充分相信其行为会更全面地遵循设计,而执行设计者和软件编写者所禁止的行为的概率很低。
这项技术的拥护者称它将会使计算机更加安全、更加不易被病毒和恶意软件侵害,因此从最终用户角度来看也更加可靠。此外,他们还宣称可信计算将会使计算机和服务器提供比现有更强的计算机安全性。而反对者认为可信计算背后的那些公司并不那么值得信任,这项技术给系统和软件设计者过多的权利和控制。他们还认为可信计算会潜在地迫使用户的在线交互过程失去匿名性,并强制推行一些不必要的技术。最后,它还被看作版权和版权保护的未来版本,这对于公司和其他市场的用户非常重要,同时这也引发了批评,引发了对不当审查(censorship)关注。
很多著名的安全专家已经表明了对可信计算技术的反对,因为他们相信它将给计算机制造商和软件作者更多限制用户使用自己的计算机的能力。有一些人关注的则是可信计算可能(或者本身就是要)起到限制自由软件市场、私有软件开发和更一般化的整个IT市场竞争的作用。有些人,如理查德·斯托曼,因此给它起了一个恶名——背叛的计算(Treacherous computing)。
不管这场争论以及可信计算最终产品的形式怎样,在计算机领域拥有重大影响的公司,如芯片制造商Intel、AMD和系统软件开发商Microsoft,都计划在下一代的产品中引入可信计算技术,如Windows Vista。
可信计算包括5个核心技术概念,在一个完全可信的系统中它们都是必须的。
安全输入和输出(I/O)指的是计算机用户与他们认为与之进行交互的软件间的受保护的路径。在当前的计算机系统中,恶意软件有很多途径截取用户与软件进程间传送的数据。例如,键盘监听者(Keyboard Logger)和屏幕截取者(Screen Scraper)。安全I/O表现为受硬件和软件保护和验证的信道,采用校验值来验证进行输入输出的软件没有受到篡改。将自身注入到信道间的恶意软件会被识别出来。
尽管安全(I/O)提供针对软件攻击的防护,但它未必提供对基于硬件的攻击的防护,例如物理插入用户键盘和计算机间的设备。
内存屏蔽扩展了当前的内存保护技术,提供了对内存敏感区域(如放置密钥的区域)的全面隔离。甚至操作系统也无法访问屏蔽的内存,所以其中的信息在侵入者获取了OS的控制权的情况下仍然是安全的。
封装存储从当前使用的软件和硬件配置派生出的密钥,并用这个密钥加密私有数据,从而实现对它的保护。这意味着该数据仅在系统拥有同样的软硬件组合的时候才能读取。例如,用户在他的计算机上保存自己的日记,不希望其他的程序或计算机读取。这样一来,病毒可以查找日记,读取它,并将它发给其他人。Sircam 病毒所作的与此类似。即使日记使用了口令保护,病毒可能运行字典攻击。病毒还可以修改用户的日记软件,用户使用软件打开日记时通过受篡改的软件可能泄漏其中的内容。使用封装存储,日记被安全地加密,只有在该计算机上的未被修改的日记软件才可以打开它。
远程证明使得用户或其他人可以检测到该用户的计算机的变化。这样可以避免向不安全或安全受损的计算机发送私有信息或重要的命令。远程证明机制通过硬件生成一个证书,声明哪些软件正在运行。用户可以将这个证书发给远程的一方以表明他的计算机没有受到篡改。远程证明通常与公钥加密结合来保证发出的信息只能被发出证明要求的程序读取,而非其它窃听者。
再用上面日记的例子,用户的日记软件可以将日记发送给其他的机器,但是只能发给那些能够证明所运行的是一份安全的日记软件。与其他的技术结合起来,远程证明可以为日记提供一个更加安全的路径:通过键盘输入以及在屏幕显示时受到安全I/O的保护,内存屏蔽在日记软件运行时保护日记,而封装存储在它存储到硬盘的时候保护它,并且远程证明保护它在其它计算机使用时不受非授权软件的破坏。
在日记的例子中,封装存储保护日记不受病毒等恶意程序的伤害,但它无法区分恶意程序与有用的程序(如将日记转换为新格式的程序或提供对日记进行查找新方法的程序)。如果用户希望使用另外的日记程序,他将发现新日记程序不可能打开已有的日记,这样,用户就被“锁定”在旧的程序中。同样,用户如果未得到日记软件的允许,他将无法读取或修改自己的日记。如果他使用的日记软件没有编辑或删除的选项,那就无法修改或删除已有的日记条目。
远程证明可能导致其他的问题。目前,尽管有些网站可能(故意)被格式化为仅有特定的浏览器能够解读其编码,但网站仍然可以使用多种WEB浏览器访问--有些浏览器可以通过模拟其他浏览进行访问。例如,假设微软的MSN拒绝为非微软浏览器提供页面服务,用户可以通过让浏览器模拟微软的浏览器来实现访问。远程证明使得这样的模拟不可能,因为MSN可能要求提供一个证明用户正在实际运行一个IE浏览器。
可信计算常受到的一个批评就是,封装存储可能阻止用户将封装的文件移动到新的计算机。这个限制可能来自于糟糕的软件设计或内容提供者故意实施的限制。TPM规范的迁移部分要求一些特定类型的文件只能移动到采用相同安全模型的计算机上。如果一个旧型号的芯片不再生产,就根本不可能将数据转移到新计算机;那些数据将于旧计算机一同长眠。
此外,批评者还注意到TPM可以强制用户接受间谍软件,例如强制音乐文件只能在那些在播放时会通知唱片公司的机器上播放。同样一个新闻杂志可能要求用户证明使用特定的阅读器后,才允许下载他们的文章。阅读软件可能在杂志网站上的版本变化后,禁止阅读最初的新闻。这种最新版本限制的实施将允许杂志通过修改或删除文章来“重写历史”。即使用户将最初的文章存储在自己的计算机中,阅读软件发现网站变化后,也可能拒绝阅读请求。
由于装有可信计算设备的计算机可以唯一证明自己的身份,厂商或其他可以使用证明功能的人就能够以非常高的可能性确定用户的身份。这种能力大小要视用户提供自愿或间接提供身份信息的机会而定。一个常见的获取信息途径就是用户购买计算机后就注册个人信息。另外一个常见的途径是用户为厂商的会员网站提供身份信息。
可信计算的赞成者指出,它可以使在线购物和信用卡交易更安全,但这可能导致计算机用户失去访问互联网时希望拥有的匿名性。批评者指出这可能导致对政治言论自由,新闻记者使用匿名信息源,揭发,政治博客,以及其他公众需要通过匿名性来防止报复的领域,产生抑制作用。作为对隐私问题关注的响应,研究者开发了直接匿名证明(Direct anonymous attestation,DAA),它允许客户端实施证明,同时限制需要向验证者提供的信息。
所有这些问题源自于,可信计算平台对程序提供的保护是针对针对包括属主在内所有事物的。一个简单的解决方案就是允许计算机的属主绕过这些保护。这被称作属主重载(owner override),刚刚被提出作为规范的修订内容。
激活属主重载将允许使用安全的I/O路径来确保属主通过物理接触(physical present)操作,进而绕过保护。这样的重载将允许通过远程证明表明当前的环境匹配用户的规范,例如创建证书表明IE正在运行,而实际上是另外的浏览器在运行。这样不是通过阻止软件修改,而是通过远程证明来表明软件受到了未经属主授权的修改。
可信计算的一个重要前提是属主不可信任。[4]这里假定用户将或者由于疏忽或者故意为之,来试图破坏自己的系统。例如,IT管理员无法确保笔记本电脑将运行一个特定的操作系统。
同样受到激烈的争论得还有可信计算所基于的一些假设在“现实世界”中一定程度上是不实际的,用户可能会发现在常规层面上使用属主重载是非常必要的,或者根本不愿意使用这些功能,尽管软件厂商坚持要求使用。
所有的硬件组件,包括可信计算硬件本身,都可能发生故障,或者被升级和更替。由于存在以下可能性--不可逆转得丧失对自己信息的访问或者丧失多年的工作成果而根本没有恢复的机会,用户可能会认为这无法接受。有些针对信息使用和发布或者强制信息在未来很长一个阶段可靠地存储的限制,使得可信计算技术的很多预期的应用根本不可行。将属主或者使用限制基于特定部分的计算机硬件的可验证标识,对消费者而言可能并不足够——如果它坏了怎么办?