隨著物聯網技術通過聯網智能設備實現的更高智能,使我們的生活更加舒適,保護這些設備存儲和傳輸的信息變得越來越重要。嵌入式MCU是基于物聯網的產品的核心,選擇合適的MCU是滿足客戶當前和未來需求的關鍵。
專為物聯網應用設計的MCU需要具有足夠的處理能力、基于硬件的安全性和軟件算法,以提供安全可靠的解決方案。安全MCU應提供多級安全元素,以支持各種安全算法,如高級加密標準(AES)、數據加密標準(DES)和安全哈希算法(SHA)。MCU需要提供完整的安全鏈、安全啟動過程、基于硬件的信任根、硬件中的真隨機數生成功能以及用戶應用程序代碼身份驗證等功能。開發人員還需要考慮,在硬件中實現安全功能時,與等效固件實現相比,所需的時間和精力更少。本文重點介紹MCU所需的關鍵安全功能,以便為開發人員設計安全的物聯網系統奠定堅實的基礎。
安全啟動
安全啟動過程是安全嵌入式MCU支持的最關鍵元素。這是一個引導過程,可確保僅在設備上執行經過身份驗證的代碼。安全啟動有助于防止在系統啟動過程中將惡意和未經授權的代碼加載到設備中。使用閃存存儲固件的嵌入式MCU可以利用安全啟動過程來確保未經授權的用戶無法修改固件代碼。安全啟動通過向啟動過程添加加密檢查來保護系統,并且可以通過多種方式實現,包括數字簽名、受信任的閃存加載程序、啟動文件加密等。應用程序固件身份驗證是安全啟動的重要組成部分。
安全啟動采用信任鏈方法。它以設備信任的安全根開始,例如ROM或閃存中的不可修改代碼。然后,此代碼對另一段代碼進行身份驗證。新驗證的代碼對任何后續代碼進行身份驗證,依此類推,從而創建信任鏈。它的工作原理很簡單:你信任 A,A 信任 B,所以你信任 B。
[圖2 |安全實施鏈]
為了說明如何構建信任鏈概念,請考慮以下序列(參見圖 2),該序列用于使用 PSoC 6 BLE 實現信任鏈,PSoC 6 BLE 是賽普拉斯為物聯網應用設計的嵌入式 MCU:
信任代碼的根在ROM代碼中,因此無法修改。根使用 AES-CMAC 消息身份驗證對存儲在監督閃存 (SFlash) 中的閃存啟動代碼進行身份驗證。
成功通過身份驗證后,控制權將傳遞給閃存引導代碼。現在,閃存啟動是安全啟動過程中信任鏈的一部分。
Flash 啟動代碼使用數字簽名驗證存儲在主閃存中的用戶應用程序。
成功驗證數字簽名后,控制權將轉移到應用程序。
安全啟動使用 ROM 例程對閃存中的用戶數據進行身份驗證。安全啟動是一個涉及加密的過程,它允許 IoT 設備開始執行經過身份驗證并因此受信任的軟件。這可確保系統從已知的受信任狀態打開電源。安全啟動流需要分兩個步驟。第一步,ROM 引導通過比較存儲在電子保險絲中的加密代碼來計算加密值,從而對閃存引導進行身份驗證。在第二步中,閃存啟動使用存儲在 SFLASH 中的公鑰驗證應用程序的數字簽名。
基于硬件的安全性
對于許多物聯網應用,安全性只是必須與能源效率、可靠性和低成本相平衡的一個考慮因素。在許多情況下,基于硬件的方法提供了最有效、最可靠和最具成本效益的方式來確保安全性。硬件比使用主處理器的等效軟件方法消耗更少的功率。基于軟件的安全性的另一個問題是,如果沒有使用集成電路保護系統的基于硬件的安全性,IP可能會被盜。這只是物聯網應用的MCU具有復雜的集成硬件安全功能的原因之一,例如加密模塊、代碼保護IP和其他基于硬件的機制。
基于硬件的安全性還消除了應用軟件補丁來持續保護系統的需要。與固件實現相比,基于硬件的安全性還具有提供更快的性能和更低的功耗的額外好處。例如,圖 3 中顯示的物聯網處理器具有一個加密模塊,可提供加密功能的硬件實現和加速。要傳輸的數據在傳輸之前使用加密算法進行加密。僅允許使用處理器間調用訪問此加密塊,并且不允許在寄存器級別直接訪問以確保安全性。此加密硬件塊執行重要功能,例如:
對稱密鑰加密和解密
沙斯
消息身份驗證代碼 (MAC) 函數
真隨機數和偽隨機數
循環冗余校驗
各種實用程序功能,如啟用/禁用、中斷設置、標志等
[圖3 |具有加密硬件和安全啟動的可編程 SoC 架構]
對稱密鑰加密和解密
創建和管理密鑰是加密過程的重要組成部分。使用對稱密鑰時,同一密鑰用于加密和解密。AES 是對稱密鑰加密方法的一個示例。
AES 功能包括符合 AES 標準的分組密碼和反向分組密碼。分組密碼(AES 指令)將 128 位明文數據塊加密為 128 位密文數據塊。逆分組密碼(AES_INV指令)將 128 位密文數據塊解密為 128 位明文數據塊。
安全哈希算法
哈希是一種算法,它接受任何大小的數據并將其轉換為固定長度的數據。哈希和加密之間的主要區別在于哈希是不可逆的。SHA 是一系列加密哈希函數,用于保護數據安全(參見圖 4)。SHA 由按位運算、模塊化加法和壓縮函數組成。此函數獲取任意長度的消息,并在執行一系列數學定義的操作后將其減少為固定長度的殘差或消息摘要,這保證了消息中的任何更改都將更改哈希值。它用于消息身份驗證,方法是傳輸附加哈希值的消息,并在收件人端使用相同的算法重新計算消息哈希值。如果哈希不同,則消息已損壞。這些算法與數字簽名算法 (DSA) 或數字簽名標準 (DSS) 一起使用。
[圖4 |SHA 示例]
消息身份驗證代碼函數
MAC 方案使用密鑰和消息(參見圖 5)。收件人必須知道密鑰才能計算 MAC 值。這有助于消息的接收者驗證消息的發件人是否具有共享密鑰,并且沒有密鑰的人發送或更改了消息。首先,發送方計算 MAC 值并將其附加到傳輸的消息中。收到消息后,將再次計算 MAC,并根據隨消息傳輸的 MAC 值進行檢查。如果它們不匹配,則接收方知道消息已被更改。哈希算法的一個示例是 SHA,它們可用于生成 MAC 值。甚至諸如AES之類的分組密碼也可用于生成MAC值。MAC方法既保證了數據的完整性,也保證了真實性。
[圖5 |MAC 示例]
真隨機數生成
真隨機數生成 (TRNG) 是一項重要的加密函數。TRNG 塊生成一個統計隨機的數字,并基于一些物理隨機變化,無法通過再次運行進程來復制。將其與偽隨機數生成(PSRNG)進行比較,后者不是真正的隨機,因為它依賴于初始種子值。如果種子可以復制,則生成的序列也可以復制。高度安全的系統將利用真隨機數而不是偽隨機數生成。目前,很少有MCU提供基于硬件的TRNG。在某些應用中,PSRNG 可能是首選,因此同時具有 TRNG 和 PSRNG 的 MCU 提供了最大的靈活性。
外部存儲器安全
為了支持更高的智能和應用,物聯網系統需要越來越多的內存。MCU供應商小心翼翼地提供最佳級別的內部存儲器,因為芯片尺寸會根據存儲器而增加,這也會增加成本。為了滿足不斷增長的內存大小需求,MCU供應商提供了從外部擴展內存的選項。這有助于物聯網設計人員根據應用要求設計他們選擇的內存大小。但是,這帶來了保護存儲在外部存儲器中的敏感代碼和數據并確保只能由經過身份驗證的用戶訪問的挑戰。
為了保護外部數據和代碼,MCU支持具有外部存儲器接口的加密功能。因此,數據可以在存儲在外部存儲設備中之前進行加密。同樣,檢索數據時也會解密數據。圖6顯示了一個安全MCU,其中串行存儲器接口(SMIF)具有內置加密功能,可在數據寫入外部存儲器時保護數據。
[圖6 |MCU架構中的串行存儲器接口(SMIF)模塊]
圖 7 顯示了 SMIF 就地執行 (XIP) 模式。這是加密組件支持對數據寫入進行動態加密和對數據讀取進行動態解密的地方。這可確保在將數據存儲在外部存儲設備之前加密時不會發生敏感數據泄漏。
[圖7 |XIP 模式下的 SMIF 示例]
通信層安全性
低功耗藍牙 (BLE) 是物聯網應用中最受歡迎的無線標準之一。物聯網設計人員必須確保無線鏈路上的數據通信是安全的。最新的BLE協議更新配備了多種安全和隱私功能,以涵蓋加密,信任,數據完整性和用戶數據的隱私。例如,BLE鏈路層提供各種加密算法,如CRC和AES,以實現可靠和安全的數據交換(見圖8)。BLE無線電還必須設計為支持BLE協議提供的這些BLE安全功能。增強的加密和身份驗證將僅允許受信任的用戶跟蹤設備位置并自信地配對設備。
[圖8 |PSoC 6 BLE – BLE子系統框圖]
審核編輯:郭婷
-
mcu
+關注
關注
146文章
17123瀏覽量
350992 -
物聯網
+關注
關注
2909文章
44557瀏覽量
372789
發布評論請先 登錄
相關推薦
評論