一種雙層/雙向認證的隨機Hash鎖RFID安全協(xié)議
無線射頻識別技術(shù)RFID(Radio Frequency Identification)或稱電子標簽技術(shù)是一種利用射頻通信實現(xiàn)的非接觸式雙向通信技術(shù),以達到自動識別目標對象并獲取相關(guān)數(shù)據(jù)的目的,具有精度高、適應(yīng)環(huán)境能力強、抗干擾性強、操作快捷等許多優(yōu)點。它已經(jīng)逐漸應(yīng)用于物流、防偽、門禁、電子錢包、高速公路收費等領(lǐng)域。RFID 系統(tǒng)一般由RFID標簽(Tag)、RFID 標簽讀寫器以及RFID應(yīng)用數(shù)據(jù)庫(DB)三大部分構(gòu)成,如圖1所示。其中,RFID標簽與讀寫器之間是射頻無線通信,而讀寫器與應(yīng)用數(shù)據(jù)庫之間則是通過互聯(lián)網(wǎng)進行的有線(也可以是無線)通信。
RFID系統(tǒng)要想得到普遍應(yīng)用,特別是在有嚴格安全要求的防偽領(lǐng)域得到廣泛應(yīng)用,還需要解決RFID的低成本與安全性這一對矛盾。當前RFID的安全機制主要有物理機制與密碼機制兩大類。由于物理安全機制受到成本或法律因素等極大制約,使密碼安全機制越來越受到人們的青睞。在通用安全應(yīng)用中,具有比較成熟和先進的加解密算法如DES、 AES、RSA、橢圓曲線密碼等算法,可以較好地抵制非法讀取、位置跟蹤、拒絕服務(wù)、偽裝哄騙、重放攻擊等安全威脅,具有較好的安全可靠性。但實現(xiàn)AES等算法需要大約20 000個~30 000個邏輯門,實現(xiàn)RSA、橢圓曲線密碼等公鑰密碼算法則需要更多的邏輯門。而電子標簽受到低成本(約為0.05美元)限制,通常只能擁有大約5 000個~10 000個邏輯門,而且這些邏輯門主要用于實現(xiàn)一些最基本的標簽功能,僅剩少許可用于實現(xiàn)安全功能。因此,RFID 安全性的難點在于,RFID標簽的有限計算資源難以實現(xiàn)復(fù)雜的加解密算法。目前關(guā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é)議的基礎(chǔ)上提出了一種將雙重認證與雙向認證相結(jié)合的隨機Hash鎖的RFID安全協(xié)議,將原始ID經(jīng)加密后寫入標簽中,原始ID的加解密都只在后臺服務(wù)器中完成,而在RFID標簽和閱讀器中出現(xiàn)的ID(稱為認證ID),都是經(jīng)過加密后的數(shù)據(jù),即使出現(xiàn)了安全攻擊,也不會獲得真正的ID,杜絕了產(chǎn)品被假冒的可能。
1 Hash鎖相關(guān)協(xié)議分析
在分析RFID系統(tǒng)的安全性時,通常作如下假定:
(1)標簽與讀寫器之間的通信信道是不安全的,而標簽讀寫器與后端數(shù)據(jù)庫之間的通信信道則是安全的。
(2)協(xié)議所使用的密碼構(gòu)造,如偽隨機生成函數(shù)、加密體制、簽名算法、MAC 機制以及哈希函數(shù)等,都是安全的。
Hash鎖相關(guān)協(xié)議均采用Hash函數(shù)作為電子標簽的訪問鎖,只有通過認證的閱讀器才能取得對標簽有效數(shù)據(jù)進行訪問(解鎖),否則標簽處于鎖定狀態(tài)。使用的Hash函數(shù)H應(yīng)滿足如下要求[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é)議的主要內(nèi)容如下:
(1)鎖定標簽:讀寫器生成一個隨機密鑰Key,讀寫器將真實ID、Key一起寫入標簽后,標簽進入鎖定狀態(tài)。同時讀寫器計算meataID=H(Key),并將metaID、Key、ID寫入后臺數(shù)據(jù)庫中;
(2)認證解鎖:讀寫器在需要讀寫標簽中的信息時,先發(fā)送訪問請求,標簽計算meatID=H(Key),然后將metaID經(jīng)讀寫器返回至數(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)的記錄。若找到則將對應(yīng)的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′后經(jīng)讀寫器返給數(shù)據(jù)庫,數(shù)據(jù)庫對第一條標簽記錄,判斷G(Hi(Key0))的結(jié)果是否與Key′相等。若相等則返回相應(yīng)記錄的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,經(jīng)讀寫器連同查詢請求一同發(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′),并經(jīng)讀寫器將其發(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中的,更新一次需要較長的時間,這在某些移動應(yīng)用的場合中如物流、高速公路收費站等場合可能會影響讀取的可靠性。同時,該協(xié)議中最終ID還是會在讀寫器和標簽間明文傳遞,不利于保密性要求較高的場合。
2 雙層/雙向認證的隨機Hash鎖協(xié)議
鑒于前述幾種基于Hash鎖的RFID協(xié)議存在不能滿足RFID應(yīng)用中低成本及安全性要求,結(jié)合幾種方法的主要思想,本文提出了一種雙層/雙向認證的隨機Hash鎖RFID安全協(xié)議,實現(xiàn)了安全高效、雙向認證的讀取訪問控制。
2.1基本思想
將認證過程劃分為通信和鑒別兩層。通信層主要提供通信雙方身份的相互認證(雙向認證) 。鑒別層主要提供對鑒別產(chǎn)品的身份認證。具體而言,對每個產(chǎn)品標簽分配一個原始標識ID0,在數(shù)據(jù)庫系統(tǒng)上采用DES等先進算法加密后作為ID寫入標簽,然后在讀寫器與標簽之間利用隨機Hash鎖協(xié)議進行雙向認證。雙向認證通過后標簽將ID發(fā)送給數(shù)據(jù)庫服務(wù)器經(jīng)解密后得到ID0′。服務(wù)器再比較ID0與ID0'是否相等以進行二次認證。
2.2 認證過程
雙層/雙向認證的隨機Hash鎖協(xié)議的主要過程如圖2所示。其具體過程如下:
(1)鎖定標簽。數(shù)據(jù)庫生成ID0并利用密鑰K0進行加密ID=DK0(ID0),并生成隨機密鑰K1,將ID、K1經(jīng)讀寫器寫入標簽。這里的加密過程是在資源豐富的服務(wù)器上完成的,所以可以采用目前先進的復(fù)雜的密碼機制,如DES、AES、RSA等。
(2)讀寫器對標簽的認證:①認證開始時,讀寫器生成一隨機數(shù)R,連同查詢請求Q一同發(fā)給標簽;②標簽計算H(K1||R)和H(K1),并將結(jié)果返回給讀寫器;③讀寫器將H(K1||R)、H(K1)及R傳送給服務(wù)器,并在數(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是否相符,從而最終確認產(chǎn)品的合法性。
2.3 性能分析
(1) 提供了雙向認證過程。既有讀寫器對標簽的認證,也有標簽對讀寫器的認證,保證了只有合法的讀寫器和合法標簽才能進行有效通信。在雙向認證過程中采用隨機Hash鎖,可以有效防止對標簽和讀寫器信息的非法讀取、位置跟蹤、竊聽、重放等安全風(fēng)險。
(2) 提供了雙層加密機制。第1層加密傳輸主要用于通信實體的身份認證,在讀寫器與標簽之間通信數(shù)據(jù)是隨機加密后的數(shù)據(jù),在數(shù)據(jù)庫與讀寫器之間的加密采用的是假設(shè)安全的,可以采用復(fù)雜的加密方案。第2層加密主要用于鑒別產(chǎn)品的身份認證。
(3) 提供了產(chǎn)品身份的最終鑒別。防偽層加/解密過程只在認證服務(wù)器里完成,其密鑰K0和產(chǎn)品原始ID0只在服務(wù)器里存儲和運算,避免了產(chǎn)品身份信息在網(wǎng)絡(luò)傳輸中的非法竊聽、非法讀取、假冒哄騙、重放等安全風(fēng)險,實現(xiàn)了產(chǎn)品身份的有效鑒別。
(4) 實現(xiàn)簡單高效。該協(xié)議無需復(fù)雜的隨機數(shù)發(fā)生器,適合于低成本的RFID應(yīng)用;認證過程無須更新標簽和數(shù)據(jù)庫中的Key值,可以大大縮短認證時間,提高系統(tǒng)的吞吐率。
目前出現(xiàn)了多種RFID安全協(xié)議,但多數(shù)協(xié)議只是針對安全風(fēng)險的某些方面,有些協(xié)議由于成本過高、認證時間過長等原因不實用。本文提出的雙層/雙向認證的隨機Hash鎖RFID安全協(xié)議,將分層認證與雙向認證的思想相結(jié)合,具有低成本、運算高效、認證可靠、安全性高等特點,可以有效地應(yīng)用于產(chǎn)品防偽、電子錢包等對身份認證要求較高的RFID應(yīng)用領(lǐng)域。
此外,本協(xié)議所使用的Hash函數(shù)主要在目前資源有限的標簽中實現(xiàn),待標簽技術(shù)進一步發(fā)展,資源相對豐富和運算能力足夠強時,可以將Hash函數(shù)改成更加可靠的公鑰函數(shù),而協(xié)議的執(zhí)行過程可以不做大的改動,這將是下一步的研究內(nèi)容。