吳愷凡,殷新春,2*
(1.揚州大學信息工程學院,江蘇揚州 225127;2.揚州大學廣陵學院,江蘇揚州 225128)
(?通信作者電子郵箱xcyin@yzu.edu.cn)
射頻識別(Radio Frequency IDentification,RFID)技術被認為是21 世紀最具發展潛力的信息技術之一。RFID 作為一種自動化識別技術,通過無線射頻的方式在作為主體的記錄媒體之間進行非接觸的雙向數據通信,以此互相交換數據,從而達到識別目標的目的。RFID 具有抗干擾能力強、記憶靈活、支持動態操作、使用壽命長、識別速度快、防碰撞等優點。同時,RFID 技術實現識別目標和讀寫數據的功能不需要物理接觸與特定的復雜環境,這使得其在現實中被投入使用具有可行性。RFID 系統由標簽、閱讀器和后端服務器組成。其中標簽具有唯一的身份標識,在進入閱讀器工作區(即在閱讀器產生的射頻電磁場內)就可以進行相應讀寫操作。標簽對識別信息進行加密并發送給閱讀器,閱讀器對接收到的數據和標簽ID 進行身份驗證。而后端服務器與閱讀器之間的信道往往被認為是安全信道。RFID 系統分為無源和有源兩種,這取決于系統是使用內置電源的標簽,還是通過用RFID閱讀器電流與無源標簽自身的線圈電磁感應產生能量連續廣播信號[1]。有源電子標簽無需閱讀器提供能量,讀寫距離較遠同時體積較大,與無源射頻標簽相比成本更高。經濟又實用的低成本標簽在日常生活中得到更廣泛的使用。選擇低成本的RFID 設備雖然意味著保護系統安全需要會帶來更大的挑戰[2],但總體而言利大于弊,原因之一是傳統加密原語固然安全性更高,但會增加此類設備的成本;二是傳統加密原語的功耗過高[3]。設計低成本安全RFID 系統所面臨的挑戰包括設備的容量和計算能力有限等[4],所以實現一種安全、低成本的保護技術以確保用戶信息的安全性是十分關鍵的[5]。
除了閱讀器與標簽之間在公共信道中交互的消息可能遭到的竊聽、偽造、截獲、去同步以及重放等攻擊[6]之外,RFID在應用過程中存在一項重大的安全隱患,就是標簽用戶的個人隱私容易遭到泄露。比如,被標簽標記的車牌在路過各處收費站時,如果忽視了標簽匿名性,車牌的標簽會因為接收到任意的閱讀器的請求而向其回復自身唯一身份標識或假名ID,無論該閱讀器的身份是否合法。因此,一些攻擊者的惡意閱讀器在獲取某個合法標簽的ID 后,就算沒有破解協議而竊得當前通信所交換的具體信息,卻也能實時追蹤標簽所有者在ID 更新前的行駛路線。這無疑極大增加了標簽使用者隱私被侵犯的可能。因此,在不以明文的形式發送標簽ID,即保證標簽匿名性的情況之下,閱讀器還能夠區分不同標簽,是RFID相互認證協議所面對的一個挑戰。
目前有兩種手段來解決上述問題:一是,閱讀器與標簽協商出一個獨立于ID 的索引假名,讓閱讀器區分不同的標簽,并在本輪通信結束后進行更新;二是,基于k-匿名(k-Anonymity)思想,采用動態令牌的方式,每輪通信隨機選取該標簽令牌組中的一個令牌作為ID,通信結束后將令牌組中已經使用的令牌刪去,當令牌組中沒有可以使用的令牌時再重新填充。本文結合上述兩種方法,針對標簽匿名性問題而提出一種新型輕量級雙向身份認證,同時實現了假名的更新與動態假名的選取兩個功能。本文的主要工作如下:
1)針對標簽匿名性不足的問題,提出一種新的隨機運算符方法,并基于此方法設計出了一個能夠保護標簽所有者隱私的RFID雙向認證協議。
2)本文提出的協議除了能夠提供匿名性以外,還能夠滿足物聯網中所使用的RFID系統所需的所有安全需求。
3)使用互聯網安全協議和應用程序的自動驗證(Automated Validation of Internet Security Protocols and Applications,AVISPA)工具對本文所提出協議進行仿真,并驗證所需的安全屬性。
將本文方案與相關輕量級認證方案進行了性能方面的對比。對比結果顯示,本文所提方案的性能遠優于能夠提供同等安全性的非輕量級協議。
在過去的幾年里,不斷有RFID 匿名認證方案陸續被提出,文獻[7]將它們分為了3 類:1)基于公鑰密碼系統(Public Key Cryptosystem,PKC)的方案;2)基于糾錯(Error Correction,EC)的方案;3)基于對稱密鑰或非公鑰密碼系統(Non-Public Key Cryptosystem,NPKC)的方案。在基于PKC的方案[8-11]中,大多數方案都是在橢圓曲線密碼系統上設計的,由于硬件成本昂貴而可行性不高[12]。基于EC 的方案[13-15]只有當錯誤率小于一定的閾值時,比如驗證信息之間的漢明重量小于規定的上限時,才能保證安全性。此外,這些方案是不可伸縮的,因為它們只能支持有限的數字標簽。基于NPKC 方案又可分為兩類,即基于哈希的方案和基于物理不可克隆函數(Physical Unclonable Function,PUF)的方案。由于PUF 需要硬件支持會額外增加成本,所以基于哈希的方案更加適用于低成本場景,但也要求RFID標簽的資源足夠支撐哈希運算。
Peris-Lopez 等[16]提出了一系列基于NPKC 的超輕量級認證協議,即一種用于低成本RFID標簽的輕量級雙向認證協議(a real Lightweight Mutual Authentication Protocol for low-cost RFID tags,LMAP)、一種高效的低成本RFID 標簽雙向認證協議(an Efficient Mutual-Authentication Protocol for low-cost RFID tags,EMAP)[17]、一種適用于低成本RFID 標簽的最小相互認證協議(a Minimalist Mutual-Authentication Protocol for low-cost RFID tags,M2AP)[18]。在這3 個協議中只使用了簡單的異或、與、或和模2m加運算。文獻[19-20]證實這些協議存在一些安全漏洞,不能抵抗主動攻擊和被動攻擊。文獻[21]引入了一種非線性的位變換運算MIXBITS 函數,不使用導致輸出結果有較大偏重的與運算和或運算,提出一個新的超輕量級認證協議——Gossamer協議[21]。文獻[22]提出了一種基于排列組合運算的RAPP(RFID Authentication Protocol with Permutation)協議。而文獻[23]指出Gossamer 協議存在拒絕服務攻擊隱患,并且Gossamer 協議在標簽端的計算量和功耗很大,不滿足低成本RFID 標簽的要求;同時指出RAPP 方案易受到去同步攻擊。此外,由于電子產品代碼(Electronic Product Code,EPC)標準[24]對低成本RFID 標簽的限制,諸如數據加密標準(Data Encryption Standard,DES)、RSA(Ron Rivest,Adi Shamir and Leonard Adleman)算法、安全散列算法(Secure Hash Algorithm,SHA)家族,以及時間戳等相關高級加密原語并不適用。Gao 等[25]提出了一種基于現有算法的RFID 安全協議,但是不滿足1 類2 代產品電子代碼(Electronic Product Code Class1 Generation2,EPC C1 G2)標準。Liang 等[15]提出了一種在物聯網環境中基于PUF 的RFID身份認證協議,該方案在服務器端使用機器學習相關方法,訓練出一個符合當前標簽所使用的原生PUF生成挑戰響應對規律的模型,以用于身份驗證,在減少通信開銷的同時又降低了數據泄露的風險,具有較強的安全性。但是在實際使用時,機器學習方法訓練出的PUF模型在協議中產生的數據能否通過原生PUF 的檢驗存在疑問,這同時也增加了計算資源與時間的消耗,方案可行性會受到影響。Gope 等[7]提出的基于PUF的匿名認證方案中,注冊中心為了保證標簽匿名性而給每一個標簽分配一個臨時標識TID和一組偽標識PID。當攻擊者通過去同步攻擊等方式使得標簽發送無效TID時,服務器會回復PID中的任意一個偽標識來請求標簽重新驗證,這提高了協議執行的健壯性與安全性。然而該方案不僅對標簽的存儲空間有比較高的要求,而且由于方案的設定不全,導致無法實現PID的補充,甚至攻擊者可以通過重放竊取到的以明文形式發送的TID耗盡PID,迫使標簽重新注冊,從而破壞協議進程,又無端地增加了標簽的計算開銷。同樣,Chen 等[26]提出的增強的動態令牌認證協議(Enhanced dynamic Token based Authentication Protocol,ETAP)雖然能保證標簽匿名性,但是令牌和指示器的更新也需要依賴具有較強存儲能力的標簽。Park等[27]提出一種基于聚類算法的RFID跨層認證協議,能夠抵抗追蹤攻擊、假冒攻擊和拒絕服務攻擊。但該方案由于防碰撞功能的需要而對標簽進行分組,這使得標簽的存儲負擔更重,且采用哈希鏈和模冪運算,計算開銷也比較高。Salem 等[28]提出一種基于El-Gamal 密碼系統設計,并適用于遠程醫療信息系統的RFID 認證協議。該協議具有較高的安全性,但為了構造離散對數問題而使用大量模冪計算而不適用于低成本標簽。Wang 等[29]提出了一種抵抗信號重放攻擊的RFID認證協議,一定程度上彌補了認證協議不支持抵抗物理攻擊這一缺陷。Fan等[30]提出了一種基于云的輕量級RFID雙向認證協議,以置換和旋轉代替hash、以時間戳代替偽隨機數發生器,進一步減少了標簽計算開銷。
綜上,現有RFID 認證協議中,要么協議無法滿足安全性需求,要么無法提供輕量級的快速認證協議。為此,本文提出了一種新的隨機運算符方法,結合各種輕量級運算進而提出了一種新的RFID認證協議,稱作基于隨機運算符的輕量級雙向認證協議(Lightweight Anonymous Mutual authentication Protocol Based on Random Operators,BRO-LAMP)。該協議能夠在保證運算輕量級的基礎上,保護標簽匿名性并免受克隆攻擊。
BRO-LAMP 所使用的符號、函數,以及對應參數如表1 所示。其中,Shuffle、Pad 和Bit 函數分別通過算法1、2、3 進行描述。
在本文提出的協議BRO-LAMP 中,默認情況下閱讀器和后端服務器及數據庫之間的通信信道是安全的,所以可以將閱讀器和后臺看作一個整體,稱作服務器端。本協議之中,中央服務器維護一個運算符表AT以存放具體的運算符,即各類輕量級運算。在每輪認證周期中,協議雙方共同遵循一個獨立的運算符選取順序序列ST,根據其中存放的索引對應到AT中尋找并存儲運算符。
算法1 Shuffle(Seed,a)。
輸入Seed,列表a;
輸出 列表a。
其中,所使用的三種自定義函數功能如下。
Shuffle()函數名為洗牌函數,其功能是,將長度為n的列表的第i個元素與第j個元素交換順序,重復n次。其中,i,j∈Z+,i的初始值為1,每次交換后遞增1,而每次執行交換前j是一個由偽隨機數發生器(Pseudo Random Number Generator,PRNG)生成的隨機數且滿足j∈[i,n]。第一參數為PRNG 的種子,第二參數為待處理列表,空參默認為一個依次存入正整數的列表。
算法2 Pad(a)。
輸入 列表a;
輸出 列表b。

