[音乐]
[音乐]
同学们好,啊,上次课我们讲到了这个 呃,虚拟可信平台的几个关键技术啊。
第一个我们讲了这个就是 信任链的扩展,主要是强调这个 TPM,物理 TPM
和 vTPM 这样一个 啊,信任链的这个维持的问题,啊,主要是看这个
EK 或者 AIK 证书的这个生成 啊,怎么样构造这样一个正数列 啊,那么第二个问题呢是关于这个远程证实的问题
呃,在这个虚拟化平台上面,大家知道 呃,在虚拟机上面其实又可以搭建这个
呃,虚拟化的软件,然后在,在上面再建虚拟机 嗯,这个呢其实我们叫做这个递归的一个,呃,虚拟化的平台
在这种平台上面,其实就是在虚拟机上面再建虚拟机
嗯,这个过程,这样一个平台,虚拟可信平台上面,啊,就会存在这个
远程(递归)证实的问题,啊,就像这个图上所看到的,就是 layer n-1
层上面的 这个虚拟 TPM 实例,它本身这个虚拟机上有一个信任链的问题
啊,假设在这个虚拟平台上再去建立 n 个虚拟机 就是在 layer
N 层上面,额,又有,又会虚拟化出一层,一套这个 vTPM 那么这个
vTPM 实例,啊,它本身的信任链和底层的这个虚拟化平台
建立一个信任链的这样一个过程 就是所谓的这个远程的这个递归证实的一个问题了,嗯
啊,当然这方面,其实,啊,实际的应用场景上面
可能在大多数的场景里面,这种情况会有,但是并不是很多
所以目前在这方面的这个研究工作其实并不是很多见 那么这个主要是在 TCG
的这个 vPW 系工作组里面提出了这样一个 架构,提出了这样一个问题。
那么事实上呢,关于这个远程证实技术 我们这里呢,大概总结了一下,就是在
这个目前不局限于这个虚拟化可信平台上面
那么在很多的这个包括传统的操作系统平台,包括我们 现在的这个虚拟可信平台,可能可以用到的这个远程证实技术
那么远程证实技术呢,其实前面我们也都提到过,它可能会有 主要目标是让这个挑战方去证明
我这个平台上所运行的环境,就说它把所有 运行的这个软件,都是它原来期望的这个软件在运行
那么这样一个,需要去做这样一个挑战和 交互来得到这样一个证明,嗯。
啊,那么目前 的这个远程证实技术呢,主要是有如下这样的几种: 第一种是基于二进制代码的远程证实。
这个其实是最早的一个做法 就是我们直接去对这个可运行的二进制代码
对它的这个代码及它 的相关的数据做一个度量和做一个证实
第二个呢,是基于软件源代码的一个远程证实技术 这也是我们团队一起提出的一个思路。
其实就是说,因为现在很多用户 他可能不是直接是下载对方的可执行软件
他可能会去下载一些源代码,然后在本地编译 然后再在本地编译完了以后,再用这个源码去运行,对吧?
所以在这个编译过程当中,以及他在这个编译过程当中所
产生的一些值,我能不能够进行度量 如果可以的话,那么我可不可以把这种度量值,在做远程证实的时候
加入到这个远程证实提供的证据当中去。
这是基于软件 源代码的一个远程证实技术。
此外呢,还有这个基于属性的远程证实 那么指的是远程验证者,他真正
在意的是目标平台上是否有特定性安全属性,他可能并不在意整个平台上的
整个平台的一个安全属性,对吧?所以的话呢,这个
平台的属性就会定义为平台针对某一个特定安全需求的一种行为 比如说,他要看这个平台是不是遵循了隐私保护的协议
是不是支持强制访问控制,或者是对进程有强隔离控制等等这样一些 需求。
如果是,那么我可不可以去验证,可不可以去验证? 第三种是基于模型的远程证实
它是针对,这是针对一个特定的需求 那么,系统的这个策略模型,能不能够有预期的一个行为
所以远程方呢在这个只需要去证实系统的安全模型的行为 而不是单独的一个软件或是硬件
所以它主要是做对这个模型本身,它的一个预期行为是不是满足
第五种呢,是基于程序行为的一种远程证实 这个呢,它主要是去,首先要去定位啦
就这应用程序在系统级或者在语言级,它的一个依赖关系
啊,比如说在操作系统这个层面 它支撑一段代码正确运行,它所需要的这个软件组件是什么
那么比如说,后面这种层面,就在指令级这个层面 那么一段代码正确运行,它所需要的其它代码有哪些
那么我们做这种远程证实的时候,可以通过分析并且定位这两类依赖关系
那么远程方只要去监控这个程序,针对每一个依赖的这个输入到输出是不是正确 进行了一个转换。
从而通过这个正确转换 与否,来判断这个程序的输入到输出是不是正确转换 从而决定这个程序是不是正确执行。
啊,这是一种基于程序行为的一个远程证实技术 啊,那么这个呢是,这张图说明的是这个基于二进制代码的一个远程证实技术
实际上证实者呢,主要是去,啊,获得这个二进制的代码 以及这个二进制代码相关的安全属性的证书
和二进制代码的哈希值,还有它的一些软件安全属性 那后期判断它的安全属性是不是跟预期的是一致的
如果是呢,它可能就认为这个二进制代码的 运行环境是可信的。
那么基于软件源代码的这个远程证实呢就说 我除了,这个证实者除了要获取这个二进制的
代码,同时他还要获取这个二进制代码相关的一些
属性之外,他还要获取源代码的哈希值 大家可以看到第二部分
TBS ,就可信编译过程里面产生的一些就是源代码的哈希值 和绑定的一些证书,绑定证书
那么只有这些都符合要求的情况下,才可以证明去这个平台是可信的 这是关于这个远程证实的技术啊
啊,那么目前远程证实这一块其实针对虚拟化平台的 应该也有一些相关的研究工作。
那么在这里呢,由于时间的原因,还有,希望同学们如果有兴趣的话
可以再去调研和了解,我在这里呢,就没有再去做更深的入的一些阐述了
那么第三个技术,我们也简单再 重述一下。
因为在前面我们讲这个虚拟机 的安全的时候,安全技术的时候,曾经提到过这个迁移的安全问题
那其实我们这里所给出的两个技术,跟那两个技术其实也是一致的 就说我们这里强调的就说,在虚拟化的平台上面
假设底层有硬件的的情况下,那么我们要做的事情可能是,同样会是两个主要问题 一个是能不能迁移的问题,对吧?就授权的问题。
第二个问题是,在迁的过程当中,这个 vTPM 怎么样去保持这个信任链的 关系问题。
嗯,所以的话呢,我们这边关于虚拟机迁移里面的涉及到的这个
授权问题,我们参照TCG的这个 一个建议,就是我们要采用一个迁移权威,叫
MA 的名,那么关于这个协议我们在之前讲过,大家可以再去回顾一下
就基于一个可信第三方,基于权威来实施安全迁移决策 第二呢就是,刚才前面我们也提到过了,就是 vTPM 实例
那么在硬件平台之间,进行安全迁移的时候 那么我怎么样去保证它中间的这个数据的机密性和完整性
那么重新建立它跟新的物理平台的一个信任链的关系 啊,信任链的关系。
那么这个具体协议的过程,大家也自己去看一下 那么在这里呢,我们也不再进行展开。
嗯,好,关于虚拟可信平台方面的这个相关技术呢 我们就介绍到这儿。
啊,希望对同学们后续,希望同学们对这一方面也有兴趣的同学
可以进一步地去了解相关领域的一些进展 那么,为这个相关的这个虚拟化平台的安全性和虚拟可信平台的安全性
来提供一些这个,啊,就是去做 更深入的一些学习,或者说去做更深入的一些研究
好,我们的课就到这儿,谢谢!