您是否使用 Microsoft Azure RTOS、ATECC608 或 TA100 安全元件,并希望為物聯網 (IoT) 設備實施安全啟動和 TLS 相互身份驗證?如果是這樣,那么您來對地方了。
從嵌入式設備到 Azure 云安全性的 IoT 信任鏈由多個層組成。在這篇博文中,我們將重點介紹建立最基本的概念,即信任根,它由安全啟動功能和使用 Microsoft Azure 實時操作系統 (RTOS) 和 ATECC608 TrustFLEX 安全身份驗證集成電路 (IC) 的 TLS 相互身份驗證組成。
首先,當您的物聯網設備使用標準微控制器(MCU)時,如何實現某種程度的安全啟動?這就是像 ATECC608 或 TA100 這樣的安全元件可以派上用場的地方。當然,在這種情況下沒有bootROM,但是在沒有安全啟動和安全啟動之間,安全元素內有一個隔離的公鑰進行驗證,威脅模型和業務條件可能會有利于基于安全元素的設計。在本例中,我們將使用傳統的 SAME54 Arm Cortex-M4?? MCU 和 ATECC608 TrustFLEX 安全元件附加板,用于代表物聯網終端節點的硬件。現在,如果您的終端節點需要多線程,并且需要 Azure RTOS 才能從所有與 Azure 相關的嵌入式 API 中受益,那么 MCU 和安全元件之間的通信在此 RTOS 環境中如何工作?我們需要看看PKCS#11。
什么是PKCS#11以及它如何適應Azure RTOS
PKCS#11 代表公鑰加密標準編號 11。它是一個接口,用于觸發將利用機密(密鑰)的加密操作。簡單來說,它是操作系統和硬件安全模塊(HSM)之間的標準接口。在我們的例子中,HSM是ATECC608,你猜對了,操作系統是Azure RTOS。
Microsoft Azure 已方便地將 PKCS#11 接口集成到其 Azure RTOS 中。
加密命令將通過 Azure RTOS 到 PKCS#11,但需要一個中間庫:Microchip CryptoAuthLib。該庫使安全元件與MCU或處理器無關。CryptoAuthLib 已經支持來自 PKCS#11 接口的調用,并將其轉換為對 ATECC608 TrustFLEX 或 TA100 安全元件的低級命令,如下圖所示。
安全啟動和 Azure 實時操作系統
嵌入式系統需要使用與簽署代碼的私鑰關聯的公鑰執行橢圓曲線數字簽名算法 (ECDSA) 驗證。ATECC608 TrustFLEX TLS 配置中的公鑰如下所示。下載信任平臺設計套件 (TPDS) 時,無需 NDA 即可訪問它。
需要了解的是,Microsoft Azure提供“設備更新”服務,您可以在其中使用預先生成的公鑰/私鑰對,其中私鑰在HSM中受到理想保護,設備更新執行代碼的簽名操作并創建簽名作為輸出。與簽名關聯的公鑰將使用Microchip安全密鑰配置服務預配(安全編程)到Microchip ATECC608 TrustFLEX插槽15中。TPDS 將引導您完成入職流程。簽署代碼的私鑰不應離開公司 HSM,也不應提供給任何合同制造商 (CM)。請記住,安全是一種共擔責任模型。現在我們有一個簽名代碼,CM將在制造過程中從每個MCU中的設備更新加載該代碼。我們將使用配備 HSM 的工廠在其安全元件(ATECC608 TrustFLEX 或 TA100)中配置公鑰。CM 還將組裝已配置的安全元素,并且密鑰不會暴露給供應鏈。現在,物聯網設備公司可以靈活選擇CM。
相互身份驗證
處理安全啟動后,嵌入式設備和 Azure IoT 中心之間將進行相互身份驗證。在將數據推送到 Azure IoT 中心之前,嵌入式設備需要信任云,反之亦然。IoT 設備將與設備預配服務 (DPS) 相互進行身份驗證。Microchip 提供的清單文件(其中包含與 TLS 相互身份驗證請求的私鑰關聯的證書)上傳到 DPS 中。DPS 現在擁有公鑰列表,可以驗證在嵌入式系統的安全元件內頒發的簽名,以最終確定信任鏈。信任鏈由安全啟動和相互身份驗證組成,其中安全啟動的公鑰和 TLS 相互身份驗證的私鑰受到保護,并與代碼、人員和制造商隔離,一直到嵌入式設備的開發和部署。然后,DPS 通過 Azure RTOS 支持和提供的 NetX TLS 基于受信任的 IoT 設備自信地與 Azure IoT Hub 通信。
TLS 相互身份驗證依賴于公鑰基礎結構 (PKI),該基礎結構可以是靜態的,也可以是托管的。對于靜態PKI,Azure可容納任何根證書公司,如Digicert,GlobalSign等。對于托管PKI,Microchip安全合作伙伴公司(如Crypto Quantique,KeyFACTOR和Kudelski)提供設備管理服務。他們的 API 可以直接插入 Azure 云環境,以吊銷、輪換和審核證書。
當涉及到用于TLS安全元素的TrustFLEX時,它們可以做比前面提到的兩個用例更多的功能,并解決各種用例,例如:
用于設備管理和所有權轉讓的私鑰輪換
用戶訪問權限和受控固件版本更新的公鑰輪換
固件 IP 保護
附件和一次性認證
總而言之,可以使用 PKCS#11 實現訪問整個項目(包括 Azure RTOS),以使用預配置的 ATECC608 TrustFLEX 和 Microchip 安全預配服務實現安全啟動和相互身份驗證。
審核編輯:郭婷
-
嵌入式
+關注
關注
5086文章
19143瀏覽量
306095 -
操作系統
+關注
關注
37文章
6847瀏覽量
123428 -
RTOS
+關注
關注
22文章
817瀏覽量
119715
發布評論請先 登錄
相關推薦
評論