開發一個安全的、可以高效運行的連接設備需要開發人員選擇一個包含特定硬件和軟件功能的微控制器,這些功能的范圍可以從真正的隨機數生成器到安全庫。讓我們來看看嵌入式開發人員應該考慮在其安全微控制器中使用的硬件和軟件的幾個技巧。
技巧1 – 包括一個真隨機數生成器 (TRNG)
許多加密和通信過程要求開發人員包含一個隨機數作為加密的初始向量。過去,開發人員依靠偽隨機數和其他技術來生成這些值。擁有 TRNG 有助于開發人員消除生成隨機數的復雜方法,并利用快速、高效且可以提供真正隨機數的硬件。
技巧2 – 使用加密加速器(AES、SHA 等)
在資源受限的設備上運行加密軟件庫可能是極其密集的處理。尋找包含硬件加密加速器的微控制器有幾個優點,例如加速加密和解密以及減少代碼空間。如果你要為實時微控制器增加安全性,加密加速器是必須的。
技巧3 – 考慮用于Cortex-M的Arm TrustZone
Arm TrustZone是Cortex-M23和Cortex-M33處理器中包含的一項新硬件功能(實時處理器的新功能)。TrustZone 幫助嵌入式開發人員將他們的軟件分為安全和非安全世界,TrustZone 可用于創建信任根、安全更新、安全啟動以及許多其他用例,TrustZone 本質上為安全處理創建了內部防火墻。
技巧4 – 利用安全的內部存儲
安全的微控制器需要包括安全的內部存儲,內部存儲用于存儲公鑰和私鑰,并確保不應該使用它們的應用程序組件無法訪問關鍵任務數據。
技巧5 – 不要跳過內存保護單元 (MPU)
內存保護單元可用于隔離線程并使它們在自己的內存空間中運行,如果一個線程試圖訪問它自己空間之外的內存位置,或者另一個線程試圖訪問它的空間,則會拋出異常,擁有 MCU 來保護內存可以確保惡意代碼無法訪問系統。
技巧6 – 檢查MCU是否已準備好安全元件
安全元素對于有興趣創建安全設備的嵌入式開發人員非常有用。確保安全元件已集成到處理器中,或者可以輕松地將安全元件添加到系統中。
技巧7 – 查看可用的安全庫
到目前為止,我們已經了解了我們希望在微控制器中包含的幾個不同的硬件功能。我們還需要確保使用精美的安全微控制器,有軟件可以運行所有安全功能,這意味著對于選定的安全處理器,請確保有安全啟動庫、安全固件更新庫和其他可用的加密庫。
結論
包括所有這些不同的硬件組件并不一定能保證你將擁有一個安全的系統,但是,它們確實確保嵌入式開發人員可以使用正確的工具以高效和有效的方式正確保護微控制器。