APP下载

基于可信计算平台的认证机制的设计

2010-09-25韩春林叶里莎

通信技术 2010年7期
关键词:私钥公钥密钥

韩春林, 叶里莎

(成都三零盛安信息系统有限公司,四川 成都 610041)

0 引言

可信计算平台的兴起,对它的研究越来越多,对基于可信计算平台的认证机制的研究是必不可少的。网络中的认证技术有很多,其中PKI证书认证技术就是较成熟的一种方式。基于可信计算平台的认证如果利用PKI技术来实现,一方面会弥补 PKI体系中不能保证加密前的数据是安全的这一缺陷,另一方面PKI为平台认证提供证书支持,CA会成为网络中可信的第三方。

身份认证是可信计算平台的基本功能之一。其中,平台必须能够向外部实体认证自己,让其他实体以确信系统是正确可信的。PKI机制为可信计算平台的认证提供了有力支撑,数字证书可以用来证实可信计算平台的身份。PKI提供了一种以证书为基础的认证方案,但是不能保证交换的数据是可靠、未被篡改的,而可信计算平台能从终端保证数据的可信,是对PKI认证的安全扩展,现提出了基于可信计算平台的认证机制的设计方法。

1 可信计算平台

要解决计算机终端安全,就要从硬件和底层软件抓起,从源头上保证系统的安全[1]。由此就出现了可信计算平台技术,它是一种从终端解决安全问题的总体方案。面对网络通信,必须要将这种终端的可信扩展到网络中,以实现可信网络。可信计算平台作为在网络中的一个实体,如何向通信对方证实自己的身份,同时告知通信对方当前平台的状态,是这种信任在网络中传输的起始点。因此而产生的可信计算的课题意在从终端上解决安全问题。

“可信计算”的概念在世界范围内提出是在 1999年由TCG组织提出,主要思路是在PC机硬件平台上引入安全芯片架构,通过提供的安全特性来提高终端系统的安全性[2]。可信计算平台基于可信平台模块(TPM)[3],以密码技术为支持、安全操作系统为核心,如图1所示。

图1 可信计算平台组成

一般来说,可以将可信计算平台大致划分成三个模块:

① 由嵌入主板上的 TPM 和可信 BIOS组成的可信硬件层;

② 基于安全增强操作系统的可信基础平台层;

③ 由一些安全应用组件组成的可信应用层。

也就是说,可信计算平台涵盖了基础硬件、基础软件平台以及各种丰富的安全应用[4]。

2 通信模型描述

可信计算平台技术能从终端上保障安全,无疑是消除了内部威胁。这种终端的可信还要通过一定的方式扩展到网络中,也就是远程的实体要通过一定的方式确认这个终端是一个可信的平台并与其通信。本文描述的模型是两个可信计算平台之间是如何相互认证,建立安全信道进行通信的。简单的通信模型如图2所示。

图2 可信计算平台间的通信模型

在这个模型中,包括了三类实体:可信计算平台、可信CA和普通平台。

可信计算平台是从硬件到操作系统再到应用都可信的一个系统,其中在主板上嵌入的 TPM 是平台的关键。每个可信计算平台都拥有一张由可信CA颁发的身份证明证书,即AIK证书。该证书在模型中用来标识每个可信计算平台的身份。

CA是PKI机制中的核心,负责证书的颁发、吊销等。在可信计算平台上构建的CA,在这里称之为可信CA。由于TPM可以实现存储的物理隔离,就可以保证CA私钥的安全性。这里假设所有可信计算平台的AIK证书都是由可信CA颁发的。

普通平台就是普通的PC终端,是没有嵌入TPM模块的,没有可信CA颁发的AIK证书。

可信计算平台之间的认证包括两个方面的内容:

① 通过AIK证书相互认证对方的身份,看是否可信计算平台;

② 确认对方身份后,再相互评估对方平台的状态,再决定是否授予访问权限。

可信计算平台与普通平台之间,由于普通平台没有AIK证书,在认证刚开始可信计算平台就可以确定对方是不可信的,根据具体情况可以制定策略来继续或是终止与它的通信。

