APP下载

改进Kerberos身份认证协议在配送物资跟踪系统中的应用

2011-03-19黄瑞铭

网络安全技术与应用 2011年3期
关键词:票证读写器私钥

黄瑞铭

中海油田服务股份有限公司 河北 065201

0 引言

随着中海油田服务股份有限公司国际业务的拓展,在现有条件下,积极推进企业现代物流体系建设,是提高中海油服后勤保障能力的一条有效途径。建设配送物资跟踪的核心运转系统,对通用物资库所有入库和后期配送的物资实现信息跟踪,能全程查询到物资配送过程中所对应关键节点信息成为企业信息化建设的重要任务。

在系统实施过程中,如何确保所传递数据的真实性是系统重要安全问题之一。本系统尝试采用RFID技术进行相关研究,读写器和标签之间的认证是保证数据安全性最重要手段之一。该数据加密密钥若在网络中以明文的形式传输,很有可能被不法分子截取,进而获取双方传输的数据,或者伪装成一方,与另一方通信。这将自然而然的涉及到密钥存储和管理的问题。基于上述问题,在查阅相关资料的基础上,发现国内外学者在RFID身份认证的过程中都是使用简单的 Hash单向函数来实现,本文将提出一种基于可信第三方—KDC(Key Dispatch Center密钥分配中心)的认证方案,提出将Kerberos协议应用于RFID系统。将改进Kerberos协议,以实现读写器与标签之间的双向认证,进而保证数据的真实性。

1 原始Kerberos协议的不足

尽管Kerberos身份认证协议有其巨大的应用优势,但是要将它应用于配送物资跟踪系统中,仍存在一些缺陷,不足之处主要体现在以下几个方面:

(1)密钥交换问题

由于Kerberos身份认证采用的是对称加密机制,加密和解密使用的是相同的密钥,使得双方交换密钥时的安全性难以保障。一旦攻击者截获密钥,窃听、篡改信息就变得易如反掌。因此,发送方如何安全、高效地将密钥发送到接受方式Kerberos协议难以解决的问题。

(2)密钥管理问题

随着用户数量的增加,使得密钥管理更复杂。不同客户端与服务器之间通信使用不同的密钥,这致使服务器端存储的密钥数量非常多。这在密钥管理和维护方面带来很大的麻烦。

(3)共享客户端口令的局限性

Kerberos服务器与客户端共享的服务会话密钥是客户端的口令字,而服务器在响应时不需验证客户端的真实性,只是直接假设只有合法客户端拥有了该口令字。如果攻击者截获该响应消息,就很容易形成密码攻击。

(4)数字签名问题

Kerberos协议采用的对称密码体制中通信双方拥有相同的密钥,所以接受方可以伪造签名,发送方也可以否认发送过某消息,即存在鉴别认证和不可否认性的困难。尤其在RFID系统中,存在大量的陌生标签和读写器,让这些互不认识的设备进行安全可信的信息传递是其急待解决的问题。

2 改进的 Kerberos协议应用于配送物资跟踪系统

基于上述问题,本文提出的改进的Kerberos协议中,使用公钥密码体制去维护KDC与客户端之间,客户端与服务器之间传输数据的安全性。密钥分发中心KDC分别用客户端和服务器的公钥去加密服务会话密钥,由于加密后的服务会话密钥只有用各自的私钥才能解密,进一步增强了双方通信的安全性。同时,公钥密码体制给密钥的管理和维护方面带来很大的方便。

用公钥密码的理念来改进Kerberos协议,就能有效克服上述4点缺陷,让Kerberos协议更适合配送物资跟踪系统这种及时性要求高、标签的运算和存储资源有限、安全性风险大的特殊环境。以下将详细描述改进后的协议流程。

2.1 协议初始化

