郭璐青 李 霞
1(河南警察學(xué)院 河南 鄭州 450046) 2(河南大學(xué) 河南 開封 475001)
射頻識別技術(shù)隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展其應(yīng)用范圍和領(lǐng)域也在不斷擴(kuò)展[1-2],如供應(yīng)鏈等應(yīng)用領(lǐng)域廣泛用到射頻識別技術(shù)。具體例如以下應(yīng)用:附著有識別標(biāo)記的標(biāo)簽商品還未出廠之前,該商品的歸屬權(quán)歸屬于生產(chǎn)商;當(dāng)該商品轉(zhuǎn)售給批發(fā)商,再有批發(fā)商出售給零售商的過程中,該商品的歸屬權(quán)不知不覺中已發(fā)生至少兩次變化,即由生產(chǎn)商變換成批發(fā)商,再由批發(fā)商變化成零售商[3-4]。
供應(yīng)鏈運(yùn)用中,攜帶有標(biāo)簽的物品歸屬者經(jīng)常發(fā)生變化,相對應(yīng)的所有權(quán)本應(yīng)一并發(fā)生變化,但實(shí)際運(yùn)用過程中,并非如上述所愿,多數(shù)時(shí)候物品所有者已發(fā)生變化,但所有權(quán)卻未發(fā)生變化,使得物品之前的擁有者還可以獲取物品中存放的隱私信息,對于現(xiàn)有的物品擁有者來說存在一定的安全隱患,所有權(quán)轉(zhuǎn)移協(xié)議的出現(xiàn)是一種有效的解決辦法[5-6]。
鑒于現(xiàn)有的標(biāo)簽所有權(quán)轉(zhuǎn)移協(xié)議存在的計(jì)算量大、有一定的安全缺陷、通信時(shí)間長等缺陷,國內(nèi)外專家學(xué)者設(shè)計(jì)出諸多不同方式的協(xié)議來彌補(bǔ)上述不足[7-8]。本文基于此,重點(diǎn)針對蘇慶等[9]提出的協(xié)議進(jìn)行具體分析,給出其協(xié)議存在的安全漏洞,在此基礎(chǔ)上給出改進(jìn)的協(xié)議。
文獻(xiàn)[9]對沈金偉等[10]提出的超輕量級標(biāo)簽所有權(quán)轉(zhuǎn)移算法進(jìn)行改進(jìn),提出了一種基于共享密鑰的超輕量級轉(zhuǎn)移協(xié)議,彌補(bǔ)了文獻(xiàn)[10]存在的去同步化攻擊、拒絕服務(wù)攻擊漏洞缺陷。同時(shí),Xie等[11]也對文獻(xiàn)[10]的所有權(quán)轉(zhuǎn)移協(xié)議進(jìn)行了分析,指出其存在的不足,并在此基礎(chǔ)上給出改進(jìn)協(xié)議,但分析發(fā)現(xiàn)該改進(jìn)協(xié)議雖然可以彌補(bǔ)原協(xié)議的不足,卻無法抵御中間人攻擊。本文對文獻(xiàn)[9]中設(shè)計(jì)的協(xié)議進(jìn)行安全性分析,協(xié)議因部分信息明文傳送因素,導(dǎo)致協(xié)議無法抵抗暴力破解攻擊;再由暴力破解攻擊所獲取的隱私信息,進(jìn)行更深層次的攻擊,協(xié)議無法提供后向隱私安全性。針對其上述安全缺陷分析過程如下:
參照其他文獻(xiàn)中的協(xié)議規(guī)定,本文協(xié)議也遵循如下約定:標(biāo)簽原所有者與新所有者之間通過安全的有限方式通信;標(biāo)簽新舊所有者與標(biāo)簽之間的通信信道采用無線方式,存在一定的安全缺陷[12]。
本文算法設(shè)計(jì)過程中用到二次剩余定理,有關(guān)該定理的詳細(xì)介紹可以參考文獻(xiàn)[13-14]。Dj選兩個(gè)大素?cái)?shù)p、q,其中p=q=3mod4;算n=pq,公開n。標(biāo)簽存放信息如下:(IDS,K,n);新所有者存放信息為(IDS,K,F(xiàn)lag,n)。
算法具體符號描述如下:
T:標(biāo)簽。
Di:原所有者。
Dj:新所有者。
IDS:標(biāo)簽假名。
IDSN:標(biāo)簽新假名。
K:標(biāo)簽與原所有者之間的共享密鑰。
KL:標(biāo)簽與原所有者之間共享密鑰左半部分。
KR:標(biāo)簽與原所有者之間共享密鑰右半部分。
KN:標(biāo)簽與新所有者之間共享密鑰。
Flag:標(biāo)簽所有權(quán)歸屬標(biāo)志位;約定Flag=0,標(biāo)簽歸屬于Di;Flag=1,標(biāo)簽歸屬于Dj。
r1、r2、r3、r4:通信實(shí)體產(chǎn)生的隨機(jī)數(shù)。
Cro(X,Y):交叉位運(yùn)算[15]。
Rot(X,Y):左移位運(yùn)算。
⊕:“異或”運(yùn)算。
滿足后向不可追蹤的RFID單標(biāo)簽所有權(quán)轉(zhuǎn)移算法過程圖如圖1所示。
圖1 滿足后向匿名的RFID標(biāo)簽所有權(quán)轉(zhuǎn)移算法過程圖
(1)Di產(chǎn)生一個(gè)隨機(jī)數(shù)r1,計(jì)算生成A,并向新所有者后端數(shù)據(jù)庫Dj發(fā)送授權(quán)訪問命令
A=ROT(KL,r1)⊕CRO(KR,IDS)
(1)
(2)Dj收到授權(quán)訪問申請后,存儲消息A,生成隨機(jī)數(shù)r2,計(jì)算生成B,并向標(biāo)簽T發(fā)送消息
B=mixbits(r2,A)
(2)
(3)T收到來自Dj的挑戰(zhàn)消息后,首先利用自身存儲的密鑰K和假名標(biāo)識IDS驗(yàn)證是否B′=B。如果不相等,T認(rèn)證Di失敗,算法終止;如果相等,T認(rèn)證Di成功,算法繼續(xù)執(zhí)行,生成隨機(jī)數(shù)r3、r4,計(jì)算得到消息C、D、E,并向Dj發(fā)送響應(yīng)消息
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收到標(biāo)簽T的響應(yīng)消息后,首先在規(guī)定的時(shí)間內(nèi)將消息
(5)Di接收到認(rèn)證消息
r3=ROT(KL⊕KR,IDSL⊕IDSR)⊕C
(7)
X=K⊕ROT(C,K)
(8)
(6)Dj收到Di發(fā)送的所有權(quán)轉(zhuǎn)移授權(quán)消息
F=KN⊕ROT(r4L,r4R)
(9)
G=IDSN⊕CRO(r4L,r4R)
(10)
Y=CRO(X,F⊕G)
(11)
(7)T收到Dj發(fā)送的密鑰更新消息后,首先驗(yàn)證Y′=Y。如果不相等,算法終止;如果相等,T驗(yàn)證Dj成功,并證明Dj是經(jīng)原所有者數(shù)據(jù)庫Di授權(quán),最后標(biāo)簽更新信息如下:KN、IDSN。
KN=F⊕ROT(r4L,r4R)
(12)
IDSN=G⊕CRO(r4L,r4R)
(13)
滿足后向不可追蹤的RFID單標(biāo)簽所有權(quán)轉(zhuǎn)移算法的算法流程如圖2所示。
圖2 滿足后向匿名的RFID標(biāo)簽所有權(quán)轉(zhuǎn)移算法流程
GNY邏輯是公認(rèn)的第一個(gè)擴(kuò)展BAN邏輯。GNY邏輯比BAN邏輯更細(xì)致、詳盡,其應(yīng)用范圍更廣[16-17]。基本思想[18]如下:
(1) 針對算法的背景將算法實(shí)體初始前提理想化;
(2) 將算法過程理想化;
(3) 定義算法理想化證明目標(biāo)(交互實(shí)體之間對交互信息新鮮性的相信);
(4) 利用若干基本邏輯公理、規(guī)則,判斷能否從算法過程推導(dǎo)出安全目標(biāo)。
重點(diǎn)介紹本文證明過程中用到的相關(guān)規(guī)則[19]:
接收規(guī)則:
擁有規(guī)則:
消息解析規(guī)則:
式中:P?X表示P被告知公式X,即P收到X;P?*X表示P被告知X,但X是P事先不知道的,即X對P來說此處是非本源的;P∈X表示P擁有X;P|~X表示P曾經(jīng)傳輸過X;P|≡#(X)表示P相信公式X是新鮮的;P|≡φ(X)表示P相信公式X是可以識別的;
1) 算法形式化模型描述。
本文算法使用T、D表示主體,即標(biāo)簽為T,原數(shù)據(jù)庫為Di,新數(shù)據(jù)庫為Dj?;诠蚕砻荑€的超輕量級RFID單標(biāo)簽所有權(quán)轉(zhuǎn)移算法形式化描述如下:
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) 算法初始化假設(shè)。
設(shè)P1、P2、P3表示標(biāo)簽、數(shù)據(jù)庫所擁有的:
P1:T∈(n,IDS,K)
P2:Di∈(n,IDS,K,Flag)
P3:Dj∈(p,q,KN,IDSN)
設(shè)P4、P5、P6表示標(biāo)簽、數(shù)據(jù)庫對數(shù)據(jù)新鮮性的相信:
P4:T|≡#(r3,r4,K,IDS)
P5:Di|≡#(r1,K,IDS)
P6:Dj|≡#(r2,KN,IDSN)
設(shè)P7、P8、P9表示標(biāo)簽、數(shù)據(jù)庫之間相信秘密信息K、IDS、r4是雙方共享的:
設(shè)P10、P11、P12表示標(biāo)簽、數(shù)據(jù)庫之間相信各自的信息是可以被識別的:
P10:T|≡φ(r3,r4)
P11:Di|≡φ(r1)
P12:Dj|≡φ(r2,KN,IDSN)
3) 算法安全目標(biāo)。
算法需要證明的安全目標(biāo)有三個(gè):
D1:T|≡Di∈K,IDS
D2:Di|≡T∈K,IDS
D3:T|≡Dj|~#F(KN),F(IDSN)
4) 算法分析證明過程。
① 當(dāng)收到消息M2后,可得T?*{r1}K。
② 根據(jù)初始化假設(shè)P1,T∈K和接受規(guī)則T3,可得T?r1;根據(jù)擁有規(guī)則P1,可得T∈r1;根據(jù)擁有規(guī)則P4,可得T∈FK(r1);根據(jù)可識別規(guī)則R6,可得T|≡φ(r1)。
③ 由初始化假設(shè)P1、P4可得T∈K、T|≡#(K);根據(jù)新鮮性規(guī)則F7,可得T|≡#(r1)K,即T|≡#(r1);根據(jù)新鮮性規(guī)則F1,可得T|≡#(r1,K)。
④ 最后根據(jù)初始化假設(shè)P1、P7,可知T∈K。
綜合上述證明過程①-⑤得到的結(jié)果,根據(jù)消息解析規(guī)則I1,得到T|≡DiK,同理可證T|≡DiIDS,所以安全目標(biāo)D1得證。
安全目標(biāo)D2和D3的證明過程與D1的證明方法類似,故此處不再贅述。
1) 暴力破解攻擊。文獻(xiàn)[9]僅依靠“異或”和移位簡單位運(yùn)算加密秘密數(shù)據(jù)r3是不安全的X=r4⊕(r3?L/2),因此本文算法相較于文獻(xiàn)[9],對三方所有需要傳送的數(shù)據(jù)進(jìn)行了完整的加密處理,秘密數(shù)據(jù)利用數(shù)學(xué)困難二次剩余E=(r2‖r4)2modn來防止攻擊者通過竊聽獲得的通信數(shù)據(jù),而進(jìn)行暴力破解攻擊?;谏鲜鎏幚?,本文協(xié)議能夠抵抗攻擊者發(fā)起的暴力破解攻擊。
2) 重放攻擊。算法在加密過程中,所有消息在進(jìn)行加密之時(shí)均混入隨機(jī)數(shù),從而可以保證消息的新鮮行,以此用來抵抗重放攻擊。當(dāng)攻擊者想通過重放B來通過標(biāo)簽Tag的驗(yàn)證時(shí),但消息B由隨機(jī)數(shù)r1、r2每輪動態(tài)更新控制,可保證其新鮮性;攻擊者若企圖通過重放舊消息C、D、E使后端數(shù)據(jù)庫通過驗(yàn)證,也是不成功的,因?yàn)槊枯喺J(rèn)證標(biāo)簽端也會動態(tài)產(chǎn)生并更新隨機(jī)數(shù)r3、r4來加入認(rèn)證計(jì)算,并且r3、r4加密傳輸不可被竊聽,可保證其新鮮性;攻擊者若企圖通過重放舊消息F、G、Y再次向標(biāo)簽下發(fā)密鑰更新命令時(shí),標(biāo)簽驗(yàn)證Y失敗,因?yàn)橄由隨機(jī)數(shù)r3、KN、IDSN組成,重放Y使用的是上一輪的隨機(jī)數(shù),所以標(biāo)簽認(rèn)證不通過。綜上,本文算法可以抵抗重放攻擊。
3) 假冒攻擊。本文算法可以通過共享秘密信息來抵抗假冒攻擊。當(dāng)攻擊者假冒標(biāo)簽發(fā)送C、D、E給數(shù)據(jù)庫后端驗(yàn)證,攻擊者因?yàn)闊o法獲得共享密鑰K和假名標(biāo)識IDS,計(jì)算得到的通信數(shù)據(jù)發(fā)送給后端數(shù)據(jù)庫,后端數(shù)據(jù)庫通過簡單的計(jì)算即可辨別出此消息的真?zhèn)?,攻擊者發(fā)起的攻擊將失效。因此本文算法能夠抵抗假冒攻擊。
4) 中間人攻擊。本文算法可以通過加密過的共享信息來抵抗攻擊者發(fā)起的中間人攻擊。攻擊者可以通過竊聽一個(gè)完整的會話過程獲取消息B、C、D、E。攻擊者對監(jiān)聽所獲取的消息進(jìn)行篡改或修改,從而進(jìn)行中間人攻擊也是不能成功的,因?yàn)楣粽唠y以獲取被加密過的信息K、IDS(分成左右兩部分來進(jìn)行加密傳輸),來滿足B=mixbits(r2,A)、D=ROT(KR,r1)⊕CRO(KR,r3),以使原數(shù)據(jù)庫與標(biāo)簽之間的雙向認(rèn)證通過。因此本文算法能夠抵抗中間人攻擊。
5) 前向安全。改進(jìn)算法可以通過交叉移位等超輕量級加密運(yùn)算來保證前向安全。在標(biāo)簽認(rèn)證原數(shù)據(jù)庫的過程中,新數(shù)據(jù)庫只起到消息傳遞的作用,原數(shù)據(jù)庫與標(biāo)簽之間的共享密鑰信息K和假名標(biāo)識IDS通過交叉移位、異或、循環(huán)移位的方式加密數(shù)據(jù),新所有者無法從中獲得秘密信息;之后的通信消息C、D、E,本文算法依舊采取加密運(yùn)算,直到標(biāo)簽所有權(quán)轉(zhuǎn)移工作完成后,新所有者在沒有得到任何有用信息的情況下無法獲得原所有者與標(biāo)簽之間秘密信息,因此本文算法可以保證前向安全。
6) 后向安全。本文算法可以通過二次剩余加密算法[14]來保證前向安全。新所有者數(shù)據(jù)庫Dj與標(biāo)簽之間的新的共享密鑰KN和IDSN,由Dj隨機(jī)生成并利用r4加密傳輸。而r4是標(biāo)簽利用二次剩余算法加密傳給Dj,由Dj利用私鑰p、q解密得到并存儲r4,原數(shù)據(jù)庫在沒有私鑰p、q的前提下,是不可能得到r4的值,因此Dj將數(shù)據(jù)F、G、Y傳送給標(biāo)簽后,標(biāo)簽驗(yàn)證Y通過后,利用僅與Dj之間共享的秘密數(shù)據(jù)r4,解密得到需要更新后新的K和IDS。綜上,在整個(gè)算法過程中原數(shù)據(jù)庫即使通過竊聽消息C、D、E、F、G、Y,但因沒有私鑰p、q,所以不可能得到新數(shù)據(jù)庫與標(biāo)簽之間的K和IDS,本文算法可以保證后向安全。
綜上所述,表1給出了本文算法和文獻(xiàn)[9]、文獻(xiàn)[11]算法的安全性比較。
表1 算法安全性對比
設(shè)計(jì)的算法中標(biāo)簽需支持生成隨機(jī)數(shù)的或偽隨機(jī)函數(shù)、位運(yùn)算等計(jì)算[20]。文獻(xiàn)[9]、文獻(xiàn)[11]以及本文算法都是以輕量級運(yùn)算標(biāo)準(zhǔn)為準(zhǔn)則,設(shè)計(jì)了計(jì)算量低、系統(tǒng)簡單算法,本文協(xié)議與其他協(xié)議的性能比較結(jié)果如表2所示。
表2 算法標(biāo)簽端性能比較
對表2中的運(yùn)算符號進(jìn)行如下解釋:簡單位運(yùn)算用X表示;循環(huán)移位運(yùn)算用T表示;交叉位運(yùn)算用C表示;mixbits函數(shù)運(yùn)算用M()表示;Rabin加密算法用R()表示;二次剩余算法用M表示;模運(yùn)算用MOD表示。約定所有的參量長度均為I位;本文協(xié)議所有的通信消息長度均為L位。
與其他協(xié)議在存儲量類似的前提下,本文協(xié)議的標(biāo)簽通信量明顯最優(yōu)。在標(biāo)簽計(jì)算量上,相較于文獻(xiàn)[9]多使用了一次二次剩余算法,保證了算法的安全性;相較于文獻(xiàn)[11],本文并未選擇計(jì)算量較大的模運(yùn)算進(jìn)行加密,使得計(jì)算量少于文獻(xiàn)[11]的計(jì)算量,且彌補(bǔ)其協(xié)議存在的不足。綜上,本文算法的性能最優(yōu)的。
針對文獻(xiàn)[9]的所有權(quán)轉(zhuǎn)移協(xié)議進(jìn)行重點(diǎn)分析,在此基礎(chǔ)上給出改進(jìn)的滿足后向隱私安全的所有權(quán)轉(zhuǎn)移協(xié)議。改進(jìn)協(xié)議能夠保證隱私信息的安全,基于二次剩余定理對消息進(jìn)行加解密,二次剩余定理基于大數(shù)分解難題,攻擊者難以進(jìn)行破解;為確保協(xié)議適用于低成本的標(biāo)簽中,選位運(yùn)算對部分消息進(jìn)行加解密。對協(xié)議進(jìn)行基于GNY邏輯形式化分析,給出協(xié)議目標(biāo)嚴(yán)謹(jǐn)?shù)耐评磉^程。對協(xié)議進(jìn)行安全性和性能分析,結(jié)果表明本文協(xié)議在具備運(yùn)用過程中所需安全性的同時(shí),還滿足低成本標(biāo)簽的特征。