痞子衡嵌入式:ARM Cortex-M內核那些事(3.2)- 安全模塊看特性(M23/33/35P)

来源:https://www.cnblogs.com/henjay724/archive/2020/01/26/12234795.html
-Advertisement-
Play Games

ARM Cortex-M處理器家族發展至今(2020),已有8代產品,除了之前介紹過的CM0/CM0+、CM1、CM3、CM4、CM7,還有主打安全特性的CM23、CM33、CM35P。 ...



  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是ARM Cortex-M功能模塊,不過側重點是三款安全特性處理器。

  ARM Cortex-M處理器家族發展至今(2020),已有8代產品,除了上一篇 《Cortex-M功能模塊看差異》 介紹過的CM0/CM0+、CM1、CM3、CM4、CM7,還有主打安全特性的CM23、CM33、CM35P。

1.Cortex-M安全特性

  近幾年來, 物聯網成為了嵌入式系統開發者們的熱門話題。當你提及物聯網,安全是每個人都十分關註的話題。嵌入式系統產品需要更好的方案來保證系統的安全。鑒於此,ARM發佈了全新ARMv8-M架構,以及基於該架構的三款處理器ARM Cortex-M23/33/35P,引入瞭如下安全特性:

1.1 TrustZone

  ARMv8-M架構包含了一個叫做TrustZone的安全擴展,這項安全加密技術誕生於2004年,之後隨著移動應用的普及在Cortex-A系列處理器上發揚光大。而在物聯網的嵌入式領域中,一直都使用功耗比更加優秀的Cortex-M處理器並不具有此功能,直到現在Cortex-M23/33的出現,才將這種技術帶到了物聯網底層中。
  TrustZone導入了安全和非安全狀態的正交劃分,非安全狀態的軟體只能訪問非安全狀態的存儲空間和外圍設備,安全軟體可以訪問兩種狀態下的所有資源。TrustZone安全機制可以阻止黑客控制整個設備,限制了攻擊的影響,還可以實現系統遠程恢復。此外ARMv8-M架構也引入了堆棧邊界檢查和增強的MPU設計,促使額外安全措施的採用。

1.2 Anti-tampering

  物理攻擊的定義可分為侵入式及非侵入式攻擊等兩大類,侵入式攻擊需要拆除晶元封裝,利用晶元層級的漏洞發動攻擊,而非侵入式攻擊,則如旁路攻擊(Side-Channel Attacks,簡稱SCA),在距離晶元很近的情況下,偵測如晶元的耗電或在操作密碼時放射出的電磁場等外洩的信息。這兩種攻擊的目標不外乎在裝置植入惡意程式,或是取得內部敏感信息。
  ARM推出的全新Cortex-M35P,是Cortex-M產品線中首款具備防竄改以及防禦物理攻擊能力的處理器。Cortex-M35P搭載與SC000、SC300等SecurCore處理器相同的防竄改技術,可幫助嵌入式安全開發人員阻止物理篡改並實現更高級別的安全認證。

2.Cortex-M功能模塊差異

  由於CM23是CM0/CM0+的升級,CM33是CM3/CM4的升級,故我們僅針對性地比較原版與升級版內核。

2.1 CM0+ vs CM23

cortex-m23

  那麼CM23到底改進了什麼?

  • ARMv8-M Baseline CPU內核:ARM公司於2016年推出的內核。相比ARMv6-M新增了32-bit硬體除法器。
  • NVIC嵌套向量中斷控制器:最大支持240個外部中斷,但保持4級搶占優先順序(2bit)不變。
  • AHB5匯流排:一條32bit AMBA-5標準的高性能system匯流排負責所有Flash、SRAM指令和數據存取。。
  • MPU存儲器保護單元:最大可將記憶體分為16*8個region。
  • 調試模塊:最大4個硬體斷點Breakpoint保持不變,數據監測點Watchpoint最大增為4個。
  • ETM跟蹤單元:ETM提供實時指令和數據跟蹤。
  • Systick定時器:定時器個數增大到2個。

  那麼CM23到底增加了什麼?

  • TrustZone軟體安全特性:,TrustZone導入了安全和非安全狀態的正交劃分,非安全狀態的軟體只能訪問非安全狀態的存儲空間和外圍設備,安全軟體可以訪問兩種狀態下的所有資源。

