91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

使用Cortex-M內(nèi)存保護(hù)單元來提高M(jìn)CU安全性的方法

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Ralph Moore ? 2022-10-20 17:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這是由四部分組成的系列文章的第一部分,介紹了獨特的產(chǎn)品 MPU-Plus? 以及使用 Cortex-M 內(nèi)存保護(hù)單元 (MPU) 實現(xiàn)改進(jìn)的微控制器單元 (MCU) 安全性的方法。

模壓傳感器與模壓單元

幾十年來,大型操作系統(tǒng)在具有MMU的微處理器上使用隔離過程來實現(xiàn)分離和系統(tǒng)安全性。我們最近增強(qiáng)的產(chǎn)品 MPU-Plus 使用帶有 MPU 的微控制器為 SMX 實時操作系統(tǒng)添加了類似的功能。這已經(jīng)為Cortex-M架構(gòu)完成了,并將在將來擴(kuò)展到其他架構(gòu)。

內(nèi)存管理單元 (MMU) 與完整操作系統(tǒng) (OS) 一起使用,為進(jìn)程提供隔離的虛擬內(nèi)存。進(jìn)程是獨立編譯和鏈接的,然后由操作系統(tǒng)(如 Windows 和 Linux)單獨加載和運行。進(jìn)程到進(jìn)程的隔離已經(jīng)足夠好了,如果一個進(jìn)程被惡意軟件感染或由于任何其他原因開始出現(xiàn)故障,操作系統(tǒng)通??梢詫⑵潢P(guān)閉,而對其他進(jìn)程幾乎沒有損害。因此,安全性很好。MMU的使用是經(jīng)過充分研究和充分理解的。MMU使用的缺點是它通常需要高性能處理器和非常大的內(nèi)存。

快速、耗電的處理器和巨大的內(nèi)存與大多數(shù)嵌入式系統(tǒng)的要求不兼容。此外,完整的操作系統(tǒng)沒有許多應(yīng)用程序所需的實時響應(yīng)時間。因此,大多數(shù)嵌入式系統(tǒng)使用低功耗、中等性能的微控制器單元 (MCU) 和實時操作系統(tǒng) (RETOS)。與完整的操作系統(tǒng)系統(tǒng)相比,這些系統(tǒng)通常具有較小的內(nèi)存。出于安全考慮,許多 MCU 提供內(nèi)存保護(hù)單元 (MPU),這些單元無法像 MMU 那樣創(chuàng)建虛擬地址空間。

在大多數(shù)嵌入式系統(tǒng)中,我們處理的是分區(qū)而不是進(jìn)程。這個想法基本上是相同的 - 分區(qū)包括一個或多個任務(wù),并為系統(tǒng)執(zhí)行特定功能。就像進(jìn)程一樣,希望將分區(qū)彼此隔離,以便在一個分區(qū)被穿透或開始出現(xiàn)故障時,可以停止它,同時對系統(tǒng)其余部分的損害最小。不幸的是,這在使用 MPU 的嵌入式系統(tǒng)中并不像在使用 MMU 的完整操作系統(tǒng)系統(tǒng)中那樣容易實現(xiàn)。這里最大的挑戰(zhàn)是所有MCU軟件都被編譯并鏈接到一個可執(zhí)行文件中。此外,MPU 還施加了自己的限制。MPU的安全性使用沒有得到很好的研究,也沒有得到充分的了解,并且涉及許多復(fù)雜的權(quán)衡,特別是因為嵌入式系統(tǒng)通常具有較小的存儲器,中等性能的處理器,功率限制以及對確定性實時性能的需求。

對安全性的需求日益增加

如果它如此困難,為什么要打擾呢?這似乎是嵌入式系統(tǒng)行業(yè)在過去幾十年中采用的方法。不幸的是,這還不夠長,因為嵌入式系統(tǒng)正在快速連接到物聯(lián)網(wǎng)IoT)中。因此,一旦被隔離,無防御的嵌入式系統(tǒng)就可以通過黑客高速公路(又名互聯(lián)網(wǎng))進(jìn)行訪問。這意味著麻煩。

