可信计算的思想和原理
研究背景
传统防御手段
由于计算机软硬件的复杂性、bug等直接间接导致信息安全问题,这些问题很难完全排除,传统的信息安全防御手段在封堵这些脆弱点上疲于奔命。
可信计算核心思想
可信计算承认计算机系统中存在的薄弱点,不去封堵,而是排除异己,禁止计算机系统中非授权软硬件的行为,从宏观角度保证系统脆弱点不会被非法、恶意利用。
拿疫情防控类比:
传统防护手段需要给所有人注射疫苗来防止被感染;
可信计算将健康的人和感染者隔离开来,防止被感染。
基本思想
在可信计算中,主要进行三个操作:
- 可信报告:需要先出示可信报告;
- 允许接入:证明自己是可信的后才能允许接入;
- 行为检测:接入后还会对其行为进行监测。
可信报告主要是通过静态度量实现:首先建立基线(收集操作系统、配置文件、代码和数据的有关信息),进行和正常状态的对比分析,进行可信判定。
行为监测主要是通过动态度量实现:首先建立基线(收集设备正常状态下的流量进程等信息),然后可信防护部件会对设备进行不间断监测,一旦发现异常就会立即阻断。
发展阶段
可信计算已经进入3.0时代:
1.0时代:通过纯软件实现的容错、故障诊断等机制。
2.0时代:增加硬件实现的信任根TPM,构建信任链。
3.0时代:“宿主+可信”双节点主动免疫可信计算架构。
原理
名词解释
可信:如果一个实体的行为总是以预期的形式,朝着预期的目标,那么就可以认为它是可信的。(TCG)
可信计算:置计算运算时同时进行安全防护,计算全程可测可控不被干扰,只有这样方能使计算结果总是和预期一样。
可信计算的核心:结果等于预期。
预期:身份白名单和行为白名单。
信任:直接信任(A→B)和间接信任(A→C且C→B那么A→B)。
信任链:多个实体相互之间信任,A→B→C→D→E→F→G→……
构建可信系统:对全局进行可信验证,将所有可信实体都加入信任链的过程。
创建信任根:信任链的起点。
构建信任链:信任根→局部可信验证→全局可信验证。构建完成之后,在信任链的就是自己,不在信任链的就是非己。
计算机构建信任链
2.0结构
信任根是可信度量根(RTM),一般被定义在BIOS最先执行的代码片段上,即扩展BIOS,无条件可信(不对外暴露访问接口,理论上不会被篡改)。
可信计算平台的核心部件是可信平台模块(TPM),负责安全控制、运算以及存储基线和可信报告。包括可信存储根(RTS)和可信报告根(RTR)。
度量:可信实体对另一个实体进行可信评估。
完整性度量:验证代码或数据的完整性,计算被度量代码或者数据的哈希值,和存储在RTS中的校验基准值进行对比。
静态度量:运行环境初装或者重启时对其镜像的度量。
静态信任链:系统启动时建立,RTM→BIOS→Bootloader→OS→应用程序
3.0结构
可信平台模块进行改造,由可信平台模块TPM产生自主化密码体系TCM,然后产生可信度量根控制模块TPCM。
动态度量
以上的结构都属于静态度量,静态度量只能确保系统在启动时是安全可靠的,不能确保在计算机系统整个运行过程都是安全可靠的。
动态度量分为基于信息流的动态度量模型和基于行为的动态度量模型。
在可信计算3.0中,动态度量是通过可信软件基(TSB)实现的,通过植入操作系统的内核,并调用操作系统的钩子函数、虚拟机监视器来实现24小时不间断实时监控。