如果k<2n–3 則
將列表b剩余3個元素依次賦值為a[j++];結束
算法3 Bit(a)。
輸入 列表a;
輸出 二進制字符串tk。

Pad()函數名為填充函數,實現隨機往長度為n的列表中插入n個不存放任何值的空槽的功能。
Bit()函數名為二進制轉化函數,其功能是將作為參數的列表,從首地址開始往后一次遍歷,若遇到空槽則輸出0,否則輸出1,輸出結果按照先后順序拼接,最后形成一個二進制字符串。
下面舉一個具體示例(隨機假設一個AT,并且各個函數取一個可能的結果),如圖1所示。

圖1 BRO-LAMP中三種自定義函數功能示例圖Fig.1 Example diagram of three kinds of custom functions in BRO-LAMP
之后的認證階段中,協議雙方就按ST中相應位置所存入的值,對應地從服務器的后臺數據庫的運算符表AT獲取相應運算符參與運算。在上述示例中,?1代表循環右移(?),?2代表異或(⊕),?3代表拼接(‖)。
本協議在協商階段以及信息更新階段中增加了一個hash函數,保證隨機生成種子的同時抵抗中間人攻擊,并且在服務器端與標簽交互時,不暴露種子Seed,從而保護標簽當前輪次通信時隨機運算符的選取順序。初始化數據時,服務器端備份了已注冊標簽的基礎令牌矩陣bk。其中,bk的每一行向量bki對應各個不同標簽的基礎令牌一維數組,服務器通過安全信道將每個bki共享給對應的標簽,而當列坐標也確定下來的bki,j表示第i個已注冊標簽的第j個基礎令牌,用于實現認證。為每個已注冊標簽設置協議雙方共享的基礎令牌數組的目的是:1)作為隨機參數參與令牌的更新;2)當系統遭受去同步攻擊或者拒絕服務攻擊時作為令牌tk的替代供雙方重新發起請求,使協議繼續進行。這需要服務器端為每個已注冊標簽額外保存其bk已使用到的句柄作為指針,以便之后輪次雙方的認證與通信周期能夠正常進行。攻擊者卻無法得知當前輪次認證周期所使用的bk坐標。
協議的整個認證過程可以分為四個階段,按照執行時序排列分別是數據初始化和密鑰協商階段、標簽識別階段、相互認證階段以及同步更新階段。其中協議的第一階段為注冊階段,而第二、三、四階段為認證階段。注冊階段是在閱讀器與第一次參與通信的標簽開始交互時,由協議雙方所執行,其目的是進行標簽初始密鑰的生成以及標簽信息在服務器端的注冊。每當標簽與閱讀器需要通信時,雙方都會在通信前執行認證階段。BRO-LAMP的協議過程如圖2所示。

