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