0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區
會(huì )員中心
創(chuàng )作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內不再提示

域控軟件安全隔離關(guān)鍵技術(shù)剖析:MCU域 VS SOC域

經(jīng)緯恒潤 ? 2024-04-11 14:00 ? 次閱讀

安全隔離的需求

功能安全開(kāi)發(fā)中,軟件階段由軟件V模型左邊的軟件安全需求SSR開(kāi)始。SSR是從技術(shù)安全需求TSR中提取出軟件的功能安全需求,大多數情況下具有不同的ASIL等級。

wKgZomYXe6KAARPrAAERxMLYISc651.pngwKgZomYXe6KAARPrAAERxMLYISc651.png

圖1功能安全軟件開(kāi)發(fā)V模型

隨后,軟件安全需求會(huì )被分配到軟件架構中的軟件組件中。不同ASIL等級的軟件安全需求被分配到軟件組件過(guò)后,帶來(lái)了級聯(lián)失效的問(wèn)題。若放任不同ASIL等級軟件組件在一個(gè)系統中運行,可能會(huì )存在低ASIL等級軟件組件失效從而引發(fā)高ASIL等級軟件組件失效的風(fēng)險。

ISO26262對軟件組件之間的交互進(jìn)行了分析并提出了免于干擾(Freedom from Interference)的需求,安全隔離則旨在隔離軟件系統中安全相關(guān)與安全無(wú)關(guān)的軟件組件,以及不同ASIL等級的軟件組件。

軟件內存基礎

首先讓我們來(lái)了解內存的基本知識。RAMROM是ECU中常見(jiàn)的存儲器類(lèi)型,它們在數據存儲和訪(fǎng)問(wèn)方面扮演著(zhù)重要的角色。

RAM(Random Access Memory)是一種臨時(shí)存儲器,用于存儲計算機正在運行的程序和數據。它具有快速的讀寫(xiě)速度和隨機訪(fǎng)問(wèn)的特點(diǎn)。

ROM(Read-Only Memory)是一種只讀存儲器,用于存儲固定的程序指令和數據。ROM中的數據在計算機斷電時(shí)不會(huì )丟失,因此被稱(chēng)為非易失性存儲器。

然而在軟件視角中,軟件被編譯后會(huì )被分為不同的段進(jìn)行存放。具體分段方式可能根據架構有細微區別在,以Tc3xx系列芯片為例,包含以下幾段:

(1)已初始化的數據段

(2)未初始化的數據段

(3)只讀數據段

(4)代碼段

(5)task棧區

(6)啟動(dòng)棧區

(7)CSA區

這些段被編譯器分配到物理內存中,可能由不同的存儲器來(lái)存放。每當程序需要使用某處數據或者加載某處的指令時(shí),會(huì )根據地址來(lái)取出所需的數據或是指令進(jìn)行運算,再將運算結果寫(xiě)入某處物理內存中。

在這個(gè)過(guò)程中,安全隔離的目標是阻止安全無(wú)關(guān)的軟件組件寫(xiě)入安全相關(guān)的軟件組件使用的內存區域;低ASIL等級的軟件組件寫(xiě)入高ASIL等級的軟件組件所使用的內存區域。

MCU上的安全隔離模塊

MCU上的安全隔離通常借助內存分區機制和內存保護單元MPU完成。經(jīng)典AUTOSAR架構中,允許對軟件進(jìn)行內存分區(Partition),借助內存映射(memory map)將軟件組件的代碼和數據劃分到指定的區域內。這種方式雖然能有效地將不同ASIL等級的變量和代碼分布到不同的地址范圍中,但無(wú)法杜絕指針越界、數組越界導致跨區域訪(fǎng)問(wèn)的風(fēng)險。

MPU(memory protection unit)內存保護單元是一種按內存區域提供保護和隔離的硬件原件,與內存分區配合使用可以阻止不同軟件分區的軟件組件之間相互訪(fǎng)問(wèn),從而達到內存隔離的效果。

以Tc3xx系列芯片為例,MPU可以按照保護范圍分為兩種,一種為系統級的SMPU(System Memory Protection Unit),另一種為核心級的CMPU(Core Memory Protection Unit)。

· 系統級的SMPU

