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