Kerberos协议在可信平台下的设计与实现

2013-09-08 10:18温博为吴振强张丽娟
计算机工程与设计 2013年6期
关键词:完整性票据密钥

温博为,吴振强,张丽娟

(陕西师范大学 计算机科学学院,陕西 西安710062)

0 引 言

Kerberos协议是美国麻省理工学院提出的基于可信第三方的认证协议[1]。协议使用对称密钥实现通信数据的加密以及通信实体的身份认证。而协议本身存在以下的缺陷[2,3]:①客户端的完整性存在隐患,一旦客户端被病毒感染,完整性遭到破坏,将使得认证服务器AS(authentication server)和应用服务器S(server)处于被攻击的危险之中;②密钥的存储,协议的安全性,保密性完全依赖于对称密钥的安全存储。一旦密钥遭到窃取或是破坏,那么整个协议的安全性将无法保障;③AS与客户端C(client)会话密钥是由C的口令生成,因此协议存在口令猜测攻击的危险。

文献 [2]提出了一种利用公钥体制改进Kerberos协议的方法。将公钥体制引入Kerberos协议,解决了缺陷③文献 [3]提出用TPM (trusted platform module)增强Kerberos协议的安全性,将完整性度量引入Kerberos协议,从技术上提出了一套解决客户端的完整性的问题,但方案中存在使用AIK (attestation identity keys)加密的错误,并且方案如何实现,实现有何难度,都没有具体的研究。

随着可信计算平台的推广与普及,未来基于可信平台的安全认证协议的实现技术将是一个非常重要的研究内容。论文以可信Kerberos安全协议的加固为例,设计了可信平台下的Kerberos协议安全加固方案,并在Linux环境下根据 TCG (trusted computing group)发布的 TPM V1.2规范搭建了可信计算平台。通过可信平台下客户端完整性的度量和验证,以及签名密钥的生成、存储和使用,对加固方案进行了实现与测试。结果表明,可信平台下的Kerberos协议能够保证网络传输的安全性,同时也能保证网络终端的完整性和密钥的安全性。使得整个协议认证过程从网络传输到终端构成了一个完整的安全框架。

1 可信计算与可信平台

1.1 可信计算

TCG对可信计算的定义是:如果一个实体是可信的,那么它的行为总是以期望的方式、朝着预期的目标运行[4]。TCG提出的可信计算平台规范能够提供可信计算服务的计算机软硬件实体,它能够保证系统的可靠性、可用性以及信息和行为的安全性[5]。可信平台至少需要提供以下3个特征[6,7]:①完整性:可信的测量描述平台配置的度量值;②数据和密钥的存储和保护:数据和密钥以只读的方式存储在TPM中以确保数据和密钥的安全;③真实性:通过AIK证书以及平台证书验证平台的真实性。

通过对这些特征的分析可以看出,可信计算平台可以证实平台和数据的完整性和真实性、能够保护关键数据以及密钥的安全性[8]。可信平台从启动开始,以可信度量根为基础对平台的硬件和软件进行度量,用户获得这些度量值并把它和从可靠环境下获得的度量值比较,就能判断平台是否可信。

1.2 可信平台技术原理

可信平台技术原理如图1所示。最底层的是TPM硬件芯片。TPM是可信计算平台的核心,平台所有的密码相关的计算、存储、以及完整性度量等功能,全部由TPM完成。TPM加载了驱动程序后,通过TPM接口与上层的TCG软件协议栈Tss(TCG software stack)进行交互。其中Tss自上而下包括TSP、TCS以及TDDL。顶层的应用程序通过调用TSP接口与Tss交互,而Tss则向下通过指令的方式实现TPM功能。

图1 可信平台技术原理

根据上述原理,论文在Linux环境下,用TPM模拟系统 (TPM emulator)来模拟最底层的TPM硬件。同时使用一款开源的基于JAVA编写的jTss作为与TPM交互软件协议栈[9]。JAVA 语言通过调用jTss中 TSP接口[10],实现了向TPM发送指令,并调取了TPM部分功能。