SMPU有時(shí)候也被稱(chēng)為Bus MPU,表示其工作在芯片總線(xiàn)上。其保護原理如圖2所示,總線(xiàn)上所有主機對于內存的訪(fǎng)問(wèn)都會(huì )經(jīng)過(guò)SMPU,當主機擁有所請求內存地址的對應訪(fǎng)問(wèn)權限(讀/寫(xiě))時(shí),才能允許訪(fǎng)問(wèn)。

Tc3xx中的Bus MPU可以維護8個(gè)地址保護區域(每個(gè)保護區域范圍由兩個(gè)寄存器控制),每個(gè)保護區域都記錄了64個(gè)總線(xiàn)主機的權限。當主機訪(fǎng)問(wèn)內存區域時(shí),首先尋找對應的區域,再根據主機TAG ID檢查主機是否擁有對應的權限,檢查通過(guò)后才能進(jìn)行讀寫(xiě)訪(fǎng)問(wèn),否則會(huì )觸發(fā)系統定義的故障。

SMPU通常用于多核系統和使用DMA設備的系統,其保護范圍有限,且不能覆蓋所有的內存區域。

up-3b47d2d236af2518a538fb61105ab942c7d.jpgwKgZomYXe66Afn9WAACK0ZoKrbM598.png

圖2 SMPU保護原理

  • · 核心級的CMPU

核心級的CMPU則是每個(gè)CPU核心獨有的,提供應用級別的隔離。經(jīng)典AUTOSAR中,軟件組件被組織成OSA(OS Application)。OSA內部存在共享資源,OSA之間則需要考慮內存隔離。

CMPU保護原理如圖3所示,CMPU隔離對象為CPU中運行的軟件。CMPU也會(huì )預先劃分保護區域,這通常也是內存分區的結果。對于這些內存區域,每一個(gè)在核心中運行的OSA可能都具有不同的權限。當上下文切換時(shí),MPU的保護范圍也會(huì )動(dòng)態(tài)切換,以適配不同的OSA。

同CMPU一樣,只有擁有對應內存區域訪(fǎng)問(wèn)權限的OSA,才能成功完成訪(fǎng)問(wèn),否則會(huì )觸發(fā)系統定義的故障。CMPU通常擁有更多的保護區域,且能覆蓋所有的內存空間。在這基礎上,CMPU還支持保護集的預設,使CPU進(jìn)行上下文切換時(shí),更快地切換地址空間地MPU保護權限。一般來(lái)說(shuō),CMPU的應用更為廣泛,在一些不那么復雜的系統中甚至只用CMPU就足以完成內存隔離的需求。

wKgZomYXe7WAIxK_AADXt4Hi0pQ415.png

圖3 CMPU隔離原理

SOC上的安全隔離

相比MCU,SOC擁有更強大的性能,可以運行一些復雜操作系統(比如linux)。這種情況下,基于地址范圍進(jìn)行保護的MPU就顯得“力不從心”了。進(jìn)程是操作系統進(jìn)行資源分配的基本單位,一些應用程序可能由多個(gè)進(jìn)程組成,在某些場(chǎng)景中(比如座艙域)還需要虛擬機來(lái)運行不同的操作系統。

因此,我們把SOC上的內存隔離場(chǎng)景劃分為兩個(gè)層級:進(jìn)程級隔離、應用程序級隔離和操作系統級隔離。本文主要介紹進(jìn)程級隔離。

MMU(Memory Management Unit)是SOC中常見(jiàn)的硬件,用于提供進(jìn)程級別的內存分配和隔離。進(jìn)程在運行時(shí),操作系統會(huì )使進(jìn)程認為自己獨占整個(gè)尋址空間(32位機器尋址空間為4GB),并使用連續的物理地址進(jìn)行操作。但實(shí)際上,這個(gè)內存空間要么尚未分配,要么部分存在于磁盤(pán)中。并且其使用的虛擬地址會(huì )由MMU進(jìn)行翻譯,對應到分散的物理地址中。

MMU的工作原理如圖4所示。內存空間被劃分為若干頁(yè)面(Page),每個(gè)頁(yè)面占用4KB內存。進(jìn)程使用的連續虛擬頁(yè)面被MMU翻譯到具體的分散的物理頁(yè)面中。

