劉卓華 黃彩娟 所 輝
(廣東機電職業技術學院計算機與設計學院 廣東 廣州 510006)
傳統的RFID系統中讀寫器以及后臺服務器都是固定不動,隨著科技的發展以及社會的進步,傳統的RFID系統無法滿足人們的需求,因此出現了移動RFID系統[1]。在移動RFID系統中,后臺服務器以及讀寫器都是移動的,從而能夠更好地適用人們的需求。基于兩者都是移動的緣故,使得原本適用于傳統RFID系統的雙向認證協議不再適用于移動RFID系統。相對于傳統的RFID系統,移動RFID系統安全性更加令人擔憂,移動讀寫器與標簽之間采用無線方式通信,同時移動讀寫器與后臺服務器之間也采用無線方式通信,給攻擊者提供了更多監聽的機會,使得傳輸的信息安全性急劇降低[2-4]。為確保用戶隱私信息的安全性,需設計出適用于移動RFID系統的雙向認證協議。
文獻[5]設計出一種適用于移動系統的認證協議,該協議具備較高的安全性,能夠滿足移動系統的安全性需求。但協議采用基于橢圓曲線算法對信息進行加密,計算量較大,對于現有的受限制的標簽而言,該計算量超出標簽的計算能力,因此協議無法進行較大范圍的推廣。
文獻[6]提出一個輕量級的移動認證協議,該協議基于哈希函數實現對信息的加密,相對于文獻[5]的協議,計算量方面得到較大幅度的降低。但協議中傳輸的信息大多數采用明文傳輸,且產生的隨機數以及加密用到的隨機數都是明文傳輸,攻擊者通過監聽一個完整的通信過程,可以獲取所有的通信信息,然后對消息開始采用窮舉的方式破解出標簽中存放的隱私信息,因此協議無法抵抗攻擊者的暴力破解攻擊。
文獻[7]提出一個適用于移動系統的認證協議,該協議拋棄傳統的基于哈希函數加密算法,而是選擇計算量較小的交叉及異或等按位運算對消息進行加密。但攻擊者可以通過物理入侵的方式獲取標簽以及讀寫器的密鑰,從而通過對標簽以及讀寫反向克隆的方式發送假冒攻擊,因此該協議無法抵抗攻擊者發起的假冒攻擊。
文獻[8]設計出一個雙向認證協議,適用于移動RFID系統。該協議采用基于物理不可克隆函數(Physical Unclonable Function, PUF)來進行密鑰的生成,標簽一端只有在認證過程中由PUF電路產生相對應的認證密鑰,從而避免了傳統加密機制將密鑰存放在非易失性存儲器易被攻擊者竊取的弊端,能夠有效抵抗攻擊者發起的假冒攻擊。但協議在重復發送消息時,會使得標簽一端的認證密鑰與數據庫之間失去同步性,因此協議無法抵抗攻擊者的去同步化攻擊。
文獻[9]提出一種改進的輕量級的移動認證協議,該協議主要基于哈希函數實現信息的加密傳輸。協議聲稱能夠抵抗攻擊者發起的假冒攻擊,同時能夠滿足信息的新鮮性;但本文對該協議進行深入研究發現該協議并不能提供作者聲稱的安全需求。本文基于文獻[9]協議,設計出改進的抗假冒攻擊的移動RFID系統認證協議。
鑒于文中篇幅有限,有關更多的移動RFID系統的認證協議可以參考文獻[10-15]。
文獻[9]協議的雙向認證流程圖如圖1所示。

圖1 文獻[9]的認證協議
結合圖1對文獻[9]協議進行分析,得出如下安全缺陷或不足之處:
(1) 文獻[9]協議中聲稱能夠實現通信實體之間的雙向認證,但分析后發現,該協議并不能提供該安全機制。具體原因如下:
① 在第一步中,移動讀寫器傳送給標簽的都是明文信息;標簽在接收到信息后,無法通過該信息對移動讀寫器進行認證,此處是第一次標簽未對移動讀寫器的認證。
基于上述可知,文獻[9]協議并不能實現通信實體之間的雙向認證。
(2) 文獻[9]協議中聲稱能夠抵抗攻擊者的假冒攻擊,但分析后發現,該協議并不能提供該安全機制。具體原因如下:

