劉國柱,王 騰,王華東
(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院,青島266061)
射頻識別(RFID)[1]技術(shù)作為一種非接觸式自動識別技術(shù),在工業(yè)界和學(xué)術(shù)界得到迅速發(fā)展,廣泛應(yīng)用于銷售、物流、安保等領(lǐng)域.在RFID系統(tǒng)中,帶有惟一識別碼的標(biāo)簽附著在待識別物品上,閱讀器通過向物品發(fā)射無線射頻信號進(jìn)行識別.像其他無線通信系統(tǒng)一樣,RFID系統(tǒng)也存在著安全隱患[2],例如竊聽、假冒、非法讀取、重傳、去同步攻擊.安全方案一旦被攻破,將會導(dǎo)致諸如假冒用戶身份、泄露機(jī)密信息、篡改機(jī)密數(shù)據(jù)等一系列重大安全事故.
RFID系統(tǒng)[3]一般由標(biāo)簽、閱讀器、后臺數(shù)據(jù)庫三部分構(gòu)成.閱讀器與標(biāo)簽之間的數(shù)據(jù)傳輸采用無線方式,所以,閱讀器與標(biāo)簽的信息通信是存有安全隱患的.一般認(rèn)為,固定式RFID系統(tǒng)的閱讀器和后臺數(shù)據(jù)庫之間的數(shù)據(jù)傳輸是安全可靠的,而移動式RFID系統(tǒng)的閱讀器與后臺數(shù)據(jù)庫之間的信息通信是不可靠的.本文在介紹和分析幾種常用的基于Hash函數(shù)[4]的 RFID安全認(rèn)證協(xié)議的基礎(chǔ)上,針對這些認(rèn)證方案的不足之處,提出一種基于Hash函數(shù)與狀態(tài)鎖定的安全認(rèn)證協(xié)議.該協(xié)議假設(shè)閱讀器與后臺數(shù)據(jù)庫之間的數(shù)據(jù)傳輸是安全的,標(biāo)簽的合法性由后臺數(shù)據(jù)庫來驗證.該協(xié)議不僅能有效實(shí)現(xiàn)閱讀器與標(biāo)簽的相互認(rèn)證,而且能夠及時更新ID和密鑰值,能較好地保證系統(tǒng)安全性和高效性.
RFID系統(tǒng)的通信信道是開放性的,可能會受到多種威脅和攻擊,這些攻擊有些是主動性[5]的,有些是被動性的,但無論何種都需要采取防范措施進(jìn)行避免.目前,RFID系統(tǒng)面臨的安全問題主要有以下幾種:
1)竊聽
由于閱讀器與標(biāo)簽之間采用無線通信方式,攻擊者可以在通信信道中竊聽閱讀器與標(biāo)簽之間的通信數(shù)據(jù),在竊聽并分析相關(guān)數(shù)據(jù)后可進(jìn)行更具威脅性的攻擊.
2)追蹤
追蹤是指攻擊者通過標(biāo)簽的響應(yīng)信息來定位標(biāo)簽位置,從而達(dá)到跟蹤定位的目的.
3)假冒攻擊
假冒攻擊包括攻擊者假冒閱讀器和攻擊者假冒標(biāo)簽兩種方式.通常,攻擊者首先會假冒閱讀器來接收標(biāo)簽的響應(yīng)信息,然后用該信息去響應(yīng)合法閱讀器以獲取信任,進(jìn)而繼續(xù)非法通信獲取更多機(jī)密信息.
4)重傳攻擊
攻擊者在通信信道中截取閱讀器與標(biāo)簽之間的通信數(shù)據(jù),然后將該數(shù)據(jù)在閱讀器與標(biāo)簽之間進(jìn)行重傳從而達(dá)到系統(tǒng)攻擊的目的.
5)去同步化攻擊
去同步化攻擊是指通過使閱讀器后臺數(shù)據(jù)庫與標(biāo)簽雙方存儲的信息不一致從而導(dǎo)致標(biāo)簽失效的一種攻擊.攻擊者主要通過干擾標(biāo)簽ID的更新使雙方產(chǎn)生不同步.
安全隱私問題的有效解決保證了RFID技術(shù)在實(shí)際應(yīng)用中的可行性.為保證用戶的安全和隱私,RFID系統(tǒng)需具備以下幾項安全特性:
1)數(shù)據(jù)機(jī)密性
為保證用戶的私密信息不被非法者獲取,標(biāo)簽需要保證對非法閱讀器不泄露任何有關(guān)信息.
2)標(biāo)簽?zāi)涿?/p>
為保證標(biāo)簽的識別碼ID不被攻擊者破解,需要使攻擊者無法分辨出傳輸?shù)男畔⑹莵碜杂谀膫€標(biāo)簽的輸出或標(biāo)簽的哪項輸出.
3)前向安全性
前向安全性是指即使攻擊者獲得了標(biāo)簽發(fā)送的信息,也不能通過回溯當(dāng)前信息獲得標(biāo)簽的歷史信息.
4)相互認(rèn)證性
相互認(rèn)證[6]是指只有通過了身份認(rèn)證的標(biāo)簽(或閱讀器)才能確保是合法的電子標(biāo)簽(或閱讀器),從而使閱讀器(或標(biāo)簽)確認(rèn)獲得的消息是從合法的標(biāo)簽(或閱讀器)處發(fā)出的.
目前,研究學(xué)者已經(jīng)提出了4種基于Hash函數(shù)的安全認(rèn)證協(xié)議,這些協(xié)議都對RFID系統(tǒng)的安全問題進(jìn)行了一定程度的解決,但也存在諸多的不足之處.下面,針對這幾種協(xié)議做簡要介紹.
Hash-Lock協(xié)議[7]是一個簡單的基于單向散列函數(shù)(Hash函數(shù))的訪問控制機(jī)制.標(biāo)簽初始化為非激活狀態(tài),標(biāo)簽中存儲標(biāo)識自身的ID和經(jīng)過Hash函數(shù)變換后來代替 ID的 metaID(=Hash(key));后臺數(shù)據(jù)庫中存儲對應(yīng)每一個合法標(biāo)簽的metaID,ID,key.認(rèn)證流程示意圖如圖1所示.
圖1 Hash-Lock協(xié)議流程示意圖
協(xié)議初步保證了系統(tǒng)通信的安全性.但由于標(biāo)簽ID以明文方式傳輸,metaID的值也始終不變,導(dǎo)致系統(tǒng)易受竊聽、重傳攻擊及假冒攻擊,攻擊者可通過分析傳輸內(nèi)容對標(biāo)簽進(jìn)行跟蹤定位.
Randomized Hash -Lock協(xié)議[8]是基于 Hash-Lock協(xié)議上改進(jìn)的訪問控制機(jī)制.待識別標(biāo)簽除了配備單向散列函數(shù)外,還配備了一個隨機(jī)數(shù)發(fā)生器.后臺數(shù)據(jù)庫中存儲每一個標(biāo)簽的ID值.認(rèn)證流程示意圖如圖2所示.
圖2 Randomized Hash-Lock協(xié)議流程示意圖
協(xié)議采用生成隨機(jī)數(shù)的方式解決了標(biāo)簽的跟蹤定位問題.但標(biāo)簽仍不能避免重傳攻擊和假冒攻擊.同時,讀卡器需要將后臺數(shù)據(jù)庫中的所有標(biāo)簽進(jìn)行運(yùn)算才能比對出合法ID,運(yùn)算量較大.
Hash-Chain協(xié)議[9]中的標(biāo)簽配置了 H與 G兩個不同的Hash函數(shù).在后臺數(shù)據(jù)庫和標(biāo)簽中都存儲了初始值Si,1,同時后臺數(shù)據(jù)庫中還存儲了每一個標(biāo)簽的ID.認(rèn)證流程示意圖如圖3所示.
圖3 Hash-Chain協(xié)議流程示意圖
協(xié)議通過不斷更新標(biāo)識值使系統(tǒng)滿足匿名性和前向安全性,但由于Hash函數(shù)只是用來單向認(rèn)證,仍會受到假冒和重傳攻擊.系統(tǒng)需要兩個不同的Hash函數(shù),增加了系統(tǒng)成本.而且,每次驗證都需要計算逐個計算和比對,計算的負(fù)荷量較大.
基于Hash的ID更新協(xié)議[10]在每次認(rèn)證后都會更新雙方的交換信息.標(biāo)簽初始存儲ID、TID(上次認(rèn)證 ID)、LST(最近一次認(rèn)證 ID),且 TID=LST;后臺數(shù)據(jù)庫中存儲每個標(biāo)簽的H(ID),ID,TID,LST,AE.認(rèn)證流程示意圖如圖4所示.
圖4 基于Hash的ID更新協(xié)議流程示意圖
協(xié)議利用ID值的更新,保證了匿名性和前向安全性,有效防止假冒攻擊和重傳攻擊.但是,攻擊者可以通過進(jìn)行去同步話攻擊致使后臺數(shù)據(jù)庫和標(biāo)簽的ID值不同步,使標(biāo)簽失效.
對稱加密機(jī)制是在公開密鑰機(jī)制開發(fā)之前唯一被采用的加密方案,是一種傳統(tǒng)的密碼機(jī)制.在對稱加密機(jī)制中,信息發(fā)送方把明文經(jīng)過密鑰和加密算法處理后,使其成為無規(guī)律、難破譯的密文傳輸出去.信息接收方獲得密文后,通過密鑰和加密算法的逆執(zhí)行對密文進(jìn)行解密,使其恢復(fù)成明文信息.對稱加密機(jī)制的簡化模型如圖5所示.
圖5 對稱加密機(jī)制的簡化模型
通常來講,對稱加密算法中的加密密鑰和解密密鑰是相同的.這就要求信息發(fā)送方和接收方在進(jìn)行信息傳輸之前,共同商定好密鑰.對稱加密算法的安全性主要依賴密鑰,任何人掌握了密鑰都可以對發(fā)送或接收的消息進(jìn)行加解密,所以密鑰的保密性對通信安全至關(guān)重要.
對稱加密機(jī)制的優(yōu)勢在于計算開銷小、加密速度快、加密效率高.但是不足之處在于如何保證通信雙方安全的傳遞密鑰是一個困難的問題.同時,每對用戶都需要與其他用戶不同的惟一密鑰,系統(tǒng)密鑰數(shù)量呈幾何級數(shù)增長,增加了系統(tǒng)管理密鑰的開銷.目前使用較廣泛的對稱加密算法有DES,IDEA、AES等.
本文在分析和總結(jié)上述幾種安全認(rèn)證協(xié)議的基礎(chǔ)上,提出結(jié)合Hash函數(shù)與對稱加密機(jī)制保證消息傳遞的安全,通過設(shè)置標(biāo)簽和后臺數(shù)據(jù)庫的工作狀態(tài)保證雙方的同步,在每次認(rèn)證結(jié)束后都及時進(jìn)行ID的更新.該協(xié)議可有效抵御竊聽、跟蹤定位、假冒攻擊、重傳攻擊和去同步化攻擊,完成閱讀器和標(biāo)簽的相互認(rèn)證,保證了系統(tǒng)的安全性和隱私性.
系統(tǒng)初始狀態(tài)下,標(biāo)簽存儲共享密鑰K、識別標(biāo)識ID、標(biāo)簽狀態(tài)ST置為00、隨機(jī)數(shù)rt置0,且嵌入一個對稱加密算法(例如DES,AES)和Hash函數(shù)(例如 SHA-1,MD5).閱讀器存儲共享密鑰K,、隨機(jī)數(shù)r置0,且嵌入與標(biāo)簽對應(yīng)的對稱加密算法.后臺數(shù)據(jù)庫存儲所有標(biāo)簽的當(dāng)前識別標(biāo)識CID、上一次識別標(biāo)識PID置0、閱讀器狀態(tài)SR置為00、隨機(jī)數(shù)rr置0,且嵌入與標(biāo)簽對應(yīng)的Hash函數(shù).協(xié)議中提到的符號含義解釋如表1所示.
表1 協(xié)議中符號含義表
基于Hash函數(shù)與狀態(tài)鎖定的認(rèn)證協(xié)議流程示意圖如圖6所示.
圖6 基于Hash函數(shù)與狀態(tài)鎖定的認(rèn)證協(xié)議流程示意圖
具體的認(rèn)證步驟如下:
1)閱讀器通過隨機(jī)函數(shù)random()生成隨機(jī)數(shù)r并傳輸給后臺數(shù)據(jù)庫,然后通過對稱加密算法Ek(Query||r)將詢問信息和隨機(jī)數(shù)生成密文之后發(fā)送給標(biāo)簽作為認(rèn)證請求.
2)后臺數(shù)據(jù)庫收到r值后將rr=r,SR置為01;標(biāo)簽通過對稱加密算法的逆執(zhí)行Dk(Ek(Query||r))獲得Query||r,并提取 Query和 r值,使 rt=r,利用Hash函數(shù)H(ID⊕rt)加密發(fā)送給閱讀器,ST置為01.
3)閱讀器將H(ID⊕rt)轉(zhuǎn)發(fā)給后臺數(shù)據(jù)庫.
4)后臺數(shù)據(jù)庫查詢存儲的所有CID字段,確定是否存在一個CID,使得H(CID⊕rr)等于H(ID⊕rt).如果存在,則表示標(biāo)簽通過閱讀器認(rèn)證,然后SR置為10,并將H(CID)發(fā)送給閱讀器,否則認(rèn)證失敗.
5)閱讀器轉(zhuǎn)發(fā)H(CID)給標(biāo)簽.
6)標(biāo)簽比對H(CID)與H(ID)是否相等.如果相等,則表示閱讀器通過標(biāo)簽認(rèn)證,將Ek(update)發(fā)送給閱讀器,ST置為10.
7)閱讀器通過Dk(Ek(update))提取update消息,轉(zhuǎn)發(fā)給后臺數(shù)據(jù)庫.
8)后臺數(shù)據(jù)庫收到update消息后,使PID=CID,CID=rr⊕CID,完成 CID的更新,將 update消息發(fā)給閱讀器,rr置為0,SR置為11.
9)閱讀器將Ek(update)發(fā)送給標(biāo)簽,使K=r⊕K,完成閱讀器密鑰的更新.
10)標(biāo)簽通過Dk(Ek(update))提取update消息,使ID=rt⊕ID,K=rt⊕K,完成 ID 和密鑰的更新,將Ek(ack)發(fā)送給閱讀器,rt置為0,ST置為11.
11)閱讀器通過Dk(Ek(ack))提取ack消息,轉(zhuǎn)發(fā)給后臺數(shù)據(jù)庫.
12)后臺數(shù)據(jù)庫收到ack消息后,使SR置為00,將ack消息發(fā)給閱讀器.
13)閱讀器將Ek(ack)發(fā)送給標(biāo)簽.
14)標(biāo)簽通過Dk(Ek(ack))提取ack消息后,ST置為00.
1)數(shù)據(jù)機(jī)密性:在閱讀器與標(biāo)簽之間傳遞的所有信息都通過對稱加密算法或Hash函數(shù)進(jìn)行了加密.對于攻擊者來講,任何信息都處于加密狀態(tài),不是以明文傳輸,完全可以保證標(biāo)簽ID、隨機(jī)數(shù)r及其他數(shù)據(jù)的機(jī)密性.
2)標(biāo)簽?zāi)涿?標(biāo)簽向閱讀器發(fā)送的認(rèn)證消息H(ID⊕rt)是經(jīng)過ID與隨機(jī)數(shù)異或且進(jìn)行加密后傳輸?shù)模琁D值與密鑰值的更新都包含有隨機(jī)數(shù).每輪傳輸?shù)男畔㈦S著閱讀器產(chǎn)生的隨機(jī)數(shù)的不同而重復(fù),對于攻擊者而言,傳輸?shù)男畔⑹菬o規(guī)律的,所以協(xié)議可保證標(biāo)簽的匿名性.
3)前向安全性:在每次完成認(rèn)證之后,標(biāo)簽和閱讀器后臺數(shù)據(jù)庫會根據(jù)隨機(jī)數(shù)同步更新ID值和K值,即便攻擊者獲得了當(dāng)前標(biāo)簽的ID值和K值,在不知道隨機(jī)數(shù)r值的情況下,也無法推算出之前的標(biāo)簽信息,保證了標(biāo)簽的前向安全性.
4)相互認(rèn)證性:后臺數(shù)據(jù)庫收到閱讀器轉(zhuǎn)發(fā)的標(biāo)簽信息后,通過查詢存儲的所有CID字段,確定是否存在一個CID,使得H(CID⊕rr)等于H(ID⊕rt),完成對合法標(biāo)簽的認(rèn)證;標(biāo)簽收到閱讀器發(fā)送的信息后,比對H(CID)與H(ID)是否相等,完成對合法閱讀器的認(rèn)證.
5)假冒攻擊:協(xié)議執(zhí)行相互認(rèn)證之后,標(biāo)簽ID和密鑰K值都要進(jìn)行更新,即使攻擊者竊聽了本次認(rèn)證所有信息,獲得標(biāo)簽ID值,在假冒標(biāo)簽進(jìn)行重新發(fā)送時不會通過閱讀器的認(rèn)證.
6)重傳攻擊:通過給標(biāo)簽和后臺數(shù)據(jù)庫設(shè)置狀態(tài)值,使得協(xié)議在每一步的執(zhí)行都鎖定在特定的狀態(tài)下,執(zhí)行操作后轉(zhuǎn)為下一狀態(tài).所以,當(dāng)攻擊者利用本次竊聽到的信息進(jìn)行重傳時,標(biāo)簽和后臺數(shù)據(jù)庫已經(jīng)轉(zhuǎn)入了下一狀態(tài),不會對攻擊者重傳的信息進(jìn)行正確的響應(yīng).協(xié)議狀態(tài)設(shè)置含義如表2所示.
表2 協(xié)議狀態(tài)設(shè)置含義表
7)去同步攻擊:協(xié)議中約定了兩種消息:update消息和ack消息.當(dāng)一方接收到update消息時,就會對相應(yīng)的數(shù)據(jù)進(jìn)行更新.當(dāng)一方收到ack消息時,表明對方已完成數(shù)據(jù)的更新,將自身狀態(tài)轉(zhuǎn)到初始狀態(tài)即可.假如攻擊者干擾標(biāo)簽ID的更新,標(biāo)簽的狀態(tài)就會停留在11,這時標(biāo)簽會直至收到ack消息才完成整個認(rèn)證過程.即使標(biāo)簽的狀態(tài)一直沒有轉(zhuǎn)到00,當(dāng)系統(tǒng)進(jìn)行初始化后,后臺數(shù)據(jù)庫可通過查找PID字段,重新對合法標(biāo)簽進(jìn)行認(rèn)證.
本文協(xié)議與上述幾種基于Hash函數(shù)的認(rèn)證協(xié)議相比,本協(xié)議具備上述協(xié)議的全部安全安全性能,同時具備密鑰更新性能.安全性能比較如表3所示,其中,√表示滿足該項要求,×表示不滿足該項要求.
表3 安全性能比較表
本文在研究和分析幾種常用的基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議的基礎(chǔ)上,提出一種基于Hash函數(shù)與狀態(tài)鎖定的RFID安全認(rèn)證協(xié)議.該協(xié)議結(jié)合閱讀器后臺數(shù)據(jù)庫與標(biāo)簽狀態(tài)鎖定設(shè)置,不僅能有效實(shí)現(xiàn)閱讀器與標(biāo)簽的相互認(rèn)證,而且能夠及時更新ID和密鑰值,有效處理RFID認(rèn)證階段的安全風(fēng)險問題.
[1]游戰(zhàn)清,李蘇劍,張益強(qiáng).無線射頻識別技術(shù)(RFID)理論與應(yīng)用[M].北京:電子工業(yè)出版社,2004.
[2]張 兵,馬新新,秦志光.基于hash運(yùn)算的RFID認(rèn)證協(xié)議分析和改進(jìn)[J].計算機(jī)應(yīng)用研究,2011,28(11):4311-4314.
[3]OSAKA K,TAKAGI T.An Efficient and Secure RFID Security Method with Ownership Transfer[C]//Guangzhou:Proc.of Conf.on Computational Intelligence and Security,2006.
[4]TSUDIK G.YA-TRAP:Yet Another Trivial RFID Authentication Protocol[C]//Washington D.C.:Proceedings of International Conference on Pervasive Computing and Communications,2006.
[5]謝 川.結(jié)合Hash函數(shù)和密鑰陣列的RFID安全認(rèn)證協(xié)議[J].計算機(jī)應(yīng)用,2011,31(3):805-807.
[6]丁振華,李錦濤,馮 波.基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議研究[J].計算機(jī)研究與發(fā)展,2009,45(4):583 -592.
[7]胡 捷,宗 平.面向物聯(lián)網(wǎng)的RFID安全策略研究[J].計算機(jī)技術(shù)與發(fā)展,2011,21(5):151 -154.
[8]袁署光,戴宏躍,賴聲禮.基于Hash函數(shù)的RFID認(rèn)證協(xié)議[J].計算機(jī)工程,2008,34(12):141 -143.
[9]張捍東,丁 磊,岑豫皖.基于Hash函數(shù)的RFID安全協(xié)議研究[J].計算機(jī)工程與設(shè)計,2013,34(11):3766-3769.
[10]余恬恬,馮全源.基于Hash函數(shù)的RFID挑戰(zhàn)-應(yīng)答認(rèn)證協(xié)議[J].計算機(jī)工程,2009,35(24):156-161.