改进的满足后向匿名的标签所有权转移算法
2021-04-15郭璐青
郭璐青 李 霞
1(河南警察学院 河南 郑州 450046) 2(河南大学 河南 开封 475001)
0 引 言
射频识别技术随着物联网技术的快速发展其应用范围和领域也在不断扩展[1-2],如供应链等应用领域广泛用到射频识别技术。具体例如以下应用:附着有识别标记的标签商品还未出厂之前,该商品的归属权归属于生产商;当该商品转售给批发商,再有批发商出售给零售商的过程中,该商品的归属权不知不觉中已发生至少两次变化,即由生产商变换成批发商,再由批发商变化成零售商[3-4]。
供应链运用中,携带有标签的物品归属者经常发生变化,相对应的所有权本应一并发生变化,但实际运用过程中,并非如上述所愿,多数时候物品所有者已发生变化,但所有权却未发生变化,使得物品之前的拥有者还可以获取物品中存放的隐私信息,对于现有的物品拥有者来说存在一定的安全隐患,所有权转移协议的出现是一种有效的解决办法[5-6]。
鉴于现有的标签所有权转移协议存在的计算量大、有一定的安全缺陷、通信时间长等缺陷,国内外专家学者设计出诸多不同方式的协议来弥补上述不足[7-8]。本文基于此,重点针对苏庆等[9]提出的协议进行具体分析,给出其协议存在的安全漏洞,在此基础上给出改进的协议。
1 原算法漏洞分析
文献[9]对沈金伟等[10]提出的超轻量级标签所有权转移算法进行改进,提出了一种基于共享密钥的超轻量级转移协议,弥补了文献[10]存在的去同步化攻击、拒绝服务攻击漏洞缺陷。同时,Xie等[11]也对文献[10]的所有权转移协议进行了分析,指出其存在的不足,并在此基础上给出改进协议,但分析发现该改进协议虽然可以弥补原协议的不足,却无法抵御中间人攻击。本文对文献[9]中设计的协议进行安全性分析,协议因部分信息明文传送因素,导致协议无法抵抗暴力破解攻击;再由暴力破解攻击所获取的隐私信息,进行更深层次的攻击,协议无法提供后向隐私安全性。针对其上述安全缺陷分析过程如下:
2 改进的RFID标签所有权转移算法
2.1 前提与符号说明
参照其他文献中的协议规定,本文协议也遵循如下约定:标签原所有者与新所有者之间通过安全的有限方式通信;标签新旧所有者与标签之间的通信信道采用无线方式,存在一定的安全缺陷[12]。
本文算法设计过程中用到二次剩余定理,有关该定理的详细介绍可以参考文献[13-14]。Dj选两个大素数p、q,其中p=q=3mod4;算n=pq,公开n。标签存放信息如下:(IDS,K,n);新所有者存放信息为(IDS,K,Flag,n)。
算法具体符号描述如下:
T:标签。
Di:原所有者。
Dj:新所有者。
IDS:标签假名。
IDSN:标签新假名。
K:标签与原所有者之间的共享密钥。
KL:标签与原所有者之间共享密钥左半部分。
KR:标签与原所有者之间共享密钥右半部分。
KN:标签与新所有者之间共享密钥。
Flag:标签所有权归属标志位;约定Flag=0,标签归属于Di;Flag=1,标签归属于Dj。
r1、r2、r3、r4:通信实体产生的随机数。
Cro(X,Y):交叉位运算[15]。
Rot(X,Y):左移位运算。
⊕:“异或”运算。
2.2 算法具体认证过程
满足后向不可追踪的RFID单标签所有权转移算法过程图如图1所示。
图1 满足后向匿名的RFID标签所有权转移算法过程图
(1)Di产生一个随机数r1,计算生成A,并向新所有者后端数据库Dj发送授权访问命令
A=ROT(KL,r1)⊕CRO(KR,IDS)
(1)
(2)Dj收到授权访问申请后,存储消息A,生成随机数r2,计算生成B,并向标签T发送消息
B=mixbits(r2,A)
(2)
(3)T收到来自Dj的挑战消息后,首先利用自身存储的密钥K和假名标识IDS验证是否B′=B。如果不相等,T认证Di失败,算法终止;如果相等,T认证Di成功,算法继续执行,生成随机数r3、r4,计算得到消息C、D、E,并向Dj发送响应消息
B′=mixbits{r2,ROT(KL,r1)⊕CRO(KR,IDS)}
(3)
C=ROT(KL⊕KR,IDSL⊕IDSR)⊕r3
(4)
D=ROT(KR,r1)⊕CRO(KR,r3)
(5)
E=(r2‖r4)2modn
(6)
(4)Dj收到标签T的响应消息后,首先在规定的时间内将消息
(5)Di接收到认证消息
r3=ROT(KL⊕KR,IDSL⊕IDSR)⊕C
(7)
X=K⊕ROT(C,K)
(8)
(6)Dj收到Di发送的所有权转移授权消息
F=KN⊕ROT(r4L,r4R)
(9)
G=IDSN⊕CRO(r4L,r4R)
(10)
Y=CRO(X,F⊕G)
(11)
(7)T收到Dj发送的密钥更新消息后,首先验证Y′=Y。如果不相等,算法终止;如果相等,T验证Dj成功,并证明Dj是经原所有者数据库Di授权,最后标签更新信息如下:KN、IDSN。
KN=F⊕ROT(r4L,r4R)
(12)
IDSN=G⊕CRO(r4L,r4R)
(13)
满足后向不可追踪的RFID单标签所有权转移算法的算法流程如图2所示。
图2 满足后向匿名的RFID标签所有权转移算法流程
3 算法GNY逻辑证明
GNY逻辑是公认的第一个扩展BAN逻辑。GNY逻辑比BAN逻辑更细致、详尽,其应用范围更广[16-17]。基本思想[18]如下:
(1) 针对算法的背景将算法实体初始前提理想化;
(2) 将算法过程理想化;
(3) 定义算法理想化证明目标(交互实体之间对交互信息新鲜性的相信);
(4) 利用若干基本逻辑公理、规则,判断能否从算法过程推导出安全目标。
重点介绍本文证明过程中用到的相关规则[19]:
接收规则:
拥有规则:
消息解析规则:
式中:P◁X表示P被告知公式X,即P收到X;P◁*X表示P被告知X,但X是P事先不知道的,即X对P来说此处是非本源的;P∈X表示P拥有X;P|~X表示P曾经传输过X;P|≡#(X)表示P相信公式X是新鲜的;P|≡φ(X)表示P相信公式X是可以识别的;
1) 算法形式化模型描述。
本文算法使用T、D表示主体,即标签为T,原数据库为Di,新数据库为Dj。基于共享密钥的超轻量级RFID单标签所有权转移算法形式化描述如下:
M1:Di→Dj:
Dj◁*{ROT(KL,r1)⊕(KL,IDS)}K⟹Dj◁*{r1}K,{K},{IDS}K
M2:Dj→T:
M3:T→Dj:
Dj◁*{r2,r4}-K⟹Dj◁*{r4}-K
M4:Dj→Di:
M5:Di→Dj:
Dj◁*K⊕ROT(C,K)
M6:Dj→T:
T◁*CRO(X,F⊕G),KN⊕ROT(r4L,r4R),IDSN⊕CRO(r4L,r4R)⟹T◁*F(KN)r4,F(IDSN)r4
2) 算法初始化假设。
设P1、P2、P3表示标签、数据库所拥有的:
P1:T∈(n,IDS,K)
P2:Di∈(n,IDS,K,Flag)
P3:Dj∈(p,q,KN,IDSN)
设P4、P5、P6表示标签、数据库对数据新鲜性的相信:
P4:T|≡#(r3,r4,K,IDS)
P5:Di|≡#(r1,K,IDS)
P6:Dj|≡#(r2,KN,IDSN)
设P7、P8、P9表示标签、数据库之间相信秘密信息K、IDS、r4是双方共享的:
设P10、P11、P12表示标签、数据库之间相信各自的信息是可以被识别的:
P10:T|≡φ(r3,r4)
P11:Di|≡φ(r1)
P12:Dj|≡φ(r2,KN,IDSN)
3) 算法安全目标。
算法需要证明的安全目标有三个:
D1:T|≡Di∈K,IDS
D2:Di|≡T∈K,IDS
D3:T|≡Dj|~#F(KN),F(IDSN)
4) 算法分析证明过程。
① 当收到消息M2后,可得T◁*{r1}K。
② 根据初始化假设P1,T∈K和接受规则T3,可得T◁r1;根据拥有规则P1,可得T∈r1;根据拥有规则P4,可得T∈FK(r1);根据可识别规则R6,可得T|≡φ(r1)。
③ 由初始化假设P1、P4可得T∈K、T|≡#(K);根据新鲜性规则F7,可得T|≡#(r1)K,即T|≡#(r1);根据新鲜性规则F1,可得T|≡#(r1,K)。
④ 最后根据初始化假设P1、P7,可知T∈K。
综合上述证明过程①-⑤得到的结果,根据消息解析规则I1,得到T|≡DiK,同理可证T|≡DiIDS,所以安全目标D1得证。
安全目标D2和D3的证明过程与D1的证明方法类似,故此处不再赘述。
4 算法安全性分析
1) 暴力破解攻击。文献[9]仅依靠“异或”和移位简单位运算加密秘密数据r3是不安全的X=r4⊕(r3≫L/2),因此本文算法相较于文献[9],对三方所有需要传送的数据进行了完整的加密处理,秘密数据利用数学困难二次剩余E=(r2‖r4)2modn来防止攻击者通过窃听获得的通信数据,而进行暴力破解攻击。基于上述处理,本文协议能够抵抗攻击者发起的暴力破解攻击。
2) 重放攻击。算法在加密过程中,所有消息在进行加密之时均混入随机数,从而可以保证消息的新鲜行,以此用来抵抗重放攻击。当攻击者想通过重放B来通过标签Tag的验证时,但消息B由随机数r1、r2每轮动态更新控制,可保证其新鲜性;攻击者若企图通过重放旧消息C、D、E使后端数据库通过验证,也是不成功的,因为每轮认证标签端也会动态产生并更新随机数r3、r4来加入认证计算,并且r3、r4加密传输不可被窃听,可保证其新鲜性;攻击者若企图通过重放旧消息F、G、Y再次向标签下发密钥更新命令时,标签验证Y失败,因为消息Y由随机数r3、KN、IDSN组成,重放Y使用的是上一轮的随机数,所以标签认证不通过。综上,本文算法可以抵抗重放攻击。
3) 假冒攻击。本文算法可以通过共享秘密信息来抵抗假冒攻击。当攻击者假冒标签发送C、D、E给数据库后端验证,攻击者因为无法获得共享密钥K和假名标识IDS,计算得到的通信数据发送给后端数据库,后端数据库通过简单的计算即可辨别出此消息的真伪,攻击者发起的攻击将失效。因此本文算法能够抵抗假冒攻击。
4) 中间人攻击。本文算法可以通过加密过的共享信息来抵抗攻击者发起的中间人攻击。攻击者可以通过窃听一个完整的会话过程获取消息B、C、D、E。攻击者对监听所获取的消息进行篡改或修改,从而进行中间人攻击也是不能成功的,因为攻击者难以获取被加密过的信息K、IDS(分成左右两部分来进行加密传输),来满足B=mixbits(r2,A)、D=ROT(KR,r1)⊕CRO(KR,r3),以使原数据库与标签之间的双向认证通过。因此本文算法能够抵抗中间人攻击。
5) 前向安全。改进算法可以通过交叉移位等超轻量级加密运算来保证前向安全。在标签认证原数据库的过程中,新数据库只起到消息传递的作用,原数据库与标签之间的共享密钥信息K和假名标识IDS通过交叉移位、异或、循环移位的方式加密数据,新所有者无法从中获得秘密信息;之后的通信消息C、D、E,本文算法依旧采取加密运算,直到标签所有权转移工作完成后,新所有者在没有得到任何有用信息的情况下无法获得原所有者与标签之间秘密信息,因此本文算法可以保证前向安全。
6) 后向安全。本文算法可以通过二次剩余加密算法[14]来保证前向安全。新所有者数据库Dj与标签之间的新的共享密钥KN和IDSN,由Dj随机生成并利用r4加密传输。而r4是标签利用二次剩余算法加密传给Dj,由Dj利用私钥p、q解密得到并存储r4,原数据库在没有私钥p、q的前提下,是不可能得到r4的值,因此Dj将数据F、G、Y传送给标签后,标签验证Y通过后,利用仅与Dj之间共享的秘密数据r4,解密得到需要更新后新的K和IDS。综上,在整个算法过程中原数据库即使通过窃听消息C、D、E、F、G、Y,但因没有私钥p、q,所以不可能得到新数据库与标签之间的K和IDS,本文算法可以保证后向安全。
综上所述,表1给出了本文算法和文献[9]、文献[11]算法的安全性比较。
表1 算法安全性对比
5 标签端性能分析
设计的算法中标签需支持生成随机数的或伪随机函数、位运算等计算[20]。文献[9]、文献[11]以及本文算法都是以轻量级运算标准为准则,设计了计算量低、系统简单算法,本文协议与其他协议的性能比较结果如表2所示。
表2 算法标签端性能比较
对表2中的运算符号进行如下解释:简单位运算用X表示;循环移位运算用T表示;交叉位运算用C表示;mixbits函数运算用M()表示;Rabin加密算法用R()表示;二次剩余算法用M表示;模运算用MOD表示。约定所有的参量长度均为I位;本文协议所有的通信消息长度均为L位。
与其他协议在存储量类似的前提下,本文协议的标签通信量明显最优。在标签计算量上,相较于文献[9]多使用了一次二次剩余算法,保证了算法的安全性;相较于文献[11],本文并未选择计算量较大的模运算进行加密,使得计算量少于文献[11]的计算量,且弥补其协议存在的不足。综上,本文算法的性能最优的。
6 结 语
针对文献[9]的所有权转移协议进行重点分析,在此基础上给出改进的满足后向隐私安全的所有权转移协议。改进协议能够保证隐私信息的安全,基于二次剩余定理对消息进行加解密,二次剩余定理基于大数分解难题,攻击者难以进行破解;为确保协议适用于低成本的标签中,选位运算对部分消息进行加解密。对协议进行基于GNY逻辑形式化分析,给出协议目标严谨的推理过程。对协议进行安全性和性能分析,结果表明本文协议在具备运用过程中所需安全性的同时,还满足低成本标签的特征。