密钥分配中心(KDC)为可信的第三方,假设读写器能与KDC通信,并能够从KDC处获取票证许可票证(TGT)和访问某特定服务器的服务票证(ST)。同时,KDC的列表中存储着所有读写器和标签的公钥信息,分别用 Rpubkey和Tpubkey表示。读写器的私钥存于读写器的存储器中,用Rprikey表示;而标签的私钥存于标签的存储器中,用Tprikey表示。读写器中存储着KDC的公钥,用Rpubkey表示,便于读写器对KDC发送的消息进行认证和识别。读写器的基本信息用Rinfo表示,用于后续认证。

2.2 协议认证过程

(1)读写器向KDC请求票证许可票证TGT

读写器向密钥分发中心(KDC)发送一个Kerberos身份认证服务请求,以期获得票证许可票证TGT。该请求包含读写器名Readername、请求TGT所需的服务信息Rinfo以及使用读写器的公钥加密的时间戳。

即Request1=Readername||Rinfo||ERpubkey(Timestamp)

改进Keberos协议的应用环境是在多标签、多读写器环境中,目的在于防止非法读写器读取到标签的内容,在众多的读写器中至少能保证一台读写器是安全的,而标签内存储的不可能是货物详细的信息,需要跟后台数据库交互才能完成信息获取,此处的密钥分发中心(KDC)完全可以设置在部署数据库的上位机上。

基于KDC分配密钥的巨大优势在于密钥是实时分配,不同的时刻、不同的通信双方之间使用的密钥是不同的,完全有KDC决定,这极大保障了RFID系统的安全性,其次通信过程中的密钥无需在初始化阶段固定在标签中,这就可以防止通过分析标签结构来截获密钥,同时减少系统部署的负担。

(2) KDC向读写器发送加密的TGT和登录会话密钥Lskey

KDC先用Rprikey解密 ERpubkey(Timestamp)得到Timestamp,判定该标签是否有效,若有效,则该读写器是合法的。之后,利用该读写器的相关信息生成登录会话密钥 Lskey,再用读写器的公钥将其加密得到 ERpubkey(Lskey),用KDC自己的私钥加密TGT得到 EKprikey(TGT)。

最后,将Response1 = ERpubkey(Lskey)||EKpubkey(TGT(Rinfo))发送给读写器。

(3)读写器向KDC请求访问特定标签的服务票证ST

读写器用自己的私钥解密 ERpubkey(Lskey),得到登录会话密钥Lskey,并用KDC的公钥解密 EKpubkey(TGT(Rinfo)),得到TGT。之后,读写器向KDC发送访问某特定标签的请求。Request2=Readername ||ELskey(tag)||TGT||Tagid。其中,tag为认证符,用于后续的认证过程,Tagid为读写器想访问标签的ID。

严格来说,读写器与标签的通信是广播方式完成的,它会将请求发送给识别范围内所有的标签,正因如此,在开放信道内才有保证其数据安全的必要性。这中间又分两个步骤,首先是获取所有标签的ID,读写器用轮询的方式查看有无新标签进入,在标签进入读写器的识别范围内,会响应读写器,并将ID返回给它(ID只是标签的名字,不会包含隐私信息,同时也是做到点对点通信所必须的,而标签的隐私数据如货物价格、产地和EPC码等,是通过AES加密后传输的),这一点类似计算机网络里的 ARP,当一台计算机加入到一个新的网络之后会广播其MAC地址,告诉所有主机它的访问地址,这一步是公开的,但更深层次的数据获取等操作是需要双方认证的;其次是访问某特定 ID的标签,比如读写器要访问001,就会广播Read-001消息,众多标签在接受到这个消息后,会根据自身的ID是否是001,还有该读写器是否具有访问权限来决定响应与否。

