雲服務:防護嵌入式安全的有效手段

2020-05-06 10:06:23分類:雲服務端開發1545

  网络连接一方面能够为嵌入式系统带来巨大好处,另一方面却可能威胁到设备及设备所构建的物联网应用的完整性。然而,这一难题现在可以通过智能设计技术解决。只要使用了正确的基础架构,联网嵌入式和物联网设备就可以利用在线服务确保长期安全地保护网络,即使个别节点在某一时刻遭受攻击。实现所需安全级别是一项极为复杂的工作,幸运的是,市场上涌现出多种有效解決方案,如: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等平台,网络连接能够提供较非联网设备更稳健可靠的解決方案。

上一篇:下一篇: