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