陈瑞鑫,邹传云
(西南科技大学信息工程学院移动计算研究室,四川绵阳621010)
最近几年,随着互联网、无线通信技术及移动设备的发展,移动商务被越来越多的人所接受,RFID也成为这一新产业的技术热点。如果把RFID技术应用到移动商务上来,固定式读写器将不能满足这一新的需求,必须采用移动 RFID技术。有了移动RFID,人们可以随时随地得到附有RFID标签的产品的信息及相关身份认证,为移动商务提供了更大的发展空间,这一技术的应用,不仅提高了工作效率,而且为人们的日常生活带来了很大的便利。然而,移动RFID的广泛应用使其安全隐私面临巨大的挑战,攻击者可以通过移动读写器与后台数据库之间的不安全信道截获信息并解密以获取用户信息。总之,在未来为移动RFID系统提供一个安全的通信协议以增强隐私保护和数据安全将是至关重要的。
移动RFID网络是指利用具有读写器模块的移动终端通过GPRS等移动网络访问EPC网络获取相关信息,主要由移动RFID系统和EPC网络组成,包含的基本组件有:
①EPC标签:存有EPC等信息,作为被附着物品信息的载体。EPC由4部分组成:编码类型Header、企业代码Manager number、商品类别Object class以及单品序列号;
②移动RFID:具有阅读器功能模块的智能移动终端,如:手机、PDA。移动RFID与EPC标签组成移动RFID系统;
③移动网:可信任的网络实体,为移动RFID用户提供安全基础上的传输服务。移动网可以是GPRS、CDMA及3G网络等;
④移动RFID中间件(M-RFIDMiddleware):中间件是一类软件的统称,实时地处理读取的信息和事件、发出告警信息,为EPC-IS等处理原始数据;
⑤EPC-IS:是处于EPC网络中的一类数据库,为移动RFID用户提供相关信息服务,还可以对访问申请进行认证、授权等操作;
⑥ONS(Object Naming Service):是 EPC网络中的地址翻译服务器,类似于Internet网络中的DNS。ONS对标签中的EPC编码进行网络地址翻译,获得相应的IS网络地址。
在移动RFID网络中存在的安全问题主要还是假冒与非授权服务,特别是在EPC-IS提供基于EPC的应用服务中。
首先,在移动RFID网络中,读写器与后台数据库之间不存在任何固定物理连接,通过射频信道传送其身份信息,攻击者截获一个身份信息时,就可以利用这个身份信息来假冒该合法读写器的身份入网。
其次,通过复制他人读写器的信息,多次顶替别人消费。复制攻击实现的代价不高,且不用任何其他条件,所以经常成为攻击者最常用的手段。
最后,移动RFID网络还存在非授权服务、否认服务与拒绝服务等攻击。当移动RFID手机在非授权的情况下获得标签的信息或者访问EPC-IS,就称为非授权服务;否认服务也称抵赖服务,即在获得相关服务之后对服务的不承认性;而拒绝服务则往往会导致EPC-IS等服务器因资源的耗尽而瘫痪。
在分析了移动RFID网络构成及其安全隐患后,提出了一种基于相互认证的安全协议,该协议使用椭圆曲线加密体制(ECC)对信息进行签名验证,最终实现移动读写器与后台数据库之间的安全通信。
椭圆曲线加密体制(ECC)是一种公钥密码系统,具有一般的公钥密码系统的特点,所以具有2个密钥:公钥和私钥。在加密与解密的过程中,分别使用不同的密钥,想要由加密密钥推出解密密钥在计算上是不可行的,作为一种比较新的技术已逐渐被人们用作基本的数字签名系统,椭圆曲线签名系统是建立在求解离散对数困难性的基础上,它具有安全性高,密钥短,运行速度快等特点。
在椭圆曲线密码体制(ECC)中,利用了某种特殊形式的椭圆曲线,即定义在有限域GF(p)上的椭圆曲线,其方程如下:y2=x3+ax+b(mod p),其中p是素数(p>3),且它们满足:4a3+27b2(mod p)≠0,x、y、a、b∈GF(p),则满足上述条件的点(x,y)和一个无穷点O就组成了椭圆曲线Ep(a,b)。
在此协议中,将构造椭圆曲线Ep(a,b)∈GF(p),由此曲线产生 B1、B2和 G 3个不同的基点,它们的阶是 n。其中 Ep(a,b),B1、B2和 G 都是公开信息。
在对此安全协议的工作流程进行详细阐述之前,首先介绍一下在此协议中用到的一些系统标识:
Ek(M):表示用密钥 k对消息M进行加密;Cert(I):表示对消息 I进行数字签名;
H():表示单向的Hash函数;IDr:表示移动RFID读写器的ID值;
IDs:表示后台数据库的ID值;kauth:表示移动读写器与后台数据库之间通信密钥;
kr:表示移动读写器的密钥;ks:表示后台数据库的公钥;
kst:表示后台数据库与第3方服务器共享密钥;
kt:表示第3方服务器的公钥kt=i1B1+i2B2,式中,i1、i2∈[0,n-1];
kti:表示第3方服务器的私钥 kti=(i1,i2),其中(i1、i2)与 kt中的相同;
n1、n2:分别表示为2个随机数;
Pc和Rc:表示由椭圆曲线加密算法产生的一组密钥对 Pc=c1B1+c2B2,Rc=(c1,c2),其中 c1、c2是在[0,n-1]范围内的随机取值;Pi表示移动读写器随机产生的一个随机数;
t1、t2、t3:表示移动读写器产生的瞬时时间戳;
t1last:表示第3方服务器与移动读写器之间最后一次成功通信的时间戳;
t2last:表示后台数据库与移动读写器之间最后一次成功通信的时间戳。
通过该安全协议,要达到的目标是通过第3方服务器(以下简称服务器)所提供的密钥使移动RFID读写器(以下简称读写器)与后台数据库(以下简称数据库)完成相互认证建立合法通信,该协议过程如图1所示。
图1 基于相互认证的移动RFID安全协议
如图1所示,具体流程如下:
(1)读写器→服务器:Ekt(IDr||IDs||t1||kr)
首先读写器用服务器的公钥 kt对自身的 IDr,目标数据库的 IDs,当前时间戳t1和读写器的密钥kr进行非对称椭圆曲线加密[3],生成密文Ekt(IDr||IDs||t1||kr),并将其发送至服务器。
(2)服务器→读写器:Ekr(Rc||Cert(Rc));服务器→数据库:Ekst(P|cCert(Pc))
服务器收到密文后,用私钥kti进行解密获取密文内容,并在自身的数据库中查找是否存在 IDr和IDs,若存在则通过身份验证,然后对 t1与t1last进行比较,若t1≤t1last,则表明此消息在此之前已经收到过,服务器停止应答;若t1>t1last则表明了此消息有效,将时间戳t1last更新为 t1。时间戳更新完成后,服务器根据椭圆曲线加密体制产生一组密钥对Rc=(c1,c2),Pc=c1B1+c2B2,其中(c1,c2)是在[0,n-1]范围内的随机取值,为了对Rc、Pc进行数字签名,服务器产生一个临时值 Rt=j1B1+j2B2,其中(j1,j2)是在[0,n-1]范围内的随机取值,最后服务器利用私钥kti按照椭圆曲线加密体制(ECC)对 Pc,Rc分别进行数字签名[1,5]生成Cert(Pc),Cert(Rc),过程如下:
签名生成后,服务器利用收到的读写器的密钥值kr对Rc和Cert(Rc)进行加密生成密文Ekr(Rc||Cert(Rc)),然后将其发送至读写器;利用密钥 kst对Pc和Cert(Pc)进行加密生成密文Ekst(Pc||Cert(Pc))并将其发送至数据库。
读写器和数据库收到密文后,分别对其解密并进行签名验证,具体工作流程如下:读写器利用密钥kr对密文进行解密获得Rc和Cert(Rc),然后利用公钥 kt和椭圆曲线公共基点B1、B2,计算Z′:
计算出 Z′后利用单向 Hash函数计算H(Rc,Z′)并与 e′比较 ,若相等,则读写器通过签名验证,然后更新其密钥 kr为 H(kr);若不相等,则将该签名视为无效,读写器不进行任何响应。
与读写器相同,数据库收到密文后利用密钥kst对密文进行解密获得Pc和Cert(Pc),然后利用公钥kt和椭圆曲线公共基点 B1、B2,计算 Z:
计算出Z后利用单向Hash函数计算H(Pc,Z)并与e比较,若相等,则数据库通过签名验证,等待接收读写器发送信息;若不相等,则将该签名视为无效,不进行任何响应。
读写器完成对Rc的签名验证后,产生一个随机数Pi作为其身份标识来代替IDr,为了对Pi进行数字签名,读写器产生一个临时值Rs=d1B1+d2B2,其中(d1,d2)是在[0,n-1]范围内随机取值,然后利用密钥Rc按照椭圆曲线加密体制(ECC)对 Pi进行数字签名[1,5],过程如下:
完成对Pi签名后,读写器产生一个随机数n1,其中n1∈[0,n-1],计算n1G并产生当前的时间戳t2,最后读写器利用数据库的公钥ks对Cert(Pi)和t2进行加密生成密文 Eks(Cert(Pi)||t2),并将 Pi、n1G、Eks(Cert(Pi)||t2)依次发送至数据库。
(4)数据库→读写器:Pi、n2G、Ekauth(t2)
数据库完成对Pc的签名验证后,等待接收读写器发送的信息,在收到读写器发送的密文后,用公钥ks进行解密,获得Cert(Pi)和 t2,然后对 Pi进行签名验证,具体过程如下:数据库利用已经收到的密钥Pc和椭圆曲线公共基点B1、B2,计算 Z″:
计算出 Z″后,利用单向Hash函数计算H(Pi,Z″)与e″进行比较,若相等,则数据库通过签名验证,进行下一步操作;若不相等,则数据库将此签名视为无效,不进行任何响应。数据库通过签名验证后,将收到的时间戳t2与 t2last进行比较,若 t2≤t2last,则表明此消息在此之前已经收到过,数据库不进行任何响应;若 t2>t2last,则表明此消息有效,数据库完成对读写器合法性的验证,将t2last更新为t2。随后产生一个随机数 n2,其中 n2∈[0,n-1],计算n2G并且与收到的 n1G相乘得n2n1G,其中 n2n1G即为 kauth,用 n2n1G对 t2进行加密生成密文Ekauth(t2),将 Pi、n2G、Ekauth(t2)依次发送至读写器。
读写器收到信息后,首先将收到的Pi与自身的Pi进行比较,若相等则证明该消息是发送给自身的。然后利用已经生成的 n1与收到的 n2G相乘得n1n2G,这样就获得的密钥kauth,最后用n1n2G对密文Ekauth(t2)进行解密得到t2,再与先前产生的t2进行比较,若相等则读写器证明了数据库的合法性,kauth便为它们之后通信的密钥,至此读写器与数据库之间完成了相互认证。
对该安全协议进行性能分析,有如下特点:
①防窃听。在读写器,服务器与数据库三者之间通信过程中,都使用了相应的密钥 kt、kr、kst和 ks对信息进行加密,即使攻击者截获该密文也无法解密获取密文内容。因此该协议可以有效防止窃听;
②防哄骗。读写器在每次与数据库建立通信时,将产生不同的随机数组Pi来代替其自身IDr,这样一来攻击者就无法通过假冒IDr与数据库建立通信,因此可以有效地防止假冒攻击;
③防重传。每次认证过程中读写器将产生瞬时的时间戳t,并对其进行加密,即使攻击者截获上次的信息,也无法伪造当前时间戳,因此该协议可以有效地防止重传攻击;
④防追踪。根据椭圆曲线离散对数问题(ECDLP),即使攻击者通过追踪截获了n1G与n2G,但由于不知道 n1和 n2的具体取值,也无法得到kauth=n1n2G,因此该协议可以有效地防止跟踪;
⑤前向安全性。在读写器与数据库每次建立通信时都将产生不同的随机数n1、n2,从而生成不同的密钥kauth=n1n2G,即使攻击者获取了上次通信的密钥值kauth,也无法获知本次通信的密钥kauth,从而保证了数据的前向安全性;
⑥实现双向认证。数据库通过对 Pi签名验证,实现了对读写器合法性的验证;而读写器通过对时间戳t2的比较,实现了对数据库合法性的验证。
本文提出了一种基于相互认证的移动RFID安全协议,该协议引入了一个第3方服务器来为移动读写器和后台数据库提供签名密钥,并且通过椭圆曲线加密体制(ECC)在发送端对信息进行数字签名,在接收端进行验证,能有效地防止各种攻击且能保证前向安全性,使移动读写器与后台数据库通过相互认证建立安全合法通信,基本上弥补了目前移动RFID安全保护方法安全性不够的缺陷,是一种较为实用的算法,具有较高的实用价值。
[1]YU Fang-chung,SHUAN Huang-kuo,LAI Fei-pei,et al.ID based digitalsignature scheme on the elliptic curve cryptosystem[J].Computer Standards and Interfaces,2007,29:601-604.
[2]ELGAMAL T.A public key cryptosystem and a signature scheme based on discrete logarithms[J].IEEE Transaction on Information Theory,1985,31(4):469-472.
[3]MENEZES A,VANSTONE SA.Elliptic curve in cryptosystem and their implementation[J].Journal of Cryptology,1993,209-224.
[4]张方国,王常杰,王育民.基于椭圆曲线的数字签名与盲签名[J].通信学报,2001,22(8):22-27.
[5]罗大文,董丽莉,何明星.基于椭圆曲线的数字签名方案[J].西华大学学报,2006,25(3):79-80.
[6]陈信刚,李超锋.移动RFID网络的安全性研究[J].广东通信技术,2007,11:14-17.
[7]宋国琴.椭圆曲线加密体制ECC[J].电脑开发与应用,2008,21(8):28-30.