伍新華 唐翠婷
(武漢理工大學計算機學院 武漢 430063)
RFID技術是物聯網的核心技術之一,RFID系統由3個部分組成:RFID標簽、RFID標簽讀寫器和后臺數據庫.一般認為,標簽讀寫器至后臺數據庫的通信通道為安全信道,標簽和標簽讀寫器之間的通信通道為不安全信道.本文主要探討的是基于標簽和標簽讀寫器之間(為描述方便,稱其為無線數據采集區域)的不安全信道上的安全問題.無線數據采集區域主要涉及到非法訪問、跟蹤、竊聽、偽造、數據演繹、重放攻擊、DOS攻擊、標簽失效[1]、物理攻擊等安全問題.
RFID系統安全問題的關鍵在于閱讀器與標簽能夠相互認證識別,且在通信過程中不會引起消息和個人隱私泄密等.因此,一種高效、安全的RFID認證協議就顯得尤為重要.目前大多數協議重視對標簽的安全認證,而忽略了對閱讀器的安全識別,以致未授權閱讀器仍可通過安全認證,導致標簽信息的泄露;重視復雜的運算算法來加大通信信息本身的可辨識度,試圖使攻擊者不能獲取真正有利信息,卻忽略了RFID系統本身資源的局限.
本文剖析了具有代表性的基于Hash函數的RFID安全協議,針對它們的缺陷,提出了改進后的RFID安全協議——HASH-IMAP(improved mutual authentication protocol)協議.因為采用的運算大部分是基于通過性能分析和安全性對比,說明了該協議是高效和安全的.
針對RFID系統的無線數據采集區域的安全問題,研究者提出了許多安全認證協議,例如Hash-Lock協議[2]、隨機Hash-Lock協議[3]和Hash-Chain協議[4]等.文獻[5]在對Hash-Lock,隨機Hash-Lock,Hash-Chain協議的分析基礎上,實現了數據庫與標簽的安全認證.閱讀器產生的隨機數R,不斷更新的S值,使得每次認證過程中閱讀器與標簽的通信信道上的消息不相同.加之每次認證信息均經過Hash運算,使得消息內容不易被破譯和演繹.但當重放認證請求時,標簽給予同樣回應,攻擊者可對此標簽進行跟蹤定位.S的更新方法是:標簽計算H(ID||S),并與所接收值進行對比,相同則讓數據庫與標簽同步更新S.此方法模糊不清,易給攻擊者可乘之機.
文獻[6]中,若認證成功,則數據庫增加一條記錄(H(H(Key)),IDk,H(Key),i),并將第i條記錄中Pointer指向該新增記錄編號,其中i為標簽IDk的初始記錄標號.下一次與標簽IDk通信更新Key值時,則會覆蓋掉第i條記錄,以此類推.相對于文獻[5]中的密值更新模糊,文獻[6]將初始記錄中的Pointer指向成功認證(標簽Key值更新)后的另一條標簽記錄,即一個標簽對應數據庫中兩條記錄(一份是當前的認證記錄,另一份是上一次的認證記錄),成功解決了數據庫與標簽的密值不同步而帶來的安全隱患.但是一個標簽對應數據庫中兩條記錄,占用較多資源,當標簽數量急劇增多時,數據庫的存儲空間也需急劇增大,且仍未解決重放攻擊問題.
文獻[7]設置2個k值:K存儲當前k值,Klast存儲上一次成功認證時的k值.用一個標簽對應數據庫中的一條記錄,來優化一個標簽對應兩條記錄的存儲方案,同樣成功解決了標簽與數據庫密值的更新同步的問題.閱讀器和標簽均產生隨機數,有效地解決了重放攻擊問題.
文獻[5-7]的協議均采用保持標簽ID不變、更新密值的方式,在基于Hash函數的安全認證協議上進行了相關的改進.顯然,文獻[7]在以上三種方案中的安全性能是最好的.在犧牲部分計算和存儲開銷的代價下,它成功實現了標簽與數據庫的雙向認證.閱讀器和標簽都產生隨機數有效解決了重放攻擊帶來的安全隱患;不斷更新密值可提高認證協議的安全性.采用了存儲2個密值域的方式,不僅簡單地解決了數據庫存儲開銷問題,還能抵御攻擊者的惡意攻擊造成的密值不同步的隱患.但第三種方案還是存在一些不足:(1)非法訪問.合法但未授權的閱讀器仍可獲得標簽的安全認證;(2)DOS攻擊.為保證安全認證犧牲了過多的計算開銷.每一次認證過程中,數據庫最多要計算O(n)的Hash運算,極大的加重了數據庫的運算負擔.攻擊者的持續攻擊有可能造成數據庫的不堪重負;(3)標簽失效.標簽在每次認證過程中,除需存儲自身產生的隨機數外,還要存儲閱讀器發送的隨機數.攻擊者的持續攻擊有可能造成標簽存儲資源的耗盡.
本文提出了一種閱讀器與標簽雙向認證的HASH-IMAP安全協議.該協議同樣是基于Hash函數的,且通過為閱讀器設置標識來防止非法訪問,并在保證安全的前提下盡可能采用簡單的運算來減少系統開銷,實現了閱讀器與標簽的安全雙向認證.
數據庫中的記錄主要包括4列:ID,keyold,keynew和ID′R.其中,ID為標簽的惟一標識符,ID′R為合法授權的閱讀器的唯一標識符,keyold是上一次成功認證的key值,初始值為0;keynew是本次認證過程中生成的key值,初始值為數據庫與標簽共享的隨機關鍵字.
HASH-IMAP安全協議執行過程見圖1.