2.2 CM4 vs CM33

cortex-m33

  前面比較完了CM0+與CM23,再來看看CM33比CM4增強在了哪裡:

  那麼CM33到底改進了什麼?

  • ARMv8-M Mainline CPU內核:ARM公司於2016年推出的內核。相比ARMv7E-M去除了指令分支預測。
  • NVIC嵌套向量中斷控制器:最大支持480個外部中斷,但保持8-256級優先順序(8bit)不變。
  • 2x AHB5匯流排:2條AHB5匯流排,其中AHB-P外設介面完成原來system匯流排功能, AHB-S從屬介面負責外部匯流排控制器(如DMA)功能。
  • MPU存儲器保護單元:最大可將記憶體分為16*8個region。
  • Systick定時器:定時器個數增大到2個。

  那麼CM33到底增加了什麼?

  • TrustZone軟體安全特性:TrustZone導入了安全和非安全狀態的正交劃分,非安全狀態的軟體只能訪問非安全狀態的存儲空間和外圍設備,安全軟體可以訪問兩種狀態下的所有資源。

2.3 CM33 vs CM35P

cortex-m35p

  前面比較完了CM33與CM4,再來看看CM35P比CM33增強在了哪裡:

  那麼CM35P到底改進了什麼?

  額,CM35P相比CM33並沒有改進什麼現有模塊。

  那麼CM35P到底增加了什麼?

  • I-Cache緩存區:即是我們通常理解的L1 Cache,Cache大小為2-16KB。
  • Anti-tampering物理安全特性:具備抵禦各種物理攻擊的設計,能夠透過嵌入式安全機制協助開發者防禦物理竄改攻擊,讓產品取得更高層級的安全認證。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 操作系統(Operation System,OS) 操作系統作為介面的示意圖  沒有安裝操作系統的電腦,通常被稱為 裸機 如果想在 裸機 上運行自己所編寫的程式,就必須用機器語言書寫程式 如果電腦上安裝了操作系統,就可以在操作系統上安裝支持的高級語言環境,用高級語言開發程式 1.1 操作 ...
  • ...
  • MyBatis 今天大年初一,你在學習!不學習做什麼,鬥地主...人都湊不齊。學習吧,學習使我快樂!除了詩和遠方還有責任,我也想擔當,我也想負責,可臣妾做不到啊,怎麼辦?你說怎麼辦,為啥人家能做到你做不到,因為人家比你多做了那麼一點點。哪一點點?就那麼一點點,只要你也多做那麼一點點,不就做到了!.. ...
  • Python 官方文檔 PEP3107(函數註解)的譯文,本人原創。 ...
  • 錯誤集合 【錯誤】當前+.NET+SDK+不支持將+.NET+Core+3.0+設置為目標。請將+.NET+Core+2.2+或更低版 【解決方法】勾選上就可以了 2. 【錯誤】 add-migration initBuild started...Build succeeded.System.Arg ...
  • [//title]:(簡單配置讓iterm2用得更爽) [//englishTitle]:(awesome iterm2 config) [//category]:(mac,iterm2) [//tags]:(mac,iterm2,dotfiles) [//createTime]:(20200115 ...
  • 在防火牆中開放埠80和埠22的方法如下: #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT #/etc/rc.d/init.d/ipt ...
  • 本文章簡單的介紹了關於linux下在利用命令來操作apache的基本操作如啟動、停止、重啟等操作,對入門者不錯的選擇。本文假設你的apahce安裝目錄為 usr local apache2,這些方法適合任何情況apahce啟動命令:推薦 本文章簡單的介紹了關於linux下在利用命令來操作apache ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...