淺析新一代智能儀表面臨的安全威脅及應(yīng)對(duì)設(shè)計(jì)
目前全球電表安裝數(shù)量接近20億臺(tái),但只有不到10%的電表可以被認(rèn)為是具有雙向通信功能的“智能”儀表。隨著下一代儀表的開(kāi)發(fā)和安裝,今后幾年中這種情況將會(huì)得到改變。如果再將氣表和水表的數(shù)量增加進(jìn)去,那么儀表數(shù)量很容易翻倍至40億臺(tái)甚至更多。
下一代智能儀表會(huì)將網(wǎng)關(guān)引入家庭,允許公用事業(yè)公司和消費(fèi)者管理能耗。公用事業(yè)公司可以建立動(dòng)態(tài)定價(jià)以便鼓勵(lì)消費(fèi)者避開(kāi)高峰負(fù)荷時(shí)間,而消費(fèi)者也可以更好地跟蹤使用情況,并決定何時(shí)不使用大功率電器以縮減能源帳單。有關(guān)使用情況的數(shù)據(jù)最初可以使用連接公用事業(yè)公司的PC或智能手機(jī)通過(guò)互聯(lián)網(wǎng)進(jìn)行查詢,這樣消費(fèi)者就可以訪問(wèn)到離線使用數(shù)據(jù),但未來(lái)消費(fèi)者能夠直接登錄智能儀表獲得實(shí)時(shí)能耗數(shù)據(jù)。保護(hù)這些數(shù)據(jù)的安全性是公用事業(yè)公司和電子儀表供應(yīng)商面臨的主要挑戰(zhàn)之一。
智能儀表基礎(chǔ)
雖然定義多少有些變化,但智能儀表無(wú)外乎是監(jiān)視能量、煤氣或水的消耗,然后一般是在LCD顯示器上實(shí)時(shí)顯示消耗數(shù)據(jù)。這些儀表一般都有一個(gè)通信接口 ——在美國(guó),許多公司將ZigBee無(wú)線射頻作為標(biāo)準(zhǔn)接口鏈接到公用事業(yè)公司,而在歐洲,許多公用事業(yè)組織一致同意使用電力線通信將儀表鏈接到公用事業(yè)公司。這些通信接口也必須具有低功耗特性,即使它們大部分時(shí)間處于“睡眠”或待機(jī)模式。
電力公司從固定費(fèi)率帳單向計(jì)時(shí)帳單的轉(zhuǎn)換催生了第二代電子儀表,它們具有足夠的智能處理計(jì)時(shí)帳單,并支持自動(dòng)抄表(AMR)。這種改變需要功能更強(qiáng)大的微處理器、無(wú)線射頻、信息豐富的LCD和實(shí)時(shí)時(shí)鐘(RTC)來(lái)配合模擬前端(AFE)。在這一代中的第一批儀表將使用多個(gè)芯片來(lái)實(shí)現(xiàn)所有功能。然而,隨著公用事業(yè)公司努力降低成本,元件/儀表供應(yīng)商將進(jìn)一步提高元件集成度。
智能儀表的核心是低功耗微控制器加上模擬前端(AFE)。例如在電表中,先由AFE檢測(cè)電流和電壓,將檢測(cè)得到的值轉(zhuǎn)換成數(shù)字格式,然后將數(shù)字值發(fā)送到微控制器,再由微控制器處理這些數(shù)據(jù)、在本地內(nèi)存中存儲(chǔ)讀數(shù)、并在小型LCD屏幕上顯示相關(guān)信息。最后通過(guò)通信接口定期地向公用事業(yè)公司上傳數(shù)據(jù)對(duì)于氣表或水表來(lái)說(shuō),特別低的功耗是附加要求,因?yàn)檫@些儀表必須采用電池供電,而且電池必須持續(xù)工作幾年時(shí)間?;蛘咭部赡苁褂媚撤N類型的能量收集能源取代電池。
新一代智能儀表面臨的安全威脅
在實(shí)現(xiàn)系統(tǒng)硬件時(shí),設(shè)計(jì)師必須考慮各種系統(tǒng)入侵方式。一般有4種系統(tǒng)入侵方式,包括:
竊聽(tīng)——黑客可以監(jiān)視所有電源和接口連接以及處理器在正常工作期間產(chǎn)生的任何其它電磁輻射的模擬特征。
軟件攻擊——普通處理器的通信接口可以被用來(lái)嘗試?yán)迷跀?shù)據(jù)通信協(xié)議、加密算法和系統(tǒng)其它方面發(fā)現(xiàn)的安全漏洞。
故障產(chǎn)生——黑客可以通過(guò)改變時(shí)序和電壓值形成異常工作狀態(tài),進(jìn)而導(dǎo)致處理器產(chǎn)生故障,并進(jìn)入允許訪問(wèn)系統(tǒng)安全部分的狀態(tài)。另外,將芯片表面暴露在激 光下也可以借助電路天生的光電效應(yīng)產(chǎn)生故障。一旦芯片表面被暴露,激光是最難對(duì)付的一種技術(shù)。然而,激光的使用可能更適合歸到下一個(gè)覆蓋入侵技術(shù)的種類, 因?yàn)檫@種入侵方式下芯片表面必須要暴露。
微探測(cè)——這種方法要求直接訪問(wèn)芯片表面,以便物理探針能夠注入信號(hào)、捕獲數(shù)據(jù)、操作寄存器并干擾系統(tǒng)操作,從而竊取安全信息。
微探測(cè)是一種入侵攻擊方式,需要復(fù)雜的設(shè)備來(lái)訪問(wèn)片上電路,而且一般要求很長(zhǎng)時(shí)間才能獲得訪問(wèn)權(quán),同時(shí)會(huì)破壞電路封裝甚至電路本身。這也是一個(gè)相當(dāng)昂貴的挑戰(zhàn),因此只有當(dāng)回報(bào)值得前期反向工程芯片一部分或整個(gè)芯片的費(fèi)用時(shí)才會(huì)用這種方式。
其它三種攻擊方法都是非入侵式攻擊,通常在最初解決方案之后可以很快再現(xiàn),因?yàn)椴灰髮?duì)電路進(jìn)行物理入侵。被攻擊電路不會(huì)有物理?yè)p壞,攻擊中使用的設(shè)備相對(duì)比較簡(jiǎn)單,成本也較低。
差分功耗分析(DPA)——一種流行的黑客方法,通過(guò)同時(shí)監(jiān)視正常操作和故障期間操作情況,能讓黑客判斷軟件的執(zhí)行,因此電路設(shè)計(jì)應(yīng)包括應(yīng)對(duì)這類分析的各種對(duì)策。
DPA是Cryptography Research公司(現(xiàn)在是Rambus公司的一個(gè)事業(yè)部)研究人員發(fā)明的一種使用統(tǒng)計(jì)分析技術(shù)的攻擊方法。它能幫助密碼破譯者通過(guò)分析電路功耗提取出 密鑰,并獲取各種IC和防篡改器件中嵌入的安全信息。一種被稱為簡(jiǎn)單功耗分析(SPA)的方法則沒(méi)那么復(fù)雜,它不使用統(tǒng)計(jì)運(yùn)算技術(shù)。SPA 和DPA攻擊都是非入侵式攻擊。這些攻擊無(wú)需目標(biāo)電路知識(shí)就能自動(dòng)執(zhí)行。
智能儀表的安全性設(shè)計(jì)要求
本地攻擊者能夠通過(guò)物理方式訪問(wèn)儀表、網(wǎng)關(guān)或這些設(shè)備之間的連接。他們會(huì)試圖透露或改變存儲(chǔ)在儀表或網(wǎng)關(guān)中的使用數(shù)據(jù),或者在城域網(wǎng)中的儀表和網(wǎng)關(guān)之間傳送的數(shù)據(jù)。這種威脅模型假設(shè)本地攻擊者的動(dòng)機(jī)沒(méi)有WAN攻擊者強(qiáng)烈,因?yàn)楸镜毓粽叩囊淮纬晒糁粫?huì)影響一個(gè)網(wǎng)關(guān)。本地攻擊者也有可能是試圖不想付費(fèi)使用服務(wù)的消費(fèi)者。
位于WAN中的攻擊者(WAN攻擊者)可能試圖破壞通過(guò)WAN傳送的儀表數(shù)據(jù)和/或配置數(shù)據(jù)的機(jī)密性和/或完整性。WAN攻擊者也可能試圖通過(guò)WAN 操控基礎(chǔ)設(shè)施中的一個(gè)設(shè)備(如儀表、網(wǎng)關(guān)或可控制的本地系統(tǒng)),對(duì)該設(shè)備進(jìn)行破壞,或?qū)ο鄳?yīng)的電網(wǎng)進(jìn)行破壞(例如通過(guò)向外部實(shí)體發(fā)送偽造的儀表數(shù)據(jù))。即使在共同標(biāo)準(zhǔn)(Common Criteria)概念中具有最大攻擊可能性的攻擊者(即具有大攻擊可能性的WAN攻擊者)決定了漏洞分析水平,但以下威脅定義承認(rèn)本地攻擊者的攻擊可能性要比遠(yuǎn)程攻擊者小。
在設(shè)計(jì)電子儀表時(shí)需要考慮幾個(gè)關(guān)鍵因素——儀表功耗、成本和可靠性。功耗和成本都必須盡可能小,以確保數(shù)百萬(wàn)臺(tái)儀表不會(huì)給電網(wǎng)增加任何顯著的功率泄漏,與此同時(shí),儀表成本必須要低,因?yàn)楣檬聵I(yè)公司必須能夠以適當(dāng)?shù)某杀咎娲系膬x表。基于長(zhǎng)工作壽命和自然特性/服務(wù)質(zhì)量的原因,可靠性要求是顯而易見(jiàn)的。另外,如前所述,這些儀表必須是安全的——數(shù)據(jù)加密必須是儀表設(shè)計(jì)的有機(jī)組成部分,要確保黑客無(wú)法收集到個(gè)人數(shù)據(jù)或訪問(wèn)公用事業(yè)網(wǎng)絡(luò)。
設(shè)計(jì)智能儀表的公司必須要滿足全球各個(gè)地區(qū)的不同法規(guī)要求以及每個(gè)市場(chǎng)要求的不同服務(wù)和功能。舉例來(lái)說(shuō),美國(guó)的自動(dòng)化儀表讀取法規(guī)規(guī)定了讀表頻率、數(shù)據(jù)傳輸機(jī)制以及在任何點(diǎn)的儀表中必須及時(shí)存儲(chǔ)的本地?cái)?shù)據(jù)量。為防止數(shù)據(jù)丟失系統(tǒng)必須存儲(chǔ)的數(shù)據(jù)量將影響智能儀表中需要的本地內(nèi)存容量,而這又會(huì)影響到元件的選擇和成本。
在德國(guó),BSI為與廣域網(wǎng)連接的通信網(wǎng)關(guān)定義了安全保護(hù)規(guī)范,并且強(qiáng)制使用安全模塊。這種網(wǎng)關(guān)要達(dá)到共同標(biāo)準(zhǔn)(Common Criteria)EAL4+安全等級(jí)。VaultIC4xxx安全模塊是業(yè)內(nèi)多種安全解決方案之一,已經(jīng)能夠提供這種安全等級(jí),因而能最大限度地減少網(wǎng)關(guān)制造商的認(rèn)證工作量。
智能儀表設(shè)計(jì)的另外一個(gè)重要方面是防止儀表被篡改——全球有許多地方公用事業(yè)偷竊量占總使用量的比例十分顯著。通過(guò)采用各種檢測(cè)機(jī)制來(lái)檢測(cè)儀表外殼是否被打開(kāi)、是否有探頭插入、附近是否有強(qiáng)大的磁場(chǎng)、或其它一些篡改方式,儀表可以向公用事業(yè)公司回傳消息甚至鎖住消費(fèi)者,直到服務(wù)技術(shù)人員到現(xiàn)場(chǎng)判斷觸發(fā)篡改告警的真實(shí)事件。這種方法有助于公用事業(yè)公司實(shí)現(xiàn)更好的控制,同時(shí)減少?zèng)]有測(cè)量到的損失。
為了設(shè)計(jì)一臺(tái)儀表,最佳的啟動(dòng)方式是定義一個(gè)公共平臺(tái),這個(gè)平臺(tái)只需很少量修改就能跨平臺(tái)和跨地區(qū)使用。然后判斷內(nèi)部微控制器(MCU)執(zhí)行所有任務(wù)所需的計(jì)算能力。市場(chǎng)上有許多現(xiàn)成的高集成度MCU可以完成這些任務(wù),但當(dāng)加入低功耗約束條件和數(shù)據(jù)加密要求后,可選余地就相當(dāng)窄了。當(dāng)然,也可以為電子儀表應(yīng)用專門設(shè)計(jì)一種專用系統(tǒng)級(jí)芯片(SoC),但成本和開(kāi)發(fā)時(shí)間可能是個(gè)問(wèn)題。不過(guò)最終解決方案可能因消除了許多分立元件而降低總體系統(tǒng)成本。
雖然許多微控制器供應(yīng)商都能提供包含片上模數(shù)轉(zhuǎn)換器(ADC)的MCU,但信號(hào)捕獲和轉(zhuǎn)換要求經(jīng)常導(dǎo)致選用獨(dú)立的模擬前端芯片。這種芯片設(shè)計(jì)用于檢測(cè)使用情況(電流、氣流、水流),并將傳感器輸出轉(zhuǎn)換成數(shù)字形式以便分析消耗數(shù)據(jù)。例如在電表中,單相或多相前端可以提供許多先進(jìn)的電能監(jiān)視特性,如功率因數(shù)、矢量和及諧波分量。測(cè)量精度和電子快速瞬態(tài)(EFT)響應(yīng)是電表設(shè)計(jì)的關(guān)鍵要求。
應(yīng)對(duì)差分功耗分析(DPA)
在系統(tǒng)或芯片設(shè)計(jì)期間通過(guò)減少每個(gè)軟件或硬件操作之間一般都存在的功耗變化可以有效對(duì)付SPA和DPA攻擊。這樣,通過(guò)“水平化”功耗,SPA和 DPA方法就無(wú)法判斷什么操作在進(jìn)行,從而無(wú)法提取任何有用的信息。水平化功耗的一種方法是在功耗測(cè)量中增加不同類型的噪聲,從而模糊真實(shí)的功耗。另外,在芯片設(shè)計(jì)過(guò)程中加擾各種數(shù)據(jù)總線和地址線也能起到模糊真實(shí)功耗的作用。
由于密碼包含大量按位算術(shù)功能,分析代碼中的常數(shù)和記憶順序可以給黑客提示所使用的加密算法類型。通過(guò)在代碼執(zhí)行期間對(duì)功耗波動(dòng)應(yīng)用統(tǒng)計(jì)分析技術(shù),指令序列可以得到重構(gòu)。這樣對(duì)隱藏操作的需求成為主要考慮因素。
隨機(jī)化技術(shù)也能應(yīng)用到算法中,以便系統(tǒng)中操作的數(shù)據(jù)表現(xiàn)得更加隨機(jī),但可以通過(guò)重構(gòu)產(chǎn)生正確的結(jié)果。如果系統(tǒng)允許修改加密協(xié)議,那么還可以增加額外的對(duì)策,即在系統(tǒng)壽命期內(nèi)通過(guò)修改協(xié)議來(lái)持續(xù)刷新和更新加密信息。
基本上我們可以運(yùn)用老的類比法——如果你將安全想象為一條鏈,那么這條鏈實(shí)際上只是相當(dāng)于最弱的鏈路(安全協(xié)議——加密技術(shù)——密鑰存儲(chǔ))。每個(gè)領(lǐng)域都必須進(jìn)行分析并防止入侵。
在系統(tǒng)中的芯片的物理設(shè)計(jì)過(guò)程中,應(yīng)采用適當(dāng)?shù)碾娐泛桶鎴D方法防止芯片反向工程,因?yàn)榉聪蚬こ棠茏尯诳椭貥?gòu)電路并分析數(shù)據(jù)處理。像加擾片上數(shù)據(jù)總線和存儲(chǔ)器地址線等簡(jiǎn)單方法就是一個(gè)好的起點(diǎn)。另外一些方案包括加密通常存儲(chǔ)在微控制器或?qū)S冒踩刂破髦械陌踩荑€。
一旦使用強(qiáng)大的加密技術(shù),那么密鑰存儲(chǔ)就成為最弱的鏈路。另外,許多系統(tǒng)可能將密鑰的多個(gè)拷貝存放在不同地點(diǎn),但有些地點(diǎn)黑客可能會(huì)訪問(wèn)到。為了排除這種攻擊方法,密鑰可以存儲(chǔ)在:
1) 在線的中央服務(wù)器中(但裝置昂貴,響應(yīng)時(shí)間長(zhǎng))
2) 半在線(系統(tǒng)在啟動(dòng)時(shí)接收密鑰,在運(yùn)行期間密鑰通常保持在DRAM中)——這是一種不好的方案,因?yàn)镈RAM可能被監(jiān)視
3) 安全存儲(chǔ)密鑰拷貝的離線設(shè)備中
一般來(lái)說(shuō),密鑰對(duì)每個(gè)用戶來(lái)說(shuō)都應(yīng)不同(但這會(huì)要求許多不同的密鑰,因而密鑰產(chǎn)生電路應(yīng)具有可擴(kuò)展性)。密鑰還應(yīng)能立即訪問(wèn)(這與前一點(diǎn)相矛盾,并要求少量密鑰)。最好的替代方案是從主密鑰派生出用戶密鑰,并將主密鑰存儲(chǔ)在“保險(xiǎn)庫(kù)”中。這樣能在遭遇入侵時(shí)保持業(yè)務(wù)的連貫性。
非入侵式攻擊的結(jié)果可能特別危險(xiǎn),因?yàn)槭芎ο到y(tǒng)的主人可能不會(huì)注意到密鑰已被偷竊,從而在密鑰被非法使用前無(wú)法足夠快速地使泄漏密鑰失效。其次,非入侵式攻擊不是非常明顯,因?yàn)楸匾O(shè)備(例如帶專用分析軟件的小型DSP板)通??梢赃m度低成本地生產(chǎn),并且很容易更新為新的分析算法。
產(chǎn)生故障攻擊
在小故障攻擊方式中,黑客會(huì)故意產(chǎn)生故障并致使電路中的一個(gè)或多個(gè)邏輯單元翻轉(zhuǎn)為錯(cuò)誤狀態(tài)。當(dāng)這種現(xiàn)象發(fā)生時(shí),黑客可以嘗試用幾乎任意一個(gè)不同指令代替單個(gè)重要的處理器指令。小故障還能用來(lái)破壞數(shù)據(jù)值,因?yàn)閿?shù)據(jù)要在寄存器和存儲(chǔ)器之間傳送。
一共有4種可以用來(lái)創(chuàng)建只對(duì)安全處理器中的少數(shù)機(jī)器周期有影響的相當(dāng)可靠的故障方法:外部電場(chǎng)瞬變、時(shí)鐘信號(hào)瞬變、電源瞬變以及在暴露芯片表面的激光照射。需要重點(diǎn)考慮的是黑客可能想用小故障代替的指令——條件跳轉(zhuǎn)或之前的測(cè)試指令。
小故障可能會(huì)在許多安全應(yīng)用程序的處理過(guò)程中打開(kāi)漏洞窗口。這種漏洞將允許黑客繞過(guò)加密障礙,方法是阻止那些警告系統(tǒng)有個(gè)認(rèn)證企圖未成功的代碼的執(zhí)行。
時(shí)鐘信號(hào)毛刺是目前能夠產(chǎn)生的最簡(jiǎn)單、最實(shí)用的一種小故障。這種方法是增加像毛刺一樣的一些時(shí)鐘,臨時(shí)將時(shí)鐘頻率增加半個(gè)或半個(gè)多周期,這樣一些觸發(fā)器會(huì)試圖在新?tīng)顟B(tài)到達(dá)前采樣它們的輸入。一些系統(tǒng)供應(yīng)商聲稱他們的系統(tǒng)在時(shí)鐘信號(hào)處理邏輯中包含高頻檢測(cè)器。然而,黑客可以通過(guò)仔細(xì)選擇毛刺產(chǎn)生過(guò)程中的時(shí)鐘信號(hào)占空比避開(kāi)這些檢測(cè)器。為了最大限度地減小系統(tǒng)危害,設(shè)計(jì)師可以在可能遭受攻擊的任何明顯的反應(yīng)和關(guān)鍵操作之間插入隨機(jī)時(shí)延。產(chǎn)生內(nèi)部時(shí)鐘信號(hào)的一種解決方案是創(chuàng)建一個(gè)由外部時(shí)鐘饋給的隨機(jī)位序列發(fā)生器。
針對(duì)入侵篡改檢測(cè),清零機(jī)制可以在檢測(cè)到篡改時(shí)擦除秘密。因此對(duì)于能夠在電池支撐的SRAM中存儲(chǔ)秘密的較大安全模塊來(lái)說(shuō),歸零機(jī)制是一種高效的防篡改方法。
針對(duì)軟件攻擊
緩存溢出攻擊是最嚴(yán)重的軟件安全入侵方法之一。目前有50%以上被廣泛利用的漏洞是由緩存溢出造成的,而且這個(gè)比例還在隨時(shí)間增加。這種溢出攻擊會(huì)對(duì)專用嵌入式系統(tǒng)和通用系統(tǒng)造成嚴(yán)重的安全問(wèn)題。當(dāng)有更多嵌入式系統(tǒng)聯(lián)網(wǎng)時(shí),防止嵌入式系統(tǒng)遭受緩存溢出攻擊成為一個(gè)重要的研究課題。保護(hù)嵌入式系統(tǒng)免受緩存溢出攻擊的高效解決方案必須包含兩大要素:
· 必須提供完整的保護(hù)功能,而且要求和規(guī)則必須簡(jiǎn)單,第三方軟件開(kāi)發(fā)人員能夠很容易遵循。
· 必須提供高效的檢查機(jī)制,以便系統(tǒng)集成商能夠很容易地檢查某個(gè)組件是否已經(jīng)得到保護(hù)。由于一些組件的源代碼可能無(wú)法提供給系統(tǒng)集成商,因此即使在不知道源代碼的情況下也必須能夠執(zhí)行安全檢查。
篡改可以有許多形式,并不總是黑客的問(wèn)題——即使服務(wù)人員也可能訪問(wèn)儀表并危害數(shù)據(jù)安全。事實(shí)上,所有報(bào)告的數(shù)據(jù)安全破壞事件中有約25%是內(nèi)部人員的惡意行為。例如,在診斷工具連接儀表以記錄、修改或更新儀表軟件的儀表維護(hù)過(guò)程中,服務(wù)人員可能會(huì)訪問(wèn)安全數(shù)據(jù)。為了防止這種情況發(fā)生,必須通過(guò)安全引擎將人工干預(yù)阻擋在門外,從而排除數(shù)據(jù)操作或惡意修改的可能性。
如前所述,公用事業(yè)網(wǎng)絡(luò)要求滿足ANSI C12.19中定義的安全性和更高層互操作性,以確保各個(gè)智能電網(wǎng)子系統(tǒng)作為安全網(wǎng)絡(luò)運(yùn)行。業(yè)界正在開(kāi)發(fā)其它技術(shù),幫助確保網(wǎng)絡(luò)間通信的可靠和安全。目前許多系統(tǒng)采用AES和Elliptic Curve等成熟算法。未來(lái),公用事業(yè)網(wǎng)絡(luò)中的更高安全等級(jí)可能會(huì)用256位方案代替128位加密方案。像ZigBee Smart Energy 2和802.16 WiMAX等標(biāo)準(zhǔn)就要求這種安全等級(jí)。
整合硬件和軟件安全性是建立受信任的執(zhí)行環(huán)境的基礎(chǔ),只有這樣的環(huán)境才能實(shí)現(xiàn)受信任的通信和功能擴(kuò)展。一個(gè)名為Hydra的英國(guó)項(xiàng)目就是業(yè)界定義的受信任系統(tǒng)的一個(gè)例子,該項(xiàng)目在智能儀表上實(shí)現(xiàn)這些解決方案并提供像Telecare等增殖服務(wù)。Hydra的范例應(yīng)用是遠(yuǎn)程醫(yī)療,它能把在家里測(cè)量的體重和血壓值通過(guò)安全的端到端數(shù)據(jù)傳送方式直接發(fā)送給病人的個(gè)人健康記錄入口或醫(yī)師。通過(guò)解決遠(yuǎn)程醫(yī)療數(shù)據(jù)傳送方面的技術(shù)問(wèn)題,Hydra將有助于解決其它增殖服務(wù)問(wèn)題,包括家庭能量管理、水、家庭安全、家庭自動(dòng)化等。Hydra是針對(duì)智能電網(wǎng)的未來(lái)應(yīng)用和服務(wù)范例。