RFID(Radio Frequency Identif-ication)是一種利用射頻通信實現非接觸式自動識別的技術,是物聯網的關鍵技術之一。RFID標簽本身具有一定存儲和計算能力,采用無線射頻方式進行通信,具有體積小、壽命長、可重復使用等特點,從而被廣泛應用于生產、物流、交通、運輸、醫療、金融、防偽、跟蹤、設備和資產管理、校園一卡通等領域。但是隨著RFID應用的推廣,其安全性也倍受關注。RFID的安全威脅主要來自標簽和閱讀器內部的安全威脅以及通信鏈路上的安全威脅[1]。
針對RFID系統通信鏈路上的安全問題,一些安全協議被提出,如Hash-Lock協議、隨機化Hash-Lock協議、分布式RFID詢問—應答協議、基于樹型結構的安全協議等[2,3]。本文在對現有安全協議分析的基礎上,對分組索引協議進行了改進,提出了最優分組索引的RFID安全協議,使標簽的索引時間復雜度降低為。同時,通過采用隨機數、Hash函數、標簽與后端數據庫共享密鑰機制等,使協議具有隱私保護,防止跟蹤、欺騙攻擊和妥協攻擊的能力,可以保證RFID系統的前向安全性和后向安全性。
1.相關工作
1.1 RFID系統及其安全性分析
RFID系統一般由標簽(Tag)、閱讀器(Reader)和后端數據庫3個基本部分構成,如圖1所示。通常情況下,我們認為在閱讀器與后端服務器之間的是安全信道,即不被攻擊者竊聽或篡改的;而在閱讀器與標簽之間的數據傳輸是開放的無線通信鏈路,所以為不安全信道,即其間發送的數據易被攻擊者竊聽或篡改。閱讀器向標簽發送信息的信道稱之為前向信道,標簽向閱讀器發送信息的信道稱之為反向信道[2,3]。
從圖1所示的RFID系統模型可以看出,RFID安全威脅首先來自標簽和閱讀器本身的安全缺陷。由于成本所限,標簽本身很難具備能夠足以保證安全的能力。閱讀器往往只能提供用戶業務接口,而不能提供能夠讓用戶自行提升安全性能的接口。
其次,RFID的數據通信鏈路是開放的無線通信鏈路,攻擊者可以利用合法或非法的閱讀器,直接與標簽進行通信,監聽標簽和讀寫器間的數據交互,從而獲取標簽數據,通過其它技術手段和方法進一步獲取合法用戶的隱私信息,對標簽實施破解和復制、跟蹤、偽造、重傳、拒絕服務、欺騙等攻擊行為,威脅RFID系統的安全。
1.2 現有RFID安全協議分析
1.2.1 Hash-Lock協議
Hash-Lock協議是由Sarma等人提出的[4-6],后端數據庫分配一個隨機密鑰key給標簽,標簽進行hash函數運算,得到metaID=H(key),并將其存儲在標簽中,然后鎖定標簽。此時標簽只對通過metaID認證的閱讀器產生響應,從而增強了無線通信鏈路和物理接觸信道的安全性。
Hash-Lock協議流程如下:
(1)閱讀器向標簽發送Query認證請求;
(2)標簽將metaID發送給標簽閱讀器;
(3)閱讀器將metaID轉發給后端數據庫;
(4)后端數據庫通過查詢,如果找到與metaID相配的項,則將該項的(key,ID)發送給閱讀器,其中ID為待認證標簽的標識,否則,認證失敗;
(5)閱讀器將接收的后端數據庫信息key發送至標簽;
(6)標簽驗證metaID=H(key)是否成立,如果成立,則將其ID發送給閱讀器;
(7)閱讀器比較自標簽接收到的ID是否與后端數據庫發送過來的ID一致,如果一致,則認證通過;否則,認證失敗。
從Hash-Lock協議的流程可以看出,由于后端數據庫與閱讀器之間為安全信道,攻擊者不可能同時獲得(key,ID)。如果攻擊者向標簽發送Query認證請求,可以竊取標簽的metaID,進一步冒充合法標簽,只能通過后端數據庫獲得key,而不能獲得標簽ID,所以不能通過標簽認證。這樣阻止了攻擊者冒充合法標簽與閱讀器的通信,從而增強了無線通信鏈路和物理接觸信道的安全性。但是由于標簽的metaID沒有使用動態更新機制,故容易被攻擊者通過截獲的metaID進行跟蹤定位。同時在合法標簽在認證的過程中,key和ID是明文傳送的,攻擊者如果全程竊聽其認證過程,則有可能同時獲得(key,ID),那么該協議的安全性將徹底瓦解。
1.2.2 隨機Hash-Lock協議
為了克服Hash-Lock協議容易被攻擊者跟蹤的不足,Weis等人提出了隨機Hash-Lock協議[6],每個標簽不僅包含自身ID,還有一個隨機數產生器。標簽將隨機數產生器產生的隨機數R和ID一起用Hash函數加密,加密后的值為C=H(ID||R)。標簽將C、R一起發送給閱讀器,閱讀器將獲取的信息發給后端數據處理中心。后端數據庫通過查詢數據庫中所有ID,看其中有沒有一個IDk(1≤k≤n),使得H(ID||R)=C成立,如果有,則此認證通過,并將IDk發送給標簽;標簽收到IDk后驗證與標簽本身的ID是否相等,如果相等,則認證通過。
該協議通過采用隨機數,使得每次對閱讀器的應答C=H(ID||R)都不相同,從而解決了標簽被跟蹤的問題。但是在認證過程中仍然以明碼的方式傳遞ID,若被攻擊者截獲,協議的安全性將不復存在。
1.2.3 分布式RFID詢問—應答協議
Rhee等人提了一種適用于分布式數據庫環境的RFID認證協議,它是典型的詢問-應答型雙向認證協議[7]。該協議的流程如下:
(1)閱讀器生成一隨機數RR,向標簽發送Qu-ery認證請求,并將RR發送給標簽;
(2)標簽生成一隨機數RT,計算H(ID||RR||RT),并將其和RT一起發送給閱讀器;
(3)閱讀器將(H(ID||RR||RT),RR,RT)發給后端數據庫;
(4)后端數據庫檢查是否有某個IDj(1≤j ≤n),使得(H(IDj||RR||RT)=(H(ID||RR||RT)成立,如果有,則認證通過,并將H(IDj||RT)發送給閱讀器;
(5)標簽驗證H(IDj||RT)和H(ID||RT)是否相同,如相同,則認證通過。
該協議在雙向認證過程中,除了閱讀器生成的隨機數RR為明文傳輸,其它均為密文傳輸,故其在安全方面沒有存在明顯的漏洞。但是執行一次認證過程,標簽需要進行兩次Hash運算,標簽電路中需要集成隨機數發生器和Hash函數模塊,因此不適合于低成本RFID系統。
1.2.4 基于樹型結構的SPA安全協議
考察前面討論幾種協議的索引效率,后端數據庫為了完成對標簽的一次認證,最大的索引次數為n,即索引的時間復雜度均為O(n),這樣的索引效率在大規模RFID系統中是難以接受的。針對上述協議索引效率低下的問題,Molnar和Wagner最先提出了基于樹型結構的RFID安全協議[8]。該協議的基本思想是構造一顆樹型結構的密碼組來提高其在大規模數據中的索引效率。在樹型結構中,每個樹節點都有一個密碼值,所有的標簽都在葉子節點上。針對樹上的任何一個節點,從樹根到葉子節點都有唯一的路徑,且其密碼組就是這個路徑上各個葉子節點的密碼值組合。如圖2所示,標簽T1的密碼組為(k0,k1,1,k2,1,k3,1),標簽T2的密碼組為(k0,k1,2,k2,4,k3,8)。
此協議雖然大大的提高了其搜索效率,使其索引的時間復雜度降為O(log n),但是其中任意兩個標簽至少共享了一個密碼值,因而存在明顯的漏洞。攻擊者只要截獲任意一個標簽的密碼值,就可以知道其上層標簽的密碼值和相鄰節點標簽的共享密碼值,導致嚴重的安全問題。
1.2.5 基于分組索引的RFID安全協議
由于樹型結構的RFID協議存在嚴重的安全性問題,而非樹型結構的RFID安全協議又存在索引效率低下的問題,一些研發團隊開始研究既能夠保證協議安全,又可以提高索引效率的安全協議。付小麗提出了分組索引的RFID安全協議[9],此協議在開始前要對RFID后端系統和標簽進行初始化。分組索引就是將后端數據庫中儲存的n個標簽均分成m組,每個組有n/m個標簽,其中同一個組的標簽共享一個索引碼IID,而每個標簽含有一個自己的安全密碼SID,并且每個SID是不相同的。協議的主要流程如下:
(1)閱讀器生成一隨機數RR,向標簽發送詢問請求,并將RR發送給標簽。
(2)標簽接收到詢問請求后,生成一個隨機數RT,計算C=h(SID||RR||RT),并將信息C、IID、RT發送給閱讀器。
(3)閱讀器接收到信息C、IID、RT后,將其轉發送給后端數據庫。
(4)后端數據庫接收到信息后,查詢出所有索引為IID的標簽,然后再在這些標簽中搜索是否有一個標簽的SIDj使得h(SIDj||RR||RT)=C成立,如果有,則通過認證;否則,認證失敗。若通過認證,則將SIDj更新為h(SIDj),并將h(SIDj||RT)發送給標簽。
(5)標簽驗證h(SIDj||RT)=h(SID||RT)是否成立,如果成立,則認證通過,且將SID更新為h(SID)。
在該協議中,所有傳送的信息除了IID外都進行了加密處理,而IID不是哪個標簽獨有的,攻擊者僅知道IID無法確定具體是哪個標簽;同時,在認證過程中所傳遞的密文C=h(SID||RR||RT)和h(SIDj)每次認證都是不同的,并采用了SID更新機制,攻擊者根據當前SIDt很難推導出前面的SIDt-1,所以可以保證其前向安全性。但攻擊者可根據當前SIDt推導出以后的SIDt+1,所以不能保證其后向安全性。
2.最優分組索引的RFID安全協議
在1.2.5描述中基于分組索引的RFID安全協議,將索引的時間復雜度減少為O(m+n/m),提高了索引效率。但是該協議并沒有提到具體如何分組,才能使時間復雜度降至最低,同時存在后向安全性問題。本文針對這些不足,提出了最優分組索引的RFID安全協議,從而進一步提高了索引效率,同時通過標簽和后端數據庫共享密碼key解決了其后向安全問題。
2.1 最優分組索引原理
分組索引的過程是在m個分組中先找到索引碼為IID的標簽所在的組,然后在該組中n/m個標簽中找到特定的標簽SID,故整個過程中后端數據索引的次數為m+n/m,如果使之達到最小,則其時間復雜度最低,此時為最優分組索引。
m為整數,取整,所以,最優分組索引的時間復雜度為。例如,后端數據庫中總共存有10000個標簽,我們把這些標簽均分成100個組,則每組有100個標簽,同時,每組共享一個索引碼IID。在整個索引的過程中,前100次是找到索引碼為IID的那個組,后100次是在同一索引碼IID的標簽中找到目標標簽,最多需要索引200次就可以尋找到目標標簽。
2.2 最優分組索引的安全協議流程
最優分組索引將后端數據庫中儲存的n個標簽均分成組,每個組有int(n/m)個標簽。其中每個組的標簽共享一個索引碼IID,且包含一個自己的安全密碼SID和一個與后端數據庫的共享密碼key,并且每個SID和key是不相同的。協議流程如圖3所示。
協議執行過程描述如下:
(1)閱讀器生成一隨機數RR,向標簽發送詢問請求,并將RR發送給標簽;
(2)標簽接收到詢問請求后,生成一個隨機數RT,計算C=h(SID||RR||RT),并將信息C、IID、RT發送給閱讀器;
(3)閱讀器接收到信息C、IID、RT后,將其與RR轉發送給后端數據庫;
(4)后端數據庫接收到信息后,查詢出所有索引為IID的標簽,然后再在這些標簽中搜索是否有一個標簽的SIDj使得h(SIDj||RR||RT)=C成立,如果有,則通過認證;否則,認證失敗。若通過認證,則將SIDj更新為h(SIDj||key),并將h(SIDj||RT)發送給標簽。
(5)標簽驗證h(SIDj||RT)=h(SID||RT)是否成立,如果成立,則認證通過,且將SID更新為h(SID||key)。
3.分析
3.1 安全分析
(1)隱私保護:在本協議中,所有傳送的信息除了IID、隨機數RR和RT以外,都進行了加密處理,而IID不是某一個標簽獨有的,所以不會暴露用戶隱私。同時hash函數是單向的,因此攻擊者很難根據hash值得出標簽的SID。
(2)跟蹤:產生被跟蹤的根本原因是標簽發送給閱讀器的信息含有一些固定的信息,且這些信息對于標簽是唯一的,從而使得攻擊者很容易根據標簽發送的信息跟蹤標簽。而在本協議中,由于RR和RT每次都不相同,故標簽每次發送的加密信息C=h(SID||RR||RT)也是不一樣的,因此跟蹤信息C不可能。而發送的信息中,雖然IID是明文,但它不是某個標簽獨有的,因此攻擊者根據IID無法確定某個具體的標簽,進而不能達到跟蹤的目的。
(3)欺騙攻擊:在復制或欺騙攻擊中,攻擊者會先向標簽發送詢問信息并記錄標簽返回的信息。然后攻擊者將標簽返回的信息發送給閱讀器以達到冒充合法標簽進行欺騙的目的。在本協議的每次認證過程中,標簽和閱讀器都產生一個隨機數,并通過hash函數形成密文C=h(SID||RR||RT)。攻擊者不可能事先知道當前認證過程中閱讀器生成的隨機數RR,而由他自己詢問標簽所產生的C和RR在后端數據庫是不能通過認證的,因此無法使用欺騙攻擊。
(4)前向安全:如果攻擊者在t時刻攻破了秘密信息C=h(SIDt||RR||RT),就可以獲得當前時刻標簽的SIDt。本協議在每次認證成功后,都更新了SID,所以攻擊者根據當前SIDt不能推導出前面的SIDt-1,從而保證了前向安全性。
(5)后向安全:如果攻擊者獲得當前時刻標簽的SIDt,但本協議在認證的過程中,攻擊者無論從明文或者密文中都無法獲得標簽與數據庫的共享密碼key,所以攻擊者根據當前SIDt不能推導出下一次標簽的SIDt+1=h(SIDt||key),從而保證了后向安全性。
(6)妥協攻擊:在本協議中,雖然多個標簽共享一個IID,但是這個IID本身就是明文發送的,攻擊者并不能據此判定具體是哪個標簽。同時,如果某個標簽的SID泄漏后,攻擊者也不能據此得到其他標簽的SID。因此,本協議不會發生妥協攻擊。
3.2 協議比較分析
本文安全協議與其它安全協議的性能比較見表1。從表1的比較中可以看出,本文協議除了索引效率僅次于基于樹型的SPA協議外,各項性能指標均優于其它安全協議。
4.結束語
本文討論了已有的幾種RFID協議,分析了這些協議中存在的安全缺陷和漏洞。針對基于分組索引的RFID安全協議所存在的問題,提出了最優分組方案,將標簽分成組,利用同組同索引碼的方法,將其時間復雜度降為,同時,采用隨機數、Hash函數、標簽與后端數據庫共享密鑰機制等,解決了RFID中的隱私保護、跟蹤、欺騙攻擊、前向安全、后向安全、妥協攻擊等安全性問題。
本協議的不足之處在于,標簽的SID更新必須和后臺數據庫同步,需要對數據一致性問題展開進一步研究。
責任編輯:ct
評論
查看更多