共计 4210 个字符,预计需要花费 11 分钟才能阅读完成。
title: 可信计算_密码学基础01_PKI、SSL、DAA、PCA date: 2022-05-27 11:07:53.887 updated: 2022-05-27 11:48:54.449 url: /archives/可信计算密码学基础01pkissldaapca categories:
- 可信计算 tags:
- 可信计算
- 密码学
1 PKI
1.1 PKI概念
PKI技术是利用公钥密码体系实现的一个标准的安全基础设施,作为一种提供安全服务的基础性平台,它主要提供应用层级别的安全服务,向网络实体提供所必须的安全服务。
PKI技术主要通过为网络空间中各个主体提供安全保障以解决网络中的信任问题。 它通过数字证书为用户提供数字签名、身份认证等具体的安全服务,来确立用户身份的 唯一性和真实性,PKI技术提供的基本服务有:
- 身份认证服务:即身份认证与识别。PKI技术实现身份认证主要是检查由双方共同信任的CA颁发的数字证书的真实性以及是否过期。
- 数据的完整性和不可否认性:PKI技术通过数字签名技术保证信息在传递过程中没有被篡改过。而不可否认性是指从技术上确保用户认可所做的网络通信行为,确保数据有源可查,不能抵赖。
- 机密性:PKI技术通过对数据加密确保除密钥拥有者以外的其他任何实体不能理解出数据的具体信息。
一个完整的PKI系统主要包括认证中心(Certificate Authority,CA)、注册中心 (Registration Authority,RA)、数字证书库、证书撤销等功能模块组成。
- 认证中心CA:是PKI中具有权威性、公正性的第三方信任机构,CA是PKI技术中最重要的部分。它的主要作用是确认用户身份信息与相应的数字证书信息相对应,通过为经过验证的用户颁发的相应的数字证书来实现。
- 注册中心RA:RA主要负责证书申请者的信息录入、审核等工作,在对用户信息鉴别的基础上决定是否同意CA颁发数字证书给申请者。
- 证书发布库:证书发布库是存放CA所颁发和撤销的证书的数据库。
- 证书撤销:通过证书撤销列表CRL(CertificateRevocationList)确认证书是否撤销
1.2 X.509数字证书
PKI技术的重要基础之一是X.509数字证书,它通过把公钥和它的所有者的身份标识信息相互绑定保证用户身份的真实性,以此确保公钥信息的完整性和不被篡改,保证用户传送信息的安全性。是用户与认证中心建立信任关系的基础,也是PKI的关键技术之一。
X.509数字证书由可信第三方认证机构CA签发。通过CA对用户身份信息和公钥进行签名,以此保证证书的有效性。PKI技术的一切活动都是围绕X.509数字证书的应用展开的,数据机密性、身份认证、数据完整性等PKI所提供的全部安全服务功能都需要X.509数字证书完成。图6列出了X.509数字证书的结构。
X.509数字证书的签名和认证过程:
- CA签名证书
在X.509证书格式中,最后一个字段代表认证机构CA对证书进行的数字签名,CA向申请用户颁发证书前,需要使用MD5或SHA-1对颁发证书的所有内容进行哈希运算得到一个消息摘要。然后CA使用私钥加密这个消息摘要,形成最终的数字签名。最后CA将加密后的消息摘要插入X.509证书的最后一个字段,这样CA就完成了对X.509证书的签名。签名过程如图8所示。
- X.509数字证书认证
X.509数字证书的认证过程如下:
- 认证者使用单向散列函数对证书中除了签名以外的所有字段进行哈希运算获得一个消息摘要M1。其中单向散列函数与CA签发证书时所用的算法一样,具体由签发证书中的相应字段确定;
- 认证者从证书相应字段获取CA的数字签名;
- 认证者用CA的公钥对证书解密证书中的数字签名,获得CA对证书字段进行散列所得的到消息摘要M2;
- 认证者比较消息摘要M1和M2,看两条摘要是否相等,如果两条消息摘要相等,即M1=M2,那么可确定X.509证书由认证机构CA颁发并签名,否则便不能信任此证书,拒绝其提出的访问请求。
2 SSL协议
2.1 SSL协议概述
SSL协议是在传输层上为网络通信提供安全及数据完整性的一种安全协议,用于在平台之间建立了透明的连接通道,几乎所有支持TCP的协议都可以使用SSL提供的安全服务,因此SSL协议得到了广泛应用。它主要通过非对称密钥体系进行通信双方的身份认证,在通过认证后交换对称密钥作为通信密钥,然后采用通信密钥加密传输数据。SSL具体由SSL握手协议、修改密码协议、SSL记录协议以及警告协议组成(图8)。
2.2 SSL双向认证
SSL握手协议根据不同需要分为单向认证和双向认证[33]。一般SSL双向认证主要完成服务器与服务器之间的认证,当两个服务器端使用SSL协议进行通信时,需要先进行SSL双向认证然后再进行通信。SSL双向认证主要完成SSL初始化信息如版本号协商、摘要算法、加密密钥、加密算法等,同时完成对通信双方的身份认证。SSL双向认证的流程如图9所示:
- 服务器A给服务器B发送一个连接请求。
- 服务器B把X.509证书和同证书的相关信息发到服务器A。
- 服务器A将由服务器B发送过来的X.509证书进行检查,检查此证书的签发机构是否是所信赖的CA中心。如果是,对之前的协议继续进行执行操作;如果不是,向客户发送警告消息:即警告客户当前证书并非是可以信赖的,同时向客户发送询问请求,判断是否需要继续操作行为。之后服务器A对证书中的消息与服务器B刚刚发送的相关消息进行比较处理,判断其是否一致,如果一致,对服务器的合法身份进行认可。
- 服务器A完成对服务器B的认证。并发送自己的X.509证书到服务器B
- 服务器B收到证书后后,对证书进行验证处理,若验证失败,对连接请求进行拒绝处理;若验证成功,服务器B得到服务器A的公钥。
- 服务器B完成对服务器A的认证。
- 服务器A和服务器B进行会话密码协商。具体流程是首先服务器A将所能支持的密码方案告知于服务器B,然后针对服务器A发送过来的方案,服务器B从中选择一种加密程度最高的方案,用服务器A的公钥进行加密处理,之后发送到服务器A。针对这个密码方案,服务器A生成一个会话密钥,接着用来自于服务器B的公钥同样进行加密处理,之后发送给对方。B接收到消息,用自己的私钥解密,获得会话密钥。
- 服务器A和B完成两个平台之间的双向认证,接下来的会话都是用对称密码进行通讯。
3 DAA
可信计算作为一种新的计算机体系结构,远程证明是它的重要功能之一。远程证明就是通过两个网络平台在通信前由经典的“挑战一应答”协议实现来判断对方平台的身份和可信状态。杜芸芸对云计算环境下的远程证明安全进行了研究。杨力基于可信计算提出一种改进的移动计算平台直接匿名证明方案。目前实现远程证明的方案包括TPM1.1提出的Privacy CA方案(Privacy Certification Authority)和TPM1.2提出的直接匿名证明DAA方案。
每个TPM都包含一对背书密钥EK作为平台唯一标识符,通常为保护EK不被泄露,由TPM生成一对AIK公钥,由AIK公钥完成平台身份的认证。Privacy CA认证方案就是TPM在每次证明时,在产生身份密钥AIK后,使用第三方机构Privacy CA对AIK公钥进行签名。在证明时TPM需要将由AIK签名的PCR值和接收到的Privacy CA对AIK的签名发送给验证者,由验证者根据签名值对判断身份及是否可信进行判断。基于Privacy CA的证明方案不足之处一是Privacy CA身份的安全性问题,当CA与Verifier串通时,会暴露Attestor的行为;二是由于每次证明时TPM都需要向Privacy CA申请证书,使Privacy CA成为中心环节,Privacy CA的性能决定了方案的效率,从而不适合大规模应用和部署。
而DAA直接匿名认证协议很好的弥补了前面提到的Privacy CA认证方案存在的不足,DAA直接匿名认证协议如图11所示。
DAA认证包含4个实体:TPM,Attestor,DAA Issuer,Verifier。其中Attestor是一个包含TPM的平台。DAA认证协议根据计算的安全性,将对安全性高的计算提交给TPM计算,而Attestor主机完成不需要安全的计算,在保证安全的同时提高了DAA认证协议的效率。
DAA认证协议由DAA Join和DAA Sign两个子协议组成。其中DAA Join协议是指DAA ISSUER通过验证TPM平台为符合要求的TPM平台颁发DAA证书,其中DAA证书主要用于平台身份证明;而DAA Sign协议就是TPM通过使用ISSUER颁发的DAA证书向Verifier证明自身的过程。在证明的过程中,Verifier根据零知识证明思想在不泄露TPM隐私的条件下实现了DAA证书的验证,完成了对平台身份的认证。
其过程分为三步:
- TPM由密钥生成器生成一对AIK公私钥对,然后由EK向DAA发布者ISSUER提供平台身份的合法信息。
- DAA ISSUER对EK提供的平台信息进行验证,如果通过,DAA ISSUER将验证的一个DAA证书传送给TPM。被验证者接下来就通过使用这个证书签名相关消息。如图10中第(3)步。
- DAA Sign协议是Verifier验证Attestor合法性的协议,是在TPM与Verifier之间进 行,Verifier主要是验证Attestor中TPM颁发的AIK。其中AIK由TPM生成,并用从DAA ISSUER获得的DAA证书的签名发送到Verifier。
DAA匿名认证的优点如下:
- DAA签署方不能把AIK的签署和EK联系在一起,同时两个DAA签名不能够区分是否来自同一TPM,DAA验证者和发布者不能对Attestor的行为进行跟踪,解决了Privacy CA方案的缺点。
- DAA证书只需要TPM平台向ISSUER申请一次,而不像Privacy CA方案一样,每次证明都需要申请证书。解决了Privacy CA中出现的瓶颈问题。
- 在TPM获得ISSUER颁发的DAA证书后,可生成多个AIK公私钥对并由DAA证书签名,使证书得到了扩展。
关于DAA
DAA是可信计算组织TCG提出的解决Privacy CA可能会泄露信息的一种零知识证明方案。
参考链接
原文是下列文章中的第二章相关内容。
- 江丽军. 基于TPM的可信DAA认证模型的研究[D]. 河北:河北大学,2015. DOI:10.7666/d.D723749.