北大学术 | 你知道屏幕背后是谁吗?——可信计算之远程证明

Trias联合“北大软微-八分量协同创新实验室”定期举办技术沙龙。该实验室成立于去年9月份,以可信计算、区块链等作为主要研究方向,致力于推动智能互联新时代下的人机互信问题的解决。

针对沙龙具体细节问题,我们将推出由实验室教授、博士生以及硕士生主笔撰写的系列文章。本期文章由北京大学的硕士生赵振宇撰写。

在Trias公众号之前的文章中,已经对可信计算这一技术做过了介绍,(具体见《可信计算概述》那篇文章)在今天我们将对可信计算中的一个关键技术,远程证明,来做一下深入的探讨与剖析。当然,在此之前,我们会先简单的介绍一下可信计算技术,以帮助读者朋友们理解我们后面的内容。

一、可信计算是什么?

如今计算机技术非常普及,几乎每人都拥有一台电脑,更广义的,各种移动设备,如手机,平板电脑等,在某种程度上也可以算作计算机的一种分支。虽然我们经常使用计算机,但是对计算机的安全,多数人却依然没有把握,甚至自己的电脑沦为黑客手下的“肉鸡”也不自知。

从远古时代的“熊猫烧香”,到后来的“木马”,再到去年大面积爆发的“勒索病毒”,黑客们不断用新的手法来攻击我们的计算机。事实已经证明,单纯的防火墙,或者杀毒软件,并不能完全确保电脑的安全,在此基础上,可信计算技术出现了。

为克服上述安全问题,可信计算提供了一个新的思路:为计算平台增加具有安全保护功能的硬件,使平台具有一定的物理保护能力,并在这样的平台上通过软硬件结合的方式构建可信计算环境。

可信计算技术提供了一种基于硬件的平台完整性保护方案。该技术以TCG组织(Trusted Computing Group)提出的可信平台模块(Trusted platform module, TPM)为信任根(Root-of-Trust, RoT),从主机上电开始,到BIOS启动、GRUB及操作系统内核加载的整个过程中逐级建立信任链,并将度量值存储在TPM的平台配置寄存器(Platform configure register, PCR)中,如图1所示。并提供远程证实功能使得远程用户可以根据PCR值与度量日志真实计算获取平台当前状态,再与预期值对比判断平台可信。

IBM提出的完整性度量架构(Integrity Measurement Architecture, IMA)对内核进行修改,使得应用程序或者模块加载时,会自动度量应用程序二进制、调用的动态链接库以及加载的内核模块,自此,平台从上电到当前的整个信息均被度量,在此基础上,平台证实得以实现。

图1 可信启动[1]

二、图灵测试与远程证

提到远程证明,大家可能比较陌生,但是提到图灵测试,大家就比较熟悉了。图灵测试指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果有超过30%的测试者不能确定出被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智能。

与此类似,远程证明也是在测试者和被测试者(通常为两台机器)隔开的情况下,通过一些问题与证明,使测试者可以确定被测试者是安全可信的。与图灵测试相区别的就是,图灵测试关注的是另一端是不是一个机器,而远程证明关心的是另一端是不是可信。举一个例子,在实际生活环境中,假如我们在外地出差时,想要使用在公司的电脑,那我们为了保证公司的电脑是没有被篡改过的,就可以使用远程证明。

远程证实是可信计算技术的一个主要应用。可信计算技术依赖于内嵌在平台上的协处理器TPM,假设其可信,并将其作为信任根。TPM内部拥有加解密、SHA1、随机数产生等等引擎用来处理密码学算法功能,并使用平台配置寄存器PCR来记录平台的整个信任链,其中平台刚上电时,PCR重置为0,此后每次将现有值与度量值连接后hash作为新的值,这个操作被称为扩展操作TPM_extend,从而,理论上说,PCR能够度量无限长的启动序列。

