蔡蕓云,郁進(jìn)明
無線射頻識別(RFID),是一種利用射頻信號自動識別目標(biāo)對象并獲取相關(guān)信息的技術(shù)。它利用無線射頻信號通過空間耦合(交變磁場或電磁場),實現(xiàn)非接觸雙向數(shù)據(jù)通信,并通過所傳遞的信息達(dá)到識別目的。RFID系統(tǒng)包括3個關(guān)鍵部分:標(biāo)簽、閱讀器、后端數(shù)據(jù)庫。
每個標(biāo)簽包含一個唯一識別信息TID。閱讀器向標(biāo)簽請求 TID的信息,并發(fā)給后端數(shù)據(jù)庫。如果標(biāo)簽是有效的,后端數(shù)據(jù)庫將查詢產(chǎn)品信息。按照功耗來源分類,射頻標(biāo)簽可以分為:有源標(biāo)簽(Active tag)、半有源標(biāo)簽(Semi-passive tag)和無源標(biāo)簽(Passive tag)。
Auto-ID Center的研究人員,根據(jù)標(biāo)簽的功能將標(biāo)簽分為5類[1]。其中EPC Class-1 Gen-2協(xié)議[2],是EPCglobal標(biāo)準(zhǔn)組織在 2005年初提出的第二代對于超高頻 Class-1的RFID標(biāo)簽的標(biāo)準(zhǔn)。其有效閱讀范圍更大,所以它被廣泛認(rèn)為是RFID系統(tǒng)發(fā)展的主流。然而,Gen-2規(guī)范的缺點(diǎn)是,TID在傳輸過程中沒有任何保護(hù)。
先前的研究中陳述了RFID系統(tǒng)的幾個威脅:
竊聽:攻擊者可以監(jiān)聽整個無線通信過程,從而執(zhí)行加強(qiáng)的攻擊,如重放或者偽造攻擊。
信息隱私:這種攻擊主要竊聽個人習(xí)慣,例如最喜歡的書、閱讀習(xí)慣等。由于標(biāo)簽信息極易被泄漏,很多私人信息都很有可能通過RFID電子標(biāo)簽被泄露。
重放攻擊:根據(jù)竊聽到的閱讀器和標(biāo)簽間的數(shù)據(jù)通信,重復(fù)之前的通信行為從而獲取數(shù)據(jù)信息。
克隆:攻擊者可以閱讀標(biāo)簽然后將獲得的數(shù)據(jù)寫入空白標(biāo)簽中。
標(biāo)簽追蹤:通過RFID標(biāo)簽掃描,一句標(biāo)簽的特定輸出可對消費(fèi)者位置進(jìn)行跟蹤定位。
信息篡改:隨著RFID成為零售業(yè)的主流,為了方便起見,標(biāo)簽將會存儲一些附加信息,例如:日期、價格、產(chǎn)地等。然而,這樣也給攻擊者篡改信息帶來了方便。攻擊者可以修改價格,從中獲利。
拒絕服務(wù):人為的信號干擾是的合法閱讀器不能正常閱讀標(biāo)簽數(shù)據(jù)。
Gen2標(biāo)簽是一種被動標(biāo)簽,它從閱讀器獲得能量。成本上和資源上的限制使得G2標(biāo)簽不能進(jìn)行算法復(fù)雜的加密運(yùn)算,比如公鑰加密、對稱密鑰加密,甚至哈希運(yùn)算。G2標(biāo)簽只支持片上16位偽隨機(jī)數(shù)生成器、16循環(huán)冗余碼檢驗(CRC)、以及一些簡單的異或操作。因此,當(dāng)前許多針對RFID安全問題而提出的解決方案,并不能有效的運(yùn)用于G2標(biāo)簽。例如,Hash鎖、重加密等。EPC C1G2只提供了一種簡單的單向的安全認(rèn)證機(jī)制,但這種認(rèn)證機(jī)制,存在很深的安全隱患。
G2協(xié)議有一個嚴(yán)重的問題,標(biāo)簽的曝露會泄露用戶的隱私。曝露的標(biāo)簽很容易追蹤和克隆。我們的目標(biāo)是在保持簡單、低成本的同時,加強(qiáng)G2協(xié)議的安全性。
首先,為了更好的說明整個認(rèn)證過程,本文先對某些符號做出說明,如表1所示:
表1 對相關(guān)符號說明
針對EPC C1G2中的安全問題,EPCGlobal提出了一種簡單、基本、單向的安全認(rèn)證協(xié)議。
具體的認(rèn)證過程如下:
(1) 閱讀器產(chǎn)生一個請求命令ReqR,向標(biāo)簽發(fā)送請求信息;
(2) 標(biāo)簽通過反射回應(yīng)一個隨機(jī)數(shù)RT1;
(3) 閱讀器利用標(biāo)簽所給的RT1異或存取密碼的高16位APwdM,將加密的APwdM,即CCPwdM,發(fā)送給標(biāo)簽;
(4) 標(biāo)簽利用原來的隨機(jī)數(shù)RT1解密密文CCPwdM,判斷是否與APwdM相等;
(5) 閱讀器再產(chǎn)生一個請求命令ReqR,再次向標(biāo)簽發(fā)送請求信息;
(6) 標(biāo)簽再次通過反射回應(yīng)一個不同的隨機(jī)數(shù)RT2;
(7) 閱讀器利用所得到的標(biāo)簽,回應(yīng)的RT2異或存取密碼的低16位APwdL,并將加密的APwdL,即CCPwdL,發(fā)送給標(biāo)簽;
(8) 標(biāo)簽利用原來的隨機(jī)數(shù)RT2解密密文CCPwdL,判斷是否與APwdL相等;
(9) 如果(4)和(8)都相等,標(biāo)簽則認(rèn)為閱讀器是真的,繼續(xù)與之通信;否則,標(biāo)簽則結(jié)束與閱讀器之間的通信;
由上面的認(rèn)證過程可以看出,EPCGlobal提出的認(rèn)證過程是采用的一種單向的認(rèn)證方法,即只有標(biāo)簽對閱讀器的驗證過程,并沒用閱讀器對標(biāo)簽的驗證過程,存在很大安全隱患。
存在的缺陷分析[3-5]:
(1) 中間位置攻擊和讀取密碼暴露:由于標(biāo)簽發(fā)送兩次RTx都是處于開放和未加密的方式,惡意的閱讀器、未授權(quán)的閱讀器很容易竊聽到這些 RTx,通過執(zhí)行RTx⊕CCPwd便可以很容易得到APwd。暴露的APwd很容易使惡意的閱讀器非法讀取、修改和毀壞標(biāo)簽中的數(shù)據(jù)。
(2) 偽造標(biāo)簽:暴露的 APwd很容易使競爭對手偽造具有同樣APwd的假標(biāo)簽。
Konidala等人利用32為存取密碼和殺死密碼來設(shè)計一種安全認(rèn)證機(jī)制。他們的機(jī)制利用兩輪PadGen函數(shù)來對Pad進(jìn)行加密。第一輪對存取密碼加密,第二輪對殺死密碼加密。本文在 Konidala等人以及冷世偉等人所提出的認(rèn)證機(jī)制的基礎(chǔ)上,提出了進(jìn)一步改進(jìn)的算法:MKAP。其中,MPwd=APwd⊕KPwd。具體的PadGen函數(shù)將在后文給出。
PadGen函數(shù)用來產(chǎn)生Pads,具體的認(rèn)證過程,如圖1所示:
圖1 改進(jìn)后的相互認(rèn)證機(jī)制
(1) 閱讀器產(chǎn)生一個請求命令,發(fā)送請求信息到標(biāo)簽;
(2) 標(biāo)簽產(chǎn)生兩個隨機(jī)數(shù) RT1和 RT2,并計算 MPwd=APwd⊕KPwd,暫時存儲,同EPC一起反射回應(yīng)給閱讀器;
(3) 閱讀器將接受的EPC、RT1和RT2一起,轉(zhuǎn)發(fā)給服務(wù)器;
(4) 服務(wù)器根據(jù)EPC到后臺數(shù)據(jù)庫讀取標(biāo)簽的存取密碼APwd和殺死密碼 KPwd,同樣計算 MPwd=APwd⊕KPwd,并產(chǎn)生四個隨機(jī)數(shù) RM1,RM2,RM3和RM4,且利用RM1、RM2和RT1、RT2一起作為參數(shù),采用PadGen函數(shù)加密存取密碼的高16位APwdM和存取密碼的低16位APwdL,得到CCPwdM1和 CCPwdL1,同 EPC、RM1,RM2,RM3和 RM4一起發(fā)送給閱讀器;
(5) 閱讀器將得到的信息再次轉(zhuǎn)發(fā)給標(biāo)簽;
(6) 標(biāo)簽利用從閱讀器獲得的RM1,RM2,RM3、RM4,與自己保存的RT1、RT2,利用PadGen函數(shù),對CCPwdM1和 CCPwdL1解密,與自己保留存儲區(qū)中的存取密碼比較,如果一致,則表示閱讀器通過驗證,否則,停止通信;
(7) 標(biāo)簽產(chǎn)生另外兩個隨機(jī)數(shù)RT3和RT4,暫時存儲,并同從閱讀器接收到的隨機(jī)數(shù)RM3和 RM4一起,作為參數(shù),利用 PadGen函數(shù),對存取密碼的高 16位APwdM和低 16位 APwdL加密,得到 CCPwdM2和CCPwdL2,同EPC、RT3和RT4一起反射回應(yīng)給給閱讀器;
(8) 閱讀器將所接收到的信息轉(zhuǎn)發(fā)給服務(wù)器;
(9) 服務(wù)器利用所接收到的RT3和RT4,同自己產(chǎn)生保存的RM3和RM4一起,對CCPwdM2和CCPwdL2解密,與利用EPC在后臺數(shù)據(jù)庫查找到的存取密碼比較,如果一致,則表示標(biāo)簽通過驗證,否則停止通信;
PadGen函數(shù)是用來生產(chǎn)16位Pads,對兩個16位的高、低存取密碼(APwdM,APwdL)進(jìn)行加密。PadGen函數(shù)通過對保留存儲區(qū)中的存取密碼和殺死密碼隨即抽取相關(guān)位,連接成16位的Pads。
首先,用下面的方式來表示32位的存取密碼和殺死密碼(二進(jìn)制形式),公式(1)
服務(wù)器和標(biāo)簽分別產(chǎn)生的 16位隨機(jī)數(shù)RTx和RMx可以表示為(十六進(jìn)制形式),公式(2)
RTx和RMx的每一位數(shù),即d t1,d t1…,dm1,dm2,都用來表示存取密碼Apwd的某一位的位置,將這些位以某種規(guī)律連接起來,就可以得到16位的Pads。
針對APwd的第一輪PadGen操作,本文采取與冷世偉等人提出的方式,結(jié)合RTx和RMx,第一輪PadGen操作,可以按如下方式進(jìn)行(十六進(jìn)制形式),公式(3)
利 用 第 一 輪 PadGen運(yùn) 算 所 得 到 的dv1dv2dv3dv4對Kpwd進(jìn)行第二輪PadGen運(yùn)算。dv1dv2dv3dv4中的每一位數(shù),即dv1、dv2、dv3和dv4,都用來表示殺死密碼中某一位的位置,如下所示(16進(jìn)制形式),公式(4)
針對由APwd和KPwd異或得來的MPwd,本文在此加入第三輪PadGen函數(shù),按如下方式進(jìn)行(十六進(jìn)制形式),公式(5)
首先對Konidala等人提出機(jī)制的安全性能進(jìn)行分析:
(1)對存取密碼中低位的攻擊
攻擊過程如下所示:
假設(shè)攻擊者通過竊聽真的閱讀器和標(biāo)簽之間的一個驗證會話,攻擊者可以獲取得到一個有效的EPC,將這個標(biāo)簽作為攻擊的對象。通過獲取得到的EPC,攻擊者可以偽裝成真的標(biāo)簽對閱讀器采取主動攻擊。攻擊者可以給真的閱讀器發(fā)送信息:,其中隨機(jī)數(shù)RN滿足下列等式:RN=RRRRh,其中R為十六進(jìn)制,’可以等于也可以不等于。
則攻擊者可以通過計算下式來分別獲得存取密碼高十六位APwdM和低十六位APwdL中的8位,公式(6)
綜上所述,攻擊者可以分別以2-2的概率獲得存取密碼高十六位APwdM和低十六位APwdL中的8位。假設(shè)等于則在這種情況下,攻擊者可以進(jìn)一步以 2-2的概率獲得存取密碼中的16位,如公式(8)
(2)對存取密碼中高位的攻擊
采取如下的攻擊過程:
與(1)中分析相似,攻擊者可以竊聽真的標(biāo)簽所發(fā)送的信息,并改變信息中的內(nèi)容。攻擊者將獲取的標(biāo)簽信息中的隨機(jī)數(shù)都設(shè)置為 RN,然后轉(zhuǎn)發(fā)給閱讀器。其中,RN須滿足如下關(guān)系式:RN=RRRRh[十 六進(jìn)制]。
攻擊者成功破解存取密碼中 16位的概率可由下式表示:
Prob(成功破解APWDM[0...7]||APWDL[0...7])
通過上面分析可知,為了最大可能的破解存取密碼,攻擊者可以在{0x00,0x0F,0xF0,0xFF}中選擇。
結(jié)合對存取密碼低位的攻擊和對存取密碼高位的攻擊,攻擊者可以將破解存取密碼的概率從 1/232降為1/(16*4)=1/26。
為了便于與前面安全機(jī)制進(jìn)行比較,對本文所提安全機(jī)制采用相同的攻擊形式,經(jīng)過前面的分析,攻擊可以獲得16位存取密碼,ApwdL[0,1,4,5,8,9,12,13]和ApwdM[0,1,4,5,8,9,12,13]通過計算下式:
通過上式,可以發(fā)現(xiàn),每個 dv1dv2dv3dv4都是由 RTx和RMx共同決定的。在第一輪PadGen函數(shù)中,攻擊者可以設(shè)置RTx和RMx,但是并不能同時設(shè)置它們。也就是說,攻擊者無法獲得dv1dv2dv3dv4之間的任何相關(guān)信息。然后,進(jìn)行第二輪和第三輪PadGen函數(shù),攻擊者不能發(fā)現(xiàn)存取密碼這8位之間的任何關(guān)系。
因此,攻擊者要想獲得這8位存取密碼,必須進(jìn)行如下計算:
通過上式,可以發(fā)現(xiàn),攻擊獲取這8位存取密碼的概率位2-8。
同理, 攻擊者要想獲得另外8位存取密碼,必須進(jìn)行如下計算:
綜上所述,結(jié)合上面兩式,攻擊獲得全部存取密碼的概率為2-8*2-8=2-16,相比Konidala、冷世偉等人提出的安全機(jī)制,安全性能得到了很大的提升,如表2所示:
表2 安全性能的提升數(shù)據(jù)
從安全角度出發(fā),本文提出的新的認(rèn)證方案安全性比已有方案有了很大程度提高。各種方案的性能比較,如表3所示:
表1 本文方案與已有方案的安全性能比較
隨著RFID的廣泛使用,安全問題也越來越受到關(guān)注。本文在先前研究的基礎(chǔ)上改進(jìn)并提出了一種基于Gen2規(guī)范低成本的認(rèn)證協(xié)議:MKAP,并驗證了其安全性能較先前算法有了顯著的提升。
[1]Auto-ID Center,“Draft Protocol Specification for a Class 0 Radio Frequency Identification Tag”[M]February 2003.
[2]EPCglobal, Inc., [OL]http://www.epcglobalinc.org/,2005.
[3]Peris-Lopez, P. and Li, T. and Hernandez-Castro, J.C. and Tapiador, J.M.E., “Practical attacks on a mutual authentication scheme under the EPC Class-1 Generation-2 standard,”[G]Computer Communications, 2009
[4]Peris-Lopez, P. and Hernandez-Castro, J. and Tapiador, J.and Li, T. and van der Lubbe, J., “Weaknesses in two recent lightweight RFID authentication protocols,”[G]Information Security and Cryptology, 2011
[5]Sun, H.M. and Ting, W.C. and Wang, K.H., “On the security of Chien's ultralightweight RFID authentication protocol,”[C]IEEE Transactions on Dependable and Secure Computing, 2011