SoC中(zhōng)的安全衛士——安全AHB控制器
- 分(fēn)類:新聞中(zhōng)心
- 作者:Liu Hao@NXP
- 來源:恩智浦MCU加油站
- 發布時間:2023-03-03 17:05
- 訪問量:
【概要描述】 一(yī)、Cortex-M33 TrustZone Cortex M33内置了Arm設計的TrustZone技術,可以實現安全(Secure/S)與非安全(Non-Secure/NS)之間的隔離(lí),提高系統的安全等級。 恩智浦MCU加油站中(zhōng)已經有若幹文章爲大(dà)家介紹了TrustZone: 通過上面的文章,想必大(dà)家對TrustZone已經有了一(yī)些基本的理解。 TrustZone是内置在Cortex M33内核中(zhōng)的一(yī)個功能。安全是一(yī)個系統工(gōng)程,可是,MCU也是一(yī)個麻雀雖小(xiǎo)但五髒俱全的SoC(System on Chip),内核具備安全的隔離(lí)能力,是否能夠滿足我(wǒ)(wǒ)們對于整個SoC系統的安全隔離(lí)要求呢? 本文以LPC55S69(CPU0爲Cortex M33且支持TrustZone)爲例,爲大(dà)家簡要介紹安全AHB控制器。 二、解剖總線上的主從設備 我(wǒ)(wǒ)們可以簡單地把MCU理解爲由内核+多種外(wài)設構成的芯片,軟件工(gōng)程師編寫的代碼最終運行在内核中(zhōng),通過操作外(wài)設實現各種各樣的功能。 毫無疑問,内核是總線上的一(yī)種主設備,它不僅具有自己的寄存器,還會在運行中(zhōng)主動地向總線上的其他設備(例如内存,flash等)發起訪問。 而大(dà)部分(fēn)外(wài)設,都是從設備,例如USART和SPI等外(wài)設,隻能被動地等待内核或其他主設備的配置,然後實現相應的功能。在運行中(zhōng),從設備并不具備操作其他設備的能力。 有一(yī)些特殊的外(wài)設,例如DMA,USB等外(wài)設,與内核類似,它們具有自己的寄存器,并且在運行中(zhōng),會主動地訪問内存、flash甚至是其他外(wài)設的寄存器。 三、隻有TrustZone就夠了嗎(ma)? 那麽,在MCU中(zhōng),通過TrustZone功能,内核可以在運行中(zhōng)從安全狀态切換至非安全狀态。轉移至非安全狀态後,内核是無法訪問安全區域的資(zī)源的。 如上節所述,總線上有很多主設備和從設備。但是,由于TrustZone是集成在内核中(zhōng)的,TrustZone不能限制内核之外(wài)的其他主設備的行爲,總線上的其他主設備仍然可以訪問安全區和非安全區的所有資(zī)源。 因此,DMA等其他總線上的主設備,仍然可以訪問整個地址空間,即使Cortex M33内核被轉移至非安全狀态,此時Cortex M33内核沒有安全區資(zī)源的訪問權限,仍然可以通過利用其他主設備(例如DMA),訪問任意資(zī)源。那麽此時,DMA等其他主設備就像是一(yī)個可以被利用的“漏洞”,這是安全系統不能接受的。 這時的系統如下(xià)圖所示,即使Cortex M33被TrustZone的SAU和IDAU嚴格限制,但其他主設備在總線上仍然是暢通無阻。 四、安全AHB控制器 安全AHB控制器的英文名稱是Secure AHB Controller。 其實,産生(shēng)前文所述問題的原因有兩個: 總線上,隻有Cortex M33内核CPU0具有TrustZone功能,而其他的主設備沒有此功能。站在總線的角度看,隻能判斷出CPU0 Cortex M33發出的請求和訪問是否是安全,卻無法判斷出其他主設備的訪問請求是安全或非安全。 對于總線上的從設備來說,從設備無法判斷來自總線的訪問是安全還是非安全的,因此也就無法通過以設置訪問規則的方式,拒絕違背訪問規則的非法請求和訪問。 安全AHB控制器是NXP LPC55Sxx系列MCU的一(yī)個特殊外(wài)設。 安全AHB控制器提供了MSW(Master Security Wrapper),MSW爲總線上除CPU0之外(wài)的其他主設備,提供了一(yī)種簡易的類似于TrustZone的功能。總線上除CPU0外(wài)的每一(yī)個主設備都有一(yī)個MSW。 例如,我(wǒ)(wǒ)們可以通過MSW,将某個主設備DMA0配置爲安全主設備,那麽在運行中(zhōng),DMA0發出的所有訪問請求,都是安全請求;我(wǒ)(wǒ)們也可以将另一(yī)個主設備DMA1配置爲非安全主設備,在運行中(zhōng),DMA1發出的所有訪問請求,都是非安全請求。 有了MSW,從總線的角度看,我(wǒ)(wǒ)們就可以分(fēn)辨出每一(yī)個主設備發出的請求是安全還是非安全。 安全AHB控制器還爲每一(yī)個從設備(外(wài)設)提供了一(yī)個“保安”PPC(Peripheral Protection Checkers),PPC将會恪盡職守,嚴格檢查訪問請求是否符合設置的規定章程,并拒絕非法的訪問。 例如,我(wǒ)(wǒ)們可以将位于USART之前的PPC檢查規則設置爲僅允許安全訪問,那麽所有非安全訪問都被視爲非法,并被PPC拒之門外(wài),上文所述被配置爲非安全主設備的DMA1也就無法訪問和操作USART。 同時,安全AHB控制器也爲内部存儲介質(包括RAM,Flash和ROM)提供了類似PPC的“保安”-MPC(Memory Protection Checkers),MPC可以分(fēn)塊地保護各種内部存儲介質。 此時總線的架構圖如上圖所示。 有了安全AHB控制器的MSW,總線上的所有主設備不僅支持安全側帶信号HNONSEC(安全訪問)作爲給定訪問的安全屬性的指示,也支持HPRIV(特權)信号作爲特權與非特權屬性的指示。(注:本文重點介紹了HNONSEC信号相關的安全與非安全屬性,并未詳細介紹與HPRIV相關的特權與非特權,這與Cortex M3/M4等内核中(zhōng)的特權與非特權相同)。 安全AHB總線處理HNONSEC信号,并将其與安全AHB控制器中(zhōng)爲從設備的PPC/MPC所設置的安全屬性進行比較。如果請求訪問的安全屬性不違反被訪問從設備的安全屬性,則允許訪問。如果在訪問中(zhōng)違反規則發生(shēng)沖突,則會引發安全沖突中(zhōng)斷。CPU0切換到安全模式以處理違規。 安全是個系統工(gōng)程,有了安全AHB控制器這個安全守衛,我(wǒ)(wǒ)們的SoC系統才能被滴水不漏地劃分(fēn)爲安全世界和非安全世界。 與此同時,安全AHB控制器還提供了很多功能,可以用來設置SoC安全相關的配置,并且還提供了一(yī)些寄存器,用于調試和處理違規訪問。關于安全AHB控制器的更多信息,請參考LPC55Sxx用戶手冊(User Manual)中(zhōng)Trusted Execution Environment相關章節。
SoC中(zhōng)的安全衛士——安全AHB控制器
【概要描述】
一(yī)、Cortex-M33 TrustZone
Cortex M33内置了Arm設計的TrustZone技術,可以實現安全(Secure/S)與非安全(Non-Secure/NS)之間的隔離(lí),提高系統的安全等級。
恩智浦MCU加油站中(zhōng)已經有若幹文章爲大(dà)家介紹了TrustZone:
通過上面的文章,想必大(dà)家對TrustZone已經有了一(yī)些基本的理解。
TrustZone是内置在Cortex M33内核中(zhōng)的一(yī)個功能。安全是一(yī)個系統工(gōng)程,可是,MCU也是一(yī)個麻雀雖小(xiǎo)但五髒俱全的SoC(System on Chip),内核具備安全的隔離(lí)能力,是否能夠滿足我(wǒ)(wǒ)們對于整個SoC系統的安全隔離(lí)要求呢?
本文以LPC55S69(CPU0爲Cortex M33且支持TrustZone)爲例,爲大(dà)家簡要介紹安全AHB控制器。
二、解剖總線上的主從設備
我(wǒ)(wǒ)們可以簡單地把MCU理解爲由内核+多種外(wài)設構成的芯片,軟件工(gōng)程師編寫的代碼最終運行在内核中(zhōng),通過操作外(wài)設實現各種各樣的功能。
毫無疑問,内核是總線上的一(yī)種主設備,它不僅具有自己的寄存器,還會在運行中(zhōng)主動地向總線上的其他設備(例如内存,flash等)發起訪問。
而大(dà)部分(fēn)外(wài)設,都是從設備,例如USART和SPI等外(wài)設,隻能被動地等待内核或其他主設備的配置,然後實現相應的功能。在運行中(zhōng),從設備并不具備操作其他設備的能力。
有一(yī)些特殊的外(wài)設,例如DMA,USB等外(wài)設,與内核類似,它們具有自己的寄存器,并且在運行中(zhōng),會主動地訪問内存、flash甚至是其他外(wài)設的寄存器。
三、隻有TrustZone就夠了嗎(ma)?
那麽,在MCU中(zhōng),通過TrustZone功能,内核可以在運行中(zhōng)從安全狀态切換至非安全狀态。轉移至非安全狀态後,内核是無法訪問安全區域的資(zī)源的。
如上節所述,總線上有很多主設備和從設備。但是,由于TrustZone是集成在内核中(zhōng)的,TrustZone不能限制内核之外(wài)的其他主設備的行爲,總線上的其他主設備仍然可以訪問安全區和非安全區的所有資(zī)源。
因此,DMA等其他總線上的主設備,仍然可以訪問整個地址空間,即使Cortex M33内核被轉移至非安全狀态,此時Cortex M33内核沒有安全區資(zī)源的訪問權限,仍然可以通過利用其他主設備(例如DMA),訪問任意資(zī)源。那麽此時,DMA等其他主設備就像是一(yī)個可以被利用的“漏洞”,這是安全系統不能接受的。
這時的系統如下(xià)圖所示,即使Cortex M33被TrustZone的SAU和IDAU嚴格限制,但其他主設備在總線上仍然是暢通無阻。
四、安全AHB控制器
安全AHB控制器的英文名稱是Secure AHB Controller。
其實,産生(shēng)前文所述問題的原因有兩個:
總線上,隻有Cortex M33内核CPU0具有TrustZone功能,而其他的主設備沒有此功能。站在總線的角度看,隻能判斷出CPU0 Cortex M33發出的請求和訪問是否是安全,卻無法判斷出其他主設備的訪問請求是安全或非安全。
對于總線上的從設備來說,從設備無法判斷來自總線的訪問是安全還是非安全的,因此也就無法通過以設置訪問規則的方式,拒絕違背訪問規則的非法請求和訪問。
安全AHB控制器是NXP LPC55Sxx系列MCU的一(yī)個特殊外(wài)設。
安全AHB控制器提供了MSW(Master Security Wrapper),MSW爲總線上除CPU0之外(wài)的其他主設備,提供了一(yī)種簡易的類似于TrustZone的功能。總線上除CPU0外(wài)的每一(yī)個主設備都有一(yī)個MSW。
例如,我(wǒ)(wǒ)們可以通過MSW,将某個主設備DMA0配置爲安全主設備,那麽在運行中(zhōng),DMA0發出的所有訪問請求,都是安全請求;我(wǒ)(wǒ)們也可以将另一(yī)個主設備DMA1配置爲非安全主設備,在運行中(zhōng),DMA1發出的所有訪問請求,都是非安全請求。
有了MSW,從總線的角度看,我(wǒ)(wǒ)們就可以分(fēn)辨出每一(yī)個主設備發出的請求是安全還是非安全。
安全AHB控制器還爲每一(yī)個從設備(外(wài)設)提供了一(yī)個“保安”PPC(Peripheral Protection Checkers),PPC将會恪盡職守,嚴格檢查訪問請求是否符合設置的規定章程,并拒絕非法的訪問。
例如,我(wǒ)(wǒ)們可以将位于USART之前的PPC檢查規則設置爲僅允許安全訪問,那麽所有非安全訪問都被視爲非法,并被PPC拒之門外(wài),上文所述被配置爲非安全主設備的DMA1也就無法訪問和操作USART。
同時,安全AHB控制器也爲内部存儲介質(包括RAM,Flash和ROM)提供了類似PPC的“保安”-MPC(Memory Protection Checkers),MPC可以分(fēn)塊地保護各種内部存儲介質。
此時總線的架構圖如上圖所示。
有了安全AHB控制器的MSW,總線上的所有主設備不僅支持安全側帶信号HNONSEC(安全訪問)作爲給定訪問的安全屬性的指示,也支持HPRIV(特權)信号作爲特權與非特權屬性的指示。(注:本文重點介紹了HNONSEC信号相關的安全與非安全屬性,并未詳細介紹與HPRIV相關的特權與非特權,這與Cortex M3/M4等内核中(zhōng)的特權與非特權相同)。
安全AHB總線處理HNONSEC信号,并将其與安全AHB控制器中(zhōng)爲從設備的PPC/MPC所設置的安全屬性進行比較。如果請求訪問的安全屬性不違反被訪問從設備的安全屬性,則允許訪問。如果在訪問中(zhōng)違反規則發生(shēng)沖突,則會引發安全沖突中(zhōng)斷。CPU0切換到安全模式以處理違規。
安全是個系統工(gōng)程,有了安全AHB控制器這個安全守衛,我(wǒ)(wǒ)們的SoC系統才能被滴水不漏地劃分(fēn)爲安全世界和非安全世界。
與此同時,安全AHB控制器還提供了很多功能,可以用來設置SoC安全相關的配置,并且還提供了一(yī)些寄存器,用于調試和處理違規訪問。關于安全AHB控制器的更多信息,請參考LPC55Sxx用戶手冊(User Manual)中(zhōng)Trusted Execution Environment相關章節。
- 分(fēn)類:新聞中(zhōng)心
- 作者:Liu Hao@NXP
- 來源:恩智浦MCU加油站
- 發布時間:2023-03-03 17:05
- 訪問量:
一(yī)、Cortex-M33 TrustZone
二、解剖總線上的主從設備
三、隻有TrustZone就夠了嗎(ma)?

