謝金濤,王玲芳,李 楊
(1.中國(guó)科學(xué)院大學(xué),北京 100049;2.中國(guó)科學(xué)院聲學(xué)研究所國(guó)家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京 100190)
根據(jù)思科預(yù)測(cè),到2030 年,物聯(lián)網(wǎng)(Internet of Things,IoT)設(shè)備將達(dá)到5 000億臺(tái),其中包括大量的智能家居、車聯(lián)網(wǎng)等移動(dòng)設(shè)備[1]。但是目前的網(wǎng)絡(luò)架構(gòu)難以滿足這些移動(dòng)場(chǎng)景的低時(shí)延、高吞吐等要求[2-4]。5G 和信息中心網(wǎng)絡(luò)(Information-Centric Networking,ICN)的融合為解決該問(wèn)題提供了新的思路[5-7]。ICN以信息為中心,將內(nèi)容和位置分離,通過(guò)名字訪問(wèn)內(nèi)容實(shí)體,可以為5G 網(wǎng)絡(luò)提供移動(dòng)性、安全性等支持[8-9]。名字解析系統(tǒng)(Name Resolution System,NRS)作為ICN 的重要組成部分,負(fù)責(zé)建立、維護(hù)和發(fā)布信息名字和地址之間的映射關(guān)系,提供快速的名字解析功能等[10-11]。
移動(dòng)節(jié)點(diǎn)(Mobile Node,MN)請(qǐng)求NRS 服務(wù)需要先通過(guò)NRS 代理(NRS Proxy,NP)認(rèn)證,獲取解析節(jié)點(diǎn)列表。由于NP 的服務(wù)范圍有限,MN 存在不同NP 間切換認(rèn)證的場(chǎng)景??紤]到MN 的計(jì)算能力可能有限,并且要確保其服務(wù)的連續(xù)性,切換認(rèn)證協(xié)議必須滿足簡(jiǎn)單性、高效性和安全性要求[12-14]。根據(jù)調(diào)研結(jié)果,目前針對(duì)NRS 中切換認(rèn)證的研究較少。不過(guò),無(wú)線網(wǎng)絡(luò)和NRS 的切換場(chǎng)景有高度的相似性,可以從中借鑒一二。文獻(xiàn)[15-16]通過(guò)對(duì)稱加密的票據(jù)減少無(wú)線網(wǎng)切換過(guò)程中的認(rèn)證延遲。MN 持有原接入點(diǎn)(Access Point,AP)分發(fā)的票據(jù)就可以向目標(biāo)AP 認(rèn)證。文獻(xiàn)[17-18]將多個(gè)接入點(diǎn)AP 構(gòu)成組,MN 使用原AP 私有組密鑰加密的票據(jù)認(rèn)證。該方案對(duì)AP 要求高。文獻(xiàn)[19]采用廣播的方式認(rèn)證。MN 通過(guò)認(rèn)證服務(wù)器(Authentication Server,AS)將票據(jù)發(fā)送給AP。AS 和AP 之間可能有很多跳,這種方式有時(shí)延過(guò)高的問(wèn)題。文獻(xiàn)[20]提出基于票據(jù)廣播的切換機(jī)制來(lái)改進(jìn)多跳問(wèn)題。原AP 提前生成票據(jù),通過(guò)一跳將票據(jù)發(fā)送給鄰居。文獻(xiàn)[21-22]指出文獻(xiàn)[20]存在一些漏洞,比如有效期明文存儲(chǔ)導(dǎo)致的篡改問(wèn)題、AP 間密鑰相同帶來(lái)的安全風(fēng)險(xiǎn)等。然而文獻(xiàn)[22]改進(jìn)后同樣存在類似的安全問(wèn)題。文獻(xiàn)[21]雖然解決了上述問(wèn)題,但是認(rèn)證過(guò)程中冗余開(kāi)銷和計(jì)算代價(jià)都比較大。
文中提出了一種基于票據(jù)的名字解析系統(tǒng)切換認(rèn)證方案,實(shí)現(xiàn)安全高效的切換認(rèn)證。MN 首次接入NRS 時(shí)利用AS 預(yù)簽名的票據(jù)與NP 完成認(rèn)證。在MN 移動(dòng)過(guò)程中,MN 使用從NP 提前獲取的票據(jù)完成切換認(rèn)證。分析表明該方案不僅能提供多種安全保障,而且分別通過(guò)四次通信和兩次通信完成接入認(rèn)證和切換認(rèn)證過(guò)程,降低了認(rèn)證交互過(guò)程中的冗余開(kāi)銷和計(jì)算代價(jià)。
NRS 模型如圖1 所示,包括解析節(jié)點(diǎn)、代理NP以及移動(dòng)節(jié)點(diǎn)MN。其中解析節(jié)點(diǎn)在滿足時(shí)延要求的前提下提供解析服務(wù)。NP 負(fù)責(zé)維護(hù)解析節(jié)點(diǎn)列表,輔助MN 接入服務(wù)。MN 是NRS 的移動(dòng)用戶,可能是手持設(shè)備、車輛、工業(yè)移動(dòng)設(shè)備等。MN 首先要通過(guò)NP 認(rèn)證獲得解析節(jié)點(diǎn)列表,才能進(jìn)一步請(qǐng)求解析節(jié)點(diǎn)的服務(wù)。由于每個(gè)NP 的服務(wù)范圍有限,當(dāng)MN 移動(dòng)后,需要重新向新NP 認(rèn)證才能獲得新解析節(jié)點(diǎn)列表。
圖1 NRS模型
在移動(dòng)過(guò)程中,MN的服務(wù)需要保持連續(xù)性,因此切換認(rèn)證方案必須高效。MN在移動(dòng)過(guò)程中容易被竊聽(tīng)、劫持或破壞,切換認(rèn)證方案也必須具備一定的安全性:1)雙向認(rèn)證。MN 和NP 要驗(yàn)證對(duì)方的合法性。2)隱私保護(hù)。MN 的身份標(biāo)識(shí)在移動(dòng)時(shí)不能被攻擊者獲取,后續(xù)通信不能被竊聽(tīng)。3)前向和后向安全性。攻擊者即使得到密鑰也無(wú)法獲取之前和之后的通訊內(nèi)容。4)抵抗重放攻擊。攻擊者重新發(fā)送竊聽(tīng)到的信息,不能通過(guò)MN和AP的認(rèn)證。5)抵抗偽造攻擊。攻擊者無(wú)法以偽造認(rèn)證信息的方式通過(guò)認(rèn)證。
在開(kāi)始認(rèn)證前,認(rèn)證服務(wù)器AS對(duì)NP和MN的身份票據(jù)進(jìn)行簽名。該文方案主要涉及三種票據(jù):移動(dòng)節(jié)點(diǎn)MN 的票據(jù)、代理NP 的票據(jù)和切換認(rèn)證的票據(jù)。
1)移動(dòng)節(jié)點(diǎn)MN 票據(jù)
TMN={IMN,IA,τexp_MN,PMN,SigA_MN},其中IMN是設(shè)備MN 的標(biāo)識(shí)。IA是對(duì)IMN簽名的認(rèn)證服務(wù)器AS 的標(biāo)識(shí)。τexp_MN為票據(jù)TMN的有效期,如果票據(jù)失效了,MN 需要重新向AS 申請(qǐng)。PMN是MN 的公鑰,用于加密消息,防止認(rèn)證過(guò)程中攻擊者的竊聽(tīng)行為。SigA_MN是AS 對(duì)該票據(jù)的數(shù)字簽名,用于證明MN 是合法擁有該票據(jù),而且使攻擊者無(wú)法修改票據(jù),保證票據(jù)的真實(shí)完整。
2)代理NP 票據(jù)
TNP={INP,IA,τexp_NP,PNP,SigA_NP},其 中INP為代理NP 的標(biāo)識(shí)。IA是對(duì)INP簽名的AS 的標(biāo)識(shí)。τexp_NP為票據(jù)TNP的有效期。同樣地,如果票據(jù)失效,NP 需要再次向AS 申請(qǐng)。NP 的公鑰PNP用來(lái)加密信息,信息內(nèi)容只能被NP 解密。SigA_NP是AS 對(duì)該票據(jù)的數(shù)字簽名,用于證明編號(hào)INP的代理?yè)碛性撈睋?jù)的合法性和確保票據(jù)安全。
3)切換認(rèn)證票據(jù)
θMN={IMN,INP,IA,τexp_θMN,H(IMN||INP||IA||τexp_θMN)} 其 中IMN、INP、IA分別是對(duì)應(yīng)角色的標(biāo)識(shí),τexp_θMN是該票據(jù)的有效期。H(IMN||INP||IA||τexp_θMN)是這些內(nèi)容經(jīng)過(guò)單向散列函數(shù)運(yùn)算的結(jié)果,以保證θMN的完整性。θMN一旦被篡改或者出錯(cuò),就會(huì)被發(fā)現(xiàn)。與上述兩個(gè)票據(jù)不同,θMN是由當(dāng)前NP 為MN 生成的,用作MN 移動(dòng)后,向下一個(gè)NP 認(rèn)證的憑證。
文中涉及到的操作符號(hào)含義如表1 所示。
表1 操作符號(hào)含義
該文的認(rèn)證方案包括接入認(rèn)證和切換認(rèn)證兩部分。前者是MN 首次請(qǐng)求NRS 服務(wù)時(shí)和代理NP1 之間的認(rèn)證。后者是MN 移動(dòng)后與下一個(gè)代理NP2 之間的認(rèn)證。
假設(shè)MN和AP1的身份票據(jù)獲得了AS的簽名。MN要接入名字解析系統(tǒng)的服務(wù),首先要和NP1 互相驗(yàn)證票據(jù),進(jìn)行雙向認(rèn)證。具體認(rèn)證流程如圖2 所示。
圖2 接入認(rèn)證流程
1)當(dāng)MN 首次請(qǐng)求NRS 服務(wù)時(shí),它需要先向周圍的NP 廣播包含它的標(biāo)識(shí)IMN的消息。
2)代理NP1 收到請(qǐng)求后,向MN 回復(fù)消息通知它的存在。回復(fù)內(nèi)容包括NP1 的票據(jù)TNP1和NP1 生成的隨機(jī)數(shù)NNP1。MN 收到消息后,首先通過(guò)τexp_NP1驗(yàn)證票據(jù)是否過(guò)期。如果沒(méi)有過(guò)期,MN 驗(yàn)證SigA_NP1是否合法。如果非法,MN 忽略NP1。當(dāng)SigA_NP1合法,MN 完成對(duì)代理NP1 的認(rèn)證,然后生成隨機(jī)數(shù)NMN0,并計(jì)算共享密鑰KPMK0=NMN0||NNP1。
3)通過(guò)上述步驟,MN 從票據(jù)TNP1中獲得NP1 的公鑰PNP1,并用其加密自己的票據(jù)TMN,隨機(jī)數(shù)NMN0以及H(KPMK0)。MN 將加密消息發(fā)送給NP1。NP1 收到后使用私鑰解密,得到TMN、NMN0和H(KPMK0)。然后NP1 通過(guò)τexp_MN驗(yàn)證票據(jù)是否過(guò)期。如果沒(méi)有過(guò)期,NP1 驗(yàn)證SigA_MN是否合法。當(dāng)SigA_MN合法,NP1計(jì)算共享密鑰KPMK0=NMN0||NNP1,并通過(guò)單向散列函數(shù)運(yùn)算,與H(KPMK0)進(jìn)行比較,保證NP1 和MN 持有一致的共享密鑰。此時(shí)NP1 完成對(duì)MN 的認(rèn)證。最后NP1 為MN 創(chuàng)建用于切換認(rèn)證的票據(jù)θMN。
4)NP1使用共享密鑰KPMK0加密θMN和H(NMN0||θMN)后發(fā)送給MN。MN 解密得到切換認(rèn)證票據(jù)θMN,并驗(yàn)證H(NMN0||θMN),保證θMN的正確性。
為了實(shí)現(xiàn)快速切換,NP1 將一些信息通過(guò)路由共享給鄰居代理。以鄰居代理NP2 為例,NP1 根據(jù)NP2 的標(biāo)識(shí)INP2生成臨時(shí)密鑰KPMK1=H(KPMK0||INP2)。同時(shí)生成MN 新標(biāo)識(shí)IMN1=H(IMN0||INP2)以保護(hù)用戶的匿名性。之后NP1 通過(guò)NP 間共享密鑰加密θMN、KPMK1和IMN1后發(fā)送給NP2,用于切換認(rèn)證。這些計(jì)算全部發(fā)生在代理,不會(huì)給MN 帶來(lái)計(jì)算負(fù)擔(dān)。當(dāng)MN移動(dòng)到NP2 時(shí),會(huì)進(jìn)行切換認(rèn)證。具體流程如圖3所示。
圖3 切換認(rèn)證流程
1)MN 首先生成用于切換的臨時(shí)密鑰KPMK1=H(KPMK0||INP2)、新標(biāo)識(shí)IMN1=H(IMN0||INP2)和隨機(jī)數(shù)NMN1。然后MN 使用KPMK1加密IMN1、NMN1、H(IMN1||NMN1||θMN),將加密信息發(fā)送給NP2。NP2 收到后,使用從NP1 獲取到的臨時(shí)密鑰KPMK1解密,驗(yàn)證H(IMN1||NMN1||θMN)是否正確。如果正確,則NP2 對(duì)MN 認(rèn)證通過(guò)。接著NP2 生成隨機(jī)數(shù)NNP2,并計(jì)算與MN 的共享密鑰KPMK2=NMN1||NNP2。
2)NP2使用KPMK1加密NNP2、H(NNP2||θMN)、H(KPMK2)后,將消息發(fā)送給MN。MN 收到并解密得到NNP2,然后使用NNP2驗(yàn)證H(NNP2||θMN)。如果驗(yàn)證通過(guò),則MN完成對(duì)NP2 的認(rèn)證。之后MN 計(jì)算它與NP2 的共享密鑰KPMK2=NMN1||NNP2,驗(yàn)證H(KPMK2),確保和NP2 擁有一致的共享密鑰。
通過(guò)以上兩次通信完成NP2 和MN 的切換認(rèn)證,并協(xié)商出用于之后通信的共享密鑰KPMK2。
該文將從4 個(gè)方面分析本文方案的安全性。
1)雙向認(rèn)證
在接入認(rèn)證階段,NP1 和MN 互相發(fā)送和驗(yàn)證票據(jù)。票據(jù)中AS 的簽名能保證NP1 和MN 的合法性。此外,MN 的票據(jù)TMN經(jīng)過(guò)NP1 公鑰PNP1的加密,只能NP1 才能解密出消息內(nèi)容。在切換認(rèn)證前,切換認(rèn)證票據(jù)θMN和MN 的新標(biāo)識(shí)被NP1 通過(guò)NP 間共享密鑰的方式傳送給NP2。NP1 和MN 的共享密鑰KPMK0是雙方各自生成的,沒(méi)有在信道上傳遞,不能被攻擊者獲取,保證了KPMK0加密的θMN的安全。NP2 和MN 使用單向散列函數(shù)的方式互相認(rèn)證θMN,一旦θMN偽造就無(wú)法通過(guò)認(rèn)證。因此可以確保NP2和MN 之間的安全認(rèn)證。
2)隱私保護(hù)
MN 的標(biāo)識(shí)IMN0只有在首次請(qǐng)求NRS 服務(wù)時(shí)用到,切換過(guò)程中用到的標(biāo)識(shí)都是由MN 提供的隨機(jī)數(shù)和NP2 的標(biāo)識(shí)生成,而且該標(biāo)識(shí)是NP1 和MN 各自生成的,沒(méi)有在信道上傳遞,降低了被獲取到的概率。在每次切換過(guò)程中更新標(biāo)識(shí)能對(duì)MN 的隱私性提供保護(hù)。而且切換時(shí)NP2 和MN 迅速協(xié)商了新的共享密鑰,就算攻擊者得到了臨時(shí)密鑰,也無(wú)法用其竊聽(tīng)后續(xù)通信。
3)抵抗重放攻擊
攻擊者可能會(huì)在認(rèn)證階段竊聽(tīng)消息,之后重放這些消息試圖通過(guò)認(rèn)證。但是該方案不僅在票據(jù)上加入有效期防止重放攻擊,而且在接入認(rèn)證和切換認(rèn)證的過(guò)程中都加入了隨機(jī)數(shù)確保信息新鮮度,完成認(rèn)證后這些隨機(jī)數(shù)就會(huì)被丟棄。另外,隨機(jī)數(shù)不是明文傳輸,通過(guò)密鑰和單向散列函數(shù)的方式,避免被攻擊者篡改和竊取。
4)抵抗偽造攻擊
在接入認(rèn)證的過(guò)程中,NP1 和MN 的票據(jù)由AS的數(shù)字簽名保證合法有效。認(rèn)證的信息都會(huì)攜帶相關(guān)的單向散列函數(shù)的運(yùn)算結(jié)果,確保信息的完整性。如果被偽造就能識(shí)別出來(lái)。
如果認(rèn)證方案中設(shè)備的負(fù)擔(dān)過(guò)高,會(huì)嚴(yán)重影響認(rèn)證時(shí)延,降低認(rèn)證效率。該文主要以通信開(kāi)銷和計(jì)算代價(jià)作為性能的衡量指標(biāo)[20-22]。其中通信開(kāi)銷和認(rèn)證雙方完成認(rèn)證的通信次數(shù)有關(guān)。每次通信的時(shí)間用T(ms)表示。而計(jì)算代價(jià)主要和認(rèn)證過(guò)程中的加密(TE),解密(TD),簽名(Tsig)、驗(yàn)證(Tver)、哈希(TH)等運(yùn)算有關(guān),可以通過(guò)這些運(yùn)算使用的算法的計(jì)算時(shí)延來(lái)衡量。實(shí)驗(yàn)配置為Intel(R) Core(TM) i5-10210U CPU,16G 內(nèi)存,Ubuntu 20.04.1 LTS 操作系統(tǒng),內(nèi)核版本號(hào)4.19.104,編程語(yǔ)言版本為Python3.8,加密庫(kù)版本為pycryptodome 3.9.9。通過(guò)實(shí)驗(yàn)得到相關(guān)算法的計(jì)算時(shí)延如表2 所示。實(shí)驗(yàn)結(jié)果表明認(rèn)證的開(kāi)銷主要集中在解密和簽名操作。
表2 計(jì)算時(shí)延
不同方案在接入認(rèn)證和切換認(rèn)證中主要操作的使用次數(shù)及計(jì)算代價(jià)見(jiàn)表3 和表4。從中可以看出,該文方案的計(jì)算代價(jià)和通信開(kāi)銷都比較小。與文獻(xiàn)[20-22]相比,該文方案在接入認(rèn)證過(guò)程中,通過(guò)減少M(fèi)N 私鑰解密操作,大大降低了運(yùn)算負(fù)擔(dān)。同時(shí)對(duì)認(rèn)證交互流程去冗余,認(rèn)證雙方通過(guò)四次通信就可以完成安全認(rèn)證,而其他方案均需要六次通信。認(rèn)證流程去冗余雖然減少了認(rèn)證交互的次數(shù),但并不妨礙MN 和NP 協(xié)商出一致的共享密鑰。這點(diǎn)在切換認(rèn)證中也有所體現(xiàn),切換認(rèn)證雙方只需要兩次通信就可以完成安全認(rèn)證并協(xié)商出共享密鑰。從表4可以看出該文方案切換認(rèn)證過(guò)程的計(jì)算代價(jià)相比文獻(xiàn)[20]和文獻(xiàn)[22]增加了0.028 ms 和0.04 ms。考慮到文獻(xiàn)[20]在切換認(rèn)證過(guò)程中的明文傳輸帶來(lái)的風(fēng)險(xiǎn)以及文獻(xiàn)[20]和文獻(xiàn)[22]均沒(méi)有協(xié)商新共享密鑰導(dǎo)致的后續(xù)通信安全問(wèn)題,這種計(jì)算代價(jià)的增加是值得的。此外切換認(rèn)證因?yàn)闇p少一次通信時(shí)間,該文方案切換認(rèn)證的總時(shí)間開(kāi)銷對(duì)于文獻(xiàn)[20-21]有很大的優(yōu)勢(shì)。從表5 可以看出,該文方案總認(rèn)證效率非常高,計(jì)算代價(jià)比文獻(xiàn)[20-22]減少48.8%,通信開(kāi)銷比文獻(xiàn)[20-21]降低33.3%,比文獻(xiàn)[22]降低25%。
表3 接入認(rèn)證運(yùn)算次數(shù)比較
表4 切換認(rèn)證運(yùn)算次數(shù)比較
表5 認(rèn)證計(jì)算總代價(jià)
該文結(jié)合名字解析系統(tǒng)中移動(dòng)設(shè)備切換代理場(chǎng)景的特點(diǎn),參考并改進(jìn)無(wú)線網(wǎng)絡(luò)中的切換認(rèn)證方案,提出一種基于票據(jù)的快速切換認(rèn)證方案。分析表明該方案在安全性方面能提供諸如隱私保護(hù)、雙向認(rèn)證、抵抗重放攻擊等保障。在性能方面,該方案的計(jì)算代價(jià)和通信開(kāi)銷分別減少48%和25%。因此可以保證移動(dòng)設(shè)備的切換認(rèn)證安全高效。在未來(lái)的工作中,需要進(jìn)一步研究大量移動(dòng)設(shè)備的批量切換認(rèn)證方案。