張 菁, 余 意, 梅映天
(池州職業(yè)技術(shù)學(xué)院,安徽 池州 247000)
隨著RFID技術(shù)的廣泛應(yīng)用,RFID系統(tǒng)中的安全問題制約著該技術(shù)的進(jìn)一步發(fā)展[1]。但由于成本限制,RFID系統(tǒng)中標(biāo)簽的計(jì)算能力和存儲(chǔ)空間通常是有限的,一些常見的保障安全的加密算法如非對(duì)稱加密、Hash函數(shù)不能應(yīng)用于低成本的標(biāo)簽中。因此面對(duì)復(fù)雜開放的無線通信網(wǎng)絡(luò)環(huán)境,如何設(shè)計(jì)出一個(gè)能夠抵御大部分攻擊且低成本高效的RFID移動(dòng)安全認(rèn)證協(xié)議就成了一個(gè)亟需解決的問題[2]。而物理不可克隆函數(shù)[3](Physically Unclonable Functions縮寫為PUF)作為一種正在逐漸興起的硬件密碼原語,可以為資源受限的RFID設(shè)備提供安全的解決方案。本文在總結(jié)以往的研究基礎(chǔ)上,引入物理不可克隆函數(shù)(PUF,Physical Unclonable Function),提出了一種基于PUF的輕量級(jí)RFID移動(dòng)安全認(rèn)證協(xié)議(PUF-based Lightweight RFID Mobile Authentication Protocol)。
Vaudenay[4]提出的安全隱私模型對(duì)安全性與隱私性進(jìn)行了嚴(yán)格的定義,Vaudenay模型基于非對(duì)稱加密體系,對(duì)于安全協(xié)議的設(shè)計(jì)具有重要的參考作用。
本文提出的協(xié)議模型基于Vaudenay模型,同時(shí)為了適用于計(jì)算資源能力有限的標(biāo)簽做了適當(dāng)?shù)男薷奶砑恿巳缦滤镜念A(yù)言機(jī)
(1)SetupServer(1λ)→(G,DB)?;诎踩珔?shù)λ得到一個(gè)秘密生成矩陣G,初始化的標(biāo)簽產(chǎn)生一個(gè)碼C=[L,k,d],碼C的生成矩陣是G并且給每一個(gè)標(biāo)簽分配一個(gè)帶有唯一身份標(biāo)識(shí)符EPC的碼字c。
(2)SetupReader(1λ)→(K)?;诎踩珔?shù)λ地得到一個(gè)密鑰K并且同時(shí)將這個(gè)密鑰K共享給所有的合法標(biāo)簽。
(3)SetupTag(EPC)λ→(K,c,S)。該預(yù)言機(jī)生成一個(gè)擁有唯一標(biāo)識(shí)符EPC、密鑰K、碼C的唯一碼字c的標(biāo)簽,同時(shí)生成可更新內(nèi)存狀態(tài)S。對(duì)于每一個(gè)合法標(biāo)簽,(c, EPC)存儲(chǔ)在服務(wù)器的數(shù)據(jù)庫中,并且密鑰共享給所有合法閱讀器。
(4)IdentTag(#)→out。服務(wù)器、標(biāo)簽、閱讀器這3個(gè)實(shí)體在協(xié)議中進(jìn)行交互通信。如果服務(wù)器對(duì)標(biāo)簽認(rèn)證成功,則得到out=EPC,否則得到out=⊥。
在本模型中,根據(jù)攻擊者A可讀取到的標(biāo)簽對(duì)標(biāo)簽進(jìn)行分類,如果一個(gè)標(biāo)簽T在攻擊者A的讀取范圍之內(nèi),則T是標(biāo)識(shí)標(biāo)簽否則是自由標(biāo)簽。下面對(duì)攻擊者A的能力通過預(yù)言機(jī)進(jìn)行描述:
(1)CreateTag(EPC)。 A通過唯一身份標(biāo)識(shí)符EPC來創(chuàng)建標(biāo)簽,該預(yù)言機(jī)通過質(zhì)詢SetupTag(EPC)λ得到(K,c,S)來創(chuàng)建一個(gè)自由標(biāo)簽。如果b=1則該標(biāo)簽是合法的,b=0則該標(biāo)簽是非法的。(2)DrawTag(distr, n)→(vtag1, b1, vtag2, b2, …, vtagn, bn)。根據(jù)分配概率distr,A可以從自由標(biāo)簽集合中隨機(jī)選擇并進(jìn)行讀取訪問,依據(jù)bi是1還是0來判斷標(biāo)簽vtagi是否合法。
(3)FreeTag(vtag)。改變標(biāo)簽的狀態(tài)使其從標(biāo)識(shí)標(biāo)簽成為自由標(biāo)簽,從而不能被攻擊者訪問。
(4)Launch(#)。攻擊者通過讀寫器端初始化認(rèn)證協(xié)議#。
(5)SendReader(m, #)→m′。該預(yù)言機(jī)在執(zhí)行協(xié)議#過程中,發(fā)送消息m給讀寫器并且得到響應(yīng)m′。
(6)SendTag(m, tag)→m′。向標(biāo)識(shí)標(biāo)簽vtag發(fā)送質(zhì)詢消息m并且得到響應(yīng)m′。
(7)Result(#)。如果攻擊者A成功,則該預(yù)言機(jī)的輸出為1否則為 。
(8)Corrupt(vtag)。該預(yù)言機(jī)返回標(biāo)簽vtag的當(dāng)前狀態(tài)。當(dāng)標(biāo)簽vtag不再被使用時(shí),預(yù)言機(jī)將vtag的狀態(tài)從標(biāo)識(shí)狀態(tài)更改為銷毀狀態(tài)。
按照Vaudenay隱私模型,根據(jù)Corrupt(vtag)預(yù)言機(jī)的能力可以將攻擊者分為5類:①Weak。該類型的攻擊者無法訪問Corrupt(vtag)預(yù)言機(jī)。②Forward。該類型的攻擊者訪問了Corrupt(vtag)預(yù)言機(jī)后就只能訪問Corrupt(vtag)預(yù)言機(jī)。③Destructive。該類型攻擊者僅僅只能訪問Corrupt(vtag)預(yù)言機(jī),并且在訪問完之后會(huì)毀壞標(biāo)簽vtag。④Strong。該類型的攻擊者可以訪問所有的預(yù)言機(jī)。⑤Narrow。該類型的攻擊者無法訪問Result(#)預(yù)言機(jī)。
本文提出了一個(gè)基于PUF的面向低成本標(biāo)簽的輕量級(jí)認(rèn)證協(xié)議,首先對(duì)協(xié)議中各種符號(hào)含義進(jìn)行定義說明。C:矩陣G生成的二進(jìn)制碼;c:碼C的一個(gè)碼字;L:每一個(gè)參數(shù)中比特串的比特個(gè)數(shù);G:碼C的生成矩陣;K:碼C的維數(shù);D:碼C的最小距離;Rr:閱讀器生成的隨機(jī)數(shù);EPCi:第i個(gè)標(biāo)簽的唯一身份標(biāo)識(shí)符;K:標(biāo)簽和閱讀器之間的共享密鑰;N:RFID通信系統(tǒng)中所有標(biāo)簽數(shù)目;||:并運(yùn)算;⊕:異或運(yùn)算。
其內(nèi)容為①發(fā)起者選擇擁有一個(gè)最小距離為d,k×L的生成矩陣G的二維線性碼C。②矩陣生成2k個(gè)碼字。③發(fā)起者從2k個(gè)碼字中隨機(jī)選擇一個(gè)碼字c和一個(gè)唯一身份標(biāo)識(shí)符EPC賦給每一個(gè)標(biāo)簽。④發(fā)起者將密鑰K賦給所有標(biāo)簽和閱讀器。
本文提出的新要求基于如下假設(shè):① 每1個(gè)合法標(biāo)簽都有自己的物理不可克隆函數(shù)PUF模塊。②每1個(gè)合法閱讀器都有1個(gè)偽隨機(jī)數(shù)生成器。③服務(wù)器和閱讀器之間的通信信道是安全的。④閱讀器和標(biāo)簽之間的通信信道是不安全的且容易遭到攻擊者竊聽?;谝陨霞僭O(shè),本文所提出的認(rèn)證協(xié)議流程圖如圖2所示。
圖1 認(rèn)證協(xié)議流程圖
該認(rèn)證協(xié)議的認(rèn)證過程分為5個(gè)階段,具體如下所示:①閱讀器產(chǎn)生一個(gè)隨機(jī)數(shù)Rr并且計(jì)算α=Rr⊕K,閱讀器將α發(fā)生給標(biāo)簽。②標(biāo)簽接收到α之后,分別計(jì)算β=PUF(g)和γ=h(EPC‖(α⊕K)‖c)。③標(biāo)簽將β,γ發(fā)送給閱讀器。④閱讀器收到β,γ后,將自己產(chǎn)生的隨機(jī)數(shù)Rr,β,γ發(fā)送給服務(wù)器。⑤服務(wù)器收到閱讀器發(fā)送的消息后,首先將β解碼得到正確的碼字c,從服務(wù)器的數(shù)據(jù)庫中對(duì)c查詢得到EPC,接著計(jì)算δ=h(EPC‖Rr‖c),如果δ=γ則服務(wù)器對(duì)標(biāo)簽認(rèn)證成功否則失敗。
分析的內(nèi)容如下:(1)保護(hù)信息隱私。首先攻擊者A參與到RFID系統(tǒng)的信息交互中,通過DrawTag預(yù)言機(jī)訪問n個(gè)標(biāo)簽。
DrawTag(distr, n)→(vtag1, b1, vtag2, b2, …, vtagn, bn)
然后攻擊者A從標(biāo)識(shí)標(biāo)簽中隨機(jī)選擇一個(gè)標(biāo)簽vtagi并且對(duì)標(biāo)簽質(zhì)詢
Launch(#)
SendReader(init,#) →α
SendTag (α,vtagi) → (β,γ)
攻擊者A為了獲得敏感數(shù)據(jù),必須從響應(yīng)數(shù)據(jù)(α,β,γ)中知道輸入信息。由于物理不可克隆函數(shù)PUF的特性,攻擊者A從(α,β,γ)獲得敏感信息如K、EPC、c是不可能的。
(2)不可追蹤性。首先攻擊者通過質(zhì)詢DrawTag()預(yù)言機(jī)訪問n個(gè)標(biāo)簽。
DrawTag(distr, n)→(vtag1, b1, vtag2, b2, …, vtagn, bn)
從標(biāo)識(shí)標(biāo)簽集合中攻擊者A選擇兩個(gè)沒有受到入侵的標(biāo)簽vtagi和vtagj,攻擊者A從這兩個(gè)標(biāo)簽中隨機(jī)選擇一個(gè)vtagb, 其中b∈{i, j},攻擊者A對(duì)vtagb質(zhì)詢。CreatTag(EPCi) 和 CreatTag(EPCj)
Select b∈{i, j}
DrawTag(EPCb) →vtagb
Launch(#)
SendReader(init, #) →α′
SendTag(α′, vtagb) →(β′,γ′)
Free(vtagb)
攻擊者A結(jié)束會(huì)話并且輸出一個(gè)比特b′,如果攻擊者A成功追蹤則b′=1否則b′=0。為了能夠?qū)崿F(xiàn)對(duì)標(biāo)簽的追蹤,攻擊者A必須判斷響應(yīng)信息是由標(biāo)簽vtagi還是vtagj產(chǎn)生的,猜出正確的標(biāo)簽這對(duì)于攻擊者A來說是不可能的,因?yàn)槊恳粋€(gè)認(rèn)證階段的每一個(gè)響應(yīng)信息都包含有隨機(jī)數(shù),并且物理不可克隆函數(shù)PUF的隨機(jī)特性加強(qiáng)了響應(yīng)信息的隨機(jī)性.因此在本文提出的認(rèn)證協(xié)議中能夠保障不可追蹤性。
(3)去同步攻擊。通過截獲閱讀器和標(biāo)簽之間的信息來實(shí)施去同步攻擊對(duì)于攻擊者A來說幾乎不可能,因?yàn)槿缑荑€K、唯一身份標(biāo)識(shí)符EPC、碼字c這些敏感數(shù)據(jù)并不通過服務(wù)器和標(biāo)簽在任何認(rèn)證階段來進(jìn)行更新。
(4)重放攻擊。要實(shí)施重放攻擊,攻擊者可以在竊取標(biāo)簽給閱讀器的響應(yīng)消息(β,γ)并且在接下來的認(rèn)證過程中使用。在我們提出的協(xié)議中,當(dāng)閱讀器向標(biāo)簽發(fā)送一個(gè)質(zhì)詢?chǔ)粒粽咧胤乓呀?jīng)竊取到的消息(β,γ)給閱讀器,閱讀器收到攻擊者的重放消息后將(β,γ)和當(dāng)前的隨機(jī)數(shù)Rr發(fā)送給服務(wù)器,然而服務(wù)器接收到的隨機(jī)數(shù)Rr和γ中的隨機(jī)數(shù)Rr并不相同,服務(wù)器驗(yàn)證不通過并且結(jié)束認(rèn)證,隨機(jī)數(shù)Rr的新鮮性使得我們提出的協(xié)議能夠抵御重放攻擊。
(5)中間人攻擊。攻擊者A要成為標(biāo)簽和閱讀器之間的中間人來發(fā)起中間人攻擊,必須知道一些秘密消息如碼c和唯一身份標(biāo)識(shí)符EPC,但對(duì)于不知道密鑰K和矩陣G的攻擊者來說是不可能的。
(6)假冒攻擊。在本文所提出的協(xié)議中,每一個(gè)標(biāo)簽都有自己的PUF模塊。對(duì)于兩個(gè)不同的標(biāo)簽,即使相同的輸入經(jīng)過不同標(biāo)簽的PUF模塊后也會(huì)得到兩個(gè)不同的響應(yīng),所以冒充一個(gè)合法標(biāo)簽來實(shí)施假冒攻擊對(duì)于攻擊者來說是不可能的。
安全性分析表明,本文所提出的基于PUF的面向低成本標(biāo)簽的輕量級(jí)RFID安全認(rèn)證協(xié)議認(rèn)證協(xié)議能夠保障消息隱私性與不可追蹤性,抵御重放攻擊、去同步攻擊、假冒攻擊、中間人攻擊等安全威脅。