??? 摘? 要: 基于Hash鎖的RFID安全協(xié)議以其低成本優(yōu)勢得到了普遍應用,但其安全性能尚不完善。在分析已有Hash鎖安全協(xié)議的執(zhí)行過程及優(yōu)缺點的基礎上,提出了一種將雙層認證與雙向認證相結合的隨機Hash鎖安全協(xié)議,分析了協(xié)議的基本思想,描述了協(xié)議的執(zhí)行過程,對協(xié)議的性能分析表明,該協(xié)議符合低成本、高效率、高安全的RFID實用性要求。?
??? 關鍵詞: RFID; 隨機Hash鎖; 雙層認證; 雙向認證;協(xié)議
?
??? 無線射頻識別技術RFID(Radio Frequency Identification)或稱電子標簽技術是一種利用射頻通信實現(xiàn)的非接觸式雙向通信技術,以達到自動識別目標對象并獲取相關數(shù)據(jù)的目的,具有精度高、適應環(huán)境能力強、抗干擾性強、操作快捷等許多優(yōu)點。它已經逐漸應用于物流、防偽、門禁、電子錢包、高速公路收費等領域。RFID 系統(tǒng)一般由RFID標簽(Tag)、RFID 標簽讀寫器以及RFID應用數(shù)據(jù)庫(DB)三大部分構成,如圖1所示。其中,RFID標簽與讀寫器之間是射頻無線通信,而讀寫器與應用數(shù)據(jù)庫之間則是通過互聯(lián)網進行的有線(也可以是無線)通信。?
?