圖2 BRO-LAMP認證流程Fig.2 Flow chart of BRO-LAMP authentication process
2.2.1 數據初始化和密鑰協商階段
在BRO-LAMP 中,由于標簽選取運算符最終只由PRNG的種子決定,因此可以說是PRNG 生成標簽在當前輪次協議下的運算符選取序列。其中,本協議對服務器端第一次發給標簽的消息通過輕量級hash函數進行混淆。
服務器端生成秘密的新鮮隨機數n1,計算M1=h(n1)⊕n1,再將M1發送給標簽i。接收到M1后,標簽i通過異或的方式,往其中混淆入自身的身份標識TIDi,即計算M2=M1⊕TIDi以及CT=M2‖TIDi,然后通過安全信道將CT發送給服務器端。接收到M2后,服務器端計算TIDi'=M2⊕M1,再計算n1'=M2⊕TIDi'⊕h(n1)。最后,服務器將得到的結果n1'與n1進行對比,如果n1'=n1成立,則標簽在后臺服務器上注冊成功。之后雙方將Seed=M2得到作為實現洗牌功能的種子。
Shuffle 功能基于隨機洗牌算法,旨在給定協議雙方相同的種子Seed,輔以相同的時間間隔,使得協議雙方生成相同的ST,從而協商出相同的令牌tk。雙方同步使用Shuffle函數,并在隨機填充后生成運算符序列ST,接著經過Bit 函數二進制化后再二分異或,最后生成本輪協議的令牌tk,第一階段結束,服務器端將為標簽i生成令牌組bki,并通過安全信道將其提供給標簽。服務器會備份所有已注冊標簽的一維基礎令牌數組,并以矩陣的形式bk存儲。
2.2.2 標簽識別階段
注冊后的標簽若需投入使用并參與通信,則必須通過認證。為了實現雙向認證,閱讀器需要識別標簽,即閱讀器需要對等待驗證的標簽進行鑒別。所提協議的標簽識別階段能夠實現閱讀器對標簽的識別。
1)該階段閱讀器和標簽之間發生通信,并且是由閱讀器主動發起,即閱讀器首先向標簽發送一個挑戰信息,定義為“Query”,以開始新一輪認證周期。
2)標簽Tagi在接收到挑戰信息后會對閱讀器發送響應消息,即向服務器端回復此標簽當前輪次認證周期的初始令牌tki。發出響應消息之后,標簽Tagi立刻計算tki=tki?1bki,j來更新令牌,其中,索引j對應指針,從0開始取值并順次遞增。
3)閱讀器在收到標簽回應的令牌tki'后會在后端服務器中進行查詢。如果是已注冊具有合法身份的標簽所發送的令牌,閱讀器通過請求后臺服務器就可以找到與之匹配的tki以及TIDi,然后計算以同步更新令牌,再通過PRNG生成用于接下來雙向認證的新鮮隨機值n2;若沒有匹配成功,則標簽識別失敗,認證終止,服務器端認為該標簽身份非法。
2.2.3 雙向認證階段
首先,BRO-LAMP中,協議雙方會同時存儲對應標簽的兩輪令牌tkold與tknew。所以,當協議的某一方需要驗證令牌時,若其所收到的令牌與自身存儲的tknew匹配,則更新時要令自身存儲的tkold=tknew,再更新tknew;若與tkold匹配,則直接按照協議更新tknew,而tkold則保持不變。一旦識別標簽成功,閱讀器就需要對標簽身份展開驗證。標簽的身份被閱讀器成功驗證后,還需驗證閱讀器的身份是否合法。兩次驗證依次通過后,該協議才能滿足雙向認證性。
1)閱讀器驗證標簽身份。
識別標簽成功后,閱讀器向標簽Tagi發送M3=隨即更新。標簽收到M3后,計算n2'=分離出新鮮隨機數,再更新令牌tki=tki?2bki,j+1。最后,標簽將新鮮值n2'與令牌混淆,即計算M4=tki?3n2',并把M4發送給閱讀器。閱讀器收到M4后,計算M4'=接著進行驗證,若M4'=M4成立,則標簽的身份通過了閱讀器的驗證;否則意味著存在數據遭到攻擊、篡改而阻礙了協議進程,或是標簽本身身份非法等情況,認證失敗,服務器端認為該標簽身份非法,通信過程終止。
2)標簽驗證閱讀器身份。
標簽通過驗證后,服務器計算M5=并發送給標簽,再更新令牌標簽收到M5后進行驗證,即計算M5'=tki?4n2',若M5'=M5,則閱讀器的身份通過了標簽的驗證;否則意味著存在數據遭到攻擊、篡改而阻礙了協議進程,或是閱讀器本身身份非法等情況,認證失敗,該標簽認為服務器端身份非法,通信過程終止。
2.2.4 信息同步更新階段
若雙向認證成功,協議雙方進入最后的信息同步更新階段。標簽首先為了保證數據一致性而更新令牌tki=tki?3bki,j+2。之后,雙方同步更新以下信息:

