適用于供應(yīng)鏈的RFID讀寫器-標(biāo)簽雙向認(rèn)證協(xié)議
文章出處:http://botanicstilllife.com 作者:蔡韶穎 趙一鳴 人氣: 發(fā)表時間:2011年10月15日
0 引 言
RFID技術(shù)是一種非接觸自動識別技術(shù),它利用射頻信號的空間藕合(交變磁場或電磁場)實現(xiàn)無接觸信息傳遞并通過所傳遞的信息達(dá)到識別一個對象的目的,在供應(yīng)鏈管理、訪問控制、動物追蹤等領(lǐng)域中已經(jīng)得到廣泛的應(yīng)用。
在供應(yīng)鏈管理中引入RFID系統(tǒng),能夠提高供應(yīng)鏈的可視性,改善供應(yīng)鏈的操作效率,為整個供應(yīng)鏈提供高效的實時的信息,有效地預(yù)防偷盜、遺失和假冒的發(fā)生。供應(yīng)鏈中安全的標(biāo)簽和讀寫器間交互協(xié)議應(yīng)該滿足以下要求:只有合法的讀寫器才能從標(biāo)簽發(fā)送的信息中獲取其所屬物品的相關(guān)信息,只有合法的標(biāo)簽才能被讀寫器有效地識別,攻擊者不能跟蹤標(biāo)簽。
文獻(xiàn)[1]提出了HashLock協(xié)議,使用匿名ID來保護(hù)標(biāo)簽的內(nèi)容,但是由于匿名ID是靜態(tài)的,因此標(biāo)簽不能抵抗跟蹤攻擊。文獻(xiàn)[2]使用Hash鏈來更新標(biāo)簽的秘密,然而該協(xié)議不能抵抗重傳攻擊,攻擊者可以假冒合法的標(biāo)簽。文獻(xiàn)[3]提出的數(shù)字圖書館RFID協(xié)議中,引入了基于樹的認(rèn)證協(xié)議的概念,這個方案雖然降低了后端服務(wù)器的搜索時間,但協(xié)議運行的輪次大大提高,此外,標(biāo)簽上需存儲logn個秘密,由于logn-1個秘密是和其它標(biāo)簽共享,這個方案中很難實現(xiàn)對標(biāo)簽秘密的更新。文獻(xiàn)[1]提出了基于門限秘密共享的方案,解決了秘密分發(fā)的問題,對標(biāo)簽的成本需求最低,但是這個方案中標(biāo)簽不具備抗跟蹤性。
除了以上幾種典型的協(xié)議,最近幾年,出現(xiàn)了大量的隨機(jī)化的詢問應(yīng)答雙向認(rèn)證協(xié)議,如文獻(xiàn)[5]提出的協(xié)議等。這類協(xié)議中,每個標(biāo)簽和讀寫器共享一些秘密,這些秘密在讀寫器的后端數(shù)據(jù)庫中和標(biāo)簽的一些信息關(guān)聯(lián)。為了避免重放攻擊,讀寫器和標(biāo)簽在每個會話中都產(chǎn)生和使用隨機(jī)數(shù),這使得每個標(biāo)簽的回復(fù)不可以預(yù)計算,后端數(shù)據(jù)庫在線識別每個標(biāo)簽的代價是O(n)。和其它的RFID技術(shù)的應(yīng)用相比,供應(yīng)鏈管理由于批量處理大量標(biāo)簽的特性而對性能要求最高。然而這類協(xié)議不具備可擴(kuò)展性(可擴(kuò)展性是指當(dāng)識別一個標(biāo)簽的代價不會隨著標(biāo)簽總數(shù)量增大而明顯增大)。
文獻(xiàn)[6]對部分協(xié)議有詳盡的分析。由于目前還沒有適用于供應(yīng)鏈的可擴(kuò)展讀寫器.標(biāo)簽雙向認(rèn)證協(xié)議,我們針對供應(yīng)鏈中貨品大批量處理以及處理流程的可預(yù)知性,提出一種適用于供應(yīng)鏈的可擴(kuò)展的讀寫器一標(biāo)簽雙向認(rèn)證協(xié)議。
1 供應(yīng)鏈的RFID系統(tǒng)模型
在通用的供應(yīng)鏈的模型上,一個供應(yīng)鏈上有多個參與者。貨物經(jīng)過一個參與者的處理之后,被移交給下一個參與者。在這個過程中,一批貨物每次只屬于一個參與者。在一個參與者處理的過程中,可能需要多次讀取標(biāo)簽上的信息。在一個參與者處理完貨物之后,貨物被移交給供應(yīng)鏈中的下一個參與者。通用的RFID系統(tǒng)由三個主要部件構(gòu)成:標(biāo)簽(Tag)、標(biāo)簽讀寫器(Reader)和后端數(shù)據(jù)庫(Backend Database)。標(biāo)簽由芯片與天線組成,存儲相關(guān)對象的信息。標(biāo)簽讀寫器,簡稱讀寫器,是一個帶有天線的無線發(fā)射與接受設(shè)備,可以對標(biāo)簽進(jìn)行讀寫操作。后端數(shù)據(jù)庫用于存放系統(tǒng)中所有標(biāo)簽所標(biāo)識對象的有關(guān)數(shù)據(jù),接受讀寫器對特定標(biāo)簽信息的檢索。
根據(jù)一般的供應(yīng)鏈的流程,建立如圖1所示供應(yīng)鏈RFID系統(tǒng)模型。這里P代表參與者,S代表后端數(shù)據(jù)庫,R代表讀寫器, 代表標(biāo)簽 在我們的系統(tǒng)中,每個參與者有一個中心服務(wù)器,所有的讀寫器都與其連接,中心數(shù)據(jù)庫也是該參與者內(nèi)所有讀寫器的后端數(shù)據(jù)庫。讀寫器和后端數(shù)據(jù)庫具有較強的存儲和計算能力,本文將二者作為一個整體看待,即默認(rèn)讀寫器是帶有后端數(shù)據(jù)庫的高性能計算機(jī)。標(biāo)簽的存儲空間和計算能力比較有限。在讀寫器和標(biāo)簽之間的通信信道上,使用Dolev—Yao攻擊者模型,即攻擊者能監(jiān)聽、阻止、修改或插入讀寫器或標(biāo)簽發(fā)送的信息。
圖1 供應(yīng)鏈RFID系統(tǒng)模型
在供應(yīng)鏈RFID系統(tǒng)中,至少應(yīng)該包含兩個協(xié)議,即讀寫器-標(biāo)簽雙向認(rèn)證協(xié)議和標(biāo)簽所有權(quán)移交協(xié)議。讀寫器.標(biāo)簽雙向認(rèn)證協(xié)議用來保證合法的參與者在貨物處理或運輸過程中對貨物的安全識別。當(dāng)貨物要從一個參與者P 移交到下一個參與者P,時,需要運行標(biāo)簽所有權(quán)移交協(xié)議使得P,識別標(biāo)簽并更新標(biāo)簽的秘密。本文完成讀寫器一標(biāo)簽雙向認(rèn)證協(xié)議的設(shè)計。
2 讀寫器一標(biāo)簽雙向認(rèn)證協(xié)議
供應(yīng)鏈和其它RFID應(yīng)用的最為顯著區(qū)別就是:(1)帶有標(biāo)簽的貨物是成批處理的;(2)對于任一個參與者,貨物在其內(nèi)部的處理流程是可預(yù)知的,也就是要讀取標(biāo)簽的次數(shù)是可以預(yù)先估計的。這兩個特性為設(shè)計高效的認(rèn)證協(xié)議提供了一個切入點。本文采用了一種全新的機(jī)制,每個標(biāo)簽和讀寫器共享一個秘密,這個秘密在讀寫器上作為標(biāo)簽身份的索引。讀寫器首先發(fā)送一個認(rèn)證碼給標(biāo)簽,每批標(biāo)簽都設(shè)定同一個值用來認(rèn)證驗證碼的安全性。標(biāo)簽驗證認(rèn)證碼合法后發(fā)送匿名ID。匿名ID的值和認(rèn)證碼及共享的秘密相關(guān),合法的讀寫器可以預(yù)先計算并排序所有標(biāo)簽的匿名ID,因此在線識別一個標(biāo)簽是通過查找匿名ID列表找到和標(biāo)簽發(fā)的匿名ID相等的值。當(dāng)讀寫器識別標(biāo)簽后,發(fā)送回復(fù)信息給標(biāo)簽,標(biāo)簽驗證回復(fù)合法之后,更新標(biāo)簽上用來驗證認(rèn)證碼的值。一個認(rèn)證碼只能使用一次,標(biāo)簽每次所發(fā)的匿名ID都是變化的,只有合法的讀寫器才能識別標(biāo)簽。攻擊者不能由監(jiān)聽到的認(rèn)證碼計算一個合法的認(rèn)證碼。
2.1 初始化 .
參與者Pj中標(biāo)簽的最多被讀取次數(shù)標(biāo)記為m。Pi選擇一個隨機(jī)數(shù)a0,計算a1=h(a0),a2=h(a1),a3=h(a2),... ,am =h(a m-1 )。其中h:{0,1}’→{0,1} 是一個單向哈希函數(shù),l是該RFID系統(tǒng)的安全參數(shù),默認(rèn)本文中所有變量的長度都為l。Pj的中心數(shù)據(jù)庫sj保存a 0,a 1,...,a m-1的值。這些值將按逆序依次分配給讀寫器作為認(rèn)證碼。首先,我們在標(biāo)簽上保存a ,此時標(biāo)簽?zāi)芙邮艿奈ㄒ或炞C碼是a 1。當(dāng)雙向認(rèn)證成功后,標(biāo)簽上am 的值被a m-1,取代,此時,標(biāo)簽?zāi)芙邮艿奈ㄒ或炞C碼是a m-2,以此類推。下面是在貨物從P j-1 移交到P j后,標(biāo)簽和中心數(shù)據(jù)庫的初始化。
標(biāo)簽初始化
標(biāo)簽Ti上保存兩個值,(bi,ki )。對于1≤i≤n,n是所有標(biāo)簽的數(shù)量,Pj設(shè)定b。=n ,k 為一個隨機(jī)串作為標(biāo)簽和數(shù)據(jù)庫s j共享的新秘密。
中心數(shù)據(jù)庫初始化每個標(biāo)簽Ti ,對于0≤t≤m-l,中心數(shù)據(jù)庫sj計算h(a t ‖k i)的值,h(a t‖k i )是標(biāo)簽T i對于合法認(rèn)證碼a t回復(fù)的匿名ID。中心數(shù)據(jù)庫結(jié)構(gòu)如表1所示。
表1 中心數(shù)據(jù)庫結(jié)構(gòu)
2.2 協(xié)議描述
當(dāng)Pj第一次要讀取標(biāo)簽時,讀寫器從中心服務(wù)器得到這批標(biāo)簽當(dāng)前合法的認(rèn)證碼a m-1 ,當(dāng)使用a m-1 成功和一個標(biāo)簽實現(xiàn)雙向認(rèn)證后,標(biāo)簽更新用來認(rèn)證認(rèn)證碼的值b i,a m-1 不再是合法的認(rèn)證碼。當(dāng)一批標(biāo)簽初理完,所有的標(biāo)簽可接受的認(rèn)證碼都變成口。第二次要處理標(biāo)簽時,讀寫器從中心服務(wù)器得到新的認(rèn)證碼a m-2。認(rèn)證碼是使用單向哈希函數(shù)生成,攻擊者無法從監(jiān)聽到的合法的認(rèn)證碼a m-1 算出下一個合法認(rèn)證碼a m-2的值。同時,使用哈希函數(shù)可以方便地實現(xiàn)標(biāo)簽和數(shù)據(jù)庫的同步更新。
本文的協(xié)議由三輪報文發(fā)送過程組成。當(dāng)要處理一批標(biāo)簽時,讀寫器從中心數(shù)據(jù)庫得到當(dāng)前這批標(biāo)簽?zāi)芙邮艿暮戏ǖ恼J(rèn)證碼a。
(1)數(shù)據(jù)庫/讀寫器→標(biāo)簽讀寫器產(chǎn)生隨機(jī)數(shù)r 1,并發(fā)送(a,r 1)給標(biāo)簽。
(2)標(biāo)簽→數(shù)據(jù)庫/讀寫器 當(dāng)標(biāo)簽T i收到(a,r 1)后,首先驗證h(a)=b i 是否成立,如果成立,生成隨機(jī)數(shù)r 2 ,并計算A=h(a‖k i),B =h(r 1‖r 2‖k i ),并發(fā)送(r 2 ,A,B)給讀寫器;如果不成立,則終止協(xié)議的運行。
(3)數(shù)據(jù)庫/讀寫器→標(biāo)簽讀寫器查找后端數(shù)據(jù)庫中預(yù)計算出來的對于認(rèn)證碼。的所有標(biāo)簽的回復(fù),如果找到和A相等的值,則該標(biāo)簽被識別,讀寫器得到該標(biāo)簽的秘密k。隨后,讀寫器驗證曰的合法性,如果B=h(r 1‖r 2‖k),則該標(biāo)簽通過讀寫器的認(rèn)證,讀寫器計算C=h(r 2|| k)并發(fā)送給標(biāo)簽;如果B不合法,則協(xié)議終止。
最后標(biāo)簽T i 收到c之后,驗證C=h(r 2‖k i)是否成立,如果成立,則標(biāo)簽認(rèn)證讀寫器為合法的讀寫器,標(biāo)簽更新b的值為a;如果不成立,則協(xié)議中止。協(xié)議流程圖如圖2所示。
3 安全性及效率分析
抗隱私泄露在讀寫器與標(biāo)簽的交互中,k i 沒有采用明文發(fā)送,由于哈希函數(shù)h的單向性,攻擊者不能從h(a‖k i),h(r 1‖r2‖k i),h(r 2‖k i )的值中計算出ki 的值。
抗假冒標(biāo)簽攻擊雖然一批標(biāo)簽使用同一個認(rèn)證碼,對于每個標(biāo)簽,每次讀寫器運行協(xié)議,都會使用新鮮的隨機(jī)數(shù)r 1。因此,在攻擊者不知道ki的值的情況下,不能生成合法的B,B= h(r 1‖r 2‖k i )以通過讀寫器的認(rèn)證。
抗假冒讀寫器攻擊標(biāo)簽對讀寫器的認(rèn)證有兩重,首先,只有讀寫器發(fā)來合法的認(rèn)證碼。,標(biāo)簽才會回應(yīng),只有合法的讀寫器才可以從中心數(shù)據(jù)庫得到當(dāng)前的認(rèn)證碼。由于讀寫器在處理大批量的標(biāo)簽時,攻擊者可以監(jiān)聽先處理的標(biāo)簽和讀寫器的對話,得到同一批次標(biāo)簽共同的認(rèn)證碼,然后假扮讀寫器,因此,只有一個驗證碼來實現(xiàn)標(biāo)簽對讀寫器的認(rèn)證是不夠的。在第三個消息中,標(biāo)簽通過驗證讀寫器發(fā)送的C的值確認(rèn)讀寫器已經(jīng)正確識別出標(biāo)簽,C=h(r 2‖k i)。只有合法的讀寫器才能識別出標(biāo)簽,得到k i的值,標(biāo)簽在再次對讀寫器進(jìn)行認(rèn)證之后,才更新bi的值。
抗跟蹤 攻擊者不能通過主動詢問標(biāo)簽來獲得信息,因為攻擊者不能得到當(dāng)前的合法認(rèn)證碼。對同一個標(biāo)簽,任意兩次合法的對話中,第一次對話的記錄(a,r 1,r 2,A,B,C)和第二次對話的記錄(a',r1',r 2',A ',B ',C' )對于攻擊者是不可區(qū)分的。因此,我們的協(xié)議具有抗跟蹤性。
本文的協(xié)議首次引入一次性認(rèn)證碼的使用,使得數(shù)據(jù)庫可以預(yù)計算所有合法標(biāo)簽的回復(fù)并排序,當(dāng)在線識別一個標(biāo)簽時,查找數(shù)據(jù)庫代價是O(logn)次比較大小的運算,數(shù)據(jù)庫完成一次讀寫器-標(biāo)簽雙向認(rèn)證總共需要進(jìn)行3次hash運算以及O(logn)次的比較大小的運算。在Song提出的協(xié)議以及其它大量隨機(jī)化匿名協(xié)議中,后端數(shù)據(jù)庫在線識別一個標(biāo)簽需要嘗試所有標(biāo)簽的秘密進(jìn)行hash運算,直到找到一個記錄中的秘密使得計算出來的值和標(biāo)簽發(fā)送過來的值相等,識別一個標(biāo)簽要進(jìn)行O(n)次哈希運算。本文提出的協(xié)議顯著提高了后端數(shù)據(jù)庫在讀寫器.標(biāo)簽雙向認(rèn)證中在線識別一個標(biāo)簽的效率。本文的協(xié)議中標(biāo)簽需要進(jìn)行4次hash運算,和其它協(xié)議中標(biāo)簽的運算量相當(dāng),如Song的協(xié)議中,標(biāo)簽需要進(jìn)行3次hash運算,Song中引用的三個協(xié)議 ,標(biāo)簽均需要進(jìn)行4次hash運算。
4 結(jié)論
后端數(shù)據(jù)庫的對標(biāo)簽的在線識別往往是RFID系統(tǒng)中的瓶頸。對于數(shù)據(jù)庫中包含大量標(biāo)簽記錄,同時要成批識別大批量標(biāo)簽的供應(yīng)鏈RFID系統(tǒng),提高后端數(shù)據(jù)庫在線識別的效率成為當(dāng)務(wù)之急。本文中的讀寫器-標(biāo)簽雙向認(rèn)證協(xié)議在保證供應(yīng)鏈系統(tǒng)安全性的情況下顯著提高了數(shù)據(jù)庫在線識別一個標(biāo)簽的效率。本文中的協(xié)議只適合于批量處理的供應(yīng)鏈。在未來的工作中,我們將完成標(biāo)簽所有權(quán)移交協(xié)議的設(shè)計,進(jìn)一步完善該供應(yīng)鏈RIFD系統(tǒng)。
(文/復(fù)旦大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 蔡韶穎 趙一鳴 )
參考文獻(xiàn)
[1]Sarma S E,Weis S A,EngelsDW.RFID systems and security and privaey implications[C]//In:Kaliski B S,Koc C K,Paar C.eds.Pro—ceedings of the 4th Intemational Workshop on Cryptographic Hardwareand Embedded Systems(CHES 2002).Lectures Notes in ComputerScience 2523.Berlin:Springer Verlag,2003:454—469.
[2]Ohkubo M,Suzuki K,Kinoshita S.Hash.chain based forward secure privacy protection scheme for low—cost RFID[C]//In:Proceedings ofthe 2004 Symposium on Cryptography and Information Security(SCIS2004),Sendai,2004:719—724.
[3]Molnar D,Wagner D.Privacy and security in library RFID:Issues.practices,and architectures[C]//In:Procedings of the 11 ACMConference on Computer and Communications Security (CCS 04),Washington,DC,USA,2004:210—219.
[4]Juels A,Pappu R,Pamo B.Unidirectional key distribution across time and space with applications to RFID security[C]//In 17 USENIXSecurity Sym posium,2008:75—90.
[5]Song B,Mitchell C J.Rfid authentication protocol for low.cost tags
[C]//In WISEC,2008:140—147.
[6]周永,馮登國.RFID安全協(xié)議的設(shè)計與分析[J].計算機(jī)學(xué)報,2006,29(4):8l一89.
[7]Dolev D,Yao A c.On the security of public key protocols[C]//Technical Report,Report No.STAN—CS-81-854,Standford,CA ,USA ,1981.