<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 使用有安全保障的閃存存儲構建安全的汽車(chē)系統

使用有安全保障的閃存存儲構建安全的汽車(chē)系統

作者: 時(shí)間:2019-11-18 來(lái)源:電子產(chǎn)品世界 收藏

在現代汽車(chē)嵌入式系統中,高度安全的數據存儲是必不可少的,尤其是在面對日益高明的網(wǎng)絡(luò )攻擊時(shí)。本文將介紹設計師正確使用閃存的步驟。

本文引用地址:http://dyxdggzs.com/article/201911/407180.htm

對電子嵌入式系統的安全和安全保障需求從未有今天這樣強烈。隨著(zhù)汽車(chē)的自動(dòng)化程度不斷提高,我們需要提高其安全保障水平,防止它們被黑客攻破。對于采用大量機器人與物聯(lián)網(wǎng)(IoT)設備,需要處理敏感數據的工廠(chǎng)來(lái)說(shuō),同樣如此。

對所有此類(lèi)嵌入式系統來(lái)說(shuō),非易失性閃存存儲器必不可少。閃存可用作代碼存儲、文件系統存儲或直接運行代碼的微控制器單元(MCU)存儲器。如果要實(shí)現系統安全性,必須首先確保系統使用的閃存存儲器是安全的。本文探討閃存存儲器的安全需求,幫助開(kāi)發(fā)人員為汽車(chē)、工業(yè)和通信應用構建安全有保障的嵌入式系統。

閃存存儲器的使用方式

如果我們仔細觀(guān)察現代汽車(chē)的電子系統,我們會(huì )發(fā)現閃存在整車(chē)上都得到廣泛使用。隨著(zhù)系統的復雜性增加,我們需要更大容量的代碼存儲和數據存儲。車(chē)內的所有子系統,包括高級駕駛輔助系統(ADAS)、儀表系統(即將與信息娛樂(lè )合并)、傳動(dòng)和車(chē)身系統,都需要嵌入式系統才能實(shí)時(shí)運行。

所有這些嵌入式系統都需要某種類(lèi)型的閃存存儲器,用作代碼存儲和數據存儲。例如,圖1所示的是一個(gè)使用多個(gè)NOR閃存器件的ADAS子系統。

1574055134746537.png

圖1.該ADAS子系統使用多個(gè)NOR閃存

在當今的ADAS應用中,復雜的算法和人工智能流程依賴(lài)在閃存存儲器中存儲的代碼和數據來(lái)運行。存儲必須提供故障安全和安全保障,因為系統故障或惡意攻擊可能導致嚴重的人身傷害乃至身故。

在工業(yè)和網(wǎng)絡(luò )應用中,也存在對存儲解決方案的類(lèi)似安全與安全保障需求。在互聯(lián)互通程度不斷提高的大背景下,黑客能突破任何與互聯(lián)網(wǎng)相連的薄弱實(shí)體,竊取敏感信息,或者將被攻破的設備當作跳板,在整個(gè)網(wǎng)絡(luò )中的其他地方發(fā)起攻擊。因此,構建有安全保障的系統,避免發(fā)生這種類(lèi)型的攻擊,變得至關(guān)重要。

有安全保障的閃存存儲

多年來(lái),閃存存儲器廠(chǎng)商一直提供純粹的數據存儲。對于這些應用,耐久度和保持能力是衡量閃存存儲器質(zhì)量的兩大指標。安全保障并非是對這類(lèi)型閃存器件的要求,這就意味著(zhù)存儲在閃存上的數據要么完全不受保護,要么使用未經(jīng)認證的命令進(jìn)行保護。

例如,一些閃存器件通過(guò)正常命令集提供基本的保護功能,例如針對編程或擦除操作對扇區提供非易失性或易失性保護、針對編程或讀取操作的密碼保護等。這些功能雖是好功能,但不足以抵御手段高明的攻擊。如果黑客能夠訪(fǎng)問(wèn)閃存器件的總線(xiàn)接口,他們就能輕易地提取或修改設備上的數據。

