可信计算中的身份鉴别和证明-EK、AIK和DAA
可信计算
可信计算的概念由来已久,此处罗列几个时间点!
信息安全标准的演变:
- 1985年美国国家安全局提出TCSEC标准,又被称为橘皮书,里面第一次提到了TCB(可信基)的概念。
- 1987年,NSA又提出了用于可信网络连接方面的TNI标准,被称为红皮书,至此彩虹系列的安全标准应运而生。
- 1991年欧洲四国(英、法、德、荷兰)联合提出ITSEC标准。
- 1993年,美国提出本国的FC标准。同年加拿大提出自己的CTCPEC标准。
- 1996年,欧洲四国和美、加进行六国会议,共同提出CC标准1.0版。
- 1998年,CC标准2.0版提出。
- 1999年,成立了可信计算平台联盟TCPA。
- 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相关推荐
- oracle中prad函数_等保测评2.0:Oracle身份鉴别
一.说明 本篇文章主要说一说oracle数据库中身份鉴别控制点中测评项a的相关内容和理解. 二.测评项a a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换 ...
- ICCV 2021 口罩人物身份鉴别全球挑战赛冠军方案分享
作者丨阿里云多媒体 AI 团队 编辑丨极市平台 导读 今年阿里云多媒体 AI 团队参加了 MFR 口罩人物身份鉴别全球挑战赛,并在总共5个赛道中,一举拿下1个冠军.1个亚军和2个季军.本文为该团队的冠 ...
- 【NISP一级】2.2 身份鉴别与访问控制
[NISP一级]2.2 身份鉴别与访问控制 笔记(主栏) 1. 身份鉴别基础 1.1 标识 1.1.1基本概念 实体身份的一种计算机表达 每个实体与计算机内部的一个身份表达绑定 信息系统在执行操作时, ...
- ICCV 2021口罩人物身份鉴别全球挑战赛冠军方案分享
1. 引言 10月11-17日,万众期待的国际计算机视觉大会 ICCV 2021 (International Conference on Computer Vision) 在线上如期举行,受到全球计 ...
- 【0527】身份鉴别技术
身份鉴别技术 概念 网络安全的AAA机制 鉴别Authentication,授权Authorization,审计Audience 鉴别就是可信地确认实体是它所声明的. 鉴别需要满足的要求: (1)A能 ...
- 登录工程:传统 Web 应用中的身份验证技术
标题中 "传统 Web 应用" 这一说法也并没有什么官方定义,只是为了与"现代化 Web 应用"形成比较而自拟的一个概念.所谓现代化 Web 应用指的是那些基于 ...
- 基于用户击键特征的身份鉴别系统
简单来说,我们要做的就是一种通过用户敲击键盘的习惯进行身份鉴别的系统.国内外之前有一些相关研究,但是通常是数千条数据训练,而且不能随意改变敲击的字符串,或者是有的要求采用带有压力传感器的键盘,难以实用 ...
- 等保安全计算环境之Windows(身份鉴别+访问控制)(二级)
提示:你来了?来了就往下看呗. 文章目录 前言 一.安全计算环境之Windows操作系统(身份鉴别+访问控制)(二级) 1.桌面版: 2.服务器版: 二.现场核查内容 1.身份鉴别 2.访问控制 3. ...
- 等保测评2.0:MySQL身份鉴别(上)
一. 说明 本篇文章主要说一下MySQL数据中身份鉴别控制点中a测评项的相关知识点和理解. 二. MySQL用户 2.1. 用户身份标识 MySQL数据库对于用户的标识和其它数据库有些不一样,不仅仅是 ...
最新文章
- 基本lnmp平台的搭建(源码编译)
- android 隐藏导航栏 虚拟键
- C#调用百度地图 api
- linux项目变量存放,linux 堆、栈、全局变量存放
- NYOJ 643 发短信 暴力求解
- 【dfs】虫食算(ybtoj dfs-1-3)
- 【CV竞赛】百度车道线检测,正在报名中,8.9万元奖金
- hadoop概念介绍
- C语言算出一行的最大数,多输入输出练习1 (C语言代码)给定很多行数据,要求输出每一行的最大值。注意输入输出的格式要求...
- setup_per_cpu_areas 函数
- 无线网络何连不到服务器,关于电脑宾馆连接不上无线网络的解决方法
- 夜神模拟器 Nox Player 雷电模拟器 掉线 连不上 运行不显示的解决方案
- 网络学习 局域网分类 以太网 令牌网 FDDI光纤分布式数据接口网 异步传输模式网(ATM) 无线局域网
- ff14拆区后哪个服务器人最多,《最终幻想14》官宣拆区!国服大区调整计划公布...
- secureCRT无法输入
- 常用CASE工具介绍 ZZ
- 世界观和方法论是一致的,有怎样的世界观就有怎样的方法论
- Hibernate Criteria对象详解(条件查询)
- GetImageBuffer
- UPC 2020年夏混合个人训练第七十五场
热门文章
- Window,WindowManager学习总结
- 单片机加红外编解码模块(自带破解空调遥控器功能)实现控制空调开关
- react hook函数
- 上海计算机专业选小三门要求,改革后,上海小三门选科到底应该怎么选?
- win10下 bundler下载安装
- 热电偶单片机代码c语言,基于单片机的热电偶发生器设计(含电路原理图,程序)...
- 货运服务网络设计:经典文献阅读笔记(3)复现Netplan
- 三层组网AP上线(案例二)
- LKD-虚拟文件系统
- Invalid bound statement (not found): com.lianxi.service.MhPageService.selectAll