订阅云计算RSS CSDN首页> 云计算

英特尔开源软件技术中心高级软件工程师魏刚:Using The New Trusted Pools Capability in The Folsom

发表于2012-08-11 15:10| 次阅读| 来源未知| 0 条评论| 作者张志平

摘要:英特尔开源软件技术中心高级软件工程师魏刚的演讲议题是《Using The New Trusted Pools Capability in The Folsom》,这是我们了解TBoot、OpenAttestation 等开源项目的绝佳机会!

8月10日,首届OpenStack亚太技术大会(OSAC)在北京、上海两地同时召开。作为OpenStack社区在亚太区的首次技术大会,地区 覆盖中国、日本和韩国,数十位国外的OpenStack核心企业及国内前沿开发者将齐聚OSAC。此次大会由全球最大中文IT技术社区CSDN和中国 OpenStack用户组COSUG联合举办。

英特尔开源软件技术中心高级软件工程师魏刚的演讲议题是《Using The New Trusted Pools Capability in The Folsom》,这是我们了解TBoot、OpenAttestation 等开源项目的绝佳机会!

英特尔开源软件技术中心高级软件工程师 魏刚

可信计算池最基本的概念,包含实现一个大的框架,还有怎么去使用。可信计算池原来的想法是要基于平台的一个可信度来管理虚拟机的创建以及迁移,从而对在虚拟机当中的数据进行更好的保护。可信计算池要依赖于两个重要的环节,其一就是进行可信的引导过程,在引导过程中所运行的那些软件模块都进行相应的测量,保存相应的测量值,在后期依赖于另外一个远程验证,通过远程验证,可以在远程机器上验证我们运行在某一台服务器上的环境是否是可信的状态,运行的这些操作系统是否是我们可信任的版本。

可信计算池所依赖的两个重要的项目相关的信息。第一个是Tboot项目。首先介绍英特尔TXT技术,因为Tboot仅仅利用TXT进行可信的引导过程。TXT是基于平台的技术,在英特尔里所有基于平台的技术会跟这个平台上所有的东西可能都有关系,其中包括处理器、芯片组,可能还有一些额外的TP模块。在BIOS里我们也需要有对TXT的支持,在软件的层面,BIOS里会有一个叫做AC Module,这是经过英特尔授权、经过英特尔签名的一个软件模块,它会跟CPU相应的指令进行配合,来达到做可信引导的目的。AC Module有两类,其中一类是在系统引导过程中起辅助作用,在BIOS引导过程中去做一些辅助性的设置或其他一些内存的检查。除此之外还需要像操作系统、虚拟机管理器,需要提供、支持TXT的过程。

利用Tboot怎么样做可信的引导过程?

开始BIOS首先会Launch起来。GRUB被Launch以后,我们需要把Tboot、虚拟机管理器,以及前面提到的SINIT的模块,Tboot会在后面用到它,因为它在执行TXT Launch指令时,需要有模块来开始TXT Launch。Tboot起到OS Load角色,做了相应准备工作之后,调用到TXT里有一条指令,做TXT Launch。这条指令会在CPU微指令里找到相应的SINIT模块的位置,首先验证SINIT是不是英特尔签名过的,是不是英特尔授权过的,会把SINIT测量值放到TPM模块里的一个寄存器,叫做PCR。PCR主要是在系统引导过程中用来记录系统当中的软件模块的配置情况,就是把所有的测量值可以串在一起,都记录到同一个或好几个里面去。

SINIT会把英特尔签名的模块测量放到PCR17里以后,然后执行SINIT软件模块,这个软件模块接下来会检查所有跟TXT相关的一些硬件设置,包含内存,包括BIOS里的一些设置是否符合我做TXT Launch所有的要求,有没有一些安全性的漏洞在里面。检查完了以后,就会继续的检查下一步要Launch的软件模块的测量值,下一个要Launch的软件模块就是Tboot自己,在后面这一部分,用SINIT模块直接Launch的呢一个模块,我们称之为MLE,MLE会被SINIT进行测量,它的测量值也会被保存到TPM寄存器当中。之后执行权限又会回到Tboot代码当中,重新得到执行权限以后,会做测量下一步我们要Launch的虚拟机管理器。所有得到执行的软件模块都是先经过测量再进行运行的,所有的测量值都保存到了硬件的TPM模块当中的PCR当中去,为我们后面做验证、做平台的运行状态的验证提供了一个基础。

penAttestation项目主要的目标,能够提供基于PCR完整性的报告,能够提供一些相应的策略来进行验证的工作。SDK能提供基于RESTful API,可以通过相对简单的方式整合到第三方管理中去。对于Web门户提供了一些参考的实现,应该实现的会比较简单,大家可以拿到这个SDK部署好了之后,通过简单的门户看到一些跟远程验证相关的内容,有一些完整性报告的历史记录,可以通过它能够看得到。在参考实现的门户当中也提供了白名单的一些管理,可以通过它里做一些简单的白名单的创建、删除或修改。OpenAttestation在API上都是基于Web服务器,希望作为第三方软件提供商,OSV再整合到他们的系统当中去的时候,具体实施在访问控制上面的这些东西。

SDK基本架构,这些code是从美国那边出来,英特尔基于它做开源的项目。绝大部分代码都是用Java写的,包括这里有做privacy的CA,提供验证功能的服务器,我们称之为appraiser。在计算节点上要访问到一些硬件特性,访问TPM模块时,下面会有一个以C写的包,这个包支持TCG制定的TSS。

通过Query API做一个可信度查询,查询某一台主机是否可信时,第三方管理工具跟远程验证服务器当中的HGP报文的交换,内容是什么样的。在请求当中是一个Post,后面给定一个名字,确定一个版本,后面是明确的执行,要以同步的方式来查询一些主机的可信状态。会给出在下面这些数据内容的打包和解包的方式。还包含一些相关的字段,这些字段可以由使用者提供出来加进去,如果没有它,我们也能用,但是它的安全性上会打折扣。

目前我们的可信计算池目标已经实现了,也已经贡献到OpenStack里,当前这个实现是基于我们用OAT项目做出来的AttestationService基础之上,英特尔强烈建议所有使用这样一个工具的用户,能够利用我们由TXT所支持的Tboot把操作系统这一层完整性的验证能够包含到这个过程中去。希望大家有机会踊跃使用我们这样可信计算池的特性。如果有机会,希望大家能做一些相应的优化。

更多OSAC及OpenStack相关信息,请关注@CSDN云计算微博,也欢迎加入国际云计算技术交流群OpenStack中文社区进行交流讨论。

0
0
英特尔开源软件技术中心高级软件工程师魏刚:Using The New Trusted Pools Capability in The Folsom