共用方式為


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 代理程式模組報告屬性 (property) 的 runtime.platform.version 屬性 (attribute)。

硬體安全模型

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

保護晶元根信任硬體

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

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

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

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

下一步

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