在安全行要求及其严格的情况下,标签 ID也是不允许明文传输的,可以通过随机Hash-Lock协议对ID进行加密:标签在收到读写器的请求Query后,生成一个随机数R,并计算其中,IDk为标签ID标识,并将(R,数据对送至后台数据库。数据库查询满足的记录。若找到则将对应的IDj发往标签,标签比较与是否相同,最后确定是否认证通过,这种方式在获得标签 ID安全性的同时,自然会带来计算复杂性,每访问一个标签都意味着读写器遍历一次数据库。

(4)KDC发送加密的服务会话密钥Sskey和服务票证ST

KDC收到Request2后,先用Lskey解密ELskey(tag),得到认证符tag,并做初步判定,若合法,则继续后续的验证。从TGT中提取读写器的相关信息,并使用该信息创建访问相应标签的服务会话密钥 Sskey。之后,KDC用 Lskey加密Sskey,得到

ELskey(Sskey);用相应标签的公钥加密服务票证ST,得到 ETpubkey(ST)。

响应消息Response2 =ELskey(Sskey)||ETpubkey(S T)

(5)读写器向特定标签发送访问请求

读写器接收Response2后,先用Lskey解密ELskey(Sskey),得到服务会话密钥 Sskey,该密钥用于后续读写器与标签之间通信时加密数据。接着,读写器向标签发送访问请求Request,Request中包含用Sskey和ST加密的身份认证信息,以及从KDC处接收到的 ETpubkey(S T)。

即Request =EST(ESskey(Rinfo||Timestamp))||ETpubkey(S T)

(6)读写器与标签进行相互认证

标签先用自己的私钥解密 ETpubkey(S T)(非对称密码体制中的私钥解密的过程非常简单,都是与、或、非、异或、移位之类,易于硬件实现,在查阅资料的过程中,已经有人将RSA、椭圆曲线等非对称加密算法应用于RFID读写器标签通信的过程中,因此私钥解密应用于RFID系统身份认证这种操作频度不高的行为上是可行的),得到ST;再从ST中分离出服务会话密钥 Sskey,利用 ST和 Sskey解密EST(ESskey(Rinfo || Timestamp)),从而得到时间戳Timestamp。再将解密认证符得到的读写器信息Rinfo与ST中分离出的做比较,若相同,则该读写器就是合法的,认证通过。

接着,标签利用 Sskey加密 Timestamp后得到ESskey(Timestamp),(此处的 TimeStamp是上一步中从读写器发来的信息中分离出来的,相当于随机数的作用,加入时间因素后随机性相应增强,安全性提高)并传回给读写器。读写器使用Sskey解密后获取时间戳。若此时间戳与其初始发送的相同,则该标签正是读写器想访问的,认证通过。

Kerberos认证协议的作用在于身份认证,如同登录一些系统需要输入用户名密码,在确认身份无误之后,而身份认证过程操作频度不大、实时性不强、但安全要求非常高,所以效率并非考虑的主要因素,Kerberos协议主要应用于计算机局域网组网时网内主机认证,抽象来看,应用环境类似RFID系统,改进之后的认证过程并没有延续原始协议复杂的消息加密体制,而是常用公钥加密、私钥解密,附加简单逻辑操作,适合RFID这种计算资源有限的环境,效率也是可以保证的。

3 结论

通过以上的改进协议应用于配送物资跟踪系统的测试环节中,取得了预计的效果。说明用公钥密码的理念来改进Kerberos协议,就能有效克服传统的Kerberos协议的4点缺陷。具有一定的价值。

[1]林责彬,王永华,詹宜巨.一种基于随机序列的RFID安全协议[J].计算机工程.2008.

[2]陈克力,郭春生.一种双层/双向认证的随机Hash锁RFID安全协议[J].电子技术应用.2008.

[3]李章林,卢桂章,辛运帏.重加密技术在RFID安全中的应用[J].计算机工程.2008.

[4]裴友林,杨善林.基于密钥矩阵的RFID安全协议[J].计算机工程.2008.

猜你喜欢

票证读写器私钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
宁海“票证的故事”
张宝红:中国票证拍卖第一人
一种基于虚拟私钥的OpenSSL与CSP交互方案
基于视频抓拍读写器的高速公路防倒卡研究
基于随机时隙的RFID读写器防冲突方法
基于 LMAP和 EAP-SAKE的 RFID系统安全解决方案
基于Intel R1000的超高频RFID读写器设计