《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于Hash鏈的RFID認(rèn)證協(xié)議
基于Hash鏈的RFID認(rèn)證協(xié)議
2016年微型機與應(yīng)用第19期
趙太飛,鄒波,尹航
西安理工大學(xué) 自動化與信息工程學(xué)院,陜西 西安 710048
摘要: 了提高大規(guī)模RFID系統(tǒng)的認(rèn)證效率,通過分析現(xiàn)有RFID系統(tǒng)的認(rèn)證效率和安全性,提出了一套基于Hash函數(shù)的改進協(xié)議。向RFID讀寫器加入過濾規(guī)則,能夠有效過濾惡意和無效的認(rèn)證請求;對標(biāo)簽的訪問計數(shù)器值的分層化、更新和重置,可以有效提高后端數(shù)據(jù)庫檢索數(shù)據(jù)的命中率。通過分析和測試,該協(xié)議能夠有效抵御假冒攻擊、重傳攻擊等不安全問題,有效提高RFID認(rèn)證的效率,降低認(rèn)證服務(wù)器計算負(fù)荷。
Abstract:
Key words :

  趙太飛,鄒波,尹航

 ?。ㄎ靼怖砉ご髮W(xué) 自動化與信息工程學(xué)院,陜西 西安 710048)

       摘要:為了提高大規(guī)模RFID系統(tǒng)的認(rèn)證效率,通過分析現(xiàn)有RFID系統(tǒng)的認(rèn)證效率和安全性,提出了一套基于Hash函數(shù)的改進協(xié)議。向RFID讀寫器加入過濾規(guī)則,能夠有效過濾惡意和無效的認(rèn)證請求;對標(biāo)簽的訪問計數(shù)器值的分層化、更新和重置,可以有效提高后端數(shù)據(jù)庫檢索數(shù)據(jù)的命中率。通過分析和測試,該協(xié)議能夠有效抵御假冒攻擊、重傳攻擊等不安全問題,有效提高RFID認(rèn)證的效率,降低認(rèn)證服務(wù)器計算負(fù)荷。

  關(guān)鍵詞:RFID;認(rèn)證協(xié)議;訪問計數(shù)器;Hash;讀寫器

0引言

  射頻識別技術(shù)(Radio Frequency Identification,RFID)是一種非接觸式的自動識別技術(shù)。RFID系統(tǒng)通過射頻信號來識別目標(biāo)對象,可工作在各種惡劣的環(huán)境下,且使裝備該標(biāo)簽的設(shè)備變得智能,可以實現(xiàn)與信息系統(tǒng)進行實時交流。RFID技術(shù)的應(yīng)用遍及各個領(lǐng)域,例如商品溯源、移動支付、供應(yīng)鏈溯源、門禁系統(tǒng)等。隨著物聯(lián)網(wǎng)的不斷發(fā)展和RFID的大規(guī)模使用,如何在保證RFID系統(tǒng)安全性的前提下,提高RFID系統(tǒng)的認(rèn)證效率,成為影響RFID大規(guī)模推廣應(yīng)用的技術(shù)難點。

1相關(guān)研究

  近年來,RFID安全問題成為研究熱點之一,由于RFID標(biāo)簽自身資源的限制,在設(shè)計RFID標(biāo)簽認(rèn)證協(xié)議時,除了考慮安全性,還要考慮標(biāo)簽自身存儲空間和運算能力限制的問題。

  為了提高RFID安全性,目前一般采用兩種手段:物理方式和密碼學(xué)方式。物理方式需要額外的設(shè)備支持,增加了成本,同時使用會造成一定的不便,所以密碼學(xué)是提高RFID安全性的主流方式。

  近年來密碼學(xué)中有眾多的加密技術(shù),主要包括AES、DES、基于Hash函數(shù)的加密算法等。AES、DES等加密方式因資源消耗大,受RFID標(biāo)簽自身資源的限制,較少被使用,而基于Hash函數(shù)的安全機制資源消耗相對較低,因此基于Hash函數(shù)的認(rèn)證協(xié)議受到越來越多的關(guān)注。NTT實驗室提出了Hash鏈方法[1],它是一種采用共享秘密的詢問—應(yīng)答協(xié)議,具有不可分辨性和前向安全性,但該協(xié)議只能進行單向認(rèn)證,安全性上存在一定缺陷,后臺數(shù)據(jù)檢索計算量大;袁署光[2]等人提出一種基于Hash函數(shù)的認(rèn)證協(xié)議,其利用對稱秘鑰方式,能夠抵御重傳攻擊、假冒攻擊等,但該協(xié)議服務(wù)器運算量巨大,數(shù)據(jù)庫檢索命中率低;劉明生[3]等人提了的基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議,協(xié)議中傳遞標(biāo)簽ID的Hash值為靜態(tài)的,能有效降低后端數(shù)據(jù)庫檢索數(shù)據(jù)的計算量,但不能提高檢索的命中率,并且存在被跟蹤的風(fēng)險。

