辛熙 段金長(zhǎng) 劉曉放 張洪略



摘要:針對(duì)電力監(jiān)控網(wǎng)絡(luò)服務(wù)請(qǐng)求繁多、身份認(rèn)證速度慢等網(wǎng)絡(luò)擁塞問(wèn)題,通過(guò)深入分析網(wǎng)絡(luò)通信過(guò)程中數(shù)據(jù)泄漏發(fā)生原理,并基于PKI機(jī)制下的挑戰(zhàn)。響應(yīng)模式對(duì)通信雙方的密鑰進(jìn)行動(dòng)態(tài)更新,利用哈希函數(shù)對(duì)用戶身份在通信前做及時(shí)認(rèn)證,設(shè)計(jì)了一種安全電力監(jiān)控網(wǎng)絡(luò)安全的接人體系,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)的信息化控制。實(shí)驗(yàn)結(jié)果表明,所提的基于PKI機(jī)制的方案較傳統(tǒng)基于對(duì)稱機(jī)制的方案在犧牲少量計(jì)算代價(jià)的情況下,可實(shí)現(xiàn)通信數(shù)據(jù)高保密高可靠傳輸,在密鑰協(xié)商的相互認(rèn)證階段本文花費(fèi)的通信開(kāi)銷相較于對(duì)稱機(jī)制節(jié)省約4%。
關(guān)鍵詞:監(jiān)控;電力網(wǎng);動(dòng)態(tài)密鑰;相互認(rèn)證;密鑰更新;哈希函數(shù)
中圖分類號(hào):TM632;TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1000-1646(2024)01-0115-06
我國(guó)現(xiàn)階段的電力監(jiān)控網(wǎng)絡(luò)采用無(wú)線傳輸,其關(guān)鍵保障在于設(shè)備接人時(shí)的身份認(rèn)證。根據(jù)電力現(xiàn)貨市場(chǎng)業(yè)務(wù)的需求和現(xiàn)狀,構(gòu)建技術(shù)支撐系統(tǒng)安全構(gòu)架需從系統(tǒng)、業(yè)務(wù)、數(shù)據(jù)、接入4個(gè)方面全方位進(jìn)行設(shè)計(jì),安全架構(gòu)如圖1所示。而現(xiàn)有電力監(jiān)控網(wǎng)絡(luò)服務(wù)面臨的主要問(wèn)題是多任務(wù)請(qǐng)求、身份認(rèn)證速度慢等網(wǎng)絡(luò)擁塞問(wèn)題,而目前的解決思路主要為分別從物理層和不同通信層進(jìn)行研究的安全設(shè)計(jì)方案,但結(jié)合密碼技術(shù)的研究暫時(shí)處于初探階段。DAEMEN等分別利用對(duì)稱加密標(biāo)準(zhǔn)DES類和橢圓曲線ECC的方法,用以保護(hù)企業(yè)核心數(shù)據(jù)防泄漏方面的性能。針對(duì)移動(dòng)終端,SUN等提出了一種集客戶端和云服務(wù)器一體的抗泄漏安全存儲(chǔ)模型。此外,有學(xué)者按照文件與移動(dòng)智能終端的物理依賴,采用密文和明文自由切換,提出文件全生命周期防護(hù)措施。但上述方案由于協(xié)議執(zhí)行過(guò)程中要不斷切換,所以均不同程度地存在時(shí)延長(zhǎng)、實(shí)際效果差的問(wèn)題。
在市場(chǎng)環(huán)境下,電力監(jiān)控網(wǎng)絡(luò)市場(chǎng)技術(shù)支持系統(tǒng)安全防護(hù)所需要遵循的安全策略主要有:1)物理防護(hù),通過(guò)網(wǎng)絡(luò)隔離對(duì)系統(tǒng)的網(wǎng)絡(luò)邊界進(jìn)行防護(hù);2)系統(tǒng)防護(hù),通過(guò)網(wǎng)絡(luò)接入的安全設(shè)計(jì),如加密、身份認(rèn)證、訪問(wèn)控制、終端與應(yīng)用軟件安全管理等措施提升網(wǎng)絡(luò)的安全性能;3)審計(jì)與溯源,采用監(jiān)控與審計(jì)對(duì)惡意行為和違規(guī)操作進(jìn)行責(zé)任追溯。
考慮到電力監(jiān)控網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)安全是全網(wǎng)系統(tǒng)需要保障的核心,因此,本文擬結(jié)合電力網(wǎng)絡(luò)通信架構(gòu)和安全防護(hù)策略,借助密碼學(xué)哈希函數(shù),建立以PKI/CA(公鑰基礎(chǔ)設(shè)施/證書頒發(fā)機(jī)構(gòu))技術(shù)為核心的通信雙方數(shù)據(jù)保護(hù)的身份認(rèn)證與訪問(wèn)控制體系。設(shè)計(jì)框架為內(nèi)部用戶使用企業(yè)內(nèi)建CA系統(tǒng)頒發(fā)的數(shù)字證書,外部用戶使用與中長(zhǎng)期電力交易系統(tǒng)一致的第三方CA系統(tǒng)頒發(fā)的數(shù)字證書,并從數(shù)據(jù)層、系統(tǒng)端實(shí)現(xiàn)網(wǎng)絡(luò)接入和業(yè)務(wù)系統(tǒng)訪問(wèn)時(shí)的身份認(rèn)證等功能。
1 認(rèn)證方案設(shè)計(jì)
在本方案中,主從站之間的通信將選取DNP3協(xié)議,從應(yīng)用層數(shù)據(jù)傳輸入手,所設(shè)計(jì)的方案應(yīng)滿足以下目標(biāo):
1)為減少主從站設(shè)備的頻繁交互,通信存儲(chǔ)與設(shè)計(jì)方案需輕量化;
2)為使系統(tǒng)能自行管理,應(yīng)盡可能避免延遲帶來(lái)的消耗;
3)為避免惡意攻擊,需能抵抗主從站遭受的常見(jiàn)攻擊。
2 安全接入方案設(shè)計(jì)
2.1 基于挑戰(zhàn)響應(yīng)的PKI網(wǎng)絡(luò)設(shè)備安全接入認(rèn)證方案架構(gòu)
在無(wú)線通信中,攻擊者不具備長(zhǎng)時(shí)間無(wú)差錯(cuò)監(jiān)聽(tīng)能力。設(shè)備接入時(shí),數(shù)據(jù)端通常采用加密傳輸,所涉及的操作均為低計(jì)算量操作,如異或、哈希、公鑰等,以降低通信開(kāi)銷。系統(tǒng)安全架構(gòu)將由3部分組成:數(shù)據(jù)加解密、動(dòng)態(tài)鑰生成、共享鑰更新。
2.2 系統(tǒng)初始化
圖2為網(wǎng)絡(luò)安全接入機(jī)制模型。本文基于密碼學(xué)中的雙線性對(duì)密碼系統(tǒng)建立PKI公鑰基礎(chǔ)設(shè)施,主要步驟為:
1)注冊(cè)中心選擇參數(shù)為{G1,G2,P,g,q,e,Ppub,h1-h4,huser,H},系統(tǒng)主私鑰為τ,其中G1和G2分別為q階加法循環(huán)群和乘法循環(huán)群。e為G1到G2上的雙線性映射,P為G1的生成元,g=e(P,P)為G2的生成元;h、H、h1和huser均為協(xié)議設(shè)計(jì)所必須的密碼學(xué)哈希函數(shù),具有保護(hù)信息完整性、防篡改的功能,其中,h、H分別為主站和從站產(chǎn)生各自動(dòng)態(tài)密鑰而使用的函數(shù),h1表示在共享密鑰產(chǎn)生過(guò)程中用到的哈希函數(shù),huser表示初始階段用戶注冊(cè)時(shí)所使用的函數(shù)。
2)注冊(cè)中心選擇系統(tǒng)隨機(jī)數(shù)τ,計(jì)算系統(tǒng)主私鑰τ=τP。
3)本文所選取的哈希函數(shù)h為SHA-1。
2.3 設(shè)備認(rèn)證接入
注冊(cè)中心基于離散對(duì)數(shù)問(wèn)題,選擇隨機(jī)數(shù)rzc作為自身私鑰,產(chǎn)生公鑰grzc,并利用相關(guān)信息對(duì)用戶設(shè)備身份進(jìn)行注冊(cè)。用戶選擇隨機(jī)數(shù)ru和其身份IDu,利用注冊(cè)中心的公鑰產(chǎn)生密文Encgrzc(IDU||ru)發(fā)送給注冊(cè)中心,其中Encx表示經(jīng)加密運(yùn)算產(chǎn)生的密文。注冊(cè)中心根據(jù)利用自身的私鑰先解密,然后產(chǎn)生用戶私鑰密文Encgrc(IDU||gτrUrzc,huser(IDU,grU)),返回給用戶。用戶利用自身私鑰解密該密文,經(jīng)過(guò)哈希huser(IDU,grU)驗(yàn)證,接收gτrUrzc作為后續(xù)通信臨時(shí)共享密鑰,并將信息(gτ,grU,gτrUrzc)存儲(chǔ)到智能電表防篡改模塊,完成用戶注冊(cè)。類似地,建立服務(wù)器向注冊(cè)中心進(jìn)行注冊(cè)請(qǐng)求,得到信息(gτ,gτs,gτrsrzc)并進(jìn)行秘密存儲(chǔ),其中,gτrsrzc為初始共享密鑰。
2.4 共享密鑰生成與更新
相較于文獻(xiàn)[13],共享密鑰的產(chǎn)生不僅依賴于計(jì)數(shù)值,而且設(shè)計(jì)成與傳輸信息和通信雙方身份均有關(guān)系的一個(gè)量值。方案中采用隨機(jī)數(shù)、雙方身份和時(shí)間戳作為動(dòng)態(tài)密鑰產(chǎn)生的依據(jù),通信時(shí)的動(dòng)態(tài)密鑰生成流程如圖3所示,主要步驟為:
1)預(yù)設(shè)時(shí)間閾值,經(jīng)PKI公鑰認(rèn)證,從站CN向主站安全發(fā)送第一密文E(rand_numl,Ksc),有限時(shí)間內(nèi)未收到響應(yīng)則重發(fā)。
2)主站解密第一隨機(jī)序列并暫存,同時(shí)向從設(shè)備返回響應(yīng)。
3)從站收到響應(yīng),更新本地kSet_CN值,計(jì)數(shù)器累加,然后向主站SN發(fā)送第二密文E(rand_num2,Ksc)。
4)主站解密第二密文,向從站發(fā)送響應(yīng),并與第一隨機(jī)值比較,相同則表示重傳數(shù)據(jù);否則更新自身的kSet_SN值,計(jì)數(shù)器累加。
5)經(jīng)N次累加,主、從站各自計(jì)算動(dòng)態(tài)密鑰DSsn=h(kSet_SN)和DScn=H(kSet_CN)。
主從站的動(dòng)態(tài)密鑰msg均是根據(jù)每次通信使用的隨機(jī)數(shù)計(jì)算而來(lái),主從站的共享鑰也是通過(guò)上一次的共享鑰與當(dāng)前最新動(dòng)態(tài)鑰通過(guò)異或操作得出。因此,主站和從站雙方的動(dòng)態(tài)密鑰與共享密鑰始終保持一致,計(jì)算表達(dá)式為
msgi=Enc(rand_numi,Ksc) (1)
Hash=H(H(ID)||Str||msgi||CTi||tcn) (2)
式中:Str為主從站設(shè)備預(yù)先設(shè)定值;Ksc為主從站初始共享密鑰;tcn為時(shí)間戳。主從站通信時(shí),任意一方接收到收據(jù),檢查哈希值的完整性。若一致無(wú)誤,則向?qū)Ψ桨l(fā)送響應(yīng),解密并更新隨機(jī)數(shù)。同時(shí)利用哈希函數(shù)計(jì)算各自動(dòng)態(tài)密鑰,并經(jīng)過(guò)異或再進(jìn)行更新,其表達(dá)式為
DScn/sn=h1(kSet_SN/CN) (3)
式中:DS為動(dòng)態(tài)密鑰;SK表示共享密鑰在設(shè)備接入時(shí),認(rèn)證過(guò)程需要共享密鑰SK的參與。在動(dòng)態(tài)密鑰DS的生成過(guò)程中,攻擊者無(wú)法對(duì)通信過(guò)程中的數(shù)據(jù)始終保持無(wú)差錯(cuò)監(jiān)聽(tīng),因此無(wú)法獲取某動(dòng)態(tài)密鑰在生成周期內(nèi)用到的所有隨機(jī)序列,即無(wú)法獲得動(dòng)態(tài)密鑰和共享密鑰。
2.5 在線相互認(rèn)證
用戶與服務(wù)器的相互認(rèn)證及協(xié)商共享會(huì)話鑰的過(guò)程如下:
1)用戶U得到離線預(yù)計(jì)算結(jié)果后,首先利用私鑰Sku、服務(wù)器公鑰Pks、時(shí)間戳T1和隨機(jī)數(shù)R產(chǎn)生包含哈希值在內(nèi)的驗(yàn)證信息,即
v=Pks(T||IDs||IDU||SkU(h1(IDU||IDS||T1||R))) (5)
然后用戶發(fā)送包含驗(yàn)證信息在內(nèi)的共享密鑰給服務(wù)器。
2)當(dāng)服務(wù)器接收到用戶消息時(shí),首先利用解密密鑰獲得用戶身份、隨機(jī)數(shù)等信息,檢查信息v=h1(IDU||IDS||T1||R)是否成立。若成立,則根據(jù)時(shí)間間隔判斷T1的有效性;否則,服務(wù)器將重新選擇隨機(jī)數(shù),產(chǎn)生新的共享密鑰以同樣過(guò)程發(fā)送給用戶進(jìn)行驗(yàn)證。
3)無(wú)論最終是用戶端還是服務(wù)器端,都需要驗(yàn)證式(5)是否成立。成立則說(shuō)明密文、共享密鑰在傳輸過(guò)程中未被篡改,且服務(wù)器和用戶可以相互驗(yàn)證對(duì)方身份的合法性,并可利用共享會(huì)話密鑰進(jìn)行后續(xù)的安全通信;若上述等式不成立,則接收方將拒絕此次會(huì)話。顯然,在該階段任何一方不但可以根據(jù)時(shí)間間隔判斷會(huì)話時(shí)間的有效性,還能夠通過(guò)哈希函數(shù)驗(yàn)證等式v來(lái)判斷對(duì)方的合法性。上述認(rèn)證過(guò)程均采用輕量級(jí)計(jì)算和短時(shí)時(shí)間窗口,從而減少計(jì)算資源。
2.6 電力監(jiān)控網(wǎng)絡(luò)設(shè)備安全接入認(rèn)證方案安全分析
本文所提傳輸網(wǎng)絡(luò)接入方案面臨的主要攻擊有:長(zhǎng)時(shí)竊聽(tīng)、惡意注入、重放及中間人攻擊等。
1)長(zhǎng)時(shí)竊聽(tīng)。動(dòng)態(tài)密鑰不僅依賴主從站點(diǎn)隨機(jī)序列,且與各自所持哈希值有關(guān),即使僅有一個(gè)比特的改變也會(huì)導(dǎo)致其哈希值的雪崩變化,從而使所提方案能夠抵抗竊聽(tīng)攻擊。
2)惡意注入。主從站共享密鑰的一致有賴于各站PKI所進(jìn)行的加密處理。當(dāng)攻擊者偽裝從站發(fā)送惡意信息,主站因不能正確解密必將丟棄拒絕后續(xù)通信。此外,主站對(duì)接收的任意消息均是先檢驗(yàn)數(shù)據(jù)完整性,確保數(shù)據(jù)未被惡意篡改才執(zhí)行后續(xù)通信。
3)重放及中間人攻擊。從主站在產(chǎn)生動(dòng)態(tài)密鑰的過(guò)程中引入了時(shí)間戳,其數(shù)據(jù)發(fā)送均包含時(shí)間信息,一旦傳輸突破閾值,該包即被丟棄。此外,節(jié)點(diǎn)間通信均采用PKI公鑰加密操作,所以攻擊者無(wú)法反向推出通信隨機(jī)數(shù),且動(dòng)態(tài)密鑰、共享密鑰均無(wú)法獲取。因此,可抵抗重放及中間人攻擊。
3 安全接入方案仿真測(cè)試
本文仿真選擇通信協(xié)議OpenDNP,其是Automatak基于IEEE 1815面向事件的開(kāi)源通信協(xié)議棧,工作模式為事件輪詢和基于IP網(wǎng)絡(luò)的靜默模式,借助開(kāi)源代碼模擬主從站點(diǎn)之間的通信。
3.1 實(shí)驗(yàn)環(huán)境
CPU為Interl i5-3210M,主頻2.50GHz,內(nèi)存8GB,硬盤512GB,操作系統(tǒng)為Windows 1064位。開(kāi)發(fā)環(huán)境Visio Studl02019,C++,開(kāi)源庫(kù)OpenDNP3-2.1.0,網(wǎng)絡(luò)環(huán)境IEEE802.15。協(xié)議中,主站和從站通信利用本地進(jìn)程模擬,并在OpenDNP3基本框架上額外添加認(rèn)證模塊和密鑰生成模塊保障數(shù)據(jù)安全接人。
3.2 基本操作所耗計(jì)算代價(jià)
本文所提方案涉及的基本操作主要有標(biāo)量乘、SHA-1、點(diǎn)乘、加乘、雙線性配對(duì)以及ECC公鑰加密等操作。方案設(shè)計(jì)中所涉及的各項(xiàng)操作在Python-Ate-Bilinear-Pairing 0.6庫(kù)和PyECC庫(kù)下所消耗的時(shí)間如圖4、5所示。每種操作按50次求均值,分別給出用戶端和服務(wù)器端以10為底的對(duì)數(shù)的執(zhí)行時(shí)間。
文獻(xiàn)[13]執(zhí)行通信協(xié)議時(shí),涉及的操作如下:2個(gè)標(biāo)量乘、4個(gè)點(diǎn)加、1個(gè)指數(shù)、1個(gè)加乘、5個(gè)哈希和1個(gè)對(duì)稱加密。因此,用戶端總耗時(shí)為248.73ms。類似地,服務(wù)器端的總耗時(shí)約為113.30ms。
在本文方案中,用戶端涉及3個(gè)指數(shù)、2個(gè)點(diǎn)乘、2個(gè)點(diǎn)加、1個(gè)哈希和2個(gè)加密,因此總耗時(shí)為3Texp+2Tsm+2Tpa+Th+2TE≈285.6457ms,其中ECC加密時(shí)間為0.122;服務(wù)器端涉及3個(gè)指數(shù):2個(gè)點(diǎn)乘、2個(gè)點(diǎn)加、1個(gè)哈希和2個(gè)解密,總耗時(shí)為3Texp+2Tsm+2Tpa+1Th+2TD≈78.84ms,其中ECC解密時(shí)間為0.013ms,如圖6所示。
考慮到目前服務(wù)器的計(jì)算和存儲(chǔ)能力的不斷提升,其產(chǎn)生的時(shí)間代價(jià)對(duì)實(shí)際應(yīng)用影響不大,故忽略不計(jì),因此,文中所提基于PKI模式相較于對(duì)稱接入模式設(shè)計(jì),用戶端計(jì)算消耗增加約為14%,這主要源于方案中密鑰支持動(dòng)態(tài)生成,用戶端所做公鑰加密運(yùn)算耗時(shí)較多,但隨著現(xiàn)代化高存儲(chǔ)、高計(jì)算的智能電網(wǎng)環(huán)境不斷發(fā)展,相較于網(wǎng)絡(luò)安全,計(jì)算代價(jià)所占的比重顯著減小。
3.3 通信開(kāi)銷
本文公鑰系統(tǒng)采用離散對(duì)數(shù)和ECC公鑰進(jìn)行環(huán)境構(gòu)建,涉及的加法循環(huán)群為160位,超奇異橢圓曲線上的點(diǎn)由G.中元素構(gòu)成。曲線定義在512位有限域Fp上,即E(Fp):y2=x3+2。G1和G2大小為512位,Z*Q為256位。假設(shè)隨機(jī)序列和哈希輸出同為256位,用戶身份和時(shí)間戳同為64位,公鑰加密采用ECC對(duì)用戶身份進(jìn)行加密處理。
3.3.1 用戶注冊(cè)階段
在該階段,用戶發(fā)送消息rU和IDU進(jìn)行注冊(cè),獲得(gτ,gτU,gτrUrzc)存儲(chǔ)于本地模塊。在該消息傳輸中,身份信息是64位,所用通信開(kāi)銷是64+512x3+256=1856位。類似地,可計(jì)算出文獻(xiàn)[13]的用戶注冊(cè)通信開(kāi)銷為1024x2+160+32=2240位。
3.3.2 服務(wù)器注冊(cè)階段
在該階段,服務(wù)器發(fā)送消息rS和IDS進(jìn)行注冊(cè),獲得(gτ,gτS,gτrSrzc)存儲(chǔ)于本地在該傳輸?shù)南⒅小7?wù)器的身份為64位,該階段通信開(kāi)銷仍是64+512x3+256=1856位。類似地,文獻(xiàn)[13]的服務(wù)器注冊(cè)通信開(kāi)銷為32+1024+160=1216位。
3.3.3 在線相互認(rèn)證階段
在線相互認(rèn)證階段主要是為了實(shí)現(xiàn)共享會(huì)話密鑰的協(xié)商,用戶、服務(wù)器分別發(fā)送消息rU、IDU、rS、IDS、Encgrzc(IDU||rU)和EncgrU(IDU||gτrUzc,h(IDU,grU)),因此該階段的通信開(kāi)銷是256+64+256+64+512x4=2688位。文獻(xiàn)[13]通信開(kāi)銷為1024×2+160x3+256+32=2816位。
密鑰協(xié)商是在用戶和服務(wù)器之間為實(shí)現(xiàn)身份認(rèn)證需要不斷交互進(jìn)行驗(yàn)證確保身份信息一致的重要過(guò)程,因此在整個(gè)通信過(guò)程中具有舉足輕重的作用。相較于對(duì)稱機(jī)制的接人方案[13],PKI機(jī)制方案在密鑰協(xié)商的相互認(rèn)證階段通信開(kāi)銷節(jié)省約4%。
綜上,本文與文獻(xiàn)[13]方案在用戶、服務(wù)器注冊(cè),以及互認(rèn)證階段的通信代價(jià)如圖7所示。無(wú)論何種接入方式,用戶注冊(cè)和服務(wù)器注冊(cè)屬于一次性通信過(guò)程,而相互認(rèn)證則是通信雙方在實(shí)際通信過(guò)程中需要首先確認(rèn)一致的信息。
4 結(jié)束語(yǔ)
本文針對(duì)智能電網(wǎng)無(wú)線傳輸,結(jié)合密碼技術(shù)設(shè)計(jì)了一個(gè)PKI公鑰體系的電力監(jiān)控網(wǎng)絡(luò)安全接入方案。通過(guò)利用哈希函數(shù)對(duì)用戶信息、時(shí)間信息、隨機(jī)序列等雙向認(rèn)證,保障了數(shù)據(jù)的完整性和機(jī)密性,并分析了該方案抵抗常見(jiàn)攻擊方式的可行性。實(shí)驗(yàn)結(jié)果表明,相較于基于對(duì)稱加密的認(rèn)證接入方案,雖然本文所提方案在時(shí)間性能方面相較于對(duì)稱機(jī)制有所降低,用戶端計(jì)算時(shí)間增加約14%,服務(wù)器端忽略不計(jì),但相較于對(duì)稱機(jī)制在密鑰協(xié)商的相互認(rèn)證過(guò)程中通信開(kāi)銷可節(jié)省4%,共享密鑰的動(dòng)態(tài)更新使本文所提方案的安全性得到大幅提高。
(責(zé)任編輯:鐘媛 英文審校:尹淑英)
沈陽(yáng)工業(yè)大學(xué)學(xué)報(bào)2024年1期