特別是在醫(yī)療和軍事應用中,數(shù)據(jù)安全性和設(shè)備的持續(xù)安全運行至關(guān)重要。 MCU制造商具有內(nèi)置的眾多功能,如果使用得當,通??梢詸z測并響應設(shè)備故障,以及存在未經(jīng)授權(quán)的代碼。本文將研究領(lǐng)先的半導體供應商使用的一些硬件安全功能及其檢測和響應異常的策略。
什么是安全性?
安全系統(tǒng)基本上是一個無法被未授權(quán)方復制,損壞或接管的系統(tǒng)。雖然這通常被認為是防火墻或軟件問題,但MCU制造商正在越來越多的內(nèi)置硬件安全措施,可以幫助您防止,檢測或最壞的情況從嵌入式系統(tǒng)的攻擊中恢復。在嵌入式設(shè)計中需要考慮安全性的三個方面:
機密性適用于您無法承受的密碼或加密密鑰等信息。硬件加密模塊可以極大地提高數(shù)據(jù)機密性。
完整性對于正在處理的數(shù)據(jù)以及MCU的不同組件,特別是閃存以及根表和結(jié)構(gòu)至關(guān)重要。 MCU具有各種啟動例程,旨在檢查片上存儲器和外設(shè)的完整性。
真實性。如果你不能確定數(shù)據(jù)的完整性,至少要確保它是真實的,也就是說,攻擊者沒有改變它。
安全啟動
幾乎所有的MCU都至少檢查過首次初始化或從低壓狀態(tài)恢復時的操作完整性。這些檢查在上電復位(POR)或掉電復位(BOR)期間發(fā)生,但在正常操作期間也可能由于訪問沖突而觸發(fā)復位。某些MCU在啟動時可能會進行進一步的系統(tǒng)檢查。
德州儀器(TI)的MSP430 MCU是首批采用超低功率外殼的產(chǎn)品之一。 MSP430G2230IDR不是專為大量網(wǎng)絡(luò)應用而設(shè)計的,它包含專用的安全功能。 MSP430的閃存控制器報告訪問沖突,以響應任何錯誤的寫入閃存的嘗試。此外,任何對高字節(jié)中除0A5h以外的任何值的FCTLx寄存器的寫操作都會被報告為安全密鑰違規(guī)。看門狗定時器也是如此。當MSP430首次上電或VCC在掉電事件后重新上電時,會產(chǎn)生上電復位(POR)信號,從而產(chǎn)生上電清零(PUC)信號。如果PUC來自POR,則芯片開始正常初始化,激活CPU和外設(shè)。但是,如果看門狗定時器或閃存控制器生成PUC信號,報告安全密鑰違規(guī)(圖1),則設(shè)備將保持在復位狀態(tài),直到問題得到解決。
圖1:MSP430中斷優(yōu)先級(由德州儀器公司提供)。
內(nèi)存保護
檢測篡改看門狗定時器或閃存內(nèi)容的企圖是防止嵌入式系統(tǒng)接管或至少防止數(shù)據(jù)損壞的關(guān)鍵。但是,也可以簡單地防止攻擊者首先訪問您的啟動代碼。 MSP430包含一個安全保險絲,可保護編程到閃存中的代碼。
如果第三方無法讀取或?qū)懭隡CU上的嵌入式閃存,則可以有效防止它們篡改設(shè)備。瑞薩RX631提供多種保護設(shè)置,以防止第三方訪問片上閃存(圖2)。它們提供三種類型的保護:
ID代碼保護 - 在啟動模式下啟動MCU并與PC等主機設(shè)備建立串行通信接口(SCI)連接后,執(zhí)行身份驗證阻止第三方連接和編程,讀取或擦除片上閃存。
片上調(diào)試器ID代碼保護 - 在單片機模式或用戶啟動模式下啟動MCU后并且與片上調(diào)試器建立連接,執(zhí)行ID認證以防止第三方連接和編程,讀取或擦除片上閃存。
ROM代碼保護 - 當使用PROM編寫器,第三方無法編程,讀取或擦除片上閃存。
通過分配控制代碼,ID代碼或ROM來啟用各種保護功能碼??刂拼a和ID代碼分配給0xFFFFFFA0,ROM代碼分配給0xFFFFFF9C。嘗試連接時執(zhí)行身份驗證;如果驗證失敗,則不允許連接,從而阻止讀取,編程或擦除片上閃存。
圖2:RX631保護設(shè)置選擇表(由Renesas提供)。
嵌入式開發(fā)人員需要開發(fā)一種策略來檢測嘗試寫入未分配內(nèi)存部分的代碼。一種方法涉及用未定義的指令填充空白存儲器。當非法代碼嘗試訪問此內(nèi)存時,它將生成未定義的指令中斷,提醒CPU采取糾正措施。
Microchip的PIC24H MCU為程序閃存提供引導和程序安全性(CodeGuard)。 PIC24H MCU支持數(shù)據(jù)RAM保護功能,可在與引導和安全代碼段安全性結(jié)合使用時保護RAM段。與軟件加密庫配合使用時,CodeGuard Security使多方能夠在單個芯片上安全地共享資源(內(nèi)存,中斷和外設(shè))。
啟用后,BSRAM(引導段的安全RAM)只能從引導段閃存代碼訪問,而SSRAM(RAM的安全RAM段)只能從安全段閃存代碼訪問。任何嘗試更改受保護段中受限制的位置都會導致安全性重置。
Well ARMed
大部分MCU基于ARM內(nèi)核,提供各種硬件安全功能,芯片供應商可以構(gòu)建這些功能。
較大的MCU可能使用ARM?Cortex?-A系列處理器,其中包括TrustZone安全擴展。 TrustZone硬件架構(gòu)(圖3)對硬件和軟件資源進行分區(qū),使它們存在于兩個域中:所謂的敏感資源安全世界和所有其他領(lǐng)域的普通世界。這兩個世界通過支持TrustZone的AMBA3-AXI總線結(jié)構(gòu)進行通信,該結(jié)構(gòu)在兩個域之間創(chuàng)建了一個強大的邊界邊界,確保Normal World組件無法訪問Secure World資源。
圖3:ARM TrustZone硬件架構(gòu)(由ARM提供)。
TrustZone架構(gòu)允許單個核心通過稱為監(jiān)控模式的上下文切換運行兩個虛擬處理器(每個域一個),嚴格控制對其的訪問以確保兩個域的安全性。您可以在Secure World中運行單獨的安全操作系統(tǒng),也可以在其中放置同步代碼庫。還可以實現(xiàn)一個安全的內(nèi)核,該內(nèi)核可以運行多個同步的Secure World應用程序,與普通世界中發(fā)生的情況無關(guān)。
536 MHz Atmel SAMA5D3 MCU基于Cortex-A5,集成了128 KB RAM,128 KB閃存和高數(shù)據(jù)帶寬架構(gòu)。憑借其安全啟動機制,用于加密的硬件加速引擎(AES,TDES)和散列函數(shù)(SHA),SAMA5D3可確保反克隆,代碼保護和安全的外部數(shù)據(jù)傳輸。
能夠?qū)蓚€操作系統(tǒng)進行分區(qū)可以提供出色的安全性,但是這條路線會帶來成本,復雜性和代碼大小等問題。 MCU更常用于Cortex-M系列處理器,這些處理器針對低成本,低功耗,混合信號嵌入式應用進行了優(yōu)化,如智能計量,汽車和工業(yè)控制系統(tǒng),便攜式消費產(chǎn)品和醫(yī)療設(shè)備。 Cortex-M4,Cortex-M3和Cortex-M0 + MCU包括一個可選的內(nèi)存保護單元(MPU),可提供細粒度內(nèi)存控制,使應用程序能夠?qū)崿F(xiàn)安全權(quán)限級別,并在任務(wù)中分離代碼,數(shù)據(jù)和堆棧 - 任務(wù)基礎(chǔ)。 ARM許可證持有者通常會實施其他安全功能
Cortex-M4處理器(圖4)是M系列中最大的處理器。為了安全起見,它們提供可選的8區(qū)MPU。如果在沒有所需權(quán)限的情況下訪問內(nèi)存區(qū)域,則會引發(fā)權(quán)限錯誤,觸發(fā)不可屏蔽中斷(NMI),啟動RTOS或應用程序代碼的保護操作。 MPU特別適用于必須保護某些關(guān)鍵或認證代碼免受其他任務(wù)不當行為的應用程序。
圖4:ARM Cortex-M4框圖(由ARM提供)。
除了MPU之外,STMicroelectronics的基于Cortex-M4的STM32F2 MCU還具有CRC計算單元,可驗證數(shù)據(jù)傳輸或存儲完整性。 CRC計算單元幫助在運行時期間計算軟件簽名,以與在鏈接時生成并存儲在給定存儲器位置的參考簽名進行比較。
Cortex-M3處理器基本上是沒有DSP指令的Cortex-M4和一個(可選)浮點單元。德州儀器(TI)的Stellaris M3系列包括Cortex-M3 MPU以及只能在特權(quán)模式下訪問的系統(tǒng)控制模塊(SCB)寄存器。此外,閃存控制器(FMC)允許您以2 KB的塊為基礎(chǔ)應用閃存保護。
Silicon Labs基于Cortex-M3的SiM3C167 Precision32 MCU具有寄存器鎖定和鎖定機制,可防止任何從固件中不期望地訪問外圍設(shè)備(圖5)。必須寫入一個密鑰序列,以便KEY寄存器修改PERIPHLOCKx中的任何位。隨后對KEY的任何寫入將禁止PERIPHLOCKx的任何訪問,直到通過KEY再次解鎖為止。如果外設(shè)寄存器被鎖定,則所有寫操作都將被忽略。無論外設(shè)的鎖定狀態(tài)如何,都可以始終讀取寄存器。產(chǎn)品培訓模塊“Precision32 ARM Cortex-M3 MCU簡介”提供了對產(chǎn)品的更多信息。
圖5:Precision32外設(shè)鎖定方案(由Silicon Labs提供)。
低功耗Cortex M0 +處理器還包括可選的8區(qū)MPU,可用于更大的同類產(chǎn)品。飛思卡爾基于Cortex-M0 +的Kinetis KL02增加了安全電路,以防止未經(jīng)授權(quán)訪問RAM和Flash內(nèi)容。當Flash安全性處于活動狀態(tài)時,SWD端口無法訪問MCU的內(nèi)存資源。
恩智浦LPC4350在單芯片上集成了Cortex-M4處理器和Cortex-M0協(xié)處理器。雖然微小的Cortex-M0缺乏安全功能,但較大的內(nèi)核占用了空間。除了MPU之外,LPC4350還提供硬件來保護存儲的數(shù)據(jù)內(nèi)容,并加速數(shù)據(jù)解密,數(shù)據(jù)完整性和原始證據(jù)的處理。其AES引擎支持128位ECB/CBC解碼和CMAC哈希計算。
-
處理器
+關(guān)注
關(guān)注
68文章
19885瀏覽量
235084 -
mcu
+關(guān)注
關(guān)注
146文章
17970瀏覽量
366580 -
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124425
發(fā)布評論請先 登錄
如何使用TI新的SimpleLink MCU平臺創(chuàng)建強大的樓宇安全系統(tǒng)
安全系統(tǒng)功能設(shè)計怎么實現(xiàn)?
安全系統(tǒng)需要保護什么?
求大壩安全系統(tǒng)監(jiān)測的labview程序
用于低端/電力無線家庭安全系統(tǒng)的系統(tǒng)解決方案
TPM是否可以作為嵌入式信息安全系統(tǒng)的主控?
汽車安全系統(tǒng)分析
什么是機械安全系統(tǒng)?機械安全系統(tǒng)需要什么?
Lifi安全系統(tǒng)開源設(shè)計

基于遠程家庭安全系統(tǒng)的設(shè)計

評論