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