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