摘 要: 提出了一種基于ID變化的RFID安全協議,由于使用單向Hash函數,從而使數據存儲機制很好地解決了閱讀器和標簽數據不同步的問題,有效地防止了非法讀取、位置跟蹤、竊聽、偽裝哄騙、重放等攻擊。分析表明,該方法具有前向安全,效率高,安全性好等特點,適用于標簽數目較多的情況。
關鍵詞: ID變化; 安全協議; 安全隱私
射頻識別(RFID)系統是使用無線射頻技術在開放系統環境中進行對象識別,通過射頻信號自動識別目標對象并獲取相關數據。這種識別的優點之一是不需要物理接觸或其他任何可見的接觸。現在,許多人已將RFID系統看作是一項實現普適計算環境的有效技術。但同時,關鍵問題是要確保只有授權用戶能夠識別各個標簽,而攻擊者無法對這些標簽進行任何形式的跟蹤。針對這一問題,國內外開展了大量關于RFID隱私安全保密的研究,提出了許多RFID安全協議,如Hash鎖協議、隨機化Hash鎖協議、Hash鏈協議等,但這些協議存在著安全隱患、效率低下等缺陷。本文針對這些協議的不足,進一步對RFID的安全隱私進行研究。
1 RFID基本原理
1.1 RFID系統基本構成[1]
RFID系統一般由三大部分構成: (1)標簽配備有天線的微型電路,但通常沒有處理器,僅由數千個邏輯門組成;(2)讀寫器。一個有天線的無線發射與接收設備,它的處理能力、存儲空間都比較大;(3)后臺數據庫。用戶根據系統需求進行選擇的數據庫系統,存儲所有標簽的信息,它通過可信的讀寫器獲得標簽發送的信息,具有很強的處理能力和存儲空間。一般認為讀寫器到后臺數據庫的通信信道為安全信道,標簽到讀寫器之間的信道為不安全信道。
1.2 RFID安全隱患與安全需求
RFID讀寫器與標簽之間通過空中接口進行通信,不需要任何物理或可見接觸,使得隱私侵犯者可以通過監聽,截獲雙方通信信息,獲取標簽中隱私的信息。此外,標簽中含有唯一的序列號,隱私侵犯者可以通過其序列號追蹤、定位標簽,從而獲得標簽所有的信息。
正因為如此,設計安全、高效的RFID安全協議成為了一個具有挑戰性的問題。而安全的射頻識別系統對單向攻擊應該能夠予以防范:
(1) 標簽信息泄漏問題:避免未授權讀寫器或者隱私侵犯者獲取標簽中的敏感數據。
(2) 標簽的可追蹤性:避免隱私侵犯者通過對標簽序列號追蹤定位獲得標簽持有者的隱私信息。
(3) 前向安全性:避免隱私侵犯者根據竊取的敏感信息獲取標簽歷史活動記錄和標簽持有者隱私信息。
2 RFID安全協議
基于密碼學的發展,到目前為止,已經有多種RFID安全協議被提出來,本文將介紹3種典型的RFID安全協議,并分析其優缺點。
2.1 Hash鎖[2]協議
Hash鎖(Hash Lock)協議是由Sarma等人提出來的。為了避免信息泄漏和被追蹤,使用metaID代替真實的標簽ID,協議流程如圖1所示。
Hash鎖協議的執行過程如下:
(1)讀寫器向標簽發送Query認證請求。
(2)標簽將metaID發送給讀寫器。
(3)讀寫器將metaID轉發給后臺數據庫。
(4)后臺數據庫查詢自己的數據庫,如果找到與metaID匹配的項,則將該項的(Key,ID)發送給讀寫器,其中ID為待認證標簽的標識,metaID=H(Key);否則返回給讀寫器認證失敗信息。
(5)讀寫器將接收后臺數據庫的部分信息Key發送給標簽。
(6)標簽驗證metaID=H(key)是否成立,如果成立,則將其ID發送給讀寫器。
(7)讀寫器比較從標簽接收到的ID是否與后臺數據庫發送過來的ID一致,如果一致,則認證通過;否則,認證失敗。
由上述過程可以看出,Hash鎖協議中沒有ID動態刷新機制,并且metaID也保持不變,ID是以明文的形式通過不安全的信道傳送的,因此,Hash鎖協議非常容易受到假冒攻擊和重傳攻擊,攻擊者也可以很容易地對標簽進行追蹤。也就是說,Hash鎖協議沒有達到其安全目標。
2.2 隨機化Hash鎖協議
為了解決Hash鎖中位置跟蹤的問題,將Hash鎖方法加以改進,采用隨機化Hash鎖(Random Hash-Lock)協議,此協議由Weis等人提出,采用了基于隨機數的詢問-應答機制。首先介紹字符串連接符號“||”,如標簽ID和隨機數R的連接即表示為“ID||R”。該方法中數據庫存儲各個標簽的ID值,設為ID1、ID2 … IDk…IDn。其協議流程如圖2所示。
隨機化Hash鎖協議的執行過程如下:
(1)讀寫器向標簽發送Query認證請求。
(2)標簽生成一個隨機化數R,計算H(IDk||R),其中IDk為標簽的標識,標簽將(R,H(IDk||R) )發送給讀寫器。
(3)讀寫器向后臺數據庫提出獲得所有標簽標識的請求。
(4)后臺數據庫將自己數據庫中的所有標簽標識(ID1,ID2…IDn)發送給讀寫器。
(5)讀寫器檢查是否有某個IDj(1≤j≤n),使得H(IDj||R)=H(IDk||R)成立;如果有,則認證通過,并將IDj發送給標簽。
(6)標簽驗證IDj與IDk是否相同,如果相同,則通過認證。
在隨機化Hash鎖協議中,認證通過后的標簽標識IDk仍以明文的形式通過不安全信道傳送,因此攻擊者可以對標簽進行有效的追蹤。同時,一旦獲得了標簽的標識IDk,攻擊者就可以對標簽進行假冒,而該協議無法抵抗重傳攻擊。因此,隨機化Hash鎖協議也是不安全的。不僅如此,每一次標簽驗證時,后臺數據庫都需要將所有標簽的標識發送給讀寫器,二者之間的數據通信量很大,該協議不實用。
2.3 Hash鏈協議
NTT提出了一種Hash鏈(Hash-Chain)[3-4]協議。在第i次與讀寫器交換時,射頻標簽有初始值Si,發送ai=G(Si)給讀寫器,再根據以前的Si更新密鑰Si+1=H(Si)。其中G和H都是Hash函數,如圖3所示。
該方法滿足了不可分辨和前向安全的特性。G是單向方程,因此攻擊者能獲得標簽輸出ai,但是不能從ai獲得si。G輸出隨機值,攻擊者能觀測到標簽的輸出,但不能將ai和ai+1聯系起來。H也是單向方程,攻擊者能篡改標簽并獲得標簽的密鑰值,但不能從si+1中獲得si。該算法的優勢很明顯,但是計算和比較相對復雜。為了識別一個ID,后臺服務器不得不計算ID列表中的每個ID。假設有N個一致的標簽ID在數據庫中,數據庫不得不進行N次ID搜索、2N次Hash方程計算以及N次比較。計算機處理負載隨著ID列表長度的增加線性也增加,因此,該方法也不適合存在大量射頻標簽的情況。
3 基于ID變化的RFID安全協議
為了避免Hash鎖方法中的人為攻擊和惡意跟蹤的缺陷,并克服隨機數Hash鎖方法中計算負載過大的不足,結合以上幾種方法的思想,本文提出了一種基于ID變化的RFID安全協議,實現了安全高效的讀取訪問控制。
3.1 工作原理
在此協議中,后臺數據庫的記錄主要包括3列:H(ID),ID,Pointer,主鍵為H(ID)。其中ID為電子標簽的唯一標識符, H(ID)是對應ID的單向Hash函數的計算值,Pointer是數據記錄的關聯指針,主要用來保持數據一致性[5]。
3.1.1 標簽的鎖定
對于每個電子標簽,出廠時都有其唯一的ID值,在實際應用中數據庫首先建立所有標簽在數據庫中的初始記錄(H(IDi),IDi,Pointeri),標簽在未收到激勵信號時,處于鎖定狀態。
3.1.2 標簽的解鎖
3.2 數據實驗分析
設數據庫初始化存儲了3個標簽,ID分別為1、2、3,其初始化如表1所示。
假設閱讀器要詢問ID為2的標簽,首先閱讀器問標簽發送詢問消息和隨機數9,標簽向閱讀器發送數據(H(2),H(2||9)),然后標簽計算自身的ID*=S(2) 和H(ID*)=H(S(2));數據庫根據H(2)找到記錄(H(2),2,0),然后計算H(ID||R)=H(2||9),與收到的H(2||9)相同,證明了標簽的合法性;接下來數據庫計算ID*=S(2)和H(ID*)=H(S(2)),并將(ID*,H(ID*)發送給閱讀器,至此閱讀器知道了該標簽更新后的ID值ID*,然后閱讀器將H(ID*)=H(S(2))發送給標簽;由于Pointer2=0,所以數據庫中建立一條記錄4:(H(S(2),S(2),2),并將記錄2改為(H(2),2,4)。標簽接收到數據H(S(2))后,比較發現等于之前計算的H(ID*)=H(S(2)),于是將自身的ID值更新為ID*=S(2)。此時數據庫記錄如表2所示。
下一次再與此標簽通信時,數據庫根據收到的標簽2的H(ID)=H(S(2)),找到第4條記錄,該記錄的Pointer為2,則第2次更新ID值的記錄將會覆蓋第2條記錄。
當標簽被詢問過1次之后,數據庫始終保持了2條與該標簽有關的數據記錄,這主要是為了保證數據的一致性。假設在某次通信中閱讀器在第5步發送的H(ID*)未成功且被標簽收到,則標簽2的ID值不會更新,此時數據庫的第4條記錄是錯誤的。這樣在下次與標簽2通信中,查找到的仍是記錄2,數據庫根據記錄2的Pointer值為4,將修改第4條記錄,這樣就能夠保持數據一致性。
3.3 性能分析及方法特點
本協議使用2個單向的Hash函數實現標簽ID的自動更新和通信信息加密,能夠有效地抵抗各種攻擊。
(1)防竊聽。標簽和標簽讀寫器之間的通信信息都經過了Hash函數H加密。根據Hash函數的性質,隱私侵犯者是無法根據加密后的信息獲取加密的信息。
(2)防哄騙。標簽的ID在每完成1次通信過程后將使用Hash函數S進行自主更新為ID*,隱私侵犯者無法偽造出H(ID*||R)。
(3)防重傳。每次認證前閱讀器將產生一個新的隨機數R,隱私侵犯者能截獲上次的H(ID||R),但無法偽造新一次認證的H(ID||R)。
(4)防追蹤。標簽中的ID在每次詢問后都將更新,并且同一標簽在不同認證過程中,閱讀器都將產生隨機數R。這些都是標簽對每次詢問的響應結果。
通過上述分析可以看出,基于ID變化的RFID安全協議實現了標簽ID的隱藏性、隨機性以及訪問控制,完全滿足RFID系統的安全需求。
本協議的特點主要表現在以下幾個方面:
(1)前向安全性。因為標簽的ID在每次通信過程后就會執行ID*=S(ID)更新。根據Hash函數的性質,隱私侵犯者即使獲取了ID*,也無法獲得ID和標簽的歷史活動記錄,從而保證了前向安全性。
(2)實現雙向驗證。后臺數據庫通過對H(ID||R)的計算比較,實現了數據庫對標簽的驗證;而標簽通過對H(ID*)的計算比較,則實現了對數據庫的驗證。
(3)數據一致性。根據此協議的后臺數據庫結構,當標簽被詢問過1次之后,數據庫始終保持了2條與該標簽有關的數據記錄,這樣一來即使標簽無法收到閱讀器返回的信息,造成標簽的ID值不更新,也不會造成數據庫與標簽的數據同步問題。
本文提出的基于ID變化的RFID安全協議,具有前向安全、雙向驗證等特點,基本上彌補了目前安全保護方法安全性不夠等缺陷,是一種較為實用的算法,但此方法還存在一些不足。一次雙向驗證過程中,標簽仍需要進行3次Hash函數運算,這對低成本的標簽是費時的,這些尚需進一步研究改進。
參考文獻
[1] 周曉光,王曉華.射頻識別(RFID)技術原理與應用實例[M].北京:人民郵電出版社,2006.
[2] WEIS S A. Security and privacy in Radio-frequency identification devices[D]. The Department of Electrical Engineering and Computer Science of MIT, 2003.
[3] WEIS S, SARMA S, RIVEST R, et al. Security and privacy aspects of low-cost radio frequency identification systems[C]//Proc. of Security in Pervasive Computing’04, 2004:201-212.
[4] OHKUBO M, SUZUKI K, KINOSHITA S. Cryptographic approach to “Privacy-Friendly” tags[C]//Proc. of RFID Privacy Workshop, USA MIT, 2003.