何 小 平
(廣東培正學(xué)院數(shù)據(jù)科學(xué)與計(jì)算機(jī)學(xué)院 廣東 廣州 510800)
無(wú)線射頻識(shí)別技術(shù)在很多方面都有廣泛的應(yīng)用,該技術(shù)在應(yīng)用過(guò)程中無(wú)需與實(shí)體接觸,即可識(shí)別出其中信息,適用于很多近距離通信,最典型的是RFID系統(tǒng)的應(yīng)用。一般RFID系統(tǒng)包含有三個(gè)部分:標(biāo)簽、讀寫器、后臺(tái)服務(wù)器[1-2]。在傳統(tǒng)的RFID系統(tǒng)中,讀寫器是固定式的,即讀寫器與后臺(tái)服務(wù)器之間的通信基于有線傳輸方式進(jìn)行,一般認(rèn)為安全可靠。隨著科技的發(fā)展和社會(huì)的進(jìn)步,人類的需求不斷增加,傳統(tǒng)的RFID系統(tǒng)已經(jīng)無(wú)法滿足人們的復(fù)雜需求,逐漸產(chǎn)生了移動(dòng)式的RFID系統(tǒng)。在移動(dòng)式的RFID系統(tǒng)中,讀寫器不再是固定式的,而是移動(dòng)式的,即讀寫器與后臺(tái)服務(wù)器之間的通信改為基于無(wú)線通信方式。無(wú)線通信方式因其自身固有的屬性,使得該通信信道并不安全,容易被攻擊者監(jiān)聽(tīng)或進(jìn)行其他類型的攻擊,一般認(rèn)為安全性較低[3-5]。
為能夠確保移動(dòng)式RFID系統(tǒng)的推廣應(yīng)用,必須保障通信過(guò)程中信息的安全,適用于傳統(tǒng)RFID系統(tǒng)的雙向認(rèn)證協(xié)議并不能很好地運(yùn)用在移動(dòng)式RFID系統(tǒng)中,因此需要設(shè)計(jì)出新的能夠適用于移動(dòng)式RFID系統(tǒng)中的雙向認(rèn)證協(xié)議[6-8]。
文獻(xiàn)[9]給出一個(gè)適用于移動(dòng)系統(tǒng)的認(rèn)證協(xié)議,協(xié)議基于共享密鑰機(jī)制。對(duì)協(xié)議進(jìn)行分析,其因缺少標(biāo)簽一端對(duì)讀寫器一端的認(rèn)證,使得攻擊者可以假冒讀寫器給標(biāo)簽發(fā)送信息,從而實(shí)施假冒攻擊。文獻(xiàn)[10]基于交叉位運(yùn)算提出一個(gè)移動(dòng)雙向認(rèn)證協(xié)議,協(xié)議采用按位運(yùn)算實(shí)現(xiàn)信息加密,能夠極大程度上降低系統(tǒng)整體的計(jì)算量。對(duì)協(xié)議進(jìn)行分析,攻擊者可以通過(guò)竊聽(tīng)手段獲取一個(gè)完整會(huì)話全部消息,可對(duì)獲取的消息進(jìn)行分析,協(xié)議無(wú)法提供后向安全保障,攻擊者可通過(guò)獲取消息分析出上一輪通話過(guò)程中部分隱私信息。
文獻(xiàn)[11]基于物理不可克隆設(shè)計(jì)出一種移動(dòng)雙向認(rèn)證協(xié)議,因物理不可克隆函數(shù)產(chǎn)生的共享密鑰是無(wú)法進(jìn)行復(fù)制的,使得協(xié)議具備較高的安全性。雖然無(wú)法對(duì)協(xié)議中的重要信息進(jìn)行復(fù)制,但對(duì)于截獲的消息進(jìn)行多次重放,幾輪重放之后,將會(huì)導(dǎo)致標(biāo)簽與后臺(tái)數(shù)據(jù)庫(kù)之間用到的共享密鑰信息失去一致性,從而協(xié)議無(wú)法抵抗攻擊者發(fā)起的去同步化攻擊。
文獻(xiàn)[12]在綜合考慮多種因素之后提出一種雙向認(rèn)證協(xié)議,適用于移動(dòng)式RFID系統(tǒng)。協(xié)議雖然增加了移動(dòng)讀寫器與后臺(tái)服務(wù)器之間的雙向認(rèn)證,但忽略了標(biāo)簽與后臺(tái)服務(wù)器之間的雙向認(rèn)證,使得攻擊者可以假冒其中一方進(jìn)行通信,因此協(xié)議無(wú)法抵抗攻擊者發(fā)起的假冒攻擊。
文獻(xiàn)[13]采用位運(yùn)算進(jìn)行加密,提出了一種移動(dòng)雙向認(rèn)證協(xié)議。協(xié)議為降低系統(tǒng)的計(jì)算量,摒棄基于哈希函數(shù)加密的想法,采用位運(yùn)算進(jìn)行加密。但協(xié)議在設(shè)計(jì)過(guò)程中,未能考慮到物理入侵方式,使得攻擊者可以通過(guò)物理入侵的手段獲取共享密鑰,從而采用反向克隆的技術(shù)發(fā)起假冒攻擊,因此協(xié)議無(wú)法抵抗假冒攻擊。
文獻(xiàn)[14]基于哈希函數(shù)設(shè)計(jì)出一種移動(dòng)雙向認(rèn)證協(xié)議,但協(xié)議存在多種安全缺陷。
基于上述問(wèn)題,本文在詳細(xì)分析文獻(xiàn)[14]中協(xié)議存在的安全不足基礎(chǔ)之上,提出一種改進(jìn)的協(xié)議。改進(jìn)的協(xié)議先進(jìn)行通信實(shí)體之間的識(shí)別驗(yàn)證,若驗(yàn)證通過(guò),則進(jìn)行后續(xù)操作,否則,協(xié)議終止。該協(xié)議能夠有效抵抗重放攻擊及假冒攻擊等。
文獻(xiàn)[14]中提出的雙向認(rèn)證協(xié)議的流程圖如圖1所示。
圖1 文獻(xiàn)[14]中雙向認(rèn)證協(xié)議流程圖
結(jié)合圖1,描述出具體的認(rèn)證過(guò)程如下(有關(guān)下面描述中涉及到的符號(hào)所表示的含義,可以參考文獻(xiàn)[14]):
(1) 移動(dòng)讀寫器將
(2) 標(biāo)簽計(jì)算X,并將X分成左右兩部分?jǐn)?shù)據(jù),即XL、XR。將
(3) 移動(dòng)讀寫器根據(jù)Nt來(lái)確定是否過(guò)濾掉標(biāo)簽發(fā)送來(lái)的信息。然后移動(dòng)讀寫器計(jì)算Y,并將Y分成左右兩部分?jǐn)?shù)據(jù),即YL、YR。將
(4) 后臺(tái)服務(wù)器根據(jù)Nr來(lái)確定是否過(guò)濾掉移動(dòng)讀寫器發(fā)送來(lái)的信息。
先驗(yàn)證移動(dòng)讀寫器的合法性。后臺(tái)服務(wù)器計(jì)算得到一個(gè)YL與移動(dòng)讀寫器發(fā)送來(lái)的YL進(jìn)行比對(duì)。若相等,驗(yàn)證通過(guò),接著開(kāi)始驗(yàn)證標(biāo)簽的真?zhèn)危蝗舨幌嗟?,?yàn)證移動(dòng)讀寫器失敗,協(xié)議終止。
待上述操作完成,后臺(tái)服務(wù)器將
(5) 移動(dòng)讀寫器將自己計(jì)算得到的YR與后臺(tái)服務(wù)器發(fā)送來(lái)的YR進(jìn)行比對(duì)。若相等,驗(yàn)證后臺(tái)服務(wù)器通過(guò),并將XR發(fā)送給標(biāo)簽;若不相等,驗(yàn)證失敗,協(xié)議終止。
(6) 標(biāo)簽將自己計(jì)算得到的XR與移動(dòng)讀寫器發(fā)送來(lái)的XR進(jìn)行比對(duì)。若相等,驗(yàn)證后臺(tái)服務(wù)器和移動(dòng)讀寫器通過(guò),開(kāi)始更新信息;若不相等,協(xié)議終止。
對(duì)上述協(xié)議進(jìn)行分析可以發(fā)現(xiàn),協(xié)議無(wú)法提供標(biāo)簽對(duì)移動(dòng)讀寫器的認(rèn)證,同時(shí)協(xié)議無(wú)法抵抗攻擊者發(fā)起的假冒攻擊。
協(xié)議無(wú)法提供標(biāo)簽對(duì)移動(dòng)讀寫器的認(rèn)證具體分析如下:
結(jié)合上述協(xié)議過(guò)程中的第(5)步和第(6)步,后臺(tái)服務(wù)器發(fā)送給移動(dòng)讀寫器的
協(xié)議無(wú)法抵抗攻擊者發(fā)起的假冒攻擊具體分析如下:
通過(guò)上面的分析已經(jīng)得出:協(xié)議無(wú)法提供標(biāo)簽對(duì)移動(dòng)讀寫器的認(rèn)證?;诖?,攻擊者可以通過(guò)監(jiān)聽(tīng)的手段,獲取移動(dòng)讀寫器與后臺(tái)服務(wù)器之間的第(4)步通信的消息,即攻擊者可以監(jiān)聽(tīng)得到
針對(duì)文獻(xiàn)[14]協(xié)議存在的安全缺陷,本文給出一種改進(jìn)的能夠抵抗攻擊者假冒攻擊的移動(dòng)RFID雙向認(rèn)證協(xié)議。改進(jìn)的協(xié)議主要從以下方面進(jìn)行修改:(1) 協(xié)議中用到的所有數(shù)據(jù)采用密文方式進(jìn)行傳輸,即所有信息加密后再傳輸;(2) 移動(dòng)讀寫器發(fā)送給標(biāo)簽的信息,不再是簡(jiǎn)單的轉(zhuǎn)發(fā),而是再次加密后再傳送給標(biāo)簽,以此應(yīng)對(duì)攻擊者發(fā)起的假冒攻擊和提供標(biāo)簽對(duì)移動(dòng)讀寫器的認(rèn)證;(3) 為降低系統(tǒng)整體的計(jì)算量,不再采用哈希函數(shù)進(jìn)行加密,而是采用計(jì)算量更少的位運(yùn)算進(jìn)行加密。
在現(xiàn)有的移動(dòng)RFID系統(tǒng)中,后臺(tái)服務(wù)器和移動(dòng)讀寫器兩個(gè)通信實(shí)體,都具備強(qiáng)大的計(jì)算能力、充足的存儲(chǔ)空間、強(qiáng)有力的查詢能力。標(biāo)簽則不具備上述優(yōu)勢(shì),計(jì)算能力較為薄弱,無(wú)法進(jìn)行復(fù)雜的計(jì)算,存儲(chǔ)空間受限,無(wú)法存放大量的數(shù)據(jù)[15-16]。
認(rèn)證協(xié)議在開(kāi)始之前會(huì)存在一個(gè)初始化過(guò)程,初始化的主要目的是完成協(xié)議開(kāi)始之前密鑰的分發(fā)以及安全存儲(chǔ)等操作。具體地,在文中設(shè)計(jì)的協(xié)議中,后臺(tái)服務(wù)器一端將會(huì)產(chǎn)生如下數(shù)據(jù):idsR、idsT、key、keyT、keyR。協(xié)議在未開(kāi)始之前,賦值idsT_new=idsT_old=idsT。后臺(tái)服務(wù)器將會(huì)通過(guò)安全路徑將信息
協(xié)議中出現(xiàn)的符號(hào)所表示的含義如表1所示。
表1 協(xié)議中符號(hào)的含義
為便于文中后續(xù)描述,約定用Sac(X⊕Y)符號(hào)表示自組合交叉位運(yùn)算。下面給出自組合交叉位運(yùn)算的定義:X和Y表示二進(jìn)制序列,長(zhǎng)度都為偶數(shù)位,X和Y進(jìn)行異或運(yùn)算得到一個(gè)新的二進(jìn)制序列Z,即Z=X⊕Y;Z的最高位和最低位保持不變,從第二位開(kāi)始至倒數(shù)第二位結(jié)束進(jìn)行遍歷,遍歷過(guò)程中,將偶數(shù)位上面的那個(gè)數(shù)放在新二進(jìn)制序列的奇數(shù)位上,將奇數(shù)位上的那個(gè)數(shù)放在新二進(jìn)制序列的偶數(shù)位上[17]。
下面以一個(gè)具體的例子對(duì)自組合交叉位運(yùn)算進(jìn)行詳細(xì)描述。X=1001 1100,Y=0011 0010,在這里X和Y兩個(gè)二進(jìn)制序列的長(zhǎng)度均為8,滿足偶數(shù)位要求。根據(jù)上述定義,Z=X⊕Y=1010 1110,Sac(X⊕Y)=Sac(Z)=1101 0110。該例子的具體流程圖如圖2所示。
圖2 自組合交叉位運(yùn)算流程圖
改進(jìn)的協(xié)議流程圖如圖3所示。
圖3 改進(jìn)的協(xié)議流程圖
結(jié)合圖3,可將改進(jìn)的協(xié)議具體步驟描述如下:
Step1移動(dòng)讀寫器產(chǎn)生一個(gè)隨機(jī)數(shù)rR。用自身產(chǎn)生的隨機(jī)數(shù)rR、存放的共享密鑰key的右半部分key_R計(jì)算得到m1;用自身產(chǎn)生的隨機(jī)數(shù)rR、存放的共享密鑰key的左半部分key_L計(jì)算得到m2。然后將{m1、m2、Query}一起發(fā)送給標(biāo)簽,開(kāi)始進(jìn)行認(rèn)證協(xié)議,Query表示雙向認(rèn)證請(qǐng)求命令。
m1、m2按照如下規(guī)則進(jìn)行計(jì)算所得到:
m1=rR⊕key_R、m2=rR⊕key_L。
Step2標(biāo)簽接收到{m1、m2、Query}信息后,先對(duì)移動(dòng)讀寫器進(jìn)行驗(yàn)證,只有在驗(yàn)證通過(guò)之后,再進(jìn)行后續(xù)操作,否則,協(xié)議終止。
標(biāo)簽利用接收到的m1、存放的共享密鑰key的右半部分key_R計(jì)算m1⊕key_R;標(biāo)簽利用接收到的m2、存放的共享密鑰key的左半部分key_L計(jì)算m2⊕key_L。比較m1⊕key_R的值與m2⊕key_L的值是否相等,不相等,則標(biāo)簽驗(yàn)證移動(dòng)讀寫器失敗,協(xié)議終止;反之,表示移動(dòng)讀寫器通過(guò)標(biāo)簽的驗(yàn)證,同時(shí)可以通過(guò)計(jì)算得到移動(dòng)讀寫器產(chǎn)生的隨機(jī)數(shù)rR。
標(biāo)簽產(chǎn)生一個(gè)隨機(jī)數(shù)rT。用自身產(chǎn)生的隨機(jī)數(shù)rT、計(jì)算得到的隨機(jī)數(shù)rR計(jì)算得到m3;用自身產(chǎn)生的隨機(jī)數(shù)rT、存放的共享密鑰key計(jì)算得到m4;用自身產(chǎn)生的隨機(jī)數(shù)rT、存放的共享密鑰keyT、存放的假名idsT計(jì)算得到m5,并將m5分成左右位數(shù)相同的兩部分m5_R、m5_L。然后將{m3、m4、m5_R}一起發(fā)送給移動(dòng)讀寫器,以此作為標(biāo)簽對(duì)移動(dòng)讀寫器的響應(yīng)。
rR、m3、m4、m5按照如下規(guī)則進(jìn)行計(jì)算所得到:
rR=m1⊕key_R(或rR=m2⊕key_L)
m3=rR⊕rTm4=Sac(rT⊕key)
m5=Sac(rT⊕keyT⊕idsT)
Step3移動(dòng)讀寫器接收到{m3、m4、m5_R}信息后,先對(duì)標(biāo)簽進(jìn)行驗(yàn)證,只有在驗(yàn)證通過(guò)之后,再進(jìn)行后續(xù)操作,否則,協(xié)議終止。
接著移動(dòng)讀寫器再利用自身產(chǎn)生的隨機(jī)數(shù)rR、存放的共享密鑰keyR、存放的假名idsR計(jì)算得到m6,并將m6分成左右位數(shù)相同的兩部分m6_R、m6_L。最后將{m1、m3、m5_R、m6_R}一起發(fā)送給后臺(tái)服務(wù)器。
m6=Sac(rR⊕keyR⊕idsR)
Step4后臺(tái)服務(wù)器接收到{m1、m3、m5_R、m6_R}信息后,先對(duì)移動(dòng)讀寫器進(jìn)行驗(yàn)證,只有在驗(yàn)證通過(guò)之后,再對(duì)標(biāo)簽進(jìn)行驗(yàn)證。當(dāng)且僅當(dāng)移動(dòng)讀寫器和標(biāo)簽都通過(guò)驗(yàn)證之后,才會(huì)進(jìn)行后續(xù)操作;否則,協(xié)議終止。
待信息更新完成,后臺(tái)服務(wù)器取計(jì)算得到的m6的左半部分m6_L,取計(jì)算得到的m5的左半部分m5_L,最后將{m5_L、m6_L}一起發(fā)送給移動(dòng)讀寫器。
Step5移動(dòng)讀寫器接收到{m5_L、m6_L}信息后,先對(duì)后臺(tái)服務(wù)器進(jìn)行驗(yàn)證,只有驗(yàn)證通過(guò)之后,才會(huì)進(jìn)行后續(xù)操作,否則,協(xié)議終止。
移動(dòng)讀寫器將接收到的m6_L與自身之前計(jì)算得到的m6_L進(jìn)行比較,不等,后臺(tái)服務(wù)器未通過(guò)驗(yàn)證,協(xié)議終止;相等,后臺(tái)服務(wù)器驗(yàn)證通過(guò),移動(dòng)讀寫器利用接收到的m5_L、自身產(chǎn)生的隨機(jī)數(shù)rR、計(jì)算得到的隨機(jī)數(shù)rT計(jì)算得到m7。最后將{m7}發(fā)送給標(biāo)簽。
m7按照如下規(guī)則進(jìn)行計(jì)算所得到:m7=m5_L⊕rR⊕rT。
Step6標(biāo)簽接收到{m7}信息后,先對(duì)移動(dòng)讀寫器和后臺(tái)服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)之后,再進(jìn)行后續(xù)操作;否則,協(xié)議終止。
標(biāo)簽利用自身之前計(jì)算得到的m5_L、自身產(chǎn)生的隨機(jī)數(shù)rT、計(jì)算得到的隨機(jī)數(shù)rR計(jì)算得到m7′。然后標(biāo)簽將接收到的m7與計(jì)算得到的m7′進(jìn)行比較,不等,后臺(tái)服務(wù)器和移動(dòng)讀寫器未通過(guò)驗(yàn)證,表明后臺(tái)服務(wù)器和移動(dòng)讀寫器兩者之中,至少有一方是偽造的,協(xié)議終止;相等,后臺(tái)服務(wù)器和移動(dòng)讀寫器驗(yàn)證通過(guò),接著標(biāo)簽一端開(kāi)始更新信息:keyT=Sac(rT⊕keyT)、idsT_new=Sac(rT⊕idsT_old),待信息更新完成,標(biāo)簽、移動(dòng)讀寫器、后臺(tái)服務(wù)器三個(gè)通信實(shí)體之間的雙向認(rèn)證完成。
m7′按照如下規(guī)則進(jìn)行計(jì)算所得到:m7′=m5_L⊕rR⊕rT。
協(xié)議最基本的功能是能夠提供通信實(shí)體之間的認(rèn)證。協(xié)議中通信實(shí)體有標(biāo)簽、后臺(tái)服務(wù)器、移動(dòng)讀寫器三方,需提供三者之間的相互認(rèn)證,本協(xié)議能夠提供該功能。
(1) 標(biāo)簽與移動(dòng)讀寫器之間的雙向認(rèn)證。協(xié)議中,標(biāo)簽對(duì)移動(dòng)讀寫器的驗(yàn)證包含兩部分:標(biāo)簽通過(guò)接收到的m1、m2對(duì)移動(dòng)讀寫器進(jìn)行第一次驗(yàn)證,具體的驗(yàn)證方法在Step 2中已詳細(xì)闡述;標(biāo)簽通過(guò)接收到的m7對(duì)移動(dòng)讀寫器進(jìn)行第二次驗(yàn)證,具體驗(yàn)證可參見(jiàn)Step 6。移動(dòng)讀寫器對(duì)標(biāo)簽的驗(yàn)證是在Step 3中完成,通過(guò)接收到的m3、m4對(duì)標(biāo)簽的驗(yàn)證,具體驗(yàn)證可參見(jiàn)Step 3。
(2) 標(biāo)簽與后臺(tái)服務(wù)器之間的雙向認(rèn)證。協(xié)議中,標(biāo)簽對(duì)后臺(tái)服務(wù)器的驗(yàn)證在Step 6中完成,通過(guò)接收到的m7對(duì)后臺(tái)服務(wù)器的驗(yàn)證。后臺(tái)服務(wù)器對(duì)標(biāo)簽的驗(yàn)證是在Step 4中完成,通過(guò)接收到的m3、m5_R對(duì)標(biāo)簽的驗(yàn)證,具體過(guò)程可見(jiàn)Step 4。
(3) 移動(dòng)讀寫器與后臺(tái)服務(wù)器之間的雙向認(rèn)證。移動(dòng)讀寫器對(duì)后臺(tái)服務(wù)器的驗(yàn)證是在Step 5中完成,通過(guò)接收到的m6_L對(duì)后臺(tái)服務(wù)器的驗(yàn)證,具體過(guò)程可見(jiàn)Step 5。后臺(tái)服務(wù)器對(duì)移動(dòng)讀寫器的驗(yàn)證是在Step 4中完成,通過(guò)接收到的m1、m6_R對(duì)移動(dòng)讀寫器的驗(yàn)證,具體過(guò)程可見(jiàn)Step 4。
重點(diǎn)闡述最后一步驟中,標(biāo)簽是如何通過(guò)m7同時(shí)完成對(duì)移動(dòng)讀寫器和后臺(tái)服務(wù)器的驗(yàn)證。m7中包含m5_L信息,該信息是后臺(tái)服務(wù)器計(jì)算得到。如果后臺(tái)服務(wù)器是偽造的,則不可能計(jì)算得到正確的m5_L信息,因此標(biāo)簽通過(guò)計(jì)算得到的m7與接收到的m7進(jìn)行比較,即可識(shí)別真?zhèn)?。同時(shí)m7中還包含有rR、rT信息,該信息是移動(dòng)讀寫器自身產(chǎn)生和計(jì)算所得。如果移動(dòng)讀寫器是偽造的,則不可能得到rR、rT信息,從而計(jì)算得到的m7也是錯(cuò)的。因此,基于上述,只要標(biāo)簽一端計(jì)算得到的m7與接收到的m7不相等,即可表明移動(dòng)讀寫器和后臺(tái)數(shù)據(jù)庫(kù)之間,至少有一方是偽造的。
協(xié)議中所有信息加密過(guò)程中均混入隨機(jī)數(shù),從而可以確保前后兩次通信信息的互異性。隨機(jī)數(shù)的混入也能夠保證通信信息的新鮮性。攻擊者會(huì)通過(guò)監(jiān)聽(tīng)的手段獲取一輪的通信信息,準(zhǔn)備通過(guò)重放該信息以獲取通信實(shí)體的隱私信息,但無(wú)法成功。雖然攻擊者通過(guò)重放監(jiān)聽(tīng)得到的信息能夠通過(guò)一方通信實(shí)體的認(rèn)證,當(dāng)通信實(shí)體回復(fù)消息給攻擊者的時(shí)候,攻擊者因?yàn)槿狈ο鄬?duì)應(yīng)的參數(shù)信息,使得攻擊者無(wú)法破解得到隱私信息。因此,攻擊者重放攻擊失敗,協(xié)議可抵抗攻擊者的重放攻擊。
去同步化攻擊是指標(biāo)簽與后臺(tái)服務(wù)器之間認(rèn)證用到的共享密鑰失去一致性。具體地,標(biāo)簽與后臺(tái)服務(wù)器兩者之間有一方進(jìn)行了密鑰更新操作,而另一方?jīng)]有進(jìn)行密鑰更新操作,從而使得兩者之間再次認(rèn)證用到的共享密鑰不再一致。文中設(shè)計(jì)的協(xié)議為了能夠抵抗攻擊者的去同步化攻擊,在后臺(tái)服務(wù)器一端不僅存放當(dāng)前一輪通信過(guò)程中用到的認(rèn)證共享密鑰keyT信息、標(biāo)簽假名idsT_new信息,還存放有上一輪認(rèn)證過(guò)程中用到的認(rèn)證共享密鑰keyT_old信息、標(biāo)簽假名idsT_old信息。當(dāng)后臺(tái)服務(wù)器用
當(dāng)前計(jì)算機(jī)的計(jì)算能力非常強(qiáng)大,攻擊者在無(wú)法進(jìn)行其他攻擊手段獲取隱私信息時(shí),可能會(huì)用更為直接和暴力的窮舉方式窮盡出隱私信息,因此協(xié)議必須能夠抵抗攻擊者的暴力破解攻擊。協(xié)議設(shè)計(jì)過(guò)程中,所有信息都是加密之后傳送,且加密過(guò)程中均混入隨機(jī)數(shù),使得攻擊者無(wú)法暴力破解任何有用的隱私信息。比如:m1=rR⊕key_R中,攻擊者通過(guò)監(jiān)聽(tīng)等手段可以獲取m1信息,但m1是密文,攻擊者只有破解出該密文才可以獲取隱私信息。對(duì)于攻擊者來(lái)說(shuō)無(wú)法窮舉出,因m1中有rR和key_R信息是攻擊者無(wú)法知曉的,且隨機(jī)數(shù)rR信息每次都是隨機(jī)產(chǎn)生,無(wú)法提前預(yù)測(cè),前后兩次的m1信息又是不相同的,因此攻擊者根本無(wú)法窮舉出任何隱私信息。基于上述,協(xié)議能夠抵抗攻擊者的暴力破解攻擊。
假冒攻擊是指攻擊者通過(guò)其他手段獲取一些通信消息,然后通過(guò)重放消息的手段,以達(dá)到蒙混過(guò)關(guān)認(rèn)證。協(xié)議能否抵抗假冒攻擊的關(guān)鍵在于,協(xié)議是否能夠提供通信實(shí)體之間的雙向認(rèn)證。在4.1節(jié)中已經(jīng)詳細(xì)分析改進(jìn)的協(xié)議能夠提供通信實(shí)體之間的雙向認(rèn)證?;诖?,即便是攻擊者通過(guò)監(jiān)聽(tīng)的方式獲取一些通信消息,然后通過(guò)重放手段,通過(guò)了三個(gè)通信實(shí)體其中一方的驗(yàn)證,并且得到該通信實(shí)體的響應(yīng)信息,但攻擊者因缺乏必備的參數(shù)信息,無(wú)法從接收到的響應(yīng)信息中分析出有用的隱私信息,因此,協(xié)議能夠抵抗攻擊者發(fā)起的假冒攻擊。
后向安全是指攻擊者通過(guò)一定的手段獲取當(dāng)前的通信消息,企圖從獲取的通信消息中,推導(dǎo)出下次的通信消息,從而分析出其中隱私信息。本文協(xié)議在設(shè)計(jì)過(guò)程中,所有通信消息都是密文傳送,為保證通信消息的安全性,所有通信消息加密過(guò)程中均混入隨機(jī)數(shù)。比如:m1=rR⊕key_R中,攻擊者不知道rR和key_R即便是攻擊者通過(guò)監(jiān)聽(tīng)等手段獲取了本輪的m1信息,想去推導(dǎo)出下輪的m1信息,也無(wú)法成功。因?yàn)殡S機(jī)數(shù)rR的混入使得攻擊者根本無(wú)法推導(dǎo)出。其一,隨機(jī)數(shù)每輪都是隨機(jī)產(chǎn)生,具備無(wú)法預(yù)測(cè)性;其二,隨機(jī)數(shù)每輪隨機(jī)產(chǎn)生的時(shí)候,均是不同的?;谝陨蟽牲c(diǎn),攻擊者無(wú)法預(yù)測(cè)下輪加密過(guò)程中用到的隨機(jī)數(shù)具體數(shù)值,所以不可能推導(dǎo)出下輪m1信息,因此,協(xié)議具備前向安全性。
表2是協(xié)議的安全性比較。
表2 協(xié)議的安全性比較
RFID系統(tǒng)中通信實(shí)體雖然有三個(gè),但移動(dòng)讀寫器及后臺(tái)服務(wù)器具備強(qiáng)大的計(jì)算能力、充足的存放空間,而標(biāo)簽卻不具備上述優(yōu)勢(shì),因此性能分析僅選擇標(biāo)簽作為對(duì)象,從標(biāo)簽一端的計(jì)算量、標(biāo)簽一端的存儲(chǔ)量角度進(jìn)行深入分析各協(xié)議的性能。具體分析見(jiàn)表3。
表3 協(xié)議的性能比較
表3中:H表示哈希函數(shù)的計(jì)算量;PR表示產(chǎn)生隨機(jī)數(shù)的計(jì)算量;PUF表示物理不可克隆函數(shù)的計(jì)算量;P表示偽隨機(jī)數(shù)函數(shù)的計(jì)算量;M表示模運(yùn)算的計(jì)算量;C表示交叉運(yùn)算的計(jì)算量;XOR表示異或運(yùn)算的計(jì)算量;Sac表示自組合交叉位運(yùn)算的計(jì)算量。所有的通信消息長(zhǎng)度均用l表示。
上述運(yùn)算可以分為兩種,一種是輕量級(jí)的計(jì)算量,另一種是超輕量級(jí)的計(jì)算量。H、PR、PUF、P、M這幾種運(yùn)算均屬于輕量級(jí)的計(jì)算;C、XOR、Sac這幾種運(yùn)算均屬于超輕量級(jí)的計(jì)算。根據(jù)不同量級(jí)的運(yùn)算定義,輕量級(jí)的計(jì)算量一般是超輕量級(jí)的計(jì)算量的若干倍。由表3可知,除本文協(xié)議之外,其他協(xié)議均存在輕量級(jí)的運(yùn)算,因此在標(biāo)簽一端的計(jì)算量方面,本文協(xié)議具有一定的優(yōu)勢(shì)。從標(biāo)簽的存儲(chǔ)空間角度出發(fā),可以看出本文協(xié)議與其他文獻(xiàn)中所提出的協(xié)議在數(shù)據(jù)的存儲(chǔ)量方面是相當(dāng)?shù)?。基于性能分析和安全性分析,本文協(xié)議在標(biāo)簽一端的計(jì)算量方面有一定的改進(jìn)和提升,同時(shí)也能夠彌補(bǔ)其他協(xié)議存在的安全缺陷問(wèn)題。
傳統(tǒng)的RFID系統(tǒng)在廣泛運(yùn)用的同時(shí),逐漸面臨新的困境。移動(dòng)式的RFID系統(tǒng)的出現(xiàn)能夠很好地彌補(bǔ)傳統(tǒng)RFID系統(tǒng)的不足,但其無(wú)法提供通信信息的安全。為了確保通信消息的安全,本文設(shè)計(jì)了適用于移動(dòng)式的RFID系統(tǒng)雙向認(rèn)證協(xié)議。在Wang等所提的協(xié)議基礎(chǔ)上,給出改進(jìn)的協(xié)議。改進(jìn)的協(xié)議必須在通信實(shí)體之間完成雙向認(rèn)證之后,才會(huì)進(jìn)行后續(xù)的操作,從而可以避免攻擊者的重放攻擊及假冒攻擊;同時(shí)為能夠抵抗攻擊者其他類型的攻擊,通信信息均加密后再傳輸,且加密過(guò)程中均混入隨機(jī)數(shù),使得攻擊者無(wú)法通過(guò)當(dāng)前竊聽(tīng)的信息推導(dǎo)出上一輪或下次的通信消息。對(duì)協(xié)議進(jìn)行安全性分析,表明協(xié)議能夠滿足移動(dòng)式的RFID系統(tǒng)的安全需求;對(duì)協(xié)議進(jìn)行性能分析,表明協(xié)議在計(jì)算量方面能夠適用于當(dāng)前的移動(dòng)式RFID系統(tǒng)中。下一步研究方向:將加載有該協(xié)議的移動(dòng)式RFID系統(tǒng)原型實(shí)現(xiàn)出來(lái),研究一個(gè)完整通信所需時(shí)間及計(jì)算量等具體參數(shù)。