可信计算概论
一、概念
可信计算的基本思想:
在计算机系统中,建立一个信任根,从信任根开始,到硬件平台、操作系统、应用,一级度量一级,一级信任一级,把这种信任扩展到整个计算机系统,并采取防护措施,确保计算资源的数据完整性和行为的预期性,从而提高计算机系统的可信性。
通俗的解释:
可信 ≈ 可靠 + 安全
现阶段的可信计算应具有确保资源的数据完整性、数据安全存储和平台远程证明等功能。
二、关键技术
信任根:
信任根是可信计算机的可信起基点,也是实施安全控制的点。在功能上有三个信任根组成。
1、可信度量根(root of trust for measurement, RTM)。RTM是可信平台进行可信度量的基点,在TCG的可信平台中,是平台启动时首先执行的一段软件,用以对计算机可信度量。又被称为可信度量根核(crtm)。具体到可信计算PC中,是BIOS中最开始的代码。
2、可信存储根(root of trust for storage,RTS)。RTS是对可信度量值进行安全存储的基点。由TPM芯片中一组被称为平台配置寄存器(paltform configuration register, RCP)和存储根密钥(storage root key,SRK)组成。
3、可信报告根(RTR,report)。由pcr和背书秘钥(endorsement key)的派生密钥AIK(attestaion identity key)组成。
可信计算平台由TPM芯片机器密钥和相应软件作为期信任根。
度量存储报告机制:
基于信任根,对计算机平台的可信性进行度量,并对度量的可信值进存储,当客体访问时提供报告。是计算机平台确保自身可信,并向外提供可信服务的一项重要机制。
1、度量
目前尚未有点单方法对计算平台的可信性进行度量,因此TCG的可信性度量是度量系统重要资源数据完整性的方法。对与系统重要资源数据,实现计算散列值并安全存储;在可信度量时,重新计算重要资源数据的散列值,并欲实现存储的散列值比较。
2、存储
可信度量的值进行安全存储。tcg采用扩展计算散列值的方式。即现有值与新植相连,再次计算散列值作品为新的完整性度量值存储至PCR中。New PCRi = hash(old PCRi || new value)
3、报告
可信度量值存储之后,当访问客体访问时,向访问客体提供平台的可信状态报告。为确保报告内容的安全,还必须采用加密、数字签名和认证技术,又被称为可信远程证明。
可信平台模块:
可信平台模块TPM是一种Soc芯片,是可信计算平台的信任根(RTS和RTR),也是可信计算平台实施安全控制的基点。
密码协处理器:公钥密码加速引擎
密钥产生部件:产生公钥密码的密钥
散列函数引擎:散列函数的硬件引擎
随机数产生部件:TPM的随机源,产生随机数和对称密码的密钥
HMAC引擎:基于散列函数的消息认证码硬件引擎
电源管理部件:监视TPM 的点电源状态
配置开关:对TPM的资源和状态进行配置
执行引擎:CPU和相应的固件
非易失存储:存储密钥标识等重要数据
易失存储:TPM的工作存储器
IO部件:TPM对内对外的通信
虚拟可信模块:vTPM孙软件模拟物理TPM的功能,进一步在vTPM和物理TPM之间建立强联系,使信任链从物理TPM扩展至虚拟机中。
可信计算平台:
可信PC是最早开发并得到广泛应用的可信计算平台,特征是在主板上镶嵌可信构建模块(trusted Building block,TBB)。TBB就是可信PC平台的信任根。包括CRTM和TPM,以及它们与主板间的连接。
服务器的主板结构有一个基板控制管理器(baseboard Management controller,bmc),bmc功能:配置管理、硬件管理、系统控制和故障诊断与排除。BMC应当在可信服务器的度量存储报告机制中发挥作用。(目前未有实例)
可信服务器必须具有安全可信的虚拟机和虚拟机的可信迁移,需要vTPM和vTPM的可信迁移技术。、服务器的不可间断性,要求服务器启动后很长一段时间不关机,这要求可信服务器有多次可信度量的机制。
可信软件栈:
可信平台模块(TPM、TCM、TPCM)是可信计算平台的信任根,操作系统和应用软件使用可信平台模块,需要软件中间件把可信平台模块与应用联系起来,此软件中间件成为tcg软件栈(TCG Software Stack,TSS)。
远程证明:
用户判断与其交互的平台是否在可信的过程称为远程证明。
当可信计算平台需要进行远程证明时,由可信报告根向用户提供可信平台可信性报告(PCR值)。在存储和网络传输时,通过密码保护,实现平台可信远程证明。
可信网络连接:
tcg通过可信网络连接(trusted network connect,TNC)实现平台到网络的可信扩展,确保网络的可信。
TNC的主要思想:验证访问请求者的完整性,根据异性的安全策略对其进行评估,以决定是否允许请求者与网络连接,从而确保网络连接的可信性。
可信计算总结:
可信计算的不足:
1、实际应用尚不广泛
(1)、可信平台模块芯片的应用是广泛的
(2)、可信计算平台的应用不够广泛
大多数有可信芯片的PC只是把可信芯片当作密码支撑部件,用于磁盘和数据的加密和认证,并没有支持度量存储报告机制和其他可信平台功能。
2、可信计算的一些关键技术需要完善和提升
(1)可信度量机制只要进一步提升
对于普通pc,每一次升级打补丁,都需要重新计算系统重要资源的散列值。
对于服务器和工控计算机平台,他们打补丁的概率小得多,更适合可信度量技术的实施。
(2)、软件的数据完整性只能说明该软件没有被篡改,并不能说明本身没有漏洞。
基于数据完整性的检查保护机制是有一定功效范围的,检查范围和安全性是矛盾的,应在这两者之间折中。
软件有两种状态:静态数据状态和动态数据状态。基于完整性的数据度量是静态的。可信计算尚缺少动态行为完整性的度量和保护机制。
此外,数据的安全性包括数据的机密性、完整性和可用性。可信计算的度量存储报告机制只致力于完整性,没有涉及其他两方面。可进一步利用可信平台模块丰富的密码资源,确保数据的保密性和可用性。
(3)、多次度量(确保数据和行为完整)是可信服务器平台和可信工控计算机的下一步方向。
在PC领域,可信度量机制是在PC开机时进行可信度量,对于PC这种一天开关数次的平台来说,用户会相信其可信性。但对于服务器和工控计算机这种一次开机长久不关闭的平台来说,用户很难相信其可信性,需进行多次静态和动态的度量,及重要资源的静态数据完整性和度量其动态行为完整性。
TCG称开机时的可信度量为静态度量(SRTM,static root of trust measurement),开机后的度量为动态度量(DRTM,dynamic root of trust measurement)。
Intel的动态度量机制成为可信执行技术(TXT,trusted execution technology),txt以cpu为信任根,与tpm相结合,执行可信度量,一直度量到应用软件,构建可信的软件执行环境。
执行环境的安全功能有:保护执行,在CPU中提供安全的区域运行敏感应用程序;密封存储,采用密码保护数据的机密性和完整性;远程证明,给用户提供平台的可信性报告,使用户相信平台是可信的;I/O保护,对平台的IO进行保护,使用户与应用程序间的交互路径是可信路径。
AMD采用专门的安全处理器(psp),基于PSP,对系统进行可信度量,为用户建立安全执行环境。在这个环境里屏蔽了所有中断,关闭了虚拟内存,禁止了DMA,除了PSP处理器外其他处理器不工作。在PSP执行安全加载程序前,首先对这个程序进行度量,度量值被写进PCR。PCR磁能通过特殊的LPC总线周期才能读取,软件无法默契周期,保证了只有PSP才能读取这个PCR,确保了可信度良知的安全。
i和a的以CPU芯片为信任根的动态度量虽区别于开机时的度量,但仍是度量数据完整性,仍不是行为完整性与一个系统的多次度量有区别。但这种以CPU为信任根的动态度量技术是有积极意义的,特别适合云计算中新建立一个虚拟机的可信度量。
信息安全:
信息只有存储、传输和处理三种状态,确保信息安全必须确保信息在这三种状态下的安全。
纠错码和密码提高保障通信中的数据完整性和保密性。在存储中也有广泛应用。
信息处理中信息形态发生变化,使安全问题比存储和传输更复杂。受纠错码启发,许多学者研究用于运算器的纠错码,但计算纠错码会降低运算器的效率,又有学者研究同态密码,希望提高运算的保密性。进来,云计算和大数据的发展,同态密码成为热潮;运算器的纠错码的经验告诉我们,安全高效是同台密码的关键。
信息技术的发展迅速,现在的信息系统都是集成了存储、传输和处理的综合系统。
信息安全三大定律:
(1)普遍性,那里有信息,哪里就有信息安全问题;
(2)折中性,安全与方便矛盾;
(3)就低性(木桶原理),信息系统的安全性取决于最薄弱部分的安全性。
计算机安全:
intel SGX:允许应用程序实现一个被称为Enclave的容器,在应用程序的地址空间中划分出一块被保护的区域,为容器内的代码和数据提供机密性和完整性保护,免受恶意软件的破坏。只有位于容器内的代码才能访问Enclave的内存区域,而容器外的软件即使是特权软件(如虚拟机监控器程序,BIOS、操作系统)都不能访问Enclave内的数据。
ARM TrustZone:旨在为应用构建一个可信执行环境,整体安全思想是通过系统结构将其软硬件划分为相互隔离的两个区域,安全区和普通区。每个区的工作模式都包含用户模式和特权模式。ARM通过其总线系统确保安全区的资源不被普通区所访问。普通区的软件智能访问普通区的资源,安全区亦然。在安全区还有一个监控模式,监控模式分别与两区的特权模式相连。监控某持的存在是为两区间的切换。普通区的用户模式需要获取安全区的服务时,首先需要进入普通去的特权模式,在该模式下调用安全监控调用指令,处理器将进入监控模式,监控模式备份普通区的上下文,然后进入安全区的特权模式,此时的运行环境是安全区的执行环境,然后进入安全区的用户模式并得到相应的安全服务。