一種基于Hash函數(shù)的RFID雙向認(rèn)證協(xié)議
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān) 輝
(蘇州市職業(yè)大學(xué) 計(jì)算機(jī)工程學(xué)院,江蘇 蘇州 215104)
引 言
RFID(Radio Frequency Identification,射頻識(shí)別)利用射頻信號(hào)通過(guò)空間耦合(交變磁場(chǎng)或電磁場(chǎng))在閱讀器和電子標(biāo)簽之間實(shí)現(xiàn)無(wú)接觸的信息傳遞,并可通過(guò)所傳遞的信息達(dá)到自動(dòng)識(shí)別的目的[1]。隨著大規(guī)模集成電路技術(shù)的不斷進(jìn)步, RFID 產(chǎn)品的成本正不斷降低,RFID 技術(shù)在各行各業(yè)的應(yīng)用也越來(lái)越廣泛。但隨之而來(lái)的各種安全問(wèn)題也日益嚴(yán)峻,并逐漸成為制約 RFID 進(jìn)一步推廣應(yīng)用的重要因素。因此,必須開(kāi)發(fā)出一種高效、可靠和具備一定強(qiáng)度的安全技術(shù),來(lái)解決RFID 的安全問(wèn)題。
1 RFID系統(tǒng)面臨的安全威脅
基本的RFID 系統(tǒng)主要由讀寫(xiě)器(Reader)和標(biāo)簽(Tag) 兩部分組成。標(biāo)簽是由IC 芯片和無(wú)線通信天線組成的微型電路,每個(gè)標(biāo)簽都具有唯一的電子編碼 ;讀寫(xiě)器負(fù)責(zé)向標(biāo)簽發(fā)射讀取信號(hào)并接收標(biāo)簽的應(yīng)答,對(duì)標(biāo)簽的對(duì)象標(biāo)識(shí)信息進(jìn)行解碼,將對(duì)象標(biāo)識(shí)信息和標(biāo)簽上其它相關(guān)信息傳輸?shù)街鳈C(jī)以供處理[2]。由于標(biāo)簽和讀寫(xiě)器之間的通信是非接觸和無(wú)線的, 很容易造成一些安全問(wèn)題。因此,RFID 系統(tǒng)面臨的安全威脅主要體現(xiàn)在以下兩個(gè)方面:
(1)標(biāo)簽信息泄漏
沒(méi)有安全機(jī)制的電子標(biāo)簽會(huì)向鄰近的讀寫(xiě)器泄露標(biāo)簽內(nèi)容和一些重要信息。由于低成本電子標(biāo)簽資源的有限性,它們普遍缺乏支持點(diǎn)對(duì)點(diǎn)加密和PKI 密鑰交換的功能。在RFID 系統(tǒng)應(yīng)用過(guò)程中,惡意攻擊者能夠讀取、篡改電子標(biāo)簽上的數(shù)據(jù)。
(2)惡意跟蹤
在 RFID 系統(tǒng)中,電子標(biāo)簽不用保存和傳輸大量信息, 大量的數(shù)據(jù)都保存在后臺(tái)數(shù)據(jù)庫(kù)中。通常情況下標(biāo)簽只需要傳輸簡(jiǎn)單的標(biāo)識(shí)符,通過(guò)該標(biāo)識(shí)符訪問(wèn)數(shù)據(jù)庫(kù)即可獲得目標(biāo)對(duì)象的相關(guān)數(shù)據(jù)和信息。因此,即使標(biāo)簽進(jìn)行加密后不知道標(biāo)簽內(nèi)容仍然可以通過(guò)固定的加密信息追蹤標(biāo)簽,得出標(biāo)簽的定位信息,從而進(jìn)一步推斷出標(biāo)簽持有者的行蹤。
2 現(xiàn)有安全方案
目前,實(shí)現(xiàn) RFID 安全機(jī)制所采用的方法主要有兩大類(lèi):
一類(lèi)稱(chēng)之為物理方法,另一類(lèi)稱(chēng)之為邏輯方法[3]。
2.1 物理方法
物理方法主要依靠外加硬件設(shè)備或硬件功能從而阻止標(biāo)簽與讀寫(xiě)器之間的通信。目前主要的方法有:KILL 標(biāo)簽、法拉第網(wǎng)罩和主動(dòng)干擾等。KILL 標(biāo)簽是使標(biāo)簽失效,但標(biāo)簽破壞后無(wú)法重用;法拉第網(wǎng)罩可以屏蔽無(wú)線電波,但需增加硬件設(shè)備,提高了成本 ;主動(dòng)干擾法可以使用戶(hù)通過(guò)主動(dòng)發(fā)送信號(hào)來(lái)干擾附近讀寫(xiě)器的操作,但可能導(dǎo)致非法干擾[4]。
2.2 邏輯方法
邏輯方法是一種基于加密認(rèn)證技術(shù)的安全機(jī)制,通過(guò)設(shè)計(jì)讀寫(xiě)器與標(biāo)簽之間相互認(rèn)證的方案,來(lái)實(shí)現(xiàn) RFID 系統(tǒng)的信息安全。目前,這種方法被更多地采用。具有代表性的主要有以下幾種方案:
(1)Hash鎖方案[5]
該方案使用 metaID 來(lái)代替標(biāo)簽真實(shí) ID。讀寫(xiě)器存儲(chǔ)每個(gè)標(biāo)簽的訪問(wèn)密鑰 K, 標(biāo)簽中存儲(chǔ)對(duì)應(yīng)的 metaID, metaID=Hash(K),此時(shí)標(biāo)簽處于“加鎖”狀態(tài)。若要“解鎖”標(biāo)簽,讀寫(xiě)器需要發(fā)送 K 值到標(biāo)簽,標(biāo)簽通過(guò)Hash 函數(shù)計(jì)算出Hash(K),若該值與存儲(chǔ)的 metaID 匹配則解鎖,發(fā)送標(biāo)簽真實(shí)ID 給讀寫(xiě)器。
該方案可以提供訪問(wèn)控制和標(biāo)簽數(shù)據(jù)隱私保護(hù),但由于其metalID 固定,且訪問(wèn)密鑰 K 和標(biāo)簽 ID 以明文形式發(fā)送, 易被跟蹤、偽造攻擊和重傳攻擊。
(2)隨機(jī) Hash鎖方案[5]
該方案是Hash 鎖方案的擴(kuò)展。標(biāo)簽包含有 Hash 函數(shù)和偽隨機(jī)數(shù)生成器,讀寫(xiě)器請(qǐng)求訪問(wèn)標(biāo)簽時(shí),標(biāo)簽用一對(duì)數(shù)據(jù)(r, Hash(IDi|| r))響應(yīng)讀寫(xiě)器的詢(xún)問(wèn),其中 r 是標(biāo)簽產(chǎn)生的一個(gè)隨機(jī)數(shù),Has(h IDi|| r)是第i 個(gè)標(biāo)簽的ID 與隨機(jī)數(shù)r 的Hash 值。讀寫(xiě)器收到響應(yīng)后,在后臺(tái)數(shù)據(jù)庫(kù)中遍歷所有標(biāo)簽 ID 和 r 的Hash 值,如果找到匹配的則發(fā)送其ID“解鎖”標(biāo)簽。該方案雖然解決了標(biāo)簽定位隱私問(wèn)題,但標(biāo)簽的秘密信息一旦被截獲,侵犯者可以獲得訪問(wèn)控制權(quán)并通過(guò)信息回溯得到標(biāo)簽歷史記錄,從而推斷出標(biāo)簽持有者的隱私。
(3)Hash 鏈方案[6]
該方案采用一種鏈狀的Hash 過(guò)程來(lái)加強(qiáng)安全。標(biāo)簽最初設(shè)置一個(gè)隨機(jī)的初始化標(biāo)識(shí)符 S1,并包含兩個(gè)不同的Hash 函數(shù) G 和 H,當(dāng)讀寫(xiě)器請(qǐng)求標(biāo)簽時(shí),標(biāo)簽返回當(dāng)前標(biāo)簽標(biāo)識(shí)符 rk=G(Sk)給讀寫(xiě)器, 同時(shí)自動(dòng)更新標(biāo)識(shí)符 Sk+1=H(Sk),讀寫(xiě)器通過(guò)遍歷獲取匹配的值,完成驗(yàn)證。
該方案的主要優(yōu)點(diǎn)是標(biāo)簽實(shí)現(xiàn)了自主ID 更新,從而提供了前向安全性,但只能對(duì)標(biāo)簽身份進(jìn)行認(rèn)證,不能阻止重放攻擊和假冒攻擊。
3 基于Hash函數(shù)的雙向認(rèn)證協(xié)議
通過(guò)對(duì)RFID 系統(tǒng)安全技術(shù)的分析,發(fā)現(xiàn)現(xiàn)有的RFID 安全技術(shù)在不同程度上都存在著這樣那樣的缺陷。本文提出了一種基于 Hash 函數(shù)的雙向認(rèn)證協(xié)議。
在初始條件下,標(biāo)簽中包含一個(gè)偽隨機(jī)數(shù)生成器和一個(gè)Hash 函數(shù),并保存有一個(gè)密鑰 ki ;讀寫(xiě)器中也有一個(gè)偽隨機(jī)數(shù)生成器和一個(gè)相同的Hash 函數(shù) ;后臺(tái)數(shù)據(jù)庫(kù)中保存有每一個(gè)標(biāo)簽的密鑰集合 K。
具體認(rèn)證過(guò)程如下:
(1)讀寫(xiě)器生成一個(gè)隨機(jī)數(shù) rr,發(fā)送給標(biāo)簽并向標(biāo)簽發(fā)出訪問(wèn)請(qǐng)求。
(2)標(biāo)簽收到請(qǐng)求后, 生成另一隨機(jī)數(shù) rt, 并計(jì)算
m=rt 5 ki,n=Hash(rt || rr),將 m、n 發(fā)回給讀寫(xiě)器。
(3)讀寫(xiě)器將 m、n 和 rr 發(fā)送給后臺(tái)數(shù)據(jù)庫(kù)。
(4)遍歷后臺(tái)數(shù)據(jù)庫(kù)中每一個(gè)密鑰 k,計(jì)算 r=k 5 m,判斷 Hash(r || rr)是否等于 n。若找到某個(gè)密鑰 kj 滿(mǎn)足條件, 則停止計(jì)算并將 kj 發(fā)給讀寫(xiě)器 ;若全部遍歷完后所有密鑰都無(wú)法滿(mǎn)足條件則認(rèn)證失敗。
遍歷后臺(tái)數(shù)據(jù)庫(kù)中每一個(gè)密鑰 k,計(jì)算 r=k 5 m,判斷 Hash(r || rr)是否等于 n。若找到某個(gè)密鑰 kj 滿(mǎn)足條件, 則停止計(jì)算并將 kj 發(fā)給讀寫(xiě)器 ;若全部遍歷完后所有密鑰都無(wú)法滿(mǎn)足條件則認(rèn)證失敗。
(5)讀寫(xiě)器收到后臺(tái)數(shù)據(jù)庫(kù)發(fā)來(lái)的密鑰 kj 后,計(jì)算 Hash(kj || rr || rt)并發(fā)給標(biāo)簽。
(6)標(biāo)簽計(jì)算 Hash(ki || rr || rt)并與讀寫(xiě)器發(fā)來(lái)的 Hash 值進(jìn)行比較,若相同則完成認(rèn)證。如圖 1 所示。
4 性能分析
(1)標(biāo)簽資源是 RFID 系統(tǒng)的瓶頸,本協(xié)議中標(biāo)簽僅需 要存儲(chǔ)密鑰 ki、隨機(jī)數(shù) rt 和讀寫(xiě)器發(fā)來(lái)的隨機(jī)數(shù) rr,涉及的運(yùn) 算是兩次 Hash 運(yùn)算和一次異或運(yùn)算,并生成隨機(jī)數(shù)一次???體來(lái)說(shuō)對(duì)標(biāo)簽運(yùn)算能力要求不高,適合實(shí)際應(yīng)用。
(2)防非法讀取 :標(biāo)簽和讀寫(xiě)器都需經(jīng)過(guò)身份認(rèn)證后才 能交換數(shù)據(jù),可有效防止非法讀取。
(3)防竊聽(tīng) :認(rèn)證過(guò)程中所有傳遞的有用信息均經(jīng)過(guò) Hash 函數(shù)加密或隨機(jī)數(shù)異或處理,可有效防止竊聽(tīng)。
(4)防位置跟蹤 :每次產(chǎn)生的隨機(jī)數(shù)都不相同,因此標(biāo) 簽在每次通信中所傳輸?shù)南⒁捕际遣煌?,可有效防止因?定輸出而引發(fā)的位置跟蹤問(wèn)題。
(5)防偽裝哄騙和重放:隨機(jī)數(shù)在每次通信時(shí)都是不同的, 攻擊者即使記錄下標(biāo)簽先前發(fā)出的信息,也無(wú)法模擬出下次標(biāo) 簽發(fā)出的信息,可有效防止哄騙和重放攻擊。
(6)前向安全性 :兩個(gè)隨機(jī)數(shù)在每次通信中均不同,即 使攻擊者截取了某次標(biāo)簽的輸出,也無(wú)法根據(jù)該值推算出以 前標(biāo)簽的輸出。
(7)雙向身份認(rèn)證 :通過(guò)計(jì)算 r=k 5 m 并判斷 Hash(r || rr)是否等于 n,讀寫(xiě)器實(shí)現(xiàn)了對(duì)標(biāo)簽的身份認(rèn)證 ;通過(guò)計(jì)算 Hash(ki || rr || rt)并與 Hash(kj || rr || rt)進(jìn)行匹配,標(biāo)簽實(shí)現(xiàn) 了對(duì)讀寫(xiě)器的身份認(rèn)證。
5 結(jié) 語(yǔ)
本文在分析了 RFID 系統(tǒng)面臨的安全威脅和現(xiàn)有的安全方案后,針對(duì)一些典型安全方案的不足,提出了一種基于Hash 函數(shù)的RFID 雙向認(rèn)證協(xié)議。該協(xié)議應(yīng)用成本較低,標(biāo)簽負(fù)載較小,實(shí)現(xiàn)了讀寫(xiě)器和標(biāo)簽之間的雙向身份認(rèn)證,可以保證前向安全性,在一定程度上為RFID 系統(tǒng)提供了更好的安全隱私保護(hù)。