竊取能源和篡改電表是一個世界性問題,這個問題會導致收入損失。消費者發現能夠控制自己的電表,使之暫停計費或不被記錄,改變或停止電表內的實時計時器,甚至可以做到跳過電表直接使用電能而不必付費。飛思卡爾最新于電表市場推出的MCF51EM256微控制器將幾大防篡改特性集成于一個芯片,大大減少了客戶的材料賬單(BoM)成本,又能有效地防止篡改現象。
簡介—防篡改特性需求
著電力成本的提高,竊電行為已經成為政府機構(公共事業部門)的主要擔憂,這是一個全球性的問題,尤其在印度和中國等人口眾多的國家更是嚴重。在公共設施計量應用中,不法分子會想法設法竊取信息或是更改內部設置。這些方法中比較常見的就是對時間進行微調以欺騙系統。
配電公司可能會依據每天的時段、最大需求和負荷等因素實行錯峰電價,這就需要一個實時計時器(RTC)以提供準確的時間參考。某些不法分子就會篡改計時器或操縱時間欺騙系統,以便改變計費結果,如將PM改為AM,這樣一來,因為在更改后的時段內采用非高峰負荷電價,所以電表固件會收取更少的費用。實時計時器(RTC)通常依靠一個32.768 kHz的外部晶體振蕩器,而不法分子則會改變這個RTC晶體以減緩震蕩達到少計數的目的,從而會使測量和計費也和實際耗電有所不同。
這些收入損失中的大部分都可以通過安裝電子電表來解決,因為它們可以探測到篡改行為從而保證正確的計費,這不同于電子機械電表。另外,這些電表會采用AMR或智能電網等先進的計量技術連接,公共事業公司便可以受益于自動獲悉任何遠程發生的篡改行為。
關于MCF51EM256
MCF51EM256基于ColdFire V1的微控制器,具有256K閃存、四個高精度16位的SAR ADC,可以在所有相位同時測量電流和電壓,以及中性電流。ADC由內部可編程延遲模塊自動激發,以對電流和電壓作出精確、同相的讀數。微控制器包括一個精確的1.2v輸出電壓基準,內部ADC和如增益放大器等外部組件可以利用它來進行精準的測量。微控制器包括一個獨立的RTC(iRTC),同時鐘一樣,它有自己的電源域,因此和其它系統組件是分開的。大多數的防篡改特性都在iRTC中實施。MCF51EM256還包括一個LCD驅動模塊、一系列如 IIC、SCI、SPI、可編程比較器和AMR SPI/SCI模塊等通信外圍設備。
MCF51EM256的防篡改特性
帶有獨立電源域的RTC
當主供電可用時,iRTC在主供電(VDD)上全時運行,當主電源發生故障時,會自動切換至電池供電(VBAT)。此行為過程如圖1所示。
圖1— 獨立RTC
iRTC可以檢測出主供電電壓(VDD)在特定閾值的下降,如在此閾值以下,就會自動轉至電池供電。在此閾值以下時,只有RTC和振蕩器會保持工作,而其它的微控制器都會關閉。
這就使所有相關邏輯可以在斷電時與篡改探測(稍后會講到)一起工作,除非電池移除或電能耗盡。
電池移除或電力故障下的保護
篡改系統的一般方法就是在干線電源不可用時移除電池。這就使得黑客可以有操縱系統的時間,之后再將電池裝回好像什么都沒發生過一樣。iRTC的獨立性包括其重置、時鐘和電源。獨立的電源在設備斷電時移除后,如果再連接電池,iRTC就會被重置,然后默認被篡改的狀態。
值得注意的事,iRTC相對于SoC POR來說有一個單獨的“上電復位(POR)”。iRTC POR只有在當主供電和電池電源都移除,然后其中一個被重新連接時才發揮效用。iRTC有檢測移除電池的功能,并能內部生成一個篡改干擾CPU。在最初的計量校準階段,這種篡改可以被忽略,因為此時系統處于分析模式。
檢測系統的外部篡改
電表也會面對來自真實世界的幾種攻擊。這包括系統箱體的損壞,某種信號的更改等。iRTC會得到片下防篡改開關的支持,它可通過MCU上的一個專門防篡改引腳進行連接,如圖2所示,因此可監視和檢測出這些侵入。這些抗篡改開關需要全時被監控,所以它們需要用電池(RTC)來供電。
這些防篡改開關更易產生噪音,且易引起錯誤的篡改條件。iRTC會過濾掉這些噪音以防錯誤的觸發行為。
篡改事件是影響CPU的原因之一。篡改事件的固件會采取必要的行為,如擦除所有安全信息、生成系統重置、在EEPROM或電池備份寄存器中儲存篡改事件,最后清除中斷標志。CPU對一個篡改事件的響應通常都是因應用而不同的。
圖2 –外部篡改探測
值得注意的是,一旦篡改中斷產生,除非主供電(VDD)和電池電源(VBAT)都移除,否是它是不會被清除的。當電源重新連接,篡改會處于默認狀態,只有在CPU內使用密碼才可對其進行重置。而在電表中,這個過程一般都在電表校準時完成。
除此之外,固件可以通過使用ADC內部溫度傳感器來實施篡改檢測。例如,當溫度超出一個特定運行范圍或是溫度有迅速的變化(當被凍住或同焊接裝置接觸時),固件就會在存儲器中記錄這樣一個行為,然后在讀數時(AMR或手工讀數)報告該篡改,并且點亮篡改LED燈。
篡改事件時間戳
iRTC可以檢測到以下篡改事件:
?當系統運行時移除電池(即VDD開啟)
?當系統關閉時移除電池(如,VDD關閉。POR自動檢測)
?如上所述外部篡改事件(如防篡改開關或標志的打開)
當有篡改事件被檢測出來后,iRTC會在寄存器中記錄日期(年/月/日)和時間(小時/分鐘/秒)。在一個電能表應用中,這會讓授權讀取數據的人了解(通過固件)自電表安裝以來,其受攻擊的時間和受攻擊次數。而配電公司也會就此依據向消費者開出賬單或執行罰款。另外,AMR還可在篡改事件發生后就能立刻發出提醒。
iRTC補償
iRTC包括一個專用的振蕩器,它依靠一個外部晶體作為其運行計時的時鐘源。這個晶體的特性會依壓力、電壓、溫度或一定化學物質而改變,這會改變晶體特性,這也會讓時鐘變快或變慢。iRTC會就時鐘產生的不精準作出糾正,繼續在iRTC計數器中生成精確的時間,以保持時間的精確。如果晶體走的過快,iRTC就會去除一定的脈沖計數,反之,如果時鐘走得慢,它就會加上一些脈沖,糾正就是這樣完成的。iRT可以糾正時鐘的不精確,從低至0.119 ppm到高至3906ppm1。
電表開發者可以使用ADC內部溫度傳感器,并在系統內存中保留晶體的溫度概況,以決定所需校準的尺度。iRTC校準總是在被稱為“糾正間隔”的特殊間隔完成,而被加或去掉的脈沖數量被稱為“糾正值”。固件必須決定這兩個值,并將其編程至iRTC寄存器中以執行糾正行為。
舉個例子,如果溫度的變化導致32.768 kHz晶體頻率減緩,如圖3所示,那么iRTC就會減緩計數,1Hz時鐘的周期就會增加。為將計秒時鐘(或1Hz時鐘)帶至正確數值,iRTC則會于特殊糾正間隔內減少時鐘脈沖。
圖3 – iRTC時鐘補償
同樣道理,當晶體頻率走高,iRTC就可以編程增加必要的震蕩器時鐘數量以保持正確的時間。
如果糾正需要在可接受范圍外執行,那么固件會顯示篡改信號或是晶體失敗。
防止惡意代碼更改RTC注冊設置
所有的iRTC注冊以及備份存儲都由一個寫入保護機制來保護,這樣任何來自惡意或失控代碼的寫入都不能更改iRTC寄存器的設置,除非它通過一個預先規定的解鎖序列。
圖4顯示了iRTC寄存器上的寫入保護。這一寄存器在POR上前15秒是未上鎖的,然后自動上鎖。在15秒之后如果想對它進行編程,就必須有一個特殊的序列寫入控制寄存器,該程序只能是有效/安全的程序。一旦解鎖,寄存器也會在開鎖2秒后自動上鎖CPU可以在這兩次失敗前選擇鎖定寄存器。
圖4 –寫入保護序列
這一寫入序列額外的好處就是保護寄存器免受ESD或外部噪音的干擾,而這些干擾可以觸發行為改變寄存器設置。由于任何寄存器的寫入都必須經歷一個固定的序列,所以ESD或噪音要摧毀寄存器是幾乎不可能的。
低電壓時防止寄存器崩潰
黑客或許會想要降低電壓以寫入RTC寄存器,從而改變設置或更改數值(因為數字邏輯在低電壓狀態下也許不會工作),這樣也會帶來時間上的錯誤。iRTC可以檢測出電壓的下降在某一特定閾值以下,所有RTC寄存器寫入入口都會自動關閉,直到電壓回到正常運行水平。CPU在這一事件中也會中斷。
強大單向計數器的單調計數
iRTC還整合了一個單向或單調計數器,當寫入條件為true時,CPU的寫入周期就會增加。這是一個32位計數器,可以用來保持電能脈沖的數目,如采用kWh計算,它就是終端客戶的計量單位。
單調計數器對付篡改的能力非常強大,因為計數器只在POR上清除,除非電表重置,否則是不可能被重新加載的。在它上面的每一次寫入都會使值增加,因此惡意代碼是不會對其數值有所減少的。作為RTC寄存器空間的一部分,它還使其免受誤寫入的困擾,正如在前面所介紹的一樣。
強大的固件代碼更新
MCF512EM256提供高效和遠程的代碼替換,如需要,還可選擇返回舊代碼。微控制器中有兩塊128kB的閃存,順序排列。每一組陣列都有單獨繪制的閃存寄存器。基于iRTC內部的控制位,這兩組陣列的地址可以交換。這就使得用戶可以在第一個閃存陣列中執行任務時又能更新第二個閃存陣列中的固件。所有的更新都可以在微控制器運行期間發生。這就讓公共事業公司可以遠程更新代碼而無需進行電能估算。例如,如果一家電力公司想要更新LCD軟件,更新的軟件在未保護的情況下下載到了未使用的閃存陣列中(Block 1)。而在閃存陣列(Block 0)上保護還是啟用的,即代碼執行地。在更新后,被更新陣列(Block 1)的保護重新啟用,而iRTC內的控制位會指出閃存陣列(Block 1)擁有更新過的代碼。舊的代碼或被擦除或是作為回退選項。系統重置會致使最新更新過的代碼被執行。在這種情況下,重置是不被推薦的,而核心代碼必須出現在兩種陣列中,并獲得塊保護。核心代碼不會被遠程更改,且需要進入后臺調試模式。
圖5 – 固件在MCF51EM256中升級
圖5展示了這一更新過程的高水準運行(更多詳情請參閱MCF51EM256參考手冊2)
自動讀表(AMR)
AMR技術指的是電表使用有線或無線網絡設置對數據自動收集并與通信中心通信的能力。AMR技術在世界上得到廣泛應用,包括Radio Frequency (RF), ZigBee? 協議、數據調制解調器 (通過標準電話網絡) 和電力線通信(PLC)。它一些通信可能包括通過一個“電子讀數器”設備的光學端口讀取數據。后者可能會基于串行端口(RS-485)或是紅外線路。
有了AMR技術的協助,任何登錄MCF51EM256存儲器的篡改事件都會通過AMR網絡提交給變電站。MCF51EM256通過專用SPI/SCI可用引腳來實現AMR的運行。
安全運行失敗時的多重時鐘來源
MCU可以由三種獨立的時鐘源來計時,如圖6所示的32.768 kHz iRTC晶體, 外部1-16 MHz晶體, 或是內部32 kHz振蕩器。在時鐘故障的情況下,計算機正確操作(COP)會同內部獨立時鐘協作,這有可能自動改變時鐘源并自動保持正常運行。振蕩器會有失靈的時候,如焊點失效、篡改短路晶體等,在以上這些情況下,系統有可能就會死機。但是COP則會繼續以其獨立時鐘運行并就超時做出重置。系統可以選擇改變時鐘源,如在重置后的重啟過程中轉至內部時鐘源。
盡管內部振蕩器的精確度會降低,但是精確度降低比無法測量要好。任何時鐘失敗都會在讀表時(AMR或手動)報告出來。同時也會產生篡改日志,并點亮篡改LED提示燈。
圖6 –為失敗安全運行準備的多重時鐘來源圖6 –為失敗安全運行準備的多重時鐘來源
總結
在智能電網中,能源表產品都可與能源公司進行雙向溝通,而且遠程接入并控制這些設備也成為了可能。隨著人力監測/控制的(電力公司方)減少,這些設備的抗篡改性也變得最為重要,設備也應能感知消費者的信息。MCF51EM256微控制器是一個有效的解決方案,不管今天還是未來都可以滿足智能電表的需求。
MCF51EM256非常適合電表應用,尤其是單相和多相電表,對聯網的和非聯網的同樣適用。所有以上提到的特色都基于MCF51EM256被應用到了多相電表參考設計中。
評論
查看更多