保護(hù)目標(biāo)

保護(hù)的主要目標(biāo)是保護(hù)受信任的關(guān)鍵軟件和數(shù)據(jù)免受不太受信任的非關(guān)鍵軟件的侵害,這些軟件可能會感染惡意軟件或有缺陷。受信任軟件的示例包括 RTOS、異常處理程序、安全軟件(例如加密、身份驗證、安全啟動、安全更新等)和任務(wù)關(guān)鍵型軟件。不太受信任的軟件的示例是易受惡意軟件攻擊的代碼,例如協(xié)議堆棧、設(shè)備驅(qū)動程序、SOUP 和未充分測試的代碼。

第二個目標(biāo)是檢測入侵和錯誤并關(guān)閉它們,以便關(guān)鍵系統(tǒng)操作不會受到威脅,敏感數(shù)據(jù)也不會被盜。處理入侵和錯誤可以通過停止和重新啟動滲透的任務(wù)來處理,或者可能需要停止并重新啟動整個系統(tǒng)。

第三個目標(biāo)是最大限度地減少受信任的代碼量,因為仔細(xì)編寫少量代碼更容易。在非特權(quán)模式下運行更多代碼可增加分區(qū)隔離,從而提高可靠性。

必須實施的保護(hù)程度取決于特定系統(tǒng)的安全和安全要求及其面臨的威脅。MPU-Plus 提供一系列安全服務(wù),可實現(xiàn)適合給定系統(tǒng)的保護(hù)級別。此外,隨著系統(tǒng)分布范圍越來越廣,因此更容易受到攻擊,在將來的版本中可以增加保護(hù)。MPU-Plus旨在促進(jìn)逐步的保護(hù)改進(jìn)。

超強(qiáng)快照

MPU-Plus的主要目的是增強(qiáng)基于SMX?實時操作系統(tǒng)的多任務(wù)系統(tǒng)的安全性。MPU-Plus 為幫助實現(xiàn)更好的安全性所做的主要工作是:

允許為每個任務(wù)定義不同的MPU模板;

在任務(wù)切換期間處理MPU切換;

提供 SVC API 以允許非特權(quán)代碼調(diào)用特權(quán)服務(wù);

限制哪些服務(wù)可以從非特權(quán)代碼調(diào)用以及它們可以做什么;

允許分配受保護(hù)的塊和消息;

在特權(quán)模式下運行SMX RTOS和系統(tǒng)代碼,在非特權(quán)模式下運行中間件和應(yīng)用程序代碼;

允許任務(wù)具有特權(quán)或非特權(quán)。

作為構(gòu)建安全性的平臺。

MPU-Plus 有兩個主要設(shè)計目標(biāo):

更輕松地轉(zhuǎn)換舊代碼以使用 MPU 和 SVC API。

允許開發(fā)人員專注于保護(hù)策略,而不會被 MPU 特性和其他硬件細(xì)節(jié)所困擾。

實施良好的保護(hù)策略已經(jīng)夠困難的了。細(xì)節(jié)層面的過度復(fù)雜化不僅令人沮喪,還可能導(dǎo)致采用不太理想的系統(tǒng)保護(hù)。

Cortex-v7M

Cortex-v7M 處理器架構(gòu)于 2005 年推出,適用于中型嵌入式系統(tǒng)。從那時起,半導(dǎo)體行業(yè)開發(fā)了數(shù)千種不同的Cortex-v7M微控制器單元(MCU)。它們用于設(shè)備制造商開發(fā)的數(shù)以萬計的產(chǎn)品中;迄今為止,已經(jīng)出貨了數(shù)十億個芯片。它是迄今為止占主導(dǎo)地位的MCU架構(gòu)(70%的市場份額),因此也是我們支持的架構(gòu)。

Cortex-v7M體系結(jié)構(gòu)提供以下安全功能:

特權(quán)模式。

主管呼叫 (SVC) 指令。

內(nèi)存保護(hù)單元。

第一種是通過三種處理器操作模式實現(xiàn)的:

處理程序模式:ISR、錯誤處理程序、SVC 處理程序和 PendSV 處理程序的特權(quán)模式。只能通過中斷或異常進(jìn)入此模式。

特權(quán)線程模式:特權(quán)任務(wù)在此模式下運行。它只能通過設(shè)置 CONTROL.nPRIV = 0 從處理程序模式輸入。

非特權(quán)線程模式:非特權(quán)任務(wù)在此模式下運行??梢酝ㄟ^設(shè)置 CONTROL.nPRIV = 1 從上述兩種模式中的任何一種模式輸入它。

為了減少接下來討論中的冗長,我們使用以下縮寫術(shù)語:前兩種模式統(tǒng)稱為pmode,第三種模式稱為umode。p 前綴可以解釋為特權(quán)或受保護(hù);u 前綴可以解釋為非特權(quán)或用戶。在 pmode 中運行的代碼和任務(wù)稱為 p 代碼和 ptask;在 umode 中運行的代碼和任務(wù)稱為 ucode 和 utasks

Cortex-M架構(gòu)的關(guān)鍵方面是,只能通過中斷或異常輸入 pmode。SVC N 指令會導(dǎo)致此類異常。它可以從帶有 8 位參數(shù) N 的 umode 執(zhí)行。這允許從 umode 進(jìn)行系統(tǒng)調(diào)用,其中 N 指定要調(diào)用的函數(shù)。被調(diào)用的函數(shù)在 pmode 中執(zhí)行。SVC 也可以從模數(shù)執(zhí)行。

MPU 為 M 區(qū)域提供 M 插槽。每個區(qū)域都有起始地址、大小和訪問參數(shù),例如只讀 (RO)、讀/寫 (RW)、從不讀取 (XN) 等。如果 MPU 中的至少一個區(qū)域不允許內(nèi)存訪問,則會生成內(nèi)存管理故障 (MMF)。MMF 是導(dǎo)致 MMF 處理程序運行的異常,該處理程序通常會停止有問題的任務(wù)并確定要執(zhí)行的操作以進(jìn)行恢復(fù)。

pYYBAGNRFJmAbLd5AAGVwh-Ud1g045.png

