常相茂,占俊,王志偉
(1.南京航空航天大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106;2.南京郵電大學(xué)計算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210023)
隨著物聯(lián)網(wǎng)應(yīng)用的普及和發(fā)展,許多由通信引起的問題逐漸凸顯出來,例如應(yīng)用場景分散、行業(yè)標(biāo)準(zhǔn)過多以及通信能耗過高等。為解決這些問題,2016 年,全球第三代合作伙伴計劃(3GPP,3rd generation partnership project)委員會克服各種技術(shù)困難最終制定了窄帶物聯(lián)網(wǎng)(NB-IoT,narrowband Internet of things)的核心標(biāo)準(zhǔn)[1]。同傳統(tǒng)的無線物聯(lián)網(wǎng)通信技術(shù)相比,NB-IoT 具有大容量、廣覆蓋、低功耗和低成本特點[2],這為部署在長期難以達(dá)到的地方且傳輸數(shù)據(jù)量較少的物聯(lián)網(wǎng)設(shè)備提供了一種更好的網(wǎng)絡(luò)接入方式,已經(jīng)被廣泛用于智能停車[3]、智能抄表[4]和智能醫(yī)院[5]等場景。隨著NB-IoT 技術(shù)逐漸融入人們的生活,越來越多的NB-IoT 節(jié)點設(shè)備連接到網(wǎng)絡(luò),來滿足用戶多樣化的需求。但是由于設(shè)備資源受限、位置暴露,這些NB-IoT 節(jié)點極易遭受攻擊者的攻擊,尤其是那些用于收集和傳輸用戶敏感數(shù)據(jù)的設(shè)備。一旦這些設(shè)備遭受攻擊,就會導(dǎo)致用戶敏感數(shù)據(jù)遭到泄露,造成不可挽回的損失。因此,在訪問認(rèn)證過程和數(shù)據(jù)傳輸過程中,對用戶身份隱私和傳輸數(shù)據(jù)安全的保障至關(guān)重要。
NB-IoT 網(wǎng)絡(luò)消耗大約180 kHz 的帶寬,上下行峰值速率理論上不會超過250 kbit/s[2],因此當(dāng)大規(guī)模的NB-IoT 節(jié)點激活向核心服務(wù)器申請接入認(rèn)證時,大量的信令請求會增加網(wǎng)絡(luò)的通信壓力,甚至引起通信堵塞,從而影響NB-IoT 應(yīng)用程序的服務(wù)質(zhì)量,降低系統(tǒng)運(yùn)行效率。隨機(jī)時延機(jī)制是一種常用的避免數(shù)據(jù)沖突和網(wǎng)絡(luò)擁塞的方法,即當(dāng)NB-IoT節(jié)點被喚醒后,各自隨機(jī)延遲一段時間再進(jìn)行接入以免并發(fā)通信造成沖突,然而該機(jī)制存在如下2 個方面的弊端:一是該機(jī)制并沒有減少所需認(rèn)證消息的數(shù)量,當(dāng)存在大量NB-IoT 節(jié)點需要與服務(wù)器進(jìn)行認(rèn)證時(每個NB-IoT 小區(qū)可達(dá)5 萬連接數(shù)[1]),需要非常大的時延來避免沖突;二是該機(jī)制無法確保避免沖突,依然存在2 個或多個節(jié)點延遲相同時間而發(fā)生并發(fā)沖突的情況。為提高大規(guī)模節(jié)點接入認(rèn)證時的效率、降低通信開銷,許多基于群組的聚合認(rèn)證協(xié)議被提出[6]。將同一區(qū)域內(nèi)的節(jié)點根據(jù)功能或其他相似特性劃分為一組,認(rèn)證時服務(wù)器對群組的身份進(jìn)行驗證,從而一次性完成對群組中所有成員身份的認(rèn)證。然而,現(xiàn)有協(xié)議中群組認(rèn)證請求的數(shù)據(jù)大小會隨群組中成員數(shù)量的增加而變大,當(dāng)規(guī)模龐大的NB-IoT 節(jié)點群組申請認(rèn)證時,仍有可能會引起通信堵塞。
本文基于Schnorr聚合簽名技術(shù)實現(xiàn)NB-IoT節(jié)點群組的聚合簽名,將群組的認(rèn)證請求大小設(shè)置為固定值,不會隨著群組中成員數(shù)量的變化而變化,同時,為了保障數(shù)據(jù)通信的安全,采用基于中國剩余定理的密鑰分發(fā)管理機(jī)制,服務(wù)器能以固定的信息量完成對群組內(nèi)成員會話密鑰信息的分發(fā),因此服務(wù)器回復(fù)消息是一個定值。將群組和服務(wù)器認(rèn)證時的通信量固定為確定的大小,從而有效減少帶寬消耗,降低堵塞風(fēng)險。性能分析結(jié)果表明,與現(xiàn)有身份安全認(rèn)證協(xié)議相比,本文所提協(xié)議在傳輸開銷和帶寬消耗方面表現(xiàn)優(yōu)異。本文有以下兩點貢獻(xiàn)。
1) 本文基于Schnorr聚合簽名和中國剩余定理提出了一種新型的群組身份安全認(rèn)證協(xié)議,可以實現(xiàn)服務(wù)器和NB-IoT 節(jié)點的雙向認(rèn)證,認(rèn)證產(chǎn)生的通信量不隨群組規(guī)模的增大而增加,解決大規(guī)模NB-IoT 節(jié)點安全認(rèn)證時效率低下和占用大量帶寬資源的問題。
2) 本文使用協(xié)議形式化分析工具Scyther 對協(xié)議的安全性進(jìn)行仿真分析,驗證了所提協(xié)議能夠提供可靠的安全性能,可抵御重放攻擊、中間人攻擊等常見協(xié)議攻擊模式。
NB-IoT 是一種蜂窩網(wǎng)絡(luò),在傳統(tǒng)的蜂窩網(wǎng)絡(luò)LTE-A(long term evolution-advanced)中,基于群組的身份安全認(rèn)證協(xié)議主要可分為兩類。在第一類身份認(rèn)證協(xié)議中,設(shè)備組由屬于同一歸屬網(wǎng)絡(luò)中的用戶設(shè)備(UE,user equipment)或者機(jī)器類型通信設(shè)備(MTCD,machine type communication device)組成。當(dāng)設(shè)備組中第一個成員移動進(jìn)入服務(wù)網(wǎng)絡(luò)的覆蓋范圍后,該成員在執(zhí)行認(rèn)證過程中會將整個群組的相關(guān)信息發(fā)送給網(wǎng)絡(luò)。Chen 等[6]首先提出了該類型的群組身份安全認(rèn)證協(xié)議,用于大規(guī)模設(shè)備從歸屬網(wǎng)絡(luò)漫游到服務(wù)網(wǎng)絡(luò)的訪問控制,隨后其他研究人員也提出了一些類似的協(xié)議[7-10]。在該類方案中,服務(wù)網(wǎng)絡(luò)對第一個群組設(shè)備進(jìn)行認(rèn)證后,可以簡化同其他成員的認(rèn)證過程,從而減少服務(wù)網(wǎng)絡(luò)和歸屬網(wǎng)絡(luò)之間的通信開銷。但是,群組中每個設(shè)備仍然需要單獨向服務(wù)網(wǎng)絡(luò)發(fā)起訪問認(rèn)證請求,這依舊會導(dǎo)致大量的信令開銷,無法避免通信堵塞。
在第二類身份認(rèn)證協(xié)議中,設(shè)備群組會選擇一個設(shè)備作為群組組長Leader,由Leader 聚合并發(fā)送群組成員的認(rèn)證請求。當(dāng)設(shè)備群組進(jìn)行訪問身份認(rèn)證時,Leader 將收集群組中所有成員的身份認(rèn)證請求并聚合為一條群組身份認(rèn)證請求,而服務(wù)端只需要驗證Leader 發(fā)送的聚合身份認(rèn)證請求就可以驗證設(shè)備組中所有成員的身份。Lai 等[11]提出了一種基于聚合消息認(rèn)證碼的輕量級群組訪問認(rèn)證協(xié)議。之后,Cao 等[12]提出了一種利用雙線性配對聚合簽名技術(shù)的群組身份認(rèn)證協(xié)議。Li 等[13]采用(t,m,n)密鑰共享機(jī)制和Diffie-Hellman 密鑰交換協(xié)議提出了一種具有動態(tài)更新策略的群組身份安全認(rèn)證協(xié)議。為了解決公鑰體系中的密鑰托管問題,Lai 等[14]提出了一種基于無證書聚合簽名技術(shù)的聚合認(rèn)證協(xié)議,來提高大規(guī)模MTCD 訪問3GPP 網(wǎng)絡(luò)的效率和安全性。但是,無證書聚合簽名技術(shù)中所使用的雙線性配對操作會導(dǎo)致大量的計算負(fù)載,并不適用于資源受限的物聯(lián)網(wǎng)設(shè)備。為了降低計算負(fù)載,Lai等[15]提出了一種僅使用哈希函數(shù)和異或操作的輕量級聚合身份認(rèn)證機(jī)制。Ren 等[16]提出了一種基于物理不可克隆函數(shù)(PUF,physical unclonable function)的雙向認(rèn)證。PUF 用于生成共享根密鑰,群組Leader 負(fù)責(zé)聚合和中轉(zhuǎn)認(rèn)證信息,通過激活海量設(shè)備的附著請求消息達(dá)到降低信令和通信開銷的目的。與之不同,本文通過Schnorr 聚合簽名和中國剩余定理減少認(rèn)證消息來降低通信開銷。
在NB-IoT 網(wǎng)絡(luò)中,Cao 等[17]使用不基于雙線性配對的無證書簽密技術(shù)提出了一種群組聚合訪問認(rèn)證協(xié)議,以實現(xiàn)大規(guī)模NB-IoT 設(shè)備的快速認(rèn)證和數(shù)據(jù)傳輸。Zhang 等[18]提出了一種基于無證書簽名技術(shù)的多方快速認(rèn)證機(jī)制,該機(jī)制實現(xiàn)了NB-IoT網(wǎng)絡(luò)中多個UE以及認(rèn)證服務(wù)器之間的快速認(rèn)證。為了抵御量子攻擊的威脅,Yu 等[19-20]提出了一種基于格加密的抗量子攻擊聚合身份認(rèn)證協(xié)議,但是其計算負(fù)載較高,并不適于資源受限的NB-IoT設(shè)備。盡管這些協(xié)議通過聚合認(rèn)證請求減少了認(rèn)證期間的通信數(shù)據(jù)量,但是聚合請求的大小仍然受組中成員數(shù)量的影響,當(dāng)設(shè)備組中成員數(shù)量很大時,仍然存在通信阻塞的風(fēng)險。
Schnorr 簽名算法因為可靠的安全性、可聚合的特點,已經(jīng)被廣泛應(yīng)用于各種安全認(rèn)證領(lǐng)域。Maxwell 等[21]基于Schnorr 算法提出了一種多重簽名算法Musig,用于提高比特幣中合法性驗證的效率,增強(qiáng)用戶隱私保護(hù)。Ni 等[22]使用Schnorr算法提出了一種支持5G 網(wǎng)絡(luò)切片和霧計算的匿名身份安全認(rèn)證協(xié)議,但是協(xié)議建立在網(wǎng)絡(luò)資源充裕的情況下,并不適于網(wǎng)絡(luò)資源有限的NB-IoT網(wǎng)絡(luò)。中國剩余定理可以將分發(fā)的信息進(jìn)行聚合,實現(xiàn)輕量化的組密鑰管理機(jī)制,Vijayakumar 等[23]基于此提出了一種輕量化的、集中式的群組密鑰管理機(jī)制,用于多播安全通信,之后在無線傳感網(wǎng)絡(luò)、車聯(lián)網(wǎng)等物聯(lián)網(wǎng)環(huán)境中也得到了進(jìn)一步的應(yīng)用[24-26]。但是這些協(xié)議只考慮成員節(jié)點數(shù)量有限的情況,并未考慮大規(guī)模數(shù)量節(jié)點情況對網(wǎng)絡(luò)可能造成的巨大壓力。
假設(shè)p是一個大素數(shù),E是有限域Fp上的橢圓曲線,G∈E(Fp)是橢圓曲線上的一個q階點。橢圓曲線離散對數(shù)難題是給定Q∈E(Fp)和G,求解整數(shù)使等式Q=kG成立??梢宰C明給定G和k求解Q非常容易,但是給定Q和G求解k非常困難,目前還沒有一個有效的方法可以解決該難題[27]。
Schnorr 簽名算法最初由德國的數(shù)學(xué)家、密碼學(xué)家Schnorr[28]提出,在性能、安全、體積、擴(kuò)展性等諸多方面都優(yōu)于橢圓曲線數(shù)字簽名算法。Schnorr簽名算法的安全性可以通過隨機(jī)預(yù)言模型進(jìn)行驗證[29],而且由于算法是線性的,因此可以進(jìn)行聚合簽名或者對大規(guī)模的簽名進(jìn)行一次性的驗證,有效節(jié)省空間、提高效率。
Schnorr 簽名的生成過程為給定大素數(shù)p、橢圓曲線E(Fp)和橢圓曲線上的q階點G∈E(Fp),選擇隨機(jī)數(shù)并計算R=rG。使用私鑰對消息m進(jìn)行簽名,Schnorr 簽名為(R,s),其中,s如式(1)所示[30]。
使用公鑰X=xG對消息m簽名有效性的驗證如式(2)所示。
Schnorr 的聚合簽名是使用多個私鑰對消息進(jìn)行聚合簽名,驗證時使用由多個私鑰派生出的公共公鑰進(jìn)行驗證。例如使用私鑰對消息m聚合簽名,選擇并分別計算s1,s2,公共公鑰為X=(x1+x2)G,聚合簽名(R,s)為
聚合簽名的驗證使用公共公鑰,驗證過程與單個簽名的驗證相同,如式(2)所示。
中國剩余定理又稱孫子定理,是數(shù)論中的一個重要定理,該定理給出了一元線性同余方程組的有解判定條件和有解情況下的解的具體形式。給定兩兩互質(zhì)的正整數(shù)m1,m2,…,mn和任意正整數(shù)a1,a2,…,ak,如式(4)所示的同余方程組有解,且在模下有唯一解。
對所有i=1,2,…,n,計算M i=M/mi和模乘逆滿足式(5)。
方程組的唯一解如式(6)所示。
如果將mi看作節(jié)點私鑰,a i看作需要分發(fā)的信息,那么服務(wù)器只需要求解并廣播x就可以完成對n條信息a1,a2,…,an的分發(fā),節(jié)點可以使用私鑰mi通過求模運(yùn)算得到消息ai≡x(modmi)。
本文討論的NB-IoT 網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)如圖1 所示。同一區(qū)域內(nèi)的NB-IoT 節(jié)點根據(jù)功能或其他相似特性劃分為一組,同一節(jié)點群組中成員屬于同一應(yīng)用服務(wù)器,會根據(jù)節(jié)點計算能力、電池容量等情況選擇一個節(jié)點作為群組Leader。群組中的NB-IoT 節(jié)點會在同一時刻喚起,通過NB-IoT 網(wǎng)絡(luò)與應(yīng)用服務(wù)器進(jìn)行通信。節(jié)點發(fā)送或接收數(shù)據(jù)前,服務(wù)器需要對節(jié)點的身份進(jìn)行安全認(rèn)證。服務(wù)器會生成認(rèn)證過程中所使用的所有密鑰,同時扮演密鑰生成中心的角色。
圖1 NB-IoT 網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)
在本文所討論的系統(tǒng)中,NB-IoT 節(jié)點與服務(wù)器之間的通信是不安全的,外部攻擊者可以控制、截取或者篡改NB-IoT節(jié)點與服務(wù)器的無線通信消息。除此之外,攻擊者還可以模仿偽裝成應(yīng)用服務(wù)器或者NB-IoT 節(jié)點,進(jìn)行重放攻擊、中間人攻擊等攻擊,實現(xiàn)上傳錯誤數(shù)據(jù)或者盜取隱私數(shù)據(jù)。由于NB-IoT 節(jié)點數(shù)量巨大,同時與服務(wù)器進(jìn)行通信時,大量的信令可能會導(dǎo)致網(wǎng)絡(luò)負(fù)擔(dān)過重或通信堵塞。為了同時滿足NB-IoT 網(wǎng)絡(luò)對認(rèn)證效率、安全性和通信量限制的要求,本文所提協(xié)議需要滿足以下幾點要求。
1) 雙向認(rèn)證。當(dāng)節(jié)點群組與服務(wù)器建立連接時,服務(wù)器需要完成對節(jié)點群組中所有節(jié)點的身份認(rèn)證。除此之外,節(jié)點群組中的所有成員也能夠?qū)Ψ?wù)器的身份進(jìn)行安全認(rèn)證。
2) 會話密鑰建立。在認(rèn)證的過程中,能夠?qū)τ糜诤罄m(xù)服務(wù)器與節(jié)點通信的會話密鑰進(jìn)行更新,以保護(hù)后續(xù)傳輸數(shù)據(jù)的安全性。
3) 對常見協(xié)議攻擊的抗性。協(xié)議需要能夠抵御常見的一些攻擊,例如重放攻擊、中間人攻擊、偽裝攻擊等。
4) 高效性。服務(wù)器能夠一次性完成對這個節(jié)點群組成員的身份認(rèn)證,同時應(yīng)降低通信和計算負(fù)載,來避免通信堵塞。
本節(jié)所使用的符號定義如表1 所示。
表1 符號定義
在初始化階段,服務(wù)器根據(jù)所選擇的安全等級參數(shù),生成認(rèn)證所需的各種參數(shù)以及服務(wù)器自身的密鑰。服務(wù)器首先決定安全等級參數(shù)k,并選擇一個大素數(shù)p> 2k。然后在有限域Fp上選擇橢圓曲線E(Fp),E(Fp)上的q階點G∈E(Fp)和哈希函數(shù)最后選擇隨機(jī)數(shù)作為自身的私鑰,計算公鑰Pc=xc G,將{q,E(Fp),G,hash(),Pc}作為系統(tǒng)參數(shù)公布并保密xc。
在注冊階段,節(jié)點UEi向服務(wù)器進(jìn)行注冊獲得密鑰以及所在群組的相關(guān)參數(shù)。
假設(shè)群組由n個節(jié)點組成,UEi向服務(wù)器發(fā)送自身IDi進(jìn)行注冊,服務(wù)器進(jìn)行以下步驟。
在雙向認(rèn)證階段,群組中節(jié)點完成同服務(wù)器的雙向認(rèn)證以及會話密鑰分發(fā)。當(dāng)群組喚醒準(zhǔn)備同服務(wù)器發(fā)送或接收數(shù)據(jù)時,所有節(jié)點對當(dāng)前時間戳進(jìn)行簽名并由群組Leader 聚合發(fā)送給服務(wù)器進(jìn)行認(rèn)證,服務(wù)器根據(jù)聚合簽名的有效性可以對整個群組進(jìn)行一次性認(rèn)證。由于群組內(nèi)節(jié)點數(shù)量有限,在群組Leader 聚合每個節(jié)點的簽名時,Leader 可以給每個節(jié)點分配不同的子載波避免沖突和信道阻塞。
為了保證后續(xù)通信的安全,服務(wù)器為每個節(jié)點選擇隨機(jī)數(shù)用于生成會話密鑰。服務(wù)器利用中國剩余定理加密保護(hù)隨機(jī)數(shù),簽名后發(fā)送給群組Leader,群組Leader 再分發(fā)給節(jié)點。在驗證了服務(wù)器簽名的有效性后,節(jié)點使用私鑰解密得到隨機(jī)數(shù),生成會話密鑰。
5) 服務(wù)器接收到群組的認(rèn)證請求后,執(zhí)行以下步驟。
①根據(jù)自己的當(dāng)前時刻與Tu的差異檢查時間戳Tu的時效性。
群組中的節(jié)點可能因為應(yīng)用需求改變或發(fā)生故障等原因退出群組,附近節(jié)點也可能因為應(yīng)用需求變化使喚醒時間變動,從而需要加入群組。在本文協(xié)議中,組密鑰可用于生成群組公共公鑰、會話密鑰以及認(rèn)證服務(wù)器,還可用于在組內(nèi)建立安全通信和加密服務(wù)器發(fā)送給群組的分發(fā)消息。因此,當(dāng)組成員發(fā)生變動時,應(yīng)及時更新組密鑰,以避免可能存在的安全隱患,保證群組認(rèn)證和通信的安全。
5.4.1 組成員離開
3) UEi計算得到更新后的組密鑰。
5.4.2 新成員加入
3) UEi計算得到更新后的組密鑰。
1) 雙向認(rèn)證和會話密鑰建立。服務(wù)器能夠使用群組的公共公鑰對群組的聚合認(rèn)證請求進(jìn)行驗證,從而完成對整個群組節(jié)點的身份認(rèn)證。因為公共公鑰是由組密鑰和群組成員的公鑰以非線性方式生成的,所以只有群組內(nèi)的所有成員一起才能夠生成有效的群組聚合請求。群組成員能夠使用服務(wù)器的公鑰對服務(wù)器的簽名進(jìn)行驗證,從而驗證服務(wù)器的身份,實現(xiàn)雙向認(rèn)證。群組成員使用私鑰只能解密分發(fā)給自己的隨機(jī)數(shù),并不能獲得其他分發(fā)信息的有關(guān)內(nèi)容,使用解密得到的隨機(jī)數(shù)生成會話密鑰,實現(xiàn)了會話密鑰的建立并保證了會話密鑰的機(jī)密性。
2) 重放攻擊抗性。在協(xié)議認(rèn)證過程中,使用了時間戳Tu和Tc,并用簽名保護(hù)了消息的完整性,因此攻擊者即使執(zhí)行重放攻擊,也會因為時間戳的時效性失效而攻擊失敗。
3) 中間人攻擊抗性。因為橢圓曲線離散對數(shù)難題的求解困難性,認(rèn)證過程中的隨機(jī)數(shù)ri,rc的安全性可以得到保證。攻擊者并不了解群組成員的私鑰,所以也不能夠偽造群組認(rèn)證消息。又因為攻擊者不知道群組密鑰,所以也不能夠偽造服務(wù)器的回復(fù)消息。中國剩余定理保護(hù)了分發(fā)隨機(jī)數(shù)的安全性,并建立了群組成員和服務(wù)器之間的會話密鑰,防止后續(xù)通信被竊聽和篡改的可能。
4) 認(rèn)證信令堵塞避免。在所提協(xié)議中,大規(guī)模NB-IoT 節(jié)點的認(rèn)證請求會由群組Leader 收集聚合為群組聚合認(rèn)證請求,再發(fā)送給服務(wù)器進(jìn)行身份認(rèn)證,大大減少了信令數(shù)量并簡化了認(rèn)證流程。同時,使用基于中國剩余定理的方式分發(fā)密鑰信息,有效減少了服務(wù)器回復(fù)的數(shù)據(jù)量和帶寬消耗。
5) 內(nèi)部人攻擊抗性。①服務(wù)器側(cè):服務(wù)器在注冊階段結(jié)束以后,會刪除UEi的私鑰xi,僅保存vari用于后續(xù)會話密鑰信息的分發(fā)。因此,服務(wù)器側(cè)的內(nèi)部攻擊者也不能從數(shù)據(jù)庫中盜取到節(jié)點的私鑰從而偽裝成節(jié)點進(jìn)行惡意攻擊。②設(shè)備群組內(nèi)部:由于聚合簽名和群組公共公鑰的生成都使用了非線性的方式,因此群組內(nèi)的攻擊者在不了解其他成員私鑰的情況下不能夠獨自或排除某些成員生成合法的聚合簽名。會話密鑰信息必須使用對應(yīng)節(jié)點的私鑰才能解密得到,而群組內(nèi)部攻擊者在沒有得到其他成員私鑰的情況下,只使用自身的私鑰和群組組密鑰,不能夠生成其他節(jié)點的會話密鑰從而偽裝成組內(nèi)其他節(jié)點或竊取到其他節(jié)點發(fā)送的數(shù)據(jù)。
本節(jié)使用協(xié)議形式化分析工具Scyther[25]對本文所提協(xié)議進(jìn)行安全性仿真分析。Scyther 工具可以對協(xié)議進(jìn)行形式化的描述,仿真驗證協(xié)議的機(jī)密性和可認(rèn)證性是否存在安全風(fēng)險,支持無限會話輪數(shù)的分析,除了支持Dolev-Yao 模型和強(qiáng)安全模型外,還支持自定義安全模型,在搜索攻擊、安全證明方面非常有用。Scyther 工具采用多種形式的身份驗證聲明,例如Nisynch、Niagree、Alive 和Weakagree 等來檢測重放攻擊、中間人攻擊等安全攻擊,使用SKR 聲明來驗證協(xié)議執(zhí)行過程中生成密鑰的機(jī)密性。
本文主要分析以下3 個角色:群組節(jié)點UEi、群組Leader 和服務(wù)器,在工具中分別表示為UEi、Leader 和Server。在本文所提協(xié)議中,初始化階段、注冊階段和組密鑰更新階段可以認(rèn)為是安全的,因此,僅考慮雙向認(rèn)證階段。采用Dolev-Yao 攻擊者模型對協(xié)議進(jìn)行安全分析。在該模型中,攻擊者被認(rèn)為可以完全控制整個網(wǎng)絡(luò)中的通信并執(zhí)行一系列的攻擊,包括竊聽、攔截、偽造消息等。將本文所提協(xié)議在Scyther 工具中建模,并指定聲明協(xié)議的安全屬性,如圖2 所示。從圖2 中可以看出,經(jīng)過Scyther 工具的仿真分析,并未發(fā)現(xiàn)可行的安全攻擊,說明協(xié)議具有可靠的安全性。
圖2 Scyther 工具的正式安全分析結(jié)果
本節(jié)從傳輸開銷、帶寬消耗和計算負(fù)載等方面分析本文所提協(xié)議的性能表現(xiàn),并同其他現(xiàn)有的群組認(rèn)證協(xié)議進(jìn)行比較,包括GAKA[6]、DGBAKA[7]、MTCAKA[8]、SEAKA[9]、EGAKA[10]、GBAAM[12]、GRAKA[13]、LGTH[11]和FADTS[17]。本節(jié)所使用的符號定義如表2 所示。
表2 符號定義
由于傳輸一次的功耗開銷與距離、數(shù)據(jù)量等多種因素相關(guān),為了便于分析對比本文所提協(xié)議和其他現(xiàn)有協(xié)議的傳輸開銷,假設(shè)NB-IoT 節(jié)點UEi與服務(wù)器進(jìn)行一次傳輸?shù)拈_銷為一個單位,UEi與群組內(nèi)節(jié)點、Leader 進(jìn)行一次傳輸?shù)拈_銷為a個單位,UEi與NB-IoT 網(wǎng)絡(luò)的中eNB 進(jìn)行一次傳輸?shù)拈_銷為b個單位。由于群組中UEi之間的距離一般不超過100 m,因此群組間的傳輸開銷遠(yuǎn)小于一個單位。通常,UEi與eNB 之間的傳輸開銷會因為UEi的部署情況而不同,但是eNB 與服務(wù)器之間的通信因為主要通過有線信道進(jìn)行傳輸,因此傳輸開銷可以認(rèn)為是固定的。根據(jù)文獻(xiàn)[17],對傳輸開銷進(jìn)行簡化分析,令a=0.01,b=0.8。不同協(xié)議之間的傳輸開銷對比如表3 和圖3所示。從表3 和圖3 中可以發(fā)現(xiàn),本文所提協(xié)議的傳輸開銷與FADTS 協(xié)議相當(dāng),遠(yuǎn)小于其他現(xiàn)有協(xié)議。
表3 不同協(xié)議的傳輸開銷對比
圖3 傳輸開銷對比
通過對比傳輸?shù)臄?shù)據(jù)量大小,來分析對比本文所提協(xié)議和其他現(xiàn)有協(xié)議的帶寬消耗,不失一般性,不同參數(shù)的帶寬消耗如表4 所示。
表4 不同參數(shù)的帶寬消耗
根據(jù)所有消息的大小,現(xiàn)有協(xié)議的帶寬消耗對比如表5 所示。圖4 顯示了在不同分組數(shù)量下,不同協(xié)議之間總的帶寬消耗對比。從圖4中可以發(fā)現(xiàn),本文所提協(xié)議的帶寬消耗遠(yuǎn)小于其他協(xié)議。
表5 不同協(xié)議的帶寬消耗對比
圖4 總帶寬消耗對比
協(xié)議認(rèn)證過程中的計算負(fù)載主要考慮以下3 種加密操作,哈希運(yùn)算th、點乘運(yùn)算tm和雙線性配對操作tp。這3 種加密操作的計算負(fù)載時間如表6 所示,其中數(shù)據(jù)使用芯片為NuvoTon N32905U1DN(ARM926EJ-S@200 MHz)的ARM9節(jié)點測試得到,服務(wù)器數(shù)據(jù)由配置為 Intel i3-4160@3.60 GHz 的Dell 個人電腦測試得到。圖5顯示了節(jié)點數(shù)量和完成認(rèn)證過程中所需的總計算負(fù)載之間的關(guān)系。表7 顯示了不同協(xié)議計算負(fù)載對比。從圖5 中可以發(fā)現(xiàn),本文所提方案計算負(fù)載小于FADTS、SEAKA 和GRAKA,高于EGAKA,由于使用了公鑰機(jī)制來提高安全性,因此遠(yuǎn)高于其他僅使用哈希函數(shù)的方案。
表6 加密操作所需時間
表7 不同協(xié)議計算負(fù)載對比
圖5 計算負(fù)載對比
針對NB-IoT 網(wǎng)絡(luò)中節(jié)點大規(guī)模接入認(rèn)證時的通信堵塞問題,本文提出了一種基于Schnorr 聚合簽名和中國剩余定理的新型群組身份安全認(rèn)證協(xié)議。該協(xié)議能夠一次性對群組中的節(jié)點進(jìn)行身份認(rèn)證,還有效減少了認(rèn)證過程中的帶寬消耗。協(xié)議使用基于Schnorr 聚合簽名的方式生成群組聚合身份認(rèn)證請求,將聚合請求的大小固定為確定值。協(xié)議又采用了基于中國剩余定理的密鑰分發(fā)方式,使服務(wù)器能夠以固定大小的回復(fù)信息完成對群組中所有節(jié)點密鑰的分發(fā),將群組與服務(wù)器之間的認(rèn)證通信數(shù)據(jù)量確定為一固定值,不會隨群組中節(jié)點的數(shù)量而變化,有效減少了認(rèn)證過程中的帶寬消耗。性能分析表明,與其他現(xiàn)有協(xié)議相比,所提協(xié)議在傳輸開銷和帶寬消耗方面性能優(yōu)異。Scyther 工具對所提協(xié)議進(jìn)行了形式化的安全分析,仿真結(jié)果表明,所提協(xié)議具有可靠的安全性能。