陳明忠
(汕頭職業(yè)技術(shù)學(xué)院機電工程系,廣東 汕頭 515078)
RFID(radio frequency identification)技術(shù)是一種先進的自動識別技術(shù),附著在防偽對象中的RFID標簽具有揭下自毀功能,有效防止復(fù)制盜用.而UHF(超高頻)射頻識別技術(shù)是當前RFID發(fā)展的前沿,它具有讀寫距離遠,標簽成本低,讀取速度快等優(yōu)點,已經(jīng)被應(yīng)用到包括物流管理、交通運輸[1]等各個方面.
一套典型的RFID系統(tǒng)由電子標簽、讀寫器、上位機和遠程服務(wù)器組成.如圖1所示:
圖1 RFID系統(tǒng)的組成
當帶有RFID標簽的物品經(jīng)過RFID讀寫器時,讀寫器激活標簽并通過無線電波將標簽中攜帶的信息傳送到讀寫器中,讀寫器通過串口將信息傳送到上位機,上位機通過網(wǎng)線將信息傳送到遠程服務(wù)器的數(shù)據(jù)庫中,以完成信息的自動采集工作[2-3].標簽與讀寫器之間采用無線電波作介質(zhì),為不安全信道;讀寫器與遠程服務(wù)器的數(shù)據(jù)庫之間采用物理連接,為安全信道.
在不安全信道中,數(shù)據(jù)傳輸容易遭受惡意攻擊,如非法讀取、竊聽、假冒、位置跟蹤等,導(dǎo)致隱私信息泄露,從而影響了RFID系統(tǒng)的廣泛應(yīng)用[4].針對上述問題,本文在分析現(xiàn)有RFID認證協(xié)議的基礎(chǔ)上,研究并設(shè)計了一種低成本、安全、高效的雙向認證協(xié)議,確保標簽與讀寫器間數(shù)據(jù)傳輸?shù)陌踩?
目前,國內(nèi)外學(xué)者已提出多種基于密碼學(xué)的RFID認證協(xié)議,其中最具代表性的有Hash-Lock協(xié)議、隨機Hash-Lock協(xié)議[5],但在安全性上都存在一定的問題.
初始狀態(tài)下,每一個標簽內(nèi)存儲有自身ID、密鑰K和Hash函數(shù),ID和密鑰都由芯片廠商寫入,具有唯一性.兩者區(qū)別是:ID可以讀出,易被復(fù)制,但密鑰不可讀出.后臺數(shù)據(jù)庫存儲所有標簽的ID、K和metaID,其中metaID=Hash(K),如圖2所示.
圖2 Hash-Lock協(xié)議示意圖
當標簽收到Query后,就根據(jù)自己的K值計算metaID=Hash(K),并把metaID依次傳回讀寫器和數(shù)據(jù)庫.當數(shù)據(jù)庫找到metaID所對應(yīng)的Ki值,就將Ki值依次發(fā)給讀寫器和標簽,標簽將Ki值和自己的K比對,若相等,則認證成功.
在Hash-Lock協(xié)議中,使用metaID代替ID來標識標簽,有效防止標簽信息被非法讀寫器讀取,但是K值在整個過程中以明文方式傳輸,無法防止攻擊者對標簽的位置追蹤和重放攻擊.
初始狀態(tài)下,每一個標簽內(nèi)存儲有自身ID、隨機數(shù)生成器和Hash函數(shù),后臺數(shù)據(jù)庫存儲所有標簽的ID[6],如圖3所示.
圖3 隨機Hash-Lock協(xié)議示意圖
當標簽收到Query后,就生成一個隨機數(shù)r,并計算H(r||ID),隨后將r、H(r||ID)傳回讀寫器和數(shù)據(jù)庫.數(shù)據(jù)庫遍歷每個標簽的ID,若存在H(r||IDi)=H(r||ID),則將IDi依次發(fā)給讀寫器和標簽,標簽將IDi和自己的ID比對,若相等,則認證成功.
在隨機的Hash-Lock協(xié)議中,由于標簽的每次應(yīng)答都有隨機數(shù)參與,并且進行加密,可以有效防止攻擊者的竊聽和位置[7]追蹤.但ID仍然以明文的方式在讀寫器和標簽中傳輸,無法防止攻擊者對標簽的重放攻擊.
上述兩種典型的RFID認證協(xié)議各具長處和短處,為揚長避短,本文有針對性地對兩種典型的認證協(xié)議進行改進,設(shè)計了一種新的基于Hash函數(shù)的RFID安全雙向認證協(xié)議,如圖4所示.
圖4 基于Hash函數(shù)的RFID雙向認證協(xié)議示意圖
初始狀態(tài)下,每一個標簽內(nèi)存儲有自身ID、密鑰K、隨機數(shù)生成器和Hash函數(shù),并處在鎖定讀取狀態(tài);后臺數(shù)據(jù)庫存儲所有標簽的ID和K值,以及Hash函數(shù).認證過程如下:
(1)讀寫器生成一個隨機數(shù)r1,并將r1和讀寫請求Query發(fā)送給標簽;
(2)標簽接收到Query和r1后,自己也生成一個隨機數(shù)r2,并計算H(r2⊕K),再將r2,H(r2⊕K)傳回讀寫器中;
(3)讀寫器將 r1,r2,H(r2⊕K)轉(zhuǎn)發(fā)給后臺數(shù)據(jù)庫;
(4)在后臺數(shù)據(jù)庫中,針對每個標簽的K值,循環(huán)計算每一個標簽的H(r2⊕Ki),若存在H(r2⊕Ki)=H(r2⊕K),表示被請求的標簽為有效標簽,則退出循環(huán),繼續(xù)計算H(r1⊕r2⊕Ki),并將H(r1⊕r2⊕Ki)發(fā)送給讀寫器;若不存在,則認證失敗;
(5)讀寫器將H(r1⊕r2⊕Ki)發(fā)送給標簽,標簽根據(jù)自己的密鑰K計算H(r1⊕r2⊕K),若H(r1⊕r2⊕K)=H(r1⊕r2⊕Ki),則標簽認為讀寫器為有效讀寫器,于是去掉鎖定狀態(tài),進入應(yīng)答狀態(tài)等待讀寫器讀寫.
目前,對認證協(xié)議的安全性分析有兩種方法,一是形式化分析,采用BAN邏輯對認證協(xié)議進行形式化推理,確定預(yù)期目標,并對預(yù)期目標加以證明.二是非形式化分析,用自然語言分析認證協(xié)議是否存在各種安全隱患和缺陷[8].
用T表示標簽,R表示讀寫器,針對圖4的形式化推理如下.
(1)建立協(xié)議的初始假設(shè)
(2)建立協(xié)議的理想化模型
M1:R → T:Query,r1;
M2:T → R:H(r2⊕K),r2;
M5:R→T:H(r1⊕r2⊕Ki);
在M1中,信息為明文傳遞,不影響協(xié)議的安全性,可以去除;在M5中,Ki=K.采用BAN邏輯語言表示改進后的式子,得協(xié)議的理想化模型如下:
M2:R?H(r2,K);R收到由r2、K組成的,并經(jīng)Hash()函數(shù)加密過的信息;
M5:T?H(r1,r2,K);T 收到由 r1、r2、K 組成的,并經(jīng) Hash()函數(shù)加密過的信息.
(3)確定預(yù)期目標,并加以證明
下面針對攻擊者的一些常見的攻擊行為,對本文設(shè)計的雙向認證協(xié)議的安全性進行分析.
(1)防非法讀?。寒擱FID標簽與讀寫器雙向認證之后,RFID標簽才會取消鎖定狀態(tài),等待讀寫器讀寫.如果使用的標簽或讀寫器有一個是非法的,標簽中的信息就不會被讀寫器讀取.本協(xié)議有效防止標簽信息被非法讀取,避免了標簽信息泄露[9].
(2)防竊聽:在每次傳輸之前,作為標識標簽的密鑰K都要與隨機數(shù)異或后,再用Hash函數(shù)加密成為密文.在傳輸過程中攻擊者即使截獲這些密文,也不能破解其中的內(nèi)容.
(3)前向安全性:由于每次認證時都有隨機數(shù)參與,標簽和讀寫器每次的輸出值都是不同的.攻擊者即使截獲某一次會話的輸出值,也不能以之作為下一次認證的信息[10].本協(xié)議能有效保證前向安全性.
(4)防位置跟蹤:由于每次認證時都有隨機數(shù)參與,標簽每次的輸出值都是不同的,毫無規(guī)律可言.攻擊者即使截獲大量的輸出值,也不能區(qū)分不同標簽的特征,更不能推斷標簽的位置信息[11].本協(xié)議能有效抵御位置跟蹤.
(5)防重放攻擊:由于每次認證時都有隨機數(shù)參與,標簽和讀寫器每次的輸出值都是不同的.攻擊者即使截獲某一次認證的輸出值,也不能通過重新發(fā)送該輸出值的方法來獲得下一次認證[12].本協(xié)議能夠防止重傳及假冒攻擊.
三種協(xié)議安全性能比較,見表1.
表1 三種協(xié)議安全性能比較
安全協(xié)議的設(shè)計,不僅要考慮RFID系統(tǒng)的安全問題,還要考慮RFID系統(tǒng)的計算量和存儲量問題.如果計算量和存儲量太大,那么勢必降低認證效率,增加RFID系統(tǒng)的成本[13].因為普通的RFID標簽的容量小、計算能力低,所以選取的安全協(xié)議必須滿足較好的時空性能.
(1)協(xié)議的時間性能
協(xié)議的時間性能是指一個協(xié)議單次成功認證時,RFID系統(tǒng)各部件(如電子標簽、讀寫器和數(shù)據(jù)庫)各自花費的時間,它決定著RFID系統(tǒng)的計算量[14].
假設(shè)RFID系統(tǒng)有n個標簽,定義TH為一次Hash函數(shù)運算時間,TXOR為一次異或運算時間,TR為產(chǎn)生一個隨機數(shù)時間.下面統(tǒng)計圖4新設(shè)計協(xié)議的時間性能.
①RFID標簽:產(chǎn)生一個隨機數(shù),開展2次Hash函數(shù)運算,3次異或運算,因此RFID標簽的時間性能為:2TH+3TXOR+TR.
②讀寫器:只產(chǎn)生一個隨機數(shù),因此讀寫器的時間性能為:TR.
③后臺數(shù)據(jù)庫:假設(shè)遍歷數(shù)據(jù)庫中最后一個K值即Kn,才存在H(r2⊕Kn)=H(r2⊕K),此時開展n次Hash函數(shù)運算和n次異或運算.隨后,數(shù)據(jù)庫又開展1次Hash函數(shù)運算和2次異或運算,因此數(shù)據(jù)庫的時間性能為:(n+1)TH+(n+2)TXOR.
(2)協(xié)議的空間性能
所謂協(xié)議的空間性能,是指采用該協(xié)議之后,RFID系統(tǒng)各部件(如電子標簽、讀寫器和數(shù)據(jù)庫)各自存儲的標簽標識、標簽密鑰或讀寫器標識的長度[15].它決定著RFID系統(tǒng)的存儲量.
以一個任意長度的消息作為輸入,Hash函數(shù)的輸出值總是128位;電子標簽標識、密鑰,讀寫器標識的長度也為128位,因此可定義長度L=128位.下面統(tǒng)計圖4新設(shè)計協(xié)議的空間性能.
①RFID標簽:存儲自身ID、密鑰,空間性能為2L.
②讀寫器:只用來傳遞信息,空間性能為0.
③后臺數(shù)據(jù)庫:存儲n個標簽的ID、密鑰,空間性能為2nL.
三種協(xié)議的時空性能如表2所示.
表2 三種協(xié)議的時空性能比較
從表2中可以看出,本文設(shè)計的協(xié)議在計算量上雖然有所增加,但增加的倍數(shù)不多,沒有n數(shù)量級以上的增加.在存儲量上,與其它協(xié)議不相上下,甚至比Hash-Lock協(xié)議還小.因此,本文設(shè)計的協(xié)議的時空性能較好.
本文針對現(xiàn)有RFID認證協(xié)議所存在的漏洞與不足,設(shè)計一種改進的RFID雙向安全認證協(xié)議,該協(xié)議實現(xiàn)了RFID標簽和讀寫器之間雙向認證,具有防非法讀取、防竊聽、前向安全性、防位置跟蹤以及防重放攻擊等優(yōu)點,有效解決了現(xiàn)有協(xié)議的所有安全問題,該協(xié)議不僅具有較高的安全性,而且存儲容量小、運行效率高.廣泛應(yīng)用于大量電子標簽的場合.