完整性度量架构(IMA)通过在内核中打入钩子,使得可信计算定义的信任链能够扩展到应用层,并且在对应用层文件进行度量时,除了将度量结果写入PCR外,还会向度量日志中写入度量记录,包括写入的PCR序号、被度量文件的摘要值等等,因而,如果挑战者能够获取到真实的度量日志,即可验证被证实平台加载的文件是否可信。

三、远程证明的基本流程

远程证明(图2)的基本流程为:

  1. 首先由挑战者向被证实平台提出证实请求,包括一个随机数用来防止重放攻击;
  2. 被证实平台随之搜集在TPM制造时写入的背书证书EK(用来标识可信平台的唯一身份)等等,并用EK生成平台身份密钥AIK来避免暴露隐私,然后将EK、AIK等等发送给隐私签证机构(PCA);
  3. PCA通过验证EK,验证TPM芯片的合法性,并为之颁发身份认证证书,承认AIK的合法性;
  4. 被证实平台通过TPM_Quote操作,使用平台身份密钥(AIK)对PCR值进行签名,并随之将签名值与度量日志和AIK证书发送给挑战者;
  5. 挑战者首先验证AIK证书的有效性,使用AIK公钥对数据进行解密获取PCR,通过PCR确保度量日志真实可信地返回给了挑战者,随后则将度量日志的每一项与预期值进行比对,判断平台是否可信。

注:流程中的1、2、3又叫作初始化阶段,流程4、5叫作证明阶段

图 2 远程证明流程[1]

四、PCA的替代者DAA

我们刚才通过一个第三方的隐私签证机构PCA完成了对一个被证实平台的远程证明。然而,如果用心思考一下,很容易就会发现这样做的一些缺点。首先,挑战者进行验证时需要验证其证书的合法性,因为PCA完全了解验证证书,一旦PCA和挑战者进行合谋,将导致平台的身份被泄露;其次,使用者需要与PCA进行交互以获得AIK证书,而TPM可能有大量的AIK,那么PCA将服务大量的AIK证书请求,这就可能导致单点故障,从而导致可用性的问题。

因此在规范TPM 1.2之后,直接匿名认证方案(Direct Anonymous Attestation,DAA)则应运而生。它提供了一种TPM无需在可信第三方的帮助下就可以直接向远程验证者证明可信计算平台的真实性和可信性。

直接匿名认证协议基于TPM平台、DAA签署方和DAA验证方三个实体。DAA协议包括“加入(Join)”和“签名”/“验证”(Sign/Verify)两个步骤。在第一个步骤中,签署方验证TPM平台,并给TPM平台签署DAA证书;在第二个步骤中,TPM平台使用DAA证书与验证方进行交互,通过“零知识证明”验证方可以在不违反TPM平台隐私性的前提下对DAA证书进行验证。DAA协议支持黑名单的功能,这样验证方可以将那些被攻陷的TPM识别出来。

直接匿名认证作为PCA的一种替代方案,相比于PCA具有以下优点:首先,DAA提供了更高程度的匿名性,验证方在进行证书验证的过程中不需要了解PCA的信息,从而避免了因为PCA与验证方合谋而导致的TPM平台身份泄露;其次,在DAA中,TPM使用者只需要和DAA签署方交互一次,就可以生成多个AIK证书,这解决了PCA的可扩展性/可用性的问题。

今天我们的分享就告一段落了。我们首先讲了可信计算技术是什么,然后通过与图灵测试的对比,为大家引入了远程证明的概念,随后我们讲了远程证明的基本流程,以及后来的远程证明“2.0升级版”----基于DAA的远程证明。

如果你对其中的某一部分有疑问或者想了解有关可信计算更多的知识的话,欢迎提出,欢迎收到你们的反馈!

引用:

[1] 邹德清,羌卫中,金海.可信计算技术原理与应用.北京:科学出版社,2011,45-47. 

 

 

猜你喜欢

转载自blog.csdn.net/triaslab/article/details/85232986