史志才,王益涵,張曉梅,陳計(jì)偉,陳珊珊
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
隨著物聯(lián)網(wǎng)的普及與應(yīng)用,作為重要感知手段的無線射頻識(shí)別(Radio Frequency Identification,RFID)技術(shù)得到了人們普遍關(guān)注,并廣泛應(yīng)用于金融、交通運(yùn)輸、健康醫(yī)療、物流等領(lǐng)域[1-3]。然而,因RFID標(biāo)簽具有結(jié)構(gòu)簡單、計(jì)算存儲(chǔ)資源有限、使用開放的無線通信方式等特點(diǎn),使得解決RFID系統(tǒng)的隱私保護(hù)和安全問題存在很大難度。而且,目前處于主流的被動(dòng)式標(biāo)簽通常僅能存儲(chǔ)數(shù)百個(gè)存儲(chǔ)位,擁有5 000個(gè)~10 000個(gè)等效邏輯門(其中僅有250個(gè)~3 000個(gè)等效邏輯門用于安全用途),難以支持高強(qiáng)度、復(fù)雜的加密操作。在這種資源受限的特殊條件下,安全、高效、低資源消耗的RFID安全和隱私保護(hù)方法的研究成為一個(gè)具有挑戰(zhàn)性的新課題。特別是在許多應(yīng)用場合下,常用多個(gè)標(biāo)簽來標(biāo)識(shí)同一個(gè)物體,因而需要給出多個(gè)標(biāo)簽同時(shí)存在的證明,如文獻(xiàn)[4]提出用2個(gè)標(biāo)簽分別標(biāo)識(shí)藥品和說明書,并給出2個(gè)標(biāo)簽同時(shí)存在的證明協(xié)議。針對同時(shí)存在許多其他應(yīng)用多標(biāo)簽標(biāo)識(shí)同一物體的場合,研究者陸續(xù)提出了一些組證明協(xié)議[5-7],但均存在隱私泄露[8-10]、缺少前向安全性[11-12]等缺陷。
本文在不可信閱讀器存在的情況下,采用哈希函數(shù)、隨機(jī)數(shù)產(chǎn)生函數(shù)以及簡單位運(yùn)算,提出一種實(shí)用、安全的輕權(quán)組證明協(xié)議。該協(xié)議采用哈希操作、密鑰的隨機(jī)化和及時(shí)更新以保證協(xié)議的隱私和前向安全性,并運(yùn)用激活-休眠機(jī)理和過濾-響應(yīng)機(jī)制以及身份認(rèn)證以保證協(xié)議的效率,通過廣播信道的點(diǎn)到點(diǎn)通信降低標(biāo)簽端的計(jì)算負(fù)荷。
RFID系統(tǒng)一般包括射頻標(biāo)簽、讀寫器和后端服務(wù)器3個(gè)部分,RFID系統(tǒng)組成如圖1所示[13-14],其中t表示標(biāo)簽。標(biāo)簽是一塊具有天線和少量存儲(chǔ)計(jì)算資源的硅片,其中存儲(chǔ)有該芯片的唯一標(biāo)志碼;目前采用較多的為被動(dòng)標(biāo)簽,這種標(biāo)簽是一種無源標(biāo)簽,它內(nèi)部沒有供電電源,需要通過讀寫器發(fā)射的射頻信號(hào)感應(yīng)出供電電壓,因而只能在較小的范圍內(nèi)進(jìn)行通信。讀寫器是一個(gè)以射頻信號(hào)形式發(fā)送和接收信息的設(shè)備,它對標(biāo)簽中存儲(chǔ)的信息進(jìn)行讀寫,以有線或者無線的方式與后端服務(wù)器進(jìn)行信息交換。后端服務(wù)器也稱為驗(yàn)證器(Verifier),它存儲(chǔ)與標(biāo)簽相關(guān)的大量信息,負(fù)責(zé)完成認(rèn)證、數(shù)據(jù)處理和顯示等復(fù)雜工作。
圖1 RFID系統(tǒng)組成Fig.1 RFID system composition
在很多情況下,標(biāo)簽常被分成多個(gè)組,每個(gè)組用來標(biāo)識(shí)一個(gè)物體。一個(gè)組證明是指給出一個(gè)組內(nèi)的多個(gè)標(biāo)簽同時(shí)存在證據(jù)的過程。按照驗(yàn)證器在組證明過程中的角色,組證明協(xié)議分成2種:在線協(xié)議和離線協(xié)議。在線協(xié)議要求驗(yàn)證器一直參與協(xié)議的運(yùn)行過程,而離線協(xié)議僅要求驗(yàn)證器參與協(xié)議的某些工作,如證據(jù)的驗(yàn)證。顯然,離線組證明協(xié)議的效率較高,因此,當(dāng)前的許多組證明協(xié)議均采用離線形式。從另一個(gè)角度來看,組證明可分成串行模式和并行模式。在串行模式下,各個(gè)標(biāo)簽依次通過順序簽名完成組證據(jù)的收集;而在并行模式下,各個(gè)標(biāo)簽同時(shí)對帶有各個(gè)標(biāo)簽標(biāo)識(shí)的消息進(jìn)行簽名,進(jìn)而完成組證據(jù)的收集。顯然,在并行模式下的組證明效率較高。
目前RFID系統(tǒng)中使用的標(biāo)簽一般為被動(dòng)標(biāo)簽,其計(jì)算和存儲(chǔ)資源有限,難以實(shí)現(xiàn)復(fù)雜的密碼學(xué)運(yùn)算,故假設(shè)標(biāo)簽與閱讀器間的通信是不安全的;而閱讀器與驗(yàn)證器因具有充足的計(jì)算存儲(chǔ)資源來完成各種復(fù)雜的加密操作,故假設(shè)它們之間的通信是安全的。而且假設(shè)驗(yàn)證器是唯一可以信任的安全實(shí)體,而閱讀器和標(biāo)簽是一些潛在的不可信實(shí)體。在考慮RFID系統(tǒng)的安全性時(shí),常引入另外一個(gè)實(shí)體:敵手,它是一個(gè)多項(xiàng)式時(shí)間算法,能夠竊聽、截獲、篡改、偽造和重放標(biāo)簽與閱讀器間的所有會(huì)話,其攻擊目標(biāo)是偽造一個(gè)組證明并能通過驗(yàn)證器的驗(yàn)證,或者獲得系統(tǒng)的密鑰、身份標(biāo)識(shí)等隱私信息。對于一個(gè)RFID系統(tǒng),要求它能夠確保匿名性、保密性和前向安全性,并能夠抵御信息泄露、竊聽、跟蹤、重放和去同步等攻擊。
如上文所述,組證明模式下的RFID系統(tǒng)包括驗(yàn)證器、閱讀器、標(biāo)簽和敵手4類實(shí)體,假設(shè)有一個(gè)驗(yàn)證器、一個(gè)閱讀器和多個(gè)標(biāo)簽,所有標(biāo)簽可能是一個(gè)組,也可能組成多個(gè)組,當(dāng)存在多個(gè)組時(shí),由驗(yàn)證器根據(jù)感知情況決定查詢組別。
本文基于哈希操作、隨機(jī)數(shù)生成和簡單位運(yùn)算,提出一個(gè)運(yùn)行于并行模式的離線組證明協(xié)議。該協(xié)議通過閱讀器與各個(gè)標(biāo)簽的交互形成組證據(jù),然后提交給驗(yàn)證器驗(yàn)證。
本文協(xié)議的設(shè)計(jì)采用隨機(jī)化標(biāo)簽發(fā)出的消息以抵抗跟蹤和重放攻擊,利用哈希秘密信息確保隱私性,通過更新密鑰來確保前向安全性,運(yùn)用激活-休眠機(jī)理來保證協(xié)議效率。此外,借鑒以太網(wǎng)協(xié)議的原理,實(shí)現(xiàn)無線廣播信道上閱讀器與標(biāo)簽間的點(diǎn)到點(diǎn)通信,有效降低標(biāo)簽端的計(jì)算負(fù)荷,通過驗(yàn)證器對標(biāo)簽的認(rèn)證以避免驗(yàn)證無效的組證據(jù)。
表1 認(rèn)證協(xié)議中的符號(hào)及含義Table 1 Symbols and meanings in the authentication protocol
協(xié)議的工作過程如下:
1)閱讀器發(fā)送消息“hello”激活附近的標(biāo)簽,啟動(dòng)一次組證明過程。
2)被激活的各個(gè)標(biāo)簽隨機(jī)化其組標(biāo)識(shí),產(chǎn)生響應(yīng)消息,經(jīng)過閱讀器發(fā)送給驗(yàn)證器。
3)驗(yàn)證器分析是否存在多個(gè)組;若存在多個(gè)組,則選擇一個(gè)組,產(chǎn)生組查詢消息,通過閱讀器發(fā)送給標(biāo)簽,同時(shí)啟動(dòng)時(shí)間戳。
4)待查詢組中的標(biāo)簽保持激活狀態(tài),其他標(biāo)簽進(jìn)入休眠狀態(tài)。
5)閱讀器與標(biāo)簽交互,產(chǎn)生組證據(jù),并發(fā)送給驗(yàn)證器。
6)驗(yàn)證器首先確定是否超時(shí),若沒有超時(shí)則認(rèn)證組證據(jù)包含的所有標(biāo)簽;若所有標(biāo)簽均通過認(rèn)證,則驗(yàn)證組證據(jù)的正確性。
7)驗(yàn)證器首先更新秘密信息,然后通知標(biāo)簽更新秘密信息。
組證明過程如圖2所示。
圖2 協(xié)議的組證明過程Fig.2 Group proof process of the protocol
組證明具體描述如下:
1)閱讀器發(fā)送消息“hello”,激活附近的所有標(biāo)簽。
2)被激活的標(biāo)簽分別產(chǎn)生隨機(jī)數(shù)rj=prng()和消息gmj=hash(gid⊕rj),其中g(shù)id為標(biāo)簽的組標(biāo)識(shí)。標(biāo)簽發(fā)送消息gmj‖rj給閱讀器。
3)閱讀器將接收的所有消息{gmj‖rj}發(fā)送給驗(yàn)證器。
4)驗(yàn)證器根據(jù)所接收到的消息{gmj‖rj}確定一個(gè)待查詢的組,假設(shè)該組由組標(biāo)識(shí)gid來標(biāo)識(shí);驗(yàn)證器啟動(dòng)時(shí)間戳t,生成隨機(jī)數(shù)rv=prng(t)和消息m1=hash(gid⊕rv);發(fā)送m1‖rv給閱讀器。
5)閱讀器廣播m1‖rv給附近所有標(biāo)簽。
6)標(biāo)簽接收到m1‖rv后,它使用自己的gid生成tm1=hash(gid⊕rv),并與接收到的m1進(jìn)行比較;若相同,則保持激活/活躍狀態(tài);否則變?yōu)樾菝郀顟B(tài)。以后僅處于激活狀態(tài)的標(biāo)簽(稱為活躍標(biāo)簽)響應(yīng)閱讀器的請求。該方法稱為激活-休眠機(jī)理,可以有效避免無效標(biāo)簽的參與,提高協(xié)議的效率。
7)對于活躍標(biāo)簽j,它首先生成一個(gè)偽隨機(jī)數(shù)rtj=prng(rv⊕tkj),然后使用它的tkj和tidj分別生成m2j=hash(tkj⊕rtj)和m3j=hash(tidj⊕rtj),發(fā)送m2j‖m3j‖rtj閱讀器。
8)閱讀器接收所有活躍標(biāo)簽的消息后,計(jì)算mp=hash(m21⊕m22⊕…⊕m2k)并廣播給所有活躍標(biāo)簽,k是活躍標(biāo)簽的個(gè)數(shù)。
9)每個(gè)活躍標(biāo)簽接收mp后,用它的密鑰tkj對mp進(jìn)行簽名,即tpj=hash(tkj⊕mp),并發(fā)送tpj給閱讀器。
10)閱讀器接收所有tpj,計(jì)算p=hash(tp1⊕tp2⊕…⊕tpk);然后生成組證據(jù)gp=(rt1,m21,m31,rt2,m22,m32,…,rtk,m2k,m3k,mp,p),并發(fā)送gp給驗(yàn)證器。
12)驗(yàn)證器判斷組證據(jù)的正確性,即根據(jù)gp中的部分消息以及本端存儲(chǔ)的各個(gè)標(biāo)簽的密鑰和標(biāo)識(shí)信息分別計(jì)算mp和p,并分別與接收的值進(jìn)行比較,若相同則證明成功,說明該組的標(biāo)簽?zāi)壳巴瑫r(shí)存在;然后進(jìn)行下一步,否則證據(jù)無效,協(xié)議退出。
然后驗(yàn)證器廣播m4j‖rtj給所有標(biāo)簽。rtj由標(biāo)簽j生成,可以用來標(biāo)識(shí)該標(biāo)簽,相當(dāng)于該標(biāo)簽的MAC地址,說明消息m4j‖rtj只發(fā)送給標(biāo)簽j。
14)每個(gè)標(biāo)簽接收到m4j‖rtj后,它比較本身的rtj和接收的rtj:若兩者不等,則標(biāo)簽丟掉該消息,不做任何處理;若兩者相等,標(biāo)簽則響應(yīng)消息,計(jì)算tm4=hash(tkj⊕tidj⊕rv⊕rtj),并與接收的m4j進(jìn)行比較:若兩者相同,則標(biāo)簽更新密鑰等信息,即令tkj=prng(tkj⊕rv⊕rtj),tidj=prng(tidj⊕rv⊕rtj)。協(xié)議執(zhí)行完畢。
對于所提出的組證明協(xié)議,假設(shè)閱讀器是不可信的,它可以偽裝成一個(gè)合法的閱讀器與驗(yàn)證器及標(biāo)簽進(jìn)行通信,可以截獲閱讀器和標(biāo)簽間的每個(gè)會(huì)話和消息。其中,消息gmj、m1、m2j、m3j、m4j和tpj包括了系統(tǒng)的密鑰、標(biāo)識(shí)等秘密信息(如gid、tkj、tidj)。由定義1可知,敵手從任何一個(gè)消息中猜測出秘密信息的概率是σ,而且σ≤2-d。當(dāng)d≥32時(shí),有σ≤2-32。顯然σ可以忽略,則認(rèn)為組證明協(xié)議是隱私安全的。
Pr[tidi=tidj]=2-1+ε
其中,ε為敵手同時(shí)猜測出tidi和tidj的概率。根據(jù)定義1,ε≤2-d×2-d,若d=32,有σ≤2-64。由定義3,有σ=2Pr[tidi=tidj]-1=2ε≤2-63。所以,σ是可以忽略的,組證明協(xié)議具有不可區(qū)分安全性。
顯然σ1和σ2均是可以忽略的,因此,提出的組證明協(xié)議具有前向安全性。
此外,協(xié)議通過保存前后2次證明過程的秘密有效抵抗了因秘密更新不同步而引起的去同步攻擊。協(xié)議每次開始均由驗(yàn)證器和標(biāo)簽分別產(chǎn)生隨機(jī)數(shù)去隨機(jī)化會(huì)話消息,以抵御重放攻擊。所有包含標(biāo)識(shí)信息的消息均經(jīng)過哈希函數(shù)的處理,標(biāo)識(shí)信息沒有采用明文形式進(jìn)行傳輸,使得協(xié)議具有匿名性,有效抵御了竊聽攻擊,很好地保護(hù)了系統(tǒng)的隱私信息。
為減少碰撞和降低標(biāo)簽的計(jì)算負(fù)荷,協(xié)議采用了激活-休眠機(jī)理,使得只有處于目標(biāo)組中的標(biāo)簽才參與組證明過程;此外,閱讀器到標(biāo)簽間點(diǎn)對點(diǎn)的通信過程中借鑒了以太網(wǎng)協(xié)議,采用過濾-響應(yīng)機(jī)制,標(biāo)簽對來自閱讀器的請求進(jìn)行過濾,只有目的標(biāo)簽才響應(yīng)閱讀器的請求,從而在共享的無線信道上實(shí)現(xiàn)閱讀器和標(biāo)簽間點(diǎn)對點(diǎn)的通信,減少了標(biāo)簽碰撞。而且在驗(yàn)證組證據(jù)前,先對標(biāo)簽進(jìn)行認(rèn)證,有效避免了驗(yàn)證一些無效的證據(jù),從而提高了協(xié)議的證明效率。
1)激活-休眠機(jī)理。對于所提出的組證明協(xié)議,允許同時(shí)存在多組標(biāo)簽,每個(gè)標(biāo)簽組由組標(biāo)識(shí)符gid唯一地標(biāo)識(shí)。當(dāng)組證明開始時(shí),各個(gè)標(biāo)簽響應(yīng)來自閱讀器的“hello”消息,然后將自己經(jīng)過隨機(jī)化的組標(biāo)識(shí)信息通過閱讀器發(fā)送給驗(yàn)證器。驗(yàn)證器識(shí)別目前存在的組,并從中選擇一個(gè)查詢組,將其隨機(jī)化的組標(biāo)識(shí)信息通過閱讀器廣播給所有標(biāo)簽;各標(biāo)簽接收到消息后判斷是否為被查詢對象,若不是則進(jìn)入休眠狀態(tài),暫時(shí)不再響應(yīng)閱讀器的查詢,這樣大幅度減少了標(biāo)簽碰撞的概率,提高了協(xié)議的效率。
2)過濾-響應(yīng)機(jī)制。協(xié)議中的閱讀器與標(biāo)簽間有兩種通信方式:廣播和點(diǎn)對點(diǎn)。以往的組證明協(xié)議對這2種方式?jīng)]有加以區(qū)分,導(dǎo)致一些標(biāo)簽承擔(dān)了不必要的計(jì)算量。閱讀器與標(biāo)簽間的信道為無線共享信道,適合廣播通信方式。當(dāng)進(jìn)行點(diǎn)對點(diǎn)通信時(shí),閱讀器采用廣播信道發(fā)送消息給某個(gè)標(biāo)簽,借鑒以太網(wǎng)的數(shù)據(jù)鏈路層協(xié)議,采用標(biāo)簽產(chǎn)生的偽隨機(jī)數(shù)(rtj)作為標(biāo)簽的MAC地址;驗(yàn)證器經(jīng)廣播信道發(fā)送消息(m4j‖rtj),所有標(biāo)簽均接收該消息,但僅擁有rtj的標(biāo)簽j對其進(jìn)行響應(yīng),從而實(shí)現(xiàn)了無線廣播信道上的點(diǎn)對點(diǎn)通信;其他標(biāo)簽因不響應(yīng)消息而免除了許多不必要的計(jì)算消耗。
3)先認(rèn)證后證明。目前許多組證明協(xié)議并沒有實(shí)現(xiàn)對標(biāo)簽的認(rèn)證功能,導(dǎo)致非法標(biāo)簽可以偽造有效證據(jù)。本協(xié)議首先根據(jù)收集的組證據(jù)對標(biāo)簽進(jìn)行認(rèn)證,只有參與組證明的標(biāo)簽均通過認(rèn)證,才去判斷組證據(jù)的有效性。一旦發(fā)現(xiàn)有非法標(biāo)簽,則協(xié)議將不再繼續(xù)執(zhí)行,從而使協(xié)議可以及時(shí)發(fā)現(xiàn)無效的組證明過程,提高協(xié)議的效率。
本文提出的組證明協(xié)議與一些典型的組證明協(xié)議的比較如表2所示,其中,√表示有,×表示無。
表2 本文協(xié)議與典型組證明協(xié)議的對比Table 2 Comparison of group proof protocols with different typical group proof protocols herein
為解決組證明協(xié)議存在的隱私泄露、缺少前向安全性等問題,本文在分析現(xiàn)有組證明協(xié)議安全問題的基礎(chǔ)上,提出一個(gè)具有隱私保護(hù)和前向安全性的組證明協(xié)議,其為并行模式下的離線組證明協(xié)議,采用激活-休眠機(jī)制和過濾-響應(yīng)機(jī)制降低標(biāo)簽的碰撞概率以及標(biāo)簽端的計(jì)算負(fù)荷,并結(jié)合認(rèn)證技術(shù)防止無效組證據(jù)的驗(yàn)證。分析結(jié)果證明,該協(xié)議具有隱私性和前向安全性,能夠抵抗竊聽、跟蹤、重放、去同步等攻擊。本文協(xié)議僅使用哈希函數(shù)、偽隨機(jī)數(shù)生成函數(shù)和位運(yùn)算等操作,即可滿足計(jì)算存儲(chǔ)資源受限環(huán)境下組證明的需求。