2安全問題分析

  RFID系統(tǒng)面臨的安全問題[4]主要包括:(1)假冒攻擊(spoofing attack),通過使用假冒讀寫器來記錄標(biāo)簽的響應(yīng),再用該響應(yīng)去響應(yīng)合法的讀寫器,讓合法的讀寫器認(rèn)為該標(biāo)簽還存在,通過RFID的認(rèn)證,事實上該標(biāo)簽已經(jīng)離去;(2)重傳攻擊(replay attack),是通過截取標(biāo)簽和讀寫器之間通信的有效信號,再在RFID系統(tǒng)中進行重傳而對系統(tǒng)進行的一種攻擊;(3)去同步化(desynchronization),指通過對標(biāo)簽進行惡意認(rèn)證或者攻擊,導(dǎo)致后端數(shù)據(jù)與標(biāo)簽中存儲的信息不一致,進而導(dǎo)致標(biāo)簽無法認(rèn)證的一種攻擊。

3認(rèn)證方案

  參考文獻[5]通過標(biāo)簽訪問計數(shù)器值的自更新特性與密值,結(jié)合Hash函數(shù)進行RFID認(rèn)證,雖然能夠抵抗標(biāo)簽偽裝等攻擊,但是該協(xié)議標(biāo)簽數(shù)量較大,若干標(biāo)簽存在惡意認(rèn)證時,根據(jù)k值來檢索數(shù)據(jù)庫中標(biāo)簽記錄,將導(dǎo)致檢索范圍過大,標(biāo)簽記錄命中率降低,而數(shù)據(jù)庫的每次數(shù)據(jù)比對都會進行一定量的Hash計算,這會導(dǎo)致服務(wù)器耗費大量的時間和資源來進行運算,進而導(dǎo)致這個RFID系統(tǒng)效率低下。

  針對參考文獻[5]協(xié)議做如下改進:對k值進行分層化處理,可以有效提高數(shù)據(jù)庫標(biāo)簽記錄檢索的命中率;認(rèn)證請求中使用RFID讀寫器產(chǎn)生隨機數(shù),將標(biāo)簽響應(yīng)中推算出的隨機數(shù)與該隨機數(shù)進行比較,過濾無效的認(rèn)證會話;RFID讀寫器保存上一次認(rèn)證會話中接收的標(biāo)簽響應(yīng),RFID讀寫器接收到的標(biāo)簽響應(yīng)與上次會話中使用的標(biāo)簽響應(yīng)進行比較,如果相同就過濾該認(rèn)證會話(標(biāo)簽在每次認(rèn)證會話中會更新認(rèn)證響應(yīng)),提高認(rèn)證請求的有效性,減少服務(wù)器的運行壓力。有關(guān)協(xié)議中的參數(shù)如表1所示。

  預(yù)備:對每個標(biāo)簽的k值的范圍進行分層化處理,例如0~999,1 000~9 999,將k置為所在分層的最小值。當(dāng)k為所在分層區(qū)間k的最大值時,k+1將重置k的值為該分層區(qū)間的最小值,同時置f的值為“1”,每個標(biāo)簽配置一個初始密值S,為RFID系統(tǒng)篩選兩個碰撞和復(fù)雜度都較低的Hash函數(shù),將標(biāo)簽k、ID、S存儲到數(shù)據(jù)庫。

  步驟(1):RFID讀寫器產(chǎn)生一個隨機數(shù)rR,向標(biāo)簽發(fā)送Query、rR認(rèn)證請求。

  步驟(2):標(biāo)簽接收到RFID讀寫器發(fā)送的認(rèn)證請求后,將k值與隨機數(shù)rR相加得到rk,然后標(biāo)簽讀取存儲器數(shù)據(jù),計算G(IDrk),G(S),然后向RFID讀寫器發(fā)送k、rk、G(IDrk)、G(S)以及標(biāo)志位f;同時更新S=H(S),更新k=k+1,當(dāng)k為所在分層的最大值時,k+1將重置k的值為該分層的最小值,同時置f的值為“1”,否則f值不更新。

  步驟(3):RFID讀寫器接收到來自標(biāo)簽的信息后,先通過rk和k計算出隨機數(shù)rR′,比較該rR′是否與剛發(fā)出的rR一致,如果不一致,則該數(shù)據(jù)為無效數(shù)據(jù),直接丟棄;如果一致則進一步判斷G(IDrk)和G(S)。比較與該閱讀器上次認(rèn)證時保留的G(ID′rk′)和G(S′)是否一致,如果一致則為無效數(shù)據(jù),直接丟棄;如果不一致,則將數(shù)據(jù)k、rk、G(IDrk)、G(S)以及標(biāo)志位f發(fā)送到后端數(shù)據(jù)庫。

  步驟(4):后端服務(wù)器接收到RFID讀寫器傳遞的數(shù)據(jù)后,先判斷k值的范圍區(qū)間,確定該標(biāo)簽在哪個分層,然后判斷f值是否為“1”,如果是轉(zhuǎn)入①,否則轉(zhuǎn)入②。

  ①在數(shù)據(jù)庫中找到該分層的所有標(biāo)簽數(shù)據(jù)記錄,檢查該記錄中是否還有沒有對比的記錄,如果有轉(zhuǎn)入③;否則,標(biāo)簽不合法,停止認(rèn)證。

 ?、谠跀?shù)據(jù)庫中找到該分層的標(biāo)簽數(shù)據(jù)記錄,在此記錄中檢查是否還有符合k″≤k沒有對比的記錄,如果有轉(zhuǎn)入④;否則,標(biāo)簽不合法,停止認(rèn)證。

 ?、圩x取一條還沒有對比的標(biāo)簽數(shù)據(jù)記錄的ID″,計算G(ID″rk),再與G(IDrk)比較,如果相等,則轉(zhuǎn)入⑤,否則轉(zhuǎn)入①。

  ④讀取一條k″≤k且還沒有對比的標(biāo)簽數(shù)據(jù)記錄的ID″,計算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)入①。

  ⑥計算d=k-k″,然后比較G(Hd(S″))與G(S),如果相等,則轉(zhuǎn)入⑦,否則轉(zhuǎn)入②。

 ?、吆蠖藬?shù)據(jù)庫更新當(dāng)前標(biāo)簽記錄的訪問計數(shù)器k″=k+1和密值S″=Hd+1(S″),如果k為該區(qū)間的最大值,則k″置為該區(qū)間的最小值,然后計算G(ID″S″)發(fā)送給標(biāo)簽。

  步驟(5):閱讀器將后端服務(wù)器發(fā)送來的G(ID″S(k″))轉(zhuǎn)發(fā)給標(biāo)簽。

  步驟(6):標(biāo)簽從存儲器中獲取ID與密值S,計算G(IDS)與G(ID″S″)是否相等,如果相等則認(rèn)證成功,同時將標(biāo)志位f置為“0”,否則認(rèn)證失敗。

  協(xié)議認(rèn)證過程如圖1所示。

