2020-05-06 10:06:23分類:云服務端開發13653
網絡連接一方面能夠為嵌入式系統帶來巨大好處,另一方面卻可能威脅到設備及設備所構建的物聯網應用的完整性。然而,這一難題現在可以通過智能設計技術解決。只要使用了正確的基礎架構,聯網嵌入式和物聯網設備就可以利用在線服務確保長期安全地保護網絡,即使個別節點在某一時刻遭受攻擊。實現所需安全級別是一項極為復雜的工作,幸運的是,市場上涌現出多種有效解決方案,如:Microsoft的Azure Sphere及其嵌入式Pluton安全子系統,可提供一整套措施和工具來應對不同威脅。
1 實現物聯網安全的硬件基礎
物聯網設備安全的一個基本要求是保護系統的完整性,這就要求設備的防御措施必須能夠防止非授權的修改和入侵。黑客極端狡猾,他們會利用所發現的任一漏洞來嘗試攻擊系統。OEM廠商則可利用層次化安全策略來增強其系統對網絡攻擊的抵御能力。例如,緩沖區溢出常常被黑客用來對系統實施滲透入侵,其攻擊原理則是利用了內存數據布局。過大的網絡數據包可被黑客加以利用,將攻擊代碼存儲在分配給網絡緩沖區的內存空間之外,之后目標系統便會無意中執行這些攻擊代碼。從黑客的角度來看,這為他們提供了一個上傳可執行鏡像文件的機會。一旦設備重啟,便會執行新的鏡像文件,如此,黑客就獲得了系統的完全控制權,能夠竊取機密信息及其他有價值的數據。
安全啟動機制可確保僅運行授權方提供的可執行文件,從而防止各類攻擊。實施安全啟動機制的一個基本要求是將非易失性內存區域在制造后設置為只讀區。這一區域包含引導加載程序代碼,可強制處理器檢查加載到系統中的啟動鏡像的完整性。若完整性檢查失敗,則設備只有獲得有效的啟動鏡像后才能開啟。
校驗和是進行完整性檢查的最簡單機制。然而,它并不會檢查啟動鏡像的來源。如果黑客知道如何根據制造商ID或本該保密的類似共享代碼來構造虛假的啟動鏡像,那么仍有可能成功通過完整性檢查。為此,用戶需要實現更有效的完整性檢查:通過確保使用本地存儲的唯一ID生成的哈希數,對加載到閃存中供下次啟動使用的代碼進行簽名,從而將制造商ID與設備自身ID相結合。為了防止可能用于竊取此ID的攻擊,設備還需具備一個硬件信任根。
2 硬件信任根
硬件信任根是用于運行安全敏感操作的受保護區域,這些操作可防御物理篡改和遠程攻擊。為了實現此類防護,信任根部署了一個安全處理器,該處理器對片上代碼和數據內存具有唯一的訪問權。加密密鑰和其他安全數據都存儲在這些區域中,且信任根配置為不允許從外部訪問這些內容。安全處理器通常借助加密處理器來加快操作速度,同時利用真隨機數生成器(TRNG)來生成在信任根之外運行的軟件和系統,以確定它們是否有權訪問系統資源。Pluton安全子系統就是硬件信任根的一個示例,該子系統是Azure Sphere模塊部署的核心部分,可通過e絡盟購買。
有了硬件信任根,設備不僅能保護自身及其發送的所有數據的安全,還可以證明自身是向網絡中其他節點(無論是云中其他物聯網設備還是服務器)發送可信數據的合法設備。這有助于進一步提高設備的安全性,因為設備可以拒絕與沒有可接受憑證的任何聯網設備進行交互。這首先就減少了設備遭受緩沖區溢出和類似攻擊的可能性。Pluton還加強了系統內部的安全性,以控制那些可能受到攻擊的外圍設備的操作。處理器內的防火墻可防止對敏感功能的未授權訪問,以及企圖利用虛假外設來控制系統的攻擊行為。
認證是軟件或遠程設備用以證明其身份或真實性的機制。通常,這種認證是根據基于公鑰基礎設施(PKI)機制的協議來進行的。PKI機制中,消息使用公鑰進行加密,因為公鑰可以自由分發而不破壞協議,而相應的私鑰才能解密消息。因此,此類私鑰將存儲在硬件信任根的安全內存中,且通常在制造過程中進行加載。
3 通信安全
當設備想要建立通信或證明其身份時,它將使用協議通過一個或多個私鑰生成證書和簽名。簽名和認證協議將真隨機數生成器(TRNG)生成的隨機數與私鑰相結合,以創建諸如會話秘鑰之類的值,這些值有效期短且使用一次就會被丟棄,以避免黑客攔截消息并重構秘鑰實施所謂的重放攻擊。一旦創建,PKI協議可確保只在需要的安全區域內訪問私鑰。
若使用Azure Sphere,兩個主私鑰則是由設備本身搭載的Pluton子系統在制造過程中生成,其之后甚至連軟件也無法直接讀取。可以說,私鑰的所有信息均由Pluton子系統內的加密處理器創建,這就克服了眾多系統存在的一個重要缺陷,它們的私鑰往往是在外部生成并導入設備,無疑增加了被攔截的風險。
盡管任何設備都可以生成私鑰并進行內部存儲,但必須確定設備首次出現在網絡中時其密鑰是否合法有效。Azure Sphere可通過生成匹配的公鑰來解決這一問題:一個用于認證,另一個用于用戶定義安全服務。這些公鑰在設備制造階段即提供給Microsoft Azure云服務使用。同時,使用PKI機制生成的數字證書也會存儲在設備中,這些數字證書可用于驗證來自Azure服務器的消息。
當Azure Sphere設備連接到云時,它會根據存儲在安全內存中的Azure創建的證書來核驗消息,從而驗證服務器的身份。在此過程中,設備自身需要向服務器進行身份驗證,這項工作可使用遠程認證協議完成。Azure Sphere系統不僅驗證設備,還會驗證設備運行的代碼。它根據安全啟動過程中發現的代碼序列的加密哈希數來創建會話密鑰并執行這一操作。這些值采用由板載加密處理器生成的私鑰簽名進行認證。由于Azure服務可以根據設備在其數據庫中保存的公鑰生成相應的公鑰,因此,它可以使用授權固件來驗證所啟動的設備身份。
運用云服務進行設備身份認證還具備其他多個好處:例如,在Azure Sphere環境下,若設備被證實可靠且軟件運行無誤,該設備就可獲取一個證書。該證書可與設備自身存儲的憑證一起提交給其他在線服務和設備以證實其身份信息。該證書的有效期僅約一天,有助于降低設備遭受潛在攻擊的風險。這也意味著,若設備需維持與物聯網服務之間的連接,設備必須定期證實其健康狀況。這種防護級別是單機系統無法實現的,它們一旦遭受物理攻擊損害,若不進行手動維護檢查將無法修復。
若設備未通過安全啟動過程,客戶端設備將無法獲得證書,也就無法作為一個合法有效且經認證的系統運行,這樣一來,設備將被切斷與物聯網系統的連接,且其運行方式將無法有效防御黑客攻擊。此外,若身份認證失敗,也有方法可以用來改變不利情況,即將設備連接到Azure服務,以下載并安裝經認證的最新啟動鏡像。這就為設備提供了更高級別的防護,可防止黑客利用舊版認證固件的漏洞實施攻擊。
實際上,網絡連接支持已成為許多嵌入式系統設計人員的一項實際需求。盡管存在一些威脅風險,但卻完全可控。通過Azure Sphere等平臺,網絡連接能夠提供較非聯網設備更穩健可靠的解決方案。