可信计算

可信计算的概念由来已久,此处罗列几个时间点!

信息安全标准的演变:

  1. 1985年美国国家安全局提出TCSEC标准,又被称为橘皮书,里面第一次提到了TCB(可信基)的概念。
  2. 1987年,NSA又提出了用于可信网络连接方面的TNI标准,被称为红皮书,至此彩虹系列的安全标准应运而生。
  3. 1991年欧洲四国(英、法、德、荷兰)联合提出ITSEC标准。
  4. 1993年,美国提出本国的FC标准。同年加拿大提出自己的CTCPEC标准。
  5. 1996年,欧洲四国和美、加进行六国会议,共同提出CC标准1.0版。
  6. 1998年,CC标准2.0版提出。
  7. 1999年,成立了可信计算平台联盟TCPA。
  8. 2003年,由AMD、惠普、IBM、Intel和微软等企业共同成立了可信计算组织TCG,取代了TCPA。

可信计算的核心是TPM芯片,既通过物理防护和密码算法,借助杂凑值度量的手段完成可信验证和信任传递。

可信计算围绕TPM芯片,有三个信任根,既RTR、RTS和RTM。

信任根可以简单理解为借助TPM芯片完成若干功能的代码片段。其中,RTR是可信报告根、RTS是可信存储根、RTM是可信度量根。

EK证书

EK证书又叫背书证书,一般是由TPM生产商创造或者植入TPM的,有时也可以由平台的生产商发布。

一个TPM一生只能有一个EK证书,EK证书是TPM芯片的唯一标识。

平台证书

平台证书可以证明一个平台中有一个唯一的TPM芯片,且该芯片永久的与一个信任根息息相关。该证书一般由平台生产商发布和制定,包含了一些与EK相关的信息、厂商的平台模块信息以及平台的安全配置信息。

一般在平台证书中包含了EK证书。

AIK证书

AIK证书由PrivateCA签发,PrivateCA又叫PCA,也可以叫做ACA(AttestationCA)。AIK证书主要是证明TPM中已经生成了相关的AIK密钥,且已经与对应的EK进行了绑定,以及在AIK注册签发过程中的步骤是否规范。

其中AIK只能用于签名,不可用去加解密,而且只能用于TPM内部信息的签名使用,这是为了防止攻击者进行AIK破解。

AIK注册过程

1、平台要求TPM生成AIK密钥对

  • 平台或者平台的应用程序向TSS(可信软件栈)发送CollateIdentityRequest命令,TSS向TPM发送MakeIdentity命令,随后TPM生成新的AIK公私钥对。
  • 随着MakeIdentity函数,TPM生成IDENTITY_CONTENTS结构,包括{结构版本,TPM命令序列,PCA的签名标记,AIK的公钥信息}
  • TPM用AIK私钥签名IDENTITY_CONTENTS结构信息,作为注册过程中的identityBinding信息(身份绑定信息)。
  • TPM在MakeIdentity接口中输出两个参数,一个是AIK公钥信息,另一个是identityBinding信息。

2、TSS生成包括AIK的证据数据

  • TSS通过以下的步骤生成了AIK注册请求中需要的证据结构IDENTITY_PROOF。(1)第一个就是identityBinding信息,identityBinding不用加密,他只是用来证明AIK私钥已经存储在TPM中,而且已经被EK证明了,无其他实际意义。(2)TPM的版本说明(3)AIK的公钥(4)IdentityLabel(5)EK证书(6)平台证书。
  • TSS通过TPM接口生成一个对称密钥K1,使用K1加密IDENTITY_PROOF结构数据。
  • TSS使用PCA(或者ACA)的公钥加密K1,这个K1只是向PCA或者ACA解密公开,发送至PCA的其实是密文k1。

3、平台向ACA或者PCA发送AIK证书签发请求。
    平台或者平台应用程序携带着IDENTITY_REQ结果,加密请求数据并发送给ACA。

4、ACA验证签发请求。

  • ACA首先使用自身的私钥解密K1密文,得到对称密钥k1信息。
  • ACA然后使用K1解密IDENTITY_PROOF结构。
  • ACA重新创建IDENTITY_CONTENTS结构,并验证identityBinding结构的正确性。同时也可以验证整个IDENTITY_PROOF结构。

5、ACA生成一个新的AIK证书。
    ACA可以使用收到的AIK公钥生成新的AIK证书。使用自己的AIK签名密钥来签发AIK证书。