本文是在DY(Dolev-Yao)模型[31]下,通過形式化分析來驗證所提出的協議BRO-LAMP 的正確性以及理論上的安全性,攻擊者的能力也符合DY模型下敵手的定義。
BAN(Burrows,Abadi and Needham)邏輯[32]是一種基于信念的模態邏輯,并且是首個將形式化手段用于密碼協議安全驗證的分析法,因而具有里程碑意義而被廣泛應用。BAN 邏輯不涉及信仰的主體是否真實,即默認參與協議運行的主體是誠實的;其以協議運行的開始階段為界,將整個協議執行過程分為當前時間與過去時間,即某觀點若在協議開始是成立的,則在整個當前時間也成立,但在本輪協議開始之前的“過去時間”段中卻不一定成立;其默認沒有解密密鑰的主體無法理解密文,且密鑰不能從密文中推出。BAN 邏輯將在用戶設置的理想假設與協議步驟的前提中,對協議能否在沒有冗余信息的情況下達成認證的目的,以及協議中的加密信息是否在明文傳遞時不會影響協議的安全性這兩個問題給予解答。
3.1.1 符號與規則
BRO-LAMP 只有在滿足特定的目標時,才符合邏輯性并具備安全性。具體的符號表述如表2所示,P和Q代表參與協議的兩個主體,X代表信息,K代表加密密鑰。當信息是明文形式發送時,若是單個信息X,則表示為X,若是信息X與信息Y的復合信息,則表示為(X,Y);當信息是密文形式發送時,則發送的信息X表示為{X},若有下標,則表示用于加密信息X的密鑰或是保證信息X機密性的秘密值。其中需要特別注意的是,X表示協議雙方交互的信息,所有的公式都能作為信息,但所有信息不一定都是公式。

表2 BAN邏輯符號Tab.2 Symbols of BAN logic
BAN 邏輯規則遵循推理規則的形式,即分為上下兩個部分,橫線上方的公式集合稱為前提,下方的公式則稱為結論。在執行BAN 邏輯分析時,必須嚴格遵循如下所示的特定規則。
3.1.2 協議描述
在本文中,參與BRO-LAMP 協議的兩個主體,即服務器端(包括服務器和閱讀器)和標簽,分別用S和T表示,協議的理想化模型如下:
S1S→T:M1
S2T→S:M2,TID
S3S→T:Query
S4T→S:tk
S5S→T:M3
S6T→S:{M4}Seed
S7S→T:{M5}tk
在該協議模型中,第3 步S3 與第4 步S4 的信息交互是以明文形式進行傳輸的,所以不作安全性分析。第5 步S5 中的消息M3雖然經過混淆,但沒有用作相互認證,只是用于保護不安全信道中新鮮隨機值的傳遞,以及標簽對其的獲取,所以也不作安全分析。主要的形式化驗證工作是將用于身份驗證的密文信息M4與M5轉化為形式化語言并作安全分析。
其中,針對協議的第6步S6和第7步S7,可將其中傳遞的密文信息進一步形式化,表示為:
S6S?{M4}Seed
S7T?{M5}tk
3.1.3 形式化安全假設
A1S∣≡#M1
A2S∣≡T?M2
A3S∣≡S?M1T
A4S∣≡S?Seed T
A5T∣≡S?tk T
A6S∣≡T?{M4}Seed
A7T∣≡S?{M5}tk
A8S∣≡#n2
A9T∣≡#tk
假設A1 表明,S認為消息M1是新鮮的,因為M1=h(n1)⊕n1,而n1是由S當前生成的隨機數,所以A1成立。接下來,假設A2 說明,S認為T可以控制秘密值Seed,因為Seed即為消息M2,而消息M2是由消息M1和T自身的假名異或而成,即消息M2的取值是由T決定的,所以A2成立。假設A3、A4以及A5,則說明令牌tk是協議雙方S和T的共享秘密信息,因為tk是由打亂和隨機填充后的運算符順序表ST決定,打亂方式只由標簽T選擇的PRNG 來決定,而PRNG 的種子是S與T協商出的,所以A3、A4、A5皆成立。因此,S(T)收到對面發來的密文M4(M5)時,也會相信對方,即T(S)對其具有管轄權,所以假設A6 和A7 成立。n2也是由S當前生成的隨機數,并且T在每次信息交互后都會更新tk,所以假設A8和A9成立。
3.1.4 協議證明
假設設置的參數和流程正確,則提出的認證協議應該達到以下目標:
G1S∣≡Seed
G2S∣≡M4
G3T∣≡M5
證明 根據新鮮性定理R4和假設A1可得:

再根據結論1和假設A3,以及消息含義規則R1,可得:

這樣,結合結論(1)和結論(2),根據新鮮值驗證規則R2能得到:

最后,綜合假設A2與結論(3),根據管轄權規則R3可得:

至此,目標G1 得證。接著,結合S6 和假設A4,S收到經過Seed加密后的密文M4,又與T共享秘密值Seed,所以根據消息含義規則R1可得:

根據假設A8,S認為隨機數n2是新的,結合新鮮性規則R4可得:

給定結論(5)和結論(6),依據新鮮值驗證規則R2,可得出:

最后綜合假設A6和結論(7),根據管轄權規則R3可得:

