一起来瞧虚拟化——vtpm实战 2010-07-05 14:04:36
分类: LINUX
http://blog.chinaunix.net/uid-20517852-id-1936376.html
虚拟TPM的实现有几个不同的架构模型[1],xen中实现的是IBM[2]和Intel[3]提出的,并分别完成了分离驱动模型中的vTPM前后端驱动,但与IBM论文中不同的是,在XEN中并没有物理TPM到vTPM的PCR映射,也就是说PCR0~8并不完全一样。主要问题是对于如何解决Quote时的签名问题存在分歧,vTPM会对整个quote签名但对于它如何使用映射过来的PCR是个问题,TPM设计之初只考虑了单一系统环境。还有就是在HVM中VM拥有自己的BIOS/bootloader,如何确定执行扩展操作时使用哪个度量值到哪个PCR中不同之处是vTPM迁移协议,但目前XEN中的实现的vTPM似乎没有用到(哪位有研究不妨给我讲解一下)。
在XEN中,vTPM是由一个或多个vTPM实例,vTPM管理工具和Hot-plug脚本组成。vTPM实例其实就是一个VM中的TPM,每个需要TPM功能的VM在整个生命期内都与一个唯一的vTPM实例关联,也就是一一对应。在XEN中使用的是Mario Strasser开发的tpm-emulator[4]。
tpm emulator作为一个vTPM实例使用就无须TPM设备驱动以及内核模块的支持,但为了能够与tpmd通讯需要修改命名管道。
先看一下/usr/src/xen-unstable/tools/vtpm/代码中的readme介绍:
另外根据该目录下的Makefile和Rules.mk似乎指定了tpm emulator版本:
Initialize Manager斗大的字,干什么用的一目了然,注意里面调用的 VTPM_Init_Manager()点一下跟进去看看:
Defined as a function in:
-
tools/vtpm_manager/manager/vtpm_manager.c, line 184
看看它究竟干了些什么:
可以看到在函数主循环中调用 vtpm_ipc_read() 接收并解析命令消息,调用 vtpm_ipc_write() 返回结果。
好了今天就到这里吧,下次结合起来分析前后端驱动的问题。
我的百度空间:http://hi.baidu.com/from2_6_30_1/blog
[1] about vTPM
[2] vTPM: Virtualizing the Trusted Platform Module
[3] TPM Virtualization: Building a General Framework
[4]Software-based TPM Emulator for Unix
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!