閃存存儲(chǔ)構(gòu)建安全汽車(chē)系統(tǒng)
對(duì)電子嵌入式系統(tǒng)的安全和安全保障需求從未有今天這樣強(qiáng)烈。隨著汽車(chē)的自動(dòng)化程度不斷提高,我們需要提高其安全保障水平,防止它們被黑客攻破。對(duì)于采用大量機(jī)器人與物聯(lián)網(wǎng)(IoT)設(shè)備,需要處理敏感數(shù)據(jù)的工廠來(lái)說(shuō),同樣如此。
對(duì)所有此類(lèi)嵌入式系統(tǒng)來(lái)說(shuō),非易失性閃存存儲(chǔ)器必不可少。閃存可用作代碼存儲(chǔ)、文件系統(tǒng)存儲(chǔ)或直接運(yùn)行代碼的微控制器單元(MCU)存儲(chǔ)器。如果要實(shí)現(xiàn)系統(tǒng)安全性,必須首先確保系統(tǒng)使用的閃存存儲(chǔ)器是安全的。本文探討閃存存儲(chǔ)器的安全需求,幫助開(kāi)發(fā)人員為汽車(chē)、工業(yè)和通信應(yīng)用構(gòu)建安全有保障的嵌入式系統(tǒng)。
閃存存儲(chǔ)器的使用方式
如果我們仔細(xì)觀察現(xiàn)代汽車(chē)的電子系統(tǒng),我們會(huì)發(fā)現(xiàn)閃存在整車(chē)上都得到廣泛使用。隨著系統(tǒng)的復(fù)雜性增加,我們需要更大容量的代碼存儲(chǔ)和數(shù)據(jù)存儲(chǔ)。車(chē)內(nèi)的所有子系統(tǒng),包括高級(jí)駕駛輔助系統(tǒng)(ADAS)、儀表系統(tǒng)(即將與信息娛樂(lè)合并)、傳動(dòng)和車(chē)身系統(tǒng),都需要嵌入式系統(tǒng)才能實(shí)時(shí)運(yùn)行。
所有這些嵌入式系統(tǒng)都需要某種類(lèi)型的閃存存儲(chǔ)器,用作代碼存儲(chǔ)和數(shù)據(jù)存儲(chǔ)。例如,圖1所示的是一個(gè)使用多個(gè)NOR閃存器件的ADAS子系統(tǒng)。
圖1.該ADAS子系統(tǒng)使用多個(gè)NOR閃存
在當(dāng)今的ADAS應(yīng)用中,復(fù)雜的算法和人工智能流程依賴(lài)在閃存存儲(chǔ)器中存儲(chǔ)的代碼和數(shù)據(jù)來(lái)運(yùn)行。存儲(chǔ)必須提供故障安全和安全保障,因?yàn)橄到y(tǒng)故障或惡意攻擊可能導(dǎo)致嚴(yán)重的人身傷害乃至身故。
在工業(yè)和網(wǎng)絡(luò)應(yīng)用中,也存在對(duì)存儲(chǔ)解決方案的類(lèi)似安全與安全保障需求。在互聯(lián)互通程度不斷提高的大背景下,黑客能突破任何與互聯(lián)網(wǎng)相連的薄弱實(shí)體,竊取敏感信息,或者將被攻破的設(shè)備當(dāng)作跳板,在整個(gè)網(wǎng)絡(luò)中的其他地方發(fā)起攻擊。因此,構(gòu)建有安全保障的系統(tǒng),避免發(fā)生這種類(lèi)型的攻擊,變得至關(guān)重要。
有安全保障的閃存存儲(chǔ)
多年來(lái),閃存存儲(chǔ)器廠商一直提供純粹的數(shù)據(jù)存儲(chǔ)。對(duì)于這些應(yīng)用,耐久度和保持能力是衡量閃存存儲(chǔ)器質(zhì)量的兩大指標(biāo)。安全保障并非是對(duì)這類(lèi)型閃存器件的要求,這就意味著存儲(chǔ)在閃存上的數(shù)據(jù)要么完全不受保護(hù),要么使用未經(jīng)認(rèn)證的命令進(jìn)行保護(hù)。
例如,一些閃存器件通過(guò)正常命令集提供基本的保護(hù)功能,例如針對(duì)編程或擦除操作對(duì)扇區(qū)提供非易失性或易失性保護(hù)、針對(duì)編程或讀取操作的密碼保護(hù)等。這些功能雖是好功能,但不足以抵御手段高明的攻擊。如果黑客能夠訪問(wèn)閃存器件的總線(xiàn)接口,他們就能輕易地提取或修改設(shè)備上的數(shù)據(jù)。
為了保障安全,閃存器件必須保護(hù)存儲(chǔ)的代碼和數(shù)據(jù)免受多種手段的攻擊。下面總結(jié)了閃存存儲(chǔ)設(shè)備需要加以防范的幾種攻擊。
中間人(MIM)攻擊
MIM攻擊中的黑客常模仿通信信道的發(fā)送方,發(fā)送命令或消息給另一側(cè),以竊取或修改數(shù)據(jù)(圖2)。因此,有必要認(rèn)證主機(jī)和閃存設(shè)備間的每一條消息。認(rèn)證可通過(guò)在主機(jī)和閃存上使用公共密鑰,生成伴隨實(shí)際消息的消息認(rèn)證碼(MAC)來(lái)實(shí)現(xiàn)。接收方可以在對(duì)消息采取行動(dòng)之前先驗(yàn)證MAC。
圖2.中間人攻擊常模仿通信的信道發(fā)送方發(fā)送命令或消息,最終目的是竊取或修改數(shù)據(jù)
為了防止在密鑰受損時(shí)系統(tǒng)被永久破壞,通常需要使用臨時(shí)密鑰。臨時(shí)密鑰會(huì)在一定時(shí)間或在一定次數(shù)后失效。這樣做的目的是盡可能避免密鑰被破壞性物理分析(DPA)或其它迭代攻擊等方法進(jìn)行解密。