雙區域代碼安全模塊(Dual Code Security Module),通常簡稱為DCSM,是一種用于增強微控制器(MCU)代碼安全性的設計。
雙區域代碼安全模塊的設計提供了將關鍵程序和數據存儲在隔離的內存部分的功能,防止未經授權讀取或修改專有代碼。該功能通過將內部存儲劃分為兩個獨立區域(區域一和區域二)并分別配置其信息來控制片上資源的訪問權限。每個區域可設置獨立的128位解鎖密鑰,可將片上資源的安全級別進行分級:在訪問較低安全級別的資源時,芯片可保持對較高安全級別資源的加密保護。
該技術架構實現的芯片安全級別如表1所示。雙區域的設計,表示對于任何一個區域來說,另一個區域和未被配置為安全區的區域皆為“安全區外”。每個區域歸屬于一個用戶,用戶可以為各自的區域分配存儲區域,并通過在USER OTP中對相應地址進行編程來配置每個存儲區域的安全設置。兩個獨立的區域保證了兩位用戶可以在同一器件上編寫各自的專有代碼,而且保證了其專有代碼的秘密性,防止對方或其他潛在黑客對代碼進行攻擊。
密碼是否匹配解鎖 | 被訪問的區域配置 | 程序執行地址 | 保護行為描述 |
否 | 配置為安全區 | 安全區外 | 只有CPU的取指是被允許的。區域內的代碼只可以被執行,不可以被讀取。 |
否 | 配置為安全區 | 安全區內 | CPU擁有全部的訪問權限,但JTAG調試接口不可以執行讀操作。 |
是 | 配置為非安全區 | 任何位置 | CPU和JTAG調試接口對該區域有全部的訪問權限。 |
表1芯片安全級別 以中科本原FDM320R0049芯片為例,該芯片中可配置為安全區域的資源包括Flash和LS0-LS7 RAM。用戶可在Flash的USER OTP中將上述資源(包括Flash中的32各扇區和LS0-LS7 RAM共40個存儲區域)配置為區域一或區域二的安全資源。用戶可選擇將配置為安全資源的存儲區域的訪問權限設置為“僅執行”,此狀態將禁用對該存儲區域的讀寫訪問,僅允許執行CPU的取指訪問。同時USER OTP中還可配置密碼鎖,CRC鎖和JTAG鎖,用以實現對各區域128位密碼的保護,對安全區域資源CRC功能執行的禁用和對整個芯片JTAG功能的禁用。
圖1 DCSM與核和外設交互
用戶通過總線向DCSM輸入128位密鑰,該密鑰與其中存放的128位密碼比較,產生解鎖結果。該結果結合Flash各扇區和RAM各塊的從屬配置信息產生各存儲區域最終的從屬狀態、僅執行保護狀態和不可訪問狀態,同時不可訪問的狀態信息將發送給Flash和RAM。
CPU向DCSM發送讀寫訪問地址,經過地址判斷,結合區域配置信息產生該訪問地址從屬于區域一或區域二或非安全區的結果。該結果結合區域解鎖狀態產生訪問是否可以執行的判斷。最終DCSM將訪問使能結果返回CPU。CLA的訪問使能同CPU一樣,就不再贅述。
雙區域代碼安全架構提供的安全級別能夠實現對訪問權限的分級管理,提高了芯片的數據安全性和可用性,通過合理配置和使用DCSM,開發者可以有效保護其知識產權,防止未授權的代碼訪問和篡改。如圖2,在工業控制領域,DCSM可以用于保護自動化控制系統中的專有算法和關鍵操作程序:通過將控制邏輯劃分為兩個獨立的安全區域,可以將安全關鍵的控制代碼和非安全關鍵的維護代碼分別存儲在不同的安全區域中,并使用兩套獨立的密碼進行保護,確保只有授權的工程師能夠訪問和修改控制邏輯。這樣可以有效防止未授權的訪問和潛在的工業間諜活動,同時也便于軟件的維護和升級。
圖2 DCSM對資源分區域管理示例
-
mcu
+關注
關注
146文章
17397瀏覽量
353237 -
代碼
+關注
關注
30文章
4846瀏覽量
69306 -
架構
+關注
關注
1文章
521瀏覽量
25597
原文標題:代碼分區的藝術:雙區域架構如何兼顧安全與性能?
文章出處:【微信號:中科本原,微信公眾號:中科本原】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
DLP6500FYE偶爾部分區域不顯示圖形是怎么回事?
測量ADS1292RECG-FE的阻抗的過程中, 發現有部分區域是非線性的,為什么?
測試功放性能時輸入是需要選擇平衡輸入還是非平衡輸入?
【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+全文學習心得
使用FAL分區管理與easyflash變量管理

RK3568修改eMMC分區大小

如何采用分區架構提升車輛的簡易性
分區架構:車輛設計的五大革命
汽車區域控制器架構趨勢下,這三類的典型電路設計正在改變

評論