?
??? RFID系統(tǒng)要想得到普遍應用,特別是在有嚴格安全要求的防偽領域得到廣泛應用,還需要解決RFID的低成本與安全性這一對矛盾。當前RFID的安全機制主要有物理機制與密碼機制兩大類。由于物理安全機制受到成本或法律因素等極大制約,使密碼安全機制越來越受到人們的青睞。在通用安全應用中,具有比較成熟和先進的加解密算法如DES、 AES、RSA、橢圓曲線密碼等算法,可以較好地抵制非法讀取、位置跟蹤、拒絕服務、偽裝哄騙、重放攻擊等安全威脅,具有較好的安全可靠性。但實現(xiàn)AES等算法需要大約20 000個~30 000個邏輯門,實現(xiàn)RSA、橢圓曲線密碼等公鑰密碼算法則需要更多的邏輯門。而電子標簽受到低成本(約為0.05美元)限制,通常只能擁有大約5 000個~10 000個邏輯門,而且這些邏輯門主要用于實現(xiàn)一些最基本的標簽功能,僅剩少許可用于實現(xiàn)安全功能。因此,RFID 安全性的難點在于,RFID標簽的有限計算資源難以實現(xiàn)復雜的加解密算法。目前關于RFID的密碼安全方案主要有:(1)基于Hash函數(shù)的Hash-lock協(xié)議[1-2]、隨機化Hash-lock協(xié)議[3]、Hash鏈協(xié)議[4]、ID變化協(xié)議、數(shù)字圖書館RFID協(xié)議、分布式RFID協(xié)議、LCAP協(xié)議[5];(2)基于TEA算法的的TEA協(xié)議[6]、XXTEA協(xié)議;(3)基于公鑰的再加密方案[5]。其中,基于Hash函數(shù)的方案因其實現(xiàn)電路簡單尤其成為研究的熱點。參考文獻[5]對基于Hash函數(shù)的各類算法比較分析后認為:它們或者不能滿足較高的安全要求,或者不能滿足低成本的實用性要求。參考文獻[7]提出了一種輕量級RFID安全協(xié)議,并進行了改進。參考文獻[8]提出了一種Key值更新的隨機Hash鎖協(xié)議,對隨機Hash鎖協(xié)議進行了改進。參考文獻[9]、[10]也都基于Hash鎖協(xié)議提出了一些新的改進。?
??? 本文在分析幾種隨機Hash鎖協(xié)議的基礎上提出了一種將雙重認證與雙向認證相結合的隨機Hash鎖的RFID安全協(xié)議,將原始ID經加密后寫入標簽中,原始ID的加解密都只在后臺服務器中完成,而在RFID標簽和閱讀器中出現(xiàn)的ID(稱為認證ID),都是經過加密后的數(shù)據(jù),即使出現(xiàn)了安全攻擊,也不會獲得真正的ID,杜絕了產品被假冒的可能。?
1 Hash鎖相關協(xié)議分析?
??? 在分析RFID系統(tǒng)的安全性時,通常作如下假定:?
??? (1)標簽與讀寫器之間的通信信道是不安全的,而標簽讀寫器與后端數(shù)據(jù)庫之間的通信信道則是安全的。?
??? (2)協(xié)議所使用的密碼構造,如偽隨機生成函數(shù)、加密體制、簽名算法、MAC 機制以及哈希函數(shù)等,都是安全的。?
??? Hash鎖相關協(xié)議均采用Hash函數(shù)作為電子標簽的訪問鎖,只有通過認證的閱讀器才能取得對標簽有效數(shù)據(jù)進行訪問(解鎖),否則標簽處于鎖定狀態(tài)。使用的Hash函數(shù)H應滿足如下要求[10]:?
??? (1)對于任意長度的消息M,H返回固定長度 m 的函數(shù)值h=H(M)。?
??? (2)在資源有限的RFID芯片上,對給定的M很容易計算出h。?
??? (3)即使知道H的算法的情況下,從給定的h很難還原出M。?
??? (4)即使知道 H的算法的情況下,對于特定的M,很難找到另一個M′,使得H(M)=H(M′)。?
1.1 Hash鎖協(xié)議?
??? Hash鎖協(xié)議的主要內容如下:?
??? (1)鎖定標簽:讀寫器生成一個隨機密鑰Key,讀寫器將真實ID、Key一起寫入標簽后,標簽進入鎖定狀態(tài)。同時讀寫器計算meataID=H(Key),并將metaID、Key、ID寫入后臺數(shù)據(jù)庫中;?
??? (2)認證解鎖:讀寫器在需要讀寫標簽中的信息時,先發(fā)送訪問請求,標簽計算meatID=H(Key),然后將metaID經讀寫器返回至數(shù)據(jù)庫,并查找與metaID相符的記錄,并將其Key發(fā)送給標簽。標簽計算其metaID并比較metaID與H(Key′)是否相符,若相符則解鎖。?
??? 該協(xié)議的優(yōu)點是:在認證過程中使用對真實ID加密后的metaID;缺點是:對密鑰進行明文傳輸,且metaID是固定不變的,不利于防御信息跟蹤威脅。?
1.2 隨機Hash鎖協(xié)議?
??? 隨機Hash鎖協(xié)議的認證過程如下:標簽在收到讀寫器的讀寫請求后,生成一隨機數(shù)R,并計算H(Key||R)其中,||表示將Key和R進行連接,并將(R,H(Key||R))數(shù)據(jù)對送至后臺數(shù)據(jù)庫。數(shù)據(jù)庫查詢滿足H(Key′||R)=H(Key||R)的記錄。若找到則將對應的ID′發(fā)往標簽,標簽比較ID與ID′是否相同以確定是否解鎖。?
??? 該協(xié)議的優(yōu)點是:為認證過程中出現(xiàn)的隨機信息避免了信息跟蹤,但仍出現(xiàn)了ID的明文傳輸,易遭到竊聽威脅。?
1.3 Hash鏈協(xié)議?
??? 在Hash鏈協(xié)議中,標簽在每次認證過程中其密鑰Key值是不斷更新的,每次更新后的Key′=H(Key),從而形成1個Hash鏈。其認證過程如下:標簽在收到讀寫器的讀寫請求后,利用當前密鑰Key計算下次密鑰Key′=H(Key),在更新當前密鑰為Key′后經讀寫器返給數(shù)據(jù)庫,數(shù)據(jù)庫對第一條標簽記錄,判斷G(Hi(Key0))的結果是否與Key′相等。若相等則返回相應記錄的ID′值至標簽,標簽再比較ID與ID′是否相同,以確定是否解鎖。?
??? 該協(xié)議優(yōu)點:具有不可分辨性及前向安全性。但容易受到重傳和假冒攻擊,且計算量大,不適于標簽數(shù)目較多的情況。?
??? 前述三種協(xié)議基本上都只具備單向認證能力,即只完成了讀寫器(后臺數(shù)據(jù)庫)對標簽的身份認證,尚未實現(xiàn)標簽對讀寫器的認證功能,因此這些協(xié)議都是不完善的。?
1.4 Key值更新的隨機Hash鎖協(xié)議?
??? Key值更新的隨機Hash鎖協(xié)議提供了讀寫器與標簽之間的雙向認證功能。其雙向認證過程如下:?
??? (1)讀寫器對標簽的認證。認證時數(shù)據(jù)庫生成一隨機密碼R,經讀寫器連同查詢請求一同發(fā)往標簽。標簽計算H(Key)及H(Key||R)后將其發(fā)往數(shù)據(jù)庫,數(shù)據(jù)庫對每一記錄判斷H(Key′||R)=H(Key||R)與H(Key′)=H(Key)是否成立。若找到符合條件的記錄,則完成了讀寫器對標簽的認證過程,繼續(xù)進行標簽對讀寫器的認證;否則停止認證過程。?
??? (2)標簽對讀寫器的認證。數(shù)據(jù)庫計算找到記錄的H(ID′||R)與H(ID′),并經讀寫器將其發(fā)送給標簽。數(shù)據(jù)庫還計算S(Key)和H(S(Key)),并將數(shù)據(jù)庫中的Key值更新為S(Key);標簽判斷H(ID||R)=H(ID′||R)與H(ID)=H(ID′)。若兩者均成立,則完成標簽對讀寫器的認證過程,將標簽中的Key值更新為S(Key)。?
??? 該協(xié)議保證了前向安全性,實現(xiàn)了標簽和讀寫器的雙向認證,同時標簽上只實現(xiàn)Hash函數(shù)功能而將隨機數(shù)發(fā)生器改為在資源豐富的后臺數(shù)據(jù)庫中,有利于標簽的低成本實現(xiàn)。但在該協(xié)議中,每次認證成功后需要更新標簽中的Key值,由于Key是存放在EEPROM中的,更新一次需要較長的時間,這在某些移動應用的場合中如物流、高速公路收費站等場合可能會影響讀取的可靠性。同時,該協(xié)議中最終ID還是會在讀寫器和標簽間明文傳遞,不利于保密性要求較高的場合。?
2 雙層/雙向認證的隨機Hash鎖協(xié)議?
??? 鑒于前述幾種基于Hash鎖的RFID協(xié)議存在不能滿足RFID應用中低成本及安全性要求,結合幾種方法的主要思想,本文提出了一種雙層/雙向認證的隨機Hash鎖RFID安全協(xié)議,實現(xiàn)了安全高效、雙向認證的讀取訪問控制。?
2.1基本思想?
??? 將認證過程劃分為通信和鑒別兩層。通信層主要提供通信雙方身份的相互認證(雙向認證) 。鑒別層主要提供對鑒別產品的身份認證。具體而言,對每個產品標簽分配一個原始標識ID0,在數(shù)據(jù)庫系統(tǒng)上采用DES等先進算法加密后作為ID寫入標簽,然后在讀寫器與標簽之間利用隨機Hash鎖協(xié)議進行雙向認證。雙向認證通過后標簽將ID發(fā)送給數(shù)據(jù)庫服務器經解密后得到ID0′。服務器再比較ID0與ID0'是否相等以進行二次認證。?
2.2 認證過程?
??? 雙層/雙向認證的隨機Hash鎖協(xié)議的主要過程如圖2所示。其具體過程如下: ?
?

