共用方式為


Azure IoT Edge 安全性管理員

適用於:勾選圖示 IoT Edge 1.1

這很重要

IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版 IoT Edge 的詳細資訊,請參閱 更新 IoT Edge

Azure IoT Edge 安全性管理員是一個限定良好的安全性核心,可抽象化安全晶元硬體來保護 IoT Edge 裝置及其所有元件。 安全性管理員是安全性強化的焦點,並且向原始設備製造商 (OEM) 提供技術整合點。

安全性管理員會抽象化 IoT Edge 裝置上的安全晶片硬體。

Azure IoT Edge 安全性管理員 IoT Edge 安全性管理員旨在保護 IoT Edge 裝置和所有固有軟體作業的完整性。 安全性管理員會從信任硬體 (如有提供) 的基礎硬體根目錄轉換信任,以啟動 IoT Edge 執行階段並監視進行中的作業。 IoT Edge 安全性管理員是與安全晶元硬體 (若可用) 一起運作的軟體,可協助盡可能提供最高的安全性保證。

IoT Edge 安全性管理員的責任包括,但不限於:

  • 啟動並設定 Azure IoT Edge 裝置。
  • 透過公證服務控制對設備硬體信任根的存取。
  • 監視執行階段 IoT Edge 作業的完整性。
  • 從硬體安全模組(HSM)接收信任授權
  • 在適用的情況下佈建裝置身分識別及管理信任轉換。
  • 裝載及保護雲端服務 (例如裝置佈建服務) 的裝置元件。
  • 布建具有唯一身分識別的IoT Edge模組。

IoT Edge 安全性管理員包含三個元件:

  • IoT Edge 安全性守護程序
  • 硬體安全性模組平台抽象層 (HSM PAL)
  • 硅基信任根或 HSM(選用,但強烈建議使用)

IoT Edge 安全性守護程序

IoT Edge 安全性精靈負責安全性管理員的邏輯安全性作業。 其代表 IoT Edge 裝置之信任運算基礎的重要部分。

設計原則

IoT Edge 會遵循兩個核心原則:達到最大的作業完整性,並且盡可能降低膨脹和變換。

最大化提升作業完整性

IoT Edge 安全性精靈能夠在任何給定的信任根硬體之防禦能力範圍內,以最高完整性表現運行。 透過適當的整合,根信任硬體會靜態及在執行階段測量並監視安全性精靈,以抵禦竄改。 針對裝置進行的惡意實體存取一直是 IoT 中的一大威脅。 硬體根信任在防禦 IoT Edge 裝置的完整性中扮演重要角色。 硬體信任根有兩種:

  • 適用於保護敏感性資訊 (如祕密與密碼編譯金鑰) 的安全元件。
  • 保護金鑰等秘密的安全隔離區,以及包括機密機器學習模型和計量操作在內的敏感工作負載。

有兩種執行環境可使用硬體信任根:

  • 標準或豐富執行環境 (REE),依賴使用安全項目來保護敏感性資訊。
  • 受信任執行環境 (TEE),依賴使用安全保護區技術來保護敏感性資訊並提供軟體執行保護。

對於使用安全記憶體保護區作為硬體信任根目錄的裝置,IoT Edge 安全性精靈內的敏感性邏輯應該位於記憶體保護區內。 安全守護程序的非敏感性部分可以位於 TEE 外部。 在所有情況下,我們強烈建議原始設計製造商(ODM)和原始設備製造商(OEM)從其 HSM 延伸信任,以評估並保護 IoT Edge 安全程序在開機和運行時的完整性。

將膨脹和流失降到最低

IoT Edge 安全性精靈的另一個核心原則是將流失降到最低。 為了獲得最高層級的信任,IoT Edge 安全守護程式可以緊密結合裝置硬體的信任根基,並以原生程式碼的形式運作。 在這些情況下,通常會透過信任安全更新路徑的硬體根目錄來更新 IoT Edge 軟體,而不是作業系統的更新機制,因為使用此機制可能很困難。 建議 IoT 裝置進行安全性更新,但過多的更新需求或大型更新承載可能會在多個方面擴展受威脅面。 例如,您可能想要略過某些更新,以將裝置可用性最大化。 因此,IoT Edge 安全性精靈的設計簡潔,可讓隔離良好的受信任運算基礎保持很小,以鼓勵經常更新。

建築

