趙太飛,鄒波,尹航
(西安理工大學(xué) 自動(dòng)化與信息工程學(xué)院,陜西 西安 710048)
摘要:為了提高大規(guī)模RFID系統(tǒng)的認(rèn)證效率,通過(guò)分析現(xiàn)有RFID系統(tǒng)的認(rèn)證效率和安全性,提出了一套基于Hash函數(shù)的改進(jìn)協(xié)議。向RFID讀寫(xiě)器加入過(guò)濾規(guī)則,能夠有效過(guò)濾惡意和無(wú)效的認(rèn)證請(qǐng)求;對(duì)標(biāo)簽的訪問(wèn)計(jì)數(shù)器值的分層化、更新和重置,可以有效提高后端數(shù)據(jù)庫(kù)檢索數(shù)據(jù)的命中率。通過(guò)分析和測(cè)試,該協(xié)議能夠有效抵御假冒攻擊、重傳攻擊等不安全問(wèn)題,有效提高RFID認(rèn)證的效率,降低認(rèn)證服務(wù)器計(jì)算負(fù)荷。
關(guān)鍵詞:RFID;認(rèn)證協(xié)議;訪問(wèn)計(jì)數(shù)器;Hash;讀寫(xiě)器
0引言
射頻識(shí)別技術(shù)(Radio Frequency Identification,RFID)是一種非接觸式的自動(dòng)識(shí)別技術(shù)。RFID系統(tǒng)通過(guò)射頻信號(hào)來(lái)識(shí)別目標(biāo)對(duì)象,可工作在各種惡劣的環(huán)境下,且使裝備該標(biāo)簽的設(shè)備變得智能,可以實(shí)現(xiàn)與信息系統(tǒng)進(jìn)行實(shí)時(shí)交流。RFID技術(shù)的應(yīng)用遍及各個(gè)領(lǐng)域,例如商品溯源、移動(dòng)支付、供應(yīng)鏈溯源、門(mén)禁系統(tǒng)等。隨著物聯(lián)網(wǎng)的不斷發(fā)展和RFID的大規(guī)模使用,如何在保證RFID系統(tǒng)安全性的前提下,提高RFID系統(tǒng)的認(rèn)證效率,成為影響RFID大規(guī)模推廣應(yīng)用的技術(shù)難點(diǎn)。
1相關(guān)研究
近年來(lái),RFID安全問(wèn)題成為研究熱點(diǎn)之一,由于RFID標(biāo)簽自身資源的限制,在設(shè)計(jì)RFID標(biāo)簽認(rèn)證協(xié)議時(shí),除了考慮安全性,還要考慮標(biāo)簽自身存儲(chǔ)空間和運(yùn)算能力限制的問(wèn)題。
為了提高RFID安全性,目前一般采用兩種手段:物理方式和密碼學(xué)方式。物理方式需要額外的設(shè)備支持,增加了成本,同時(shí)使用會(huì)造成一定的不便,所以密碼學(xué)是提高RFID安全性的主流方式。
近年來(lái)密碼學(xué)中有眾多的加密技術(shù),主要包括AES、DES、基于Hash函數(shù)的加密算法等。AES、DES等加密方式因資源消耗大,受RFID標(biāo)簽自身資源的限制,較少被使用,而基于Hash函數(shù)的安全機(jī)制資源消耗相對(duì)較低,因此基于Hash函數(shù)的認(rèn)證協(xié)議受到越來(lái)越多的關(guān)注。NTT實(shí)驗(yàn)室提出了Hash鏈方法[1],它是一種采用共享秘密的詢問(wèn)—應(yīng)答協(xié)議,具有不可分辨性和前向安全性,但該協(xié)議只能進(jìn)行單向認(rèn)證,安全性上存在一定缺陷,后臺(tái)數(shù)據(jù)檢索計(jì)算量大;袁署光[2]等人提出一種基于Hash函數(shù)的認(rèn)證協(xié)議,其利用對(duì)稱秘鑰方式,能夠抵御重傳攻擊、假冒攻擊等,但該協(xié)議服務(wù)器運(yùn)算量巨大,數(shù)據(jù)庫(kù)檢索命中率低;劉明生[3]等人提了的基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議,協(xié)議中傳遞標(biāo)簽ID的Hash值為靜態(tài)的,能有效降低后端數(shù)據(jù)庫(kù)檢索數(shù)據(jù)的計(jì)算量,但不能提高檢索的命中率,并且存在被跟蹤的風(fēng)險(xiǎn)。
2安全問(wèn)題分析
RFID系統(tǒng)面臨的安全問(wèn)題[4]主要包括:(1)假冒攻擊(spoofing attack),通過(guò)使用假冒讀寫(xiě)器來(lái)記錄標(biāo)簽的響應(yīng),再用該響應(yīng)去響應(yīng)合法的讀寫(xiě)器,讓合法的讀寫(xiě)器認(rèn)為該標(biāo)簽還存在,通過(guò)RFID的認(rèn)證,事實(shí)上該標(biāo)簽已經(jīng)離去;(2)重傳攻擊(replay attack),是通過(guò)截取標(biāo)簽和讀寫(xiě)器之間通信的有效信號(hào),再在RFID系統(tǒng)中進(jìn)行重傳而對(duì)系統(tǒng)進(jìn)行的一種攻擊;(3)去同步化(desynchronization),指通過(guò)對(duì)標(biāo)簽進(jìn)行惡意認(rèn)證或者攻擊,導(dǎo)致后端數(shù)據(jù)與標(biāo)簽中存儲(chǔ)的信息不一致,進(jìn)而導(dǎo)致標(biāo)簽無(wú)法認(rèn)證的一種攻擊。
3認(rèn)證方案
參考文獻(xiàn)[5]通過(guò)標(biāo)簽訪問(wèn)計(jì)數(shù)器值的自更新特性與密值,結(jié)合Hash函數(shù)進(jìn)行RFID認(rèn)證,雖然能夠抵抗標(biāo)簽偽裝等攻擊,但是該協(xié)議標(biāo)簽數(shù)量較大,若干標(biāo)簽存在惡意認(rèn)證時(shí),根據(jù)k值來(lái)檢索數(shù)據(jù)庫(kù)中標(biāo)簽記錄,將導(dǎo)致檢索范圍過(guò)大,標(biāo)簽記錄命中率降低,而數(shù)據(jù)庫(kù)的每次數(shù)據(jù)比對(duì)都會(huì)進(jìn)行一定量的Hash計(jì)算,這會(huì)導(dǎo)致服務(wù)器耗費(fèi)大量的時(shí)間和資源來(lái)進(jìn)行運(yùn)算,進(jìn)而導(dǎo)致這個(gè)RFID系統(tǒng)效率低下。
針對(duì)參考文獻(xiàn)[5]協(xié)議做如下改進(jìn):對(duì)k值進(jìn)行分層化處理,可以有效提高數(shù)據(jù)庫(kù)標(biāo)簽記錄檢索的命中率;認(rèn)證請(qǐng)求中使用RFID讀寫(xiě)器產(chǎn)生隨機(jī)數(shù),將標(biāo)簽響應(yīng)中推算出的隨機(jī)數(shù)與該隨機(jī)數(shù)進(jìn)行比較,過(guò)濾無(wú)效的認(rèn)證會(huì)話;RFID讀寫(xiě)器保存上一次認(rèn)證會(huì)話中接收的標(biāo)簽響應(yīng),RFID讀寫(xiě)器接收到的標(biāo)簽響應(yīng)與上次會(huì)話中使用的標(biāo)簽響應(yīng)進(jìn)行比較,如果相同就過(guò)濾該認(rèn)證會(huì)話(標(biāo)簽在每次認(rèn)證會(huì)話中會(huì)更新認(rèn)證響應(yīng)),提高認(rèn)證請(qǐng)求的有效性,減少服務(wù)器的運(yùn)行壓力。有關(guān)協(xié)議中的參數(shù)如表1所示。
預(yù)備:對(duì)每個(gè)標(biāo)簽的k值的范圍進(jìn)行分層化處理,例如0~999,1 000~9 999,將k置為所在分層的最小值。當(dāng)k為所在分層區(qū)間k的最大值時(shí),k+1將重置k的值為該分層區(qū)間的最小值,同時(shí)置f的值為“1”,每個(gè)標(biāo)簽配置一個(gè)初始密值S,為RFID系統(tǒng)篩選兩個(gè)碰撞和復(fù)雜度都較低的Hash函數(shù),將標(biāo)簽k、ID、S存儲(chǔ)到數(shù)據(jù)庫(kù)。
步驟(1):RFID讀寫(xiě)器產(chǎn)生一個(gè)隨機(jī)數(shù)rR,向標(biāo)簽發(fā)送Query、rR認(rèn)證請(qǐng)求。
步驟(2):標(biāo)簽接收到RFID讀寫(xiě)器發(fā)送的認(rèn)證請(qǐng)求后,將k值與隨機(jī)數(shù)rR相加得到rk,然后標(biāo)簽讀取存儲(chǔ)器數(shù)據(jù),計(jì)算G(IDrk),G(S),然后向RFID讀寫(xiě)器發(fā)送k、rk、G(IDrk)、G(S)以及標(biāo)志位f;同時(shí)更新S=H(S),更新k=k+1,當(dāng)k為所在分層的最大值時(shí),k+1將重置k的值為該分層的最小值,同時(shí)置f的值為“1”,否則f值不更新。
步驟(3):RFID讀寫(xiě)器接收到來(lái)自標(biāo)簽的信息后,先通過(guò)rk和k計(jì)算出隨機(jī)數(shù)rR′,比較該rR′是否與剛發(fā)出的rR一致,如果不一致,則該數(shù)據(jù)為無(wú)效數(shù)據(jù),直接丟棄;如果一致則進(jìn)一步判斷G(IDrk)和G(S)。比較與該閱讀器上次認(rèn)證時(shí)保留的G(ID′rk′)和G(S′)是否一致,如果一致則為無(wú)效數(shù)據(jù),直接丟棄;如果不一致,則將數(shù)據(jù)k、rk、G(IDrk)、G(S)以及標(biāo)志位f發(fā)送到后端數(shù)據(jù)庫(kù)。
步驟(4):后端服務(wù)器接收到RFID讀寫(xiě)器傳遞的數(shù)據(jù)后,先判斷k值的范圍區(qū)間,確定該標(biāo)簽在哪個(gè)分層,然后判斷f值是否為“1”,如果是轉(zhuǎn)入①,否則轉(zhuǎn)入②。
?、僭跀?shù)據(jù)庫(kù)中找到該分層的所有標(biāo)簽數(shù)據(jù)記錄,檢查該記錄中是否還有沒(méi)有對(duì)比的記錄,如果有轉(zhuǎn)入③;否則,標(biāo)簽不合法,停止認(rèn)證。
②在數(shù)據(jù)庫(kù)中找到該分層的標(biāo)簽數(shù)據(jù)記錄,在此記錄中檢查是否還有符合k″≤k沒(méi)有對(duì)比的記錄,如果有轉(zhuǎn)入④;否則,標(biāo)簽不合法,停止認(rèn)證。
③讀取一條還沒(méi)有對(duì)比的標(biāo)簽數(shù)據(jù)記錄的ID″,計(jì)算G(ID″rk),再與G(IDrk)比較,如果相等,則轉(zhuǎn)入⑤,否則轉(zhuǎn)入①。
?、茏x取一條k″≤k且還沒(méi)有對(duì)比的標(biāo)簽數(shù)據(jù)記錄的ID″,計(jì)算G(ID″rk),再與G(IDrk)比較,如果相等,則轉(zhuǎn)入⑥,否則轉(zhuǎn)入②。
?、荼容^k與k″的大小,如果k與k″相等則取d=0,否則取d=k+l-k″;然后比較G(Hd(S″))與G(S),如果相等,則轉(zhuǎn)入⑦,否則轉(zhuǎn)入①。
?、抻?jì)算d=k-k″,然后比較G(Hd(S″))與G(S),如果相等,則轉(zhuǎn)入⑦,否則轉(zhuǎn)入②。
⑦后端數(shù)據(jù)庫(kù)更新當(dāng)前標(biāo)簽記錄的訪問(wèn)計(jì)數(shù)器k″=k+1和密值S″=Hd+1(S″),如果k為該區(qū)間的最大值,則k″置為該區(qū)間的最小值,然后計(jì)算G(ID″S″)發(fā)送給標(biāo)簽。
步驟(5):閱讀器將后端服務(wù)器發(fā)送來(lái)的G(ID″S(k″))轉(zhuǎn)發(fā)給標(biāo)簽。
步驟(6):標(biāo)簽從存儲(chǔ)器中獲取ID與密值S,計(jì)算G(IDS)與G(ID″S″)是否相等,如果相等則認(rèn)證成功,同時(shí)將標(biāo)志位f置為“0”,否則認(rèn)證失敗。
協(xié)議認(rèn)證過(guò)程如圖1所示。
4協(xié)議安全性分析
RFID系統(tǒng)面臨的主要安全問(wèn)題[6]有:假冒攻擊、重傳攻擊、追蹤、去同步化。這里定義讀寫(xiě)器向標(biāo)簽傳遞信息的無(wú)線信道為前向信道,標(biāo)簽向讀寫(xiě)器傳遞信息的無(wú)線信道為后向信道[7],對(duì)協(xié)議進(jìn)行安全性分析。
4.1假冒攻擊
攻擊者使用偽裝的讀寫(xiě)器通過(guò)前向信道向標(biāo)簽發(fā)送Query和rR認(rèn)證請(qǐng)求,獲取到標(biāo)簽的響應(yīng)k、rR、f、G(IDrk)、G(S);再在下一次與合法讀寫(xiě)器進(jìn)行認(rèn)證時(shí),讀寫(xiě)器發(fā)送Query和rR認(rèn)證請(qǐng)求,攻擊者通過(guò)后向信道使用上次截獲的k、rk、f、G(IDrk)、G(S)來(lái)響應(yīng)讀寫(xiě)器,然而由于讀寫(xiě)器每次發(fā)送的rR都是一個(gè)隨機(jī)產(chǎn)生的隨機(jī)數(shù),所以前后兩次的隨機(jī)數(shù)rR和rk-k不一致,無(wú)法進(jìn)行假冒攻擊。
4.2重傳攻擊
在讀寫(xiě)器向標(biāo)簽發(fā)送Query和rR認(rèn)證請(qǐng)求之后,攻擊者獲取到k、rk、f、G(IDrk)、G(S);在以后的認(rèn)證會(huì)話中,攻擊者通過(guò)后向信道響應(yīng)k、rk、f、G(IDrk)、G(S),從而發(fā)動(dòng)重傳攻擊;在讀寫(xiě)器接收到k、rk、f、G(IDrk)、G(S)過(guò)后,進(jìn)行一次過(guò)濾處理,與上一次接收到的G(ID″rk′)、G(S′)進(jìn)行比較,看數(shù)據(jù)內(nèi)容是否相同,如果相同,則直接丟棄該數(shù)據(jù),然后再判決rk-k和rR的值是否一致,因?yàn)榍昂髢纱握J(rèn)證過(guò)程中讀寫(xiě)器生成的rR不同,由此可見(jiàn)該協(xié)議對(duì)重傳攻擊具有安全性。
4.3追蹤
攻擊者使用偽裝的讀寫(xiě)器向標(biāo)簽發(fā)送認(rèn)證請(qǐng)求,獲取到標(biāo)簽的響應(yīng)k、rk、f、G(IDrk)、G(S),然后通過(guò)該響應(yīng)來(lái)追蹤該標(biāo)簽;由于每次發(fā)起認(rèn)證請(qǐng)求時(shí),讀寫(xiě)器都會(huì)重新產(chǎn)生一個(gè)隨機(jī)數(shù)用于認(rèn)證,并且標(biāo)簽自生的k、S(k)也是不斷變化的,所以rk也會(huì)不斷變化,f值只能是“0”或“1”無(wú)法實(shí)現(xiàn)追蹤,因此該標(biāo)簽的響應(yīng)是不斷變化的,所以該協(xié)議能夠很好地抵制追蹤攻擊。
4.4去同步化
認(rèn)證過(guò)程中,因?yàn)椴捎玫氖菬o(wú)線信道,故有可能造成數(shù)據(jù)傳輸?shù)膩G失,或人為對(duì)標(biāo)簽進(jìn)行惡意攻擊,然后導(dǎo)致標(biāo)簽的數(shù)據(jù)與后端數(shù)據(jù)庫(kù)數(shù)據(jù)不一致,使標(biāo)簽無(wú)效化,無(wú)法完成認(rèn)證操作。后端數(shù)據(jù)庫(kù)可以根據(jù)k值和f值來(lái)確保標(biāo)簽密值的成功匹配,每次成功認(rèn)證過(guò)后,后端數(shù)據(jù)庫(kù)也會(huì)根據(jù)標(biāo)簽傳來(lái)的信息,更新后端數(shù)據(jù)庫(kù)的數(shù)據(jù)。
5協(xié)議效率分析
本協(xié)議對(duì)Hash鏈的RFID安全雙向認(rèn)證協(xié)議[5]做了改進(jìn),進(jìn)一步提高了后端數(shù)據(jù)庫(kù)檢索的效率,讀寫(xiě)器端增加過(guò)濾功能,能夠有效地?cái)r截惡意的認(rèn)證請(qǐng)求,很好地減少服務(wù)器資源的浪費(fèi)。
通過(guò)k值的分層化處理可以有效地縮小數(shù)據(jù)檢索的范圍,快速定位到需要檢索的k值的數(shù)值范圍,從而確定待檢索的數(shù)據(jù)記錄所在的k值分層;再根據(jù)k值進(jìn)一步縮小檢索數(shù)據(jù)記錄的范圍,因?yàn)樵趂為“0”時(shí),被檢索記錄的k″必須滿足k″≤k。
標(biāo)志位“f”的作用主要是為了處理k值在完成多次認(rèn)證過(guò)后導(dǎo)致k值越界,導(dǎo)致標(biāo)簽去同步化,無(wú)法進(jìn)行認(rèn)證。
在認(rèn)證會(huì)話中,讀寫(xiě)器不是將標(biāo)簽響應(yīng)的數(shù)據(jù)進(jìn)行一個(gè)簡(jiǎn)單的數(shù)據(jù)傳遞,讓服務(wù)器進(jìn)行數(shù)據(jù)的處理;而是對(duì)標(biāo)簽響應(yīng)的數(shù)據(jù)進(jìn)行了一個(gè)數(shù)據(jù)過(guò)濾,能夠有效地過(guò)濾無(wú)效認(rèn)證會(huì)話和惡意認(rèn)證,降低服務(wù)器的運(yùn)行負(fù)荷,避免不必要的服務(wù)器資源浪費(fèi)。
6性能分析
本文使用MATLAB對(duì)文獻(xiàn)[5]提出的基于Hash鏈的RFID安全雙向認(rèn)證協(xié)議與本文改進(jìn)的協(xié)議進(jìn)行了仿真測(cè)試,對(duì)比了后端服務(wù)器在比較次數(shù)、哈希運(yùn)算次數(shù)的差別。本文提出的改進(jìn)協(xié)議細(xì)節(jié)上與文獻(xiàn)[5]有些不同,有的特性未在測(cè)試數(shù)據(jù)上很好地體現(xiàn)出來(lái),例如標(biāo)簽閱讀器的過(guò)濾功能,可以過(guò)濾一部分無(wú)效的認(rèn)證請(qǐng)求,降低后端服務(wù)器的運(yùn)行負(fù)荷。
將參考文獻(xiàn)[5]測(cè)試組命名為A組,本文改進(jìn)協(xié)議分成3組進(jìn)行測(cè)試,分別命名為B組、C組和D組。測(cè)試中先去除標(biāo)簽閱讀器的過(guò)濾功能。假定A組中一共有2 000個(gè)標(biāo)簽,后端服務(wù)器也有2 000條對(duì)應(yīng)的標(biāo)簽數(shù)據(jù),并且每個(gè)標(biāo)簽和服務(wù)器之間已發(fā)生不超過(guò)50次的隨機(jī)訪問(wèn)會(huì)話,同時(shí)標(biāo)簽數(shù)據(jù)與后端服務(wù)器同步,再隨機(jī)抽取200個(gè)標(biāo)簽發(fā)生隨機(jī)次數(shù)(不超過(guò)20次)的惡意訪問(wèn),造成標(biāo)簽數(shù)據(jù)與后端數(shù)據(jù)庫(kù)數(shù)據(jù)的不同步,然后隨機(jī)發(fā)起2 000 000次的訪問(wèn)會(huì)話。B組分為a1、b1分層,C組分為a2、b2、c2分層,D組分為a3、b3、c3、d3分層,每個(gè)分層的標(biāo)簽數(shù)、k值范圍以及發(fā)生隨機(jī)惡意訪問(wèn)(不超過(guò)20次)的標(biāo)簽數(shù)具體信息如圖2所示。首先每個(gè)分層的每個(gè)標(biāo)簽與服務(wù)器之間發(fā)生不超過(guò)50次的隨機(jī)訪問(wèn)會(huì)話,同時(shí)標(biāo)簽數(shù)據(jù)與后端服務(wù)器是同步的,再隨機(jī)抽取表2中所述的標(biāo)簽個(gè)數(shù)發(fā)生隨機(jī)次數(shù)(不超過(guò)20次)的惡意訪問(wèn),造成標(biāo)簽數(shù)據(jù)與后端數(shù)據(jù)庫(kù)的不同步,最后以組為單位,每組隨機(jī)發(fā)起2 000 000次的訪問(wèn)會(huì)話,統(tǒng)計(jì)以上A、B、C、D四組數(shù)據(jù)可以得到表3測(cè)試數(shù)據(jù)。
本文協(xié)議對(duì)標(biāo)簽k進(jìn)行分層處理后,分為多個(gè)組,根據(jù)以上測(cè)試結(jié)果可以得出,相比參考文獻(xiàn)[5],本文協(xié)議能有效地減少后端服務(wù)器的運(yùn)算次數(shù),其次k值分層處理的分層數(shù)越多,后端服務(wù)器的運(yùn)算次數(shù)越少。
7結(jié)束語(yǔ)
隨著物聯(lián)網(wǎng)的不斷發(fā)展,RFID系統(tǒng)被廣泛使用,但RFID安全問(wèn)題和認(rèn)證效率問(wèn)題成為制約RFID系統(tǒng)廣泛使用的關(guān)鍵。由于RFID標(biāo)簽自身的局限性,采用密碼學(xué)的RFID安全認(rèn)證協(xié)議成為提高認(rèn)證效率和解決RFID安全性問(wèn)題的重要方法。本文提出了一種基于Hash鏈的改進(jìn)協(xié)議,能有效地抵抗假冒攻擊、重傳攻擊、追蹤和去同步化,利用訪問(wèn)計(jì)數(shù)器值的分層特性及自更新和重置特點(diǎn),提高了數(shù)據(jù)庫(kù)中標(biāo)簽數(shù)據(jù)的命中率,通過(guò)標(biāo)簽閱讀器的過(guò)濾功能,有效地過(guò)濾無(wú)效的認(rèn)證請(qǐng)求,從而降低了RFID認(rèn)證時(shí)后臺(tái)服務(wù)器的資源消耗,有效提高系統(tǒng)的認(rèn)證效率。
參考文獻(xiàn)
?。?] OHKUBO M, SUZUKI K,KINOSHITA S. Hash chain based forwardsecure privacy protection scheme for low cost RFID[C]. Proceedings of the 2004 Symposium on Cryptography and Information Security, Berlin: SpringerVerlag, 2004: 719-724.
[2] 袁署光,戴宏躍,賴聲禮,等.基于Hash函數(shù)的RFID認(rèn)證協(xié)議[J].計(jì)算機(jī)工程,2008,34(12):141-143.
?。?] 劉明生,王艷,趙新生,等.基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議的研究[J].傳感技術(shù)學(xué)報(bào),2011,24(9):1317-1321.
[4] 丁振華,李錦濤,馮波,等.基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議研究[J].計(jì)算機(jī)研究與發(fā)展, 2009,46(4):583-592.
[5] 裴小強(qiáng),衛(wèi)宏儒.基于Hash鏈的RFID安全雙向認(rèn)證協(xié)議[J].計(jì)算機(jī)應(yīng)用,2014,34(z1):47-49,54.
?。?] 高樹(shù)靜.低成本無(wú)源RFID安全關(guān)鍵技術(shù)研究[D].濟(jì)南:山東大學(xué),2013.
?。?] 周永彬,馮登國(guó).RFID安全協(xié)議的設(shè)計(jì)與分析[J].計(jì)算機(jī)學(xué)報(bào),2006,29(4):581-589.