圖像 002.png

圖像 001.png

4協(xié)議安全性分析

  RFID系統(tǒng)面臨的主要安全問題[6]有:假冒攻擊、重傳攻擊、追蹤、去同步化。這里定義讀寫器向標(biāo)簽傳遞信息的無線信道為前向信道,標(biāo)簽向讀寫器傳遞信息的無線信道為后向信道[7],對協(xié)議進行安全性分析。

  4.1假冒攻擊

  攻擊者使用偽裝的讀寫器通過前向信道向標(biāo)簽發(fā)送Query和rR認(rèn)證請求,獲取到標(biāo)簽的響應(yīng)k、rR、f、G(IDrk)、G(S);再在下一次與合法讀寫器進行認(rèn)證時,讀寫器發(fā)送Query和rR認(rèn)證請求,攻擊者通過后向信道使用上次截獲的k、rk、f、G(IDrk)、G(S)來響應(yīng)讀寫器,然而由于讀寫器每次發(fā)送的rR都是一個隨機產(chǎn)生的隨機數(shù),所以前后兩次的隨機數(shù)rR和rk-k不一致,無法進行假冒攻擊。

  4.2重傳攻擊

  在讀寫器向標(biāo)簽發(fā)送Query和rR認(rèn)證請求之后,攻擊者獲取到k、rk、f、G(IDrk)、G(S);在以后的認(rèn)證會話中,攻擊者通過后向信道響應(yīng)k、rk、f、G(IDrk)、G(S),從而發(fā)動重傳攻擊;在讀寫器接收到k、rk、f、G(IDrk)、G(S)過后,進行一次過濾處理,與上一次接收到的G(ID″rk′)、G(S′)進行比較,看數(shù)據(jù)內(nèi)容是否相同,如果相同,則直接丟棄該數(shù)據(jù),然后再判決rk-k和rR的值是否一致,因為前后兩次認(rèn)證過程中讀寫器生成的rR不同,由此可見該協(xié)議對重傳攻擊具有安全性。

  4.3追蹤

  攻擊者使用偽裝的讀寫器向標(biāo)簽發(fā)送認(rèn)證請求,獲取到標(biāo)簽的響應(yīng)k、rk、f、G(IDrk)、G(S),然后通過該響應(yīng)來追蹤該標(biāo)簽;由于每次發(fā)起認(rèn)證請求時,讀寫器都會重新產(chǎn)生一個隨機數(shù)用于認(rèn)證,并且標(biāo)簽自生的k、S(k)也是不斷變化的,所以rk也會不斷變化,f值只能是“0”或“1”無法實現(xiàn)追蹤,因此該標(biāo)簽的響應(yīng)是不斷變化的,所以該協(xié)議能夠很好地抵制追蹤攻擊。

  4.4去同步化

  認(rèn)證過程中,因為采用的是無線信道,故有可能造成數(shù)據(jù)傳輸?shù)膩G失,或人為對標(biāo)簽進行惡意攻擊,然后導(dǎo)致標(biāo)簽的數(shù)據(jù)與后端數(shù)據(jù)庫數(shù)據(jù)不一致,使標(biāo)簽無效化,無法完成認(rèn)證操作。后端數(shù)據(jù)庫可以根據(jù)k值和f值來確保標(biāo)簽密值的成功匹配,每次成功認(rèn)證過后,后端數(shù)據(jù)庫也會根據(jù)標(biāo)簽傳來的信息,更新后端數(shù)據(jù)庫的數(shù)據(jù)。

