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

宇樹科技在物聯(lián)網(wǎng)方面
物聯(lián)網(wǎng)就業(yè)有哪些高薪崗位?
采用MCU LaunchPad?硬件的CC3235MODSF Simplelink? Wi-Fi?和物聯(lián)網(wǎng)解決方案

socket 在物聯(lián)網(wǎng)中的應(yīng)用
物聯(lián)網(wǎng)學(xué)習(xí)路線來啦!
MCU在物聯(lián)網(wǎng)中的應(yīng)用前景
中移芯昇發(fā)布智能可信城市蜂窩物聯(lián)網(wǎng)基礎(chǔ)設(shè)施研究成果

評論