圖1 HASH-IMAP執行過程
圖1中:(1)閱讀器產生隨機數R1,將發送請求Query與R1傳給標簽;(2)標簽生成隨機數R2并存儲,計算key⊕H(R1⊕R2),將結果連同R2一起發送給閱讀器;(3)閱讀器將接收到的R2,key⊕H(R1⊕R2)連同R1發送給數據庫;(4)數據庫首先計算H(R1⊕R2),與key⊕H(R1⊕R2)異或運算后得到標簽的key值,再與每條記錄中keynew進行比較.若存在keynew=key,則驗證了標簽的合法性.然后計算key′=H(key||R2),更新keyold=keynew,keynew=key′.再分別計算H(key′⊕R2)和H(ID′R⊕R1),并將兩結果異或,即H(key′⊕R2)⊕H(ID′R⊕R1),將其傳給閱讀器,若不存在keynew=key,再驗證是否存在keyold=key.若存在,則驗證了標簽的合法性,后續處理過程同上,若以上兩種情況均不存在,則說明此標簽為非法標簽,可不予處理;(5)閱讀器接收到數據庫傳過來的H(key′⊕R2)⊕H(ID′R⊕R1)后,根據自身IDR計算H(IDR⊕R1)與之異或,并將結果,即H(key′⊕R2)發送給標簽;(6)標簽計算H(H(key||R2)⊕R2),并與接收到閱讀器傳過來的H(key′⊕R2)比較.若相等,則驗證了讀寫器的合法性,且將H(key||R2)賦給key;若不等,則說明此讀寫器為非法不授權讀寫器,可不予處理.
1)非法訪問 未授權的讀寫器不能通過協議認證.因為只有合法的閱讀器的IDR等于數據庫中對應標簽記錄存儲的ID′R,繼而在步驟5中用自身IDR計算H(IDR⊕R1),再將得到的結果H(key′⊕R2)傳給標簽.若為非法閱讀器,則無法計算H(IDR⊕R1),故步驟6中標簽收到的結果肯定不能通過驗證,標簽不予反應;若為不授權閱讀器,因無法得知授權閱讀器ID′R,只能用自身ID″R計算H(ID″R⊕R1),再與H(key′⊕R2)異或,顯然不能得到結果H(key′⊕R2),故步驟6中標簽收到的結果還是不能通過驗證,標簽不予反應.
2)跟蹤 閱讀器和標簽均可產生隨機數,故兩者之間每次通信的數據均不相同,攻擊者無法通過相同信息的反饋來達到定位跟蹤的目的.
3)竊聽 竊聽不能禁止,但閱讀器和標簽之間的通信采用Hash函數與異或操作,可有效防止攻擊者通過竊聽到的數據來達到不可告人的目的.
4)偽造 偽造的標簽不能通過數據庫后臺的驗證,數據庫不予反應;同樣,偽造的閱讀器亦不能通過標簽的驗證,標簽不予反應.
5)數據演譯 閱讀器和標簽之間的通信采用Hash函數與異或操作,即使攻擊者利用某種手段獲得了某一個標簽上的數據,也很難推斷出通信的真實信息.
6)重放攻擊 閱讀器和標簽均可產生隨機數,攻擊者竊聽到數據后進行重放攻擊并不能通過數據庫和標簽的認證.
對于標簽來說:(1)假設攻擊者重放步驟1,但由于標簽自身能產生隨機數R2,所以標簽的反應信息key⊕H(R1⊕R2)每次都不一樣,不能達到跟蹤定位的目的;(2)假設攻擊者重放或偽造步驟1后,重放步驟5,以造成上次認證失敗的假象,但由于標簽產生的隨機數R2貫穿整個協議過程,故攻擊者偽造的閱讀器不能通過標簽驗證.
對于閱讀器來說:顯然,攻擊者重放步驟2,閱讀器收到信息后傳至后臺數據庫.由于key⊕H(R1⊕R2)中的R1并非此次閱讀器產生的隨機數,故數據庫經過計算,并不能找到與之相符的數據記錄,偽造標簽不能通過后臺驗證.
7)DOS攻擊 假設共有n個標簽信息.閱讀器在整個協議中有1次Hash運算,2次異或運算;數據庫在整個協議中,最多有2n次比較運算,4次Hash運算,5次異或運算.
8)標簽失效 標簽在整個協議過程中需3次Hash運算,一次異或運算,且只需存儲其自身產生的隨機數R2,用于后期key值更新及閱讀器合法性驗證.
9)物理攻擊 物理攻擊不可避免.
HASH-IMAP協議與以上3種協議的常駐變量存儲開銷對比如表1所列.其中,假設每個域的存儲長度均為L,X表示未涉及.