5協(xié)議效率分析

  本協(xié)議對Hash鏈的RFID安全雙向認(rèn)證協(xié)議[5]做了改進,進一步提高了后端數(shù)據(jù)庫檢索的效率,讀寫器端增加過濾功能,能夠有效地攔截惡意的認(rèn)證請求,很好地減少服務(wù)器資源的浪費。

  通過k值的分層化處理可以有效地縮小數(shù)據(jù)檢索的范圍,快速定位到需要檢索的k值的數(shù)值范圍,從而確定待檢索的數(shù)據(jù)記錄所在的k值分層;再根據(jù)k值進一步縮小檢索數(shù)據(jù)記錄的范圍,因為在f為“0”時,被檢索記錄的k″必須滿足k″≤k。

  標(biāo)志位“f”的作用主要是為了處理k值在完成多次認(rèn)證過后導(dǎo)致k值越界,導(dǎo)致標(biāo)簽去同步化,無法進行認(rèn)證。

  在認(rèn)證會話中,讀寫器不是將標(biāo)簽響應(yīng)的數(shù)據(jù)進行一個簡單的數(shù)據(jù)傳遞,讓服務(wù)器進行數(shù)據(jù)的處理;而是對標(biāo)簽響應(yīng)的數(shù)據(jù)進行了一個數(shù)據(jù)過濾,能夠有效地過濾無效認(rèn)證會話和惡意認(rèn)證,降低服務(wù)器的運行負(fù)荷,避免不必要的服務(wù)器資源浪費。

