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