可信计算理论与技术--远程证明技术

可信计算理论与技术--远程证明技术_第1张图片

1 远程证明概述

  1. 目标

    实现网络环境的可信,将终端平台的可信传递到网络环境中,实现网络中所有用户之间的可信通信。例如,

    • 判断与终端平台通信的是否为可信计算平台
    • 检测平台运行软件进程输入输出以及运行状态的完整性
  2. 定义

    TPM/TCM安全芯片对外证明平台当前配置和运行状态的完整性。远程证明可分为:平台身份证明和平台完整性证明。

2 远程证明原理

2.1 技术基础

完整性度量和平台身份密钥引证是最重要的基础安全支撑功能。其中完整性度量和完整性报告解决了“证明什么”的问题,TPM/TCM身份密钥引证解决了“如何证明”的问题。

  1. 完整性度量

    定义:TPM安全芯片获取平台软硬件可信度特征值的过程,通常这些值以摘要的形式扩展存储到安全芯片的PCR中

    执行过程:计算机启动时,可信计算平台开始执行完整性度量,从BIOS、Boot Loader、OS到应用程序。完整性度量的起点是可信度量根(RTM),每一次度量都会创建一个度量事件(包含被度量值和度量摘要)。系统任何层次上任何完整性改变的度量事件e都会导致系统从一个可信状态转移到另一个可信状态。如果开始状态和度量事件都是已知可信的,那么转移后的最终状态也是可信的。

    完整性度量的结果会按照特定的格式行程度量存储日志(SML),日志里有全部完整性度量事件。SML是远程证明的数学基础。

    目的:可信计算平台通过完整性度量的方式,将平台所有软硬件模块的执行完整性状态记录下来,从而构建可信计算平台的信任链。如果有任何模块被恶意感染,它的摘要值必然会发生改变。

  2. 平台身份密钥引证

    定义:TPM远程证明的签名过程也被成为平台身份密钥引证,TPM使用命令接口TPM_Quote完成内部PCR中保存的完整性扩展值的签名。(通俗理解,用AIK签名就是平台密钥引证,证明的是TPM平台身份可信性)

    执行过程:远程证明之前,TPM先产生一对AIK密钥,在验证方发起挑战后。TPM所有者就选择相应的代表平台完整性的PCR,然后输入挑战nonce和PCR,执行TPM_Quote,最后TPM输出相应远程证明的签名。

    目的:远程证明时,验证方通过验证AIK证书的有效性来确定TPM身份,通过AIK公钥就能验证TPM的远程证明的签名,从而完成完整性的验证。

2.2 协议模型

  1. 参与者

    示证者(Attestor):TPM平台所有者
    验证者(Verifier):远程验证TPM平台的完整性
    可信第三方(可选)

  2. 任务

    验证者依据示证者提供的证据对其平台的完整性做出承诺(通俗理解,验证者根据示证者所提供的信息判断这个平台是否可信)

  3. 协议过程

    完整性度量:示证者A收集完整性证据(SML)
    完整性报告:示证者A向验证者V报告完整性证据(SML)
    完整性证明:验证者V依据是示证者A所提供的完整性证据对其完整性做出决策

  4. “挑战”–“应答”协议

    ①挑战方平台(验证者V)向证明者平台(示证者A)发送一个挑战证明的消息以及一个随机数nonce

    ②证明者平台(示证者A)把经过身份密钥或签名密钥签名后的nonce、PCR、度量日志log等所有被度量的软硬件信息发送给验证者V
    可信计算理论与技术--远程证明技术_第2张图片

  5. 基于AIK的远程证明模型

    参与者:

    可信计算平台:有TPM/TCM安全芯片的主机平台
    远程验证方:远程证明的挑战方
    可信第三方:基本远程证明协议中就是Privacy CA,它负责颁发可信计算平台的AIK证书,并提供证书的有效性验证

    主要流程:

    ①可信计算平台向可信第三方发起AIK证书签名请求

    ②可信第三方对AIK证书进行签名并将证书发送给可信计算平台

    ③远程验证方(Verifier)向可信计算平台发送一个证明挑战随机数nonce

    ④可信计算平台加载AIK密钥,对PCR值签名,并发送到远程验证方(Verifier)

    ⑤远程验证方(Verifier)向可信第三方发起请求,查询可信计算平台信息是否有效
    可信计算理论与技术--远程证明技术_第3张图片

3 平台身份证明

3.1 概述