MMU最主要的功能其實(shí)是將虛擬頁(yè)翻譯到物理頁(yè)。那為什么MMU可以實(shí)現進(jìn)程級隔離呢?

因為MMU的翻譯是基于頁(yè)表進(jìn)行的,頁(yè)表記錄了進(jìn)程虛擬頁(yè)到物理頁(yè)的映射。操作系統為不同的進(jìn)程分配的不同的頁(yè)表起始地址,存儲在對應寄存器中。當MMU翻譯地址時(shí),根據頁(yè)表起始地址加偏移量定位到具體的頁(yè)表項,進(jìn)而完成地址翻譯。不難看出,這種機制使得進(jìn)程擁有天然隔離的零散的地址空間

wKgaomYXe8GAJ0zpAAC8606e4Jc001.png

圖4 MMU工作原理

安全隔離小結

安全隔離的底層原理是避免軟件對內存的不合理訪(fǎng)問(wèn),以滿(mǎn)足功能安全要求。硬件層面上,有MPU、MMU這樣的硬件進(jìn)行程序內存空間的保護和約束;軟件層面上,容器化技術(shù)和虛擬化技術(shù)也能幫助用戶(hù)制定更靈活的隔離策略。但并不是說(shuō)實(shí)現了這些安全隔離機制就等于完全滿(mǎn)足了安全隔離需求,還需要結合軟件和系統的正確設計來(lái)共同達成目標。

經(jīng)緯恒潤功能安全團隊成立于2008年,系國內較早從事功能安全技術(shù)研究的團隊。作為功能安全、預期功能安全國家標準委員會(huì )成員,經(jīng)緯恒潤的研發(fā)流程、生產(chǎn)流程已通過(guò)功能安全開(kāi)發(fā)過(guò)程認證,功能安全開(kāi)發(fā)過(guò)程達到ASIL-D,相關(guān)產(chǎn)品已成功服務(wù)于近百家國內外整車(chē)及零部件企業(yè)。

經(jīng)緯恒潤功能安全軟件團隊可提供功能安全軟件開(kāi)發(fā)技術(shù)咨詢(xún)服務(wù),包括功能安全軟件階段流程/產(chǎn)品咨詢(xún)、L2監控算法開(kāi)發(fā)集成和L3安全機制(安全通信、隔離、監控、執行和芯片AOU)的開(kāi)發(fā)集成,控制器覆蓋動(dòng)力域、底盤(pán)域、智駕域和車(chē)身域等。

未來(lái),經(jīng)緯恒潤將緊跟行業(yè)發(fā)展趨勢和市場(chǎng)需求,結合自身汽車(chē)電子產(chǎn)品研發(fā)和國內外咨詢(xún)實(shí)踐,一如既往地堅持自主創(chuàng )新道路,為智能汽車(chē)安全保駕護航。