至此,目標G2 得證。同理,根據假設A5 和A7,結合上述證明過程,目標G3也成立。
證畢。
經過BAN 邏輯形式化證明,三個目標全被證實,所以在理想的工作環境下,本文所提出的BRO-LAMP 協議,不僅滿足雙向認證性和相關秘密值的機密性,而且能夠滿足系統的功能與安全需求。
本文所提出的BRO-LAMP 協議還通過正式的形式化驗證工具AVISPA 進行安全性評估。AVISPA 是一款高效、穩定的,廣泛適用于自動證明網絡安全協議,以及符合工業復雜度實際的威脅模型的安全性的工具集,能夠根據相應規則推導安全性目標[33-34]。作為一個實用的形式化驗證工具,AVISPA包含4 種模型檢測后端,并通過高級協議規范語言(High Level Protocol Specification Language,HLPSL)進行集成。
由于AVISPA 工具檢測的需要,此處對協議的認證部分進行了簡化。簡化協議將令牌tk表示為Tk以示區分,并將tk更新時運算符的隨機選取步驟抽象成了使用共享密鑰Skt對Tk加密(見第2 步),并且定義兩個不同的輕量級hash 函數與異或計算來替代隨機選取的運算符(包括第4 步中第3 步Tk與Ns異或生成M3、第7 步中首先將M3與Tk異或生成Ns、第7步最后根據hash算法H1對Tk與Ns異或的結果取哈希值并記為M4、第9 步最后根據hash 算法H2 對Tk與Ns異或的結果取哈希值并記為M5),以滿足tk的保密性。簡化協議中,第2 步在原協議中是明文發送令牌tk,然而tk的不可預測與前向安全性體現在秘密值Seed以及發送后于第3、4 步的及時更新,所以第2步簡化成發送用秘密值Skt加密令牌Tk后的密文,以此來表示除協議雙方外的其他主體,在獲取令牌tk時沒有優勢。因為隨機值Ns參與了生成M3的混淆運算,而混淆方式取決于秘密值Seed,所以就取決于Skt,所以第5、8、9步根據同理也成立。在發送M4和M5后,即在第9、11 步,工具分別立即檢測對標簽和服務器的認證性,符合協議的安全目標。同時,在每一次通信后,對通信信息中的秘密值進行檢驗,已驗證數據的機密性,如標簽于第3、7步請求工具驗證Tk的機密性,而服務器于第4步起請求工具監視隨機值Ns的機密性。簡化協議如圖3 所示,其具有與原協議相似的算法表現,因此適用于實驗分析。

圖3 BRO-LAMP簡化協議流程Fig.3 Simplified flow chart of BRO-LAMP authentication protocol
結合簡化協議定義了一個正常的會話角色,包含所有的2 個合法主體角色——標簽、閱讀器,以及1 個分別能偽裝成合法主體的入侵者角色。最終,簡化協議中待證明的4 個安全目標,即隨機數Ns、令牌Tk(分別對應原協議中的n2與tk)的機密性,以及標簽和服務器端的身份認證性都得到了證實,如圖4所示。如果仿真協議是檢測到安全漏洞,“SUMMARY”字段則會顯示為“UNSAFE”,并在“DETAILS”字段提示“ATTACK_FOUND”,最后會在“GOAL”字段提示出該協議所需證明的安全屬性中首先不滿足的那個屬性。分析過程中,由HLPSL 描述轉換為IF 形式描述保存在“PROTOCOL”字段給出的路徑中文件名為“BRO-LAMP.if”的文件中。結果中的“BACKEND”字段顯示了所用后端分析工具類型,“STATISTICS”字段則說明了分析工具所執行的時間及搜索的節點數或狀態數量。根據圖4 的實驗結果,能夠得出BROLAMP 協議是安全的(SUMMARY:SAFE,GOAL:as_specified),并且可以抵抗重放攻擊和中間人攻擊。

圖4 AVISPA驗證結果Fig.4 AVISPA validation results
本實驗選取AVISPA 的即時模型檢驗器(On-the-Fly Model Checker,OFMC)這一后臺工具,最終模擬出了惰性攻擊者可能的中間人攻擊流程,如圖5 所示,攻擊者因為無法得到原協議中的隨機運算符順序表ST,因而無法獲得簡化協議中的共享密鑰Skt,所以令牌Tk不會被泄露,BRO-LAMP 協議是安全的。

