Azure IoT Edge 安全性管理員

適用於:yes 圖示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 裝置及其作業的完整性。

IoT Edge 安全性精靈的架構

雲端介面

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

管理 API

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

這些屬性由工作負載 API 使用,以證明呼叫者已獲得執行動作的授權。

管理 API 是特殊權限 API,只能從 IoT Edge 代理程式呼叫。 由於 IoT Edge 安全性精靈會啟動 (Bootstrap) 及啟動 (Start) 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 代理程式模組報告屬性 (property) 的 runtime.platform.version 屬性 (attribute)。

硬體安全模組

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

安全晶片根信任硬體

必須有安全晶片才能在 IoT Edge 裝置硬體內固定信任。 安全晶片有各種類型,包括信賴平台模組 (TPM)、內嵌安全性元素 (eSE)、ARM 信任區、Intel SGX 及自訂安全晶片技術。 有鑑於 IoT 裝置實體協助工具的相關威脅,建議在裝置中使用安全晶片信任根目錄。

對於自訂強化功能,IoT Edge 安全性管理員能夠識別並隔離負責維護 Azure IoT Edge 平台安全性和完整性的元件。 裝置製造商等協力廠商應該利用可和其裝置硬體搭配使用的自訂安全性功能。

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

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

下一步

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