自物聯網問世以來,人們一直擔心安全漏洞。例如,在題為“物聯網:互聯世界中的隱私和安全”的報告中,聯邦貿易委員會指出,“物聯網設備可能會帶來各種潛在的安全風險,這些風險可能會被利用來傷害消費者:(1)允許未經授權訪問和濫用個人信息;(2) 促進對其他系統的攻擊;(3) 制造安全風險?!?為了減輕此類安全問題,物聯網設備的設計需要具有強大的安全性。
傳感器節(jié)點等物聯網端點通常對成本敏感,并且通常使用資源受限的無線微控制器 (MCU)。換句話說,它們有限的片上內存和安全功能可能會阻止在桌面或服務器環(huán)境中使用某些安全標準。為了提供專門針對資源受限設備的安全標準,創(chuàng)建開放標準和規(guī)范以在從 IoT 端點到云服務器的設備中實現更安全計算的 Trusted Computing Group 開發(fā)了設備身份組合引擎 (DICE) 標準。
在本文中,我將探討 DICE 標準的目標是什么以及它是如何工作的,包括服務器端需要什么來利用 DICE 的功能。
DICE 標準的核心目標
DICE 標準旨在通過以下方式增強物聯網設備的安全性:
保護設備身份。物聯網設備通常通過加密密鑰進行身份驗證。如果攻擊者能夠發(fā)現此密鑰的價值,他們就可以輕松冒充物聯網設備。DICE 可以創(chuàng)建設備身份,該身份可以很好地防止未經授權的訪問。
遠程重新配置。如果物聯網設備確實因惡意軟件或發(fā)現私鑰而受到威脅,則必須能夠遠程更新應用程序固件映像和/或重新加密物聯網設備。DICE 使 IoT 供應商能夠通過向其推送新映像來恢復 IoT 設備,從而自動生成新的傳輸層安全 (TLS) 客戶端證書鏈。
遠程軟件證明。為了獲得最佳性能和安全性,物聯網應用程序必須確認所有連接的物聯網設備都在運行正確且最新版本的應用程序固件。DICE 在 TLS 證書中包含固件映像測量值(例如哈希)和版本號等證明信息,使 IoT 服務器能夠驗證 IoT 設備上運行的映像是否正確。
保護靜態(tài)數據并不是 DICE 的主要關注點,因為典型的物聯網設備(例如濕度或溫度傳感器)不會處理對黑客特別敏感或有價值的數據。但是,DICE 確實支持包裝密鑰的概念,它是一種對稱密鑰,用于加密需要持久保存的重要數據,例如加密密鑰或設備配置。
除了其安全目標之外,DICE 標準還旨在最大限度地減少實現其安全性所需的資源。DICE 需要基于硬件的機密和限制未經授權的程序對其進行訪問的機制。它使用 X.509 證書中的擴展在 IoT 設備和服務器之間交換身份和證明數據。由于證書已經是物聯網設備連接到服務器的標準 TLS 身份驗證過程的一部分,因此這種實現的開銷很小。為了適應物聯網應用的不同性質并為開發(fā)人員提供靈活性,DICE 標準并未規(guī)定單一的實施方法,而是闡明了一組可以通過多種方式實現的設計原則。
將安全應用于物聯網設備的另一個挑戰(zhàn)是,了解最先進的安全技術所需的學習曲線非常重要。許多嵌入式開發(fā)人員缺乏設計安全系統的經驗,如果項目出現延誤,可能會導致產品安全目標的妥協。半導體供應商通常會為其特定的無線 MCU 實施 DICE 標準,從而簡化在物聯網設備設計中使用 DICE 所需的工作。
DICE 的工作原理
為了有效地支持資源受限的設備,DICE 標準避開了對復雜安全硬件的要求。它的主要要求是基于硬件的機密,然后用于逐步啟動受信任的計算庫。在無線 MCU 應用中,引導過程通常分為三個步驟,如圖 1 所示。具有高級操作系統或可信執(zhí)行環(huán)境的更復雜的系統將需要更多的引導步驟。在本文中,我將重點介紹典型無線 MCU 應用所需的啟動步驟。
圖 1:啟用 DICE 的 MCU 在使用自簽名證書時如何啟動應用程序:前兩個階段側重于 DICE 相關功能以最大程度地降低復雜性,而第三階段則啟動主 MCU 應用程序。(圖片:德州儀器公司)點擊圖片查看大圖。
第一個引導步驟會生成復合設備標識符 (CDI)。我將在此步驟中執(zhí)行的軟件和硬件稱為 DICE 引擎。要生成 CDI,DICE 引擎需要唯一設備密鑰 (UDS)。物聯網設備制造商可以直接將 UDS 編程到硬件中。或者,DICE 引擎可以使用另一個安全的預編程唯一身份(例如密鑰對)來導出它。
UDS 確實有一些額外的安全要求。只有 DICE 引擎可以訪問 UDS,并且必須有適當的硬件支持 DICE 引擎才能在將控制權傳遞給下一個引導步驟之前鎖定對 UDS 的訪問。
為了導出 CDI,DICE 引擎測量在第二個引導步驟中運行的代碼,通常通過單向安全散列,然后使用基于散列的消息身份驗證代碼 (HMAC) 函數將散列與 UDS 組合。一旦 CDI 計算完成,DICE 引擎就會擦除寄存器、緩存或內存中可能幫助攻擊者推斷 UDS 的任何數據。此時,DICE 引擎將控制權交給啟動過程的第二步。
第二個引導步驟的初始作用是創(chuàng)建設備身份密鑰對(稱為 DeviceID)及其關聯的證書。然后,此引導步驟會創(chuàng)建別名密鑰對和關聯的證書鏈。我將在第二個引導步驟中執(zhí)行的軟件稱為第 0 層。為了保護 DICE 引擎和第 0 層免受攻擊,DICE 標準要求 DICE 實現代碼必須駐留在片上 ROM 中或需要簽名固件從半導體供應商更新。
第 0 層從 CDI 派生 DeviceID 密鑰對。要創(chuàng)建 DeviceID 證書,第 0 層遵循兩個路徑之一,具體取決于用戶的配置。一種方法是創(chuàng)建自簽名證書。另一種是創(chuàng)建證書簽名請求 (CSR) 并使用適當的證書頒發(fā)機構 (CA) 在外部對其進行簽名。DICE 標準要求外部簽名操作必須在第 0 層之外執(zhí)行,因為保持第 0 層簡單且沒有可利用的錯誤非常重要。
除了創(chuàng)建設備 ID 和證書鏈外,第 0 層還創(chuàng)建別名密鑰對及其關聯的證書。為了派生別名密鑰對,第 0 層使用單向哈希通過測量第 1 層映像(實際應用程序固件映像)并將 FWID 與 CDI 結合來創(chuàng)建固件標識符 (FWID)。因此,別名密鑰對值直接與應用程序固件映像相關。第 0 層使用 DeviceID 證書對 Alias 證書進行簽名,從而將它們鏈接在一起。
DeviceID(及其相關證書)的目的是為設備的生命周期提供身份證明。為了保持 DeviceID 的高度安全,第 0 層會在啟動過程的下一步開始之前擦除 DeviceID 私鑰的任何痕跡。由于 DeviceID 私鑰僅在啟動過程中可用,基于 DICE 的物聯網設備不需要更復雜的安全機制,例如可信執(zhí)行環(huán)境來在一般應用程序執(zhí)行期間保護 DeviceID。如果需要更新第 0 層,則 DeviceID 將需要更改,因為它的輸入之一是第 0 層的哈希值。但是,第 0 層軟件很簡單,其目的是永遠(或很少)更新它。
別名密鑰對及其關聯證書的目的是為物聯網設備上運行的固件版本提供證明。與 DeviceID 不同,第 0 層將別名密鑰對傳遞到啟動過程的下一步——應用程序固件映像。然后,應用程序可以將此密鑰對用作其他加密相關操作的基礎,例如為數據密封創(chuàng)建新的密鑰對。
IoT 設備使用 Alias 證書鏈與 IoT 服務器進行 TLS 客戶端身份驗證。由于 Alias 密鑰對和證書直接與設備上運行的應用程序固件映像相關聯,因此在 IoT 設備上安裝新應用程序映像的無線 (OTA) 更新將產生新的 Alias 密鑰對和證書. 這是 DICE 的一個非常強大的方面,因為它使物聯網供應商能夠通過向設備發(fā)送自動重新加密的新圖像來將受損的物聯網設備恢復到安全狀態(tài)。
如前所述,DICE 使用 TLS 和 X.509 證書與服務器通信。因為幾乎每個物聯網設備最終都將通過 TLS 連接與物聯網服務器進行通信(非 IP 設備將需要網關),這種方法本質上為物聯網設備增加了最小的開銷。為了協助身份和證明,DICE 為 X.509 證書添加了新的標準擴展,例如對象標識符 (OID) 和包含證明相關數據的附加字段,例如用于生成 FWID 和版本號的哈希函數。OID 使證書能夠說明它是用于設備身份還是證明或兩者兼而有之。
當物聯網設備嘗試連接到物聯網網絡時,除了標準的 TLS 身份驗證協議外,物聯網服務器還需要執(zhí)行遠程認證。遠程證明涉及從證書中提取 FWID 并將其與物聯網服務器期望在物聯網設備上運行的圖像的哈希值進行比較。因為運行在 IoT 服務器上的設備管理系統需要管理每個連接的 IoT 設備的軟件更新,它應該已經知道 IoT 設備上正在運行的軟件版本,并且可以訪問相關的固件映像哈希。
物聯網供應商不需要在物聯網服務器或其他任何地方維護 UDS 值數據庫。這進一步增強了基于 DICE 的物聯網應用程序的安全性,因為它消除了通過使用成功滲透物聯網供應商的企業(yè)信息技術系統的攻擊來發(fā)現 UDS 值的可能性。
結論
DICE 標準使開發(fā)人員能夠在低成本物聯網設備中實現更有效的安全級別。DICE 可以提供安全、持久的身份和軟件證明,使物聯網服務器能夠驗證物聯網設備是否運行正確的軟件。DICE 還支持安全遠程重新配置受感染的物聯網設備。
物聯網設備開發(fā)人員可以輕松采用 DICE 標準,因為它已經在無線 MCU 上預先實現,例如TI SimpleLinkWi-Fi CC323x。TI SimpleLink Wi-Fi CC323x 上的 DICE 實施使物聯網設備供應商能夠在制造過程中或在現場部署物聯網設備時從外部簽署 DICE 證書。
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17301瀏覽量
352117 -
物聯網
+關注
關注
2912文章
44875瀏覽量
375625 -
DICE
+關注
關注
0文章
4瀏覽量
6168
發(fā)布評論請先 登錄
相關推薦
評論