3 AIK证书

可信计算平台通过 AIK证书来标识自己的身份,AIK证书相当于是通信中的一张身份证。AIK证书与存在于TPM中的AIK私钥是相对应的,AIK私钥用来签名由TPM产生的数据,既证实数据的来源又保证了数据的不可抵赖。

AIK证书格式定义完全遵循 X.509 V3标准。TPM Identifier是 TPM 在网络中的唯一标识,每个平台的 TPM Identifier 都是唯一的。Key Type说明了证书所对应密钥的类型,众所周知TCG定义的TPM中可能有七种不同的密钥。除了身份证明密钥(AIK Key)以外,还有签署密钥、绑定密钥等。Key Usage说明了这个密钥的用途。AIK密钥是用来签名由TPM产生的数据的。

AIK证书是CA颁发给可信计算平台的。AIK证书的获取过程如图3所示。

图3 获取AIK证书的过程

① TPM 中有个密钥产生器是可以产生 RSA公私钥对的。首先,可信计算平台的拥有者可以用 TPM 的密钥产生器产生一对RSA密钥对,并将私钥存放在TPM相应的位置;

② 再将AIK公钥、TPM ID和平台的一些相关信息等提交给可信CA,请求颁发一个AIK证书;

③ 可信CA验证提交请求的真实性后,颁发一个由CA私钥签名的AIK证书给提交请求的平台;

④ 最后,平台将CA颁发的AIK证书存放到TPM中。

在实现过程中,每个可信计算平台都会向可信CA申请一个AIK证书,用来在网络通信中证实自己的身份。AIK私钥存放在 TPM 中以保障不被盗取。申请的过程可以是通过网络在线申请,也可以去CA机构亲自领取。

4 认证协议设计

基于可信计算平台的认证协议设计的目的是先完成相互的身份的认证,也就是先判断对方是否是可信计算平台,在身份认证完成以后再互相鉴别了对方平台环境配置[5]。通过这样的两步认证可以大大提高在网络环境下通信的安全性。认证协议最后还要实现平台间会话密钥的协商。

假设有A和B两个可信计算平台,它们都有内嵌的TPM。在协议中有关密码运算的功能都可以由TPM完成来保证安全性,如随机数产生、对称密钥产生、加解密运算、ML和PCR值的报告等。在这个协议设计中,A和B都已经向CA申请了AIK证书,且网络中能颁发可信计算平台AIK证书的CA是唯一的。在通信开始之时,相互交换AIK证书,并验证证书的有效性和对方确实是此证书的拥有者。这里的认证是双向的,A要认证B的身份和状态,B也要认证A的身份和状态。因为AIK证书是互相交换的,所以可以不涉及CA一方的参与,验证证书的时候只需用CA的根证书及相关信息在本地来验证就可以了,减轻了CA通信的负担。下面是用来描述协议的符号:

IDi:平台i的TPM ID号;Certi:平台i的AIK X.509证书;ri:由平台i产生的随机数;

PKi : 平台i的AIK公钥;PVi :平台i的AIK私钥;MLi:平台i的度量日志(ML);

PCRi:平台i的PCR值;T :时间戳;Kij:平台i和平台j之间的通信对称密钥;{}K:代表用密钥K来加密{}中的内容。

可信计算平台认证协议的流程设计如图4所示。协议的具体描述如下:

① 平台A想和平台B通信,先由A向B发一条消息M1=IDA,CertA,其中IDA是可信计算平台A的TPM ID号,CertA是平台A的AIK证书。平台A以此消息向B提出通信请求;

② 平台B收到A的M1以后,先看IDA与CertA中的ID符不符合,再验证证书是否过期和是否是由可信CA颁发的。以上验证都通过以后,平台B响应A的请求,向A发送一条回复消息M2={rB}PKA,IDB,CertB。此消息中也包括了B的TPM ID和B的AIK证书,同时B为了验证A确实是CertA的拥有者,B产生以随机数rB,并用CertA中的公钥加密这一随机数;

③ 平台A收到M2后,和B做同样的验证IDB和CertB,验证了CertB有效以后,用自己的AIK私钥PVB解密而得到由B发过来的随机数rB,再对照旧随机数库看rB是否发过以防止重放攻击。A产生另一随机数rA,再用CertB中的B的AIK公钥PKB加密rA和rB这两个随机数,最后用自己的AIK私钥PVA对这一消息签名得到M3,将M3发送给B;

④ 平台B先后用A的AIK公钥PKA和自己的私钥PVB解密M3,得到rA和rB两个随机数。B先验证M3中的rB是否是自己发出的那个随机数,然后也对照随机数库看rA发过以防重放攻击。如果以上验证过程都通过的话,B会产生一个消息M4={{rA}PKA}PVB发送给A;

⑤ 平台A收到M4后,先后用B的公钥PKB和自己的私钥PVA解密M4,得到rA。这时,A会看这个rA是否是自己发给B的相等。若相等,则A对B的身份证明通过。到此为止,平台A和平台B相互的身份认证已经完成,能确认通信的对方是可信计算平台。接下来要进行平台间相互的状态验证。A用PVA签名MLA和PCRA,再产生一会话对称密钥KAB,整个消息用PKB加密得到M5发给平台B;

⑥ B收到M5后,先用自己私钥PVB解密,得到会话密钥KAB和由A的私钥签名的平台状态信息。B将如4.3节中描述的那样来评估A目前的运行状态,看是否与预期相符合。如果A的状态与预期符合,B将进行下一步通信,将自己的平台状态信息MLB和PCRB用PVB签名,连同用KAB加密的时间戳T一起,用A的公钥加密得到M6发送给A;

⑦ A同样要验证M6中的B的平台状态是否和预期相符,并用KAB解密{T}KAB,看是否是刚发来的消息,同时也验证B是否已经收到了自己发送的 KAB。最后 A向 B发送M7={T+1}KAB;

⑧ B验证M7,确认A和B之间的安全会话通道已经建立起来了。

图4 可信计算平台认证协议流程

5 结语

国内外对于可信计算和可信计算平台的研究越来越广泛。安全存储、身份认证和完整性度量、存储和报告都是可信计算平台需要提供的基本功能。对于网络中的两个可信计算平台都有唯一的标识,如何通过协商来建立可信连接,从而将本机的可信扩展到网络中,本文提出了一套认证机制。基于可信计算平台的认证机制设计的出发点是,在利用PKI认证机制的基础上,实现平台身份和平台状态的双重验证。AIK证书是认证实现的基础,可信 CA是整个认证系统中的核心,负责所有可信计算平台的身份认证证书的颁发。

[1] 王新成.可信计算与系统安全芯片设计研究[DB/OL].(2005-05-07)[2010-03-12]. http://blog.sina.com.cn/s/ blog_538eef960100 csx7.html.

[2] ISO/IEC 11889-1-2009.Information technology-Trusted Platform Module[DB/OL] (2009-05-15) [2010-03-12]-Part1: Overview.http://www.trustedcomputinggroup.org/home.

[3] 樊亚军,刘久文.TPM安全芯片设计与实现[J].信息安全与通信保密,2007(06):136-137,140.

[4] 沈昌祥.可信计算平台与安全操作系统[J].网络安全技术与应用,2005(04): 44.

[5] 孙春燕,池亚平,方勇.基于TPM的Needham-Schroeder协议[J].信息安全与通信保密,2006(11):82-84.

猜你喜欢

私钥公钥密钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
幻中邂逅之金色密钥
基于改进ECC 算法的网络信息私钥变换优化方法
密码系统中密钥的状态与保护*
一种基于混沌的公钥加密方案
TPM 2.0密钥迁移协议研究
一种基于虚拟私钥的OpenSSL与CSP交互方案
一种对称密钥的密钥管理方法及系统
P2X7 receptor antagonism in amyotrophic lateral sclerosis