服務(wù)器查找表是標(biāo)簽在服務(wù)器數(shù)據(jù)庫(kù)中的一個(gè)索引表,如表1所示。表中對(duì)于Hj=的每一個(gè)元素分配了一個(gè)對(duì)應(yīng)的標(biāo)簽Tji,并以i作為標(biāo)簽Tji在表中的索引。兩個(gè)臨時(shí)參數(shù)與標(biāo)簽Tji相關(guān)聯(lián),將唯一標(biāo)識(shí)號(hào)IDji和密鑰Kji存儲(chǔ)也到標(biāo)簽Tji存儲(chǔ)器內(nèi),最初為隨機(jī)值。對(duì)于與Hj中的元素相關(guān)聯(lián)的每個(gè)標(biāo)簽Tji,在Hj中存儲(chǔ)的逆元素,即另外,在標(biāo)簽的內(nèi)存中,生成一個(gè)機(jī)數(shù)mR4,mR4的初值與mjinew相同。
1.4 攻擊者模型
對(duì)于RFID系統(tǒng),攻擊者主要通過(guò)竊聽(tīng)、攔截或篡改閱讀器與標(biāo)簽之間的傳輸?shù)南?shí)現(xiàn)攻擊[3]。根據(jù)文獻(xiàn)[3]攻擊者模型加以改進(jìn),設(shè)計(jì)了符合本文實(shí)驗(yàn)要求的攻擊者模型。攻擊模型如下:
1)SendTag(Msg,Tji)→Msg1:攻擊者可以向標(biāo)簽Tji發(fā)送消息Msg,標(biāo)簽Tji以消息Msg1響應(yīng)。
2)SendReader(Msg,R)→Msg2:攻擊者向給閱讀器R發(fā)送消息Msg,R回復(fù)消息Msg2。
3)DrawTags(S)查詢
攻擊者可以使用此查詢隨時(shí)從系統(tǒng)S訪問(wèn)一組標(biāo)簽。
4)Corrupt(Tji)查詢
攻擊者通過(guò)此查詢能夠訪問(wèn)標(biāo)簽存儲(chǔ)器中的數(shù)據(jù)。
在模型中,攻擊者分別對(duì)攻擊對(duì)象R和T來(lái)利用SendTag和SendReader操作執(zhí)行查詢運(yùn)算,一次能夠向至少(N-2)個(gè)標(biāo)簽發(fā)送Corrupt查詢指令,其中N是DrawTags查詢獲得的標(biāo)簽總數(shù)。
表1 RFID服務(wù)器查找表Tab.1 RFID server look-up table
2 基于循環(huán)組的RFID認(rèn)證協(xié)議
2.1 符號(hào)約定
為了便于描述,下面給出協(xié)議中所用到的標(biāo)識(shí)符及含義說(shuō)明,如表2所示。
表2 協(xié)議中的符號(hào)及含義Tab.2 Symbols and meanings in proposed protocols
2.2 協(xié)議原理
協(xié)議初始階段,閱讀器中存儲(chǔ)生成的循環(huán)組G和密鑰K,標(biāo)簽中持有標(biāo)簽ID及密鑰K,另外還有兩個(gè)臨時(shí)參數(shù)mRold和mRnew,mRold初值為0,mRnew初值為隨機(jī)數(shù)。本文提出的協(xié)議如圖1所示。
協(xié)議的具體過(guò)程描述如下:
①Hello
標(biāo)簽進(jìn)入閱讀器的閱讀范圍后,閱讀器向標(biāo)簽發(fā)送信號(hào)“Hello”,發(fā)起驗(yàn)證,開(kāi)啟認(rèn)證過(guò)程。
② Mg1:Tki→ R:{i,α}
標(biāo)簽Tki計(jì)算,并生成請(qǐng)求消息Mg1={i,α},標(biāo)簽將Mg1發(fā)送給閱讀器R。
③Mg2:R→Tki:{β,γ}
閱讀器R收到標(biāo)簽的請(qǐng)求消息Mg1后,根據(jù)表1閱讀器,使用i作為索引對(duì)所有子組執(zhí)行以下步驟,直到找到正確的標(biāo)簽。
計(jì)算Hk中的逆元素其中ak是子組Hk的發(fā)生器;
圖1 相互認(rèn)證協(xié)議流程Fig.1 Flowchart of mutual authentication protocol
閱讀器生成2個(gè)隨機(jī)數(shù)mR1和mR2,并計(jì)算β=mR1? Kki及 γ=mR2? Kki,其中 Kki是標(biāo)簽 Tki的密鑰。閱讀器生成消息Mg2={β,γ}并將其發(fā)送到標(biāo)簽。
④ Mg3:Tki→ R:{δ}
在接收到閱讀器發(fā)送消息Mg2時(shí),標(biāo)簽Tki利用其密鑰Kki分別從 β和 γ中提取出mR1和 mR2,并計(jì)算,生成消息Mg3={δ}發(fā)送給閱讀器。
⑤ Mg4:R→Tki:{ζ,η}
閱讀器收到消息Mg3之后,計(jì)算并 檢 查δ'是 否等于接收的δ,如成立,則閱讀器認(rèn)證標(biāo)簽Tki成功,閱讀器生成隨機(jī)數(shù)mR3,并設(shè)置mkiold=mkinew,且mkinew=mR3,同 時(shí),還 計(jì) 算 ζ=mR3?Kki和生成消息Mg4={ζ,η}并發(fā)送到標(biāo)簽 Tki。否則終止會(huì)話,本輪認(rèn)證結(jié)束,等待進(jìn)入下一輪認(rèn)證。
⑥驗(yàn)證結(jié)束
在接收到消息Mg4時(shí),標(biāo)簽Tki從ζ中提取mR3并計(jì)算標(biāo)簽檢查η'是否等于接收的η。如果是,則標(biāo)簽認(rèn)證閱讀器成功,并更新mR4=mR3,否則認(rèn)證失敗,本輪會(huì)話終止,進(jìn)入下一輪認(rèn)證過(guò)程。
3 隱私與安全分析
3.1 隱私分析
3.1.1 隱私及隱私實(shí)驗(yàn)?zāi)P?根據(jù)文獻(xiàn)[13],RFID系統(tǒng)隱私可用式(1)表示:
實(shí)驗(yàn)中攻擊者的主要目標(biāo)是在計(jì)算和交互限制中識(shí)別兩個(gè)不同的標(biāo)簽,如果攻擊者沒(méi)有明顯的優(yōu)勢(shì),則認(rèn)為RFID認(rèn)證協(xié)議是安全的。攻擊過(guò)程分為以下3個(gè)階段:
初始階段:攻擊者A與系統(tǒng)S交互,在不超過(guò)其界限的情況下查詢系統(tǒng)標(biāo)簽數(shù)據(jù)庫(kù)并對(duì)其進(jìn)行分析。
攻擊階段:A從數(shù)據(jù)庫(kù)獲得的標(biāo)簽集合中任意選擇兩個(gè)未損壞的標(biāo)簽。并隨機(jī)選擇其中的一個(gè),攻擊者獲取并分析該標(biāo)簽上的數(shù)據(jù)。
估算階段:A輸出估算位b。如果估算成功,則應(yīng)b=1,否則b=0。
如果b=1,實(shí)驗(yàn)?zāi)P虴是成功的。
3.1.2 隱私級(jí)別的度量 當(dāng)一些標(biāo)簽被泄露時(shí),所有標(biāo)簽都被分區(qū),隱私權(quán)度量標(biāo)準(zhǔn)是使用不相交的標(biāo)簽分區(qū)進(jìn)行觀察,使得攻擊者不能區(qū)分屬于同一分區(qū)的標(biāo)簽,但可以區(qū)別屬于不同分區(qū)的標(biāo)簽[14]。表示分區(qū)Pi的大小,N為標(biāo)簽數(shù),是隨機(jī)選擇的標(biāo)簽屬于分區(qū)Pi的概率。本文根據(jù)匿名集和數(shù)據(jù)泄漏分析所提出的方案的隱私級(jí)別。
1)基于匿名集的隱私級(jí)別
基于匿名集的隱私級(jí)別ρ被表征為用標(biāo)簽總數(shù)N標(biāo)準(zhǔn)化的平均匿名集大?。?1],如式(2)所示:
協(xié)議中攻擊者無(wú)法區(qū)分兩個(gè)標(biāo)簽是否屬于同一個(gè)子組,因此,如果D是整個(gè)系統(tǒng)中受攻擊標(biāo)簽的總數(shù),分為D個(gè)匿名集,另一個(gè)是未受攻擊標(biāo)簽?zāi)涿瘋€(gè)數(shù)(N-D),每個(gè)匿名集的大小為皆為1。結(jié)合等式(2),所提協(xié)議實(shí)現(xiàn)的隱私級(jí)別可表示為:
2)基于信息泄漏的隱私級(jí)別
如果攻擊者將具有N個(gè)標(biāo)簽的系統(tǒng)劃分為k個(gè)不相交集,則信息泄漏Π可以表示為式(4):
在所提出的協(xié)議中,根據(jù)上文分區(qū)集,結(jié)合等式(4),信息泄漏Π可以表示為式(5):
3.1.3 隱私分析
定理1所提出的協(xié)議具有隱私安全性。
證明假設(shè)提出的協(xié)議不能保護(hù)RFID系統(tǒng)信息隱私。則攻擊者贏得實(shí)驗(yàn)的成功概率是不可忽視的。攻擊者A的隱私攻擊過(guò)程分為如下3個(gè)階段:
初始階段:攻擊者A通過(guò)查詢操作獲取一組標(biāo)簽。
A通過(guò)DrawTag查詢發(fā)送信息到標(biāo)簽Ti,在不超出其計(jì)算范圍的情況下分析標(biāo)簽數(shù)據(jù)。A可以使用Corrupt查詢來(lái)處理最多n-2個(gè)標(biāo)簽。執(zhí)行步驟如下
攻擊階段:攻擊者A從DrawTags查詢獲得的標(biāo)簽中任選兩個(gè)未損壞的標(biāo)簽,例如Ti和Tj,作為攻擊標(biāo)簽,令b∈{i,j}。隨機(jī)選擇其中的Tb并分析在其上運(yùn)行SendTag查詢。執(zhí)行步驟如下:
估算階段:攻擊者輸出相應(yīng)標(biāo)簽的估算位b'。如果b'=b,攻擊者會(huì)贏得實(shí)驗(yàn)。但這種情況只有當(dāng)攻擊者知道存儲(chǔ)在Tb的內(nèi)存及其母群G中的所有秘鑰時(shí)才有可能,顯然這是不可能的,上述假設(shè)是錯(cuò)誤的。因此,所提出的協(xié)議保護(hù)了RFID系統(tǒng)的隱私。
3.1.4 不可追溯分析
定理2所提出的協(xié)議對(duì)于攻擊者具有不可追溯性。
證明:假設(shè)所提議的協(xié)議是可追溯的,即攻擊者可以隨時(shí)追蹤標(biāo)簽,這意味著攻擊者能夠區(qū)分任意兩個(gè)標(biāo)簽。攻擊者對(duì)標(biāo)簽的追溯同樣可分為如下3個(gè)階段,初始階段:攻擊者對(duì)RFID系統(tǒng)S使用DrawTags查詢?cè)L問(wèn)標(biāo)簽。對(duì)標(biāo)簽和閱讀器,分別執(zhí)行SendTag和SendReader查詢,以獲得并分析閱讀器和標(biāo)簽之間傳輸?shù)男畔?。本階段執(zhí)行步驟如下:
攻擊階段:攻擊者選擇兩個(gè)未損壞的標(biāo)簽Ti和Tj,并向他們發(fā)送Corrupt查詢。A隨機(jī)選擇Tb:b∈{i,j}。攻擊者將對(duì)查詢到標(biāo)簽Tb進(jìn)行評(píng)估。
估算階段:A輸出估算位b'。
如果b'=b,攻擊者將贏得比賽,但只有在Pr[Mg1?=Mg1]=1的情況下才有可能,而且由于消息Mg1取決于標(biāo)簽的隨機(jī)數(shù)mR4,mR4它在每次認(rèn)證過(guò)程中都是不同的,顯然上式難以成立。因此,上述假設(shè)是錯(cuò)誤的,即攻擊者無(wú)法追蹤標(biāo)簽。
3.2 安全分析
3.2.1 抵抗重放攻擊 重放攻擊的攻擊者可以竊聽(tīng)無(wú)線信道,捕獲并分析在閱讀器和標(biāo)簽之間先前所傳輸?shù)南ⅲ?5]。在所提出的方案中,攻擊者偽造消息作為有效標(biāo)簽/讀取器是不可行的,因?yàn)槊看伟l(fā)送的消息在每次認(rèn)證會(huì)話中都會(huì)生成新的隨機(jī)數(shù),這是攻擊者無(wú)法提前獲得的,這是因?yàn)殡S機(jī)的異或運(yùn)算(XOR)具有攻擊者無(wú)法獲知的密鑰K,所以即使不法分子截取到之前的應(yīng)答消息,也無(wú)法通過(guò)重放應(yīng)答消息,最終使得攻擊者的所有重播消息都是非法消息。因此,基于上述的分析,本協(xié)議方案可以成功阻止重放攻擊。
3.2.2 抵抗中間人攻擊 因?yàn)樵诖握J(rèn)證過(guò)程中,發(fā)送的消息中使用新的隨機(jī)數(shù),從發(fā)送的消息中估算或計(jì)算這些值的概率可以忽略不計(jì),而攻擊者在不知道密鑰、唯一標(biāo)識(shí)號(hào)和循環(huán)組數(shù)據(jù)的情況下攔截任何傳輸?shù)南⑹遣豢尚诺?。因此攻擊者無(wú)法在閱讀器和標(biāo)簽之間充當(dāng)中間人,所以本文協(xié)議可以有效的抵抗中間人攻擊。
3.2.3 抵抗去同步攻擊 對(duì)于每個(gè)標(biāo)簽,服務(wù)器在其數(shù)據(jù)庫(kù)中存儲(chǔ)兩個(gè)對(duì)應(yīng)的隨機(jī)數(shù)mRold和mRnew,服務(wù)器會(huì)在成功進(jìn)行身份驗(yàn)證會(huì)話后更新這些值,而攻擊者獲得認(rèn)證前未更新的隨機(jī)數(shù)的值是無(wú)用的,因此攻擊者不可能使認(rèn)證過(guò)程失去同步。
3.2.4 防范偽造攻擊 本文協(xié)議采用了閱讀器和標(biāo)簽之間按流程相互認(rèn)證的方法,認(rèn)證信息在接收時(shí)對(duì)發(fā)送方的身份進(jìn)行認(rèn)證后再進(jìn)行計(jì)算。由于密鑰信息具有機(jī)密性且在每次認(rèn)證后又隨機(jī)化,使得攻擊者即使獲得閱讀器或標(biāo)簽的標(biāo)識(shí)或認(rèn)證前的密鑰也是不可信的,無(wú)法偽造標(biāo)簽或閱讀器,不能實(shí)現(xiàn)攻擊者與閱讀器或標(biāo)簽的相互認(rèn)證,因此協(xié)議可以防范閱讀器或標(biāo)簽偽造攻擊。
4 性能分析及仿真實(shí)驗(yàn)
4.1 性能分析
本文提出的協(xié)議方案在標(biāo)簽計(jì)算、服務(wù)器計(jì)算和存儲(chǔ)方面的效率,如表3所示。協(xié)議方案的搜索復(fù)雜度是O(γ),僅執(zhí)行取摸和異或運(yùn)算,與文獻(xiàn)[4]的搜素復(fù)雜度相當(dāng),但與文獻(xiàn)[10]相比本文所設(shè)計(jì)安全認(rèn)證協(xié)議相比具一定的的優(yōu)勢(shì)。假設(shè)協(xié)議中使用的所有參數(shù)都是L比特位長(zhǎng),本協(xié)議在標(biāo)簽側(cè)保留4個(gè)數(shù)據(jù)項(xiàng)信息,因此存儲(chǔ)成本是4L比特。另外,本協(xié)議不在標(biāo)簽側(cè)使用任何隨機(jī)數(shù)生成器函數(shù),而是在閱讀器側(cè)運(yùn)行偽隨機(jī)數(shù)生成的隨機(jī)數(shù),與文獻(xiàn)[4]和文獻(xiàn)[10]進(jìn)行比較,減少了標(biāo)簽的計(jì)算量,本協(xié)議計(jì)算過(guò)程標(biāo)簽存儲(chǔ)空間開(kāi)銷較小,較好的節(jié)省輕量級(jí)標(biāo)簽的制造成本。
表3 計(jì)算成本和性能比較Tab.3 Comparison of cost and performance of computation
4.2 仿真實(shí)驗(yàn)
在仿真實(shí)驗(yàn)中,RFID系統(tǒng)設(shè)定N=1024個(gè)標(biāo)簽,標(biāo)簽被隨機(jī)分成64組,選擇從0到512個(gè)受攻擊標(biāo)簽數(shù)的范圍。在所提出的方案中,不必在每個(gè)組中采用相同數(shù)量的標(biāo)簽。對(duì)系統(tǒng)中D個(gè)受攻擊的標(biāo)簽運(yùn)行100次模擬。根基公式(3)和公式(5),在實(shí)驗(yàn)中,在每次模擬運(yùn)行中,從所有標(biāo)簽組中隨機(jī)選擇受攻擊標(biāo)簽,分別就基于匿名集RFID系統(tǒng)隱私級(jí)別和基于信息泄漏的RFID系統(tǒng)隱私級(jí)別,對(duì)文獻(xiàn)[4]和文獻(xiàn)[10]及本文所設(shè)計(jì)的認(rèn)證方案進(jìn)行MATLAB仿真實(shí)驗(yàn)與計(jì)算,仿真結(jié)果如圖2所示。圖2(a)的仿真結(jié)果表明,該方案實(shí)現(xiàn)的隱私級(jí)別比文獻(xiàn)[4]和文獻(xiàn)[10]的協(xié)議均有所提高,經(jīng)計(jì)算分別提高了51.5%和98.2%。當(dāng)D變?yōu)?12時(shí),根據(jù)圖2(b)所示的仿真結(jié)果,所提出的協(xié)議比文獻(xiàn)[4]和文獻(xiàn)[10]的方案泄露的信息均有降低,有計(jì)算得知分別減少了30.5%和50.6%。因此當(dāng)標(biāo)簽被攻擊時(shí),所提出的方案在隱私級(jí)別和信息泄漏方面比其他協(xié)議有更優(yōu)秀的表現(xiàn)。
圖2 RFID系統(tǒng)隱私級(jí)別:(a)基于匿名集,(b)基于信息泄漏Fig.2 Levels of privacy of RFID system :(a)based on anonymous set,(b)based on information leakage
5 結(jié) 語(yǔ)
本文在研究常見(jiàn)RFID系統(tǒng)認(rèn)證協(xié)議的基礎(chǔ)上,提出了一種基于循環(huán)組的RFID系統(tǒng)安全認(rèn)證協(xié)議方案,并詳細(xì)分析在RFID系統(tǒng)受到典型攻擊的情形下,所提出的協(xié)議在信息隱私和安全方面的性能表現(xiàn)。該協(xié)議的最大特點(diǎn)是基于標(biāo)簽側(cè)的取摸(Mod)和按位XOR運(yùn)算,使用非常少的資源來(lái)存儲(chǔ)數(shù)據(jù)和執(zhí)行運(yùn)算,協(xié)議的算法復(fù)雜度較小,執(zhí)行效率較高。性能分析和仿真實(shí)驗(yàn)結(jié)果表明,當(dāng)RFID系統(tǒng)部分標(biāo)簽受到攻擊時(shí),所提出的協(xié)議具有較高的隱私性能和安全級(jí)別,而且有著成本低優(yōu)勢(shì)。今后的研究重點(diǎn)是如何把所提出的協(xié)議應(yīng)用在RFID實(shí)際系統(tǒng)中,為RFID的安全與應(yīng)用提供更好的保障。