2 基于TPM的Kerberos协议安全加固方案

目前广泛使用的Kerberos V5协议认证过程分为六步,其中C是客户端,AS是认证服务器,TGS是票据服务器,S是应用服务器,协议的参与方如图2所示。

协议的具体过程是:①为了访问S,C先把信息发送给AS;②AS核对C的信息后产生票据,用对称密钥加密后发送给C;③C把票据1和身份信息发送给TGS;④TGS验证C的票据1和身份后返回票据2给C;⑤最后,C将票据2和身份信息发送给S;⑥S验证票据2及身份,返回一个是否允许服务的结果。

从上述过程中可以看出Kerberos V5协议最大的问题是缺乏对计算机网络终端的保护,密钥的安全存储以及缺少不可否认机制。因此,论文引入可信计算理论,设计了可信平台下的Kerberos协议安全加固方案。方案加入了对C完整性度量与验证,使用TPM产生和存储签名密钥,并将数字签名引入票据中。修改后的协议流程如下:

其中:C,S,AS,TGS分别表示客户端,应用服务器,认证服务器,票据服务器。IDc,IDs,IDtgs分别表示C,S,TGS的身份标识,ADc,ADtgs表示C和TGS的网络地址。TS1-TS5表示时间戳。Kc,as,Kas,tgs,Ktgs,s是 C与 AS,AS与TGS,TGS与S的共享密钥。Kc,tgs,Kc,s表示 AS为C与TGS,S通信生成的密钥。Lifetime是票据的有效期。

从上述流程可以看出,论文主要对原Kerberos协议做出了3处改动:①在过程 (1)中,加入signskc(PCR),即读取客户端PCR值,并使用签名密钥对其签名;②过程(2)中,将原协议中使用口令生成的对称密钥替换为客户端C的公钥进行加密操作;③在过程 (2)、(3)、(4)、(5)的票据中加入相应的数字签名。从这3处改动可以看出,修改后的Kerberos安全加固方案比原协议增加了对客户端C的完整性验证,增强了对密钥的保护以及不可抵赖性。下面将对加固方案的实现做具体的分析。

3 技术实现

为了验证Kerberos协议安全加固方案的可行性,论文在Linux系统下,搭建了可信计算平台。通过调用可行平台的功能接口,实现了协议的各个流程。由于协议的6次交互实现具有相似性,因此论文以协议交互流程中 (1)、(2)为例,给出详细的实现代码,流程 (3)-(6)则不再赘述。最后论文给出整个加固方案中的3个关键函数的代码。

3.1 客户端C与认证服务器AS交互过程

首先,客户端读取TPM中PCR 0-15的值,并且通过TPM产生签名密钥,使用签名密钥的私钥给PCR签名。将自身ID,票据服务器ID,时间戳以及签名发送给认证服务器AS。整个过程实现代码如下:

public void Client_to_AS ()//客户端发送数据给AS函数

AS收到C发送的数据后,先验证签名并且比对PCR值,若验证成功,则产生票据并使用C的公钥加密C与TGS的会话密钥 Kc,tgs,发送给C。整个过程实现代码如下:

C收到AS发送的数据后,用私钥解密信息,得到与TGS通信的会话密钥。至此,C与AS交互过程结束。

3.2 关键技术分析与实现

在整个协议实现中,有3个涉及到可信计算机平台技术的函数,这些函数是协议实现过程中的关键技术。下面详细介绍交互过程中的3个关键函数,同时也是论文创新之处。这3个函数分别为:读取PCR值,生成签名密钥并产生签名,验证签名。

4 身份认证登陆系统功能与测试

为了演示与测试Kerberos安全加固方案的可行性和可靠性,论文以安全加固方案为核心,设计了并实现了一套身份认证系统。