6、ACA加密AIK证书
    ACA依靠TPM来加密AIK证书。使用接口TPM_ActivateIdentity命令,TPM输入一个TPM_EK_BLOB或者ASYM_CA_CONTENTS结构。

  • ACA生成对称密钥k2,一个AIK对应唯一的k2。
  • ACA使用k2加密AIK证书。
  • ACA创建一个TPM_EK_BLOB结构,包括一下内容:(1)AIK公钥的哈希值 (2)k2(3)附带PCR信息,供TPM来检查确保TPM的pcr寄存器的装饰是否正确。
  • ACA使用EK公钥加密TPM_EK_BLOB结构的数据。确保只有对应的TPM才能收到ACA签发的AIK证书。

7、ACA将加密的TPM_EK_BLOB结构数据和加密后的AIK证书发送至TPM平台。

8、平台收到之后使用TPM解密AIK证书
    向TPM发送Tspi_TPM_ActivateIdentity命令来解密TPM_EK_BLOB结构。取出k2,然后解密AIK证书。

AIK挑战和证明

1、一个挑战者的请求,包括若干的PCR寄存器值以及其他相关信息,比如TPM版本信息等,还包括挑战者需要平台返回的临时随机信息。由挑战者发送至被待证明的平台。

该请求可以用Req(PCR列表S_pcr,是否需要TPM版本信息的开关标识,临时信息N_value)。

2、平台或者应用程序收到相关请求,由TSS调用TPM_Quote或者TPM_Quote2命令,TPM得到命令后,使用AIK私钥对S_pcr指向的寄存器列表值,TPM版本信息以及N_value信息进行签名,返回SG_tpm值、S_pcr指向的寄存器的值列表,以及TPM的版本信息。

3、TSS受到TPM的接口返回,收集相关信息,将TPM版本信息、SG_tpm值、详细度量记录日志和证书(包括平台证书、一致性证书以及AIK证书)一起发送给挑战者。

4、挑战者从PCA处验证证书信息,然后使用AIK证书将TPM版本信息,和从度量日志中重新计算出来的各个PCR寄存器的值,进行二次签名,并于SG_tpm签名做比对,从而得出此次证明挑战是否完成。

DAA直接匿名证明

在TPM1.2版本中,取消了上面的注册以及证明的流程,使用DAA直接匿名证明,也就是零知识证明。

原因:

1、从上述注册流程中可知,TPM每生成一个AIK密钥对,都需要PCA或者ACA给签发一个AIK证书,当AIK密钥对需求量较大时,势必会对PCA平台的稳定性和可用性造成影响。

2、PCA平台存在上帝视角,当挑战者发起挑战时,需要跟PCA发起请求来验证TPM平台的真伪,PCA中存在这所有的EK证书和AIK证书的对应关系,也就是TPM芯片与AIK证书的关系。存在一定程序的信息泄露风险。

DAA方法描述:

在DAA方法中,存在join和sign/verify等几种协议。

TPM平台使用EK与DAA的Issuer发行方进行交互,交互之后TPM芯片中就同时存在DAA证书、EK证书以及生成的AIK证书等。

当挑战者A向TPM平台发起证明挑战,平台方将DAA签名的AIK_A信息发送给A,A即可验证当前信息是否来自有效的TPM平台,但A并不知晓来自哪个TPM平台。

当挑战者B向TPM平台发起证明挑战,平台方将DAA签名的AIK_B信息发送给B,B即可验证当前信息是否来自有效的TPM平台,但B也并不知晓来自哪个TPM平台。

在DAA证明中,一方面减少了与DAA发行方的交互,另一方面保障了TPM的隐匿,DAA的实现需要借助群签名和离散对数来完成,具体实现在TPM中。

JOIN过程:

  • DAA Issuer生成公钥IKey以及对应的私钥。
  • TPM平台收到IKey。
  • TPM内部生成DAA私钥privDK,并使用EK对自己进行标识,并将相关信息传递给发行方Issuer。
  • DAA发行方验证之后,向TPM方返回CertDK。此时TPM内部拥有privDK和certDK。使用privDK和certDK签名的消息,就可以用IKey证书来验证。

sign/verify过程:

  • TPM生成AIK密钥对。
  • TPM用privDK和certDK对AIK公钥进行签名。
  • 挑战者verifier从DAA发行方获得IKey证书后确定AIK私钥在一个TPM中,就可以确定TPM平台是否正确。

