存儲(chǔ)器數(shù)據(jù)的穩(wěn)定可靠是MCU安全運(yùn)行的基礎(chǔ),但環(huán)境因素和存儲(chǔ)器本身的物理特性都可能造成存儲(chǔ)器數(shù)據(jù)異常,本文將詳細(xì)介紹RAM&ROM常用安全機(jī)制。
存儲(chǔ)器(ROM,RAM)數(shù)據(jù)的安全可靠是MCU穩(wěn)定運(yùn)行的基礎(chǔ),在汽車功能安全設(shè)計(jì)中,存儲(chǔ)器相關(guān)的安全機(jī)制也是系統(tǒng)基本保障的重點(diǎn)之一。通常,不同的汽車芯片都有自己的存儲(chǔ)器校驗(yàn)機(jī)制以及相應(yīng)的處理手段來(lái)保證功能的正常運(yùn)行。下面會(huì)對(duì)常見的處理機(jī)制進(jìn)行一些介紹。
RAM的校驗(yàn)糾錯(cuò)機(jī)制
RAM的校驗(yàn)機(jī)制相對(duì)ROM的校驗(yàn)機(jī)制較少,校驗(yàn)機(jī)制基本都屬于MCU本身的特性,通過(guò)內(nèi)部硬件實(shí)現(xiàn),對(duì)于用戶來(lái)說(shuō)是透明的。而一般用戶使用時(shí)也不會(huì)主動(dòng)的對(duì)RAM進(jìn)行校驗(yàn)。1. Parity BitParity Bit(奇偶校驗(yàn)位)是一種數(shù)據(jù)校驗(yàn)機(jī)制,常用與判斷數(shù)據(jù)在存儲(chǔ)過(guò)程中是否發(fā)生了比特位錯(cuò)誤。
圖1 奇偶校驗(yàn)?zāi)J娇梢钥吹綀D1,帶有Parity Bit的內(nèi)存在每一個(gè)字節(jié)(B7~B0)外又額外增加了一個(gè)校驗(yàn)位(C)用于對(duì)錯(cuò)誤進(jìn)行校驗(yàn)。Parity Bit有著計(jì)算簡(jiǎn)單的優(yōu)點(diǎn),只需要對(duì)前面字節(jié)的位進(jìn)行異或操作:
C = B7^ B6^ B5^ B4^ B3^ B2^ B1^ B0Parity Bit在ECC技術(shù)之前,是RAM中應(yīng)用最多的錯(cuò)誤檢查技術(shù),當(dāng)然,現(xiàn)在只有在已經(jīng)很少有CPU用到,因?yàn)槊? Byte的數(shù)據(jù)都需要1 bit的校驗(yàn)位,對(duì)于MCU本就很緊張的RAM顯然不合適。另外Parity Bit只具備檢錯(cuò)能力,并不具備糾錯(cuò)能力。2. ECC通過(guò)上面對(duì)Parity Bit的分析可以知道,通過(guò)在原來(lái)的數(shù)據(jù)1 byte基礎(chǔ)上增加1 bit,可以用來(lái)檢查當(dāng)前1 byte數(shù)據(jù)的正確性。如果數(shù)據(jù)為256 byte就需要256 bit的校驗(yàn)位,而且出錯(cuò)的數(shù)據(jù)無(wú)法糾正。由于上述的缺點(diǎn),出現(xiàn)了一種新的存儲(chǔ)檢錯(cuò)糾錯(cuò)機(jī)制 – ECC。
圖2 檢錯(cuò)能力對(duì)比ECC(Error-Correcting Code),可以譯為檢錯(cuò)糾錯(cuò)碼。ECC的計(jì)算過(guò)程比Parity Bit的計(jì)算過(guò)程復(fù)雜一點(diǎn),這里不進(jìn)行過(guò)多描述。僅針對(duì)ECC的兩個(gè)主要特點(diǎn)進(jìn)行說(shuō)明:① ECC有極強(qiáng)的檢錯(cuò)能力ECC的計(jì)算方式與Parity Bit不同,當(dāng)數(shù)據(jù)為1 Byte時(shí),ECC需要5 bit校驗(yàn)位對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),之后數(shù)據(jù)每增加1倍,相應(yīng)的只需要增加1 bit的ECC 校驗(yàn)位??梢钥吹綀D2,ECC的檢錯(cuò)能力相比Parity Bit有極大的提升。② ECC具有糾錯(cuò)能力當(dāng)數(shù)據(jù)只有單bit 錯(cuò)誤時(shí),ECC能夠?qū)﹀e(cuò)誤進(jìn)行修復(fù),但需要注意的是,當(dāng)數(shù)據(jù)中有超過(guò) 2 bit的錯(cuò)誤同時(shí)產(chǎn)生時(shí),ECC不一定能檢測(cè)出來(lái),這一點(diǎn)Parity Bit也是一樣。
ROM的檢驗(yàn)糾錯(cuò)機(jī)制
與復(fù)雜的RAM空間相比,ROM空間的操作顯然簡(jiǎn)單的多,因此,對(duì)于ROM的校驗(yàn)使用者可以根據(jù)不同的需求,選擇不同的方式。
常用的有hash,CRC,對(duì)于大容量ROM,比如Nand Flash同樣也可以使用ECC的方式?;旧希恍枰獫M足ROM內(nèi)容和生成的校驗(yàn)碼存在相對(duì)唯一的映射關(guān)系即可。
但是用戶自己實(shí)現(xiàn)的ROM校驗(yàn)機(jī)制存在不少缺點(diǎn):校驗(yàn)失敗沒(méi)有靈活的處理措施,對(duì)ROM的校驗(yàn)需要消耗額外MCU資源等。1. HSE隨著汽車產(chǎn)業(yè)的不斷升級(jí),汽車智能化程度也在不斷加深,越來(lái)越多的汽車會(huì)通過(guò)OTA的方式實(shí)現(xiàn)客戶的個(gè)性化需求。但OTA在增加汽車升級(jí)和維護(hù)便利性的同時(shí),也給數(shù)據(jù)的安全可靠性帶來(lái)了新的考驗(yàn)。顯然,應(yīng)用開發(fā)者自己實(shí)現(xiàn)的ROM校驗(yàn)并不足以滿足汽車應(yīng)用的安全需求,汽車應(yīng)用上,保證MCU程序的正確運(yùn)行顯然需要一套更靈活,更完善的校驗(yàn)機(jī)制,并且該校驗(yàn)機(jī)制不僅需要保證數(shù)據(jù)的可靠性,還要保證檢驗(yàn)機(jī)制本身的可靠性。下面會(huì)介紹NXP S32系列芯片是如何利用其HSE安全子系統(tǒng)來(lái)為ROM數(shù)據(jù)的可靠性提供支持,進(jìn)而保證汽車應(yīng)用的安全穩(wěn)定運(yùn)行的。
圖3 HSE框架HSE(Hardware Security Engine)全稱為硬件安全引擎,用于給對(duì)數(shù)據(jù)的可靠性和保密性有嚴(yán)格要求的應(yīng)用提供相應(yīng)的安全服務(wù)。其有以下特點(diǎn):
獨(dú)立的內(nèi)核,固件,存儲(chǔ)空間;
可以為加密算法提供安全硬件加速;
支持固件升級(jí)。
可以看到圖3中,HSE模塊最基礎(chǔ)也最主要的部分是它的Crypto Engine(加密引擎),其可以通過(guò)硬件實(shí)現(xiàn)加解密/MAC生成校驗(yàn)/簽名驗(yàn)簽等功能。因?yàn)镠SE全面完善的算法和密鑰管理機(jī)制,可以利用HSE模塊可以對(duì)用戶設(shè)定的存儲(chǔ)區(qū)域進(jìn)行校驗(yàn),并根據(jù)檢驗(yàn)結(jié)果執(zhí)行不同的操作,正是HSE安全可靠,設(shè)置靈活的特性,構(gòu)成了MCU安全穩(wěn)定運(yùn)行的基礎(chǔ)。當(dāng)然HSE除了能夠?yàn)镸CU的OTA和安全啟動(dòng)功能提供可靠保證外,HSE通過(guò)硬件加速特性和完善的加解密算法庫(kù)還能夠?qū)?a target="_blank">網(wǎng)絡(luò)協(xié)議進(jìn)行全面可靠的支持,可以實(shí)現(xiàn)TLS offload,IP offload,減少網(wǎng)絡(luò)協(xié)議的通信時(shí)延。
結(jié)語(yǔ)
上面提到了一些存儲(chǔ)器常見的校驗(yàn)方式和NXP S32系列的HSE安全子系統(tǒng),當(dāng)然無(wú)論通過(guò)哪種方式,為了實(shí)現(xiàn)OTA和越來(lái)越多的網(wǎng)絡(luò)應(yīng)用功能,通過(guò)MCU實(shí)現(xiàn)更加安全可靠的數(shù)據(jù)存儲(chǔ)傳輸都是現(xiàn)在的趨勢(shì)。
-
mcu
+關(guān)注
關(guān)注
146文章
17149瀏覽量
351224 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7492瀏覽量
163853 -
RAM
+關(guān)注
關(guān)注
8文章
1368瀏覽量
114705 -
數(shù)據(jù)存儲(chǔ)
+關(guān)注
關(guān)注
5文章
971瀏覽量
50911
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論