如图3所示,在分别输入认证服务器ip和应用服务器ip后,点击 “登陆”按钮,系统就会按照输入框中所输入的ip地址开始连接服务器。整个认证过程按照Kerberos协议安全加固方案执行,并将认证结果显示在底部的文本框中。

若连接成功,并且验证身份或票据成功,则成功登陆。若中间某个步骤出现问题,则客户端将错误信息显示在底部文本框中,并且断开连接。

5 结束语

论文使用可信平台技术,对Kerberos V5协议进行改进,提出了Kerberos安全加固方案,并且在可信计算平台环境下使用JAVA语言,通过调用jTss软件协议栈的TSP接口,实现了该方案。通过对客户端的完整性验证,以及签名密钥的生成和使用,保证了终端的完整性以及密钥的安全性,增加不可否认性。下一步将引入身份认证密钥AIK (attestation identity keys)和 绑 定 密 钥 (bindkeys),使得协议具有验证真实性的功能,进一步保证了数据,密钥在传输过程中的安全性。

图3 身份认证登陆系统

[1]Neuman C.RFC 4120the kerberos network authentication service (v5)[s].2005.

[2]SUN Congyou,XU Guosheng,ZHONG Shangqin.A kerberos authentication scheme based on public key[C]//Wuhan:8th China Communication Society Academic Conference,2011:601-604 (in Chinese).[孙从友,徐国胜,钟尚勤.一种基于公钥密码体制的Kerberos认证方案 [C]//武汉:第八届中国通信学术年会,2011:601-604.]

[3]LIU Ping,CHI Yaping,FANG Yong.Improving kerberos protocol security with TPM [J].Computer Engineering and Design,2007,28 (18):4351-4353 (in Chinese). [刘平,池亚平,方勇.用TPM增强Kerberos协议的安全性 [J].计算机工程与设计,2007,28 (18):4351-4353.]

[4]ZHANG Huanguo,ZHAO Bo.Trusted computing[M].Wuhan:Wuhan University Press,2011:17-22 (in Chinese).[张焕国,赵波.可信计算 [M].武汉:武汉大学出版社,2011:17-22.]

[5]SHENG Changxiang,ZHANG Huanguo,WANG Huaimin,et al.Research and development of trusted computing[J].Science in China:Information Science,2010,40 (1):139-166 (in Chinese).[沈昌祥,张焕国,王怀民,等.可信计算的研究与发展 [J].中国科学:信息科学,2010,40 (1):139-166.]

[6]ZHANG Huanguo,LUO Jie,JIN Gang.Development of trusted computing research [J].Journal of Wuhan University(Physical Edition),2006 (5):513-518 (in Chinese).[张焕国,罗捷,金刚.可信计算研究进展 [J].武汉大学学报(理学版),2006 (5):513-518.]

[7]ZHAO Jia.Research on key technology of trusted computing authentication[D].Beijing:Beijing Jiaotong University,2008(in Chinese).[赵佳.可信认证关键技术研究 [D].北京:北京交通大学,2008.]

[8]CHEN Jun.Security analysis of trusted platform module and application[D].Beijing:Institute of Computing Technology Chinese Academy of Sciences,2006 (in Chinese). [陈军.可信平台模块安全性分析与应用 [D].北京:中国科学院计算技术研究所,2006.]

[9]IAIK.Trusted computing for the Java (tm)Platform [EB/OL].[2011-09-16].http://trustedjava.sourceforge.net/.

[10]WANG Xingkui,PENG Xinguang.The trusted computing environment construction based on JTSS [C]//Jilin:International Conference on Mechatronic Science Electric Engineering and Computer,2011 (8):2252-2256.

猜你喜欢
完整性票据密钥
幻中邂逅之金色密钥
石油化工企业设备完整性管理
密码系统中密钥的状态与保护*
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
2016年11月底中短期票据与央票收益率点差图
2016年10月底中短期票据与央票收益率点差图
2016年9月底中短期票据与央票收益率点差图
精子DNA完整性损伤的发生机制及诊断治疗