基于上述可知,文獻[9]協議并不能抵抗攻擊者的假冒攻擊。
(3) 文獻[9]協議中部分描述的正確性有待商榷,如:IDt表示標簽的身份標識符,IDr表示移動讀寫器的身份標識符;在實際應用中,標簽和移動讀寫器的身份標識符都是不會發生變化的(有關該部分的描述可以參考文獻[16]);在實際應用中,為了防止攻擊者的追蹤攻擊等,會引入身份的假名標識符,該參數可以隨時發生變化。文獻[9]協議中IDt和IDr則會經常發生變化,而對于該種描述是否完全正確,至少其他文獻中暫未有對該描述持支持觀點的。再比如:文獻[9]協議中描述更新過程中能夠基于隨機數Nt保證信息的新鮮性。這種描述的正確性亦是有待商榷,具體原因如下:通過上面的認證流程圖可以發現IDtnew=HKt(Nt‖IDtold)中信息的更新新鮮性依賴于隨機數Nt,但通過整個認證協議會發現,隨機數Nt最開始是由后臺服務器產生,再傳送給標簽的,且協議通信過程中隨機數Nt以明文傳送;對于攻擊者來說,只需要進行監聽,即可獲取隨機數Nt;同時在后臺服務器將隨機數Nt發送給標簽之后,隨機數Nt便沒有更新,這樣使得IDtnew=HKt(Nt‖IDtold)中用到的隨機數Nt一直都是同一個數。隨機數Nt未發生變化,那更新的IDtnew信息的新鮮性如何得到保證?因此文獻[9]協議中的觀點正確性有待商榷。
基于文獻[9]協議,本文給出一種改進的能抵抗假冒攻擊的移動RFID雙向認證協議。
改進的協議主要從以下方面彌補文獻[9]協議的不足:(1) 所有傳輸的信息均采用密文發送;(2) 信息更新過程中用到的隨機數每輪將會隨機產生,做到真正保證信息的新鮮性;(3) 為降低通信實體的計算量,摒棄哈希函數加密方法,采用交叉位運算對信息進行加密。
現將協議中用到的符號具體的含義解釋如下:
S:后臺服務器;
R:移動讀寫器;
T:標簽;
IDSR:移動讀寫器的假名身份標識符;
IDST:標簽的假名身份標識符;
IDST_new:后臺服務器存放的本輪認證的標簽的假名身份標識符值;
IDST_old:后臺服務器存放的上輪認證的標簽的假名身份標識符值;
K:后臺服務器、移動讀寫器、標簽三者之間的共享密鑰;
KR:移動讀寫器與后臺服務器之間的共享密鑰;
KT:標簽與后臺服務器之間本輪認證的共享密鑰;
KT_old:標簽與后臺服務器之間上輪認證的共享密鑰;
X_R:消息的右邊部分;
X_L:消息的左邊部分;
x:移動讀寫器產生的隨機數;
y:標簽產生的隨機數;
⊕:按位異或運算;
Cro(X,Y):交叉位運算。
文中為便于描述,用符號Cro(X,Y)來表示交叉位運算,該運算的定義如下:X和Y都是長度為偶數位的二進制序列,取X的奇數位、Y的偶數位組合成一個新的二進制序列。具體的:從左到右,取X的奇數位依次放在新二進制序列的偶數位;取Y的偶數位依次放在新二進制序列的奇數位。例如:長度為8位的二進制序列X=10010011、Y=01011011,則Cro(X,Y)=11100011,具體如圖2所示。

圖2 交叉位運算流程圖
本文協議包含兩個不同的階段:協議的初始化階段和協議的雙向認證階段。
(1) 協議的初始化階段。協議在該階段主要功能是:后臺服務器產生相關的隱私密鑰,以及將產生的隱私密鑰安全地發送給移動讀寫器和標簽。后臺服務器產生信息有:IDSR、IDST、K、KT、KR。協議在剛開始的時候,令IDST_new=IDST_old=IDST。將(IDSR、K、KR)存儲到移動讀寫器中;將(IDST、K、KT)存儲到標簽中;后臺服務器中存儲(IDSR、IDST、K、KT、KR、KT_old、IDST_old),其中KT_old初始化為0。
后臺服務器與移動讀寫器具備較強的計算能力、較大的存儲空間、較強的查詢能力;標簽計算能力以及存儲空間均受限。
(2) 協議的雙向認證階段。能夠抵抗假冒攻擊的移動RFID雙向認證協議具體過程如圖3所示。

