張 松,李亦非
(北京市電力公司 電能計量中心,北京 100161)
在電網技術由自動化向智能化方向發展的趨勢下,電子式電能表將向智能電能表過渡。智能電能表在電能量計量的基礎上具有信息存儲及處理、實時監測、自動控制、信息交互等功能,數據安全傳輸和存儲是實現以上功能的基礎,因此,如何保證信息傳遞、信息保存的安全性已經成為智能電能表的關鍵性因素。
智能電能表在硬件上主要包括電壓/電流采樣電路、計量芯片、中央控制單元(MCU)、電源模塊、存儲單元、控制回路、紅外通信、IC卡接口等部分,其中數據安全防護重點為數據存儲區和通信接口。在數據存貯方面,通常采用FLASH芯片和EEPROM芯片2種芯片,也有一部分產品將數據存儲在FRAM(鐵電存儲器)中。在對外通信接口方面,主要有紅外通信接口、RS485通信接口、CPU卡接口以及以窄帶載波、近距離無線和無線公網為主的其他通信接口。
智能電能表以電能量計量、信息存儲及處理、實時監測、自動控制、信息交互功能為特征,一般具有以下功能:①計量功能。正確計量正反向總有功電量,并單獨存儲;②費率時段。正確計量各費率時段有功電量和總有功電量;③數據存儲和凍結功能。存儲結算日或按照約定的時間或時間間隔的總電能、各費率電能、需量等信息;④事件記錄。存儲失壓、失流、斷相、開蓋、遠程控制等事件發生時間、結束時間和相應的電能量數據;⑤停電抄表??赏ㄟ^按鍵、紅外方式喚醒顯示,背光燈點亮,可支持紅外抄表;⑥通信功能。具有RS485、紅外通信接口、載波、公網等通信方式,通信協議一般采用DL/T 645系列通信協議;⑦預付費功能。電能表能夠按照預售給用戶的電費或電量值,在用完之后自動切斷用電的功能。預付費按照預付的內容分為電量控制和電費控制2種。按照預付費的方式分為遠程預付費和本地預付費,其中本地預付費以IC卡、射頻卡等固態介質為主,遠程預付費方式通過公網、載波等虛擬介質和遠程售電系統實現。
以上功能中需要存儲和傳輸的數據如表1所示。

表1 智能電能表數據明細表
從表1可以發現,計量功能、費率功能、預付費功能的相應參數和記錄值是數據安全防護的主要內容,特別是預付費相關數據,在電能表日常運行中需要經常讀寫,且此類數據關系到供用電雙方的經濟利益,屬于數據安全防護的重點。
電能表通過在編程開關外置封印來實現權限管理,目前已在電子式電能表上廣泛使用,主要用于電量清零、需量清零和與密碼驗證進行配合使用。
密碼驗證是通過在電能表數據傳輸中,預留固定字段用于密碼驗證,在密碼驗證通過后進行數據讀寫操作,其驗證過程如圖1所示。

密碼驗證的方式比較簡單實用,是一種常用的安全防護手段,國內電能表密碼驗證發展分為2個階段。第一階段以DL/T 645—1997《多功能電能表通訊規約》為標準,可對數據進行4字節的明文密碼驗證;第二階段以DL/T 645—2007《多功能電能表通訊規約》為標準,通過操作者代碼對數據進行了4字節明文密碼分級管理,這種方式可以根據數據安全等級的要求采用不同密碼,并記錄操作者的代碼,提高了電能表的數據安全防護能力和操作回溯性。
加密是將明文信息隱匿起來,使之在缺少特殊信息時不可讀,按照實現方式分為軟件加密和硬件加密。軟件加密是把加密算法在通用芯片(GSIC)上通過軟件的方式實現,硬件加密是通過專用芯片(ASIC)實現加密算法。其中軟件加密實現成本較低,但運算速度較慢,安全等級不高。硬件加密運算速度較快,安全防護等級較高,缺點是需要一定的成本,但是隨著使用量的增減,硬件加密產品如CPU智能卡、嵌入式安全模塊(ESAM)價格迅速降低,已經在公共交通、燃氣、供暖、供水、有線電視、物業管理等領域得到了廣泛使用,是智能電能表安全防護的主要手段之一。
數據加密主要通過安全認證和線路保護2種方式實現。安全認證過程如圖2所示。數據加密是在讀寫設備與電能表進行數據交換時,首先進行必要的認證,用來確認雙方身份。只有確認雙方身份后,才能建立相互之間的數據傳輸通道。密鑰在認證過程中只參與運算,不在通信中進行傳輸,使非法跟蹤無法在通信過程中截獲到密鑰。同時,運算過程中加入隨機數,加密運算產生的密碼也是隨機的,即使非法截獲到密碼也無法在下次認證時使用。認證操作是智能卡防止數據截獲的有效手段,在不知道密鑰的前提下,非法設備無法模擬安全認證的過程,無法進行數據的讀寫。