6性能分析

  本文使用MATLAB對文獻[5]提出的基于Hash鏈的RFID安全雙向認(rèn)證協(xié)議與本文改進的協(xié)議進行了仿真測試,對比了后端服務(wù)器在比較次數(shù)、哈希運算次數(shù)的差別。本文提出的改進協(xié)議細(xì)節(jié)上與文獻[5]有些不同,有的特性未在測試數(shù)據(jù)上很好地體現(xiàn)出來,例如標(biāo)簽閱讀器的過濾功能,可以過濾一部分無效的認(rèn)證請求,降低后端服務(wù)器的運行負(fù)荷。

  將參考文獻[5]測試組命名為A組,本文改進協(xié)議分成3組進行測試,分別命名為B組、C組和D組。測試中先去除標(biāo)簽閱讀器的過濾功能。假定A組中一共有2 000個標(biāo)簽,后端服務(wù)器也有2 000條對應(yīng)的標(biāo)簽數(shù)據(jù),并且每個標(biāo)簽和服務(wù)器之間已發(fā)生不超過50次的隨機訪問會話,同時標(biāo)簽數(shù)據(jù)與后端服務(wù)器同步,再隨機抽取200個標(biāo)簽發(fā)生隨機次數(shù)(不超過20次)的惡意訪問,造成標(biāo)簽數(shù)據(jù)與后端數(shù)據(jù)庫數(shù)據(jù)的不同步,然后隨機發(fā)起2 000 000次的訪問會話。B組分為a1、b1分層,C組分為a2、b2、c2分層,D組分為a3、b3、c3、d3分層,每個分層的標(biāo)簽數(shù)、k值范圍以及發(fā)生隨機惡意訪問(不超過20次)的標(biāo)簽數(shù)具體信息如圖2所示。首先每個分層的每個標(biāo)簽與服務(wù)器之間發(fā)生不超過50次的隨機訪問會話,同時標(biāo)簽數(shù)據(jù)與后端服務(wù)器是同步的,再隨機抽取表2中所述的標(biāo)簽個數(shù)發(fā)生隨機次數(shù)(不超過20次)的惡意訪問,造成標(biāo)簽數(shù)據(jù)與后端數(shù)據(jù)庫的不同步,最后以組為單位,每組隨機發(fā)起2 000 000次的訪問會話,統(tǒng)計以上A、B、C、D四組數(shù)據(jù)可以得到表3測試數(shù)據(jù)。

圖像 003.png

圖像 004.png

  本文協(xié)議對標(biāo)簽k進行分層處理后,分為多個組,根據(jù)以上測試結(jié)果可以得出,相比參考文獻[5],本文協(xié)議能有效地減少后端服務(wù)器的運算次數(shù),其次k值分層處理的分層數(shù)越多,后端服務(wù)器的運算次數(shù)越少。

7結(jié)束語

  隨著物聯(lián)網(wǎng)的不斷發(fā)展,RFID系統(tǒng)被廣泛使用,但RFID安全問題和認(rèn)證效率問題成為制約RFID系統(tǒng)廣泛使用的關(guān)鍵。由于RFID標(biāo)簽自身的局限性,采用密碼學(xué)的RFID安全認(rèn)證協(xié)議成為提高認(rèn)證效率和解決RFID安全性問題的重要方法。本文提出了一種基于Hash鏈的改進協(xié)議,能有效地抵抗假冒攻擊、重傳攻擊、追蹤和去同步化,利用訪問計數(shù)器值的分層特性及自更新和重置特點,提高了數(shù)據(jù)庫中標(biāo)簽數(shù)據(jù)的命中率,通過標(biāo)簽閱讀器的過濾功能,有效地過濾無效的認(rèn)證請求,從而降低了RFID認(rèn)證時后臺服務(wù)器的資源消耗,有效提高系統(tǒng)的認(rèn)證效率。

  參考文獻

  [1] 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: SpringerVerlag, 2004: 719-724.

 ?。?] 袁署光,戴宏躍,賴聲禮,等.基于Hash函數(shù)的RFID認(rèn)證協(xié)議[J].計算機工程,2008,34(12):141-143.

 ?。?] 劉明生,王艷,趙新生,等.基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議的研究[J].傳感技術(shù)學(xué)報,2011,24(9):1317-1321.

 ?。?] 丁振華,李錦濤,馮波,等.基于Hash函數(shù)的RFID安全認(rèn)證協(xié)議研究[J].計算機研究與發(fā)展, 2009,46(4):583-592.

 ?。?] 裴小強,衛(wèi)宏儒.基于Hash鏈的RFID安全雙向認(rèn)證協(xié)議[J].計算機應(yīng)用,2014,34(z1):47-49,54.

 ?。?] 高樹靜.低成本無源RFID安全關(guān)鍵技術(shù)研究[D].濟南:山東大學(xué),2013.

 ?。?] 周永彬,馮登國.RFID安全協(xié)議的設(shè)計與分析[J].計算機學(xué)報,2006,29(4):581-589.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。