郭小鶴,楊 媛,馬曉琴
(1.國網(wǎng)青海省電力公司經(jīng)濟技術(shù)研究院,青海西寧 810008;2.國網(wǎng)青海省電力公司海東供電公司,青海海東 810600;3.國網(wǎng)青海省電力公司信息通信公司,青海西寧 810008)
智能電網(wǎng)是一種基于企業(yè)的信息體系結(jié)構(gòu)與基礎(chǔ)結(jié)構(gòu)體系。隨著開放性的增加,“不公開就是安全”已經(jīng)不再是一種安全戰(zhàn)略。在智能電網(wǎng)下的電力信息系統(tǒng)中,信息的安全性成為當(dāng)下人們最為關(guān)心的一個問題。海量信息的安全主要包括五個因素,分別是保密、完整、可用、可控、真實。除了電網(wǎng)內(nèi)部數(shù)據(jù)外,還存在一些客戶服務(wù)數(shù)據(jù),在這些數(shù)據(jù)中,對海量的智能配電網(wǎng)絡(luò)進行有效地存儲與維護是其發(fā)展的核心問題。以往有的學(xué)者提出了基于多分支樹結(jié)構(gòu)的驗證方案,結(jié)合雙線性映射簽名技術(shù),分析電網(wǎng)智能服務(wù)云端結(jié)構(gòu)特性,利用隨機掩碼技術(shù),驗證數(shù)據(jù)塊的完整性[1]。還有的學(xué)者提出的基于帶權(quán)單鏈表的完整性驗證方案,將樹葉作為一個節(jié)點,通過引入節(jié)點權(quán)值發(fā)現(xiàn)多次動態(tài)操作后,確定異常狀態(tài),并以此為依據(jù)進行完整性檢測[2]。由于電網(wǎng)智能云端服務(wù)系統(tǒng)存在被攻擊風(fēng)險,使用上述這兩種方法不能滿足檢查結(jié)果的可信性要求,為此,提出了電網(wǎng)智能服務(wù)云端海量數(shù)據(jù)完整性輕量級檢測方法。
對于基于輕量級檢測模型的風(fēng)險數(shù)據(jù)分析,需先構(gòu)建輕量級檢測模型,該模型由三個模塊組成,分別是驗證服務(wù)模塊、云服務(wù)模塊和第三方驗證模塊。其中,驗證服務(wù)模塊主要是對電網(wǎng)云端數(shù)據(jù)的驗證,能夠保證數(shù)據(jù)庫中數(shù)據(jù)的完整性[3]。云服務(wù)模塊以云存儲為主,具有存儲空間大的優(yōu)勢,能夠存儲海量云端數(shù)據(jù),以備檢測;第三方驗證模塊主要用于協(xié)助用戶對數(shù)據(jù)使用的正確性進行驗證[4]。假定驗證服務(wù)模塊是可靠和獨立的,由此設(shè)計的輕量級檢測模型如圖1 所示。
圖1 輕量級檢測模型
基于輕量級的電網(wǎng)智能服務(wù)云端海量數(shù)據(jù)完整性驗證方法支持動態(tài)更新,云用戶可以隨時添加、更新和刪除云中的數(shù)據(jù),即使發(fā)現(xiàn)被攻擊風(fēng)險,可信的第三方還可以在云端確認數(shù)據(jù)的完整性[5-6]?;谳p量級檢測模型的風(fēng)險數(shù)據(jù)分析包括以下方面:
1)云端用戶更改數(shù)據(jù)的風(fēng)險分析
當(dāng)云端用戶更改數(shù)據(jù)時,需及時更改索引號和對應(yīng)的地址,并統(tǒng)計更新后的文檔信息。如果用戶需要確認數(shù)據(jù)是否被完全修改,則需向第三方發(fā)送驗證請求[7-9]。
2)云端用戶插入數(shù)據(jù)的風(fēng)險分析
云端服務(wù)端更新資料庫,并更新云端伺服器的標(biāo)簽資訊[10]。如果云端用戶需要證實存儲在云端的數(shù)據(jù),經(jīng)過第三方確認后,可直接對其驗證[11]。
3)云端用戶刪除數(shù)據(jù)的風(fēng)險分析
用戶首先將已刪除的檔案索引編號及相應(yīng)的位置發(fā)給云端服務(wù)器,當(dāng)接收到一個刪除請求時,云端將會移除該索引編號的相關(guān)資料。為了確認云端服務(wù)器的數(shù)據(jù)被刪除,用戶會將認證請求發(fā)送到第三方進行數(shù)據(jù)完整性的確認[12],而第三方則會將確認的結(jié)果發(fā)送到云端的使用者。
傳統(tǒng)兩種方法雖然支持動態(tài)數(shù)據(jù),但受到用戶修改存儲在云端數(shù)據(jù)風(fēng)險、用戶插入數(shù)據(jù)風(fēng)險及用戶刪除云存儲中數(shù)據(jù)風(fēng)險影響,容易出現(xiàn)密鑰泄露問題[13]。為此,設(shè)計了基于輕量級的數(shù)據(jù)完整性檢測流程,如圖2 所示。
圖2 基于輕量級的數(shù)據(jù)完整性檢測流程
在輕量級檢測階段,其主要工作包括準備階段、完整性驗證階段,詳細內(nèi)容如下所示。
在基于輕量級的數(shù)據(jù)完整性檢測過程中,需要不斷向云端發(fā)送消息,這就導(dǎo)致證明方擁有大量的分組數(shù)據(jù),增大了明文分析攻擊風(fēng)險,進而密鑰泄露風(fēng)險也隨之增大[14]。為此,在準備階段,引入公鑰密碼機制進行公開驗證。該階段涉及了三種密鑰:主密鑰、輔助密鑰和會話密鑰[15];會話密鑰是由密鑰分配中心用于簽署和確認信息的一種密鑰,也就是一次簽署的私有和公共密鑰。密鑰分配結(jié)果如圖3所示。
圖3 密鑰分配結(jié)構(gòu)
密鑰分配結(jié)構(gòu)每一個發(fā)送端都有一個主密鑰,主密鑰是在密鑰分配中心與發(fā)送端進行認證的對稱密鑰(任意兩個發(fā)送端的主密鑰不同)。在控制區(qū)中共用了一個輔助密鑰,輔助密鑰是在控制領(lǐng)域中使用的對稱密鑰[16]。每個發(fā)送方都有自身的會話密鑰(任何兩個發(fā)送方的私人鑰匙),每個發(fā)送方的主密鑰與其各自會話密鑰的私有密鑰相同,并且任意兩個發(fā)送方擁有不同的專用密鑰。每個發(fā)送方擁有所有發(fā)送方的會話密鑰的公共密鑰,用于檢查其他發(fā)送方的一次簽名。
完整性檢測階段流程如下所示:
步驟一:當(dāng)云端用戶要求上傳文檔時,云端會對文檔進行處理,并將其劃分為若干個子模塊,調(diào)用私鑰,生成帶有基本塊標(biāo)簽的文件子塊。
步驟二:標(biāo)記步驟一得到的文件子塊,標(biāo)簽信息為:
式中,mi表示分塊后的文件塊;M表示密鑰參數(shù),其計算公式為:
式中,α、β表示兩個參數(shù)長度相同,但不相等的素數(shù)。
將上述計算的結(jié)果存在云端服務(wù)器中。
步驟三:構(gòu)造風(fēng)險數(shù)據(jù)集合,用戶可將本地數(shù)據(jù)完整性檢測外包給第三方,以此降低存儲負擔(dān)。第三方代理驗證數(shù)據(jù)可信后,將其發(fā)送給云計算供應(yīng)商,信任的第三方需要先發(fā)送一個文件標(biāo)記,然后使用用戶的公共密鑰對其進行認證??尚诺谌诫S機選擇有j個元素的集合[1,n]的子集?={ι1≤…≤ιj},假定ι1≤…≤ιj。對于每個i∈?,可信第三方選擇一個隨機數(shù),構(gòu)造風(fēng)險數(shù)據(jù)集合,將其發(fā)送給云服務(wù)供應(yīng)商。關(guān)于風(fēng)險數(shù)據(jù)集合的意義:有j個元素的集合{i}即表示想要風(fēng)險數(shù)據(jù)集合的j個文件塊的位置索引,隨機數(shù)集合{ri}供云服務(wù)供應(yīng)商生成驗證信息。
步驟四:在收到風(fēng)險數(shù)據(jù)集合后,需計算發(fā)送信息和驗證信息簽名,公式為:
式中,?i表示第i個文件塊對應(yīng)的簽名。
步驟五:數(shù)據(jù)完整性輕量級檢測流程。
用戶A 將文檔信息上傳到云端B,與此同時,觸發(fā)第三方C 向云端B 發(fā)送數(shù)據(jù)完整性檢查請求。云端B 生成完整性證據(jù)后,觸發(fā)第三方C 開始進行完整性驗證。待驗證完成后,生成完整性檢查報告,并反饋給云端B。從A 向云端B 發(fā)送待檢測的文件中,選取某個文件塊,計算檢測信息:
式中,λr表示隨機數(shù);n表示分塊參數(shù)。
將式(5)的計算結(jié)果發(fā)送給第三方,當(dāng)?shù)谌绞盏綉?yīng)答信息后,將其與所設(shè)置的閾值進行對比,若計算結(jié)果不一致,則說明電網(wǎng)智能服務(wù)云端海量數(shù)據(jù)不完整。
在計算機上編寫測試內(nèi)容,CPU 的主要結(jié)構(gòu)是CPUi54670T,內(nèi)存為10 GB,在Win7 操作系統(tǒng)下,使用C++語言進行了測試。測試不同組參數(shù),每組參數(shù)測試10 000 次,由于實際工程中報文不會超過200 B,最大不會超過700 B。數(shù)據(jù)完整性檢測界面如圖4 所示。
圖4 數(shù)據(jù)完整性檢測界面
該檢測項目包括六個項目,分別是①操作人員忘記錄入報警發(fā)生的理由;②輸入數(shù)字不正確;③測試數(shù)據(jù)覆蓋;④維護人員修改報警響應(yīng)時間;⑤操作人員改變了趨勢圖的量程;⑥操作人員故意輸入一個好的結(jié)果值。
將數(shù)據(jù)結(jié)果分為正常和存在被攻擊風(fēng)險兩種情況,在這兩種情況下分別使用基于多分支樹結(jié)構(gòu)的驗證方案、基于帶權(quán)單鏈表的完整性驗證方案和基于輕量級的數(shù)據(jù)完整性檢測方案,對比數(shù)據(jù)分析準確性。
3.2.1 正常情況
正常情況下,三種方法數(shù)據(jù)分析準確性對比結(jié)果如圖5 所示。
圖5 正常情況下三種方法數(shù)據(jù)分析準確性對比
由圖5 可知,三種方法對于這六個項目的檢測結(jié)果均超過60.00%。其中基于帶權(quán)單鏈表的完整性驗證方案相對于其余兩種方案來說,數(shù)據(jù)準確性較低。而使用基于輕量級的數(shù)據(jù)完整性檢測方案數(shù)據(jù)準確性較高,最高值為99.80%。
3.2.2 存在被攻擊風(fēng)險情況
三種方法在存在被攻擊風(fēng)險情況下,數(shù)據(jù)分析準確性對比結(jié)果如圖6 所示。
圖6 存在被攻擊風(fēng)險情況下三種方法數(shù)據(jù)分析準確性對比
由圖6 可知,使用基于多分支樹結(jié)構(gòu)的驗證方案,最高數(shù)據(jù)準確性分析結(jié)果為55.00%,最低為39.50%;使用基于帶權(quán)單鏈表的完整性驗證方案,最高數(shù)據(jù)準確性分析結(jié)果為31.00%,最低為18.00%;使用基于輕量級的數(shù)據(jù)完整性檢測方案,最高數(shù)據(jù)準確性分析結(jié)果為91.00%,最低為82.00%。
當(dāng)前,智能電網(wǎng)采集大量的信息,以反映電力系統(tǒng)的運行和發(fā)展,并對其進行實時處理,具有十分重要的意義。電網(wǎng)智能化業(yè)務(wù)云海量數(shù)據(jù)完整性輕量化檢測技術(shù)是一種在云環(huán)境下有效的檢測機制,在繼承原有算法的基礎(chǔ)上,實現(xiàn)了對開放認證的功能。未來的研究方向是可控數(shù)據(jù)的完整性檢驗,也就是由用戶來控制第三方的數(shù)據(jù)完整性檢驗。