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

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

    参与者:

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

    主要流程:

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

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

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

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

    ⑤远程验证方(Verifier)向可信第三方发起请求,查询可信计算平台信息是否有效

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证书

  2. 平台身份认证

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

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

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

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

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

    ⑥如果平台A的TPM身份可信,则平台B验证平台A的远程证明签名及完整性日志是否有效

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提供的签名和公钥进行可信验证

  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
《可信计算理论与技术》 李小勇 编著
《应用密码学》 李根发 编著

可信计算理论与技术--远程证明技术相关推荐

  1. 揭晓远程证明架构EAA:机密容器安全部署的最后一环 | 龙蜥技术

    简介:如果需要在云上 HW-TEE 环境里启动一个加密容器,如何在启动过程中获取容器的解密密钥? 文 / 周亮, 云原生机密计算 SIG 核心成员. 在云原生场景下,基于HW-TEE(如Intel S ...

  2. 区块链交易隐私如何保证?华为零知识证明技术实战解析

    摘要:本文通过介绍华为如何在同态加密及零知识证明框架的集成介绍来介绍了一些对金融领域交易隐私保护的思路,通过代码结和应用场景描述了zksnark如何集成到现有联盟链体系保护交易隐私. 本文分享自华为云 ...

  3. C#远程调用技术WebService葵花宝典

    一.课程介绍 直接开门见山吧,在学习之前阿笨想问大家一句,关于WebService远程过程调用技术(RPC) 你真的会了吗?不要跟老夫扯什么WebService技术已经过时,如果你的内心有在偷偷告诉你 ...

  4. Spring远程调用技术1-RMI

    在java中,我们有多种可以使用的远程调用技术 1.远程方法调用(remote method invocation, RMI)  适用场景:不考虑网络限制时(例如防火墙),访问/发布基于java的服务 ...

  5. CCIE理论第三篇-LISP技术

    CCIE理论第三篇-LISP技术 LISP LISP(locator identity separation protocol)位置身份分离协议 这个是个啥呢?为什么需要这个东东呢? 首先呢,我们知道 ...

  6. 如何将自适应设计理论及韧性结构体系技术应用于穿越活动断裂带的隧道建设

    如何将自适应设计理论及韧性结构体系技术应用于穿越活动断裂带的隧道建设 如何将自适应设计理论及韧性结构体系技术应用于穿越活动断裂带的隧道建设 问题描述: 问题背景: 最新进展: 重要意义: 如何将自适应 ...

  7. 远程监控技术计算机网络,计算机网络技术视角下的远程监控技术研究

    摘 要:随着计算机技术和网络技术的不断更新, 其在各个领域都不断发挥着越来越重要的作用.尤其是在现代化工业生产中, 更是展现出不可替代的优势.以网络为核心建立在计算机技术的基础上的新型远程监控技术, ...

  8. DLL的远程注入技术详解

    DLL的远程注入技术详解 2008-12-01 20:28 DLL的远程注入技术是目前Win32病毒广泛使用的一种技术.使用这种技术的病毒体通常位于一个DLL中, 在系统启动的时候,一个EXE程序会将 ...

  9. 扎根理论分析软件NVivo原理与技术应用

    扎根理论越来越流行,成为经常被采用的研究方法之一.扎根理论的研究者来自广泛的研究领域,例如社会工作.护理.医药.综合医疗保健.教育.管理和商业.这些从业者和学者试图从他们所在学科范围内解释行为模式.对 ...

  10. 猿团,如何用远程工作技术云平台,打开IT人才共享市场?

    互联网时代,什么最贵?毫无疑问,是人才,而不管是创业型企业或是面临向互联网转型的传统企业,受资金或地域限制,IT人才无疑千金难求. 好在,远程工作打破了这种僵局. 远程工作利用互联网技术的便利,让不同 ...

最新文章

  1. Mysql学习总结(14)——Mysql主从复制配置
  2. 独家专访 | 从跨国投行到开源社区,IBM Spark总工程师Nick Pentreath的传奇经历
  3. 直接调用android原生接口实现点击直接拨打电话功能
  4. 判断浏览器设置相应的CSS
  5. 这个Javascript“要求”是什么?
  6. gridview自动编号
  7. 100个常用的Linux命令
  8. windows系统mysql定时备份
  9. 微信表情包储服务器,微信表情包不用收藏,只需打开这个设置,再也不担心斗图了...
  10. 信息通信类部分中文期刊投稿心得(转帖)
  11. 以迅雷链为首的中国区块链,用技术赋能行业实现突围
  12. FFmpeg png格式图片转yuv420
  13. 【表格设置】HTML中合并单元格,对列组合应用样式,适应各浏览器的内容换行
  14. 怎么样减肥又快又好 达人推荐最有效的减肥方法
  15. Python-qqbot实现QQ群翻译机器人
  16. python的整体设计目标_python之总体理解
  17. C#设计模式之简单工厂模式(过渡模式)
  18. 九河 打结_舌头打结? 与视觉效果更快地沟通
  19. 习题3-3 出租车计价(15 分)
  20. 若依报错 TypeError: Cannot read properties of undefined (reading ‘***‘)

热门文章

  1. win7 安装ss
  2. Oracle 12C 最新 PSU 补丁下载与安装操作指北
  3. Win10 无线网卡驱动感叹号,显示错误代码56
  4. 字体,字号与尺寸对应表
  5. 华为悦盒EC6109u线刷救砖文件fastboot.bin bootargs.bin recovery
  6. 中国移动CMPP短信开发平台通讯包 2.8
  7. 利用python和百度地图API实现数据地图标注
  8. Ubuntu系统通用快捷键
  9. node 简繁体转换_简繁体转换
  10. 服务器安装系统h730,戴尔H330_H730阵列卡驱动