邊緣智能:邊緣節(jié)點(diǎn)安全性
作者 Ian Beavers Erik MacLean ADI公司
本文引用地址:http://2s4d.com/article/201806/382308.htm摘要:介紹了邊緣計(jì)算帶來的安全問題,以及工業(yè)物聯(lián)網(wǎng)中的霧模型和相關(guān)配置問題、安全問題及解決思路。
0 引言
物聯(lián)網(wǎng)系統(tǒng)攻擊登上新聞頭條,網(wǎng)絡(luò)、邊緣節(jié)點(diǎn)和網(wǎng)關(guān)不斷暴露出安全漏洞。最近,Mirai僵尸網(wǎng)絡(luò)通過登錄到運(yùn)行telnet服務(wù)器且未更改默認(rèn)密碼的設(shè)備,感染了超過250萬物聯(lián)網(wǎng)節(jié)點(diǎn)[1]。Mirai后來發(fā)展到能夠引發(fā)服務(wù)器拒絕服務(wù),導(dǎo)致全球很大一部分的互聯(lián)網(wǎng)接入中斷。Reaper僵尸網(wǎng)絡(luò)通過利用軟件漏洞并感染系統(tǒng),攻擊了超過100萬臺物聯(lián)網(wǎng)設(shè)備。一個接入互聯(lián)網(wǎng)的魚缸提供了侵入賭場網(wǎng)絡(luò)的入口點(diǎn),導(dǎo)致10 GB數(shù)據(jù)被盜。智能電視已被用于間諜和監(jiān)視活動。
嵌入式傳感器系統(tǒng)已開始聯(lián)網(wǎng)并暴露于互聯(lián)網(wǎng)之中。作為工業(yè)物聯(lián)網(wǎng)(IIoT)的一部分,這些傳感器沒有像Web服務(wù)器那樣在惡劣的環(huán)境中經(jīng)歷二十年的演進(jìn)。因此,該行業(yè)正在目睹這些系統(tǒng)遭受20世紀(jì)90年代及更早期常見的很多攻擊。工業(yè)物聯(lián)網(wǎng)系統(tǒng)的生命周期通常要比傳統(tǒng)計(jì)算系統(tǒng)的生命周期長得多。一些設(shè)備在部署后可能會持續(xù)運(yùn)行數(shù)十年,而維護(hù)計(jì)劃則不明。
服務(wù)器和PC非常復(fù)雜,足以支持設(shè)置安全措施,但工業(yè)物聯(lián)網(wǎng)節(jié)點(diǎn)的功耗和處理能力通常很低,為設(shè)置安全措施而留下的功耗預(yù)算很小。由于涉及開發(fā)成本,安全在很大程度上是權(quán)衡的結(jié)果。雖然工業(yè)物聯(lián)網(wǎng)的成本可能高于消費(fèi)物聯(lián)網(wǎng),但其在可擴(kuò)展性成本方面仍然面臨挑戰(zhàn)。如果忽視安全性,產(chǎn)品部署后將會產(chǎn)生隱藏的影響,這些成本最終也需要解決。
傳感器和執(zhí)行器使得工業(yè)物聯(lián)網(wǎng)設(shè)備能與物理世界進(jìn)行交互。網(wǎng)絡(luò)攻擊主要限于數(shù)據(jù)丟失,但通過工業(yè)物聯(lián)網(wǎng)攻擊,黑客比以往更容易侵入物理世界。現(xiàn)在的攻擊有可能造成人身傷害。這在工業(yè)物聯(lián)網(wǎng)中更為顯著,因?yàn)楣收峡赡軐?dǎo)致價值數(shù)百萬美元的工業(yè)流程被關(guān)閉或摧毀,或者引發(fā)危及生命的情況。
1 聯(lián)網(wǎng)世界
工業(yè)物聯(lián)網(wǎng)設(shè)備一般會連接到某種網(wǎng)絡(luò),常常是互聯(lián)網(wǎng)。正是這種連接導(dǎo)致其最容易受到攻擊。與流行病學(xué)相似,感染是通過與其他機(jī)器的接觸而傳播。攻擊途徑存在于系統(tǒng)與外界交互的地方。攻擊者之所以能夠與系統(tǒng)進(jìn)行交互,完全是因?yàn)槠淠苓B接訪問系統(tǒng)。需要問的第一個系統(tǒng)設(shè)計(jì)安全問題是:“設(shè)備是否真的需要連接到網(wǎng)絡(luò)?”將其連接到網(wǎng)絡(luò)會顯著增加安全風(fēng)險(xiǎn)。
保護(hù)系統(tǒng)的最佳方式是阻止其連接到網(wǎng)絡(luò),或?qū)⑵湎拗圃诜忾]網(wǎng)絡(luò)中。許多工業(yè)物聯(lián)網(wǎng)設(shè)備聯(lián)網(wǎng)的原因僅僅是因?yàn)樗鼈兡苈?lián)網(wǎng),而沒有其他什么理由。讓設(shè)備聯(lián)網(wǎng)的利益是否超過與此相關(guān)的安全風(fēng)險(xiǎn)?另外,任何其他與聯(lián)網(wǎng)系統(tǒng)進(jìn)行交互的遺留系統(tǒng)也可能面臨風(fēng)險(xiǎn)。
很多情況下,本來安全的網(wǎng)絡(luò)和節(jié)點(diǎn)還必須與已有舊網(wǎng)絡(luò)進(jìn)行互操作,而這種老式網(wǎng)絡(luò)本身的安全性可能要差很多。這就帶來一個新問題:最弱的安全風(fēng)險(xiǎn)可能超出了工業(yè)物聯(lián)網(wǎng)系統(tǒng)的影響范圍。在這種情況下,工業(yè)物聯(lián)網(wǎng)系統(tǒng)也需要防范來自系統(tǒng)內(nèi)部的風(fēng)險(xiǎn)。
2 節(jié)點(diǎn)的安全考慮[2]
● 保密性——防止數(shù)據(jù)泄露給未獲授權(quán)的人,例如防范仿冒攻擊;
● 身份驗(yàn)證——在兩臺機(jī)器之間使用數(shù)字證書驗(yàn)證身份;
● 安全引導(dǎo)——ROM引導(dǎo)加載程序存儲器驗(yàn)證二級引導(dǎo)加載程序的真實(shí)性;
● 安全固件更新——僅認(rèn)可制造商提供的授權(quán)代碼;
● 授權(quán)——只有正品節(jié)點(diǎn)才能獲得網(wǎng)絡(luò)訪問權(quán)限;
● 完整性——保護(hù)數(shù)據(jù)不被更改;
● 記錄——正確記錄數(shù)據(jù)、節(jié)點(diǎn)數(shù)和時間戳有助于防止對工業(yè)物聯(lián)網(wǎng)網(wǎng)絡(luò)的不受歡迎訪問;
● 安全通信——使用能駐留在低功耗節(jié)點(diǎn)上的加密協(xié)議;
● 可用性——確保用戶在需要的時候可以訪問;
● 認(rèn)可——確保無法拒絕真實(shí)的通信請求;
● 可靠性——即使在惡劣的電氣環(huán)境中,接入也必須可靠。
3 隔離
系統(tǒng)彼此隔離可以減少攻擊面并限制惡意軟件的傳播。將不需要網(wǎng)絡(luò)連接的系統(tǒng)與暴露于網(wǎng)絡(luò)的系統(tǒng)隔離開來。考慮建立一個單獨(dú)的隔空或嚴(yán)格監(jiān)控的網(wǎng)絡(luò),將它與其他高風(fēng)險(xiǎn)系統(tǒng)的網(wǎng)絡(luò)分開。理想情況下,關(guān)鍵系統(tǒng)應(yīng)當(dāng)與外界完全隔離[3]。
聯(lián)網(wǎng)汽車的信息娛樂系統(tǒng)可能會讓車輛遭受許多前所未見的新攻擊。主發(fā)動機(jī)控制單元(ECU)與信息娛樂系統(tǒng)毫無關(guān)系,不應(yīng)通過信息娛樂系統(tǒng)與之交互。雖然車輛中通常有兩條獨(dú)立的CAN總線,以將最重要的系統(tǒng)與其他系統(tǒng)隔開,但它們?nèi)砸阅撤N方式連接在一起,仍然有可能通過破壞一條總線而獲取對另一條總線的控制權(quán)。如果這些網(wǎng)絡(luò)之間完全隔離,那么類似風(fēng)險(xiǎn)將會從威脅生命的程度降低到遠(yuǎn)沒有那么嚴(yán)重的程度。
4 轉(zhuǎn)移至邊緣
許多工業(yè)物聯(lián)網(wǎng)系統(tǒng)連接到云服務(wù)器,云服務(wù)器收集并處理設(shè)備發(fā)送來的信息,同時也管理設(shè)備。隨著設(shè)備數(shù)量大幅增加,云可能難以跟上步伐。很多系統(tǒng)正在將處理向外轉(zhuǎn)移到工業(yè)物聯(lián)網(wǎng)設(shè)備的邊緣,以減少流向云的流量。
在邊緣處理數(shù)據(jù)可以減少發(fā)送和暴露給云的數(shù)據(jù)量。發(fā)送數(shù)據(jù)的地點(diǎn)越多,保密就越困難。每個新節(jié)點(diǎn)都是可能泄露數(shù)據(jù)的風(fēng)險(xiǎn)源。攻擊面呈指數(shù)式增長。
把敏感數(shù)據(jù)留在邊緣以內(nèi)可以限制專門針對機(jī)密數(shù)據(jù)的攻擊面。如果將其限定在一個邊緣節(jié)點(diǎn)中,則數(shù)據(jù)不太可能被盜。停車位占用傳感器如果執(zhí)行檢測和圖像處理,然后僅通過二進(jìn)制信號報(bào)告有無車輛存在,那么就無需傳輸視頻流,從而消除圖像中包含的大量不必要數(shù)據(jù)。這會減輕接收服務(wù)器的負(fù)擔(dān),使其不能被惡意監(jiān)視所利用。
與消費(fèi)物聯(lián)網(wǎng)系統(tǒng)類似,工業(yè)物聯(lián)網(wǎng)系統(tǒng)也有必須維護(hù)的專有和機(jī)密信息,包括專有算法、嵌入式固件、客戶信息、財(cái)務(wù)信息、資產(chǎn)位置、設(shè)備使用模式、競爭情報(bào)及訪問更大網(wǎng)絡(luò)的權(quán)限。
5 霧模型
一些工業(yè)物聯(lián)網(wǎng)設(shè)備仍然缺乏邊緣處理所需的功能和性能。另一種拓?fù)浣Y(jié)構(gòu)——“霧模型”正在興起,它是基于云和邊緣系統(tǒng)的混合體。在霧模型中,邊緣節(jié)點(diǎn)首先連接到網(wǎng)關(guān),網(wǎng)關(guān)接收數(shù)據(jù)并進(jìn)行一些處理,然后將數(shù)據(jù)發(fā)送到云端。許多工業(yè)物聯(lián)網(wǎng)設(shè)備可能共用一個網(wǎng)關(guān)。網(wǎng)關(guān)不需要采用電池供電,處理功耗的預(yù)算可以高很多,而且成本高于受限制的工業(yè)物聯(lián)網(wǎng)設(shè)備。
霧起源于擴(kuò)展性問題,但在安全性方面也能發(fā)揮作用。網(wǎng)關(guān)設(shè)備可以幫助保護(hù)易受攻擊的邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)受到的限制較多,可能無法自行保障安全性,但提供某種程度的保護(hù)比無任何保護(hù)會更好。網(wǎng)關(guān)可用來幫助管理其下的所有節(jié)點(diǎn),而不是直接管理每個節(jié)點(diǎn)。在工業(yè)物聯(lián)網(wǎng)中,霧模型還能作出應(yīng)急響應(yīng),避免服務(wù)中斷。例如,安全響應(yīng)可以是與網(wǎng)關(guān)進(jìn)行交互,而不是關(guān)閉關(guān)鍵任務(wù)生產(chǎn)線。
6 預(yù)配和部署
工業(yè)物聯(lián)網(wǎng)最大的挑戰(zhàn)之一是部署和管理大量設(shè)備。影響廣泛的工業(yè)物聯(lián)網(wǎng)系統(tǒng)非常難以建立和配置。工業(yè)物聯(lián)網(wǎng)的生命周期很長,系統(tǒng)可能由一個團(tuán)隊(duì)部署,然后運(yùn)行許多年,但由另一個團(tuán)隊(duì)提供支持。
工業(yè)物聯(lián)網(wǎng)系統(tǒng)的默認(rèn)身份驗(yàn)證機(jī)制很弱,往往不夠安全。正如Mirai僵尸網(wǎng)絡(luò)事件所展示的,大多數(shù)用戶從不登錄工業(yè)物聯(lián)網(wǎng)設(shè)備以進(jìn)行配置。他們甚至不知道應(yīng)該配置設(shè)備。大多數(shù)工業(yè)物聯(lián)網(wǎng)用戶認(rèn)為設(shè)備開箱即可使用。系統(tǒng)必須具有默認(rèn)安全性。應(yīng)當(dāng)設(shè)定這樣的系統(tǒng)期望:除了默認(rèn)配置以外,用戶可能永遠(yuǎn)不會配置設(shè)備。默認(rèn)密碼較弱是一個常見錯誤。
7 網(wǎng)絡(luò)安全性
在工業(yè)物聯(lián)網(wǎng)中,邊緣受到的關(guān)注最多,但也不能忽視系統(tǒng)的云端或服務(wù)器端。測試常見服務(wù)器端漏洞(例如跨站點(diǎn)腳本、SQL注入和跨站點(diǎn)請求偽造),并檢查API有無漏洞,以確保服務(wù)器上運(yùn)行的軟件及時得到修補(bǔ)。
跨網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)需要受到保護(hù),否則可能會被惡意攔截和修改??梢允褂肨LS或SSH之類的安全加密協(xié)議來保護(hù)傳輸中的數(shù)據(jù),最好為數(shù)據(jù)提供端到端保護(hù)。
工業(yè)物聯(lián)網(wǎng)網(wǎng)絡(luò)的邊界可能很模糊。工業(yè)物聯(lián)網(wǎng)傳感器節(jié)點(diǎn)在空間上常常駐留在網(wǎng)絡(luò)的外圍。但是,通過它們以及一個固定網(wǎng)關(guān),還可以輕松訪問更大的工業(yè)網(wǎng)絡(luò)[4]。對訪問網(wǎng)絡(luò)的這些設(shè)備進(jìn)行釋放身份驗(yàn)證,有助于防止流量遭到惡意第三方篡改。
保護(hù)網(wǎng)絡(luò)數(shù)據(jù)流量要求使用安全通信協(xié)議。最佳實(shí)踐應(yīng)當(dāng)是使用已知安全的標(biāo)準(zhǔn)協(xié)議,利用IEEE 802.1AE MACsec可以保障以太網(wǎng)LAN的安全。
為保護(hù)需要路由到局域網(wǎng)外部(例如通過互聯(lián)網(wǎng))的流量,需要提供端到端安全性的更高層協(xié)議。TLS常用于保護(hù)互聯(lián)網(wǎng)流量并提供端到端安全性。盡管TLS使用TCP,而很多物聯(lián)網(wǎng)設(shè)備利用UDP進(jìn)行通信,但DTLS(數(shù)據(jù)報(bào)傳輸層安全性)可在UDP上工作。雖然物聯(lián)網(wǎng)設(shè)備的功耗和存儲器受限,但只需很少的工作就能為大多數(shù)受限應(yīng)用實(shí)施TLS。對于限制更嚴(yán)格的設(shè)備,目前IETF正在開發(fā)一種新協(xié)議——受限應(yīng)用協(xié)議(CoAP)。
8 端點(diǎn)安全性
雖然保護(hù)傳輸中的數(shù)據(jù)很有必要,但攻擊更多是針對端點(diǎn)。面向網(wǎng)絡(luò)的接口需要強(qiáng)化以消除漏洞。保障工業(yè)物聯(lián)網(wǎng)安全的一種方法是直接在傳感器節(jié)點(diǎn)設(shè)備中設(shè)置防護(hù),這就提供了第一個關(guān)鍵的安全層,設(shè)備不再依賴企業(yè)防火墻作為其唯一的保護(hù)。這對移動式企業(yè)設(shè)備和部署在遠(yuǎn)程位置的工業(yè)物聯(lián)網(wǎng)傳感器尤其重要。
工業(yè)物聯(lián)網(wǎng)設(shè)備的安全解決方案必須防范各種各樣的網(wǎng)絡(luò)攻擊。它必須確保設(shè)備固件沒有被篡改,能夠保護(hù)設(shè)備中存儲的數(shù)據(jù),能夠保護(hù)入站和出站通信,并且必須能夠檢測和報(bào)告任何網(wǎng)絡(luò)攻擊企圖[5]。這只有通過在設(shè)計(jì)的早期階段納入安全性才能實(shí)現(xiàn)。
9 高壓滅菌器與自動機(jī)
系統(tǒng)受損之后將其恢復(fù)到已知良好狀態(tài)的能力,比讓它對所有攻擊免疫更重要。彈性系統(tǒng)可以快速恢復(fù)并很有把握地恢復(fù)運(yùn)作。
一旦系統(tǒng)受到感染,如何對其消毒?當(dāng)一個系統(tǒng)受到感染時,病毒即以某種未知方式改變系統(tǒng)狀態(tài),遠(yuǎn)程攻擊會控制處理器,向系統(tǒng)注入新的惡意代碼。通常,固件會以某種方式被修改或替換為惡意軟件,導(dǎo)致系統(tǒng)表現(xiàn)異常。一旦發(fā)生這種情況,就不能再信任處理器。
嵌入式系統(tǒng)的設(shè)計(jì)常常較為特別,難以可靠地從受損狀態(tài)中恢復(fù)。通常,凈化系統(tǒng)和驗(yàn)證系統(tǒng)是否干凈的唯一辦法是將所有非易失性存儲器直接轉(zhuǎn)存至外部讀取器,然后對照原始固件進(jìn)行驗(yàn)證,如果原始固件有改變,則用原始固件替換。大多數(shù)系統(tǒng)的設(shè)計(jì)不支持這種做法。
一種保護(hù)系統(tǒng)完整性的方法是用機(jī)械開關(guān)實(shí)現(xiàn)對非易失性存儲器的物理寫保護(hù)。當(dāng)該開關(guān)設(shè)置為寫保護(hù)時,存儲器受到硬件的物理保護(hù)。存儲器控制權(quán)轉(zhuǎn)移到處理器域之外,要在物理上不接入設(shè)備的情況下將永久惡意軟件遠(yuǎn)程安裝到存儲器中是不可能的。這樣就把潛在攻擊者名單從世界上任何擁有互聯(lián)網(wǎng)連接的人縮減為只有那些可以長時間對設(shè)備進(jìn)行物理訪問的人。固件更新通常是很罕見的事情,當(dāng)固件需要更新時,用戶可以將開關(guān)設(shè)置為寫使能以授權(quán)更新存儲器,在更新完成后再次對設(shè)備設(shè)置寫保護(hù)。
許多設(shè)備還使用非易失性存儲器來存儲寫訪問所需的數(shù)據(jù)。在高安全性系統(tǒng)中,可以使用單獨(dú)的非易失性存儲器芯片來存儲數(shù)據(jù)(但不存儲軟件)。攻擊者仍可以通過向該存儲器寫入惡意數(shù)據(jù)并利用軟件漏洞來危害某些系統(tǒng),因此應(yīng)徹底分析和測試系統(tǒng),無論該存儲器存儲什么數(shù)據(jù),系統(tǒng)都不會受到影響。增加額外存儲器芯片會增加成本,但有些閃存允許某些扇區(qū)設(shè)置寫保護(hù),而其他扇區(qū)仍能寫入。
10 安全引導(dǎo)
安全引導(dǎo)可防止引導(dǎo)過程中將未經(jīng)授權(quán)的軟件加載到設(shè)備上。它是信任鏈的起點(diǎn)。安全引導(dǎo)從節(jié)點(diǎn)上只讀非易失性存儲器位置編程的第一階段引導(dǎo)加載程序開始。此引導(dǎo)加載程序僅驗(yàn)證第二階段引導(dǎo)加載程序的真實(shí)性。第二階段引導(dǎo)加載程序往往比較復(fù)雜,可存儲在可重新編程的閃存中。重復(fù)此過程[6],驗(yàn)證操作系統(tǒng)和加載的應(yīng)用程序是否確實(shí)來自可信來源。
擁有安全引導(dǎo)和安全固件更新功能的工業(yè)物聯(lián)網(wǎng)節(jié)點(diǎn),可確保設(shè)備運(yùn)行的是授權(quán)代碼,而非篡改的或惡意代碼,從而防止永久安裝惡意軟件或代碼。設(shè)備要么僅運(yùn)行未修改的代碼,要么無法完成引導(dǎo)。
安全引導(dǎo)過程通常依靠數(shù)字簽名來保護(hù)代碼的真實(shí)性。代碼映像由原始設(shè)備制造商在制造組裝時利用原始設(shè)備制造商的私鑰進(jìn)行簽名。然后,節(jié)點(diǎn)利用原始設(shè)備制造商的相應(yīng)公鑰驗(yàn)證固件映像的簽名。
代碼還可以利用對稱加密的消息認(rèn)證碼(MAC)加以保護(hù),但這需要將私鑰存儲在設(shè)備上,因而有風(fēng)險(xiǎn)。不過,使用MAC在計(jì)算上更容易。
安全引導(dǎo)雖然可以增強(qiáng)安全性,但對于最終用戶來說,有時會太受限制,因?yàn)樗茏柚褂脩舾脑O(shè)備上運(yùn)行的軟件或運(yùn)行自己的軟件。根據(jù)應(yīng)用程序的不同,用戶可能需要更多的靈活性和配置安全引導(dǎo)的能力,從而允許其信任自己的代碼。
安全固件更新與安全引導(dǎo)相似,用于在升級過程中驗(yàn)證新代碼映像已由原始設(shè)備制造商簽名。如果下載的映像無效,則會丟棄文件并停止升級。只有有效的映像才會被接受,并且隨后保存到設(shè)備存儲器中。
11 安全通信
大多數(shù)工程師將安全性視為通信協(xié)議,如SSL/TLS、SSH和IPsec等,原因是許多嵌入式設(shè)備增加了安全通信。然而,盡管這是安全威脅的一部分,但其他攻擊途徑提出了新的挑戰(zhàn)。許多工業(yè)物聯(lián)網(wǎng)傳感器節(jié)點(diǎn)以低功耗配置運(yùn)行,使用一些不能支持某些最佳選項(xiàng)(如TLS或IPsec)的較低功耗處理器。安全協(xié)議為構(gòu)建安全設(shè)備提供了一個很好的出發(fā)點(diǎn)[7]。安全協(xié)議的設(shè)計(jì)目的是防范數(shù)據(jù)包嗅探、中間人攻擊、重放攻擊和未經(jīng)授權(quán)與節(jié)點(diǎn)通信的企圖。
小型工業(yè)物聯(lián)網(wǎng)邊緣傳感器設(shè)備通常采用無線協(xié)議,如Zigbee、Bluetooth?低功耗(BLE)以及其他無線網(wǎng)狀網(wǎng)絡(luò)協(xié)議。這些協(xié)議具有一定的內(nèi)置安全性,但是安全性相對較弱。許多可以利用漏洞的方法已經(jīng)公開,老練的黑客已經(jīng)熟知。小型工業(yè)物聯(lián)網(wǎng)設(shè)備通常使用成本非常低、功耗較低且不支持TLS或IPSec的處理器。對于小型邊緣設(shè)備,可以使用DTLS(基于UDP的TLS)來實(shí)現(xiàn)安全通信。
12 物理安全性
物理攻擊針對的是工業(yè)物聯(lián)網(wǎng)系統(tǒng)的實(shí)際邊緣硬件節(jié)點(diǎn)或網(wǎng)關(guān),可以包括針對前端傳感器的破壞。這些攻擊常常需要從物理上接觸系統(tǒng),但也可能只是限制工業(yè)物聯(lián)網(wǎng)硬件效能的操作。攻擊者可以篡改節(jié)點(diǎn),以控制工業(yè)物聯(lián)網(wǎng)環(huán)境中的傳感器或其他設(shè)備。然后,他們可以從源頭提取機(jī)密數(shù)據(jù)和嵌入固件代碼。利用惡意節(jié)點(diǎn)注入策略,攻擊者可以將惡意節(jié)點(diǎn)部署在工業(yè)物聯(lián)網(wǎng)網(wǎng)絡(luò)的合法節(jié)點(diǎn)之間[8]。
為了應(yīng)對此類攻擊,在設(shè)計(jì)階段可以提前做一些硬件考慮。在使用帶引腳的器件對信號進(jìn)行物理探測的時候,在設(shè)計(jì)中應(yīng)盡量減少裸露的銅過孔或未使用的連接器。應(yīng)當(dāng)移除可為潛在黑客提供額外信息的詳細(xì)元器件絲印,除非認(rèn)為它是設(shè)計(jì)絕對需要的。雖然可能會增加系統(tǒng)復(fù)雜性,但工業(yè)保形涂層不僅可以減輕自然力對硬件的影響,還能增加額外的步驟來防止對PCB上的電子元件進(jìn)行直接探測。
器件內(nèi)部的任何嵌入式非易失性存儲器內(nèi)容都應(yīng)該加密并設(shè)置寫保護(hù)。微控制器和DSP器件之間的接口應(yīng)該位于PCB的內(nèi)層走線。即便嵌入式存儲器的內(nèi)容被獲取,數(shù)據(jù)的加密和驗(yàn)證機(jī)制也會使其變得毫無意義。
制造商常常使用調(diào)試或測試端口。這些端口通常是串行或JTAG,可用來訪問并控制大部分系統(tǒng)。在生產(chǎn)中,應(yīng)確保這些端口在功能上被禁用或受到保護(hù),因?yàn)閮H僅不配備調(diào)試接頭是不夠的,頑固分子可以自行配備或焊接到引腳上。如果需要在生產(chǎn)設(shè)備中啟用這些接口,使用之前應(yīng)進(jìn)行身份驗(yàn)證??梢杂妹艽a加以保護(hù),但務(wù)必要讓用戶能夠設(shè)置強(qiáng)密碼。
13 隨機(jī)數(shù)生成
加密功能通常需要某種隨機(jī)數(shù)發(fā)生器(RNG)。隨機(jī)數(shù)可能需要無法預(yù)測的密鑰生成,或者要求不得重復(fù)。由于缺乏資源和熵,在受約束的嵌入式系統(tǒng)中生成隨機(jī)數(shù)通常是一個巨大挑戰(zhàn)。
很多嵌入式系統(tǒng)存在熵過少的問題。這可能導(dǎo)致災(zāi)難性的中斷。驗(yàn)證RNG的強(qiáng)度非常困難,幾乎不可能。過去的RNG設(shè)計(jì)相當(dāng)特別,人們對其了解不多。但近年來,魯棒密碼隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)和形式分析取得了重大進(jìn)展。
現(xiàn)代魯棒的RNG設(shè)計(jì)往往有三級。包括一個熵源提供原始熵,一個熵提取器讓熵均勻分布,還有一個擴(kuò)展級,用來擴(kuò)展可用的少量熵。
第一級是熵源。它可以是某種物理噪聲源,例如時鐘抖動或熱噪聲。某些處理器(例如ADI Blackfin? DSP)為硬件提供可用于生成熵的隨機(jī)數(shù)生成器。
密碼的隨機(jī)數(shù)字需要有均勻的統(tǒng)計(jì)分布。所有熵源都有一定的偏差,將其用于加密應(yīng)用之前需要消除這種偏差。這是通過熵提取器來完成的,它利用高熵的非均勻分布的輸入,生成高熵的均勻分布的輸出。代價是會有一定的熵?fù)p失,因?yàn)殪靥崛∑餍枰撵剌斎氪笥谄淠芴峁┑妮敵觥=Y(jié)果,需要從熵源中收集更多的比特,并將其提煉成一個小的高熵?cái)?shù)字,該數(shù)字可用來為密碼安全的偽隨機(jī)數(shù)發(fā)生器提供種子[11]。
14 利用錯誤
幾乎所有工業(yè)物聯(lián)網(wǎng)節(jié)點(diǎn)都要使用某種形式的嵌入式固件或算法。從功能上看,這種固件在履行要求方面完全正常,沒有明顯問題。但是,所有軟件都有一定程度的缺陷或錯誤,這可能導(dǎo)致一些異常操作,從而引發(fā)安全問題。例如,99.99%無錯誤固件很少會發(fā)生運(yùn)行問題。但是,剩下的小小的0.01%錯誤可能會被入侵者利用,迫使節(jié)點(diǎn)在該特定工作模式下運(yùn)行時100%失敗。軟件缺陷來源于復(fù)雜性,而任何有用的系統(tǒng)都需要一定的復(fù)雜性?;旧纤邢到y(tǒng)都存在軟件缺陷和漏洞。
15 安全性設(shè)計(jì)
系統(tǒng)設(shè)計(jì)的安全性必須從一開始就考慮。它應(yīng)該是設(shè)計(jì)過程的一部分,而不是在項(xiàng)目結(jié)束時附加的東西。安全性的關(guān)鍵不是添加安全功能,而是管理風(fēng)險(xiǎn)。對于任何工業(yè)物聯(lián)網(wǎng)系統(tǒng)開發(fā),安全設(shè)計(jì)方法都很重要。
現(xiàn)有的安全設(shè)計(jì)實(shí)踐仍然適用。使用威脅建模來識別風(fēng)險(xiǎn),并選擇合適的風(fēng)險(xiǎn)緩解策略。識別系統(tǒng)的入口點(diǎn),從而找到系統(tǒng)中風(fēng)險(xiǎn)最高的區(qū)域。大多數(shù)攻擊途徑都是通過外部接口,因此應(yīng)檢查設(shè)計(jì)方案有無安全漏洞。仔細(xì)處理未知數(shù)據(jù)并驗(yàn)證所有輸入,驗(yàn)證和安全性不應(yīng)局限于入口點(diǎn)??v深防御很重要,這樣在外層遭到破壞時,仍有安全層可供御敵。
許多處理器提供不同級別的權(quán)限。ARM?有Trustzone,ADI Blackfin DSP提供用戶級執(zhí)行模式和特權(quán)執(zhí)行模式。盡可能以最低級別的權(quán)限執(zhí)行盡可能多的代碼,以將最重要的代碼保留在特權(quán)模式下執(zhí)行。工業(yè)物聯(lián)網(wǎng)設(shè)備的安全要求必須考慮安全失效的代價、攻擊的可能性、主要攻擊途徑以及實(shí)施安全解決方案的成本。
16 結(jié)論
上述許多建議彼此沖突,且與系統(tǒng)的其他設(shè)計(jì)目標(biāo)相抵觸。為了幫助保護(hù)工業(yè)物聯(lián)網(wǎng),ADI公司有多種處理器可提供基于硬件的安全增強(qiáng)功能。ADF7023 RF低功耗收發(fā)器利用ISM頻段和許多不同的調(diào)制方案提供內(nèi)部AES加密。
ADuCM3029內(nèi)部的嵌入式收發(fā)器提供AES和SHA-256硬件加速以及一個真正的隨機(jī)數(shù)發(fā)生器,還有多奇偶校驗(yàn)保護(hù)的SRAM。ADSP-BF70X Blackfin系列數(shù)字信號處理器提供嵌入式一次性可編程存儲器,用于安全密鑰存儲和快速安全引導(dǎo),為系統(tǒng)在遭到破壞后返回已知良好狀態(tài)提供有力保證。同時,借助基于硬件的只遞增計(jì)數(shù)器,Blackfin DSP中的回滾保護(hù)允許在出現(xiàn)問題更新固件以修復(fù)漏洞。
參考文獻(xiàn):
[1]Mirai僵尸網(wǎng)絡(luò)泄露源代碼.
[2]Ross Yu.全性和可靠性是工業(yè)物聯(lián)網(wǎng)無線網(wǎng)絡(luò)的關(guān)鍵[R].ADI公司,2017.
[3]Patrick Nelson.組織機(jī)構(gòu)必須將物聯(lián)網(wǎng)與常規(guī)IT隔離開來——Telco[N].Network World,2016,3.
[4]Brian Girardi.端點(diǎn)安全性和物聯(lián)網(wǎng)[J].CSO,2017.
[5]Tristan O’Gorman.物聯(lián)網(wǎng)安全風(fēng)險(xiǎn)入門[J].Security Intelligence,2017,2.
[6]Abhijeet Rane.物聯(lián)網(wǎng)安全性始于安全引導(dǎo)[J].Embedded Computing Design,2017,1.
[7]Amitrajan Gantait,Ayan Mukherjee,Joy Parta.保護(hù)物聯(lián)網(wǎng)設(shè)備和網(wǎng)關(guān)[R].IBM,2016,5.
[8]Boaz Barak,Shai Halevi.偽隨機(jī)數(shù)生成的模型和架構(gòu)及其/dev/random應(yīng)用[C].第12屆ACM計(jì)算機(jī)和通信安全會議論文集,2005,11.
[9]Chen-Mou Chang,Daniel J. Bernstein,Chang,etal.分解認(rèn)證智能卡中的RSA密鑰:野生銅匠[J].Springer,2013.
[10]Arjen K. Lenstra,Christopher Wachter,James P. Hughes,etal.Ron是錯的。Whit是對的[R].Cryptology ePrint Archive,2012.
[11]Boaz Barak,Fran?ois-Xavier Standaert,Hugo Krawczyk,etal.剩余哈希引理再探討[C].第31屆密碼學(xué)進(jìn)展年會,2011,8.
本文來源于《電子產(chǎn)品世界》2018年第7期第70頁,歡迎您寫論文時引用,并注明出處。
評論