圖3 移動RFID系統雙向認證協議
結合圖3所示,協議具體步驟描述如下:
第一步移動讀寫器首先產生隨機數x;利用x、K計算A,利用x、K計算B;將一并發送給標簽。其中:Query表示認證請求命令,A=x⊕K,B=Cro(x,K)。
第二步標簽收到信息后,利用A、K計算隨機數x′,利用計算得到的隨機數x′、K計算B′。然后比較B′與B是否相等。不相等,標簽驗證移動讀寫器失敗,協議停止;相等,表明x′=x,標簽產生隨機數y,利用x、y、K計算C,利用x、y、K計算D,利用IDST、y、KT計算E,最后將
第三步移動讀寫器收到信息后,利用C、x、K計算隨機數y′,利用計算得到的隨機數y′、x、K計算D′。然后比較D′與D是否相等。不相等,移動讀寫器驗證標簽失敗,協議停止。相等,表明y′=y,利用x、IDSR、KR計算F,最后將一并發送給后臺服務器。其中:F_L表示取F的左半部分的值,y′=C⊕K⊕x,D′=Cro(y′⊕K,x),F=Cro(x⊕IDSR,x⊕KR)。
第四步后臺服務器收到信息后,分別驗證標簽、移動讀寫器的合法性。
① 對移動讀寫器的驗證。后臺服務器利用A、K計算隨機數x′,利用計算得到的隨機數x′、IDSR、KR計算F′,對F′取左半部分的值得到F_L′。然后比較F_L′與F_L是否相等。不相等,后臺服務器驗證移動讀寫器失敗,協議停止;相等,表明x′=x,后臺服務器驗證移動讀寫器通過,然后開始驗證標簽的合法性。其中:x′=A⊕K,F′=Cro(x′⊕IDSR,x′⊕KR)。
② 對標簽的驗證。后臺服務器利用C、x、K計算隨機數y′,利用計算得到的隨機數y′、KT、IDST計算E′,對E′取左半部分的值得到E_L′。然后比較E_L′與E_L是否相等。相等,表明y′=y,后臺服務器驗證標簽通過,然后開始更新信息:IDST_old=IDST_new、KT_old=KT、KT=Cro(y,KT)、IDST_new=Cro(y,IDST_old)。不相等,后臺服務器取出上一輪認證用到的KT_old、IDST_old替換KT、IDST計算E″,對E″取左半部分的值得到E_L″。然后比較E_L″與E_L是否相等。仍不相等,后臺服務器驗證標簽失敗,協議停止;相等,后臺服務器驗證標簽通過,后臺服務器與標簽之間又重新恢復一致性,且更新信息:IDST_new=Cro(y,IDST_old),KT=Cro(y,KT),最后將
第五步移動讀寫器收到信息后,將之前第三步中計算得到的F取右半部分得到F_R;將此數值與接收到的F_R相比較。不相等,移動讀寫器驗證后臺服務器失敗,協議停止;相等,移動讀寫器利用E_R、x、y計算G,最后將
第六步標簽收到信息后,將之前第二步中計算得到的E取右半部分得到E_R,利用E_R、x、y計算得到G;將此數值與接收到的G相比較。不相等,標簽驗證移動讀寫器失敗,協議停止;相等,開始更新信息:IDST_new=Cro(y,IDST_old),KT=Cro(y,KT)。到此,后臺服務器、移動讀寫器、標簽三者之間的認證完成。
對本文設計出的雙向認證協議進行形式化分析證明,具體步驟如下:
(1) 協議的理想化模型。
消息②T→R:
消息④S→R:
消息⑤R→T:
(2) 協議的初始假設。





P13:R|≡#(x) P14:T|≡#(x)
P15:S|≡#(x) P16:R|≡#(y)
P17:T|≡#(y) P18:S|≡#(y)
P19:R|≡T|?CP20:R|≡T|?D
P21:R|≡T|?E_LP22:T|≡R|?A
P23:T|≡R|?BP24:T|≡R|?G
P25:S|≡R|?AP26:S|≡R|?F_L
P27:S|≡T|?CP28:S|≡T|?E_L
P29:R|≡S|?E_RP30:R|≡S|?F_R
(3) 協議的安全目標。
G1:R|≡CG2:R|≡D
G3:R|≡E_LG4:R|≡E_R
G5:R|≡F_RG6:T|≡A
G7:T|≡BG8:T|≡G
G9:S|≡F_LG10:S|≡A
G11:S|≡CG12:S|≡E_L
(4) 協議的分析推理。




