郭小鶴,楊 媛,馬曉琴
(1.國網青海省電力公司經濟技術研究院,青海西寧 810008;2.國網青海省電力公司海東供電公司,青海海東 810600;3.國網青海省電力公司信息通信公司,青海西寧 810008)
智能電網是一種基于企業的信息體系結構與基礎結構體系。隨著開放性的增加,“不公開就是安全”已經不再是一種安全戰略。在智能電網下的電力信息系統中,信息的安全性成為當下人們最為關心的一個問題。海量信息的安全主要包括五個因素,分別是保密、完整、可用、可控、真實。除了電網內部數據外,還存在一些客戶服務數據,在這些數據中,對海量的智能配電網絡進行有效地存儲與維護是其發展的核心問題。以往有的學者提出了基于多分支樹結構的驗證方案,結合雙線性映射簽名技術,分析電網智能服務云端結構特性,利用隨機掩碼技術,驗證數據塊的完整性[1]。還有的學者提出的基于帶權單鏈表的完整性驗證方案,將樹葉作為一個節點,通過引入節點權值發現多次動態操作后,確定異常狀態,并以此為依據進行完整性檢測[2]。由于電網智能云端服務系統存在被攻擊風險,使用上述這兩種方法不能滿足檢查結果的可信性要求,為此,提出了電網智能服務云端海量數據完整性輕量級檢測方法。
對于基于輕量級檢測模型的風險數據分析,需先構建輕量級檢測模型,該模型由三個模塊組成,分別是驗證服務模塊、云服務模塊和第三方驗證模塊。其中,驗證服務模塊主要是對電網云端數據的驗證,能夠保證數據庫中數據的完整性[3]。云服務模塊以云存儲為主,具有存儲空間大的優勢,能夠存儲海量云端數據,以備檢測;第三方驗證模塊主要用于協助用戶對數據使用的正確性進行驗證[4]。假定驗證服務模塊是可靠和獨立的,由此設計的輕量級檢測模型如圖1 所示。

圖1 輕量級檢測模型
基于輕量級的電網智能服務云端海量數據完整性驗證方法支持動態更新,云用戶可以隨時添加、更新和刪除云中的數據,即使發現被攻擊風險,可信的第三方還可以在云端確認數據的完整性[5-6]。基于輕量級檢測模型的風險數據分析包括以下方面:
1)云端用戶更改數據的風險分析
當云端用戶更改數據時,需及時更改索引號和對應的地址,并統計更新后的文檔信息。如果用戶需要確認數據是否被完全修改,則需向第三方發送驗證請求[7-9]。
2)云端用戶插入數據的風險分析
云端服務端更新資料庫,并更新云端伺服器的標簽資訊[10]。如果云端用戶需要證實存儲在云端的數據,經過第三方確認后,可直接對其驗證[11]。
3)云端用戶刪除數據的風險分析
用戶首先將已刪除的檔案索引編號及相應的位置發給云端服務器,當接收到一個刪除請求時,云端將會移除該索引編號的相關資料。為了確認云端服務器的數據被刪除,用戶會將認證請求發送到第三方進行數據完整性的確認[12],而第三方則會將確認的結果發送到云端的使用者。
傳統兩種方法雖然支持動態數據,但受到用戶修改存儲在云端數據風險、用戶插入數據風險及用戶刪除云存儲中數據風險影響,容易出現密鑰泄露問題[13]。為此,設計了基于輕量級的數據完整性檢測流程,如圖2 所示。

圖2 基于輕量級的數據完整性檢測流程
在輕量級檢測階段,其主要工作包括準備階段、完整性驗證階段,詳細內容如下所示。
在基于輕量級的數據完整性檢測過程中,需要不斷向云端發送消息,這就導致證明方擁有大量的分組數據,增大了明文分析攻擊風險,進而密鑰泄露風險也隨之增大[14]。為此,在準備階段,引入公鑰密碼機制進行公開驗證。該階段涉及了三種密鑰:主密鑰、輔助密鑰和會話密鑰[15];會話密鑰是由密鑰分配中心用于簽署和確認信息的一種密鑰,也就是一次簽署的私有和公共密鑰。密鑰分配結果如圖3所示。

