最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

樂鑫特權(quán)隔離機(jī)制 #4 | 用戶應(yīng)用程序的安全啟動

2023-03-08 12:12 作者:樂鑫信息科技  | 我要投稿

上一篇文章中,我們演示了如何在樂鑫特權(quán)隔離框架中,獨(dú)立地更新用戶應(yīng)用程序。簡單來說,通過將受保護(hù)的應(yīng)用和用戶應(yīng)用程序相互隔離,即可輕松實(shí)現(xiàn)對其中任意程序的獨(dú)立更新。在這個框架下,為單個受保護(hù)的應(yīng)用程序提供多個用戶應(yīng)用程序也成為可能,類似于應(yīng)用程序的“應(yīng)用程序商店”。然而,隨著這些應(yīng)用程序功能的日益豐富,提高其安全性的需求也隨之增加。

本文中,我們將介紹“用戶應(yīng)用程序的安全啟動機(jī)制”,該機(jī)制確保只有受信任和授權(quán)的用戶應(yīng)用程序,才能在設(shè)備上執(zhí)行。

安全啟動 (Secure boot)

安全啟動流程可以確保僅有授權(quán)和受信任代碼才能在設(shè)備上執(zhí)行,常見的實(shí)現(xiàn)方法是通過構(gòu)建“信任鏈”,即通過從一個受信任且無法更改的實(shí)體開始(例如硬件中的一次性可編程存儲器),一步步構(gòu)建完全值得信任的完整信任鏈。

使用樂鑫特權(quán)隔離框架的項(xiàng)目具有兩類相互獨(dú)立的應(yīng)用程序二進(jìn)制文件:受保護(hù)應(yīng)用程序 (protected_app) 和用戶應(yīng)用程序 (user_app) ,可以獨(dú)立完成更新。

樂鑫特權(quán)隔離框架可以為這兩類應(yīng)用程序提供安全啟動流程,通過基于信任根的信任鏈,驗(yàn)證受保護(hù)應(yīng)用和用戶應(yīng)用程序文件。

受保護(hù)應(yīng)用程序的安全啟動 (Secure boot for protected app )

受保護(hù)應(yīng)用程序的安全啟動遵循 ESP-IDF 中傳統(tǒng)應(yīng)用安全啟動方案。

安全啟動:信任鏈

傳統(tǒng)安全啟動過程概述如下:

1. 芯片上電/復(fù)位時(shí),ROM 引導(dǎo)加載程序開始執(zhí)行。注意,這里的 ROM引導(dǎo)加載程序已經(jīng)燒錄在芯片中,無法改變,因此是可信的,將作為信任鏈的信任根。

2. ROM 引導(dǎo)加載程序在 flash 中查找有效的二級引導(dǎo)加載程序,如果找到,則使用 eFuse 中燒錄的公鑰哈希值,驗(yàn)證文件附加 RSA-3072 公鑰。

3. 公鑰驗(yàn)證完成后,繼續(xù)使用經(jīng)過驗(yàn)證的公鑰驗(yàn)證整個二級引導(dǎo)加載程序文件的數(shù)字簽名。如果數(shù)字簽名驗(yàn)證成功,ROM 引導(dǎo)加載程序?qū)⒍壱龑?dǎo)加載程序加載到內(nèi)存中,并開始執(zhí)行。

4. 一旦二級引導(dǎo)加載程序開始執(zhí)行,它就被視為受信任的實(shí)體。然后,二級引導(dǎo)加載程序?qū)⒊跏蓟到y(tǒng),并嘗試以類似的方式使用 eFuse 驗(yàn)證和加載受保護(hù)的應(yīng)用程序。

更多詳情,您可以查看 ESP-IDF 編程指南中的安全啟動章節(jié)docs.espressif.com/projects/esp-idf/en/latest/esp32c3/security/secure-boot-v2.html

用戶應(yīng)用程序的安全啟動 (Secure boot for user app)

如前所述,受保護(hù)應(yīng)用程序和用戶應(yīng)用程序都可以獨(dú)立開發(fā),因此這兩類應(yīng)用程序的所有權(quán)可以屬于不同單位,也就是說它們可能都需要單獨(dú)的簽名密鑰。為了驗(yàn)證受保護(hù)應(yīng)用程序,我們會在 eFuse 中燒錄受保護(hù)應(yīng)用程序公鑰的哈希值,但出于節(jié)省 eFuse 內(nèi)存的目的,并沒有同樣地?zé)浻脩魬?yīng)用程序公鑰的哈希值。

對此,我們特別為用戶應(yīng)用程序的安全啟動設(shè)計(jì)了基于證書的驗(yàn)證機(jī)制。