平台身份证明就是通过身份凭证证明可信计算平台真实身份的过程。
平台身份认证 → 认证TPM/TCM安全芯片身份 → 安全芯片使用AIK公钥表示身份 → AIK私钥签名证明消息来源、

Privacy CA 方案:通过可信第三方给可信平台发平台身份证书,证明可信平台的身份
DAA 方案:基于CL签名和DHH假设的直接直接匿名证明

3.2 Privacy CA 方案

为避免完全暴露平台身份信息,使用EK的别名AIK作为身份验证。Privacy CA平台实名身份认证方法主要分为两个流程:平台身份证书颁发和平台身份认证。

缺陷:虽然只有可信第三方Privacy CA知道用户的真实身份,验证者并不知道。但Privacy CA可能和验证者合谋作恶,并未做到完全匿名。并且由于每次平台身份证明时,Verifier都需要查询可信第三方,可信第三方的运行性能将成为制约平台身份认证的瓶颈。

  1. 平台身份证书颁发

    TPM所有者需要向可信第三方Privacy CA申请平台身份标识,获得平台身份证书。
    平台获得AIK证书后,TPM就可以使用AIK密钥和AIK证书来证明平台的身份

    ①TPM所有者使用TPM安全芯片生成RSA签名密钥AIK,然后执行TPM_Make Identity将AIK公钥、EK证书、平台证书和一致性证书打包

    ②可信计算平台将这些数据作为AIK证书申请请求发送给可信第三方Privacy CA

    ③Privacy CA通过验证EK证书、平台证书等的有效性来验证AIK请求的有效性

    ④Privacy CA使用签名密钥对AIK证书签名,并使用EK公钥加密AIK证书

    ⑤Privacy CA将AIK证书应答数据报返回给TPM,TPM所有者执行命令接口TPM_ActivateIndentity解密获得AIK证书
    可信计算理论与技术--远程证明技术_第4张图片

  2. 平台身份认证

    ①平台A所有者向平台B发送证明请求

    ②平台B向平台A发出证明挑战随机数nonce,同时指明需要的PCR

    ③平台A所有者加载AIK密钥,然后用AIK私钥对需要证明的PCR值签名

    ④平台A将远程证明签名以及平台配置完整日志log发送给平台B的验证者(Verifier)

    ⑤平台B请求Privacy CA,查询平台A的TPM身份是否可信

    ⑥如果平台A的TPM身份可信,则平台B验证平台A的远程证明签名及完整性日志是否有效
    可信计算理论与技术--远程证明技术_第5张图片