圖 1 顯示了一個只有 4 個插槽的示例 MPU。(大多數(shù) MPU 有 8 個插槽,有些有 16 個插槽。存儲在 MPU[0] 中的區(qū)域是任務(wù)代碼的 RO 區(qū)域。MPU[1] 區(qū)域是代碼的 RO 區(qū)域,與其他任務(wù)通用。存儲在 MPU[2] 中的區(qū)域是用于數(shù)據(jù)的 RW 和 XN 區(qū)域。最后一個區(qū)域是任務(wù)堆棧,也是 RW 和 XN。下面顯示了可選的任務(wù)本地存儲 (TLS),它可以是任務(wù)堆棧區(qū)域的一部分,可用于本地任務(wù)數(shù)據(jù)。由于僅提供了指向 TLS 的指針,因此數(shù)據(jù)必須是結(jié)構(gòu)或數(shù)組。它具有與任務(wù)堆棧相同的屬性。此任務(wù)無法訪問內(nèi)存的白色區(qū)域。

v7 MPU 的一個嚴(yán)重缺點是區(qū)域大小必須是 2 的冪,并且區(qū)域必須在其大小邊界上對齊。這一要求可能是v7 MPU使用率低的主要原因,但可以克服。實際上,MPU的最大缺點是插槽不足。幾乎所有的 Cortex-M 處理器都有帶有八個插槽的 MPU。當(dāng)一個人開始為實際分區(qū)創(chuàng)建區(qū)域時,八個是不夠的 - 12個可能剛剛好。一些處理器有16個插槽;強(qiáng)烈建議將這些用于新設(shè)計。我們同時支持 8 個和 16 個插槽 MPU,但我們的重點是前者,因為它們是迄今為止最常見的。

盡管 Cortex-v7M MPU 具有顯著的局限性,使其難以使用,但它是 Cortex-v7M 處理器可用的硬件內(nèi)存保護(hù)的唯一手段,硬件保護(hù)是唯一有效防止黑客攻擊的保護(hù)措施。因此,重要的是要找到有效使用它的方法,以實現(xiàn)現(xiàn)代嵌入式系統(tǒng)所需的可靠性,安全性和安全性。

Cortex-v8M

Cortex-v8M 架構(gòu)是在幾年前宣布的。迄今為止,使用它的處理器很少。v8 MPU 將區(qū)域大小和對齊要求大大降低到 32 字節(jié)的倍數(shù)。這對于內(nèi)存有限的嵌入式系統(tǒng)很有幫助。但是,MPU 插槽的數(shù)量在 v8 體系結(jié)構(gòu)中保持不變。希望半導(dǎo)體供應(yīng)商能夠選擇16個而不是8個插槽,至少在非安全狀態(tài)下是這樣。我們將很快支持 v8 MPU。

Cortex-v8M 體系結(jié)構(gòu)還提供了一個名為 TrustZone 的新功能,該功能允許安全和非安全狀態(tài)。信任區(qū)安全狀態(tài)適用于密鑰和其他私有數(shù)據(jù)的存儲。但是,在安全狀態(tài)下運行代碼可能不值得額外的代碼復(fù)雜性和調(diào)試難度。阿姆說不然,所以我們得看看。此外,我們預(yù)計大多數(shù)設(shè)備制造商都需要一個同時適用于 v7 和 v8 處理器的安全解決方案。

審核編輯:郭婷

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

    關(guān)注

    147

    文章

    18925

    瀏覽量

    398293
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7402

    瀏覽量

    129321
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2431

    瀏覽量

    85861
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    最小化ARM Cortex-M CPU功耗的方法與技巧分享

    的ARM Cortex-M類的MCU中指令緩沖的運行方法也有不同。采用簡單指令緩沖的MCU, 相比之下,采用64x128位分支緩沖器的ARM MCU
    發(fā)表于 01-21 06:19

    Cortex-M0 處理器介紹

    Cortex-M0 處理器簡介ARM公司的Cortex-M0應(yīng)用于各種微控制器(MCU)中,并可讓研發(fā)工程師以8位的價位創(chuàng)造32位的的效能,并將傳統(tǒng)的8位和16位的處理器升級到更高效、更低
    發(fā)表于 01-16 08:04

    M0 到 M3丨笙泉32 位 MCU:高效能、安全性與多元應(yīng)用兼具

    笙泉科技憑借在8051平臺深厚的技術(shù)基礎(chǔ),已成功導(dǎo)入Arm? Cortex?-M0 / M0+ 與 M3 核心,并推出具備高效能與高安全性
    的頭像 發(fā)表于 12-29 16:56 ?619次閱讀
    從 <b class='flag-5'>M</b>0 到 <b class='flag-5'>M</b>3丨笙泉32 位 <b class='flag-5'>MCU</b>:高效能、<b class='flag-5'>安全性</b>與多元應(yīng)用兼具

    請問CW32L052C8T6這種安全性低功耗MCU安全固件部分怎么實現(xiàn)?

    請問,CW32L052C8T6這種安全性低功耗MCU安全固件部分怎么實現(xiàn)?
    發(fā)表于 12-05 07:19

    Cortex-M產(chǎn)品的特色

    安全性和穩(wěn)定性。 時鐘和電源管理單元Cortex-M處理器內(nèi)置了豐富的時鐘和電源管理功能,可提供靈活的功耗管理和時鐘控制。 外設(shè)接口:支持多種外設(shè)接口,如UART、SPI、I2C等,以便
    發(fā)表于 11-26 07:22

    Cortex-M內(nèi)核中的精確延時的方法

    使用 CYCCNT寄存器測量執(zhí)行某個任務(wù)所花的周期數(shù),這也可以用作時間基準(zhǔn)相關(guān)的目的(操作系統(tǒng)中統(tǒng)計 CPU使用率可以用到它)?!?Cortex-M中的DWT它有一個32位的寄存器叫CYCCNT
    發(fā)表于 11-21 07:51

    Cortex-M級別的轉(zhuǎn)換

    一、 簡述 Cortex-M 里面有特權(quán)級別的概念,不同級別可以設(shè)定不同的權(quán)限,如何轉(zhuǎn)換特權(quán)級別基本是本章的內(nèi)容。 二、操作模式 ARM M 核操作模式有兩個: 線程(Thread)模式:在復(fù)位時或
    發(fā)表于 11-19 07:32

    CW32A系列(車規(guī)級 MCU)介紹

    加密、內(nèi)存保護(hù)單元(MPU)、看門狗定時器。 典型應(yīng)用:車身控制模塊(BCM)、車載傳感器、動力電池管理(BMS)、ADAS 輔助駕駛。
    發(fā)表于 11-17 06:30

    STMicroelectronics STSPIN32G060x 600V三相BLDC控制器數(shù)據(jù)手冊

    傳導(dǎo)、死區(qū)時間和UVLO保護(hù),可實現(xiàn)高效安全運行。該MCU的工作頻率高達(dá)64MHz,并通過內(nèi)存保護(hù)單元 (MPU) 增強(qiáng)了
    的頭像 發(fā)表于 10-22 11:29 ?6757次閱讀
    STMicroelectronics STSPIN32G060x 600V三相BLDC控制器數(shù)據(jù)手冊

    RTThread支持內(nèi)存保護(hù)功能嗎?

    以前在其他視頻里看過說單片機(jī)可以實現(xiàn)線程崩潰不會影響系統(tǒng)運行, 我一直不知道怎么實現(xiàn)的, 最近了解到 MPU和Zephyr的內(nèi)存保護(hù), 這些在RTthread中可以實現(xiàn)嗎
    發(fā)表于 10-14 07:14

    瑞薩電子RA4L1 MCU為低功耗設(shè)備提高安全性

    隨著自動化和IoT成為我們?nèi)粘I畹囊徊糠郑呒?b class='flag-5'>安全性在低功耗設(shè)備中變得更加重要,以確保建筑物安全、阻止入侵者進(jìn)入家中并保護(hù)用戶免受任何數(shù)據(jù)修改或泄漏。
    的頭像 發(fā)表于 09-23 10:39 ?1873次閱讀
    瑞薩電子RA4L1 <b class='flag-5'>MCU</b>為低功耗設(shè)備<b class='flag-5'>提高安全性</b>

    有哪些技術(shù)可以提高邊緣計算設(shè)備的安全性

    邊緣計算設(shè)備的安全性面臨分布式部署、資源受限(算力 / 存儲 / 帶寬)、網(wǎng)絡(luò)環(huán)境復(fù)雜(多無線連接)、物理接觸易被篡改等獨特挑戰(zhàn),因此其安全技術(shù)需在 “安全性” 與 “輕量化適配” 之間平衡。以下從
    的頭像 發(fā)表于 09-05 15:44 ?1493次閱讀
    有哪些技術(shù)可以<b class='flag-5'>提高</b>邊緣計算設(shè)備的<b class='flag-5'>安全性</b>?

    請問NuMicro? Cortex-M? 系列芯片是否支持 I2C 監(jiān)視器功能?

    NuMicro? Cortex-M? 系列芯片是否支持 I2C 監(jiān)視器功能?
    發(fā)表于 08-21 06:04

    請問DM平臺訪問安全性如何控制?

    DM平臺訪問安全性如何控制?
    發(fā)表于 08-06 06:01

    HOLTEK推出全新單片機(jī)HT32F49041

    內(nèi)存保護(hù)單元(MPU),增強(qiáng)數(shù)值運算效能與應(yīng)用安全性。該單片機(jī)具備多種節(jié)能模式,特別適合各應(yīng)用場景諸如嵌入式系統(tǒng)、計算機(jī)周邊、工業(yè)自動化、電機(jī)控制、物聯(lián)網(wǎng)、消費電子等領(lǐng)域,為
    的頭像 發(fā)表于 05-10 10:43 ?2163次閱讀