聲明:本文內容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權轉載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習之用,如有內容侵權或者其他違規問(wèn)題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16157

    瀏覽量

    345151
  • 汽車(chē)功能安全
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    1364
收藏 人收藏

    評論

    相關(guān)推薦

    數字隔離器在非隔離中的應用

    線(xiàn)設為低電平輸出或高阻抗模式。 使用數字隔離器代替兩個(gè)電源直接連接時(shí),可阻斷其間的泄漏電流(圖3)。由于此時(shí)無(wú)需控制輸出狀態(tài),因此可簡(jiǎn)化硬件和軟件的保護設計。 圖2. 兩個(gè)電源
    發(fā)表于 01-03 06:39

    在A(yíng)D9787里面,哪些管腳是屬于DVDD33的電源,哪些是屬于DVDD18的電源?

    在A(yíng)D9787里面,數字電壓有兩個(gè)一個(gè)是DVDD33,一個(gè)是DVDD18,想問(wèn)的是,哪些管腳是屬于DVDD33的電源,哪些是屬于DVDD18的電源?
    發(fā)表于 12-01 06:33

    為什么選擇屏幕要選廣色的?

    為什么選擇屏幕要選廣色
    發(fā)表于 10-30 08:13

    如何將用戶(hù)數據存貯到電池供電數據寄存器

    AT32F4xx電池供電數據存儲展示如何將用戶(hù)數據存貯到電池供電數據寄存器。
    發(fā)表于 10-27 08:17

    汽車(chē)區域控制器的關(guān)鍵技術(shù)MCU解決方案深度分析

    汽車(chē)區域控制器的關(guān)鍵技術(shù)MCU解決方案深度分析
    的頭像 發(fā)表于 10-18 17:40 ?1437次閱讀
    汽車(chē)區域控制器的<b class='flag-5'>關(guān)鍵技術(shù)</b>和<b class='flag-5'>MCU</b>解決方案深度分析

    如何看待元宇宙關(guān)鍵技術(shù)對戰爭的影響

    本文分析導致戰爭復雜性的部分原因,介紹元宇宙的關(guān)鍵技術(shù),給出元宇宙在軍事領(lǐng)域的應用模式及對復雜戰爭的影響,剖析元宇宙技術(shù)對理解復雜戰爭、把握戰爭脈絡(luò )發(fā)揮的重要作用。
    發(fā)表于 10-17 10:27 ?290次閱讀

    MCU中局部變量的作用是什么?

    MCU中局部變量的作用是什么
    發(fā)表于 10-09 08:51

    MCU中怎么確定一個(gè)變量的作用?

    MCU中怎么確定一個(gè)變量的作用
    發(fā)表于 10-09 06:46

    視覺(jué)導航關(guān)鍵技術(shù)及應用

    由于視覺(jué)導航技術(shù)的應用越來(lái)越普及 ,因此 ,有必要對視覺(jué)導航中的關(guān)鍵技術(shù)及應用進(jìn)行研究。文章對其中的圖像處理技術(shù)和定位與跟蹤技術(shù)進(jìn)行了詳細研究 ,并與此相對應 ,介紹的相關(guān)的應用。
    發(fā)表于 09-25 08:09

    基于角度任意功率譜PDF的基函數采樣近似擬合算法

    u3000針對任意散射環(huán)境信道,文中提出基于角度任意功率譜PDF的基函數采樣近似擬合算法,并以小角度擴展擬合等效大角度擴展,計算并導出各種擬合以及實(shí)測數據情況下的無(wú)線(xiàn)信道衰落相關(guān)性
    發(fā)表于 09-19 07:53

    面向OpenHarmony終端的密碼安全關(guān)鍵技術(shù)

    本文轉載自 OpenHarmony TSC 官方?[?《峰會(huì )回顧第17期 | 面向OpenHarmony終端的密碼安全關(guān)鍵技術(shù)》?]? 演講嘉賓 | 何道敬 回顧整理 | 廖濤 排版校對 | 李萍萍
    發(fā)表于 09-13 19:20

    開(kāi)源機密計算平臺:蓬萊-OpenHarmony

    OpenHarmony的可信執行環(huán)境,賦能OpenHarmony安全能力。那么,蓬萊-OpenHarmony主要做了哪些安全增強方面的工作,有哪些關(guān)鍵技術(shù)呢?上海交通大學(xué)助理研究員、中國計算機學(xué)會(huì )CCF會(huì )員
    發(fā)表于 09-07 16:08

    CoreLink?ADB-400AMBA?橋接循環(huán)模型用戶(hù)指南

    AMBA?橋(ADB)在A(yíng)MBA系統中集成了多個(gè)電源或時(shí)鐘,或不同的電壓電平。它提供了兩個(gè)組件或系統之間的異步橋接。它還支持時(shí)鐘可用性管理、簡(jiǎn)單的重置要求、復雜的電源管理以及動(dòng)態(tài)電壓和頻率縮放
    發(fā)表于 08-10 06:25

    ADB-400異步軟件開(kāi)發(fā)人員勘誤表

    Arm CoreLink ADB-400 ADB-400 Asynconronoon 橋面軟件開(kāi)發(fā)者Errata 筆記
    發(fā)表于 08-10 06:18

    Cortex-M如何最大限度地提高SoC設計的能效端點(diǎn)

    隨著(zhù)現代微控制器和SoC變得越來(lái)越復雜,設計者面臨著(zhù)最大化能源效率,同時(shí)實(shí)現更高水平的集成。最大限度地提高能量在低功耗SoC市場(chǎng)中,多個(gè)功率的使用被廣泛采用。在 同時(shí),為了解決更高級別的集成,許多
    發(fā)表于 08-02 06:34
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看