可信计算中的身份鉴别和证明-EK、AIK和DAA相关推荐

  1. oracle中prad函数_等保测评2.0:Oracle身份鉴别

    一.说明 本篇文章主要说一说oracle数据库中身份鉴别控制点中测评项a的相关内容和理解. 二.测评项a a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换 ...

  2. ICCV 2021 口罩人物身份鉴别全球挑战赛冠军方案分享

    作者丨阿里云多媒体 AI 团队 编辑丨极市平台 导读 今年阿里云多媒体 AI 团队参加了 MFR 口罩人物身份鉴别全球挑战赛,并在总共5个赛道中,一举拿下1个冠军.1个亚军和2个季军.本文为该团队的冠 ...

  3. 【NISP一级】2.2 身份鉴别与访问控制

    [NISP一级]2.2 身份鉴别与访问控制 笔记(主栏) 1. 身份鉴别基础 1.1 标识 1.1.1基本概念 实体身份的一种计算机表达 每个实体与计算机内部的一个身份表达绑定 信息系统在执行操作时, ...

  4. ICCV 2021口罩人物身份鉴别全球挑战赛冠军方案分享

    1. 引言 10月11-17日,万众期待的国际计算机视觉大会 ICCV 2021 (International Conference on Computer Vision) 在线上如期举行,受到全球计 ...

  5. 【0527】身份鉴别技术

    身份鉴别技术 概念 网络安全的AAA机制 鉴别Authentication,授权Authorization,审计Audience 鉴别就是可信地确认实体是它所声明的. 鉴别需要满足的要求: (1)A能 ...

  6. 登录工程:传统 Web 应用中的身份验证技术

    标题中 "传统 Web 应用" 这一说法也并没有什么官方定义,只是为了与"现代化 Web 应用"形成比较而自拟的一个概念.所谓现代化 Web 应用指的是那些基于 ...

  7. 基于用户击键特征的身份鉴别系统

    简单来说,我们要做的就是一种通过用户敲击键盘的习惯进行身份鉴别的系统.国内外之前有一些相关研究,但是通常是数千条数据训练,而且不能随意改变敲击的字符串,或者是有的要求采用带有压力传感器的键盘,难以实用 ...

  8. 等保安全计算环境之Windows(身份鉴别+访问控制)(二级)

    提示:你来了?来了就往下看呗. 文章目录 前言 一.安全计算环境之Windows操作系统(身份鉴别+访问控制)(二级) 1.桌面版: 2.服务器版: 二.现场核查内容 1.身份鉴别 2.访问控制 3. ...

  9. 等保测评2.0:MySQL身份鉴别(上)

    一. 说明 本篇文章主要说一下MySQL数据中身份鉴别控制点中a测评项的相关知识点和理解. 二. MySQL用户 2.1. 用户身份标识 MySQL数据库对于用户的标识和其它数据库有些不一样,不仅仅是 ...

最新文章

  1. 基本lnmp平台的搭建(源码编译)
  2. android 隐藏导航栏 虚拟键
  3. C#调用百度地图 api
  4. linux项目变量存放,linux 堆、栈、全局变量存放
  5. NYOJ 643 发短信 暴力求解
  6. 【dfs】虫食算(ybtoj dfs-1-3)
  7. 【CV竞赛】百度车道线检测,正在报名中,8.9万元奖金
  8. hadoop概念介绍
  9. C语言算出一行的最大数,多输入输出练习1 (C语言代码)给定很多行数据,要求输出每一行的最大值。注意输入输出的格式要求...
  10. setup_per_cpu_areas 函数
  11. 无线网络何连不到服务器,关于电脑宾馆连接不上无线网络的解决方法
  12. 夜神模拟器 Nox Player 雷电模拟器 掉线 连不上 运行不显示的解决方案
  13. 网络学习 局域网分类 以太网 令牌网 FDDI光纤分布式数据接口网 异步传输模式网(ATM) 无线局域网
  14. ff14拆区后哪个服务器人最多,《最终幻想14》官宣拆区!国服大区调整计划公布...
  15. secureCRT无法输入
  16. 常用CASE工具介绍 ZZ
  17. 世界观和方法论是一致的,有怎样的世界观就有怎样的方法论
  18. Hibernate Criteria对象详解(条件查询)
  19. GetImageBuffer
  20. UPC 2020年夏混合个人训练第七十五场

热门文章

  1. Window,WindowManager学习总结
  2. 单片机加红外编解码模块(自带破解空调遥控器功能)实现控制空调开关
  3. react hook函数
  4. 上海计算机专业选小三门要求,改革后,上海小三门选科到底应该怎么选?
  5. win10下 bundler下载安装
  6. 热电偶单片机代码c语言,基于单片机的热电偶发生器设计(含电路原理图,程序)...
  7. 货运服务网络设计:经典文献阅读笔记(3)复现Netplan
  8. 三层组网AP上线(案例二)
  9. LKD-虚拟文件系统
  10. Invalid bound statement (not found): com.lianxi.service.MhPageService.selectAll