常 志 鵬
(寧夏醫科大學現代教育技術中心 寧夏 銀川 750001)
射頻識別技術出現距現在已近百年時間,20世紀中,因科學技術的局限性以及人類需求有限等諸多因素,使得射頻識別技術并沒有得到廣泛的運用和推廣。進入新世紀之后,伴隨著人類科學技術的空前快速發展和人類需求不斷增加,促進了射頻識別技術的研究和發展以及推廣運用[1-2]。RFID系統是射頻識別技術眾多運用中最為廣泛的運用之一,該系統一般由讀寫器、標簽、后端數據庫三者組成。但隨著人類需求越來越多,越來越繁瑣,傳統的RFID系統早已無法滿足人類多種多樣的需求,于是新型的RFID系統由此產生[3-4]。
新產生的RFID系統中不再有后端數據庫的存在[5-6]。適用于傳統RFID系統的認證協議并不一定百分之百適用于新系統,為保障系統中通信實體的安全性,因此需要為新產生的系統設計出適用于其系統的認證協議。
Tan等[7]于2007年首次提出無后端數據庫的RFID系統概念,并給出相對應的適用于無后端數據庫的RFID系統認證協議。分析發現協議只提供讀寫器一端對標簽的驗證,并未提供標簽一端對讀寫器的驗證,無法抵抗假冒攻擊。
Sundaresan等[8]基于文獻[7]中協議基本思想提出一個協議,協議具備一定的安全性,同時滿足EPCC1G2標準體系。分析發現,該協議因盲因子構造不合理,無法抵抗攻擊者發起的重放攻擊和異步攻擊,加之標簽一端共享密鑰的更新基于固定種子因素,使得協議易被攻擊者追蹤,導致標簽的位置隱私受到威脅。
Hoque等[9]提出一種增強的隱私保護的認證協議,協議適用于無后端數據庫系統中。Deng等[10]指出文獻[9]中協議無法提供異步攻擊,同時協議還無法提供標簽一端的位置隱私安全,并設計出自己的協議。但王萍等[11]分析指出文獻[10]協議未能解決異步攻擊問題,同時通過基于安全模型推理出協議無法保證標簽一端的位置隱私安全,并給出一種改進的協議。
本文對文獻[11]協議進行詳細的安全性分析,發現攻擊者通過監聽獲取的通信消息,可以通過窮舉的方式窮盡出標簽標識符隱私信息,以及窮盡出標簽與讀寫器之間的共享密鑰隱私信息,即協議不能滿足異步攻擊的安全需求。
Rahman等[12]基于分組匿名認證的機制設計出一種認證協議,協議具備較低的計算量,但協議運用過程中,通信實體之間未進行共享密鑰的更新操作,使得前后多次通信用到的共享密鑰數值始終不變,不能抵抗追蹤攻擊。
鑒于篇幅有限,更多有關于無后端數據庫的RFID系統認證協議可參考文獻[13-17]。
鑒于現有的適用于無后端數據庫的認證協議存在計算量大或無法提供必備的安全需求,本文在重點分析文獻[11]協議基礎之上,給出一種能夠滿足安全需求的超輕量級認證協議。該協議采用基于位運算實現的交叉再交換運算對信息加密,能夠達到超輕量級的級別;為增加攻擊者的破解難度,以及確保隱私信息的安全,交叉再交換運算加密時根據加密參數漢明重量取值不同,進行相對應的操作。
對文獻[11]協議進行較為深入的安全性分析,具體分析過程如下:
攻擊者通過監聽獲取消息包括:request、randi、randj、aj、nj、ni。其中:aj=P(IDGj⊕(randj‖randi))、nj=P(SeedTj⊕(randi‖randj))、ni=P(M(SeedTj⊕randj))。
由文獻[11]協議步驟可得知:上述監聽的信息在通信過程中,randi、randj兩個量是明文傳輸,且P()、M()表示的偽隨機函數加密算法對外是公開的,因此攻擊者可對監聽獲得aj信息進行窮舉。具體地,在aj=P(IDGj⊕(randj‖randi))公式中,對于攻擊者來說,randi、randj的值已通過監聽獲取其明文值;P()表示的偽隨機函數加密算法通過查閱相關文檔即可獲取。因此,在aj中,對于攻擊者而言,有且僅有IDGj一個參數的值是攻擊者不知曉的,此時攻擊者可以進行暴力破解攻擊,通過窮舉的方式窮盡出標簽標識符IDGj可能存在的數值。基于上述,攻擊者對aj發起的暴力破解攻擊成功,成功地獲取標簽標識符信息。
下面再對nj=P(SeedTj⊕(randi‖randj))公式進行分析。同理:對攻擊者而言,randi、randj的值已通過監聽獲取其明文值;P()表示的偽隨機函數加密算法通過查閱相關文檔即可獲取。因此,在nj中,對于攻擊者而言,有且僅有SeedTj一個參數的值是攻擊者不知曉的,此時攻擊者可以進行暴力破解攻擊,通過窮舉的方式窮盡出標簽與讀寫器之間的共享密鑰SeedTj可能存在的數值。基于上述,攻擊者對nj發起的暴力破解攻擊成功,成功地獲取標簽與讀寫器之間的共享密鑰信息。
當上述暴力破解攻擊成功之后,攻擊者完全可以自己通過計算得出ni的值;因為在ni=P(M(SeedTj⊕randj))公式中,randj已通過監聽獲取具體值,SeedTj已通過上述暴力破解攻擊獲取其數值,P()、M()表示的偽隨機函數加密算法通過查閱相關文檔即可獲取;在獲取上述所有信息之后,攻擊者只需按照一定的計算法則即可計算出正確的ni的值。
因此,基于上述,文獻[11]協議不具備抗暴力破解攻擊安全需求。
鑒于上述協議存在的安全缺陷,借鑒協議設計思想,現將改進的協議核心思想描述如下:
為能夠抵抗攻擊者發起的暴力破解攻擊,改進的協議在設計之時,信息加密后再傳送;為確保標簽標識符隱私信息的安全性,改進的協議中引入標簽假名參量,標簽假名采用明文方式傳送,即便是攻擊者可以獲取,也無法從假名中推導出標簽標識符隱私信息;為保證加密算法的安全及降低協議的計算量,改進的協議中舍棄原協議中使用的偽隨機函數加密算法,采用超輕量級的交叉再交換運算對信息進行加密,該加密算法自身存在的參數值對于攻擊者來說不知曉,使得即便是攻擊者知曉加密算法如何實現,但因算法自身攜帶的參數值不知曉,也無法進行破解攻擊。
改進的協議出現的符號說明如下:
READER:讀寫器;
TAG:標簽;
IDT:標簽的標識符;
IDS:標簽的假名;
IDSnew:當前通信中標簽的假名;
IDSold:上輪通信中標簽的假名;
K:READER與TAG之間的共享密鑰;
Knew:當前通信中READER與TAG之間的共享密鑰;
Kold:上輪通信中READER與TAG之間的共享密鑰;
rR:讀寫器產生的隨機數;
rT:標簽產生的隨機數;
⊕:異或運算;
Cre(X,Y):交叉再交換運算(Crossover-Re-Exchange Operations)。
Cre(X,Y)定義如下:X、Y、Z均屬于二進制序列,長度均為偶數L位;用HW(X)、HW(Y)符號分別表示序列X、序列Y的漢明重量。當HW(X)≥HW(Y)時,對X、Y從左向右依次進行遍歷操作,將X偶數位上的數放在Z的奇數位上,同時將Y的奇數位上的數放在Z的偶數位上,從而得到一個新的二進制序列Z,再將Z分成左右長度均為L/2位的兩部分,同時交換兩部分數值,即可得到最終結果。當HW(X) 加密時,對進行加密的信息X和Y的漢明重量保密,且每輪加密用到的X和Y的數值不盡相同,使得每輪漢明重量的值也不相同,因此具體是按照上述哪種情況進行處理,攻擊者是不確定的。為便于對交叉再交換運算的理解,此處舉例進行描述:取L=8位,同時取X=0110 1101、Y=0100 0110,則HW(X)=5、HW(Y)=3,屬于HW(X)≥HW(Y)情況,根據上述定義,可得Z=1000 1011,更進一步可推導出Cre(X,Y)=1011 1000,詳細過程如圖1所示;取L=8位,同時取Y=0110 1101、X=0110 0110,則HW(X)=4、HW(Y)=5,屬于HW(X) 圖1 交叉再交換運算示意圖(HW(X)≥HW(Y)) 圖2 交叉再交換運算示意圖(HW(X) 初始化階段主要完成標簽和讀寫器存放信息的任務。初始化完成,標簽一端存放信息有 改進的協議雙向認證過程如圖3所示。 圖3 改進的協議認證示意圖 結合圖3本文協議認證步驟可描述如下: 第一步:READER→TAG。 讀寫器向標簽發送Query消息。 第二步:TAG→READER。 標簽將自身的假名IDS發送給讀寫器,以表示標簽對讀寫器的響應。 第三步:READER→TAG。 讀寫器首先搜索標簽發送過來的IDS在讀寫器一端是否存在。若存在,進行步驟1。若不存在,讀寫器將再次搜索IDSold中是否存在與IDS相等的數據。如果存在,進行步驟1;如果仍然不存在,驗證失敗,協議停止。 步驟1產生隨機數rR,計算A、B,最后將發給標簽。其中:A=rR⊕IDT;B=Cre(rR,IDT)。 第四步:TAG→READER。 標簽收到信息,通過A⊕IDT計算得到隨機數rR;接著用計算得到的隨機數rR,再結合IDT計算得到B′,然后比對B′與B是否相等。 若B′=B,則說明標簽通過計算得到的隨機數rR與讀寫器產生的隨機數是相同;產生隨機數rT,計算C、D,將 若B′≠B,則表明讀寫器是偽造的,協議終止。其中:rR=A⊕IDT;B′=Cre((A⊕IDT),IDT);C=rR⊕rT;D=Cre(rT⊕IDT,rR⊕K)。 第五步:READER→TAG。 讀寫器收到信息,通過C⊕rR計算得到隨機數rT;接著用計算得到的隨機數rT,再結合rR、K、IDT計算得到D′,然后比對D′與D是否相等。 若D′=D,驗證通過;然后讀寫器進行步驟2。若D′≠D,讀寫器將再次用Kold替換Knew進行計算得到D″,再次比對D″與D是否相等。 如果D″=D,則表示標簽與讀寫器之間之前暫時失去同步性,經過此次認證之后,再次恢復同步性,然后讀寫器進行步驟2。如果仍然D″≠D,驗證失敗,協議停止。 步驟2用rT、rR、K計算得到E;接著讀寫器開始更新信息Kold=K、K=Knew、IDSold=IDS、IDS=IDSnew;最后將 第六步:TAG。 標簽收到信息后,用之前計算得到的隨機數rR,再結合rT、K計算得到E′,然后比對E′與E是否相等。 若E′=E,表明讀寫器通過驗證,接著標簽開始更新信息K=Cre(Cre(rR,rT),IDT⊕K)、IDS=Cre(IDS⊕rR,rT)。若E′≠E,驗證失敗,協議停止。其中E′=Cre(A⊕IDT,rT⊕K)。 1) 重放攻擊。協議加密過程中混入隨機數,隨機數的加入可以保障消息的新鮮性。當攻擊者重放消息時,本輪用到的隨機數數值發生變化,重放攻擊失敗。因此,協議具備抗重放攻擊的安全需求。 2) 異步攻擊。每輪驗證標簽過程中,先搜索當前一輪通信中標簽假名IDS以及共享密鑰K信息,當兩者均無法驗證標簽之時,讀寫器將會再次用上一輪通信中標簽假名IDSold替換IDSnew,以及共享密鑰Kold替換Knew再次進行計算,再次對標簽發起驗證。當且僅當前后兩次驗證均失敗之時,讀寫器對標簽的驗證才算是失敗。因此,協議能夠抵抗異步攻擊。 3) 追蹤攻擊。為能夠抵抗攻擊者的追蹤攻擊,本文協議設計之時特地引入標簽假名IDS參量,目的是:(1) 便于讀寫器與標簽通信時,能夠馬上知曉是哪個標簽在進行通信;(2) 假名參與運算,明文或密文傳送,即便是攻擊者可以獲取,也是無法推導出標簽標識符信息。每輪通信完成之后,標簽的假名再次進行更新,更新操作的目的在于:使得每次通信的時候傳送的標簽的假名值均是不同的,從而使得攻擊者無法通過標簽假名發起對標簽位置的追蹤;因假名的值總是處于不斷變化中,且因更新過程中隨機數的引入,使得前后假名之間無任何關系,無法進行逆推或預測,因此攻擊者無法根據當前獲取的假名信息追蹤定位預測下輪通信時標簽的位置。 4) 暴力破解。攻擊者監聽可獲取消息:Query、IDS、A、B、C、D、E,其中Query表示認證請求命令,除了IDS是明文傳輸,其他信息均是加密后的密文,且都混入隨機數。此處選擇公式B=Cre(rR,IDT)為例子進行詳細的暴力破解攻擊分析,具體地:(1) 攻擊者想要獲取B中含有的隱私信息IDT,就需要知道隨機數rR,但本文協議并沒有通過明文傳送該隨機數,因此攻擊者想要獲取該隨機數,還要想其他辦法進行破解;(2) 即便是攻擊者獲取了隨機數rR的值,但交叉再交換運算加密算法還需要知曉rR、IDT兩個參數漢明重量大小,才可確定算法具體加密實現過程,但攻擊者根本無法知曉;(3)B加密過程中混入隨機數,下次通信之時用到的B數值與上次用到的B數值完全不同,且無法進行預測,更進一步增加了攻擊者的破解難度。 5) 假冒攻擊。基于上面的分析,攻擊者無法通過暴力破解攻擊手段獲取相關隱私信息,因此攻擊者在進行消息計算過程中就無法計算出正確的加密消息。同時結合本文協議可得知:每一步驟中,通信實體都是先對消息的發送源進行驗證,當且僅當消息的發送源驗證通過之后,才會進行后續操作。對于攻擊者來說,無法獲取隱私信息,就無法進行正確的消息計算,攻擊者又想發起假冒攻擊,此時攻擊者只能隨機選擇一些數據用作加密的相關參數進行運算。當另一方通信實體收到攻擊者發送來的消息之后,只需要進行簡單的計算,即可識別出消息的來源方是偽造的,協議終止。基于上述,協議能夠抵抗假冒攻擊。 6) 后向安全。為能夠使得攻擊者無法通過獲取的當前通信過程中消息推導或預測出下次通信的消息,協議必須提供相對應的后向安全性,以確保標簽中存放隱私信息的安全。除假名IDS之外,文中所有消息均加密后再傳送,攻擊者即便是可以獲取,也無法破解;同時所有消息加密之時混入隨機數,攻擊者無法預測隨機數,使得攻擊者根本無法從當前獲取的通信消息中推導或預測出下次通信的消息數值。基于上述,協議具備后向安全。 本文協議與其他此類雙向認證協議進行安全性比較,結果如表1所示。 表1 安全性比對 注:√表示能夠抵抗,×表示無法抵抗。 邏輯形式化證明的四步驟:給出協議抽象模型;給出協議初始假設;給出協議需證明的安全目標;給出完整的推理過程[18]。 (1) 協議的理想化模型: 消息① R→T:Query; 消息② T→R:IDS; 消息③ R→T:A,B; 消息④ T→R:C,D; 消息⑤ R→T:E。 (2) 協議的初始假設: P7:R|≡#(rR) P8:T|≡#(rR) P9:R|≡#(rT) P10:T|≡#(rT) P11:R|≡T|?CP12:R|≡T|?D P13:T|≡R|?AP14:T|≡R|?B P15:T|≡R|?E (3) 協議的安全目標: G1:R|≡C,表示讀寫器相信C。 G2:R|≡D,表示讀寫器相信D。 G3:T|≡A,表示標簽相信A。 G4:T|≡B,表示標簽相信B。 G5:T|≡E,表示標簽相信E。 (4) 協議的分析推理: G2可證。 鑒于篇幅有限,且其他目標與G2的推理證明過程相似,此處不再闡述。 在進行性能分析之時,選擇標簽作為研究對象進行性能分析。本文協議是基于文獻[11]協議進行改進的,因此本節在進行性能分析的時候,重點分析本文協議與文獻[11]協議在標簽一端性能比對,結果如表2所示。 表2 性能比較 表2中:ha表示異或運算的計算量;hb表示交叉再交換運算的計算量;hc表示隨機數產生器產生隨機數的計算量;hd表示偽隨機函數的計算量。 ha、hb均屬于超輕量級的運算,hc、hd屬于輕量級的運算。現有的理論研究已表明:一次輕量級運算的計算量相當于幾十次超輕量級運算的計算量,因此相對于輕量級運算來說,超輕量級運算次數多幾次,甚至多十幾次,所產生的計算量帶來的影響幾乎可以忽略不計。從標簽一端計算量角度出發,本文協議計算量遠少于文獻[11]協議的計算量。 約定標簽的標識符信息、標簽的假名信息、標簽與讀寫器之間的共享密鑰等參數信息長度均為l位。從標簽一端的存儲量角度出發,本文協議與文獻[11]中協議存儲量相當。 綜合上面分析,本文協議在標簽一端存儲量相當的情況,在計算量方面有明顯的改進,同時本文協議能夠彌補文獻[11]協議存在的安全缺陷,具備一定的使用價值。 本文針對文獻[11]協議進行安全性分析,指出其協議存在無法抵抗攻擊者暴力破解攻擊缺陷,從而引發攻擊者更進一步發起假冒攻擊,并在該協議設計思想基礎之上給出一種改進的協議。協議采用計算量更少、安全等級更高的交叉再交換運算對信息進行加密;該加密算法基于位運算實現,能夠減少標簽計算量;讀寫器一端存放前后兩輪共享密鑰,以便于抵抗異步攻擊;標簽假名的引入,能確保標簽標識符信息的安全性。對協議進行分析,結果表明協議具備較高的安全性,且適用于無后端數據庫的低成本系統中。下一步的研究方向是將協議運用在實際的無后端數據庫的RFID系統中,對協議運算時間等參數進行詳細分析。

3.2 協議步驟描述

4 安全性分析

5 基于BAN邏輯形式化證明






6 性能分析

7 結 語