曾用以保護(hù)工業(yè)控制器等設(shè)備的網(wǎng)絡(luò)空隙目前已被填補(bǔ),這得益于無(wú)線網(wǎng)絡(luò)應(yīng)用的增長(zhǎng)。無(wú)線網(wǎng)絡(luò)的引入提高了便利性和靈活性,但同時(shí)也為黑客攻擊提供了便捷之道。無(wú)線網(wǎng)絡(luò)的發(fā)展也伴隨著黑客竊取信息的能力在提高,而嵌入式設(shè)備一直都極易受到攻擊。因此,我們需要使用多種手段支持高級(jí)安全性,以強(qiáng)化防止攻擊的設(shè)備。
安全強(qiáng)化的核心是一套基本構(gòu)建塊,當(dāng)它們一起使用時(shí),可以抵御黑客攻擊并保持完整性。一個(gè)啟用無(wú)線的設(shè)備需要確保它可以維護(hù)自己的代碼和數(shù)據(jù)的控制權(quán),并支持與能提供必要認(rèn)證以獲得信任的遠(yuǎn)程端點(diǎn)的私有通信。
設(shè)備認(rèn)證之所以至關(guān)重要的一個(gè)例子是中間人攻擊。這是一種黑客截取兩個(gè)合法設(shè)備間通訊、監(jiān)聽(tīng)對(duì)話并篡改它們收到的數(shù)據(jù)包,以獲取秘密或進(jìn)入一個(gè)或兩個(gè)設(shè)備的攻擊。一個(gè)常見(jiàn)的對(duì)Wi-Fi設(shè)備的攻擊是創(chuàng)建一個(gè)偽裝成合法路由器的接入點(diǎn),該接入點(diǎn)會(huì)向真實(shí)的接入點(diǎn)和設(shè)備自身轉(zhuǎn)發(fā)被篡改的數(shù)據(jù)。通過(guò)這樣的技術(shù),攻擊者可能會(huì)學(xué)習(xí)到執(zhí)行成功登錄所需的訪問(wèn)代碼,或者他們可能會(huì)注入錯(cuò)誤的數(shù)據(jù)或malware導(dǎo)致設(shè)備出現(xiàn)故障。因此保護(hù)好對(duì)話是至關(guān)重要的,這也指明了我們需要使用加密技術(shù)來(lái)讓未經(jīng)授權(quán)的監(jiān)聽(tīng)者難以實(shí)施攻擊。
每一個(gè)安全的物聯(lián)網(wǎng)設(shè)備的中心都需要有一個(gè)可信根。這是嵌入設(shè)備中一套可以被計(jì)算機(jī)的操作系統(tǒng)和軟件充分信任的功能。在當(dāng)今的設(shè)備中,可信根是通過(guò)使用公鑰基礎(chǔ)設(shè)施 (PKI) 加密技術(shù)保證的,這是一種檢查任何設(shè)備的真實(shí)性和其操作有效性的機(jī)制。PKI建立在生成一對(duì)在使用中非對(duì)稱(chēng)的加密鍵的基礎(chǔ)上。一個(gè)是可以自由分發(fā)并用于加密發(fā)送給私鑰持有者的消息的公鑰。通過(guò)在公共網(wǎng)絡(luò)上無(wú)風(fēng)險(xiǎn)地傳輸公鑰,可以大大提高基于加密的安全性的可擴(kuò)展性,這相比對(duì)稱(chēng)密鑰系統(tǒng)有著巨大的改進(jìn)。
由于對(duì)稱(chēng)系統(tǒng)使用同一個(gè)密鑰進(jìn)行加密和解密,因此必須始終保密該密鑰以防止未經(jīng)授權(quán)的用戶獲取。這使得把可信密鑰送達(dá)用戶變得非常困難,因?yàn)樗麄儽仨毷褂闷渌?、具有高信任度的通信渠道?lái)獲得密鑰。
在PKI下,只有私鑰的持有者可以解密由公鑰的持有者發(fā)送的消息。因此,密鑰必須保密。然而,PKI支持的協(xié)議意味著永遠(yuǎn)無(wú)需向其他用戶發(fā)送私鑰。所有通信都可以通過(guò)使用公鑰和使用私鑰數(shù)字簽名的證書(shū)來(lái)支持。PKI交易可能會(huì)對(duì)計(jì)算能力要求極高,這使得其在嵌入式系統(tǒng)中的實(shí)施變得困難。然而,使用專(zhuān)用的MCU會(huì)減輕處理器和加密數(shù)據(jù)的主處理器的負(fù)擔(dān)。
幾乎在整個(gè)網(wǎng)絡(luò)中都被使用的傳輸層安全協(xié)議 (TLS) 也是基于PKI的,它可以防止未經(jīng)授權(quán)的監(jiān)聽(tīng)并幫助防止中間人攻擊。然而,有了PKI核心,我們可以通過(guò)加密和保護(hù)信息,超越僅是防御。這個(gè)核心可以和設(shè)計(jì)良好的硬件特性相結(jié)合,對(duì)嵌入式系統(tǒng)建立一個(gè)可信根,確保設(shè)備只能運(yùn)行經(jīng)過(guò)授權(quán)的代碼,并只能和網(wǎng)絡(luò)中的其他經(jīng)過(guò)授權(quán)的設(shè)備通信。
可信根背后的思想是,只有被可信方簽名的代碼才被允許在引導(dǎo)時(shí)運(yùn)行,而且代碼除了由同一可信方更改之外不能被更改。引導(dǎo)代碼的關(guān)鍵因素是它是使用PKI技術(shù)進(jìn)行數(shù)字簽名的,這生成了一個(gè)與代碼內(nèi)容本身關(guān)聯(lián)的散列值。這個(gè)簽名過(guò)程通常由設(shè)備制造商執(zhí)行,制造商首先獲取或生成一個(gè)被制造商的私鑰保護(hù)的基于PKI的數(shù)字證書(shū)。用于這一過(guò)程的數(shù)字證書(shū)通常是由一個(gè)高信任度機(jī)構(gòu)生成的根證書(shū)派生出的。根證書(shū)支持生成一系列派生證書(shū),它們指向一個(gè)核心可信實(shí)體 – 這是一個(gè)對(duì)攻擊者來(lái)說(shuō)難以妨礙的信任鏈。
當(dāng)代碼被加載進(jìn)設(shè)備并使用匹配的公鑰分析時(shí),代碼簽名需要精確地匹配二進(jìn)制文件的內(nèi)容。對(duì)軟件的任何更改都會(huì)使散列值無(wú)效,設(shè)備應(yīng)拒絕從該圖像引導(dǎo)。這有助于防止以操作存儲(chǔ)圖像以插入惡意代碼為中心的攻擊。
觀看公共代碼驗(yàn)證密鑰的人需要把它存儲(chǔ)在安全內(nèi)存中,以及設(shè)備自身的私鑰,它將用于生成與其他設(shè)備通信的可信密鑰對(duì)。除了代碼驗(yàn)證密鑰和本地系統(tǒng)的私鑰的安全存儲(chǔ)外,設(shè)備還提供了一個(gè)可被用于驗(yàn)證由設(shè)備制造商或服務(wù)運(yùn)營(yíng)商提供的其他數(shù)字簽名真實(shí)性的可信任根證書(shū)目錄。
代碼更新以及需要從服務(wù)器發(fā)送的其他安全數(shù)據(jù)可以使用類(lèi)似的流程進(jìn)行驗(yàn)證。首先,服務(wù)器生成一個(gè)公鑰/私鑰對(duì)并發(fā)送公鑰版給設(shè)備。這個(gè)被用于生成一個(gè)臨時(shí)的密鑰對(duì)。衍生出來(lái)的公鑰被傳輸?shù)綉?yīng)用服務(wù)器。加密的文件可以通過(guò)一個(gè)不安全的頻道比如Wi-Fi傳輸,并在設(shè)備上解密,然后可以進(jìn)行最后的真實(shí)性檢查。
如果簽名不匹配,任何未經(jīng)授權(quán)的代碼或數(shù)據(jù)更新都可以被拒絕。此外,設(shè)備被保護(hù)免受可能涉及重置期間的中斷的攻擊。一個(gè)擁有部分安裝的固件的設(shè)備可能會(huì)因?yàn)樵谥匦聠?dòng)時(shí)軟件處于不確定狀態(tài)而變得易于攻擊。在重置后會(huì)觸發(fā)自動(dòng)回滾以確保只有完全安裝并認(rèn)證過(guò)的固件才能運(yùn)行。
理想情況下,可信根使用PKI運(yùn)算將可信區(qū)的覆蓋范圍從自身擴(kuò)展到系統(tǒng)的其他元素,例如被簽名并在執(zhí)行前檢查過(guò)的應(yīng)用代碼。然而,惡意代碼可能在工廠被引入,或者需要運(yùn)行各種服務(wù)導(dǎo)致非信任代碼被加載。另一種情況可能是黑客獲取設(shè)備的物理訪問(wèn)權(quán)并通過(guò)直接操作內(nèi)存總線來(lái)插入他們自己的代碼。一個(gè)安全警報(bào)記數(shù)器追蹤訪問(wèn)違規(guī)行為,比如嘗試使用一個(gè)無(wú)效或不正確的安全令牌讀取或?qū)懭胛募?。?dāng)系統(tǒng)達(dá)到預(yù)定義的安全警報(bào)限制時(shí),設(shè)備將會(huì)被鎖住。要從鎖定狀態(tài)恢復(fù),必須將設(shè)備恢復(fù)到工廠設(shè)置和代碼庫(kù)。
在設(shè)備上有一個(gè)硬件加密引擎的優(yōu)勢(shì)是處理器無(wú)需加載可能不受信任的代碼來(lái)運(yùn)行PKI算法,然后再測(cè)試引導(dǎo)軟件的來(lái)源去運(yùn)行其余部分。加密和安全功能的代碼不僅由一個(gè)并行運(yùn)行于主Cortex-M4核心的專(zhuān)用網(wǎng)絡(luò)處理器執(zhí)行,它還存儲(chǔ)在不能被具有物理訪問(wèn)系統(tǒng)能力的攻擊者修改的ROM中。
通過(guò)這個(gè)方法,我們有了一個(gè)極高安全性的無(wú)線微控制器的基礎(chǔ),這個(gè)控制器可以實(shí)現(xiàn)物聯(lián)網(wǎng)的承諾,即安全、保護(hù)良好但靈活的智能控制環(huán)境。軟件開(kāi)發(fā)人員需要采取額外措施以避免打開(kāi)安全漏洞,但通過(guò)使用加密和僅與可信任方通信,大大降低了攻擊者獲取對(duì)設(shè)備的訪問(wèn)權(quán)的可能性。
-
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349918 -
硬件
+關(guān)注
關(guān)注
11文章
3211瀏覽量
66064 -
安全防護(hù)
+關(guān)注
關(guān)注
0文章
59瀏覽量
13491
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論