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