為了保障安全,閃存器件必須保護存儲的代碼和數據免受多種手段的攻擊。下面總結了閃存存儲設備需要加以防范的幾種攻擊。

?   中間人(MIM)攻擊

MIM攻擊中的黑客常模仿通信信道的發(fā)送方,發(fā)送命令或消息給另一側,以竊取或修改數據(圖2)。因此,有必要認證主機和閃存設備間的每一條消息。認證可通過(guò)在主機和閃存上使用公共密鑰,生成伴隨實(shí)際消息的消息認證碼(MAC)來(lái)實(shí)現。接收方可以在對消息采取行動(dòng)之前先驗證MAC。

1574055225983053.png

圖2.中間人攻擊常模仿通信的信道發(fā)送方發(fā)送命令或消息,最終目的是竊取或修改數據

為了防止在密鑰受損時(shí)系統被永久破壞,通常需要使用臨時(shí)密鑰。臨時(shí)密鑰會(huì )在一定時(shí)間或在一定次數后失效。這樣做的目的是盡可能避免密鑰被破壞性物理分析(DPA)或其它迭代攻擊等方法進(jìn)行解密。

另一種中間人攻擊則是在一定時(shí)間以后重放截獲的合法消息。為了防范重放攻擊,主機和閃存設備必須使用累加計數器(值隨每個(gè)消息遞增)生成MAC。由于當前的累加計數器值與上一消息的值不同。重放相同的消息就不能通過(guò)MAC驗證,

?   克隆

一些黑客可以使用先進(jìn)的技術(shù)讀取閃存芯片中的全部?jì)热?,通過(guò)非法克隆牟利。為了防范此類(lèi)攻擊,每個(gè)閃存芯片都必須擁有任何人都不能讀取的唯一設備秘密(UDS)。UDS值具有唯一性,是每個(gè)芯片內的真實(shí)隨機值。一個(gè)芯片和另一個(gè)芯片中的UDS之間毫無(wú)關(guān)聯(lián)。

UDS可用于推導復合設備標識符(CDI),而這個(gè)標識符是生成可信計算工作組織(TCG)設備標識符組合引擎(DICE)規格定義的設備ID證書(shū)的基礎。一般來(lái)說(shuō),設備也在CDI的基礎上,為所有用主機導出的密鑰生成別名私鑰公鑰對。這樣就無(wú)需暴露設備ID的私鑰。

有了UDS和DICE流程后,由于UDS在物理上不可克隆,因此黑客就無(wú)法克隆設備。

?   竊聽(tīng)

被動(dòng)偵聽(tīng)是另外一種已知的攻擊方式。攻擊者通過(guò)在總線(xiàn)上竊聽(tīng),可從通過(guò)總線(xiàn)傳輸的數據中搜集敏感信息或機密情報。為保護重要數據,用戶(hù)可選擇在通過(guò)總線(xiàn)將數據發(fā)送到閃存設備,并存儲數據前為數據加密。當主機從設備檢索數據時(shí),也應對數據進(jìn)行加密處理,讓潛在的黑客永遠無(wú)機可乘。

也許有人會(huì )說(shuō),加密方法不需要有安全保障的閃存存儲解決方案,因為主機可以直接加密數據并將其存儲到閃存中。只有主機才能解密數據。

然而,這樣做也有一定的缺點(diǎn)。其中之一是主機不能輕易地棄用加密密鑰。例如,假設使用KeyA加密數據并將其存儲在閃存中,后來(lái)用戶(hù)發(fā)現KeyA已被攻破,就需要在系統上使用不同的密鑰,即KeyB。

這時(shí),主機陷入兩難境地:它不能直接棄用KeyA,因為它需要保留該密鑰,才能解密從設備讀取的數據。然而,如果KeyA被攻破,用戶(hù)可能不想永久保留它。如果要使用新的數據加密密鑰,用戶(hù)不得不采取更復雜的措施。先擦除閃存上的原始加密數據,再用新加密的數據為閃存編程。這種操作在現場(chǎng)并非易事,且存在一定風(fēng)險。