基于證書的驗(yàn)證方案 (Certificate-based verification scheme)

在此方案中,受保護(hù)應(yīng)用程序被視為受信任的應(yīng)用程序,因此可以在受保護(hù)應(yīng)用程序的固件中燒錄一些信息,用于后續(xù)驗(yàn)證用戶應(yīng)用程序的真實(shí)性。

  • 必要條件

采用該方案的受保護(hù)應(yīng)用程序和用戶應(yīng)用程序必須滿足一些條件。

受保護(hù)應(yīng)用程序:

1. 受保護(hù)應(yīng)用程序的所有者必須維護(hù)兩組單獨(dú)的 RSA-3072 私鑰。一組用于對受保護(hù)的應(yīng)用程序的固件進(jìn)行簽名,另一個用于創(chuàng)建 CA 證書。

2. 必須提供某種途徑,允許用戶應(yīng)用程序開發(fā)人員獲取簽名證書。

3. 必須在其固件中嵌入 CA 證書。

用戶應(yīng)用程序:

1. 用戶應(yīng)用程序的所有者需要生成 RSA-3072 私鑰,用于對用戶應(yīng)用固件進(jìn)行簽名,還用于生成證書簽名請求(CSR)。

2. 必須將此 CSR 發(fā)送到受保護(hù)的應(yīng)用程序 CA,并獲取已簽名的用戶應(yīng)用證書 (UAC)。

3. 必須使用 RSA-3072 私鑰對固件簽名。簽名和用戶應(yīng)用證書必須隨附在應(yīng)用程序文件的末尾。

  • 驗(yàn)證過程

該方案的驗(yàn)證流程如下:

樂鑫特權(quán)隔離中的安全啟動流程

1. 芯片復(fù)位時(shí),ROM 引導(dǎo)加載程序?qū)Ⅱ?yàn)證二級引導(dǎo)加載程序,然后驗(yàn)證受保護(hù)應(yīng)用程序的RSA-3072 公鑰,具體方式為:對比 eFuse 中燒錄的 RSA 公鑰哈希值與受保護(hù)應(yīng)用程序文件末尾處附加的公鑰哈希值。

2. 公鑰驗(yàn)證完成后,繼續(xù)使用經(jīng)過驗(yàn)證的公鑰驗(yàn)證受保護(hù)應(yīng)用程序的 RSA-PSS 簽名。如果驗(yàn)證成功,則可以將受保護(hù)的應(yīng)用程序視為受信任的應(yīng)用程序并允許啟動。

3. 受保護(hù)應(yīng)用程序啟動后,會在 flash 中搜索有效的用戶應(yīng)用程序,如果找到,則將使用嵌入在受保護(hù)應(yīng)用程序中的 CA 證書,來驗(yàn)證附加至用戶應(yīng)用程序文件末尾的用戶應(yīng)用證書 (UAC)。UAC 由受保護(hù)應(yīng)用程序的 CA 私鑰簽名,因此可以通過 CA 證書中的 CA 公鑰進(jìn)行驗(yàn)證。

4. UAC 中包括相應(yīng)用戶應(yīng)用程序簽名密鑰的公鑰,一旦 UAC 通過受保護(hù)應(yīng)用程序的驗(yàn)證,UAC 內(nèi)部的公鑰也可以被視為受信任。此后,受保護(hù)的應(yīng)用程序使用此公鑰,驗(yàn)證用戶應(yīng)用程序的 RSA-PSS 簽名。

更多詳情,您可以查看樂鑫特權(quán)隔離文檔中的安全啟動章節(jié)docs.espressif.com/projects/esp-privilege-separation/en/latest/esp32c3/technical-details/secure_boot.html



如有任何問題或反饋,歡迎隨時(shí)在?GitHub 倉庫中提交 issue。若您對樂鑫特權(quán)隔離系列文章感興趣,歡迎在專欄「ESP 技術(shù)文章」中查看往期,敬請期待后續(xù)的更多內(nèi)容。

樂鑫特權(quán)隔離機(jī)制 #4 | 用戶應(yīng)用程序的安全啟動的評論 (共 條)

分享到微博請遵守國家法律
进贤县| 炉霍县| 柳江县| 敦化市| 江川县| 连平县| 枣强县| 贵州省| 郧西县| 萝北县| 淮南市| 夏津县| 石城县| 安宁市| 米泉市| 抚松县| 从化市| 宁化县| 兴海县| 重庆市| 南皮县| 江永县| 舟曲县| 克东县| 韩城市| 镇宁| 红安县| 临颍县| 龙游县| 绥德县| 水城县| 湖口县| 绵竹市| 五原县| 抚远县| 布拖县| 延庆县| 延安市| 孟州市| 教育| 师宗县|