圖3 密鑰分配結構
密鑰分配結構每一個發送端都有一個主密鑰,主密鑰是在密鑰分配中心與發送端進行認證的對稱密鑰(任意兩個發送端的主密鑰不同)。在控制區中共用了一個輔助密鑰,輔助密鑰是在控制領域中使用的對稱密鑰[16]。每個發送方都有自身的會話密鑰(任何兩個發送方的私人鑰匙),每個發送方的主密鑰與其各自會話密鑰的私有密鑰相同,并且任意兩個發送方擁有不同的專用密鑰。每個發送方擁有所有發送方的會話密鑰的公共密鑰,用于檢查其他發送方的一次簽名。
完整性檢測階段流程如下所示:
步驟一:當云端用戶要求上傳文檔時,云端會對文檔進行處理,并將其劃分為若干個子模塊,調用私鑰,生成帶有基本塊標簽的文件子塊。
步驟二:標記步驟一得到的文件子塊,標簽信息為:
式中,mi表示分塊后的文件塊;M表示密鑰參數,其計算公式為:
式中,α、β表示兩個參數長度相同,但不相等的素數。
將上述計算的結果存在云端服務器中。
步驟三:構造風險數據集合,用戶可將本地數據完整性檢測外包給第三方,以此降低存儲負擔。第三方代理驗證數據可信后,將其發送給云計算供應商,信任的第三方需要先發送一個文件標記,然后使用用戶的公共密鑰對其進行認證。可信第三方隨機選擇有j個元素的集合[1,n]的子集?={ι1≤…≤ιj},假定ι1≤…≤ιj。對于每個i∈?,可信第三方選擇一個隨機數,構造風險數據集合,將其發送給云服務供應商。關于風險數據集合的意義:有j個元素的集合{i}即表示想要風險數據集合的j個文件塊的位置索引,隨機數集合{ri}供云服務供應商生成驗證信息。
步驟四:在收到風險數據集合后,需計算發送信息和驗證信息簽名,公式為:
式中,?i表示第i個文件塊對應的簽名。
步驟五:數據完整性輕量級檢測流程。
用戶A 將文檔信息上傳到云端B,與此同時,觸發第三方C 向云端B 發送數據完整性檢查請求。云端B 生成完整性證據后,觸發第三方C 開始進行完整性驗證。待驗證完成后,生成完整性檢查報告,并反饋給云端B。從A 向云端B 發送待檢測的文件中,選取某個文件塊,計算檢測信息:
式中,λr表示隨機數;n表示分塊參數。
將式(5)的計算結果發送給第三方,當第三方收到應答信息后,將其與所設置的閾值進行對比,若計算結果不一致,則說明電網智能服務云端海量數據不完整。
在計算機上編寫測試內容,CPU 的主要結構是CPUi54670T,內存為10 GB,在Win7 操作系統下,使用C++語言進行了測試。測試不同組參數,每組參數測試10 000 次,由于實際工程中報文不會超過200 B,最大不會超過700 B。數據完整性檢測界面如圖4 所示。

圖4 數據完整性檢測界面
該檢測項目包括六個項目,分別是①操作人員忘記錄入報警發生的理由;②輸入數字不正確;③測試數據覆蓋;④維護人員修改報警響應時間;⑤操作人員改變了趨勢圖的量程;⑥操作人員故意輸入一個好的結果值。
將數據結果分為正常和存在被攻擊風險兩種情況,在這兩種情況下分別使用基于多分支樹結構的驗證方案、基于帶權單鏈表的完整性驗證方案和基于輕量級的數據完整性檢測方案,對比數據分析準確性。
3.2.1 正常情況
正常情況下,三種方法數據分析準確性對比結果如圖5 所示。

圖5 正常情況下三種方法數據分析準確性對比
由圖5 可知,三種方法對于這六個項目的檢測結果均超過60.00%。其中基于帶權單鏈表的完整性驗證方案相對于其余兩種方案來說,數據準確性較低。而使用基于輕量級的數據完整性檢測方案數據準確性較高,最高值為99.80%。
3.2.2 存在被攻擊風險情況
三種方法在存在被攻擊風險情況下,數據分析準確性對比結果如圖6 所示。

圖6 存在被攻擊風險情況下三種方法數據分析準確性對比
由圖6 可知,使用基于多分支樹結構的驗證方案,最高數據準確性分析結果為55.00%,最低為39.50%;使用基于帶權單鏈表的完整性驗證方案,最高數據準確性分析結果為31.00%,最低為18.00%;使用基于輕量級的數據完整性檢測方案,最高數據準確性分析結果為91.00%,最低為82.00%。
當前,智能電網采集大量的信息,以反映電力系統的運行和發展,并對其進行實時處理,具有十分重要的意義。電網智能化業務云海量數據完整性輕量化檢測技術是一種在云環境下有效的檢測機制,在繼承原有算法的基礎上,實現了對開放認證的功能。未來的研究方向是可控數據的完整性檢驗,也就是由用戶來控制第三方的數據完整性檢驗。