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