圖5 AVISPA入侵者仿真Fig.5 Intruder simulation of AVISPA
本章在第3 章安全性理論分析的基礎上,重點分析了所提出的BRO-LAMP 協議在實際應用中,為何滿足相關安全屬性的要求,以及在應對各種安全問題時是如何保證系統安全性的。
BRO-LAMP 實現標簽的識別是從標簽注冊開始的,同時標簽為了協商出令牌tk而向服務器端發送自己的唯一身份標識TID。但是,標簽發送TID只有在標簽第一次接入系統時才會發生,之后該標簽在此與系統內的RFID 通信時,會用上一輪通信后更新的令牌tk來表明自己的身份。所以,攻擊者無法獲取每個標簽的唯一身份標識TID;并且在協議的每輪認證中,令牌tk都會進行動態的更新,同時用于更新的兩個隨機要素,由第i個注冊標簽的基本令牌組bki中隨機抽取的bki,j,以及標簽更新的隨機數順序表ST共同決定。隨機數n2是以密文的形式進行傳輸,而ST也是動態更新的。所以,攻擊者無法在同一個標簽的前后幾輪認證之中截獲消息來提取不變的要素以定義追蹤標簽。因此,BRO-LAMP 能夠有效抵御追蹤攻擊且標簽匿名性也得到有效保證。
攻擊者在能獲取合法便簽的前提下,仿制該標簽,并在芯片流片時燒錄原標簽的數據,最后取而代之。而作為BROLAMP 主體的閱讀器在識別標簽時,只有識別第一次參與協議的標簽才需要依靠其唯一身份標識TID。之后由于頻繁的同步更新機制,BRO-LAMP在每輪認證中,與不同標簽的身份一一對應的令牌都是新鮮且不可預測的。攻擊者通過克隆攻擊能夠獲得的TID等,既不能讓其辨別不同標簽的身份,又不能幫助其推算出任何對于破解協議來說有效的秘密值。因此,BRO-LAMP能夠有效抵御克隆攻擊。
偽造攻擊是攻擊者通過冒充為協議某一合法參與方與另一方通信來實施的。在RFID系統中,偽造攻擊分為偽造標簽與偽造閱讀器。
1)抗偽造標簽。
攻擊者自己隨機生成一個tk′去偽裝成合法標簽來與閱讀器交互。但是攻擊者無法獲得隨機運算符順序表ST,而且tk′與tk很難碰撞成功,所以攻擊者提取n2的概率相較于被偽造標簽以外的標簽來說沒有優勢。同時,若是攻擊者參與注冊成為一個新的合法標簽,則首先其唯一身份標識TID不可能與其他合法標簽的碰撞,其次初始化中hash 函數的因子有其自身的TID參與混淆,所以也很難發生碰撞。因此,BROLAMP能夠抵御標簽偽造攻擊。
2)抗偽造閱讀器。
攻擊者通過隨機生成一個n2'去偽裝成合法閱讀器來與某一標簽交互。但是攻擊者無法從合法標簽發送的消息中分離出隨機運算符順序表ST,并且無法保持與合法標簽同步更新令牌tk,所以其構造的消息M5'=tk″?4'n2'和合法閱讀器構造的M5不同。假設攻擊者成功侵入協議的初始化階段,從而獲取了合法標簽的有效身份信息TID和tk,但是和標簽的每輪認證周期很短,單次通信時間屬于毫秒級操作,同時也難以通過經過若干次更新的tk定位標簽,所以攻擊者難以定位與捕捉已攻破的合法標簽進行通信。而且,服務器與閱讀器之前一般也通過了身份認證,標簽只需要查詢注冊階段閱讀器發送來的閱讀器的唯一身份標識RID進行查詢,就能定位到攻擊者的設備與身份。因此,BRO-LAMP 能夠抵御閱讀器偽造攻擊。
攻擊者通過破壞閱讀器與標簽之間在非安全信道上傳輸的某些消息的一致性,使得協議雙方信息失去同步,從而阻礙正常的認證。攻擊者實現去同步攻擊主要有兩種方式:一是截獲并篡改原有信息再發送給標簽;二是截獲原有信息并立即重新發送給標簽,阻止對方的信息更新,以中斷認證過程,攻擊者甚至會大量發送這些信息,通過分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊的形式來達成這一目的。在BRO-LAMP 中,服務器端與標簽都會額外存儲上一輪的認證令牌tkold。當遭受去同步攻擊導致服務器端與標簽信息不一致,即某一方的令牌未及時更新時,認證雙方中作為驗證者的那一方會先用當前輪次認證令牌tknew進行驗證,若匹配失敗則再用上一輪成功通信的秘密值tkold進行對照匹配,匹配成功就能通過驗證,使得認證流程繼續進行并觸發更新。因此,BRO-LAMP能夠抵御去同步攻擊。
攻擊者成功捕獲合法標簽的身份驗證信息,并請求使用這段信息進行身份驗證,以欺騙合法標標簽或服務器。這種類型的攻擊適用于不及時更新密鑰的協議。另外,前后向安全性要求攻擊者無法通過當前輪次認證的正確認證來推導出之前以及之后輪次的秘密信息。所提出的協議每輪認證中的每一次信息交互后,令牌tk以及使用的運算都會更新,每輪認證的令牌tk、隨機運算表ST以及隨機秘密值n1和n2也經過更新或是重新生成。即不同輪次的秘密值均不同且不可預測,所以攻擊者截獲之前輪次的交互信息用于當前輪次認證的重放攻擊均不會成功,符合前向安全性的要求。而隨機運算表ST的更新意味著之前所使用的運算符與之后選取的沒有邏輯關聯,是隨機不可預測的,符合后向安全性的要求。因此,BRO-LAMP能夠抵御重放攻擊,同時保證了前后向安全性。
攻擊者通過攔截正常的網絡通信數據,并進行數據篡改和嗅探來發動中間人攻擊,而通信的雙方卻毫不知情。所提出的協議在認證階段的每一輪信息交互后,協議雙方都會同步更新令牌tk以及更新所使用的運算符,當攻擊者發動中間人攻擊后,雙方都能察覺到,所以篡改后的信息不會通過對方的驗證。而在初始化階段,由于消息M1=h(n1)⊕n1中混淆進了單向不可逆的輕量級hash 函數,所以攻擊者無法通過截獲的M1‖M2‖TID中獲取隨機數n1,也就無法篡改M1‖M2‖TID。因此,BRO-LAMP 能夠抵御中間人攻擊。同時,即時同步更新機制與秘密值的更新或重新生成,也使得BRO-LAMP保證了數據的完整性和機密性。
本節主要結合第4 章分析的,BRO-LAMP 應對多種惡意攻擊的抵御能力與所滿足的安全屬性,與其他常用RFID輕量級認證協議進行對比。
BRO-LAMP 與相關工作安全性能比較如表3 所示。根據表3 中所顯示的對比結果可知,相較于其他方案,只有本文提出的方案能夠滿足所有提到的安全需求。

