張 菁, 余 意, 梅映天
(池州職業技術學院,安徽 池州 247000)
隨著RFID技術的廣泛應用,RFID系統中的安全問題制約著該技術的進一步發展[1]。但由于成本限制,RFID系統中標簽的計算能力和存儲空間通常是有限的,一些常見的保障安全的加密算法如非對稱加密、Hash函數不能應用于低成本的標簽中。因此面對復雜開放的無線通信網絡環境,如何設計出一個能夠抵御大部分攻擊且低成本高效的RFID移動安全認證協議就成了一個亟需解決的問題[2]。而物理不可克隆函數[3](Physically Unclonable Functions縮寫為PUF)作為一種正在逐漸興起的硬件密碼原語,可以為資源受限的RFID設備提供安全的解決方案。本文在總結以往的研究基礎上,引入物理不可克隆函數(PUF,Physical Unclonable Function),提出了一種基于PUF的輕量級RFID移動安全認證協議(PUF-based Lightweight RFID Mobile Authentication Protocol)。
Vaudenay[4]提出的安全隱私模型對安全性與隱私性進行了嚴格的定義,Vaudenay模型基于非對稱加密體系,對于安全協議的設計具有重要的參考作用。
本文提出的協議模型基于Vaudenay模型,同時為了適用于計算資源能力有限的標簽做了適當的修改添加了如下所示的預言機
(1)SetupServer(1λ)→(G,DB)。基于安全參數λ得到一個秘密生成矩陣G,初始化的標簽產生一個碼C=[L,k,d],碼C的生成矩陣是G并且給每一個標簽分配一個帶有唯一身份標識符EPC的碼字c。
(2)SetupReader(1λ)→(K)。基于安全參數λ地得到一個密鑰K并且同時將這個密鑰K共享給所有的合法標簽。
(3)SetupTag(EPC)λ→(K,c,S)。該預言機生成一個擁有唯一標識符EPC、密鑰K、碼C的唯一碼字c的標簽,同時生成可更新內存狀態S。對于每一個合法標簽,(c, EPC)存儲在服務器的數據庫中,并且密鑰共享給所有合法閱讀器。
(4)IdentTag(#)→out。服務器、標簽、閱讀器這3個實體在協議中進行交互通信。如果服務器對標簽認證成功,則得到out=EPC,否則得到out=⊥。
在本模型中,根據攻擊者A可讀取到的標簽對標簽進行分類,如果一個標簽T在攻擊者A的讀取范圍之內,則T是標識標簽否則是自由標簽。下面對攻擊者A的能力通過預言機進行描述:
(1)CreateTag(EPC)。 A通過唯一身份標識符EPC來創建標簽,該預言機通過質詢SetupTag(EPC)λ得到(K,c,S)來創建一個自由標簽。如果b=1則該標簽是合法的,b=0則該標簽是非法的。(2)DrawTag(distr, n)→(vtag1, b1, vtag2, b2, …, vtagn, bn)。根據分配概率distr,A可以從自由標簽集合中隨機選擇并進行讀取訪問,依據bi是1還是0來判斷標簽vtagi是否合法。
(3)FreeTag(vtag)。改變標簽的狀態使其從標識標簽成為自由標簽,從而不能被攻擊者訪問。
(4)Launch(#)。攻擊者通過讀寫器端初始化認證協議#。
(5)SendReader(m, #)→m′。該預言機在執行協議#過程中,發送消息m給讀寫器并且得到響應m′。
(6)SendTag(m, tag)→m′。向標識標簽vtag發送質詢消息m并且得到響應m′。
(7)Result(#)。如果攻擊者A成功,則該預言機的輸出為1否則為 。
(8)Corrupt(vtag)。該預言機返回標簽vtag的當前狀態。當標簽vtag不再被使用時,預言機將vtag的狀態從標識狀態更改為銷毀狀態。
按照Vaudenay隱私模型,根據Corrupt(vtag)預言機的能力可以將攻擊者分為5類:①Weak。該類型的攻擊者無法訪問Corrupt(vtag)預言機。②Forward。該類型的攻擊者訪問了Corrupt(vtag)預言機后就只能訪問Corrupt(vtag)預言機。③Destructive。該類型攻擊者僅僅只能訪問Corrupt(vtag)預言機,并且在訪問完之后會毀壞標簽vtag。④Strong。該類型的攻擊者可以訪問所有的預言機。⑤Narrow。該類型的攻擊者無法訪問Result(#)預言機。
本文提出了一個基于PUF的面向低成本標簽的輕量級認證協議,首先對協議中各種符號含義進行定義說明。C:矩陣G生成的二進制碼;c:碼C的一個碼字;L:每一個參數中比特串的比特個數;G:碼C的生成矩陣;K:碼C的維數;D:碼C的最小距離;Rr:閱讀器生成的隨機數;EPCi:第i個標簽的唯一身份標識符;K:標簽和閱讀器之間的共享密鑰;N:RFID通信系統中所有標簽數目;||:并運算;⊕:異或運算。
其內容為①發起者選擇擁有一個最小距離為d,k×L的生成矩陣G的二維線性碼C。②矩陣生成2k個碼字。③發起者從2k個碼字中隨機選擇一個碼字c和一個唯一身份標識符EPC賦給每一個標簽。④發起者將密鑰K賦給所有標簽和閱讀器。
本文提出的新要求基于如下假設:① 每1個合法標簽都有自己的物理不可克隆函數PUF模塊。②每1個合法閱讀器都有1個偽隨機數生成器。③服務器和閱讀器之間的通信信道是安全的。④閱讀器和標簽之間的通信信道是不安全的且容易遭到攻擊者竊聽。基于以上假設,本文所提出的認證協議流程圖如圖2所示。

圖1 認證協議流程圖
該認證協議的認證過程分為5個階段,具體如下所示:①閱讀器產生一個隨機數Rr并且計算α=Rr⊕K,閱讀器將α發生給標簽。②標簽接收到α之后,分別計算β=PUF(g)和γ=h(EPC‖(α⊕K)‖c)。③標簽將β,γ發送給閱讀器。④閱讀器收到β,γ后,將自己產生的隨機數Rr,β,γ發送給服務器。⑤服務器收到閱讀器發送的消息后,首先將β解碼得到正確的碼字c,從服務器的數據庫中對c查詢得到EPC,接著計算δ=h(EPC‖Rr‖c),如果δ=γ則服務器對標簽認證成功否則失敗。
分析的內容如下:(1)保護信息隱私。首先攻擊者A參與到RFID系統的信息交互中,通過DrawTag預言機訪問n個標簽。
DrawTag(distr, n)→(vtag1, b1, vtag2, b2, …, vtagn, bn)
然后攻擊者A從標識標簽中隨機選擇一個標簽vtagi并且對標簽質詢
Launch(#)
SendReader(init,#) →α
SendTag (α,vtagi) → (β,γ)
攻擊者A為了獲得敏感數據,必須從響應數據(α,β,γ)中知道輸入信息。由于物理不可克隆函數PUF的特性,攻擊者A從(α,β,γ)獲得敏感信息如K、EPC、c是不可能的。
(2)不可追蹤性。首先攻擊者通過質詢DrawTag()預言機訪問n個標簽。
DrawTag(distr, n)→(vtag1, b1, vtag2, b2, …, vtagn, bn)
從標識標簽集合中攻擊者A選擇兩個沒有受到入侵的標簽vtagi和vtagj,攻擊者A從這兩個標簽中隨機選擇一個vtagb, 其中b∈{i, j},攻擊者A對vtagb質詢。CreatTag(EPCi) 和 CreatTag(EPCj)
Select b∈{i, j}
DrawTag(EPCb) →vtagb
Launch(#)
SendReader(init, #) →α′
SendTag(α′, vtagb) →(β′,γ′)
Free(vtagb)
攻擊者A結束會話并且輸出一個比特b′,如果攻擊者A成功追蹤則b′=1否則b′=0。為了能夠實現對標簽的追蹤,攻擊者A必須判斷響應信息是由標簽vtagi還是vtagj產生的,猜出正確的標簽這對于攻擊者A來說是不可能的,因為每一個認證階段的每一個響應信息都包含有隨機數,并且物理不可克隆函數PUF的隨機特性加強了響應信息的隨機性.因此在本文提出的認證協議中能夠保障不可追蹤性。
(3)去同步攻擊。通過截獲閱讀器和標簽之間的信息來實施去同步攻擊對于攻擊者A來說幾乎不可能,因為如密鑰K、唯一身份標識符EPC、碼字c這些敏感數據并不通過服務器和標簽在任何認證階段來進行更新。
(4)重放攻擊。要實施重放攻擊,攻擊者可以在竊取標簽給閱讀器的響應消息(β,γ)并且在接下來的認證過程中使用。在我們提出的協議中,當閱讀器向標簽發送一個質詢α,攻擊者重放已經竊取到的消息(β,γ)給閱讀器,閱讀器收到攻擊者的重放消息后將(β,γ)和當前的隨機數Rr發送給服務器,然而服務器接收到的隨機數Rr和γ中的隨機數Rr并不相同,服務器驗證不通過并且結束認證,隨機數Rr的新鮮性使得我們提出的協議能夠抵御重放攻擊。
(5)中間人攻擊。攻擊者A要成為標簽和閱讀器之間的中間人來發起中間人攻擊,必須知道一些秘密消息如碼c和唯一身份標識符EPC,但對于不知道密鑰K和矩陣G的攻擊者來說是不可能的。
(6)假冒攻擊。在本文所提出的協議中,每一個標簽都有自己的PUF模塊。對于兩個不同的標簽,即使相同的輸入經過不同標簽的PUF模塊后也會得到兩個不同的響應,所以冒充一個合法標簽來實施假冒攻擊對于攻擊者來說是不可能的。
安全性分析表明,本文所提出的基于PUF的面向低成本標簽的輕量級RFID安全認證協議認證協議能夠保障消息隱私性與不可追蹤性,抵御重放攻擊、去同步攻擊、假冒攻擊、中間人攻擊等安全威脅。