李 濤 劉亞麗
(江蘇師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 江蘇徐州 221116) (廣西密碼學(xué)與信息安全重點(diǎn)實(shí)驗(yàn)室(桂林電子科技大學(xué)) 廣西桂林 541004)
隨著物聯(lián)網(wǎng)技術(shù)的興起與發(fā)展,各種物聯(lián)網(wǎng)技術(shù)也逐漸廣泛地應(yīng)用到人們的日常生活中.無線射頻識(shí)別(radio frequency identification, RFID)作為物聯(lián)網(wǎng)中的關(guān)鍵技術(shù)之一,以其無需物理接觸的特點(diǎn),在無線通信應(yīng)用中發(fā)揮著獨(dú)特的優(yōu)勢(shì)[1].一個(gè)完整的RFID系統(tǒng)通常由標(biāo)簽、閱讀器、后端數(shù)據(jù)庫(kù)(或服務(wù)器)3個(gè)部分組成[2].標(biāo)簽通常嵌入在實(shí)體中并擁有唯一標(biāo)識(shí),當(dāng)標(biāo)簽進(jìn)入閱讀器的識(shí)別范圍時(shí),閱讀器與標(biāo)簽會(huì)通過安全協(xié)議驗(yàn)證對(duì)方身份的合法性,驗(yàn)證通過后,標(biāo)簽會(huì)將自身的數(shù)據(jù)發(fā)送給閱讀器交給后臺(tái)處理.通常來說閱讀器與后端數(shù)據(jù)庫(kù)的連接信道是安全的,而標(biāo)簽與閱讀器之間的無線信道是不安全的.攻擊者可能通過不安全信道發(fā)動(dòng)假冒、竊聽、去同步化等多種惡意攻擊[3].并且,標(biāo)簽的資源是受限的,其存儲(chǔ)能力和計(jì)算能力會(huì)受到一定的制約.RFID系統(tǒng)的安全隱私問題和代價(jià)效率問題是影響RFID技術(shù)發(fā)展的關(guān)鍵因素.設(shè)計(jì)一個(gè)輕量的、安全的方案是RFID安全認(rèn)證協(xié)議亟待解決的問題.
2002年,一種稱為物理不可克隆函數(shù)(physical uncloneable function, PUF)[4]的概念被提出,并得到越來越多學(xué)者的關(guān)注.物理不可克隆函數(shù)是一種密碼學(xué)原語(yǔ),它利用自身硬件物理結(jié)構(gòu)上的差異,能對(duì)不同的激勵(lì)產(chǎn)生不同的不可預(yù)測(cè)的響應(yīng)輸出.PUF技術(shù)的引入,確保了通信實(shí)體能夠抵抗攻擊者的物理攻擊和克隆攻擊,同時(shí)減少了實(shí)體的計(jì)算開銷[5].對(duì)于資源受限的認(rèn)證實(shí)體而言,這一技術(shù)的優(yōu)勢(shì)更加明顯.因此,PUF技術(shù)在物聯(lián)網(wǎng)安全領(lǐng)域中具有十分重要的研究?jī)r(jià)值與意義.
早期的基于PUF的RFID認(rèn)證協(xié)議使用的是一種簡(jiǎn)單的響應(yīng)匹配方法.Devadas等人[6]在其方案中提到,可信第三方事先與RFID標(biāo)簽的標(biāo)識(shí)符建立索引,并將大量激勵(lì)響應(yīng)對(duì)(challenge-response pair, CRP)存儲(chǔ)于數(shù)據(jù)庫(kù)中,在驗(yàn)證標(biāo)簽身份時(shí),與數(shù)據(jù)庫(kù)匹配對(duì)比.該方案認(rèn)證的過程十分簡(jiǎn)潔,RFID標(biāo)簽無需任何額外存儲(chǔ),且能防止中間人的篡改攻擊.但預(yù)存儲(chǔ)大量CRP于數(shù)據(jù)庫(kù)中將耗費(fèi)大量的時(shí)間,并且耗盡時(shí)需要重新補(bǔ)充激勵(lì)——響應(yīng)對(duì),這極大地影響了認(rèn)證的效率.Van Herrewege等人[7]提出了一種輕量級(jí)的基于PUF的雙向認(rèn)證方案,使用隨機(jī)數(shù)和Hash函數(shù)來混淆通信信息,但該方案明文來傳輸標(biāo)簽ID,這使得攻擊者很容易通過不安全信道竊取標(biāo)簽ID來偽裝身份獲取數(shù)據(jù),且該方案仍需要在數(shù)據(jù)庫(kù)中預(yù)存大量CRP.Aysu等人[8]設(shè)計(jì)了一個(gè)具有隱私性的雙向認(rèn)證協(xié)議,使用了靜態(tài)隨機(jī)存取存儲(chǔ)器(static random-access memory, SRAM)來實(shí)現(xiàn)PUF和真隨機(jī)數(shù)發(fā)生器(true random number generator, TRNG),同時(shí)協(xié)議中使用了密鑰的動(dòng)態(tài)更新機(jī)制,避免了傳統(tǒng)的預(yù)存CRP的方法,同時(shí)又確保了系統(tǒng)能夠抵抗去同步攻擊和追蹤攻擊.但該方案在認(rèn)證時(shí)仍采用傳統(tǒng)的窮舉搜索法,認(rèn)證效率較低.Gope等人[9]提出了一種基于PUF的輕量級(jí)RFID匿名認(rèn)證協(xié)議.該協(xié)議不僅保證了匿名認(rèn)證,還著重解決了以前協(xié)議難以解決的DoS攻擊問題.但協(xié)議中標(biāo)簽的存儲(chǔ)代價(jià)依賴于一組偽ID的數(shù)量,可能會(huì)導(dǎo)致存儲(chǔ)花費(fèi)過高,且當(dāng)一組備用偽ID耗盡時(shí),標(biāo)簽需要重新啟動(dòng)注冊(cè)階段來補(bǔ)充.除此之外,Zhu等人[10]同樣提出了一種具有較高可擴(kuò)展性,能適用于低功耗標(biāo)簽的輕量級(jí)PUF認(rèn)證協(xié)議.在該協(xié)議中標(biāo)簽只存儲(chǔ)一個(gè)會(huì)話標(biāo)識(shí)SID,因此代價(jià)較低.但該協(xié)議不能確保匿名性.文獻(xiàn)[11]使用協(xié)商的一對(duì)種子和偽隨機(jī)數(shù)發(fā)生器(pseudo random number generator, PRNG)產(chǎn)生一對(duì)相同激勵(lì),同時(shí)利用原始PUF的CRP在閱讀器上訓(xùn)練一個(gè)PUF的模型,以產(chǎn)生與原始PUF相似的行為輸出.在認(rèn)證時(shí),通過這種PUF模型可以極大地提高認(rèn)證的效率.但該方案將關(guān)鍵的隨機(jī)數(shù)等信息在不安全信道上明文傳輸,容易被攻擊者竊聽和篡改.Rostami等人[12]使用了填充子字符串的過程,使填充字符串的長(zhǎng)度等于原始響應(yīng)字符串的長(zhǎng)度,從而隱藏了認(rèn)證的關(guān)鍵信息.但隨后Mukhopadhyay[13]使用機(jī)器學(xué)習(xí)訓(xùn)練出CRP的線性模型并反饋給支持向量機(jī)(support vector machine, SVM),成功地攻擊了文獻(xiàn)[11-12]中的協(xié)議,證明這些協(xié)議不能抵抗機(jī)器學(xué)習(xí)的模型訓(xùn)練攻擊.2019年,Liang等人[14]同樣采用PUF模型結(jié)構(gòu)提出了一個(gè)雙PUF認(rèn)證協(xié)議,他們提出了一個(gè)比傳統(tǒng)Arbiter PUF更穩(wěn)定的TSMCA PUF結(jié)構(gòu),用來更好地抵抗機(jī)器學(xué)習(xí)攻擊,并且該結(jié)構(gòu)所需的硬件資源更少.結(jié)合使用二分異或,比特填充方法對(duì)信息進(jìn)行加密傳輸,并使用字符串匹配方法進(jìn)行解密驗(yàn)證.但經(jīng)過分析,該協(xié)議仍然存在一些安全隱患,如:偽隨機(jī)數(shù)發(fā)生器種子泄露、標(biāo)簽的假冒攻擊等.
為了增強(qiáng)RFID系統(tǒng)的安全性和隱私性,本文對(duì)Liang等人[14]提出的基于雙PUF的RFID認(rèn)證協(xié)議給出了描述,并針對(duì)其安全性進(jìn)行了詳細(xì)的分析,指出其存在的安全隱患,并提出了改進(jìn)的DPRAP協(xié)議.方案通過多次的Hash與異或運(yùn)算對(duì)PRNG種子的值進(jìn)行加密隱藏,保證協(xié)商種子的機(jī)密性.同時(shí)方案使用了時(shí)間閾值,有效防止攻擊者惡意阻塞通信信道引發(fā)去同步攻擊.最后使用BAN邏輯和Vaudenay模型對(duì)提出的DPRAP協(xié)議進(jìn)行形式化分析和驗(yàn)證,并分析了協(xié)議在安全性能方面的優(yōu)勢(shì).
Vaudenay在文獻(xiàn)[15]中提出了一個(gè)完整的RFID方案安全性形式化分析模型,并建立了一個(gè)層次化的隱私模型.在此模型下,給出了安全和隱私的強(qiáng)有力定義,并模擬了一個(gè)強(qiáng)大的對(duì)手,可以監(jiān)聽一切通信,在有限的時(shí)間內(nèi)跟蹤標(biāo)簽,損壞標(biāo)簽.Vaudenay模型通過模擬攻擊者對(duì)RFID系統(tǒng)的攻擊行為來對(duì)RFID系統(tǒng)的隱私性進(jìn)行分析,在模型中,攻擊者被允許可以執(zhí)行一系列預(yù)言機(jī)操作,對(duì)目標(biāo)系統(tǒng)進(jìn)行不同程度的攻擊.該模型對(duì)預(yù)言機(jī)的描述如下:
1)CreateTag(ID).創(chuàng)建一個(gè)具有唯一標(biāo)識(shí)符ID的標(biāo)簽.
2)DrawTag(distr)→(vtag1,vtag2,…,vtagn).根據(jù)概率分布distr從自有標(biāo)簽集中隨機(jī)選取n個(gè)標(biāo)簽,標(biāo)識(shí)符為vtagi.
3)Free(vtag).釋放標(biāo)簽vtag至自由標(biāo)簽集,使其不可達(dá).
4)Launch→π.閱讀器加載新的協(xié)議實(shí)例π.
5)SendReader(m,π)→m′.給協(xié)議實(shí)例π中的閱讀器發(fā)送消息m,并得到響應(yīng)m′.
6)SendTag(m,vtag)→m′.給標(biāo)簽vtag發(fā)送消息m,并得到響應(yīng)m′.
7)Result(π)→x.協(xié)議實(shí)例π認(rèn)證成功則返回1,否則返回0.
8)Corrupt(vtag)→S.破壞標(biāo)簽vtag,返回標(biāo)簽的內(nèi)部狀態(tài)S.
在Vaudenay模型中,根據(jù)攻擊者執(zhí)行Corrupt預(yù)言機(jī)的能力,將攻擊者的攻擊強(qiáng)度劃分為5個(gè)等級(jí):Strong,Destructive,Forward,Weak和Narrow. 其中:1)Strong類攻擊者有權(quán)限執(zhí)行以上所有預(yù)言機(jī);2)Destructive類攻擊者在執(zhí)行Corrupt查詢后不再使用vtag標(biāo)簽;3)Forward類攻擊者能夠在其他Corrupt查詢后執(zhí)行Corrupt;4)Weak類攻擊者不能執(zhí)行Corrupt查詢;5)Narrow類攻擊者不能執(zhí)行Result查詢.
在Liang等人[14]提出的基于雙PUF的RFID認(rèn)證協(xié)議中,閱讀器與后端服務(wù)器之間的通信被認(rèn)為是安全的,因此將它們看作一個(gè)整體Server.該協(xié)議主要包含3個(gè)階段:偽隨機(jī)數(shù)發(fā)生器種子生成階段、服務(wù)器驗(yàn)證標(biāo)簽階段和標(biāo)簽驗(yàn)證服務(wù)器階段.
在文獻(xiàn)[14]中,PRNG被用來產(chǎn)生PUF的激勵(lì),而PRNG的輸出是由種子決定的.生成PRNG種子的過程如圖1所示.
服務(wù)器標(biāo)簽步驟1. T1步驟1. T2步驟2. M1=h(T1)T1 M1 →步驟2. 步驟3. 步驟3. M2=h(T1)T1T2步驟4. M3=M2T2h(T1)=T'1 M2‖T2 ←步驟4. 步驟5. If T'1=T1步驟5. 步驟6. Seed=(M2)步驟6. Seed=(M2)
文獻(xiàn)[14]中服務(wù)器認(rèn)證標(biāo)簽階段如圖2所示.
1) 服務(wù)器和標(biāo)簽利用得到的偽隨機(jī)數(shù)發(fā)生器種子產(chǎn)生激勵(lì)c′=G(Seed),c=G(Seed);
2) 服務(wù)器和標(biāo)簽各自使用PUF_mod和PUF產(chǎn)生響應(yīng)R′和R,然后分別將響應(yīng)拆分成2個(gè)長(zhǎng)度相同的子串A′,B′和A,B;
3) 服務(wù)器和標(biāo)簽2端分別計(jì)算出PW′=A′⊕B′,PW=A⊕B,將PW′和PW劃分成2個(gè)長(zhǎng)度相同的子串C′,D′和C,D;
4) 標(biāo)簽對(duì)C和D進(jìn)行隨機(jī)比特填充,構(gòu)成新串GW發(fā)送給服務(wù)器;
5) 服務(wù)器收到GW后,使用自身的C′和D′在GW中搜索匹配并提取C和D,匹配時(shí)要求具有最小漢明重量;
6) 比較C,D與C′,D′;
7) 如果誤差位數(shù)在門限范圍內(nèi),服務(wù)器成功認(rèn)證標(biāo)簽.
服務(wù)器標(biāo)簽步驟1. Seed=(M2)步驟1. Seed=(M2)步驟2. c'=G(Seed)步驟2. c=G(Seed)步驟3. R'=PUF_mod(c'),R'→A',B'步驟3. R=PUF(c),R→A,B步驟4. PW'=A'B',PW'→C',D'步驟4. PW=AB,PW→C,D步驟5. 步驟5. GW=pad(indran,C,D)步驟6. C,D=Sea(C',D',GW) GW ←步驟6.步驟7. T=match(C,C',D,D')步驟8. Auth.Pass:true?
文獻(xiàn)[14]中標(biāo)簽認(rèn)證服務(wù)器階段如圖3所示.
7) 如果誤差位數(shù)在門限范圍內(nèi),標(biāo)簽成功認(rèn)證服務(wù)器.
服務(wù)器標(biāo)簽步驟1. Seed=PW步驟1. Seed=PW步驟2. c'2=G(Seed)步驟2. c2=G(Seed)步驟3. R'2=PUF_mod(c'2),R'2→A'2,B'2步驟3. R2=PUF(c2),R2→A2,B2步驟4. PW'2=A'2B'2,PW'2→C'2,D'2步驟4. PW2=A2B2,PW2→C2,D2步驟5. GW'2=pad(indran,C'2,D'2)步驟5. 步驟6. GW'2 →步驟6. C'2,D'2=Sea(C2,D2,GW'2)步驟7. T=match(C'2,C2,D'2,D2)步驟8. Auth.Pass:true?
本節(jié)對(duì)文獻(xiàn)[14]中提出的協(xié)議進(jìn)行分析,指出其存在的3種安全隱患.
在原始協(xié)議的種子生成階段,標(biāo)簽在非安全信道上直接將M2和T2傳輸給服務(wù)器,而最終消息M2的值將直接作為雙方協(xié)商的種子值.攻擊者可能通過非安全信道竊聽和截獲該通信值,使得非法參與者也能重放該消息與合法服務(wù)器協(xié)商一對(duì)種子,并進(jìn)行認(rèn)證通信.
在原始協(xié)議的種子生成階段,攻擊者可能嘗試對(duì)標(biāo)簽向服務(wù)器傳輸?shù)腗2‖T2消息進(jìn)行修改或阻塞,導(dǎo)致服務(wù)器無法成功驗(yàn)證通信值,服務(wù)器不能與標(biāo)簽同步地生成一對(duì)相同的種子,使該階段無法成功繼續(xù)執(zhí)行.
在服務(wù)器驗(yàn)證標(biāo)簽階段,假冒的標(biāo)簽在獲取種子的值后,與合法的服務(wù)器進(jìn)行驗(yàn)證,盡管該階段使用雙PUF結(jié)構(gòu),但服務(wù)器仍有可能訓(xùn)練一個(gè)偽造的PUF模型來與假冒標(biāo)簽完成認(rèn)證通信,使得假冒的標(biāo)簽也能通過服務(wù)器的驗(yàn)證.
針對(duì)偽隨機(jī)數(shù)發(fā)生器種子生成和服務(wù)器認(rèn)證標(biāo)簽階段存在的安全隱患,我們?cè)谖墨I(xiàn)[14]協(xié)議的基礎(chǔ)上提出了DPRAP協(xié)議.DPRAP協(xié)議涉及服務(wù)器和標(biāo)簽2個(gè)通信實(shí)體,協(xié)議包含3個(gè)階段:偽隨機(jī)數(shù)發(fā)生器種子生成階段、服務(wù)器驗(yàn)證標(biāo)簽階段、標(biāo)簽驗(yàn)證服務(wù)器階段.由于開放的無線信道,服務(wù)器和標(biāo)簽間的通信信道是不安全的.
偽隨機(jī)數(shù)發(fā)生器種子生成階段主要用來完成服務(wù)器與標(biāo)簽之間協(xié)商一對(duì)偽隨機(jī)數(shù)發(fā)生器種子,種子可以用于偽隨機(jī)數(shù)發(fā)生器在服務(wù)器驗(yàn)證標(biāo)簽階段產(chǎn)生激勵(lì).偽隨機(jī)數(shù)發(fā)生器種子生成階段如圖4所示:
服務(wù)器標(biāo)簽步驟1. T1步驟1. T2步驟2. M1=T1h(T1) M1 →步驟2.步驟3. 步驟3. M2=M1h(IDS)步驟4. 步驟4. M3=T2IDS步驟5. h(IDS)'=M2M1 M2,M3 ←步驟5. 步驟6. 在數(shù)據(jù)庫(kù)中檢索IDS滿足:h(IDS)=h(IDS)'步驟6. 步驟7. T2=M3IDS步驟7. 步驟8. M4=T1IDS步驟8. 步驟9. M5=h(T1)h(T2) M4,M5 →步驟9. 步驟10. 步驟10. T1=M4IDS步驟11. 步驟11. 驗(yàn)證:M5=h(T1)h(T2)步驟12. Seed=h(T1‖T2‖IDS)步驟12. Seed=h(T1‖T2‖IDS)
該階段的詳細(xì)步驟為:
1) 服務(wù)器和標(biāo)簽使用TRNG分別產(chǎn)生真隨機(jī)數(shù)T1,T2.
2) 服務(wù)器計(jì)算M1=T1⊕h(T1),并將M1發(fā)送給標(biāo)簽.
3) 標(biāo)簽在接收到M1之后,利用標(biāo)識(shí)假名IDS計(jì)算M2=M1⊕h(IDS),M3=T2⊕IDS,并將M3,M4發(fā)送給服務(wù)器.
4) 服務(wù)器在接收到M2,M3之后,從M2中提取h(IDS)′=M2⊕M1,然后在后備數(shù)據(jù)庫(kù)中查詢注冊(cè)過的IDS,是否存在某個(gè)IDS能夠滿足條件h(IDS)=h(IDS)′,若不存在,則說明標(biāo)簽不合法,協(xié)議終止.若驗(yàn)證通過則利用IDS提取T2=M3⊕IDS,并計(jì)算M4=T1⊕IDS,M5=h(T1)⊕h(T2),然后將M4,M5發(fā)送給標(biāo)簽.
5) 標(biāo)簽接收到M4,M5之后,先從M4中提取T1=M4⊕IDS,然后驗(yàn)證M5的正確性,若驗(yàn)證通過,則標(biāo)簽與服務(wù)器之間確定一對(duì)偽隨機(jī)數(shù)發(fā)生器種子Seed=h(T1‖T2‖IDS).若標(biāo)簽在一段時(shí)間閾值τ(根據(jù)實(shí)際設(shè)定)范圍內(nèi)未能接收到M4與M5,或者驗(yàn)證失敗,則說明發(fā)生了去同步攻擊,種子生成階段重新執(zhí)行.
服務(wù)器驗(yàn)證標(biāo)簽階段主要用來完成服務(wù)器對(duì)標(biāo)簽的合法性的驗(yàn)證.服務(wù)器驗(yàn)證標(biāo)簽階段如圖5所示:
服務(wù)器標(biāo)簽步驟1. c'=G(Seed)步驟1. c=G(Seed)步驟2. R'=PUF_mod(c')步驟2. R=PUF(c)步驟3. 步驟3. RS=RIDS步驟4. IDS'=RSR' RS ←步驟4. 檢查數(shù)據(jù)庫(kù)中是否存在IDS'步驟5. R'→A',B'步驟5. R→A,B步驟6. PW'=A'B',PW'→C',D'步驟6. PW=AB,PW→C,D步驟7. 步驟7. GW=pad(indran,C,D)步驟8. C,D=Sea(C',D',GW) GW ←步驟8. 步驟9. T=match(C,C',D,D')步驟10. Auth.Pass.true?
該階段的詳細(xì)步驟為:
1) 服務(wù)器和標(biāo)簽利用得到的偽隨機(jī)數(shù)發(fā)生器種子產(chǎn)生激勵(lì)c′=G(Seed),c=G(Seed).
2) 服務(wù)器和標(biāo)簽分別使用機(jī)器學(xué)習(xí)訓(xùn)練的PUF_mod和PUF產(chǎn)生響應(yīng)R′和R.
3) 標(biāo)簽計(jì)算RS=R⊕IDS,并將RS發(fā)送給服務(wù)器.
4) 服務(wù)器接收到RS之后,計(jì)算IDS′=RS⊕R′,然后在后備數(shù)據(jù)庫(kù)中查找是否存在相應(yīng)的IDS′登記,若查找失敗,則說明標(biāo)簽不合法,協(xié)議終止.
5) 服務(wù)器和標(biāo)簽分別將響應(yīng)R′和R拆分成2個(gè)長(zhǎng)度相同的子串A′,B′和A,B.
6) 分別計(jì)算PW′=A′⊕B′,PW=A⊕B,然后將PW′和PW劃分成2個(gè)長(zhǎng)度相同的子串C′,D′和C,D.
7) 標(biāo)簽對(duì)C和D進(jìn)行隨機(jī)比特填充,構(gòu)成新串GW發(fā)送給服務(wù)器.
8) 服務(wù)器收到GW后,使用自身的C′和D′在GW中搜索匹配并提取C和D,匹配時(shí)要求具有最小漢明重量.
9) 比較C,D與C′,D′.
10) 如果誤差位數(shù)在門限范圍內(nèi),服務(wù)器成功認(rèn)證標(biāo)簽.
在該階段中,偽隨機(jī)數(shù)發(fā)生器種子替換為服務(wù)器驗(yàn)證標(biāo)簽階段中使用的通信量PW,其余步驟與服務(wù)器驗(yàn)證標(biāo)簽階段對(duì)應(yīng)步驟類似,具體步驟如圖3所示.
BAN邏輯分析是一種常見的安全協(xié)議形式化分析方法,被廣泛用于證明通信認(rèn)證協(xié)議的正確性和安全性[16].本節(jié)將采用BAN邏輯分析方法對(duì)所提出的DPRAP協(xié)議進(jìn)行安全性分析.
1) 初始化假設(shè)
① A1.T|≡#T2;
③ A3.T?{M5}T2;
④ A4.T|≡S|?M5;
⑤ A5.S|≡#IDS;
⑦ A7.S?{RS}IDS;
⑧ A8.S|≡T|?RS.
2) 邏輯規(guī)則說明
② R2(消息含義規(guī)則).
③ R3(臨時(shí)驗(yàn)證規(guī)則).
3) 目標(biāo)與證明
證明目標(biāo):
① G1.T|≡M5;
② G2.S|≡RS.
證明.
根據(jù)假設(shè)A1與規(guī)則R1有
① F1.T|≡#M5;
根據(jù)假設(shè)A2,A3與規(guī)則R2有
② F2.T|≡S|~M5;
根據(jù)公式F1,F2與規(guī)則R3有
③ F3.T|≡S|≡M5;
根據(jù)公式F3,假設(shè)A4與規(guī)則R4有
④T|≡M5;
目標(biāo)G1得證.
根據(jù)假設(shè)A5與規(guī)則R1有
⑤ F4.S|≡#RS;
根據(jù)假設(shè)A6,A7與規(guī)則R2有
⑥ F5.S|≡T|~RS;
根據(jù)公式F4,F5與規(guī)則R3有
⑦ F6.S|≡T|≡RS;
根據(jù)公式F6,假設(shè)A8與規(guī)則R4有
⑧S|≡RS.
目標(biāo)G2得證.
證畢.
命題1.DPRAP協(xié)議能夠滿足前向不可追蹤性.
證明.
1) 攻擊者調(diào)用預(yù)言機(jī)隨機(jī)創(chuàng)建標(biāo)簽Create-Tag(IDS0),CreateTag(IDS1);
7)Launch→πi+1,運(yùn)行并監(jiān)聽第i+1次會(huì)話;
攻擊者通過入侵標(biāo)簽內(nèi)部獲取的Seed與監(jiān)聽第i輪標(biāo)簽發(fā)送的信息RS,企圖計(jì)算出第i+1輪會(huì)話中標(biāo)簽發(fā)送的RS.攻擊者主要考慮2個(gè)方面實(shí)現(xiàn)對(duì)RS的追蹤攻擊:
1) 偽造PUF第i+1輪會(huì)話的響應(yīng)
攻擊者通過調(diào)用Corrupt預(yù)言機(jī),獲取標(biāo)簽內(nèi)部Seed的值,盡管偽隨機(jī)數(shù)發(fā)生器在種子確定時(shí)能夠得到相同的隨機(jī)序列,但攻擊者要定位到當(dāng)前的隨機(jī)值是很困難的.此外,由于PUF自身具有硬件結(jié)構(gòu)上的差異和物理不可克隆的特性,攻擊者試圖用偽造的PUF來得到合法的響應(yīng)是很難的.
2) 用虛假的標(biāo)簽身份信息IDS通過認(rèn)證
由于攻擊者通過非安全信道竊聽獲取到的信息有限,只能獲取第i輪會(huì)話的RS信息,由于攻擊者無法預(yù)測(cè)第i輪會(huì)話中的PUF響應(yīng),他便無法推測(cè)合法標(biāo)簽的身份標(biāo)識(shí)IDS,攻擊者也因此無法通過后備數(shù)據(jù)庫(kù)的合法性驗(yàn)證.任何虛假的標(biāo)簽身份標(biāo)識(shí)IDS都將無法通過認(rèn)證.
綜上所述,DPRAP協(xié)議能夠滿足前向不可追蹤性.
證畢.
命題2.DPRAP協(xié)議能夠滿足后向不可追蹤性.
證明.
1) 攻擊者調(diào)用預(yù)言機(jī)隨機(jī)創(chuàng)建標(biāo)簽Create-Tag(IDS0),CreateTag(IDS1).
7)Launch→πi,運(yùn)行并監(jiān)聽第i次會(huì)話;
攻擊者通過入侵標(biāo)簽內(nèi)部獲取的Seed與監(jiān)聽第i+1輪標(biāo)簽發(fā)送的信息RS,企圖計(jì)算出第i輪會(huì)話中標(biāo)簽發(fā)送的RS.因?yàn)镽S=R⊕IDS,攻擊者想要根據(jù)第i+1輪會(huì)話截獲的信息推測(cè)出第i輪會(huì)話中的RS,必須知道第i輪的PUF響應(yīng).攻擊者無法知道第i輪的PUF響應(yīng),原因如下:1)攻擊者可以截獲標(biāo)簽發(fā)送的RS信息,但由于攻擊者沒有合法的身份標(biāo)識(shí)IDS,因此也不能推算出第i輪的PUF響應(yīng).2)攻擊者即使通過Corrupt預(yù)言機(jī)獲取了偽隨機(jī)數(shù)發(fā)生器種子Seed而確定偽隨機(jī)數(shù)序列,也無法推測(cè)出第i輪會(huì)話的PUF激勵(lì)c,因?yàn)楣粽邿o法確定第i+1輪會(huì)話偽隨機(jī)數(shù)發(fā)生器的輸出.3)由于PUF自身具有硬件結(jié)構(gòu)上的差異和物理不可克隆的特性,攻擊者試圖用偽造的PUF來得到合法的響應(yīng)是很難的.
綜上所述,DPRAP協(xié)議能夠滿足后向不可追蹤性.
證畢.
命題3.DPRAP協(xié)議能夠抵抗標(biāo)簽的假冒攻擊.
證明. 在種子生成階段,攻擊者通過假冒標(biāo)簽與合法服務(wù)器通信,假冒的標(biāo)簽需要利用自身的IDS計(jì)算M2,M3.即使攻擊者竊聽到信息M1,M2,也無法推斷出合法的IDS,因?yàn)镠ash函數(shù)的不可逆性.而使用未注冊(cè)的IDS進(jìn)行服務(wù)器端的驗(yàn)證是無法通過的,因?yàn)楹髠鋽?shù)據(jù)庫(kù)內(nèi)不存在該虛假的IDS身份信息.
在服務(wù)器認(rèn)證標(biāo)簽階段,假冒標(biāo)簽利用自身不合法的IDS與PUF響應(yīng)計(jì)算RS發(fā)送給服務(wù)器,由于后備數(shù)據(jù)庫(kù)內(nèi)不存在該未注冊(cè)的IDS身份信息,因此也不能通過服務(wù)器的認(rèn)證.
綜上所述,DPRAP協(xié)議能夠抵抗標(biāo)簽的假冒攻擊.
證畢.
命題4.DPRAP協(xié)議能夠抵抗中間人攻擊.
證明. 在種子生成階段,攻擊者可以通過2種方法發(fā)起中間人攻擊:
1) 修改或阻塞M2,M3消息.當(dāng)攻擊者試圖修改M2,服務(wù)器端計(jì)算h(IDS)′=M2⊕M1將不會(huì)得到正確的結(jié)果,服務(wù)器無法根據(jù)h(IDS)′在數(shù)據(jù)庫(kù)中查詢到正確的標(biāo)簽身份;當(dāng)攻擊者試圖修改M3消息,盡管可以得到正確的IDS,但根據(jù)T2=M3⊕IDS將會(huì)計(jì)算出錯(cuò)誤的T2,這將導(dǎo)致標(biāo)簽在驗(yàn)證M5=h(T1)⊕h(T2)時(shí)不會(huì)通過;當(dāng)攻擊者企圖阻塞M2,M3的消息將導(dǎo)致標(biāo)簽無法通過服務(wù)器的身份驗(yàn)證.因此,中間人攻擊失敗.
2) 修改或阻塞消息M4,M5.當(dāng)攻擊者企圖修改消息M4,根據(jù)T1=M4⊕IDS將計(jì)算出錯(cuò)誤的T1,標(biāo)簽驗(yàn)證M5=h(T1)⊕h(T2)不會(huì)通過;當(dāng)攻擊者企圖修改消息M5,將直接導(dǎo)致標(biāo)簽對(duì)M5驗(yàn)證失??;當(dāng)攻擊者企圖阻塞M4,M5消息的傳輸,標(biāo)簽端將種子無法同步生成,而當(dāng)攻擊者的阻塞時(shí)間超過閾值τ后,種子生成階段將被強(qiáng)制終止并重新執(zhí)行.因此,中間人攻擊失敗.
在認(rèn)證階段,對(duì)任何通信信息(RS,GW)的阻塞和修改都將導(dǎo)致對(duì)標(biāo)簽身份認(rèn)證的失敗.因此,中間人攻擊無法成功.
綜上所述,DPRAP協(xié)議能夠抵抗中間人攻擊.
證畢.
命題5.DPRAP協(xié)議能夠抵抗去同步攻擊.
證明. 在本方案中,由于種子生成階段存在著種子的同步問題,因此可能存在去同步攻擊.
在種子生成階段,攻擊者可以通過2種方法發(fā)起去同步攻擊:
1) 修改M4,M5消息.攻擊者企圖修改M4,M5的消息來阻止偽隨機(jī)數(shù)發(fā)生器種子生成,如命題4中所敘,攻擊者對(duì)M4,或M5消息的任何修改都將導(dǎo)致標(biāo)簽對(duì)M5的驗(yàn)證失敗,種子不會(huì)同步產(chǎn)生,去同步攻擊失敗.
2) 阻塞消息M4,M5.攻擊者企圖持續(xù)阻塞M4,M5消息的發(fā)送來使種子無法同步生成,而當(dāng)阻塞時(shí)間超過閾值τ后,該階段將被強(qiáng)制終止并重新執(zhí)行,去同步攻擊失敗.
綜上所述,DPRAP協(xié)議能夠抵抗去同步攻擊.
證畢.
命題6.DPRAP協(xié)議能夠抵抗重放攻擊.
證明. 在種子生成階段,攻擊者嘗試通過竊聽和截獲非安全信道上傳輸?shù)耐ㄐ胖祦碇胤畔?,以獲取協(xié)商的種子值.但攻擊者無法做到,原因如下:攻擊者想要重放種子值,必須同時(shí)獲取到T1,T2和IDS,然而攻擊者通過監(jiān)聽無法獲取到以上3個(gè)值中的任何一個(gè),非法攻擊者也就不能重放種子值來完成與服務(wù)器的認(rèn)證通信.
在認(rèn)證階段,由于PUF輸出的具有隨機(jī)性和不可預(yù)測(cè)性,每一輪的PUF輸出都是不相同的,攻擊者通過重放RS和GW信息均無法通過服務(wù)器的合法性驗(yàn)證.
綜上所述,DPRAP協(xié)議能夠抵抗重放攻擊.
證畢.
在本節(jié)中,我們將DPRAP協(xié)議與文獻(xiàn)[14]的種子生成階段和認(rèn)證階段進(jìn)行了對(duì)比分析,同時(shí)也與典型的基于PUF的RFID認(rèn)證協(xié)議[9-10]的認(rèn)證階段性能進(jìn)行了對(duì)比.
為了便于比較與分析,我們采用文獻(xiàn)[14]中的計(jì)算開銷.Hash函數(shù)輸出長(zhǎng)度為160 b,PUF輸出長(zhǎng)度為256 b,pad操作填充后的字符串長(zhǎng)為1 024 b,ID信息長(zhǎng)度為96 b.我們用Java語(yǔ)言編寫的程序模擬了標(biāo)簽和閱讀器之間的通信.開發(fā)工具是IntelliJ IDEA集成開發(fā)環(huán)境.網(wǎng)絡(luò)交互是通過使用抽象TCP客戶機(jī)/服務(wù)器連接的套接字來完成的.服務(wù)器等待與指定IP地址和端口上的標(biāo)簽的連接.一旦標(biāo)簽成功地與服務(wù)器建立了連接,協(xié)議就會(huì)執(zhí)行一個(gè)雙向認(rèn)證會(huì)話.程序運(yùn)行在2.30 GHz AMD Ryzen 7 3750H CPU和配備8 GB RAM的Windows10系統(tǒng)上.表1和表2中標(biāo)簽端的計(jì)算開銷均通過程序計(jì)算得到.
Table 1 Performance Comparison of DPRAP Protocol and Ref [14] in Seed Generation Phase
Table 2 Performance Comparison of DPRAP Protocol and Other Literatures in Authentication Phase
表1和表2分別展示了DPRAP協(xié)議與文獻(xiàn)[14]在種子生成階段和認(rèn)證階段的性能對(duì)比.在通信開銷方面,由于DPRAP協(xié)議為防止偽隨機(jī)數(shù)發(fā)生器種子直接在非安全信道上傳輸導(dǎo)致泄漏,在通信過程中增加了一輪對(duì)Hash函數(shù)輸出消息的驗(yàn)證,在認(rèn)證階段為防止假冒標(biāo)簽也能通過服務(wù)器的驗(yàn)證,加入了通信量RS,因此通信開銷方面有所增大.在計(jì)算開銷方面,在種子生成階段引入了多次Hash和異或操作,以達(dá)到隱藏種子通信值的目的,同時(shí)在認(rèn)證階段也引入了對(duì)標(biāo)簽身份標(biāo)識(shí)IDS的異或操作,以驗(yàn)證標(biāo)簽的合法性,因此計(jì)算開銷方面也略有增大.在存儲(chǔ)開銷方面,由于DPRAP協(xié)議為了解決不合法標(biāo)簽也能通過服務(wù)器認(rèn)證的問題,在服務(wù)器認(rèn)證標(biāo)簽階段引入了IDS作為額外永久存儲(chǔ)開銷,因此標(biāo)簽端的存儲(chǔ)開銷略有增大.總的來說,新協(xié)議與文獻(xiàn)[14]相比,通過犧牲少量的計(jì)算代價(jià)與通信開銷提高了協(xié)議的安全性,避免了文獻(xiàn)[14]存在的安全隱患.
Fig. 6 Communication cost comparison between DPRAP and Ref [14] in seed generation stage圖6 種子生成階段DPRAP與文獻(xiàn)[14]通信開銷對(duì)比
表2同時(shí)展示了DPRAP協(xié)議與文獻(xiàn)[9-10]之間的認(rèn)證階段性能對(duì)比情況.在通信開銷方面,由于我們使用pad填充的串長(zhǎng)為1 024 b,因此整體高于文獻(xiàn)[9-10].在標(biāo)簽端計(jì)算開銷方面,文獻(xiàn)[9-10]也表現(xiàn)得更優(yōu).然而在存儲(chǔ)開銷方面,我們的方案具有明顯的優(yōu)勢(shì).在標(biāo)簽端存儲(chǔ)開銷方面,DPRAP協(xié)議僅需96 b來額外存儲(chǔ)一個(gè)IDS,而文獻(xiàn)[9-10]則至少消耗128 b,且文獻(xiàn)[9]中還需額外存儲(chǔ)n個(gè)長(zhǎng)度為64 b的臨時(shí)ID.在服務(wù)器端存儲(chǔ)開銷方面,文獻(xiàn)[9-10]需要在每輪認(rèn)證過程中存儲(chǔ)PUF的CRP,且文獻(xiàn)[10]中需要額外存儲(chǔ)n組備用CRP,而DPRAP協(xié)議無需存儲(chǔ)CRP,服務(wù)器端的存儲(chǔ)開銷將顯著降低.由于具有明顯的存儲(chǔ)開銷上的優(yōu)勢(shì),我們提出的DPRAP協(xié)議將更加適用于低功耗的RFID系統(tǒng),協(xié)議具有更好的實(shí)用性.
圖6以種子生成過程為例,展示了當(dāng)通信信道發(fā)生阻塞時(shí),系統(tǒng)的通信開銷隨著重傳次數(shù)的增加而發(fā)生的變化(重傳的時(shí)間不會(huì)超過閾值τ).可以看到,隨著重傳次數(shù)的增加,總通信開銷會(huì)不斷增大,并呈線性變化.
本文針對(duì)文獻(xiàn)[14]的協(xié)議進(jìn)行安全性分析,指出其存在的偽隨機(jī)數(shù)發(fā)生器種子泄露問題,并且存在去同步攻擊、重放攻擊和假冒攻擊等安全隱患.為了避免文獻(xiàn)[14]出現(xiàn)的安全隱患問題,本文提出了一種新的基于雙PUF的RFID認(rèn)證協(xié)議.通過Hash與異或運(yùn)算對(duì)種子的值進(jìn)行加密隱藏,從而確保種子傳輸過程中的安全性;同時(shí)增加時(shí)間閾值避免去同步攻擊所帶來的安全隱患;且通過標(biāo)簽合法性驗(yàn)證抵抗標(biāo)簽偽造攻擊.利用BAN邏輯和Vaudenay模型對(duì)新方案進(jìn)行形式化分析和驗(yàn)證,結(jié)果表明新方案解決了原協(xié)議中存在的安全隱患,具有良好的安全性和隱私性,能夠抵抗多種惡意攻擊,更加適用于RFID系統(tǒng)的實(shí)際應(yīng)用場(chǎng)景.下一階段研究工作將在確保協(xié)議安全隱私的同時(shí),適當(dāng)降低計(jì)算代價(jià)和通信開銷以提高認(rèn)證的效率.