3.3 DAA 方案

  1. 原理

    DAA采用群签名和零知识证明的密码技术匿名证明TPM的身份,从而保证远程证明的确来自一个真实的TPM,但不知道具体时哪一个TPM。

    由TPM产生一个RSA密钥对,请求DAA发布者对这个密钥对进行签名,以后每次TPM的签名就可以使用这个密钥对对AIK进行签名,从而保护了AIK的安全。

  2. 参与者

    凭证颁发方(Issuer):负责初始化DAA参数,为TPM/TCM安全芯片颁发DAA凭证,验证安全芯片身份是否已经被撤销。一般生产厂商可以作为凭证颁发方,也是可以是一个独立权威机构,集中管理匿名凭证。
    示证者平台(Attestor):支持DAA规范的可信计算平台。
    验证者平台(Verifier)

  3. 主要流程

    ①Join协议中,TPM通过密钥产生器产生一对RSA密钥,通过EK向DAA发布者提供合法信息

    ②如果DAA Issuer验证通过EK,给TPM一个通过DAA Issuer验证的证书,即IKEY-Certificate。这样Attestor就可以使用该证书对消息进行数字签名

    ③远程证明中,TPM生成一个AIK,并用从DAA Issuer获得的证书签名发送给Verifier,Verifier收到Attestor发来的消息后,用Attestor提供的签名和公钥进行可信验证

    可信计算理论与技术--远程证明技术_第6张图片

  4. DAA协议中主要的协议流程

    DAA协议是一种特殊的群签名。DAA签名方案是具有灵活的可跟踪性以及可关联性,这是因为该协议中没有用于揭露身份的授权者(例如,群中的管理员或其他可信第三方),然而,DAA签名协议可以提供一种机制,这种机制叫做“用户可控匿名性”和“用户可控关联性”。这样保证了没有任何人知道Attesor的真实身份,也切断了同一个平台不同证明会话之间的关联性。

  5. DAA协议需要满足的安全属性

    不可伪造性:只有申请了匿名身份凭证,TPM才能进行匿名证明,攻击者在不知道匿名身份信息的前提下无法伪造DAA证明签名
    匿名性:攻击者无法通过协议数据来获得TPM的真实身份
    不可关联性:验证者无法识别两个DAA会话之间的关联性,即对不同的证明hi话,无法判断是否来自同一个TPM(DAA的用户可控关联性)
    恶意安全芯片检测:验证者和颁发凭证方可以及时发现TPM匿名凭证对应的私钥被泄露

  6. 关于DAA协议的补充

    (1)关于直接匿名协议中“匿名”的理解:“匿名”指的是藏匿身份信息,在Join协议中,示证者给Issuer发送的DAA消息就包含了示证者的身份信息,并且是一个零知识证明消息,所以Issuer并不知道身份信息的具体内容,Issuer通过DAA消息可以判断示证者是一个可信的TPM平台,但无法知道具体是哪一个TPM,这就是身份匿名。之后,Issuer通过零知识证明认证,给示证者颁发匿名凭证。
    示证者在给验证者发送其他消息时,会把匿名凭证一起发给验证者,验证者会去找Issuer验证,确认时Issuer签发的

    (2)DAA协议的有很多种,但主要流程都遵循群签名算法,在生成DAA签名时用到零知识证明方法。根据群签名算法和零知识证明方法的不同,会产生许多种不同的DAA方案。

    (3)身份证明的目的在于,让Verifier相信Attestor的身份,至于Attestor用什么密钥对其他消息(log,PCR…)加密对DAA方案没有影响。只要身份可信,相对应的密钥也就可信了。

    (4)关于零知识证明方法用于签名的解释,Attestor有私钥,因此Attestor身份可信。需要在不告诉Verifier私钥具体内容的情况下证明身份可信,即零知识证明方法。

4 平台完整性证明

4.1 基于二进制的远程证明

  1. 原理

    TPM/TCM 安全芯片直接证明用二进制 Hash值表示的平台完整性值。

    基于二进制的远程证明是在进行了身份的签名验证基础上,对示证者的身份进行了验证,接着利用可信平台模块对整个平台进行度量和校验。

  2. 目的

    二进制远程证明模型能够远程地对用户组件进行安全性度量和验证。根据信任链的生成,信任链的前置节点需对后置节点进行可信性度量和验证。验证接待你安全可信的策略包括,目前度量值应与预先保存的估计值相同。

  3. 基本执行过程
    ①V将随机数N传给A

    ②A中的可信平台模块生成用于AIK证书的密钥对{Kpudq,Kprivq},并向AIK证书中心申请AIK证书C(Kpudq)

    ③A利用Kprivq对自身的PCR值和V传过来的随机数N进行签名,得到签名sign(PCR,N)Kprivq,接着从SML读取自身度量日志

    ④A将签名值sign(PCR,N)Kprivq自身的身份证明证书以及SML日志发给V

    ⑤V验证AIK证书C(Kpudq)的真实值

    ⑥V校验签名sign(PCR,N)Kprivq是否真实有效,接着利用N校验当前会话是否失效。在没有失效的情况下,根据PCR值和SML的记录的值是否一样,来判定示证者的完整性是否被破坏,是否安全可靠

  4. 缺陷

    示证者提供的PCR值很大程度上暴露了其自身的配置。其次,这个远程证明的过程是在系统初始化过程中完整的,因此只对平台的静态配置进行了安全度量。

4.2 基于属性的远程证明

  1. 概述

    基于属性的远程证明(PBA ,Property - based Attestation )是一种在从平台的配置可以转换得到平台属性的基础上,由可信第三方提供属性证书,来证明被证明方的组件满足某个或某些属性的远程证明机制。

  2. 原理

    证明方向挑战者提供属性或相应的证书和标识,挑战者通过对属性证书可靠性的验证,或者属性能够满足的安全程度来确定对方对方是否是可信的。

5 远程证明在DRM中的应用

数字版权管理DRM、移动手机平台、可信信道构建、可信网络接入、云计算节点验证

参考资料
https://blog.csdn.net/mutourend/article/details/104118414
https://zhuanlan.zhihu.com/p/107752440
《可信计算理论与技术》 李小勇 编著
《应用密码学》 李根发 编著

你可能感兴趣的:(笔记,信息安全)