適用于供應鏈的RFID讀寫器-標簽雙向認證協議
文章出處:http://www.nyfzw.net 作者:蔡韶穎 趙一鳴 人氣: 發表時間:2011年10月15日
0 引 言
RFID技術是一種非接觸自動識別技術,它利用射頻信號的空間藕合(交變磁場或電磁場)實現無接觸信息傳遞并通過所傳遞的信息達到識別一個對象的目的,在供應鏈管理、訪問控制、動物追蹤等領域中已經得到廣泛的應用。
在供應鏈管理中引入RFID系統,能夠提高供應鏈的可視性,改善供應鏈的操作效率,為整個供應鏈提供高效的實時的信息,有效地預防偷盜、遺失和假冒的發生。供應鏈中安全的標簽和讀寫器間交互協議應該滿足以下要求:只有合法的讀寫器才能從標簽發送的信息中獲取其所屬物品的相關信息,只有合法的標簽才能被讀寫器有效地識別,攻擊者不能跟蹤標簽。
文獻[1]提出了HashLock協議,使用匿名ID來保護標簽的內容,但是由于匿名ID是靜態的,因此標簽不能抵抗跟蹤攻擊。文獻[2]使用Hash鏈來更新標簽的秘密,然而該協議不能抵抗重傳攻擊,攻擊者可以假冒合法的標簽。文獻[3]提出的數字圖書館RFID協議中,引入了基于樹的認證協議的概念,這個方案雖然降低了后端服務器的搜索時間,但協議運行的輪次大大提高,此外,標簽上需存儲logn個秘密,由于logn-1個秘密是和其它標簽共享,這個方案中很難實現對標簽秘密的更新。文獻[1]提出了基于門限秘密共享的方案,解決了秘密分發的問題,對標簽的成本需求最低,但是這個方案中標簽不具備抗跟蹤性。
除了以上幾種典型的協議,最近幾年,出現了大量的隨機化的詢問應答雙向認證協議,如文獻[5]提出的協議等。這類協議中,每個標簽和讀寫器共享一些秘密,這些秘密在讀寫器的后端數據庫中和標簽的一些信息關聯。為了避免重放攻擊,讀寫器和標簽在每個會話中都產生和使用隨機數,這使得每個標簽的回復不可以預計算,后端數據庫在線識別每個標簽的代價是O(n)。和其它的RFID技術的應用相比,供應鏈管理由于批量處理大量標簽的特性而對性能要求最高。然而這類協議不具備可擴展性(可擴展性是指當識別一個標簽的代價不會隨著標簽總數量增大而明顯增大)。
文獻[6]對部分協議有詳盡的分析。由于目前還沒有適用于供應鏈的可擴展讀寫器.標簽雙向認證協議,我們針對供應鏈中貨品大批量處理以及處理流程的可預知性,提出一種適用于供應鏈的可擴展的讀寫器一標簽雙向認證協議。
1 供應鏈的RFID系統模型
在通用的供應鏈的模型上,一個供應鏈上有多個參與者。貨物經過一個參與者的處理之后,被移交給下一個參與者。在這個過程中,一批貨物每次只屬于一個參與者。在一個參與者處理的過程中,可能需要多次讀取標簽上的信息。在一個參與者處理完貨物之后,貨物被移交給供應鏈中的下一個參與者。通用的RFID系統由三個主要部件構成:標簽(Tag)、標簽讀寫器(Reader)和后端數據庫(Backend Database)。標簽由芯片與天線組成,存儲相關對象的信息。標簽讀寫器,簡稱讀寫器,是一個帶有天線的無線發射與接受設備,可以對標簽進行讀寫操作。后端數據庫用于存放系統中所有標簽所標識對象的有關數據,接受讀寫器對特定標簽信息的檢索。
根據一般的供應鏈的流程,建立如圖1所示供應鏈RFID系統模型。這里P代表參與者,S代表后端數據庫,R代表讀寫器, 代表標簽 在我們的系統中,每個參與者有一個中心服務器,所有的讀寫器都與其連接,中心數據庫也是該參與者內所有讀寫器的后端數據庫。讀寫器和后端數據庫具有較強的存儲和計算能力,本文將二者作為一個整體看待,即默認讀寫器是帶有后端數據庫的高性能計算機。標簽的存儲空間和計算能力比較有限。在讀寫器和標簽之間的通信信道上,使用Dolev—Yao攻擊者模型,即攻擊者能監聽、阻止、修改或插入讀寫器或標簽發送的信息。
圖1 供應鏈RFID系統模型
在供應鏈RFID系統中,至少應該包含兩個協議,即讀寫器-標簽雙向認證協議和標簽所有權移交協議。讀寫器.標簽雙向認證協議用來保證合法的參與者在貨物處理或運輸過程中對貨物的安全識別。當貨物要從一個參與者P 移交到下一個參與者P,時,需要運行標簽所有權移交協議使得P,識別標簽并更新標簽的秘密。本文完成讀寫器一標簽雙向認證協議的設計。
2 讀寫器一標簽雙向認證協議
供應鏈和其它RFID應用的最為顯著區別就是:(1)帶有標簽的貨物是成批處理的;(2)對于任一個參與者,貨物在其內部的處理流程是可預知的,也就是要讀取標簽的次數是可以預先估計的。這兩個特性為設計高效的認證協議提供了一個切入點。本文采用了一種全新的機制,每個標簽和讀寫器共享一個秘密,這個秘密在讀寫器上作為標簽身份的索引。讀寫器首先發送一個認證碼給標簽,每批標簽都設定同一個值用來認證驗證碼的安全性。標簽驗證認證碼合法后發送匿名ID。匿名ID的值和認證碼及共享的秘密相關,合法的讀寫器可以預先計算并排序所有標簽的匿名ID,因此在線識別一個標簽是通過查找匿名ID列表找到和標簽發的匿名ID相等的值。當讀寫器識別標簽后,發送回復信息給標簽,標簽驗證回復合法之后,更新標簽上用來驗證認證碼的值。一個認證碼只能使用一次,標簽每次所發的匿名ID都是變化的,只有合法的讀寫器才能識別標簽。攻擊者不能由監聽到的認證碼計算一個合法的認證碼。
2.1 初始化 .
參與者Pj中標簽的最多被讀取次數標記為m。Pi選擇一個隨機數a0,計算a1=h(a0),a2=h(a1),a3=h(a2),... ,am =h(a m-1 )。其中h:{0,1}’→{0,1} 是一個單向哈希函數,l是該RFID系統的安全參數,默認本文中所有變量的長度都為l。Pj的中心數據庫sj保存a 0,a 1,...,a m-1的值。這些值將按逆序依次分配給讀寫器作為認證碼。首先,我們在標簽上保存a ,此時標簽能接受的唯一驗證碼是a 1。當雙向認證成功后,標簽上am 的值被a m-1,取代,此時,標簽能接受的唯一驗證碼是a m-2,以此類推。下面是在貨物從P j-1 移交到P j后,標簽和中心數據庫的初始化。
標簽初始化
標簽Ti上保存兩個值,(bi,ki )。對于1≤i≤n,n是所有標簽的數量,Pj設定b。=n ,k 為一個隨機串作為標簽和數據庫s j共享的新秘密。
中心數據庫初始化每個標簽Ti ,對于0≤t≤m-l,中心數據庫sj計算h(a t ‖k i)的值,h(a t‖k i )是標簽T i對于合法認證碼a t回復的匿名ID。中心數據庫結構如表1所示。
表1 中心數據庫結構
2.2 協議描述
當Pj第一次要讀取標簽時,讀寫器從中心服務器得到這批標簽當前合法的認證碼a m-1 ,當使用a m-1 成功和一個標簽實現雙向認證后,標簽更新用來認證認證碼的值b i,a m-1 不再是合法的認證碼。當一批標簽初理完,所有的標簽可接受的認證碼都變成口。第二次要處理標簽時,讀寫器從中心服務器得到新的認證碼a m-2。認證碼是使用單向哈希函數生成,攻擊者無法從監聽到的合法的認證碼a m-1 算出下一個合法認證碼a m-2的值。同時,使用哈希函數可以方便地實現標簽和數據庫的同步更新。
本文的協議由三輪報文發送過程組成。當要處理一批標簽時,讀寫器從中心數據庫得到當前這批標簽能接受的合法的認證碼a。
(1)數據庫/讀寫器→標簽讀寫器產生隨機數r 1,并發送(a,r 1)給標簽。
(2)標簽→數據庫/讀寫器 當標簽T i收到(a,r 1)后,首先驗證h(a)=b i 是否成立,如果成立,生成隨機數r 2 ,并計算A=h(a‖k i),B =h(r 1‖r 2‖k i ),并發送(r 2 ,A,B)給讀寫器;如果不成立,則終止協議的運行。
(3)數據庫/讀寫器→標簽讀寫器查找后端數據庫中預計算出來的對于認證碼。的所有標簽的回復,如果找到和A相等的值,則該標簽被識別,讀寫器得到該標簽的秘密k。隨后,讀寫器驗證曰的合法性,如果B=h(r 1‖r 2‖k),則該標簽通過讀寫器的認證,讀寫器計算C=h(r 2|| k)并發送給標簽;如果B不合法,則協議終止。
最后標簽T i 收到c之后,驗證C=h(r 2‖k i)是否成立,如果成立,則標簽認證讀寫器為合法的讀寫器,標簽更新b的值為a;如果不成立,則協議中止。協議流程圖如圖2所示。
3 安全性及效率分析
抗隱私泄露在讀寫器與標簽的交互中,k i 沒有采用明文發送,由于哈希函數h的單向性,攻擊者不能從h(a‖k i),h(r 1‖r2‖k i),h(r 2‖k i )的值中計算出ki 的值。
抗假冒標簽攻擊雖然一批標簽使用同一個認證碼,對于每個標簽,每次讀寫器運行協議,都會使用新鮮的隨機數r 1。因此,在攻擊者不知道ki的值的情況下,不能生成合法的B,B= h(r 1‖r 2‖k i )以通過讀寫器的認證。
抗假冒讀寫器攻擊標簽對讀寫器的認證有兩重,首先,只有讀寫器發來合法的認證碼。,標簽才會回應,只有合法的讀寫器才可以從中心數據庫得到當前的認證碼。由于讀寫器在處理大批量的標簽時,攻擊者可以監聽先處理的標簽和讀寫器的對話,得到同一批次標簽共同的認證碼,然后假扮讀寫器,因此,只有一個驗證碼來實現標簽對讀寫器的認證是不夠的。在第三個消息中,標簽通過驗證讀寫器發送的C的值確認讀寫器已經正確識別出標簽,C=h(r 2‖k i)。只有合法的讀寫器才能識別出標簽,得到k i的值,標簽在再次對讀寫器進行認證之后,才更新bi的值。
抗跟蹤 攻擊者不能通過主動詢問標簽來獲得信息,因為攻擊者不能得到當前的合法認證碼。對同一個標簽,任意兩次合法的對話中,第一次對話的記錄(a,r 1,r 2,A,B,C)和第二次對話的記錄(a',r1',r 2',A ',B ',C' )對于攻擊者是不可區分的。因此,我們的協議具有抗跟蹤性。
本文的協議首次引入一次性認證碼的使用,使得數據庫可以預計算所有合法標簽的回復并排序,當在線識別一個標簽時,查找數據庫代價是O(logn)次比較大小的運算,數據庫完成一次讀寫器-標簽雙向認證總共需要進行3次hash運算以及O(logn)次的比較大小的運算。在Song提出的協議以及其它大量隨機化匿名協議中,后端數據庫在線識別一個標簽需要嘗試所有標簽的秘密進行hash運算,直到找到一個記錄中的秘密使得計算出來的值和標簽發送過來的值相等,識別一個標簽要進行O(n)次哈希運算。本文提出的協議顯著提高了后端數據庫在讀寫器.標簽雙向認證中在線識別一個標簽的效率。本文的協議中標簽需要進行4次hash運算,和其它協議中標簽的運算量相當,如Song的協議中,標簽需要進行3次hash運算,Song中引用的三個協議 ,標簽均需要進行4次hash運算。
4 結論
后端數據庫的對標簽的在線識別往往是RFID系統中的瓶頸。對于數據庫中包含大量標簽記錄,同時要成批識別大批量標簽的供應鏈RFID系統,提高后端數據庫在線識別的效率成為當務之急。本文中的讀寫器-標簽雙向認證協議在保證供應鏈系統安全性的情況下顯著提高了數據庫在線識別一個標簽的效率。本文中的協議只適合于批量處理的供應鏈。在未來的工作中,我們將完成標簽所有權移交協議的設計,進一步完善該供應鏈RIFD系統。
(文/復旦大學計算機科學與技術學院 蔡韶穎 趙一鳴 )
參考文獻
[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安全協議的設計與分析[J].計算機學報,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.