陳明忠
(汕頭職業技術學院機電工程系,廣東 汕頭 515078)
RFID(radio frequency identification)技術是一種先進的自動識別技術,附著在防偽對象中的RFID標簽具有揭下自毀功能,有效防止復制盜用.而UHF(超高頻)射頻識別技術是當前RFID發展的前沿,它具有讀寫距離遠,標簽成本低,讀取速度快等優點,已經被應用到包括物流管理、交通運輸[1]等各個方面.
一套典型的RFID系統由電子標簽、讀寫器、上位機和遠程服務器組成.如圖1所示:

圖1 RFID系統的組成
當帶有RFID標簽的物品經過RFID讀寫器時,讀寫器激活標簽并通過無線電波將標簽中攜帶的信息傳送到讀寫器中,讀寫器通過串口將信息傳送到上位機,上位機通過網線將信息傳送到遠程服務器的數據庫中,以完成信息的自動采集工作[2-3].標簽與讀寫器之間采用無線電波作介質,為不安全信道;讀寫器與遠程服務器的數據庫之間采用物理連接,為安全信道.
在不安全信道中,數據傳輸容易遭受惡意攻擊,如非法讀取、竊聽、假冒、位置跟蹤等,導致隱私信息泄露,從而影響了RFID系統的廣泛應用[4].針對上述問題,本文在分析現有RFID認證協議的基礎上,研究并設計了一種低成本、安全、高效的雙向認證協議,確保標簽與讀寫器間數據傳輸的安全性.
目前,國內外學者已提出多種基于密碼學的RFID認證協議,其中最具代表性的有Hash-Lock協議、隨機Hash-Lock協議[5],但在安全性上都存在一定的問題.
初始狀態下,每一個標簽內存儲有自身ID、密鑰K和Hash函數,ID和密鑰都由芯片廠商寫入,具有唯一性.兩者區別是:ID可以讀出,易被復制,但密鑰不可讀出.后臺數據庫存儲所有標簽的ID、K和metaID,其中metaID=Hash(K),如圖2所示.

圖2 Hash-Lock協議示意圖
當標簽收到Query后,就根據自己的K值計算metaID=Hash(K),并把metaID依次傳回讀寫器和數據庫.當數據庫找到metaID所對應的Ki值,就將Ki值依次發給讀寫器和標簽,標簽將Ki值和自己的K比對,若相等,則認證成功.
在Hash-Lock協議中,使用metaID代替ID來標識標簽,有效防止標簽信息被非法讀寫器讀取,但是K值在整個過程中以明文方式傳輸,無法防止攻擊者對標簽的位置追蹤和重放攻擊.
初始狀態下,每一個標簽內存儲有自身ID、隨機數生成器和Hash函數,后臺數據庫存儲所有標簽的ID[6],如圖3所示.

圖3 隨機Hash-Lock協議示意圖
當標簽收到Query后,就生成一個隨機數r,并計算H(r||ID),隨后將r、H(r||ID)傳回讀寫器和數據庫.數據庫遍歷每個標簽的ID,若存在H(r||IDi)=H(r||ID),則將IDi依次發給讀寫器和標簽,標簽將IDi和自己的ID比對,若相等,則認證成功.
在隨機的Hash-Lock協議中,由于標簽的每次應答都有隨機數參與,并且進行加密,可以有效防止攻擊者的竊聽和位置[7]追蹤.但ID仍然以明文的方式在讀寫器和標簽中傳輸,無法防止攻擊者對標簽的重放攻擊.
上述兩種典型的RFID認證協議各具長處和短處,為揚長避短,本文有針對性地對兩種典型的認證協議進行改進,設計了一種新的基于Hash函數的RFID安全雙向認證協議,如圖4所示.

圖4 基于Hash函數的RFID雙向認證協議示意圖
初始狀態下,每一個標簽內存儲有自身ID、密鑰K、隨機數生成器和Hash函數,并處在鎖定讀取狀態;后臺數據庫存儲所有標簽的ID和K值,以及Hash函數.認證過程如下:
(1)讀寫器生成一個隨機數r1,并將r1和讀寫請求Query發送給標簽;
(2)標簽接收到Query和r1后,自己也生成一個隨機數r2,并計算H(r2⊕K),再將r2,H(r2⊕K)傳回讀寫器中;
(3)讀寫器將 r1,r2,H(r2⊕K)轉發給后臺數據庫;
(4)在后臺數據庫中,針對每個標簽的K值,循環計算每一個標簽的H(r2⊕Ki),若存在H(r2⊕Ki)=H(r2⊕K),表示被請求的標簽為有效標簽,則退出循環,繼續計算H(r1⊕r2⊕Ki),并將H(r1⊕r2⊕Ki)發送給讀寫器;若不存在,則認證失敗;
(5)讀寫器將H(r1⊕r2⊕Ki)發送給標簽,標簽根據自己的密鑰K計算H(r1⊕r2⊕K),若H(r1⊕r2⊕K)=H(r1⊕r2⊕Ki),則標簽認為讀寫器為有效讀寫器,于是去掉鎖定狀態,進入應答狀態等待讀寫器讀寫.
目前,對認證協議的安全性分析有兩種方法,一是形式化分析,采用BAN邏輯對認證協議進行形式化推理,確定預期目標,并對預期目標加以證明.二是非形式化分析,用自然語言分析認證協議是否存在各種安全隱患和缺陷[8].
用T表示標簽,R表示讀寫器,針對圖4的形式化推理如下.
(1)建立協議的初始假設

