远程证明
一个可信赖的系统不仅需要能够保护自身处于安全状态,还要能够提供证据证明自己的安全性。远程证明是基于硬件可信根对运行环境的可信证明,采用密码学安全技术,允许远程验证计算系统的软件和硬件的可信状态,通过测量和报告系统的完整性,确保计算环境的可信执行。
不同的可信硬件度量对象会有差异,可包含如底层固件、OS内核、hypervisor、关键配置、甚至上层app。以TPM为例,TPM提供24 个PCR寄存器,其中PCR0~7一般用于boot流程,而PCR8及以后供OS使用。PCR0记录SRTM、BIOS状态, PCR2记录UEFI drive/app状态,PCR7记录secure boot状态,kernel则记录于PCR 8+。可信硬件收集当前度量对象的实际状态,通过硬件根签名,生成度量证据(Quote),供远程证明验证。为保证Quote的新鲜度,防止重放攻击,一般也可通过注入随机数方式,将用户提供的随机数嵌入Quote内。
远程证明利用硬件公钥证书对硬件根签名生成的证据(Quote)进行密码学验证,通过解析证据(Quote),将实际度量值与参考值做比较等手段,可判定当前环境的真实性、安全性及新鲜性。
远程证明的实现方式多样,如小巧、专用的RA-TLS,结合tls协议,将Quote直接嵌入tls证书中,完成单向或双向基于远程证明的tls。也有更为通用的远程证明服务,分为远程证明服务端及客户端,如图1所示。客户端感知不同可信硬件,负责采集当前可信硬件运行环境的实际运行状态,并将生成的Quote发送至远程证明服务(或经第三方转发至远程证明服务端)。远程证明服务端对外提供接口调用,对Quote进行密码学验证,亦可提供较为灵活的策略、基线比对等,并生成验证报告。
无远程证明,非可信计算。远程证明基于硬件可信根,为可信环境的真实性、完整性背书,是可信环境的仲裁者,也是开启可信计算的前置条件。