?
??? (1)鎖定標簽。數(shù)據(jù)庫生成ID0并利用密鑰K0進行加密ID=DK0(ID0),并生成隨機密鑰K1,將ID、K1經讀寫器寫入標簽。這里的加密過程是在資源豐富的服務器上完成的,所以可以采用目前先進的復雜的密碼機制,如DES、AES、RSA等。?
??? (2)讀寫器對標簽的認證:①認證開始時,讀寫器生成一隨機數(shù)R,連同查詢請求Q一同發(fā)給標簽;②標簽計算H(K1||R)和H(K1),并將結果返回給讀寫器;③讀寫器將H(K1||R)、H(K1)及R傳送給服務器,并在數(shù)據(jù)庫中查詢每個標簽是否滿足H(Ki||R)=H(K1||R)并且H(Ki)=K(K1)。若未找到則表明是非法標簽;若找到則完成了讀寫器對標簽的認證,尚需要繼續(xù)對讀寫器進行驗證。?
??? (3)標簽對讀寫器的認證:①數(shù)據(jù)庫利用找到的記錄的IDi,計算H(IDi)及H(IDi||R),并將其送給讀寫器;②讀寫器將H(IDi)及H(Idi||R)送給標簽;③標簽判斷是否滿足H(IDi)=H(ID)及H(IDi||R)=H(ID||R),若滿足則完成了標簽對讀寫器的驗證,同時完成標簽與讀寫器之間的雙向認證;否則為非法讀寫器。?
??? (4)雙層認證: 標簽返回ID給數(shù)據(jù)庫,從數(shù)據(jù)庫獲得密鑰K0對ID進行解密獲得最終的ID0′,并比較ID0′與ID0是否相符,從而最終確認產品的合法性。?
2.3 性能分析?
??? (1) 提供了雙向認證過程。既有讀寫器對標簽的認證,也有標簽對讀寫器的認證,保證了只有合法的讀寫器和合法標簽才能進行有效通信。在雙向認證過程中采用隨機Hash鎖,可以有效防止對標簽和讀寫器信息的非法讀取、位置跟蹤、竊聽、重放等安全風險。?
??? (2) 提供了雙層加密機制。第1層加密傳輸主要用于通信實體的身份認證,在讀寫器與標簽之間通信數(shù)據(jù)是隨機加密后的數(shù)據(jù),在數(shù)據(jù)庫與讀寫器之間的加密采用的是假設安全的,可以采用復雜的加密方案。第2層加密主要用于鑒別產品的身份認證。
??? (3) 提供了產品身份的最終鑒別。防偽層加/解密過程只在認證服務器里完成,其密鑰K0和產品原始ID0只在服務器里存儲和運算,避免了產品身份信息在網絡傳輸中的非法竊聽、非法讀取、假冒哄騙、重放等安全風險,實現(xiàn)了產品身份的有效鑒別。?
??? (4) 實現(xiàn)簡單高效。該協(xié)議無需復雜的隨機數(shù)發(fā)生器,適合于低成本的RFID應用;認證過程無須更新標簽和數(shù)據(jù)庫中的Key值,可以大大縮短認證時間,提高系統(tǒng)的吞吐率。?
??? 目前出現(xiàn)了多種RFID安全協(xié)議,但多數(shù)協(xié)議只是針對安全風險的某些方面,有些協(xié)議由于成本過高、認證時間過長等原因不實用。本文提出的雙層/雙向認證的隨機Hash鎖RFID安全協(xié)議,將分層認證與雙向認證的思想相結合,具有低成本、運算高效、認證可靠、安全性高等特點,可以有效地應用于產品防偽、電子錢包等對身份認證要求較高的RFID應用領域。?
??? 此外,本協(xié)議所使用的Hash函數(shù)主要在目前資源有限的標簽中實現(xiàn),待標簽技術進一步發(fā)展,資源相對豐富和運算能力足夠強時,可以將Hash函數(shù)改成更加可靠的公鑰函數(shù),而協(xié)議的執(zhí)行過程可以不做大的改動,這將是下一步的研究內容。?
參考文獻?
[1] SARMA S E, WEOS S A, ENGELS D W. RFID systems?and security and privacy implications[C]. KALISKR B. S.,KOC C K, PAAR C. eds. Proceedings of the 4th International Workshop on Cryptographic Hardware and Embedded Systems(CHES 2002). Lectures Notes in Computer Science 2523. Ber2lin: Springer2Verlag, 2003:454-469.?
[2] SARMA S E,WEIS S A,ENGELS D W. Radio frequency?identification: Secure risks and challenges[R]. RSA Laboratories Cryptobytes, 2003,6(1):2-9.?
[3]?WEIS S A, SARMA S E, RIVEST R L, et al. Security?and privacy aspects of low-cost radio frequency identification systems[C].? HUTTER D, M?譈LLER G, STEPHAN W,ULLMANN M. eds. Proceedings of the 1st International?Conference on Security in Pervasive Computing. Lectures?Notes in Computer Science 2802. Berlin: Springer2Verlag,2004:201-212.?
[4] OHKUBO M, SUZUKI K, KINOSHITA S. Hash-chain?based forward-secure privacy protection scheme for lowcost RFID[C]. Proceedings of the 2004 Symposium on?Cryptography and Information Security (SCIS 2004),Sendai,2004:719-724.?
[5] 周永彬,馮登國. RFID 安全協(xié)議的設計與分析[J].計算機學報, 2006(4).?
[6] ISRASENA P. Securing ubiquitous and low 2cost RFID?using tiny encryption algorithm[C]. W ireless Pervasive Computing, 2006. 1st International Symposium, 16218 Jan. ?? 2006, 124.?
[7]?駱宗偉,周世杰, LI Jen Ny.一種輕量級RFID安全協(xié)議的改進[J]. 電子科技大學學報, 2007(12).?
[8] 曾麗華, 熊璋,張挺. Key值更新隨機Hash鎖對RFID安全隱私的加強[J]. 計算機工程, 2007(2).?
[9] 粟偉,崔喆,王曉京. 基于Hash鏈的RFID隱私增強標簽研究[J]. 計算機應用, 2006(10).?
[10] 高磊,盛煥燁. RFID應用系統(tǒng)中的Tag-reader 安全通信協(xié)議[J]. 計算機工程, 2007(11).?
