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