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

MCU怎么滿足物聯(lián)網(wǎng)的需求
物聯(lián)網(wǎng)助力MCU應(yīng)用新生態(tài)
物聯(lián)網(wǎng)安全技術(shù)提高區(qū)塊鏈應(yīng)用數(shù)據(jù)的可信度
適用于物聯(lián)網(wǎng)產(chǎn)品應(yīng)用的組合模塊分享

物聯(lián)網(wǎng)有什么重要的安全問(wèn)題
適用于智能辦公室和建筑的終極物聯(lián)網(wǎng)傳感器盒

面向物聯(lián)網(wǎng)應(yīng)用的可信MCU

NB-IoT 和 LTE-M 如何適用于物聯(lián)網(wǎng)生態(tài)系統(tǒng):蜂窩物聯(lián)網(wǎng)的特性

適用于物聯(lián)網(wǎng)的太陽(yáng)能充電電路設(shè)計(jì)方案

兆易創(chuàng)新GD32 MCU選型手冊(cè),適用于GD32全系列MCU
2.4 GHz 低功耗、扁平前端模塊,帶端口,適用于藍(lán)牙?物聯(lián)網(wǎng)應(yīng)用 skyworksinc

評(píng)論