運用上述條件和法則,同理可證得G2-G12。
移動RFID系統中有三個通信實體,標簽、移動讀寫器、后臺服務器。相對于標簽來說,移動讀寫器、后臺服務器均具備較大的存儲空間和較強的計算能力,因此性能分析僅選擇標簽作為比較的對象。主要從標簽一端的計算量、標簽一端的存儲空間兩個方面進行性能比較,具體性能分析結果參見表1。

表1 協議的性能比對
表1中:ha符號表示產生隨機數的計算量;hb符號表示哈希函數運算的計算量;hc符號表示模乘的計算量;hd符號表示時間戳的計算量;he符號表示異或運算的計算量;hf符號表示字合成運算的計算量;hg符號表示物理不可克隆函數運算的計算量;hi符號表示偽隨機函數運算的計算量;hj符號表示交叉運算的計算量。設定KT、IDST、K三者的長度均為l位。
本文協議相對于其他比較的協議而言,摒棄哈希函數加密的方法,而是采用超輕量級的字合成運算加密,能夠盡可能地降低標簽的計算量。相對于文獻[9]來說,雖然引入隨機數產生運算,但本文協議只需要產生一個隨機數,因此該計算量標簽是可以實現的。從性能角度出發,可以發現:本文協議在計算量方面優于對比協議,同時能夠解決部分協議中存在的安全缺陷問題。
(1) 假冒攻擊。本文協議能夠抵抗攻擊者發起的假冒攻擊,具體分析如下:
攻擊者假冒標簽,對于攻擊者來說,缺少IDST、KT、K信息,因此加密過程中用到這三個量的時候,攻擊者只能隨機選擇一個量充當,導致攻擊者計算出來的加密信息C、D、E_L都是不正確的。當移動讀寫器或后臺服務器接收到信息后,通過簡單的計算即可識別出發送過來信息的通信實體是偽造的。攻擊者假冒標簽發起的攻擊失敗。
攻擊者假冒移動讀寫器,對于此時的攻擊者而言,缺少IDSR、KR、K信息,因此發送給標簽的信息A和B都是錯誤的,標簽通過簡單的計算即可識別出移動讀寫器的真偽。本文對文獻[5]協議具體分析時指出,當后臺服務器傳送消息給移動讀寫器之后,移動讀寫器并沒有進行任何操作,而是直接將信息轉發給標簽,才導致文獻[5]協議無法抵抗攻擊者的假冒攻擊。為解決此安全問題,本文協議在移動讀寫器收到后臺服務器發送來的信息后,并不是直接轉發該信息,而是對其中的E_R再次進行加密后傳送標簽。因攻擊者無法獲取隨機數x和y,因此攻擊者無法假冒移動讀寫器計算正確的G,故協議可以抵抗攻擊者假冒移動讀寫器發起的假冒攻擊。
攻擊者假冒后臺服務器,攻擊者此時不知曉IDST、KT、IDSR、KR、K這些信息,因此對于移動讀寫器發送來的信息無法進行解密。解密失敗,則無法獲取隨機數x和y,缺少這兩個隨機數,攻擊者只能隨機選擇兩個隨機數替換,由此計算所得到的F_R和E_R都是不正確的。移動讀寫器和標簽收到信息后,簡單計算即可識別出后臺服務器是攻擊者假冒的,攻擊者假冒攻擊失敗。
基于上述分析,協議可以抵抗攻擊者發起的各種類型的假冒攻擊。
(2) 雙向認證。移動RFID系統中有三個通信實體,因此三個通信實體之間均需要實現雙向認證,本文協議能夠提供該安全需求。
移動讀寫器與標簽之間的雙向認證:第二步中,標簽通過A和B實現對移動讀寫器的第一次認證;第六步中,標簽將會通過G再次對移動讀寫器進行認證。通過兩步認證,但凡只要有一次移動讀寫器是假冒的,協議都會立刻停止。移動讀寫器對標簽的認證則是在第三步中完成的,通過C和D完成對標簽的認證。
移動讀寫器與后臺服務器之間的雙向認證:第四步中,后臺服務器收到移動讀寫器發送來的信息后,通過A和F_L實現對移動讀寫器的認證。第五步中,移動讀寫器通過F_R完成對后臺服務器的認證。
后臺服務器與標簽之間的雙向認證:第四步中,后臺服務器先對移動讀寫器進行認證,認證通過之后,將會開始對標簽進行認證,通過C和E_L完成對標簽的認證。第六步中,標簽通過G在完成對后臺服務器認證的同時,亦完成了對移動讀寫器的認證。
基于上述闡述,協議能夠實現三個通信實體之間的雙向認證。
(3) 重放攻擊。攻擊者通過監聽等手段可以獲取上一輪的通信消息,企圖通過重放監聽的信息來獲取標簽存放的隱私信息,但攻擊者無法成功。協議為了能夠抵抗攻擊者的重放攻擊,在所有傳輸信息加密過程中混入隨機數,且隨機數每輪都是隨機產生,從而使得每一輪通信信息的具體數值是不相同的,且無法提前預測。當攻擊者重放監聽到的上一輪信息時,通信實體用到的認證密鑰已經發生變化,此時通過簡單計算即可識別出該消息是攻擊者重放的,協議停止,攻擊者并未獲取有效的隱私信息,因此協議可以抵抗重放攻擊。
(4) 追蹤攻擊。攻擊者企圖通過長時間的監聽方式,對標簽實施追蹤攻擊,但對于本文協議,攻擊者實施的追蹤攻擊無法成功。具體原因如下:其一,為確保標簽不會被定位,信息加密過程中未使用標簽的標識符,而是引入標簽的假名標識符進行加密;其二,為確保標簽不被定位,標簽的假名標識符每進行一輪認證之后,都會及時進行更新;其三,消息加密過程中混入隨機數,每輪混入的隨機數都是不一樣的。基于上面的因素,使得攻擊者無法從竊聽的消息中定位標簽的位置,因此,協議可以抵抗攻擊者的追蹤攻擊。
(5) 去同步化攻擊。為了保證后臺服務器與標簽之間加密密鑰的同步性,即為了能夠抵抗攻擊者發起的去同步化攻擊,協議在后臺服務器一端不僅存放有當前認證用到的加密密鑰,同時存放上一輪認證用到的密鑰。具體地,在協議認證步驟的第四步中,后臺服務器會首先用KT、IDST信息對標簽進行認證,當此次認證失敗之后,后臺服務器會再次用KT_old、IDST_old信息替換KT、IDST對標簽進行認證,從而用來抵抗攻擊者發起的去同步化攻擊。
(6) 暴力破解攻擊。基于當前計算機計算能力大幅提升,攻擊者可能采用更為直接和暴力的窮舉方式對信息進行破解,從而破解出標簽存放的隱私信息。為抵抗攻擊者發起的暴力破解攻擊,協議在設計的時候從以下幾個方面進行改進:其一,所有信息都是加密后再傳輸;其二,信息加密過程中用到的參數,對于攻擊者來說,都至少有兩個參數的量攻擊者是不知曉的;其三,信息加密過程中混入隨機數,隨機數每輪都是隨機產生,無法提前預測。此處選取消息F=Cro(x⊕IDSR,x⊕KR)作為分析的對象,F在加密過程中用到IDSR、x、KR三個參數,但是攻擊者并不知道這三個參數中任何一個,無法通過窮舉的方式窮盡出隱私信息,因此協議可以抵抗攻擊者的暴力破解攻擊。
本文協議與其他此類協議進行安全性對比如表2所示。

表2 協議的安全性對比
注:√表示能夠抵抗,×表示無法抵抗
本文分析了移動RFID系統產生的背景因素,闡述了傳統的RFID系統雙向認證協議并不能很好地適用于移動RFID系統中。對近些年經典的移動認證協議進行分析,重點分析了文獻[9]提出的認證協議,指出其協議存在的安全缺陷,然后給出改進的協議。改進的協議為降低標簽一端的計算量,摒棄哈希函數加密的方法,采用字合成運算對信息進行加密;為保證信息的安全,所有信息均加密后在傳送;信息加密過程中混入隨機數,增大攻擊者的破解難度。對協議進行安全性分析,表明協議具備較高的安全性;對協議進行性能分析,表明協議在計算量方面適用于受限的標簽。下一步將在具體的應用系統中實現出來,對協議的具體計算量更進一步詳細分析。