本文原文为英文: Attestation as a Service—Local Attestation for Cloud Security vs. Remote Attestation for Grid Security ,是作者于同日发表在 EMC Community Network (EMC 社区网络 ), 见  https://community.emc.com/blogs/WenboMao/2010/04/25/attestation-as-a-service-local-attestation-for-cloud-security-vs-remote-attestation-for-grid-security
 
我在以前一篇博文“ 云计算的服务性与网格计算的协同性 ”(见   http://blog.csdn.net/wenbomao/archive/2010/02/03/5286547.aspx )中解释过云计算只是网格计算的一个子问题。在最近一篇博文“ 云计算‘安全作为服务’为可信计算带来了应用与发展的契机”(见 http://blog.csdn.net/wenbomao/archive/2010/03/29/5426094.aspx )我又预言可信计算集团 TCG 技术,虽然经过十多年尚未发现成功应用,将首次在为云计算提供安全保护上找到第一个成功的应用。在本文中我想用 TCG 的“远程平台证明”( Remote Attestation )概念来说明它的子概念“本地平台证明”( Local Attestation )更适用于云安全,而母概念“远程平台证明”则更适用于网格安全。
 
先对 TCG 的平台证明概念作一简要介绍。在 TCG 技术中,每一计算平台都封装了一个硬件可信平台模块( Trusted Platform Module, TPM ),若拆除就会造成 TPM 损坏。 TPM 模块还具有密码及存储功能,也有物理保护,打开也会损坏 TPM 。当平台启动加载一个重要系统软件时, TPM 会存储一份该软件的密码摘要。这个 TCG 功能叫做平台度量( Platform Measurement )。当一个用户要使用度量过的平台时,可发起一个平台证明协议,这是一个通常的密码学询问应答机制。在协议执行中 TPM 必须将平台上软件环境的度量状态如实报告给用户。用户通过密码学方法可以检验 TPM 回答正确与否,以判定平台所度量的软件环境是否可信。 TCG 管这协议叫“远程平台证明”,隐含在一般情况下用户身处于一个远程于平台的地点,并且不是平台的拥有者。颇有意思的是, TCG 技术问世已十多年至今还未找到哪怕是一个确切成功的应用。我想从两个方面找一下其中缘故:其一,过去十多年中大多时候都是客户端平台,大多是个人电脑,繁荣昌盛的日子。在这样的平台上很少装有可以让远程用户进入和使用平台的应用,其实这样的平台原本就不是为远程用户设计的。其二, PC 平台以个人用户为主, TCG 技术,无论是平台度量还是平台证明,对于个人用户的确是太复杂了,难以为个人用户所掌握维护。有些学者甚至带有阴谋论观点怀疑 TCG 技术用于个人电脑时,平台证明协议中软件度量状态的验证者不是软件使用者,而更可能是软件制造商为了控制软件使用 (见 Ross Anderson: “TCPA FAQ”, http://www.cl.cam.ac.uk/~rja14/tcpa-faq.html )。
 
道里项目( http://www.daoliproject.org ,是 Daonity 项目的后继)率先提出了将 TCG 技术应用于保护网格安全( “Daonity—Grid Security from Two Levels of Virtualization”, Haibo Chen, Jieyun Chen, Wenbo Mao and Fei Yan, Elsevier Journal of Information Security Technical Report, volume 12, pages 123—138, Elsevier, October, 2007 )。在网格计算中,远程分布的科学家们构成一个虚拟组织从事合作研究,需要采用远程平台证明来检查在远端网格节点平台上跑的重要系统软件是否合规于虚拟组织的安全策略。在过去几年中,道里项目的研究重点转移到了云安全方面,并将其认作为是网格安全的一个子问题。我会用一篇学术论文来严谨论述为何云计算是网格计算的一个子问题,在本文余下的篇幅仅简要说明为何本地平台证明更适用于保护云计算安全。
 
所谓本地平台证明用于云安全,没错,就是在一个数据中心内部执行平台证明协议。数据中心的拥有者即服务运营商采用该协议来检查在本地的服务器上跑的重要系统软件是否处于平台度量时所存储的正确状态。为什么数据中心服务商不采用 TCG 方法让远程分布的 IT 用户自行执行远程平台证明协议直接检查平台软件的度量状态呢?理由如下:众所周知对于云计算安全问题的担心已被普遍认为是阻挡云计算在短期内快速部署应用的首要障碍。企业用户不愿意将业务计算与数据外包给一个置于企业防火墙以外的数据中心去处理。 IDC 的一份关于云服务的调查表明, 74.6% 的企业首席信息官或 IT 总监在考虑让企业使用云计算时将安全列为头号担心,担心其业务信息遭受***,而且这种担心不会在短期内改变(见 http://blogs.idc.com/ie/?p=210 )。我们可以把这个普遍担心看作是企业 IT 用户对于一个外部云计算数据中心所持有的根深蒂固的不信任感。好吧,既然用户成见已是根深蒂固,何必要去费力改变用户的这种成见呢!数据中心服务运营商可以和由自己运维的服务器执行本地平台证明协议,检查服务器上跑的重要系统软件是否处于正常的度量状态。这样做,服务运营商至少可以信任自身无问题。大家注意云计算的使用是通过服务实现的,而服务的质量是要通过“服务水平合同”( Service Level Agreement, SLA )来得到保障的。一个对自己数据中心安全充满信心的服务运营商当然敢于与用户签署一份适当的安全 SLA 。有了安全 SLA ,安全问题一旦出现自然得到SLA保护,比如可以通过法庭解决。所以说由于本地平台证明,云安全问题可以大为简化,可以用传统的商务规范来处理例外情况。再者, 本地平台证明也非常易于操作,至少不再需要管理维护十分令人头疼的 PKI (公钥体系)认证框架。
 
且让我给云数据中心里本地平台证明取个方便的名字:平台证明作为服务( Attestation as a Service )。 在云计算时代,当计算、存储、软件等等都作为服务来提供时,平台证明也是服务。平台证明的算法、设备以及用之于执行所需的中央处理器周期,这些东西最好都还是留在数据中心里,用来让服务商提高自我信任,而不是将它们出售给用户。我还想对此建议做一点扩展: IT 安全也同样如此。