線路保護是指讀寫設備和智能卡通過安全認證后進行數據交換傳輸時,要保證數據在線路上被非法設備截獲后不能進行破譯、篡改和重放復現。數據的線路保護分為2個層面:一是數據的機密性保護;二是數據的完整性保護。數據的機密性保護是指要傳輸的數據用密鑰進行加密處理后再進行傳輸。這樣在線路中傳輸的數據為密文數據,非法設備截獲后無法進行數據破譯和分析,接收方收到密文數據后再用解密密鑰進行解密重新得到明文數據。數據的完整性保護是指再要傳輸的數據后附加校驗碼字節,發送方將發送數據與線路保護密鑰以及隨機數進行運算,生成校驗碼后進行數據傳輸,接收方接收到數據后用相同的密鑰對接收到的數據重新計算校驗碼并對校驗碼進行比較,相同則接收數據有效,否則數據無效。由于密鑰不在線路上傳輸,這樣非法設備獲取數據后如果對數據進行篡改,必然會導致校驗碼不正確,接收方就能夠拒絕接收錯誤數據。由于校驗碼再運算過程中也有隨機數參與運算,因此即使采用相同的密鑰,將相同的數據進行多次傳輸,每次形成的校驗碼也是各不相同的,這樣非法設備即使截獲了某一次的合理數據,也不能再進行二次傳輸。
在智能電能表中,硬件開關、密碼驗證和硬件加密3種數據防護方式需要根據數據安全防護需求分類配合使用,其中硬件開關由于技術實現較為簡單,主要通過鉛封分級管理進行,防護的重點是實現鉛封的規范管理。從圖1和圖2可以看出密碼驗證和數據加密的風險主要來自于其通信過程,對這2種措施,通常有幾種攻擊方式。
(1)截取信道中的數據
通過非法設備以及相關技術手段截獲傳輸過程中的數據,如圖3所示。這種方式是較為常見的攻擊方式,特別是對密碼驗證方式,在進行驗證時,密碼在線路上進行了傳輸,如果非法設備跟蹤到密碼驗證的第一步,就比較容易破譯整個驗證過程,從而達到獲取或篡改數據的目的。

(2)破譯IC卡或主站中的信息
在通過上述方式截獲數據信息后,可以根據數據信息的變化情況,對數據進行分析,從而確認外部設備、IC卡或主站端的數據含義以及數據變化規則,完成對數據信息的破譯,達到非法改變數據的目的。
(3)復現數據傳輸中的信息
非法設備在截獲信息后,并不對數據進行分析破譯,而是在記錄在特定操作中數據流的變化情況,在需要時,將記錄的數據流直接復制發送到電能表,從而達到非法改變數據信息的目的。
(4)差分能耗分析方法(DPA)
隨著加/解密技術的發展,1999年Paul首次提出了功耗分析,主要是利用ESAM中密碼運算過程中泄漏的能量信息,結合密碼算法的特點并運用統計分析方法來推測加密系統的關鍵信息,針對密碼芯片的差分功耗分析(differential power analysis,DPA)成為目前對公開算法的最快速、最有效的攻擊方法。
從上述分析可以看出,非法設備的攻擊重點是修改EEPROM、ESAM中的數據,因此保證以上數據區域中的數據安全是安全防護的基本要求,是進行智能電能表安全性設計的關鍵。結合目前的安全防護技術,為了防止合法設備在與電能表之間進行數據交互時不被非法設備跟蹤破譯,建議通過以下方式實現數據的安全防護。
(1)密碼驗證和編程開關配合使用
密碼驗證比較容易被截獲和破譯,因此此類方式在數據防護時不能獨立使用,需要通過編程開關,配合鉛封的分級管理進行使用,同時,需要在電能表中增加對此類操作的詳細事件記錄,一旦發生非法更改,可以通過記錄信息進行追查。此類方式安全防護能力較弱,不適用于費率數據等安全等級要求較高的數據保護。
(2)使用保密性能更高的加密算法
加密類型按照算法類型分為2種:對稱加密與非對稱加密,對稱加密雙方采用共同密鑰,非對稱加密存在2個密鑰,一種是公共密鑰(可以公開的密鑰值),一種是私人密鑰(對外保密)。在信息傳輸時,使用公共密鑰加密信息,在信息接收端使用私人密鑰解密信息密碼。使用私人密鑰加密的信息只能使用公共密鑰解密,從而達到確保信息安全的目的。一般來說對稱密鑰算法簡單,密鑰長度一般不超過128 bit,對硬件要求較低,但是對密鑰體系的管理要求較高。非對稱加密算法密鑰管理簡單,安全等級高,但是密鑰長度在192 bit以上,認證過程復雜,對硬件平臺要求較高。在電能表中一般采用對稱算法的硬件加密方式,目前使用較廣的為DES或3DES算法。但是,由于此類算法屬于公開算法,容易收到DPA技術的攻擊,所以建議采用算法不公開的對稱加密算法,如:SM1算法,可以提高對ESAM中數據的安全防護能力。
(3)密文和線路保護配合使用
由于電能表需要保護的數據較多,而ESAM中的數據存儲空間有限,所以部分數據需要存儲在EEPROM中,但密碼驗證和編程開關的防護能力不高,且需要人工操作,不便于實現遠程或自動運行,對于此類情況建議采用密文和線路保護配合使用的方式。通過線路保護防止在通信過程中信息被非法篡改,通過報文加密保證電能表必須通過解密操作獲得傳輸的信息,保證數據讀寫的安全性。