郝偉偉,呂 磊
(1.河南省市場監(jiān)督管理局 信息中心,河南 鄭州 450008;2.河南工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,河南 鄭州 450008)
射頻識別技術(shù)是一種不需要與特定商品相接觸就可以識別內(nèi)部存放信息的技術(shù),該技術(shù)最早出現(xiàn)于20世紀,受限于20世紀科技等各方面制約,未能得到較大范圍推廣使用[1-2]。進入新世紀之后,伴隨著云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、區(qū)塊鏈等新技術(shù)的不斷產(chǎn)生,以及全球經(jīng)濟持續(xù)快速發(fā)展,使得射頻識別技術(shù)再次得到發(fā)展機遇[3-4]。
一個經(jīng)典的RFID系統(tǒng)至少包含有電子標簽、讀寫器、后臺服務(wù)器三者,受限于當時科技或人類需求等因素,電子標簽與讀寫器間以無線方式交互數(shù)據(jù),讀寫器與后臺服務(wù)器間以有線方式交互數(shù)據(jù)。一般認為無線方式交互數(shù)據(jù)易被第三方人員竊聽,存在一定安全風(fēng)險,認為不安全、不可靠,而有線方式交互數(shù)據(jù)不易被第三方人員竊聽,一般認為安全可靠[5-7]。但隨著科技進步、人類需求越來越多,且越來越復(fù)雜,經(jīng)典的RFID系統(tǒng)早已無法滿足,出現(xiàn)了移動式RFID系統(tǒng)。該系統(tǒng)主要不同之處在于:讀寫器與后臺服務(wù)器間也采用無線方式交互數(shù)據(jù)[8-9]。
為能夠確保每個無線方式交互數(shù)據(jù)的安全性,需要設(shè)計新的可適用于移動式RFID系統(tǒng)的雙向認證算法。文獻[10]中提出的算法僅適合于在傳統(tǒng)的RFID系統(tǒng)中使用,無法在移動式系統(tǒng)中使用,使用范圍受到制約。文獻[11]中設(shè)計的算法可在移動式RFID系統(tǒng)中使用,但算法采用傳統(tǒng)的加密算法對消息進行加密,使得電子標簽一端無法使用,該算法僅能在一些特定場合使用。文獻[12]中提出的算法具有一定的安全性,但算法未考慮物理克隆的可能性,導(dǎo)致算法無法抵抗假冒攻擊。文獻[13]中的算法可使用在移動式系統(tǒng)中,但算法使用到不同類型的哈希函數(shù)對信息進行加密,使得電子標簽一端無法推廣使用。文獻[14]中基于按位運算給出一種超輕量級的可在移動式系統(tǒng)使用的算法,但根據(jù)現(xiàn)有的研究表明,基于按位運算的算法本身安全性還有待商榷,因此該算法的安全性也有待商榷。限于篇幅,更多有關(guān)RFID雙向認證可以參見文獻[15-20]。
鑒于現(xiàn)有絕大多數(shù)算法無法適用于移動式RFID系統(tǒng)或計算量大或存在安全缺陷等不足,文中提出一種輕量級的可適用于移動式RFID系統(tǒng)的雙向認證算法。
本章節(jié)將從下面兩個方面展開,首先對算法中出現(xiàn)的符號給予詳細的含義描述,接著對算法具體實現(xiàn)步驟展開描述。
(1)算法符號說明及初始化。
DB表示后臺服務(wù)器;
R表示讀寫器;
T表示電子標簽;
K表示DB、R、T三者之間共享密鑰;
IDR表示R的身份標志;
IDT表示T的身份標志;
x表示T生成的隨機數(shù);
y表示DB生成的隨機數(shù);
PR()表示偽隨機發(fā)生器運算;
&表示按位與運算;
⊕表示按位異或運算。
(2)算法具體實現(xiàn)。
DB與R間以無線方式交換數(shù)據(jù),R與T間以無線方式交換數(shù)據(jù),都認定為不安全[21]。算法啟動之前,即T離開工廠之前,經(jīng)過初始化操作后,T、R、DB三者均存放有共享密鑰K值,同時DB一端還存放有IDR、IDT。文中輕量級的移動RFID雙向認證算法如圖1所示。
圖1 輕量級雙向認證算法
文中算法具體步驟如下描述:
(1)讀寫器向電子標簽發(fā)送一個Hello消息,用于告知電子標簽開始雙向認證算法。
(2)電子標簽在收到讀寫器發(fā)送來的消息之后,電子標簽首先產(chǎn)生一個隨機數(shù),可以標記為x;接著電子標簽用產(chǎn)生的隨機數(shù)x、自身存放的共享密鑰K計算得到消息A=x⊕K、B=PR(x,K),用產(chǎn)生的隨機數(shù)x、自身存放的共享密鑰K、自身存放的電子標簽的標識符IDT計算得到消息C=PR(x⊕IDT,K);最后將計算得到的消息A、B、C發(fā)送給讀寫器。
(3)讀寫器在收到電子標簽發(fā)送來的消息之后,首先對消息A進行變形處理,可以得到隨機數(shù)x'=A⊕K;接著讀寫器用變形處理得到的隨機數(shù)x'、自身存放的共享密鑰K計算得到一個消息B'=PR(x',K),并對比計算得到的消息B'與接收到的消息B值是否相等。
如果兩者值不相等,說明電子標簽無法通過讀寫器的驗證,算法停止。
如果兩者值相等,說明讀寫器驗證電子標簽成功。接著讀寫器用變形處理得到的隨機數(shù)x、自身存放的讀寫器標識符IDR、接收到的消息C計算得到消息D=PR(C⊕x,IDR);最后將消息A、D發(fā)送給后臺服務(wù)器。
(4)后臺服務(wù)器在收到讀寫器發(fā)送來的消息之后,首先對消息A進行變形處理可以得到隨機數(shù)x''=A⊕K;然后利用計算得到的隨機數(shù)x''、自身存放的共享密鑰K、自身存放的電子標簽的標識符IDT計算得到一個消息C'=PR(x''⊕IDT,K),緊接著再用計算得到的消息C'、變形處理得到的隨機數(shù)x''、自身存放的讀寫器的標識符IDR計算得到一個消息D'=PR(C'⊕x'',IDR)。并對比計算得到的消息D'與接收到的消息D值是否相等。
如果兩者值不相等,表明讀寫器或電子標簽中至少有一方是偽造的,算法停止。
如果兩者值相等,可以說明電子標簽和讀寫器同時通過后臺服務(wù)器的驗證。接著后臺服務(wù)器生成一個隨機數(shù),可以標記為y,后臺服務(wù)器利用生成的隨機數(shù)y、計算得到的隨機數(shù)x計算得到消息E=y⊕x;用生成的隨機數(shù)y、自身存放的讀寫器的標識符IDR、自身存放的共享密鑰K計算得到消息F=PR(y⊕IDR, K);利用計算得到的隨機數(shù)x、自身存放的電子標簽的標識符IDT、自身存放的共享密鑰K計算得到消息G=PR(x& IDT,K)。最后后臺服務(wù)器將消息E、F、G發(fā)送給讀寫器。
(5)讀寫器在收到后臺服務(wù)器發(fā)送的消息之后,先對消息E進行變形處理得到隨機數(shù)y'=E⊕x;然后利用變形處理得到的y'、自身存放的共享密鑰K、自身存放的讀寫器的標識符IDR計算得到一個消息F'=PR(y'⊕IDR,K),并對比計算得到的消息F'與接收到的消息F值是否相等。
如果兩者值不相等,說明后臺服務(wù)器無法通過讀寫器驗證,算法停止。
如果兩者值相等,表明讀寫器對后臺服務(wù)器的驗證成功。讀寫器接著利用接收到的消息G、變形處理得到的隨機數(shù)y'、自身存放的共享密鑰K計算得到消息H=PR(G &y,K)。最后讀寫器將消息E、H發(fā)送給電子標簽。
(6)電子標簽在收到讀寫器發(fā)送來的消息之后,首先對消息E進行變形處理得到一個隨機數(shù)y''=E⊕x;接著電子標簽利用自身生成的隨機數(shù)x、自身存放的電子標簽的標識符IDT、自身存放的共享密鑰K計算得到一個消息G'=PR(x& IDT, K),利用變形處理得到的隨機數(shù)y''、自身存放的共享密鑰K、計算得到的消息G'計算得到一個消息H'=PR(G'&y'',K),并對比計算得到的消息H'與接收到的消息H值是否相等。
如果兩者值不相等,表明電子標簽對讀寫器的驗證失敗,算法停止。
如果兩者值相等,表明讀寫器通過電子標簽的驗證,且也可以說明后臺服務(wù)器同時通過電子標簽的驗證,截止到此,雙向認證算法順利結(jié)束。
本章節(jié)將主要從雙向認證、重放攻擊等角度展開分析文中算法安全性。
(1)雙向認證。
算法實現(xiàn)雙向認證是一個最基本也是必須的要求,文中算法可以保證實現(xiàn)。
通過上一章節(jié)算法具體步驟描述可以看出,文中算法每會話實體在接收到消息之后,并不是馬上回復(fù)消息來源方,而是先對消息來源方進行驗證,只有在消息來源方通過接收方驗證之后,消息接收方才會開始進行其他操作。一旦消息來源方無法通過接收方驗證,則算法即刻停止?;谏鲜觯傻弥闹兴惴梢詫崿F(xiàn)雙向認證安全需求。
(2)重放攻擊。
因移動式RFID系統(tǒng)中,任何兩個會話實體之間的數(shù)據(jù)交換方式都是無線鏈路,無線鏈路固有的開放式,使得交互數(shù)據(jù)易被第三方人員竊聽獲取,并在下一輪會話中第三方人員重放竊聽獲取的之前的消息,以企圖通過合法實體一方驗證。
(3)假冒攻擊。
從理論上來講,第三方人員可以假冒成任何一個會話實體與其他會話實體進行通信,具體的:第三方人員可假冒成電子標簽、可以假冒成讀寫器、可以假冒成后臺服務(wù)器。鑒于篇幅有限等因素,此處僅選擇第三方人員假冒成讀寫器與合法電子標簽進行通信進行分析。
當?shù)谌饺藛T假冒成讀寫器時,第三方人員會給合法電子標簽發(fā)送一個hello指令,合法電子標簽收到消息后,經(jīng)過一系列操作,最終會響應(yīng)第三方人員,并給第三方人員返回一些合法消息,但該消息都是加密之后的密文。第三方人員接收到之后,需要先對部分消息解密以獲取合法電子標簽產(chǎn)生的隨機數(shù),從而才可以繼續(xù)后面的破解操作。但因為第三方人員缺少DB、R、T三者間共享密鑰,使得第三方人員無法正確破解出合法電子標簽生成的隨機數(shù),第三方人員無法獲取正確隨機數(shù)值,就無法進行后面破解。第三方人員只能隨機選擇一些數(shù)據(jù)作為無法獲取的正確值參與運算,并將運算結(jié)果發(fā)送給后臺服務(wù)器。后臺服務(wù)器收到消息后,只需要進行簡單的驗證,即可識別出消息來源方是假冒的,算法停止。第三方人員假冒失敗,未能獲取任何有用隱私信息?;谏鲜觯傻弥闹兴惴梢詫崿F(xiàn)抵抗假冒攻擊。
(4)追蹤攻擊。
第三方人員想要追蹤電子標簽的具體位置,則需要持續(xù)監(jiān)聽通信,以獲取電子標簽發(fā)出的消息,并對獲取的消息進行分析,以確定電子標簽位置。但文中算法對于第三方來說則無法完成消息分析,因消息加密過程中使用到電子標簽生成的隨機數(shù)x,將會使得電子標簽每輪計算得到消息值發(fā)生變更,展現(xiàn)給第三方人員的將是電子標簽不斷處于變動狀態(tài),第三方根本無法追蹤定位電子標簽的具體位置。基于上述,可得知文中算法可以實現(xiàn)抵抗追蹤攻擊。
(5)前向安全性。
第三方人員想通過對監(jiān)聽獲取的消息進行破解,以便可以分析出之前通信過程中涉及到用戶的重要隱私信息,從而構(gòu)成前向安全性。但文中算法,第三方人員無法破解分析出之前任何一輪通信中有關(guān)用戶隱私信息,原因主要如下:每個消息加密過程中都參加入隨機數(shù),或加入隨機數(shù)x或加入隨機數(shù)y或同時加入隨機數(shù)x、y,將使得每輪每個消息值都是處于變化狀態(tài)中,當?shù)谌饺藛T對第i次通信消息進行分析,第i-1次消息值已變更,且前后兩次消息值間無任何關(guān)聯(lián)性?;谏鲜?,可得知文中算法可以實現(xiàn)前向安全性。
(6)后向安全性。
所謂的后向安全性是說攻擊者通過竊聽可獲取第i輪會話的所有消息,通過對第i輪消息的分析,企圖預(yù)測出第i+1輪會話實體之間的通信消息,攻擊者假冒成其中一方進行通信,破解出標簽中更多的隱私信息,從而造成用戶存放在標簽中的隱私信息泄露。文中主要通過混入隨機數(shù)的方式來解決上述問題,具體的分析過程如下:文中每個消息在加密的時候都至少加入一個隨機數(shù),或加入標簽產(chǎn)生的隨機數(shù),或加入后臺數(shù)據(jù)庫產(chǎn)生的隨機數(shù),或同時加入標簽和后臺數(shù)據(jù)庫產(chǎn)生的隨機數(shù),并且隨機數(shù)每輪由隨機數(shù)產(chǎn)生器隨機產(chǎn)生,將會使得每輪用到的隨機數(shù)的數(shù)值都是不相同的,且時時刻刻處于變動狀態(tài);再加上前后兩輪隨機數(shù)間并無關(guān)聯(lián)性,將導(dǎo)致攻擊者根本無法從當前通信的消息中分析出任何有幫助預(yù)測下輪會話的消息信息。從而使得攻擊者按照自己計算的下輪會話消息進行假冒其中一方進行通信時,消息接收方僅只是需要進行簡單的計算,即可識別出消息來源方并非真實可靠的會話實體,算法立刻結(jié)束,截至此時,攻擊者并未獲取或分析出有用的隱私信息?;谏鲜觯闹兴惴軌虻挚购笙虬踩?。
各算法之間的安全性對比見表1。
表1 各算法間安全性對比
在移動式RFID系統(tǒng)中,雖包含電子標簽、讀寫器、服務(wù)器三個實體,但只有電子標簽在計算能力和存儲方面受到嚴重制約,因此這里僅選擇電子標簽作為性能對比分析對象,具體見表2。
表2 不同算法間性能對比
對于表2里面部分符號給出下面的解釋:約定所有算法中消息長度都為L。T1表示按位運算(比如異或運算、與運算、連接運算等)的計算時間,T2表示偽隨機發(fā)生器運算的計算時間,T3表示哈希函數(shù)運算的計算時間(不同形式的哈希函數(shù)計算時間可能存在差別,這里統(tǒng)一看成相同的計算時間),T4表示可基于按位運算實現(xiàn)的超輕量級的運算計算時間,T5表示物理不可克隆函數(shù)的計算時間,T6表示模運算的計算時間。
在上述涉及到的運算中,T1和T4的計算時間最短,可稱之為超輕量級的計算;T3、T5、T6的計算時間最長;T2的計算時間介于上述兩者之間。各運算的運算時間可大致按照如下方式由小到大進行排序:T1 存儲量的由來:電子標簽一端存放的數(shù)據(jù)有IDT、K,根據(jù)上述約定,可得知存儲量為2L。 通信量的由來:一個DB、R、T三者間完整通信包含的消息有,A消息2次、B消息1次、C消息1次、D消息1次、E消息2次、F消息1次、G消息1次、H消息1次、Hello指令1次,其中Hello指令消息僅需要1 bit來存放即可,故一個完整會話過程中的通信量為10L+1 bit。 電子標簽一端計算量的由來:在計算消息A時第一次用到按位異或運算,在計算消息B、C、G'、H'時分別依次第一次、第二次、第三次、第四次用到偽隨機數(shù)發(fā)生器運算,在計算隨機數(shù)y''時第二次用到按位異或運算。因此,電子標簽一端總的計算時間為2T1+4T2。 通過表2綜合分析可得知,在通信量和存儲量方面文中算法與其他算法大致相當;在計算量方面,文中算法比文獻[14]中算法計算量要大,比其他文獻中算法計算量都要小。但文獻[14]中算法存在一定的安全缺陷,文中算法可以彌補其算法不足。綜合安全性和性能兩方面分析,文中算法在計算量角度存在一定的優(yōu)勢,同時安全方面可彌補其他算法存在的安全隱患問題,使得文中算法具有推廣使用價值。 (1)形式化模型。 Msg1:R→T:Hello Msg2:T→R:A,B,C Msg3:R→DB:A,D Msg4:DB→R:E,F,G Msg5:R→T:E,H (2)初始化假設(shè)。 讀卡器R所擁有的: 電子標簽T所擁有的: A3:TK 后臺服務(wù)器DB所擁有的: 讀寫器R對擁有信息新鮮性的相信: A8:R|≡#(x) A9:R|≡#(y) 電子標簽T對擁有信息新鮮性的相信: A10:T|≡#(x) A11:T|≡#(y) 后臺服務(wù)器DB對擁有信息新鮮性的相信: A12:DB|≡#(x) A13:DB|≡#(y) 后臺服務(wù)器DB與電子標簽T間彼此相信共享信息: 電子標簽T與后臺服務(wù)器DB間彼此相信共享信息: 讀寫器R與后臺服務(wù)器DB間彼此相信共享信息: 后臺服務(wù)器DB與讀寫器R間彼此相信共享信息: 電子標簽T與讀寫器R間彼此相信共享信息: 讀寫器R與電子標簽T間彼此相信共享信息: (3)證明目標。 G1:T|≡R|~#(E) G2:T|≡R|~#(H) G3:R|≡T|~#(A) G4:R|≡T|~#(B) G5:R|≡T|~#(C) G6:DB|≡R|~#(A) G7:DB|≡R|~#(D) G8:R|≡DB|~#(E) G9:R|≡DB|~#(F) G10:R|≡DB|~#(G) (4)推理證明。 因為上面十個需要證明的目標證明過程大致相同,同時加上篇幅有限等因素,文中這里僅選擇證明目標G1為例進行推導(dǎo)證明,具體證明推導(dǎo)過程如下: 在Msg5中,R?*x,即Rx,同時結(jié)合初始化假設(shè)A3、A4和規(guī)則P2可得知:T(x,IDT)。 接著,由已推導(dǎo)出的T|≡#(x,IDT)、T(x,IDT),再根據(jù)新鮮性規(guī)則可得知:T|≡#(E)。 由新鮮性的定義可推導(dǎo)出證明目標G1:T|≡R|~#(E)。 文中介紹了經(jīng)典的RFID系統(tǒng)的優(yōu)缺點,提出一個適用于移動RFID系統(tǒng)的雙向認證算法。該算法不僅可使用在經(jīng)典的RFID系統(tǒng)中,同時也可適用于移動RFID系統(tǒng)中,具備更為廣泛的使用推廣范圍;算法采用偽隨機數(shù)發(fā)生器對發(fā)送隱私信息進行加密,能夠確保信息安全性,同時隨機數(shù)數(shù)發(fā)生器的使用,可在一定程度上減少系統(tǒng)整體計算量。從不同類型攻擊方式對算法進行安全性分析,表明算法能夠提供抵抗常見類型攻擊方式安全需求;同時從計算量、通信量角度對算法進行性能分析,表明算法具有較低的計算開銷。4 邏輯化形式證明
5 結(jié)束語