另一方面,如果有安全保障的閃存能夠提供加密和解密功能,它就能在其有安全保障的存儲中安全地存放明文數據,并在將數據發(fā)回給主機之前進(jìn)行加密處理。如果當前的加密密鑰被攻破,主機可以簡(jiǎn)單地與設備交換新的密鑰。存儲中的數據保持完整且有安全保障,與存儲加密數據相比,是一種簡(jiǎn)單得多的方法。

保護措施

下面介紹開(kāi)發(fā)安全閃存存儲的各個(gè)步驟:

?   提供靈活的存儲器架構

在現代的多核嵌入式系統中,多個(gè)MCU或硬件安全模塊(HSM)可能可以訪(fǎng)問(wèn)同一個(gè)閃存存儲。閃存設備有必要提供一種靈活的存儲器架構,可以對其進(jìn)行分區和配置,以便通過(guò)不同的內核管理不同的區域。這些不同區域可提供不同水平的安全保障,或者在完全不需要時(shí),取消安全保障。

通過(guò)了解eMMC標準和UFS標準,我們顯然可以看到支持多個(gè)安全區域的趨勢。當前的eMMC標準規定了重放保護內存塊(RPMB)。最新的UFS(v3.0)標準可為四個(gè)RPMB分區提供智能支持,它們由四個(gè)不同的密鑰進(jìn)行管理。這樣的存儲器架構靈活性在多核SoC環(huán)境中更加合適。

?   提供快速的安全啟動(dòng)功能

眾多嵌入式系統都在閃存中存儲啟動(dòng)代碼。部分是因為需要快速啟動(dòng),例如汽車(chē)子系統需要在加電重置(POR)的100ms內處理CAN消息。系統不僅需要安全啟動(dòng)(即驗證啟動(dòng)代碼),還需要快速啟動(dòng)。這就給嵌入式設計師提出更高的挑戰。

一般情況下,在運行存儲并下載(SnD)模式時(shí),主機從閃存讀取引導加載程序并映射給RAM執行。然而,要想安全啟動(dòng),就需要檢查認證整個(gè)引導加載程序代碼,以確保其可信性。這個(gè)過(guò)程需要在MCU上花費時(shí)間。有安全保障的閃存存儲能夠提供引導加載認證,大幅度縮短啟動(dòng)時(shí)間。

安全的閃存設備能夠使用內部安全散列函數檢查引導加載程序,并為主機提供驗證用散列值。如果散列值未發(fā)生改變,就說(shuō)明引導加載程序未被篡改,可以安全地用于啟動(dòng)。

?   提供安全的固件無(wú)線(xiàn)更新(FOTA)

對于現代的嵌入式應用而言,現場(chǎng)升級是必備功能。通過(guò)遠程升級系統的固件或軟件,制造商能夠快速解決問(wèn)題、提供新增特性、提升用戶(hù)體驗。然而,遠程升級也會(huì )對系統構成安全威脅。沒(méi)人希望黑客利用現成的更新通道,讓系統運行惡意固件或軟件。

除了依靠CPU提供的安全保障,閃存設備內部的安全引擎也能大幅提高FOTA流程的安全水平(圖3)。采用這樣的安全引擎后,提供啟動(dòng)代碼存儲的閃存設備不僅可以用閃存設備旁邊的主機認證固件提供商,也可以在遠程云上進(jìn)行認證。通過(guò)這種方式,可以為閃存中的固件更新或軟件更新建立端到端的通道安全。

1574055357820419.png

圖3.閃存設備中的安全引擎有助于實(shí)現更安全的固件無(wú)線(xiàn)更新流程

現代汽車(chē)、工業(yè)、通信使用的嵌入式系統需要有高度安全保障的數據存儲。嵌入式系統設計師面臨的挑戰是,如何構建能夠抵御網(wǎng)絡(luò )攻擊的安全系統。集成安全保障特性的閃存,如賽普拉斯的Semper Flash,通過(guò)防范各種針對嵌入式系統的攻擊,提高整體系統的安全性。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>