表1 協議存儲開銷對比
HASH-IMAP協議與以上三種協議的計算開銷對比如表2所列.其中,假設一次Hash運算所需時間為1h,一次異或運算所需時間為1XOR,X表示未涉及.

表2 協議計算開銷對比
HASH-IMAP協議與以上3種協議的安全性能對比如表3所列.其中,X表示未滿足,○表示滿足,-表示部分滿足.
通過對4種協議的存儲開銷、計算開銷和安全性能對比分析可知,HASH-IMAP協議的存儲開銷和計算開銷居中,安全性能最好.認證協議最重要的是要保證認證過程的認證性、完整性、秘密性和不可抵賴性.在保證安全性的前提下,適當犧牲部分計算開銷和存儲開銷是很有必要的.而HASH-IMAP協議在已有協議的優點基礎上,有效抵御了各種攻擊手段,保證了認證過程的安全持續.

表3 協議安全性能對比
本文提出的安全認證協議HASH-IMAP中,以Hash函數加密通信信息,讓數據庫采用異或運算替代較復雜的Hash運算,減少了其計算開銷,同時防止了非法不授權的閱讀器對標簽的非法訪問,并及時釋放了標簽中的過多冗余存儲信息,有效地完成了閱讀器和數據庫的雙向安全認證過程.
[1]Han D G,Takagi T,Kim H W.New security problem in RFID systems tag killing[C]//ICCSC 2006,Springer-Verlag,LNCS,2006(3982):375-384.
[2]Sarma S,Weis S,Engels D.RFID systems and security and privacy implications[C]//Proc.of CHES'02.[S.1.]:Springer,2002:454-469.
[3]Weis S,Sarma S,Rivest R.Security and privacy aspects of low-cost radio frequency identification systems[C]//Proc.of Security in Pervasive Computing'04,2004:201-212.
[4]Ohkubo M,Suzuki K,Kinoshita S.Cryptographic approach to“privacy-friendly”tags[C]//Proc.of RFID Privacy Workshop,USA MIT,2003.
[5]張彩霞,程良倫.基于Hash的RFID安全協議的設計[J].包裝工程,2009,30(1):115-117.
[6]曾麗華,雄 璋,張 挺.Key值更新隨機Hash鎖對RFID安全隱私的加強[J].計算機工程,2007,33(3):151-153.
[7]杜志國,楊 波,歐陽國幀,陳 成.安全的RFID認證協議研究設計[J].計算機工程與設計,2009,30(3):561-565.