郭璐青 李 霞
1(河南警察學院 河南 鄭州 450046) 2(河南大學 河南 開封 475001)
射頻識別技術隨著物聯網技術的快速發展其應用范圍和領域也在不斷擴展[1-2],如供應鏈等應用領域廣泛用到射頻識別技術。具體例如以下應用:附著有識別標記的標簽商品還未出廠之前,該商品的歸屬權歸屬于生產商;當該商品轉售給批發商,再有批發商出售給零售商的過程中,該商品的歸屬權不知不覺中已發生至少兩次變化,即由生產商變換成批發商,再由批發商變化成零售商[3-4]。
供應鏈運用中,攜帶有標簽的物品歸屬者經常發生變化,相對應的所有權本應一并發生變化,但實際運用過程中,并非如上述所愿,多數時候物品所有者已發生變化,但所有權卻未發生變化,使得物品之前的擁有者還可以獲取物品中存放的隱私信息,對于現有的物品擁有者來說存在一定的安全隱患,所有權轉移協議的出現是一種有效的解決辦法[5-6]。
鑒于現有的標簽所有權轉移協議存在的計算量大、有一定的安全缺陷、通信時間長等缺陷,國內外專家學者設計出諸多不同方式的協議來彌補上述不足[7-8]。本文基于此,重點針對蘇慶等[9]提出的協議進行具體分析,給出其協議存在的安全漏洞,在此基礎上給出改進的協議。
文獻[9]對沈金偉等[10]提出的超輕量級標簽所有權轉移算法進行改進,提出了一種基于共享密鑰的超輕量級轉移協議,彌補了文獻[10]存在的去同步化攻擊、拒絕服務攻擊漏洞缺陷。同時,Xie等[11]也對文獻[10]的所有權轉移協議進行了分析,指出其存在的不足,并在此基礎上給出改進協議,但分析發現該改進協議雖然可以彌補原協議的不足,卻無法抵御中間人攻擊。本文對文獻[9]中設計的協議進行安全性分析,協議因部分信息明文傳送因素,導致協議無法抵抗暴力破解攻擊;再由暴力破解攻擊所獲取的隱私信息,進行更深層次的攻擊,協議無法提供后向隱私安全性。針對其上述安全缺陷分析過程如下:
參照其他文獻中的協議規定,本文協議也遵循如下約定:標簽原所有者與新所有者之間通過安全的有限方式通信;標簽新舊所有者與標簽之間的通信信道采用無線方式,存在一定的安全缺陷[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):左移位運算。
⊕:“異或”運算。
滿足后向不可追蹤的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標簽所有權轉移算法流程
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的證明方法類似,故此處不再贅述。
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 算法安全性對比
設計的算法中標簽需支持生成隨機數的或偽隨機函數、位運算等計算[20]。文獻[9]、文獻[11]以及本文算法都是以輕量級運算標準為準則,設計了計算量低、系統簡單算法,本文協議與其他協議的性能比較結果如表2所示。

表2 算法標簽端性能比較
對表2中的運算符號進行如下解釋:簡單位運算用X表示;循環移位運算用T表示;交叉位運算用C表示;mixbits函數運算用M()表示;Rabin加密算法用R()表示;二次剩余算法用M表示;模運算用MOD表示。約定所有的參量長度均為I位;本文協議所有的通信消息長度均為L位。
與其他協議在存儲量類似的前提下,本文協議的標簽通信量明顯最優。在標簽計算量上,相較于文獻[9]多使用了一次二次剩余算法,保證了算法的安全性;相較于文獻[11],本文并未選擇計算量較大的模運算進行加密,使得計算量少于文獻[11]的計算量,且彌補其協議存在的不足。綜上,本文算法的性能最優的。
針對文獻[9]的所有權轉移協議進行重點分析,在此基礎上給出改進的滿足后向隱私安全的所有權轉移協議。改進協議能夠保證隱私信息的安全,基于二次剩余定理對消息進行加解密,二次剩余定理基于大數分解難題,攻擊者難以進行破解;為確保協議適用于低成本的標簽中,選位運算對部分消息進行加解密。對協議進行基于GNY邏輯形式化分析,給出協議目標嚴謹的推理過程。對協議進行安全性和性能分析,結果表明本文協議在具備運用過程中所需安全性的同時,還滿足低成本標簽的特征。