鄧清唐, 蔡田田, 陳波, 楊英杰
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司, 廣東 廣州 510663)
隨著我國(guó)電力系統(tǒng)的信息化與網(wǎng)絡(luò)化的發(fā)展,智能電能表逐步地替代了傳統(tǒng)電表, 解決了人工抄表浪費(fèi)人力、 錯(cuò)抄漏抄等問(wèn)題。 智能電能表以智能芯片為核心, 利用通信和計(jì)算機(jī)等技術(shù), 可實(shí)現(xiàn)計(jì)量、 計(jì)費(fèi)等功能, 此外還能完成用電管理等工作。智能電能表給電力部門(mén)和用戶(hù)帶來(lái)極大便利的同時(shí), 也帶來(lái)了網(wǎng)絡(luò)安全性問(wèn)題。 為了更好地發(fā)揮智能電能表的作用, 智能電能表的安全性成為了國(guó)家電網(wǎng)關(guān)注的重要問(wèn)題[1-2]。
智能電能表是電網(wǎng)的一部分, 如果智能電能表受到攻擊, 那么整個(gè)網(wǎng)絡(luò)都會(huì)暴露給入侵者, 因此需要嚴(yán)格地保護(hù)智能電能表的安全。 在智能電網(wǎng)中, 入侵者可以采用硬件或者軟件工具直接對(duì)智能電能表進(jìn)行攻擊, 在智能電能表被攻破后就能讀取各種接口上的各類(lèi)信息。 入侵者也可以在網(wǎng)絡(luò)接入點(diǎn)破解網(wǎng)絡(luò)中的加密文件, 進(jìn)而竊取智能電能表中儲(chǔ)存的重要數(shù)據(jù), 從而獲知智能電能表中使用的網(wǎng)絡(luò)通信協(xié)議, 通過(guò)修改通信協(xié)議攻擊者可以進(jìn)行多次數(shù)據(jù)的竊取。 此外, 入侵者還能控制電源, 導(dǎo)致城市的大面積停電, 甚至?xí)箶?shù)百萬(wàn)家庭的安全受到威脅。
智能電能表可以采用基于DES、 RSA 的加密算法加密數(shù)據(jù)和身份認(rèn)證等方式來(lái)保證數(shù)據(jù)通信的安全性。 隨著國(guó)密算法的推出, 我國(guó)逐步地推出了基于國(guó)密算法的安全芯片, 并將其用于智能電能表中[3-4]。 國(guó)密算法是我國(guó)自主研發(fā)創(chuàng)新的一套數(shù)據(jù)加密處理系列算法, 分別實(shí)現(xiàn)了對(duì)稱(chēng)、 非對(duì)稱(chēng)和摘要等算法, 完成身份認(rèn)證和數(shù)據(jù)加解密等功能,目前國(guó)密算法已經(jīng)用于安全芯片的身份驗(yàn)證和數(shù)據(jù)保護(hù)中[5-7], 但是這些芯片多數(shù)是針對(duì)某一種國(guó)密算法的研究, 沒(méi)有給出融合多種國(guó)密算法的安全設(shè)計(jì)方案。
為了更好地發(fā)揮國(guó)密算法對(duì)電網(wǎng)的安全保護(hù)作用, 解決智能電能表的安全問(wèn)題, 防止入侵者通過(guò)攻擊智能電能表而獲取整個(gè)電網(wǎng)的數(shù)據(jù)和保密性文件, 本文對(duì)比分析了各種不同的國(guó)密算法, 給出了智能電能表的安全芯片硬件框架設(shè)計(jì), 提出了一種基于國(guó)密安全芯片的智能電網(wǎng)安全機(jī)制, 從而保證了智能電能表的身份認(rèn)證和用戶(hù)數(shù)據(jù)的加密傳輸。
智能電能表除了計(jì)量功能外, 還要傳輸多種數(shù)據(jù), 電力部門(mén)可以利用這些數(shù)據(jù)分析出用戶(hù)的用電習(xí)慣, 并對(duì)用電進(jìn)行管理。 智能電能表可以分為單相智能電能表和三相智能電能表[8], 我們以單相電表為例介紹智能電能表的組成, 從而說(shuō)明了智能電能表實(shí)現(xiàn)各種功能的基本思路。
單相智能電能表由微控制單元(MCU: Micro Controller Unit)、 計(jì)量芯片、 安全芯片、 實(shí)時(shí)時(shí)鐘和各種接口等組成, 如圖1 所示。
圖1 單相智能電能表的組成
在圖1 中, 智能電能表在MCU 的控制下, 通過(guò)計(jì)量芯片準(zhǔn)確地獲得電網(wǎng)運(yùn)行的各個(gè)實(shí)時(shí)參數(shù),并依據(jù)相應(yīng)的費(fèi)率等要求對(duì)數(shù)據(jù)進(jìn)行處理, 其結(jié)果保存在存儲(chǔ)器(memory) 中, 并隨時(shí)通過(guò)通信單元進(jìn)行數(shù)據(jù)交換。 計(jì)量芯片實(shí)現(xiàn)對(duì)電壓和電流采樣, 并將采集的信息轉(zhuǎn)換為實(shí)際電能的數(shù)字?jǐn)?shù)據(jù)(電能脈沖) 輸出。 實(shí)時(shí)時(shí)鐘模塊為系統(tǒng)提供時(shí)鐘,作為電量?jī)鼋Y(jié)、 費(fèi)率切換的依據(jù)。 存儲(chǔ)模塊用來(lái)存儲(chǔ)電能表參數(shù)、 電量和歷史數(shù)據(jù)等。 顯示模塊用來(lái)顯示電量和相關(guān)數(shù)據(jù)。 通信模塊用來(lái)與遠(yuǎn)程的管理系統(tǒng)進(jìn)行通信, 提供數(shù)據(jù)傳輸?shù)耐ǖ馈?電源模塊負(fù)責(zé)給電能表提供工作電源。
智能電能表內(nèi)還包括了安全芯片, 用于實(shí)現(xiàn)電能表數(shù)據(jù)的安全存儲(chǔ)、 數(shù)據(jù)加/解密、 雙向身份認(rèn)證、 存取權(quán)限控制和線路加密傳輸?shù)劝踩刂乒δ堋?在對(duì)智能電能表進(jìn)行參數(shù)設(shè)置、 預(yù)存金額和下發(fā)遠(yuǎn)程控制命令操作時(shí), 通過(guò)嵌入式安全接入模塊(ESAM: Embedded Secure Access Module) 進(jìn)行安全認(rèn)證、 數(shù)據(jù)加/解密處理以確保數(shù)據(jù)傳輸?shù)陌踩院屯暾訹9]。 ESAM 保存電表費(fèi)率時(shí)段、 表號(hào)、客戶(hù)編號(hào)、 購(gòu)電金額、 購(gòu)電次數(shù)等與計(jì)量計(jì)費(fèi)相關(guān)的關(guān)鍵數(shù)據(jù), 修改時(shí)需要認(rèn)證或認(rèn)證+消息認(rèn)證碼(MAC: Message Authentication Code), 保障數(shù)據(jù)存儲(chǔ)的安全性。
國(guó)密算法即國(guó)家密碼局認(rèn)定的國(guó)產(chǎn)密碼算法。近年來(lái), 國(guó)家有關(guān)機(jī)關(guān)和監(jiān)管機(jī)構(gòu)從國(guó)家安全和長(zhǎng)遠(yuǎn)戰(zhàn)略的高度提出了推動(dòng)國(guó)密算法應(yīng)用實(shí)施、 加強(qiáng)行業(yè)安全可控的要求, 擺脫對(duì)國(guó)外技術(shù)和產(chǎn)品的過(guò)度依賴(lài), 增強(qiáng)我國(guó)行業(yè)信息系統(tǒng)的安全可控能力。2010 年底, 國(guó)家密碼管理局公布了我國(guó)自主研制的“橢圓曲線公鑰密碼算法” (SM2 算法), 并于2011 年要求公鑰密碼基礎(chǔ)設(shè)施電子認(rèn)證系統(tǒng)和密鑰管理系統(tǒng)應(yīng)使用國(guó)密算法。
常用的國(guó)密算法主要有包括SM1 (SCB2)、SM2、 SM3、 SM4、 SM7、 SM9 和祖沖之密碼算法(ZUC) 等。 其中, SM1、 SM4、 SM7 和ZUC 是對(duì)稱(chēng)算法; SM2、 SM9 是非對(duì)稱(chēng)算法; SM3 是哈希算法。 目前, 這些算法已被廣泛地應(yīng)用于各個(gè)領(lǐng)域中。
在國(guó)密算法中, SM1、 SM7 算法不公開(kāi), 調(diào)用該算法時(shí), 需要通過(guò)加密芯片的接口進(jìn)行調(diào)用; 其他算法已公開(kāi), 可以用軟件實(shí)現(xiàn)。 其中, SM2 為基于ECC 的非對(duì)稱(chēng)加密, 其簽名速度與密鑰生成速度都快于RSA。 256 位的ECC 安全強(qiáng)度比RSA 2 048 位高, 但其運(yùn)算速度比RSA 要快; SM3 是消息摘要, 其安全性要高于MD5 算法和SHA-1 算法。 SM4 無(wú)線局域網(wǎng)標(biāo)準(zhǔn)的分組數(shù)據(jù)算法, 用于實(shí)現(xiàn)數(shù)據(jù)的加密/解密運(yùn)算以保證數(shù)據(jù)和信息的機(jī)密性; SM4 算法在安全性上高于3DES 算法。
根據(jù)國(guó)家電網(wǎng)的智能電能表信息交換安全認(rèn)證技術(shù)規(guī)范, 智能電能表需要支持用戶(hù)身份認(rèn)證和數(shù)據(jù)加密保護(hù), 做到數(shù)據(jù)機(jī)密性和完整性保護(hù), 有效地防止重放攻擊和非法操作。
身份認(rèn)證包括本地身份認(rèn)證功能和遠(yuǎn)程身份認(rèn)證功能。 在對(duì)智能電能表進(jìn)行參數(shù)設(shè)置及用戶(hù)充值時(shí), 應(yīng)先進(jìn)行本地身份認(rèn)證, 認(rèn)證通過(guò)方可進(jìn)行后續(xù)的操作。 遠(yuǎn)程身份認(rèn)證通過(guò)后, 智能電能表才能進(jìn)行遠(yuǎn)程充值、 參數(shù)設(shè)置、 密鑰更新、 數(shù)據(jù)回抄、遠(yuǎn)程控制和電能表清零等操作。
數(shù)據(jù)加密保護(hù)是指智能電能表支持明文+MAC和密文+MAC 設(shè)置參數(shù)的功能。 智能電能表應(yīng)先驗(yàn)證MAC 校驗(yàn)的有效性, 驗(yàn)證通過(guò)方可進(jìn)行后續(xù)的操作。 電能表應(yīng)采用解密和驗(yàn)證MAC 的方式來(lái)驗(yàn)證數(shù)據(jù)的有效性, 具有防攻擊能力。
安全芯片是進(jìn)行密鑰生成、 加解密的裝置[7],能夠從硬件層面為密鑰和數(shù)據(jù)安全問(wèn)題提供可靠的解決方案, 向上層應(yīng)用提供完整的身份認(rèn)證、 安全存儲(chǔ)等功能, 抵御各種類(lèi)型的安全攻擊。 目前安全芯片支持的密鑰長(zhǎng)度種類(lèi)中可達(dá)2 048 位, 大大地降低了密碼破解的概率。
為了滿(mǎn)足智能電能表的安全需求, 安全芯片必須支持?jǐn)?shù)字簽名、 數(shù)字信封和消息加密, 支持外部接口進(jìn)行遠(yuǎn)程通信和應(yīng)用加載。 所設(shè)計(jì)的智能電能表安全芯片的基本功能如圖2 所示。 圖2 中所示的各種功能描述如下所述。
圖2 安全芯片的基本功能
a) 安全芯片唯一標(biāo)識(shí)的存儲(chǔ)
智能電能表安全芯片需要包含一個(gè)全球的唯一標(biāo)識(shí), 以區(qū)分不同的智能電能表。
b) 密鑰的存儲(chǔ)與分發(fā)
安全芯片需要存儲(chǔ)系統(tǒng)的公鑰和每個(gè)安全芯片特有的私鑰, 以完成個(gè)性化和密鑰發(fā)行操作。
c) 數(shù)據(jù)加密和解密
安全芯片負(fù)責(zé)把明文數(shù)據(jù)加密成安全報(bào)文, 加密時(shí)用對(duì)應(yīng)業(yè)務(wù)的密鑰加密并進(jìn)行簽名。 如果收到的數(shù)據(jù)為加密報(bào)文, 也要用對(duì)應(yīng)業(yè)務(wù)的加密算法的密鑰進(jìn)行解密。
d) 記錄讀取
如果上報(bào)或下發(fā)時(shí)指定了對(duì)應(yīng)業(yè)務(wù), 那么讀記錄時(shí)只有該業(yè)務(wù)能夠掌握會(huì)話密鑰并對(duì)數(shù)據(jù)進(jìn)行解密。
如第1.2 節(jié)所述, 國(guó)密算法一方面具有自主產(chǎn)權(quán), 另一方面具有更好的安全性或者加密速度, 因此本文研究了適用于基于國(guó)密算法的安全芯片及其安全機(jī)制。 采用基于國(guó)密算法的安全芯片是一種支持多種國(guó)密算法 (如SM1、 SM2、 SM3、 SM4、SM7、 SM9 和ZUC) 的系統(tǒng)級(jí)芯片, 最重要的密碼數(shù)據(jù)都儲(chǔ)存在安全芯片中, 安全芯片通過(guò)外設(shè)接口與智能電能表的其他模塊進(jìn)行通信, 然后配合MCU 完成各種安全保護(hù)工作。 由于具有獨(dú)立的處理器、 內(nèi)存及儲(chǔ)存單元, 安全芯片通常完成安全儲(chǔ)存、 加密算法和可信的身份認(rèn)證等功能, 具有可靠的通信加密、 防篡改和防抵賴(lài)等安全特性。
在國(guó)密算法中, 基于ECC 的非對(duì)稱(chēng)加密的SM2 算法具有簽名速度與密鑰生成速度快、 安全性強(qiáng)等特點(diǎn); 而SM4 適合數(shù)據(jù)傳輸。 因此, 本文提出了一種聯(lián)合使用SM2 和SM4 國(guó)密算法來(lái)實(shí)現(xiàn)智能電能表安全芯片的方法, 并提出了相應(yīng)的安全認(rèn)證機(jī)制。
在數(shù)據(jù)上傳與下發(fā)的過(guò)程中, 智能電能表內(nèi)置的安全芯片會(huì)參與每一條上行與下行指令的加密、解密、 簽名和驗(yàn)簽等工作。 針對(duì)每塊智能電能表,安全平臺(tái)也提供了激活授權(quán)、 應(yīng)用定制和應(yīng)用遠(yuǎn)程激活等管理功能, 在線管理智能電能表的安全應(yīng)用, 實(shí)現(xiàn)應(yīng)用遠(yuǎn)程加載和密鑰遠(yuǎn)程分發(fā)。 依靠安全芯片的有力支撐, 安全平臺(tái)保證了業(yè)務(wù)數(shù)據(jù)及密鑰信息在線傳輸?shù)臋C(jī)密性、 完整性和真實(shí)性。
當(dāng)智能電能表需要向遠(yuǎn)程管理系統(tǒng)上傳數(shù)據(jù)時(shí), 智能電能表首先使用安全芯片中的兩組SM4密鑰對(duì)數(shù)據(jù)進(jìn)行加密, 并生成消息認(rèn)證碼; 然后,打包發(fā)送給遠(yuǎn)程管理系統(tǒng)。 管理系統(tǒng)在收到數(shù)據(jù)包后, 調(diào)用安全平臺(tái)中的業(yè)務(wù)安全接口系統(tǒng), 獲取相應(yīng)的SM4 密鑰, 進(jìn)行消息認(rèn)證和解密。 當(dāng)管理系統(tǒng)需要向智能電能表下發(fā)數(shù)據(jù)時(shí), 分別使用SM4密鑰和SM2 私鑰對(duì)數(shù)據(jù)進(jìn)行加密并簽名后將數(shù)據(jù)打包發(fā)送給智能電能表, 智能電能表在收到數(shù)據(jù)包后, 分別調(diào)用安全芯片內(nèi)儲(chǔ)存的SM2 國(guó)密算法公鑰和SM4 密鑰進(jìn)行消息驗(yàn)簽和解密, 如圖3 所示。
圖3 智能電能表和遠(yuǎn)程管理間的數(shù)據(jù)安全機(jī)制
圖3 中的SM4 加密算法由32 次迭代運(yùn)算和1次反序變換R 組成。 設(shè)明文輸入為(X0, X1, X2,X3) ∈(Z322)4, 密文輸出為(Y0, Y1, Y2, Y3) ∈(Z322)4, 輪密鑰為rki∈Z322, i=0, 1, 2, …, 31。加密算法的運(yùn)算過(guò)程如下所述。
a) 32 次迭代運(yùn)算
Xi+4=F (Xi, Xi+1, Xi+2, Xi+3, rki), i=0, 1, 2,…, 31
b) 反序變換
(Y0, Y1, Y2, Y3) =R (X32, X33, X34, X35) =(X35, X34, X33, X32)
解密算法的解密變換與加密變換結(jié)構(gòu)相同, 不同的僅是輪密碼的使用順序。 解密時(shí), 使用輪密鑰的順序?yàn)椋╮k31, rk30, …, rk0)。
本文進(jìn)行了智能電網(wǎng)的安全分析, 探討國(guó)密算法在智能電能表安全芯片中的應(yīng)用, 此外還給出了基于國(guó)密安全芯片的智能電網(wǎng)安全機(jī)制, 實(shí)現(xiàn)了智能電能表安全信息的加密存儲(chǔ)和用戶(hù)數(shù)據(jù)的加密傳輸, 提升了整個(gè)智能電網(wǎng)的安全性能。 所提的算法結(jié)合智能電網(wǎng)和國(guó)密算法的特點(diǎn), 提出了融合SM2 和SM4 國(guó)密算法的安全芯片設(shè)計(jì)和安全認(rèn)證機(jī)制, 分析表明所研究的算法能夠快速、 安全地保證智能電網(wǎng)的安全。