徐迎暉,徐曉暉
(1.廣東工業(yè)大學(xué) 自動化學(xué)院,廣州 510006;2.北京華電云通電力技術(shù)有限公司,北京 100069)
電力系統(tǒng)需要進(jìn)行遠(yuǎn)程監(jiān)控的對象已經(jīng)構(gòu)成了一個復(fù)雜的網(wǎng)絡(luò),通信過程中傳輸?shù)南⑼ǔJ敲魑男问?,監(jiān)控命令和數(shù)據(jù)可能會遭到竊聽、篡改和惡意偽造等攻擊,存在許多安全隱患,有必要采取措施保障通信的安全。
目前大部分智能裝置未進(jìn)行加密處理,它們能夠適應(yīng)的遠(yuǎn)程監(jiān)控通信速度約為20Kbps~30Kbps,可供升級利用的冗余資源不多。為盡可能的利用現(xiàn)有投資,安全通信方案應(yīng)盡量降低升級或附加設(shè)備所需的成本,這就要求安全通信所需的額外數(shù)據(jù)傳輸開銷和運(yùn)算量要盡可能地小。此外,由于遠(yuǎn)程監(jiān)控對象的數(shù)量眾多且分布廣泛,單個對象的功能較為單一,因此在實(shí)際應(yīng)用中,安全通信方案應(yīng)當(dāng)進(jìn)行一定的簡化。
這方面已經(jīng)有許多研究,文獻(xiàn)[1]提出一時一密的非對稱算法,但是終端需要向主站端請求密鑰,存在被竊聽的可能。文獻(xiàn)[2]提出對104規(guī)約進(jìn)行加密的對稱算法,而安全通信要求密鑰能經(jīng)常修改。文獻(xiàn)[3,4]分析了應(yīng)用日趨廣泛的GPRS的加密方案,需要認(rèn)證服務(wù)器,投資較大,應(yīng)用也較為復(fù)雜。文獻(xiàn)[5]提出用于變電站的加密模塊的實(shí)現(xiàn)方案,主要用于以太網(wǎng)通信,對于線路上的智能設(shè)備和低速通信,可以進(jìn)行一定的簡化。
本文提出一種非對稱和對稱式結(jié)合的安全通信方案,可解決當(dāng)前電力系統(tǒng)遠(yuǎn)程監(jiān)控通信中常見的安全問題。 本方案可在8~16位微控制器上實(shí)現(xiàn),且不更改現(xiàn)有系統(tǒng)的基本結(jié)構(gòu),具有成本較低和易于升級的特點(diǎn)。
在現(xiàn)有的電力系統(tǒng)遠(yuǎn)程監(jiān)控方案中,一般由主站對各個遠(yuǎn)程設(shè)備進(jìn)行狀態(tài)查詢,采集遙測量和遙信量,進(jìn)行分析后向遠(yuǎn)程設(shè)備發(fā)送必要的控制命令。改進(jìn)的系統(tǒng)結(jié)構(gòu)如圖1所示,改進(jìn)的系統(tǒng)盡量保持了現(xiàn)有的系統(tǒng)結(jié)構(gòu),附加了少量的軟硬件資源,用來解決實(shí)際應(yīng)用中常見的若干通信安全隱患。
圖1 安全通信系統(tǒng)結(jié)構(gòu)
改進(jìn)的系統(tǒng)在主站端增加了安全服務(wù)器,負(fù)責(zé)處理一些復(fù)雜工作,包括消息的加密和解密、消息認(rèn)證、以及密鑰管理和分發(fā)等。遠(yuǎn)程設(shè)備端則附加了安全模塊,其性能有限,完成的工作包括消息的加密和解密、消息認(rèn)證和密鑰接收等。主站端的安全服務(wù)器和遠(yuǎn)程端的安全模塊之間的通信信道傳輸?shù)氖羌用芎蟮男畔?,其它設(shè)備仍保持原有的工作方式,因此對于上層用戶來說,安全通信過程是透明的。通信密鑰的傳輸可以通過其它安全信道,如GSM網(wǎng)絡(luò)、互聯(lián)網(wǎng)等??紤]到遠(yuǎn)程監(jiān)控通信規(guī)約中存在許多冗余信息,也可以將通信密鑰隱藏在冗余信道中傳輸。在具體的實(shí)現(xiàn)上,本安全通信方案在實(shí)現(xiàn)重要功能的前提下,進(jìn)行了一定的簡化。
遠(yuǎn)程端附加的安全模塊硬件性能有限,不能進(jìn)行高強(qiáng)度的計算,存儲容量也較小。為提高運(yùn)算速度,本方案對監(jiān)控數(shù)據(jù)采用對稱加密方案,該對稱加密方案中的私鑰經(jīng)過非對稱加密后進(jìn)行傳輸和更換,通信的保密性依賴于非對稱方案中的私鑰。遠(yuǎn)程監(jiān)控端所需的“公鑰—私鑰”對則由主站系統(tǒng)產(chǎn)生和管理。由于其更換并不頻繁,為降低系統(tǒng)的復(fù)雜性,非對稱方案中私鑰可以通過其它安全通信信道發(fā)送,或者采取信息隱藏技術(shù)利用現(xiàn)有的冗余信道進(jìn)行傳輸。
為防止未授權(quán)用戶的非法操作,遠(yuǎn)程監(jiān)控端可對主站所發(fā)出的重要指令進(jìn)行認(rèn)證??紤]到安全問題的危害性,為降低實(shí)現(xiàn)的復(fù)雜度,只針對主站發(fā)送的消息進(jìn)行認(rèn)證。在主站端的安全服務(wù)器上設(shè)置密鑰分發(fā)中心,認(rèn)證過程使用Feige-Fiat-Shamir協(xié)議加速認(rèn)證過程。
為保證數(shù)據(jù)的完整性,采用數(shù)據(jù)校驗(yàn)方法檢測錯誤和篡改的發(fā)生,對加密數(shù)據(jù)附加循環(huán)冗余碼CRC。對于較短的數(shù)據(jù)幀,將數(shù)據(jù)和CRC碼同時分為多個部分再進(jìn)行合并。
另外,在主站系統(tǒng)中設(shè)計相應(yīng)的監(jiān)控記錄軟件,記錄重要的通信數(shù)據(jù),并制定一定的操作規(guī)范來記錄和管理主站的歷史操作。
本方案中,采用對稱加密方案加密監(jiān)控數(shù)據(jù),對稱加密采用3DES 64位分組密碼算法降低運(yùn)算量。由于遠(yuǎn)程監(jiān)控數(shù)據(jù)對安全性的要求不十分高,在實(shí)際應(yīng)用中使用2個64位的密鑰,密鑰的有效長度為112位。3DES密碼算法的運(yùn)算速度快,能夠適應(yīng)監(jiān)控數(shù)據(jù)的傳輸速度。3DES密碼算法中所使用的密鑰由非對稱橢圓曲線密碼體制進(jìn)行加密,并通過主站系統(tǒng)發(fā)送給遠(yuǎn)程監(jiān)控端,該密鑰可隨加密的監(jiān)控數(shù)據(jù)一起傳輸,密鑰更換可以相對頻繁。橢圓曲線密碼方案中的“公鑰—私鑰”密鑰對的計算量大,更新周期較長。橢圓曲線密碼的計算雖然需要消耗較長時間,但是它的發(fā)生頻率低,可以將其安排在數(shù)據(jù)監(jiān)控的間隙。此加密方案已能夠滿足實(shí)際的保密需求,而且適合低性能低成本的微控制器實(shí)現(xiàn)。
通信的保密性依賴于橢圓曲線密碼方案中的私鑰。定義在有限素整數(shù)域GF(p)(p≠2,3)上的橢圓曲線E,其方程描述為:E:y2= x3+ ax+b(mod p)
其中4a3+ 27b2(mod p)≠0。伴隨一個附加的點(diǎn)O,稱為無窮遠(yuǎn)點(diǎn),點(diǎn)集合E可以構(gòu)成一個有限交換群,而O為該群加法單位元。GF(p)上橢圓曲線點(diǎn)群加法規(guī)則可利用“正切與弦”規(guī)則給出。
設(shè) P=(x1, y1)∈GF(p),是橢圓曲線E上一個點(diǎn), 則 -P=(x1,-y1)。
設(shè) Q=(x2, y2)∈GF(p)且Q≠-P,則點(diǎn)加R=P+Q=(x3, y3)的計算公式為:
乘法則定義為重復(fù)相加。
ECC建立在基于橢圓曲線離散對數(shù)的問題:給定一條定義在有限域GF(p)上橢圓曲線E,一個階為n的點(diǎn)P ∈E及一個點(diǎn)Q=kP,其中0 ≤ k ≤n-1,確定k。
橢圓曲線密碼涉及到的主要算法歸結(jié)為兩類:1)橢圓曲線上點(diǎn)運(yùn)算,主要為點(diǎn)加、倍點(diǎn)和點(diǎn)積運(yùn)算;2)有限域上算術(shù)運(yùn)算,主要為模乘與模逆運(yùn)算。
為有效計算點(diǎn)加,可以利用仿射坐標(biāo)映射與射影坐標(biāo)的不同映射關(guān)系給出其改進(jìn)[6]。設(shè)xi=Ii及yi=yi=1,2),將它們代入點(diǎn)加的計算式進(jìn)行計算,則可得新的射影坐標(biāo)點(diǎn)加公式。1)當(dāng)P≠±Q時,點(diǎn)加公式為:
2)當(dāng)P=±Q時,倍點(diǎn)公式為:
計算kP的有效方法是減少k的二進(jìn)制表示中非零個數(shù)。可以將k轉(zhuǎn)換成一個帶符號、規(guī)范(NAF)的沒有任何二相鄰接數(shù)字是1的二進(jìn)制形式。然后再將其轉(zhuǎn)換成2w進(jìn)制形式,稱為窗口寬為w的NAF方法,進(jìn)一步減少整數(shù)k中非零系數(shù)數(shù)量。對于1..2w-1 之間的點(diǎn)乘運(yùn)算,可以事先計算并存貯,以提高點(diǎn)乘運(yùn)算速度。根據(jù)不同終端內(nèi)存情況,可選取適當(dāng)?shù)膚值。一個窗口寬度為w的整數(shù)k,其表示形式為
通過這種方法,k中非零系數(shù)數(shù)量可減少約n/(w+1)。
考慮到實(shí)現(xiàn)的復(fù)雜性和安全問題導(dǎo)致的后果作了簡化,只針對主站發(fā)送的信息進(jìn)行身份認(rèn)證,遠(yuǎn)程監(jiān)控端可對主站發(fā)送的重要指令進(jìn)行身份認(rèn)證。在安全服務(wù)器端設(shè)置密鑰分發(fā)中心,使用Feige-Fiat-Shamir協(xié)議加速認(rèn)證過程。安全服務(wù)器擔(dān)當(dāng)兩個角色,它包含了可信授權(quán)方和將被認(rèn)證的主站信息方兩套軟件,軟件的操作由不同的權(quán)限設(shè)置限制。
令I(lǐng)為一個包含了主站信息方身份信息的數(shù)據(jù),采用公開的散列函數(shù)SHA生成消息摘要。授權(quán)方選取兩個大素數(shù)的乘積n=pq,然后取5個小的j值附加在I后面計算SHA(I:j)。于是授權(quán)方利用它所知道的p和q可以確定SHA(I:j)中哪些數(shù)有模n的平方根,然后計算出這些數(shù)的平方根,這就得到了數(shù)v1=SHA(I:j1), …, v5=SHA(I:j5)和它們各自的平方根s1, …, s5。I, n, j1, …, j5這些數(shù)是公開的。授權(quán)方把s1, …, s5交給主站信息方,主站信息方將它們保密。授權(quán)方在計算出平方根和移交了s1, …, s5后,便可以將素數(shù)p, q和s1, …, s5廢棄。
當(dāng)遠(yuǎn)程監(jiān)控端接收到了一條重要指令,需要對發(fā)送方進(jìn)行身份認(rèn)證時,它先從授權(quán)方獲取n, j1,…, j5,然后等待主站信息方發(fā)來的身份信息I,收到后計算所有vi=SHA(I:ji), 1≤i≤5。接著主站信息方和遠(yuǎn)程監(jiān)控端按照Feige-Fiat-Shamir協(xié)議的過程迭代4次,以證實(shí)主站信息方知道s1, …, s5。當(dāng)遠(yuǎn)程監(jiān)控方證實(shí)了發(fā)送方的身份后才開始執(zhí)行之前收到的重要指令。
相對于遠(yuǎn)程監(jiān)控端安全模塊的有限計算資源,這個身份認(rèn)證過程將消耗較多的時間,因此本安全通信方案中遠(yuǎn)程監(jiān)控端只對一些重要的指令進(jìn)行身份認(rèn)證。
本安全通信方案的保密性依賴于橢圓曲線密碼方案中的私鑰,3DES密碼算法中的私鑰經(jīng)過橢圓曲線密碼方案加密后進(jìn)行傳輸和更換。遠(yuǎn)程監(jiān)控端所需的“公鑰—私鑰”對由主站系統(tǒng)產(chǎn)生和管理。由于其更換并不頻繁,為降低系統(tǒng)的復(fù)雜性,橢圓曲線密碼方案中的私鑰可以通過其它安全通信信道發(fā)送,如GSM、互聯(lián)網(wǎng)等?;蛘卟扇⌒畔㈦[藏技術(shù)利用現(xiàn)有信道進(jìn)行傳輸,如利用通信規(guī)約中的冗余信息進(jìn)行隱蔽傳輸;
如有以下三種隱藏途徑:
1)各種規(guī)約(DNP,101)都有鏈路復(fù)位命令,類似握手信號,一般無數(shù)據(jù)或命令傳輸時就定期進(jìn)行鏈路復(fù)位,周期約為10sec~5min。握手驗(yàn)證數(shù)據(jù)可以設(shè)計為一串隨機(jī)數(shù),平時也是隨機(jī)數(shù),密鑰傳輸時這個隨機(jī)數(shù)就是密鑰;
2)設(shè)置定值,如:電流、時間、幾種定值同時設(shè)置等,因?yàn)槊看味ㄖ翟O(shè)置的數(shù)據(jù)長度不確定,所以定值長度無規(guī)律,信息隱藏存在可能。如:設(shè)置幾個定值:電流、電壓、時間,并附加密鑰;
3)對時信息??蓪s域作為密鑰傳輸字節(jié),對于大多數(shù)智能設(shè)備,一般秒級時間精度可以滿足要求,而且密鑰傳輸不是經(jīng)常進(jìn)行,大部分時間的對時還是有ms的,對設(shè)備運(yùn)行的影響不大。但是ms最多只能占用16bits,可能不夠。這時可將這16bits作為密鑰修改的增量,這樣保密性有所降低,通信雙方的程序也會復(fù)雜一些。
以上三種途徑可以結(jié)合使用,這些冗余信息構(gòu)成了一個邏輯上的隱蔽信道。
關(guān)于密鑰的分發(fā)過程,遠(yuǎn)程監(jiān)控端的初始“公鑰—私鑰”密鑰對由主站通過其它安全信道發(fā)送,之后可以利用信息隱藏方式傳輸新的密鑰對。主站先向隱蔽信道發(fā)送同步序列,接著發(fā)送遠(yuǎn)程監(jiān)控端所需的新的密鑰對,該密鑰對信息使用遠(yuǎn)程監(jiān)控端最近一次所使用的公鑰加密。然后等待遠(yuǎn)程監(jiān)控端的響應(yīng),若主站未收到遠(yuǎn)程監(jiān)控端的響應(yīng),則再重復(fù)一次以上過程,若仍不成功則不更改遠(yuǎn)程監(jiān)控端當(dāng)前使用的密鑰對,等待下次密鑰對更新周期的到來,同時主站端記錄此次密鑰對更新失敗事件。
另一方面,遠(yuǎn)程監(jiān)控端則持續(xù)檢測同步序列,檢測到同步序列后,利用最近一次所使用的私鑰進(jìn)行解密獲得新的“公鑰—私鑰” 密鑰對。接著向主站發(fā)送兩次響應(yīng)信息,該響應(yīng)信息使用當(dāng)前主站端公鑰加密,并且在其之前先發(fā)送同步序列。
本方案將涉及復(fù)雜計算和管理的功能分配到主站端的安全服務(wù)器集中完成,安全服務(wù)器的資源容易根據(jù)系統(tǒng)規(guī)模得到擴(kuò)充。鑒于成本和復(fù)雜性上的考慮,遠(yuǎn)程監(jiān)控設(shè)備只涉及相對較少的處理。整個安全通信系統(tǒng)易于實(shí)現(xiàn)和安裝調(diào)試。
遠(yuǎn)程監(jiān)控設(shè)備的安全模塊的硬件設(shè)計基于8位高性能低成本的XC886微控制器,兼容標(biāo)準(zhǔn)8051處理器,開發(fā)成本低,器件可工作于工業(yè)級和汽車級溫度范圍。其計算能力可達(dá)到12MIPS,可以滿足本方案的需求。對XC886經(jīng)過一般優(yōu)化的3DES算法處理速度可適應(yīng)超過20kbps的數(shù)據(jù)速率,滿足實(shí)時數(shù)據(jù)傳輸?shù)男枨?。在?shí)現(xiàn)中為獲得較好的性能,對關(guān)鍵步驟采用了匯編語言編程。在對算法進(jìn)行高級優(yōu)化后,XC886尚有足夠的余量用來處理遙控監(jiān)測幀的分析和格式轉(zhuǎn)換。
由于XC886性能上的限制,身份認(rèn)證、橢圓曲線的加密、解密等過程耗時較長,隨不同的工作條件在約2s~10s的范圍內(nèi)變動。實(shí)際應(yīng)用中可以利用遙控監(jiān)測間隙來降低這些方面的影響。在對響應(yīng)時間要求較高的場合,可在安全模塊中采用性能更好的16位微控制器。
另外,此安全模塊可附加在已有的智能設(shè)備上實(shí)現(xiàn)透明的數(shù)據(jù)傳輸,最大節(jié)省了現(xiàn)有設(shè)備的投資。
針對電力系統(tǒng)遠(yuǎn)程監(jiān)控通信中常見的安全問題,本文在現(xiàn)有系統(tǒng)的主站端附加了安全服務(wù)器,在遠(yuǎn)程監(jiān)控端附加了安全模塊。采用非對稱和對稱式加密相結(jié)合的安全通信方案,并結(jié)合實(shí)際需求進(jìn)行了簡化,能夠?qū)崿F(xiàn)安全通信的透明化。本方案可適用于8~16位微控制器,成本較低,易于升級。
[1] 林功平.配電網(wǎng)饋線自動化技術(shù)及其應(yīng)用[J].電力系統(tǒng)自動化,1998,22(4):64-68.
[2] 孫晨.對GPRS在電力系統(tǒng)應(yīng)用的分析[J].電力系統(tǒng)通信,2003,24(11):38-41.
[3] 宋磊,羅其亮,羅毅,等.電力系統(tǒng)實(shí)時數(shù)據(jù)通信加密方案[J].電力系統(tǒng)自動化,2004,28(14):76-81.
[4] 李惠宇,羅小莉,于盛林.一種基于GPRS的配電自動化系統(tǒng)方案[J].電力系統(tǒng)自動化,2003,27(24):63-65,77.
[5] FRTU P100 User's Guide,P&C Technologies Co.,Ltd.,Korea,2005.
[6] 盧忱,董秀珍,田春鳴,等.基于橢圓曲線密碼的分組網(wǎng)通信安全與保密[J].計算機(jī)工程,2006,32(21):133-135.