資料介紹
保護物聯(lián)網(wǎng)設(shè)備可能永無止境
“爸爸媽媽,天空為什么是藍色的?”
在您思索是為孩子講解空氣折射率的知識還是轉(zhuǎn)移他的注意力時,您已經(jīng)心知肚明,無論您怎樣回答,孩子都會天真地繼續(xù)追問:“為什么呢?”等問題,直到您完全失去耐心。如果您有這種感受,那么歡迎來到保護物聯(lián)網(wǎng) (IoT) 的世界。這個世界里沒有既定的標(biāo)準,也沒有絕對的錯誤。就像孩子提出的問題一樣,我們可能只是閑聊或喚醒科學(xué)好奇心,至于何時停下來,則由作為系統(tǒng)設(shè)計師的您做主。就像上面的引導(dǎo)性問題一樣,這個世界在很大程度上取決于問題的癥結(jié)。
問題的癥結(jié)
我們很快就會看到,保護物聯(lián)網(wǎng)設(shè)備將可能成為一個需要投入無限成本,卻又永無止境的問題(圖 1)。不過,ARM* 物聯(lián)網(wǎng)服務(wù)集團副總裁 Ian Ferguson 在最近的物聯(lián)網(wǎng)設(shè)備安全峰會上表示,大多數(shù)物聯(lián)網(wǎng)設(shè)備均有著非常嚴苛的成本目標(biāo)。
圖 1.即便多個安全層也可能無法為物聯(lián)網(wǎng)終端設(shè)備提供全面保護。Ferguson 曾警告:“經(jīng)濟學(xué)原理已經(jīng)不再適用。安全的芯片不可能僅僅靠 1 美元就得到解決?!?
因此,物聯(lián)網(wǎng)安全領(lǐng)域的第一個問題就是“它對您有何價值?”這完全取決于問題的癥結(jié)。
可惜這個問題并不簡單,并不是一個可以根據(jù)設(shè)備的預(yù)期用途給出回答的問題。Ferguson 舉了一個利用水族箱控制器中的漏洞攻擊某賭場安全網(wǎng)絡(luò)的例子。您必須要問的不是物聯(lián)網(wǎng)設(shè)備應(yīng)該做什么,而是它能夠做什么。它可以使飛機上的副翼轉(zhuǎn)向嗎?它能夠操作電廠的高壓開關(guān)嗎?它能夠觸發(fā)不必要的維護程序嗎?它可以避開防火墻嗎?
物聯(lián)網(wǎng)設(shè)備安全的管理原則并不是使設(shè)備無懈可擊,您做不到這一點。而是要讓狡猾的攻擊者明白,攻擊付出的代價大于收益。作出這個決定不僅需要了解被攻擊的設(shè)備能夠帶來哪些損害,也需要仔細研究物聯(lián)網(wǎng)設(shè)備中的哪些部分需要保護以及如何保護。
要點
假設(shè)物聯(lián)網(wǎng)設(shè)備中有四種對象:硬件、軟件和固件、數(shù)據(jù)以及進出設(shè)備的消息。每當(dāng)設(shè)備使用其中一個對象時,它會做出三個假設(shè):
- 對象來自可信來源
- 對象沒有被篡改
- 對象將按照系統(tǒng)設(shè)計師的預(yù)期方式運行
每次使用時,設(shè)備可以信任這些假設(shè),也可以測試它們。
也許舉個例子很合適。假設(shè)我們有一個物聯(lián)網(wǎng)設(shè)備管理高壓交流電源開關(guān)上的一組傳感器,并控制開關(guān)位置。根據(jù)這一功能描述,設(shè)備可能是一個非常簡單的微控制器 (MCU)?,F(xiàn)在我們有一個命令到達設(shè)備的網(wǎng)絡(luò)端口,告訴控制器關(guān)閉開關(guān)。您希望控制器讀取命令并為執(zhí)行器供電,當(dāng)開關(guān)閉合時,通過網(wǎng)絡(luò)端口確認消息的新狀態(tài)。
我們來回顧一下這個場景,從安全設(shè)計的角度來看看。首先,命令到達。您有一些選擇:您是否相信這個命令是未經(jīng)過修改的真實命令,或者說您是否對它進行了驗證?您是否相信它的行為,或者您是否對它進行監(jiān)控?
如果您認為這個命令是合法的,則表示您信任數(shù)據(jù)中心的遠程應(yīng)用(可能是公有云),并且互聯(lián)網(wǎng)的所有部分恰好位于消息的傳遞路徑上。有一些情形可以證明這種信任是正確的。一種情形可能是錯誤命令的結(jié)果無關(guān)緊要——當(dāng)然不是對電源開關(guān)無關(guān)緊要,而可能是簡單的消費玩具。另一種情形可能是設(shè)備沒有直接聯(lián)網(wǎng),而是通過安全的連接連到可信中心。否則,您需要對命令進行驗證。
幸運的是,有一種使用公鑰加密進行驗證的合理方法(圖 2)。這種技術(shù)使用一對加密密鑰,其中一個密鑰只有持有者知曉,另一個密鑰可供所有人使用。任何一個密鑰的持有者都可以對使用匹配密鑰加密的任何內(nèi)容進行解密。因此對我們來說,服務(wù)器可以創(chuàng)建其打算發(fā)送的命令的散列,使用其私鑰對其進行加密,然后將命令和加密的散列發(fā)送到您的設(shè)備。接下來您自己可以創(chuàng)建命令的散列,然后使用您的公鑰對服務(wù)器的加密版本進行解密。然后您可以將自己創(chuàng)建的散列與解密的散列進行比較。如果這兩者相同,那么您可以比較肯定的是:
- 私鑰的持有者發(fā)送了命令(因為您的公鑰成功對其進行了解密)
- 這個命令沒有修改過,因為傳輸前的散列和接收后的散列匹配。
事實上,您不需要散列,您可以對整個命令進行加密和解密。但公鑰算法需要大量計算資源,所以缺少硬件加密加速器和大量內(nèi)存的設(shè)備會盡量縮短其必須處理的字符串的長度。除非常簡短的命令之外,散列將比任何命令短很多。
您已經(jīng)鑒定和驗證了命令。您相信它是合法的。但為什么呢?您怎么知道自己使用的命令和公鑰并非來自攻擊者,而是來自您的服務(wù)器?因為有認證機構(gòu)。認證機構(gòu)是一個可信的第三方,已對公鑰發(fā)起者的身份進行了驗證。但您為何信任認證機構(gòu)的證書呢?因為您使用相同的公鑰算法(包含機構(gòu)發(fā)給您的密鑰)對證書進行了驗證。但為什么…好了,您肯定明白了。除非您選擇信任某方及其發(fā)給您的密鑰,否則這個問題鏈將一直循環(huán)下去。這個問題有時可以歸結(jié)為一個人將文件交給另一個人。
相信自己
到這里,偏執(zhí)的人可能會認識到,我們?nèi)匀辉谧鲆恍┗\統(tǒng)的假設(shè)。如果有人篡改了您的加密應(yīng)用代碼或者操作系統(tǒng),欺騙您接受這個命令呢?如果有人更改了您的公鑰文件夾呢?或者更糟糕的情況,如果有人在您的硬件中置入了一個隱秘的后門呢?
如果風(fēng)險很小,或者如果您不了解高價值系統(tǒng)曾遭遇過哪些攻擊,那么上面這些問題聽起來可能有點異想天開。畢竟,誰會對不值錢的消費類設(shè)備上的應(yīng)用代碼進行篡改?但確實有人攻擊了成千上萬臺物聯(lián)網(wǎng)嬰兒監(jiān)控器,創(chuàng)建了一個僵尸網(wǎng)絡(luò),然后用它發(fā)動了歷史上最具破壞性的拒絕服務(wù)攻擊之一。這并不是異想天開:即使您不是飛機控制系統(tǒng)或核電站的設(shè)計師,您也需要考慮這些問題。
第一次接收和驗證對象時,驗證軟件和固件可以像按照您信任的散列檢查對象陣列那樣簡單。更新必須按照針對我們命令的上述流程進行驗證。每次加載操作系統(tǒng)和應(yīng)用代碼時,許多安全系統(tǒng)都會執(zhí)行這一任務(wù)。但您為什么相信自己保存的散列呢?對于這個問題,您為什么相信自己的散列函數(shù)呢?最終,這種回歸將我們引向了一個重要的概念:信任根。
解決方案根
現(xiàn)在,許多 CPU 架構(gòu)都包含一種安全操作模式,在這種模式下,您可以確信代碼的可信性、數(shù)據(jù)的正確性并且所有任務(wù)都得到適當(dāng)授權(quán)。這種模式可讓您對設(shè)備的加密和身份驗證流程充滿信心,并為您提供一種存儲和保護密鑰及證書的方法,使攻擊者更難以更改它們。
實施信任根對 CPU 設(shè)計師而言并不是一件簡單的工作:他們面臨著與用戶相同的無限回歸問題。信任根必須從可信硬件著手,啟動可信代碼?,F(xiàn)在的可信硬件是一個相對的術(shù)語。如果您在設(shè)計一些無害的東西,這可能意味著您從一家大型廠商購買了微控制器單元 (MCU)。如果您正在研究用于核武器的起爆裝置,這可能意味著您使用嚴格的正規(guī)驗證和功能安全標(biāo)準來自己設(shè)計芯片,監(jiān)督貴組織所控制或檢查的國內(nèi)工廠的芯片制造,并納入到設(shè)計防篡改、旁路攻擊防護和物理上不可克隆的功能 (PUF),從而為芯片提供不可復(fù)制的秘密 ID 號。然后您就可以信任硬件了。
安全啟動可能同樣具有挑戰(zhàn)性。您必須確保啟動代碼是未經(jīng)過修改的真實代碼。我們當(dāng)然可以使用與輸入命令相同的解決方案:公鑰解密和散列。我們?nèi)绾卧诩虞d代碼之前解密簽名并計算散列值?
在大型系統(tǒng)中,答案是硬件安全模塊 (HSM)。圖 3 是一個受篡改和入侵檢測保護的電路板或安全框,其中包含安全密鑰存儲和通?;谟布目尚偶用芤妗SM 監(jiān)督安全啟動流程,在啟用前對每個代碼模塊進行驗證。
圖 3.硬件安全模塊包含在防篡改安全模塊中進行身份驗證和加密/解密所需的所有硬件和代碼。但在 MCU 中呢?行業(yè)仍在研究如何將盒級 HSM 簡化為低成本芯片上的 IP 模塊。Ferguson 認為這是不可能的。其他人則認為,對于大多數(shù)系統(tǒng)而言,較簡單的措施(例如將開機密碼和密碼保存在片上非易失性內(nèi)存中)就足夠了。
無論您如何保護啟動過程,都有一個信任根的第三個基本組件:內(nèi)存保護。對于可信代碼、密鑰存儲、系統(tǒng)軟件和數(shù)據(jù)結(jié)構(gòu)而言,必須只能從信任根內(nèi)部進行讀取或修改的內(nèi)存區(qū)。這需要一個硬件內(nèi)存保護單元,它本身只能在信任根內(nèi)進行設(shè)置。顯然,這個內(nèi)存保護單元將不得不初始化為已啟用安全啟動的狀態(tài)。
實際上,系統(tǒng)會以這種方式運行。在初始化時,安全啟動進程將在內(nèi)存中創(chuàng)建一個可信區(qū)域,并將其加載到可信的代碼和數(shù)據(jù)中,包括加密例程、可信的輕量級管理程序、加密密鑰和證書。接下來,這一管理程序?qū)⒁约用苄问郊虞d操作系統(tǒng)和應(yīng)用代碼,為每個任務(wù)分配物理保護的內(nèi)存區(qū)域,并在激活之前使用散列和公鑰方法對每個代碼塊進行解密和驗證。通過這種方式,您可以比較肯定設(shè)備中的所有活動代碼都來自可信來源且未被污染。內(nèi)存保護硬件可確保即使出現(xiàn)問題,任何任務(wù)都不能讀取或?qū)懭肫渌蝿?wù)的代碼或數(shù)據(jù)。
最后一個功能還可以讓您的設(shè)備運行您不信任的代碼。內(nèi)存保護功能可以保證即使惡意代碼也無法從其指定的區(qū)域分支出來,破壞其鄰居,或在未經(jīng)管理程序同意的情況下執(zhí)行 I/O 操作。
那么,合法應(yīng)用如何執(zhí)行 I/O 操作呢?當(dāng)然是通過系統(tǒng)調(diào)用。但您還有其他選擇。所有應(yīng)用都經(jīng)過了身份驗證,可以讓它們按照自己的方式執(zhí)行系統(tǒng) I/O 調(diào)用?;蛘?,您可能需要 I/O 請求和任務(wù)間通信,以便進入管理程序進行審批。然后管理程序可以檢查規(guī)則,以查看請求是否適合于請求任務(wù)。管理程序甚至可以向證書證明其有權(quán)提出請求的任務(wù)提出要求。
活動監(jiān)控器
所有這些措施都是為了防止被篡改的代碼、數(shù)據(jù)或命令進入設(shè)備,或防止它們在進入設(shè)備后執(zhí)行非法操作。但在關(guān)鍵系統(tǒng)中,您可能還需要更高級別的安全性:主動監(jiān)控設(shè)備行為。
這個概念很簡單:可信源知曉設(shè)備應(yīng)該執(zhí)行和不應(yīng)該執(zhí)行的操作,并監(jiān)控設(shè)備的行為。簡單而言,這個監(jiān)控器可能是一個代碼塊,甚至是一個在設(shè)備可信區(qū)域運行的硬件狀態(tài)機。當(dāng)您可以通過一組緊湊的規(guī)則定義正確的行為時,這種方法是有效的。內(nèi)存保護實際上就是一個例子:一組規(guī)則決定哪些代碼可以訪問內(nèi)存中的哪些地址,保護單元的硬件執(zhí)行這些規(guī)則。
隨著規(guī)則變得越來越復(fù)雜,通過在可信軟件中評估的規(guī)則進行監(jiān)控可能不再可行?;蛘呦到y(tǒng)行為可能過于復(fù)雜,無法成功捕捉一組規(guī)則。解決這個問題的一個建議是使用機器學(xué)習(xí)。原則上,您可以通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)來識別優(yōu)劣行為,而不必制定規(guī)則。然后網(wǎng)絡(luò)可以不斷評估系統(tǒng)的行為,并在看到不良行為時發(fā)出警報。
但深度學(xué)習(xí)網(wǎng)絡(luò)也有自己的問題。在如今的就業(yè)市場中,具備所需設(shè)計和培訓(xùn)技能的人才很難找到。將監(jiān)督式學(xué)習(xí)所需的成千上萬個標(biāo)記示例組合起來很難,甚至不可能。構(gòu)建示例集的過程容易受到攻擊:犯罪分子可能會導(dǎo)致您的示例集存在偏見,從而導(dǎo)致網(wǎng)絡(luò)忽略特定攻擊。最后,在推理模式下運行訓(xùn)練網(wǎng)絡(luò)所需的計算和內(nèi)存資源非常重要。這對于 1 美元的 MCU 來說是不可能的。
對于大多數(shù)關(guān)鍵系統(tǒng)而言,異構(gòu)冗余是異乎尋常的一個步驟。在這種方法中,您有三個不同的系統(tǒng)(如果可以在運行期間暫停和禁用設(shè)備,則有兩個系統(tǒng)),每個系統(tǒng)專為設(shè)備的執(zhí)行而設(shè)計和編程。每個系統(tǒng)都使用不同的硬件,由使用不同算法和庫的不同團隊進行編程。
這三個系統(tǒng)并行運行,通過多數(shù)投票的方式來確定設(shè)備的行為。若要成功破解設(shè)備,攻擊者必須同時攻擊這兩個完全不同的系統(tǒng)。這樣煞費苦心的攻擊可能聽起來很荒唐,但一些軍事和其他危險設(shè)備可能需要這樣的冗余系統(tǒng)。
付款
我們已經(jīng)看過,開發(fā)安全的物聯(lián)網(wǎng)設(shè)備可能需要可信的硬件和符合功能安全要求的方法。這可能是指加密硬件加速、防篡改的密鑰存儲位置、可信操作模式、實時設(shè)備監(jiān)視器,甚至是完全冗余。
但這些對于 1 美元的 MCU 沒有任何意義。怎么辦呢?
有些人會忽視這個問題或提供一些令牌,從而輕松擊敗安全攻擊。其他人會將安全責(zé)任上報到物聯(lián)網(wǎng)中心,為端點終端設(shè)備提供安全庇護,將物聯(lián)網(wǎng)設(shè)計轉(zhuǎn)化為邊緣計算網(wǎng)絡(luò)。隨著潛在銷量的增長以及人們對威脅現(xiàn)狀的了解,仍有其他供應(yīng)商會利用先進工藝節(jié)點的大量晶體管來解決問題。在 7 納米時,帶某種內(nèi)部 HSM 的三冗余 MCU 是可行的。
但 ARM 的 Ferguson 的觀點更激進一些。在設(shè)備安全峰會上,F(xiàn)erguson 主張預(yù)先了解保護物聯(lián)網(wǎng)設(shè)備的真實成本并改變行業(yè)的業(yè)務(wù)模式,以便將成本分攤到整個供應(yīng)鏈。這可以通過評估與物聯(lián)網(wǎng)設(shè)備通信的系統(tǒng)的版稅或關(guān)稅來完成?;蛘?a target='_blank' class='arckwlink_none'>半導(dǎo)體廠商可以從已完成的物聯(lián)網(wǎng)系統(tǒng)所帶來的收入或成本節(jié)省優(yōu)勢中獲益。也許更有可能的是,安全設(shè)備只需 25 美元(而非 1 美元),真正安全的系統(tǒng)將由垂直一體化公司部署,這些公司可以將設(shè)備成本并入到系統(tǒng)成本中,然后從服務(wù)合同、維護以及系統(tǒng)數(shù)據(jù)的價值中收回成本。
與舊的 MCU 商用半導(dǎo)體市場相比,這是一個全新的世界。但這個世界面臨著更多威脅,遲早要認真對待。?
(mbbeetchina)- 物聯(lián)網(wǎng)工程概要設(shè)計課件下載 0次下載
- 物聯(lián)網(wǎng)工程PCB詳細設(shè)計課件下載 0次下載
- 物聯(lián)網(wǎng)工程需求分析課件下載 0次下載
- 物聯(lián)網(wǎng)工程概述課件下載 0次下載
- 物聯(lián)網(wǎng)的關(guān)鍵技術(shù)資料下載
- 工業(yè)物聯(lián)網(wǎng)的常見應(yīng)用場景資料下載
- 物聯(lián)網(wǎng)應(yīng)用的六大挑戰(zhàn)資料下載
- 工業(yè)物聯(lián)網(wǎng)的“聽覺損耗”資料下載
- FPGA在物聯(lián)網(wǎng)應(yīng)用中的優(yōu)勢資料下載
- 嵌入式系統(tǒng)設(shè)計與物聯(lián)網(wǎng)開發(fā)資料下載
- 設(shè)備常見接地類型,以及保護接地與保護接零差別在哪?資料下載
- 物聯(lián)網(wǎng)的技術(shù)碎片化與業(yè)務(wù)碎片化資料下載
- 物聯(lián)網(wǎng)零售應(yīng)用中的可穿戴技術(shù)與設(shè)計資料下載
- 物聯(lián)網(wǎng)和智能設(shè)備的EMI分析與設(shè)計技巧詳細資料說明 13次下載
- 如何提升物聯(lián)網(wǎng)設(shè)備的可靠性?詳細調(diào)試方法資料概述 6次下載
- 電池使用壽命是影響物聯(lián)網(wǎng)設(shè)備的關(guān)鍵因素 631次閱讀
- 保護物聯(lián)網(wǎng):公鑰加密保護連接的設(shè)備 491次閱讀
- 適用于物聯(lián)網(wǎng)應(yīng)用的可信MCU 1122次閱讀
- 保護聯(lián)網(wǎng)設(shè)備的五個預(yù)防措施和安全狀態(tài) 2496次閱讀
- 詳解物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)備的概念、工作原理和作用 8338次閱讀
- 保護物聯(lián)網(wǎng)安全的四種方法 3158次閱讀
- 嵌入式物聯(lián)網(wǎng)設(shè)備的3種方案 2927次閱讀
- 物聯(lián)網(wǎng)設(shè)備的安全問題深度分析 4649次閱讀
- 物聯(lián)網(wǎng)實驗室該怎樣去建設(shè) 1191次閱讀
- 物聯(lián)網(wǎng)安全的薄弱點有哪些 1062次閱讀
- 解答物聯(lián)網(wǎng)智能家居中的安全隱患該如何預(yù)防 2432次閱讀
- 物聯(lián)網(wǎng)的工作原理及發(fā)展的展望和如何應(yīng)用物聯(lián)網(wǎng)的資料概述 4690次閱讀
- 簡化物聯(lián)網(wǎng)設(shè)備部署和管理的4種途徑 3908次閱讀
- 物聯(lián)網(wǎng)保護環(huán)境的三種應(yīng)用解析 5023次閱讀
- 把握物聯(lián)網(wǎng)浪潮下的電路保護機遇 1116次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關(guān)電源設(shè)計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多