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