表3 BRO-LAMP與相關方案安全屬性對比Tab.3 Comparison of security attributes between BRO-LAMP and other schemes
本節將從標簽端的存儲空間消耗、信息生成時的計算開銷,以及認證過程中的通信代價等方面進行性能分析和對比。其中,BRO-LAMP所應用的輕量級無源標簽,參照華盛頓大學于2016 年基于英特爾公司提出的射頻能量捕獲技術實現的無線識別和感知平臺(Wireless Identification and Sensing Platform,WISP)這一新型標簽,存儲交互的相關信息的長度為L,L=96 bit。而文獻[33]方案為了保證離散對數問題的困難性,密鑰長度選擇的是L′=L=1024 bit。
5.2.1 存儲空間消耗
BRO-LAMP 的標簽需要存儲標簽的唯一靜態身份標識TID、隨機運算符表ST=2L、基本令牌組中任意子令牌bki,j≥3L以及生成交互信息的密鑰,總存儲空間消耗至少是7L。
5.2.2 計算開銷
BRO-LAMP 中包含的運算方式存在多種,比如輕量級hash函數(h)、模2L加法(+)以及異或運算(⊕)等,但是每次不超過四種運算。若是只討論認證過程,每論認證只需選取三種運算,且都適用于輕量級無源標簽。
5.2.3 雙向認證通信代價
BRO-LAMP是一個雙向認證協議,新一輪認證周期中,標簽收到閱讀器發來的激勵信號后首先發送證令牌tk請求服務器識別,接著閱讀器發送M3以傳遞秘密值n2,然后標簽發送M4請求閱讀器驗證自身身份,閱讀器再發送M5向標簽證實自身身份,最后雙方同步更新信息。每輪認證周期內,BROLAMP產生的總體通信量是4L。
BRO-LAMP 與部分輕量級RFID 認證協議的資源利用性能比較如表4 所示。其中,由于服務器端的計算能力不受設備資源條件的制約,所以計算開銷僅針對標簽進行分析。空間消耗的計算單位為比特。根據表4 中所顯示的對比結果,文獻[17]方案中的LMAP 協議雖然開銷較小,但安全性不足;而文獻[33]方案提供的安全性強,但通信開銷和標簽存儲開銷遠大于其他輕量級方案,只有本文提出的方案能夠在達到足夠安全性的同時消耗較少的資源。

表4 BRO-LAMP與相關方案性能對比Tab.4 Performance comparison between BRO-LAMP and other schemes
為了適應低成本RFID系統存儲與計算資源受限的場景,同時保護通信的安全與標簽的隱私,本文提出了一種新的基于隨機運算符的方法,通過隨機數保護無線信道中傳輸的秘密值;同時基于k-匿名的思想,通過基本令牌組中隨機選取子令牌bki,j配合隨機選取的運算符實現令牌tk的更新,以此為基礎提出了一種新的RFID 認證協議BRO-LAMP。通過安全性分析與性能分析可知,所提方案被證明是可行、有效、實用的。
接下來,我們首先將會加強協議對側信道攻擊(Side Channel Attack,SCA)等針對電子設備運行中產生的參數被攻擊者檢測到,而產生信息泄露的攻擊行為的抵抗。其次,本文提出的協議的安全性,很大程度上依賴隨機運算符表ST的生成與更新,進一步說是依賴于洗牌算法Shuffle 所使用的種子Seed的隨機性。所以,未來我們將設計并使用基于物理不可克隆函數的真隨機數發生器(True Random Number Generator,TRNG)來改進Shuffle 算法,進一步增加種子Seed的隨機性與不可預測性。