(2)建立協議的理想化模型
M1:R → T:Query,r1;
M2:T → R:H(r2⊕K),r2;
M5:R→T:H(r1⊕r2⊕Ki);
在M1中,信息為明文傳遞,不影響協議的安全性,可以去除;在M5中,Ki=K.采用BAN邏輯語言表示改進后的式子,得協議的理想化模型如下:
M2:R?H(r2,K);R收到由r2、K組成的,并經Hash()函數加密過的信息;
M5:T?H(r1,r2,K);T 收到由 r1、r2、K 組成的,并經 Hash()函數加密過的信息.
(3)確定預期目標,并加以證明


下面針對攻擊者的一些常見的攻擊行為,對本文設計的雙向認證協議的安全性進行分析.
(1)防非法讀取:當RFID標簽與讀寫器雙向認證之后,RFID標簽才會取消鎖定狀態,等待讀寫器讀寫.如果使用的標簽或讀寫器有一個是非法的,標簽中的信息就不會被讀寫器讀取.本協議有效防止標簽信息被非法讀取,避免了標簽信息泄露[9].
(2)防竊聽:在每次傳輸之前,作為標識標簽的密鑰K都要與隨機數異或后,再用Hash函數加密成為密文.在傳輸過程中攻擊者即使截獲這些密文,也不能破解其中的內容.
(3)前向安全性:由于每次認證時都有隨機數參與,標簽和讀寫器每次的輸出值都是不同的.攻擊者即使截獲某一次會話的輸出值,也不能以之作為下一次認證的信息[10].本協議能有效保證前向安全性.
(4)防位置跟蹤:由于每次認證時都有隨機數參與,標簽每次的輸出值都是不同的,毫無規律可言.攻擊者即使截獲大量的輸出值,也不能區分不同標簽的特征,更不能推斷標簽的位置信息[11].本協議能有效抵御位置跟蹤.
(5)防重放攻擊:由于每次認證時都有隨機數參與,標簽和讀寫器每次的輸出值都是不同的.攻擊者即使截獲某一次認證的輸出值,也不能通過重新發送該輸出值的方法來獲得下一次認證[12].本協議能夠防止重傳及假冒攻擊.
三種協議安全性能比較,見表1.

表1 三種協議安全性能比較
安全協議的設計,不僅要考慮RFID系統的安全問題,還要考慮RFID系統的計算量和存儲量問題.如果計算量和存儲量太大,那么勢必降低認證效率,增加RFID系統的成本[13].因為普通的RFID標簽的容量小、計算能力低,所以選取的安全協議必須滿足較好的時空性能.
(1)協議的時間性能
協議的時間性能是指一個協議單次成功認證時,RFID系統各部件(如電子標簽、讀寫器和數據庫)各自花費的時間,它決定著RFID系統的計算量[14].
假設RFID系統有n個標簽,定義TH為一次Hash函數運算時間,TXOR為一次異或運算時間,TR為產生一個隨機數時間.下面統計圖4新設計協議的時間性能.
①RFID標簽:產生一個隨機數,開展2次Hash函數運算,3次異或運算,因此RFID標簽的時間性能為:2TH+3TXOR+TR.
②讀寫器:只產生一個隨機數,因此讀寫器的時間性能為:TR.
③后臺數據庫:假設遍歷數據庫中最后一個K值即Kn,才存在H(r2⊕Kn)=H(r2⊕K),此時開展n次Hash函數運算和n次異或運算.隨后,數據庫又開展1次Hash函數運算和2次異或運算,因此數據庫的時間性能為:(n+1)TH+(n+2)TXOR.
(2)協議的空間性能
所謂協議的空間性能,是指采用該協議之后,RFID系統各部件(如電子標簽、讀寫器和數據庫)各自存儲的標簽標識、標簽密鑰或讀寫器標識的長度[15].它決定著RFID系統的存儲量.
以一個任意長度的消息作為輸入,Hash函數的輸出值總是128位;電子標簽標識、密鑰,讀寫器標識的長度也為128位,因此可定義長度L=128位.下面統計圖4新設計協議的空間性能.
①RFID標簽:存儲自身ID、密鑰,空間性能為2L.
②讀寫器:只用來傳遞信息,空間性能為0.
③后臺數據庫:存儲n個標簽的ID、密鑰,空間性能為2nL.
三種協議的時空性能如表2所示.

表2 三種協議的時空性能比較
從表2中可以看出,本文設計的協議在計算量上雖然有所增加,但增加的倍數不多,沒有n數量級以上的增加.在存儲量上,與其它協議不相上下,甚至比Hash-Lock協議還小.因此,本文設計的協議的時空性能較好.
本文針對現有RFID認證協議所存在的漏洞與不足,設計一種改進的RFID雙向安全認證協議,該協議實現了RFID標簽和讀寫器之間雙向認證,具有防非法讀取、防竊聽、前向安全性、防位置跟蹤以及防重放攻擊等優點,有效解決了現有協議的所有安全問題,該協議不僅具有較高的安全性,而且存儲容量小、運行效率高.廣泛應用于大量電子標簽的場合.