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