郭 晶, 季愛明
(蘇州大學(xué) 城市軌道交通學(xué)院, 江蘇 蘇州 215137)
隨著智能電網(wǎng)技術(shù)的發(fā)展,配電自動化系統(tǒng)規(guī)模日益擴大,多種通信方式并存及所有報文均采用明文傳輸?shù)耐ㄐ欧绞綄?dǎo)致系統(tǒng)受到各種網(wǎng)絡(luò)攻擊的風(fēng)險較大[1]。 加上配變終端安裝位置分布廣,地點分散,形成了設(shè)備數(shù)量多、運行環(huán)境惡劣等特點,部分地區(qū)存在搭接、偽造等接入電力信息網(wǎng)的安全風(fēng)險。 為了保證配電自動化系統(tǒng)的信息傳輸安全,必須采用高效可靠的加密措施進行數(shù)據(jù)安全防護[2]。
在供電電壓自動采集系統(tǒng)中,電壓監(jiān)測儀作為電壓測量終端,將通過GPRS 網(wǎng)絡(luò),采用TCP 協(xié)議,基于無線虛擬專網(wǎng)方式與CAC 之間進行數(shù)據(jù)通信,系統(tǒng)如圖1 所示。
數(shù)據(jù)的保密性直接取決于所采用的加密方式、 密碼算法[3]。 目前常用的加密方式有軟加密和硬加密兩種,軟加密不依靠特別的硬件設(shè)備,通過在程序中嵌入特定的軟件加解密包實現(xiàn)加解密,這種方案具有實現(xiàn)方便、兼容性好等優(yōu)點,但密鑰管理難、程序易被跟蹤破解。 硬加密則采用專用加密芯片等硬件設(shè)備在鏈路層對數(shù)據(jù)進行加解密, 其保密性強、加解密速度快。 加密算法則可分為對稱密鑰算法以及非對稱密鑰算法兩類。 對稱密鑰算法速度快,密鑰不宜維護;非對稱密鑰算法速度慢,密鑰便于維護[4]。 由此組合成的加密方案特性見表1。
表1 不同加密方案特性表Tab. 1 Features of different encryption systems
安全高效的加密系統(tǒng)經(jīng)常用對稱秘鑰算法加密大塊的數(shù)據(jù),用非對稱秘鑰算法對密鑰進行管理、生成數(shù)字簽名,這種混合加密機制使非對稱算法和對稱算法的優(yōu)勢充分發(fā)揮,既保證了數(shù)據(jù)安全又提高了效率[5]。 因此在硬件上實現(xiàn)混合加密機制的安全防護方案可以大大提高加密系統(tǒng)的安全和效率。
圖1 供電電壓采集系統(tǒng)Fig. 1 Diagram of supply voltage acquisition system
NRSEC3000 是南瑞公司自主研發(fā)用于電網(wǎng)信息安全防護的專用加密芯片,實現(xiàn)了國家商用密碼產(chǎn)品所需的SM1 對稱算法、SM2 非對稱算法、SM3 雜湊算法等專用加密模塊。 同時擁有ISO7816 和SPI 接口并支持多種通信速率, 所提供的包括電壓、頻率檢測機制,程序和數(shù)據(jù)加密存儲以及代碼保護等安全機制,可有效對抗物理攻擊、剖片探測[6]。 基于NRSEC3000 芯片的SM1、SM2 算法可以較方便的地實現(xiàn)混合加密機制,構(gòu)造出安全、高效的密碼系統(tǒng),可用于對信息安全有較高要求的應(yīng)用場合。
NRSEC3000 安全芯片通信采用 “一問一答” 方式,即MCU 發(fā)送命令給NRSEC3000 芯片,NRSEC3000 芯片返回應(yīng)答結(jié)果[7]。 芯片支持的每個算法功能都是由一個或多個交互過程完成的,這些交互過程可以分為四種形式:
1)MCU 向芯片發(fā)送命令頭CMD, 芯片返回應(yīng)答狀態(tài)字SW。
2)MCU 向芯片發(fā)送命令頭CMD, 芯片返回數(shù)據(jù)和應(yīng)答狀態(tài)字SW。
3)MCU 向芯片發(fā)送命令頭CMD 和數(shù)據(jù), 芯片返回應(yīng)答狀態(tài)字SW。
4)MCU 向芯片發(fā)送命令頭CMD 和數(shù)據(jù), 芯片返回數(shù)據(jù)和應(yīng)答狀態(tài)字SW。
其中CMD 命令頭決定了本次芯片調(diào)用的功能與具體操作參數(shù), 由5 個字節(jié)組成, 分別是CLA 指令類別,INS 指令碼,P1 參數(shù)1,P2 參數(shù)2,P3 參數(shù)3。 狀態(tài)字SW 標志本次芯片功能調(diào)用是否成功,由2 個字節(jié)組成,若收到的SW 依次為0x90、0x00,則表示成功,其他則表示失敗。
圖2 是NRSEC3000 加密芯片在電壓監(jiān)測儀中的應(yīng)用電路原理圖。
圖2 NRSEC3000 應(yīng)用電路原理圖Fig. 2 Application circuit schematics of NRSEC3000
圖2 中NRSEC3000 與微處理器的接口為SPI 總線,通信主端可采用SPI 模式3(CPOL=1、CPHA=1),時鐘頻率33MHz,中斷模式處理數(shù)據(jù)收發(fā)。 電壓監(jiān)測儀通過電壓采集模塊獲得電壓數(shù)據(jù)后,由加密芯片NRSEC3000 加密成密文,處理器獲得該電壓密文并通過GPRS 通信接口發(fā)送給遠方主站。
通過圖2 所示的硬件電路,遵循如前所述的芯片操作流程,本文成功實現(xiàn)了NRSEC3000 芯片的底層驅(qū)動, 并將各算法功能封裝成單獨的函數(shù)方便調(diào)用。由于篇幅所限,圖3 僅給出芯片SM1 加密函數(shù)的軟件操作流程(數(shù)據(jù)以十六進制表示)。
在圖3 中,MCU 發(fā)送的5 字節(jié)命令頭由a0 e0 80 p2 p3組成, 其中a0 e0 表示SM1 功能指令,80 表示加密,p2 p3 表示待加密數(shù)據(jù)的長度,p2 為高字節(jié),p3 為低字節(jié)。發(fā)送aa..表示持續(xù)發(fā)送aa,直到接收到需要的字符;收到..e0 表示持續(xù)接收,直到收到的字符為e0。第一次接收到e0 表示芯片已經(jīng)確認本次調(diào)用的功能為SM1 加密, 第二次接收到e0 表示芯片已經(jīng)確認收到加密數(shù)據(jù),最后接收到狀態(tài)字90 00,標志SM1加密操作成功。
圖3 SM1 加密函數(shù)流程圖Fig. 3 Flowchart of SM1 encryption function
CAC 是供電電壓自動采集系統(tǒng)的重要組成部分,在系統(tǒng)中發(fā)揮承上啟下的樞紐作用[8]。 當電壓監(jiān)測終端接入CAC 之前,需要進行3 個準備工作,它們是:1)硬件初始化,生成SM2 密鑰對;2)生成安全芯片的證書請求并提交證書簽發(fā)機構(gòu);3)將簽發(fā)出的終端自身證書及主站公鑰保存本地。 終端的密鑰對與最后簽發(fā)出來的證書是一一對應(yīng)的,如果重新生成密鑰對,則終端原來簽發(fā)的證書將失效,因此上述準備工作只需要在第一次安全接入之前做一次。
圖4 秘鑰協(xié)商軟件流程Fig. 4 Flowchart of key agreement software
完成準備工作,終端將連入GPRS 無線專網(wǎng)與CAC 進行密鑰協(xié)商,只有雙方通過身份認證,才能進行后續(xù)的數(shù)據(jù)通信。 按照報文數(shù)據(jù)的發(fā)送方向與處理過程,整個秘鑰協(xié)商可分3 個步驟, 第一步終端側(cè)向CAC 發(fā)送秘鑰協(xié)商請求報文A;第二步CAC 側(cè)對報文A 解密,向終端發(fā)送秘鑰協(xié)商應(yīng)答報文B;第三步終端側(cè)對報文B 解密,向CAC 發(fā)送秘鑰協(xié)商確認報文C, 具體的軟件流程圖如圖4 所示。 圖4 中報文幀A、報文幀B、報文幀C 的數(shù)據(jù)結(jié)構(gòu)如下:
//密鑰協(xié)商請求報文結(jié)構(gòu)
typedef struct KeyDigReq_Packet_s {
unsigned char type; /* 類型*/
unsigned char s_type; /* 子類*/
unsigned short packetLen; /* 幀長度*/
unsigned char ver_0; /* 版本號*/
unsigned char ver_1; /* 版本號*/
unsigned short sn; /* 序列號*/
unsigned char sim[16]; /*SIM 卡號*/
unsigned char dev_id[18]; /* 裝置ID*/
unsigned char *pcert; /* 數(shù)字證書指針*/
unsigned char eRand[128]; /* 加密隨機數(shù)*/
unsigned char sign[64]; /* 簽名*/
} KeyDigReq_Packet_t;
//密鑰協(xié)商請求應(yīng)答報文結(jié)構(gòu)
typedef struct KeyDigReq_PacketAck_s {
unsigned char type; /* 類型*/
unsigned char s_type; /* 子類型*/
unsigned short packetLen; /* 幀長度*/
unsigned short sn; /* 序列號*/
unsigned char eRand[128]; /* 加密隨機數(shù)*/
unsigned char sign[64]; /* 簽名*/
} KeyDigReq_PacketAck_t;
//密鑰協(xié)商確認報文結(jié)構(gòu)
typedef struct KeyDigReq_PacketAssure_s {
unsigned char type; /* 類型*/
unsigned char s_type; /* 子類型*/
unsigned short packetLen; /* 幀長度*/
unsigned short sn; /* 序列號*/
unsigned char auth[146]; /* 安全認證*/
unsigned char sessionKeyHash [32]; /* 會 話 密 鑰HASH*/
} KeyDigReq_PacketAssure_t;
在協(xié)商好會話密鑰,進行數(shù)據(jù)通信的時候,需要對應(yīng)用層的數(shù)據(jù)報文用SM1 對稱算法進行加解密。 先對原始數(shù)據(jù)報文填充1-16 字節(jié),使其長度為16 的倍數(shù),對填充后的原始報文和填充報文使用之前協(xié)商好的會話密鑰DK 進行加密即可。
在實現(xiàn)無線加密功能的基礎(chǔ)上,采用LM3S9B96 作為微處理器成功研制了電壓監(jiān)測儀樣機,從電壓采集、通訊模塊、人機接口、數(shù)據(jù)存儲、電源管理等方面設(shè)計了系統(tǒng)硬件結(jié)構(gòu),軟件以實時操作系統(tǒng)SAFERTOS 為核心進行任務(wù)劃分與調(diào)度,如圖5 所示。
圖5 電壓監(jiān)測儀樣機Fig. 5 Prototype of voltage monitor
經(jīng)測試, 電壓監(jiān)測儀通過NRSEC3000 加密芯片可以成功接入CAC,并進行數(shù)據(jù)傳輸。 表2 給出了終端發(fā)送心跳加密報文的相關(guān)數(shù)據(jù)。
表2 心跳報文數(shù)據(jù)Tab. 2 Heartbeat packet data
本文詳細說明了NRSEC3000 加密芯片的工作原理與操作方法, 在編寫NRSEC3000 底層驅(qū)動的基礎(chǔ)上, 利用NRSEC3000 芯片的SM1、SM2 等算法功能, 實現(xiàn)了基于混合加密機制的通信協(xié)議, 有效提高了加密系統(tǒng)的效率與安全。此基礎(chǔ)上研制的電壓監(jiān)測儀樣機成功接入遠方CAC,定時將電壓數(shù)據(jù)加密上傳,為供電電壓采集系統(tǒng)中電力信息的安全傳輸提供了有力保障。 NRSEC3000 加密芯片性能可靠,相應(yīng)的軟硬件改造簡單方便,因此在電壓監(jiān)測儀安全防護中具有廣闊的應(yīng)用前景。
[1] 張志華,周捷,丁可. 非對稱數(shù)字簽名技術(shù)在配電自動化系統(tǒng)的應(yīng)用[J]. 電氣自動化,2012,34(3):39-41.
ZHANG Zhi-hua,ZHOU Jie,DING Ke. The applications of asymmetric encryption of digital signature technology in distribution automation system[J]. Electric Automation,2012,34(3):39-41.
[2] Q/GDW 1819—2012《電壓監(jiān)測裝置技術(shù)規(guī)范》[S].國家電網(wǎng)公司,2013.
[3] (美)帕爾著.深入淺出密碼學(xué) 常用加密技術(shù)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2012.
[4] 俞經(jīng)善,王晶,楊龍. 基于ECC和AES相結(jié)合的加密系統(tǒng)的實現(xiàn)[J]. 信息技術(shù),2006(2):44-46.
YU Jing-shan,WANG Jing,YANG Chuan-long. The realization of encryption system based on ECC and AES[J].Information Technology,2006(2):44-46.
[5] 王紅珍, 李竹林. 基于AES和ECC的混合加密系統(tǒng)的設(shè)計與實現(xiàn)[J]. 電子設(shè)計工程,2012,20(4):9-11.
WANG Hong-zhen,LI Zhu-lin. Design and realization of mixed encrypted system based on AES and ECC [J].Electronic Design Engineering,2012,20(4):9-11.
[6] 南瑞信通. 安全芯片NRSEC3000硬件使用手冊v1.5 [Z].2013.7.
[7] 南瑞信通. NRSEC3000安全芯片編程手冊v2.0 [Z]. 2013.
[8] 南瑞信通.采集類終端的安全防護v1.7 [Z]. 2013.7.