四、安全AHB控制器
-
總線上,隻有Cortex M33内核CPU0具有TrustZone功能,而其他的主設備沒有此功能。站在總線的角度看,隻能判斷出CPU0 Cortex M33發出的請求和訪問是否是安全,卻無法判斷出其他主設備的訪問請求是安全或非安全。 -
對于總線上的從設備來說,從設備無法判斷來自總線的訪問是安全還是非安全的,因此也就無法通過以設置訪問規則的方式,拒絕違背訪問規則的非法請求和訪問。

關注威旺達網站及微信公衆号,了解 NXP MCU更多信息。
掃二維碼用手機看
相關新聞


恩智浦發布新一(yī)代安全高能效i.MX 91系列,爲廣泛的邊緣應用擴展Linux功能!

恩智浦人工(gōng)智能創新實踐平台正式啓動!

MCU在煙感傳感器上如何選型
20多年專注半導體(tǐ)
爲國内各行業廣大(dà)用戶提供高品質的NXP半導體(tǐ)産品
SINCE 1997
爲您量身定制解決方案
聯系我(wǒ)(wǒ)們

全國統一(yī)服務熱線
地址:北(běi)京市朝陽區廣渠路15号金茂府小(xiǎo)區23号院

威旺達公衆号
Copyright © 2022 北(běi)京威旺達電(diàn)子科技有限責任公司 All rights reserved