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