IoT Edge 安全性精靈會運用任何可用的硬體信任根目錄技術來強化安全性。 硬體技術提供受信任執行環境時,這也能夠在標準/豐富執行環境 (REE) 與受信任執行環境 (TEE) 之間進行分割環境作業。 角色特定的介面會啟用 IoT Edge 的主要元件,以確保 IoT Edge 裝置及其作業的完整性。

Azure IoT Edge 安全性精靈架構

雲端介面

雲端介面可讓您存取可輔助裝置安全性的雲端服務。 舉例來說,此界面可允許存取用於身分識別生命週期管理的裝置佈建服務

管理 API

管理 API 由 IoT Edge 代理程式在建立/啟動/停止/移除 Edge 模組時呼叫。 安全性精靈會儲存所有使用中模組的「註冊」。 這些註冊將模組的身分識別對應到模組的某些屬性。 這些模組的屬性範例包括在容器中執行之處理序的處理序識別碼 (pid) 和 Docker 容器內容的雜湊值。

工作負載 API 會使用這些屬性(如下所述)來驗證呼叫端是否已獲得動作的授權。

管理 API 是特殊權限 API,只能從 IoT Edge 代理程式呼叫。 由於 IoT Edge 安全性精靈啟動程式並啟動 IoT Edge 代理程式,因此它會驗證 IoT Edge 代理程式尚未遭到竄改,因此它可以為 IoT Edge 代理程式建立隱含註冊。 工作負載 API 所使用的相同證明程序也會限制只有 IoT Edge 代理程式可以存取管理 API。

容器 API

容器 API 會與用於模組管理的容器系統 (例如 Moby 或 Docker) 互動。

工作負載 API

所有模組都可存取工作負載 API。 此 API 提供身分識別證明,形式包括 HSM 根簽名權杖或 X509 憑證,並包含模組所需的信任套件組合。 信任套件組合包含模組所應信任所有其他伺服器的 CA 憑證。

IoT Edge 安全性精靈使用證明程序來保護此 API。 當模組呼叫此 API 時,安全性精靈會嘗試尋找身分識別的註冊。 如果成功,其會使用註冊的屬性來測量模組。 若測量程序的結果符合註冊,則會產生新的身分識別證明。 對應的 CA 憑證 (信任套件組合) 會傳回至模組。 模組會使用此憑證來連線到 IoT 中樞、其他模組或啟動伺服器。 當簽署的令牌或憑證快要到期時,模組負責要求新的憑證。

整合與維護

Microsoft在 GitHub 上維護IoT Edge 安全性精靈的主要程式碼基底。

安裝與更新

IoT Edge 安全性精靈的安裝與更新是透過作業系統的套件管理系統來進行管理。 具有硬體信任根的IoT Edge裝置應該透過安全開機和更新管理系統來管理其生命週期,為守護程序的完整性提供額外的強化。 裝置製造商應該根據其個別的裝置功能來探索這些途徑。

版本控制

IoT Edge 執行階段會追蹤及報告 IoT Edge 安全性精靈的版本。 版本在 IoT Edge 代理程式模組的報告屬性中顯示為 runtime.platform.version

硬體安全模型

硬體安全性模組平臺抽象層(HSM PAL)會將所有信任根軟硬體抽象化,以屏蔽 IoT Edge 開發人員或使用者免於處理其複雜性。 其包括應用程式開發介面 (API) 與資訊傳送網域通訊程序的組合,例如標準執行環境與安全保護區之間的通訊。 HSM PAL 的實際實作取決於使用中的特定安全硬體。 其存在可使幾乎任何安全的晶元硬體都得以使用。

晶片級信任根硬體保護

必須有安全晶元,才能將信任錨定在 IoT Edge 裝置硬體內。 安全晶片有各種類型,包括信賴平台模組 (TPM)、內嵌安全元件 (eSE)、Arm TrustZone、Intel SGX,以及自訂安全晶片技術。 鑑於物聯網裝置的實體可進入性帶來的威脅,建議在裝置中使用安全的晶片信任根。

IoT Edge 安全性管理員旨在識別及隔離元件,以防禦 Azure IoT Edge 平台的安全性和完整性,以進行自訂強化。 第三方 (如製造商) 應使用其裝置硬體提供的自訂安全性功能。

了解如何使用軟體或虛擬信任平台模組 (TPM) 來強化 Azure IoT 安全性管理員:

LinuxLinux on Windows 上使用虛擬 TPM 建立及佈建 IoT Edge 裝置。

後續步驟

若要深入了解如何保護 IoT Edge 裝置的安全,請閱讀下列部落格文章: