色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

基于M33核NXP LPC55Sxx MCU擁有的TrustZone技術來實現IoT安全

UtFs_Zlgmcu7890 ? 來源:lp ? 2019-03-26 09:58 ? 次閱讀

物聯網IoT)是嵌入式開發者的熱門話題,IoT系統產品變得更加復雜,同時也需要更好的方案來保證系統的安全。本文介紹基于M33核NXP LPC55Sxx MCU擁有的TrustZone技術來實現IoT安全。

一、TrustZone技術介紹

LPC5500系列MCU以Arm最新的Cortex-M33為核心,與前幾代產品相比,改進了產品架構并提高了集成度;大幅減小了功耗,并提供高級安全功能,通過Arm TrustZone-M保護資產。

近幾年來,物聯網(IoT)成為了嵌入式開發者的熱門話題。IoT系統產品變得更加復雜,同時也需要更好的方案來保證系統的安全。

傳統的方案是通過把軟件分成特權和非特權兩部分解決。特權級軟件利用MPU防止非特權軟件的應用,訪問包含敏感信息在內的關鍵系統資源。

這些方案對一些IoT系統非常適合,但是在一些情況下,只有兩層劃分是不夠的。特別是那些包含很多復雜特權級別的軟件組成的系統,特權級代碼的一個缺陷,就可能導致黑客徹底的控制整個系統。

為了更好地提高MCU的安全性能,Arm在ARMv8-M架構中引入了TrustZone技術。ARMv8-M中的TrustZone技術是一種可選擇的安全擴展,旨在為各種嵌入式系統應用提供基本的安全保障。

TrustZone技術將系統分為安全區和非安全區兩部分,并通過特殊的指令實現兩種區域內函數的相互訪問。

TrustZone的概念不是最新的了,它被應用在Arm Cortex-A系列處理器中已經有一段時間了,現在被擴展到了ARMv8-M 處理器中,它與Cortex-A處理器中的TrustZone并不是完全相同的,本篇中所描述的TrustZone技術都是基于Cortex-M處理器的。

1.1TrustZone的特性:

允許用戶將內存劃分為安全和非安全區域;

允許在未經過身份驗證時阻止調試安全代碼/數據;

NVIC、MPU、SYSTICK、內核控制寄存器等也被備份到兩個區域中 ,安全代碼和非安全代碼可以獨立訪問自己的資源;

安全區和非安全區都有MSP和PSP堆棧指針;

提出了Secure Gateway的概念,非安全代碼可以通過Secure Gateway訪問特定的安全代碼,這也是非安全代碼訪問安全代碼的唯一方式;

提供了一個Stack Limit Checking(堆棧限制檢查)功能,可以用于檢測堆棧溢出的情況。在Cortex-M33對應的ARMv8-M架構中,每個堆棧指針都有相應的堆棧限制寄存器

1.2Register banking

上節提到一些有內核相關的寄存器也被備份到了安全/非安全區域中,下圖展示了具體哪些通用/特殊寄存器被備份到兩種內存中。

1.3TrustZone 技術可以滿足的安全需求

Data protection:敏感數據可以存儲在安全內存中,只可以被安全軟件訪問。只有在安全檢查和授權之后,非安全軟件才可以訪問安全APIs。

Firmware protection:固件可以預裝載在安全區域中,防止逆向操作和惡意攻擊。

Operation protection:關鍵操作可以像安全固件一樣,被預加載到安全內存中,并且配置適當的外設僅在安全狀態下訪問。通過這種方式, 可以保護操作免受來自非安全端的入侵。

Secure boot:安全啟動機制可以使用戶對自己的平臺充滿信心,因為它始終從安全內存啟動。

二、Secure/Non-Secure存儲器配置

在Cortex-M33中,如果選配了TrustZone技術,則4G的內存空間將被劃分為安全和非安全內存區域。安全內存空間又可以進一步劃分為兩種類型: Secure和Non-secure Callable(NSC)。

三種內存區域的特性:

Secure:安全數據只可以被安全代碼訪問,安全代碼只有在CPU處于安全模式時才可以被執行;

Non-secure:非安全數據可以被安全和非安全狀態訪問,但非安全代碼只能在CPU處于非安全狀態時被執行;

Non-secure Callable(NSC):NSC區域作為非安全函數訪問安全函數的跳板。非安全代碼需要先跳轉到NSC區域中,執行SG指令,然后再跳轉到相應的的安全函數處執行,這也是NS代碼訪問S函數的唯一方式。

引入NSC存儲區的原因,是為了防止其他二進制數據(例如,具有與SG指令的操作碼相同的值的查找表)被用作安全狀態的入口函數。

2.1內存區域的的安全屬性定義

內存區域的安全屬性是由Secure Attribution Unit(SAU)和Implementation Defined Attribution Unit(IDAU) 共同決定的。

SAU的作用和IDAU是相似的,都是用于分離安全區和非安全區。兩者最大的區別是SAU位于CPU內部,IDAU在CPU外部。

無論是IDAU和SAU都可以定義一塊內存的安全屬性,此時CPU會選擇兩者中較高的安全屬性作為此塊內存最終的安全屬性,最高的安全屬性是Secure,其次是Non-Secure Callable,最后是Non-secure。

2.2IDAU

IDAU除了可以向處理器指示特定存儲器地址是Secure、NSC還是Non-secure,提供存儲器地址所在的區域編號之外,它還可以標記免受安全檢查的內存區域,例如ROM表。

理論上,IDAU是可以設計為可編程的,但是IDAU接口上的信號位于時序的關鍵路徑上,這會使IDAU的設計變得非常復雜,不切實際,也會導致設計中的門數更高。

實際上,IDAU只提供了有限的可配置的簡單存儲器映射。

LPC55Sxx 的IDAU提供的配置如下圖所示:

其中,0x00000000到0x1FFFFFFF是NS區域,在0x20000000到0xFFFFFFF范圍內,是根據存儲器地址的第28位來判斷該內存地址的安全屬性,若Bit_28=0, 則為非安全地址,若Bit_28=1, 則為安全地址。

2.3SAU

SAU為每個內存區域定義了一個Region Number(RN)。RN可以被TT指令用來決定目標內存的訪問權限和安全屬性。RN的數量可以被SAU配置為0、4或者8。

SAU是由設計者配置的,設計者可以在IDAU配置的內存屬性的基礎上,用SAU去重定義內存中的一些區域的安全屬性,CPU會根據IDAU和SAU的配置,決定內存的最終安全屬性。

LPC55Sxx復位后,默認的SAU配置是: 所有存儲空間都是安全的。結合IDAU的默認配置,LPC55Sxx的最終默認配置如下圖所示,即所有內存區域都是安全的。

三、Secure/Non-secure轉換

第二節中介紹了如何利用SAU和IDAU配置一塊內存區域的安全屬性,用戶可以在安全區和非安全區定義相應的函數,TrustZone技術允許兩種狀態下的函數相互調用,在進行相互調用時需要用到幾個特殊指令:SG、BXNS、BLXNS, 如下表所示。

執行狀態切換時的具體操作如下圖所示:

SG指令:用于從非安全狀態切換到安全狀態,是從非安全區跳轉到NSC區域之后執行的第一條指令;

BXNS指令: 用于從安全狀態返回到非安全狀態;

BLXNS指令: 用于在安全狀態下調用非安全函數。

這里介紹兩種特殊的函數:Entry function和Non-secure function。

Entry function是指那些可以被非安全函數調用的安全函數;

Non-secure function是指那些可以被安全函數調用的非安全函數。

用戶在實現兩種狀態下函數的相互調用時,不需要額外關注該執行哪條特殊指令(SG/BXNS/BLXNS),而只需要將那些被調用的函數定義為Entry function或 Non-secure function即可。下面簡單介紹如何定義以及使用Entry function和Non-secure function。

3.1Entry function

Entry function需要用“__attribute__((cmse_nonsecure_entry)) ”屬性修飾,舉例如下:

此時func1()已經被定義為了entry function,在非安全內存中調用entry function的方法與調用普通的非安全函數的方法是相同的,如下所示:

這樣即可實現非安全函數調用安全函數的功能。

3.2Non-secure function call

Non-secure function函數定義如下所示:

在安全內存中的調用non-secure function的方法如下:

這樣即可實現在安全函數中調用0x21000248u處的非安全函數。

四、總結

看到這里,各位看官是不是對LPC55Sxx中的TrustZone技術的使用方法有了初步的了解呢,下面小編再為大家總結一下使用TrustZone時軟件的工作流程:

在明白了這些之后,大家就可以開始行動起來,利用手里的LPC55Sxx來設計自己的安全系統了。

TrustZone詳細培訓視頻最后,讓我們來看看由本文作者做的,一個關于TrustZone的詳細培訓視頻,您可以更深入地理解前面所講的內容。

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

    關注

    146

    文章

    17123

    瀏覽量

    350994
  • 寄存器
    +關注

    關注

    31

    文章

    5336

    瀏覽量

    120232
  • 物聯網
    +關注

    關注

    2909

    文章

    44557

    瀏覽量

    372790

原文標題:【技術解析】設計安全系統?你也可以!

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    恩智浦LPC55S16 MCU獲得了PSA 2級和SESIP 2級保證認證

    LPC55S16 MCU屬于恩智浦EdgeVerse?計算和安全產品組合,是基于Arm? Cortex?-M33內核的通用LPC5500
    發表于 11-21 09:28 ?1754次閱讀

    大聯大世平集團推出基于NXP Cortex M33 LPC55S26產品的電腦外設參考設計

    大聯大世平推出的基于NXP Cortex M33 LPC55S26的電腦外設參考設計方案,可助力廣大用戶快速設計出包含鍵盤、鼠標、耳機在內的一套電腦外設產品。
    發表于 04-15 11:45 ?2353次閱讀
    大聯大世平集團推出基于<b class='flag-5'>NXP</b> Cortex <b class='flag-5'>M33</b> <b class='flag-5'>LPC55</b>S26產品的電腦外設參考設計

    LPC55S16-EVK MCU用于工業應用!!!

    LPC55S16-EVK功能和應用LPC55S16-EVK開發板基于LPC55S1x MCU系列,這是基于Arm?Cortex?-M33
    發表于 09-08 17:08

    物聯網安全之cortex m23/m33 MCU ***實操 精選資料分享

    本文針對ARMv8m架構MCU安全特性進行介紹,以nxp LPC55xx系列和STM32L5xx系列為例,為大家闡述如何使用
    發表于 07-23 07:52

    基于LPC55xxx CM33的***原理與應用是什么

    LPC55sxx系列開發板,MCUXpresso IDE v11.1.1_3241集成開發工具。二:實現原理2.1:區域劃分***將內存和外設分為安全區域(S)和非
    發表于 02-09 06:39

    介紹Cortex-A和Cortex-MTrustZone之間的差異

    應用,數字版權保護等等,都是基于TrustZone實現保護的。其實對于底層安全技術來說,無論是哪個場景的
    發表于 07-13 14:45

    ARMv8-M trustzone IOT安全之基于Cortex-M33的TFM測試

    1、基于Cortex-M33的TFM 測試  針對IOT(Internet Of Things,萬物物聯),ARM v8-M 架構也引入了trus
    發表于 09-14 14:41

    Arm Cortex?-M33處理器技術參考手冊

    Cortex?-M33處理器是一款低門數、高能效的處理器,適用于微控制器和深度嵌入式應用。 該處理器基于ARM?V8-M架構,主要用于安全性非常重要的環境。 處理器支持的接口包括: ·Code
    發表于 08-17 07:23

    LPC55S69是兩個ARM Cortex M33內核,這種雙內核應用在那種場景中比較合適?

    NXPLPC55S69是兩個ARM Cortex M33內核,這種雙內核應用在那種場景中比較合適?顯示全部
    發表于 10-30 07:40

    LPC55S66JBD64K NXP Semiconductors LPC55S6x Arm? Cortex?-M33微控制器

    電子發燒友網為你提供NXP(ti)LPC55S66JBD64K相關產品參數、數據手冊,更有LPC55S66JBD64K的引腳圖、接線圖、封裝手冊、中文資料、英文資料,LPC55S66J
    發表于 10-29 13:06

    物聯網安全之cortex m23/m33 MCU trustzone實操

    本文針對ARMv8m架構MCU安全特性進行介紹,以nxp LPC55xx系列和STM32L5xx系列為例,為大家闡述如何使用
    發表于 12-04 13:51 ?11次下載
    物聯網<b class='flag-5'>安全</b>之cortex <b class='flag-5'>m</b>23/<b class='flag-5'>m33</b> <b class='flag-5'>MCU</b> <b class='flag-5'>trustzone</b>實操

    基于LPC55xxx CM33TrustZone原理與應用

    基本的安全保障。本文基于CM33LPC55sxx系列開發板,MCUXpresso IDE v11.1.1_3241集成開發工具。二:實現
    發表于 12-05 15:51 ?13次下載
    基于<b class='flag-5'>LPC55</b>xxx CM<b class='flag-5'>33</b><b class='flag-5'>核</b>的<b class='flag-5'>TrustZone</b>原理與應用

    DS13737 超低功耗Arm? Cortex?-M33 32位MCU+TrustZone?+FPU,240 DMIPS,2MB閃存,786 KB SRAM

    DS13737 超低功耗Arm? Cortex?-M33 32位MCU+TrustZone?+FPU,240 DMIPS,2MB閃存,786 KB SRAM
    發表于 11-23 08:28 ?0次下載
    DS13737 超低功耗Arm? Cortex?-<b class='flag-5'>M33</b> 32位<b class='flag-5'>MCU+TrustZone</b>?+FPU,240 DMIPS,2MB閃存,786 KB SRAM

    DS13086 超低功率Arm? Cortex?-M33 32位MCU+TrustZone?+FPU, 240 DMIPS,高達2MB的閃存,786KB的SRAM,密碼器

    DS13086 超低功率Arm? Cortex?-M33 32位MCU+TrustZone?+FPU, 240 DMIPS,高達2MB的閃存,786KB的SRAM,密碼器
    發表于 11-23 08:28 ?0次下載
    DS13086 超低功率Arm? Cortex?-<b class='flag-5'>M33</b> 32位<b class='flag-5'>MCU+TrustZone</b>?+FPU, 240 DMIPS,高達2MB的閃存,786KB的SRAM,密碼器

    [LPC55S6X]解決在-dist之后無法編譯的問題的思路

    在進行bsp適配的時候,在bsp\lpc55sxx\lpc55s36_nxp_evk下輸入命令scons —dist
    的頭像 發表于 10-11 17:00 ?770次閱讀
    [<b class='flag-5'>LPC55</b>S6X]解決在-dist之后無法編譯的問題的思路
    主站蜘蛛池模板: Y8848高清私人影院软件优势| 女性BBWBBWBBWBBW| 99久久香蕉| 色婷婷激婷婷深爱五月小蛇| 国产精品一区二区在线播放| 野花日本韩国视频免费高清观看| 久在线观看福利视频| 大伊人青草狠狠久久| 亚洲女初尝黑人巨磁链接| 嫩草影院永久在线一二三四| 国产精品.XX视频.XXTV| 最新亚洲人成网站在线影院| 日本工口生肉全彩大全| 精品第一国产综合精品蜜芽| AV精品爆乳纯肉H漫网站| 亚洲黄色成人| 人人在线碰碰视频免费| 久久精品99国产精品日本| 纯肉高H放荡受BL文库| 幼儿交1300部一区二区| 天堂网久久| 胖老太与人牲交BBWBBW高潮| 果冻传媒在线观看高清完整免费| YIN荡的老师系列第6部分视频| 亚洲欧美国产视频| 天上人间影院久久国产| 免费欧美大片| 亚州精品永久观看视频| 青草在线观看视频| 老师掀开短裙让我挺进动态| 国产在线不卡| 国产成人高清在线观看播放| 美女全光末满18勿进| 健身房被教练啪到腿软H| 成人国产亚洲欧美成人综合网 | 公和我做好爽添厨房中文字幕| 最美女人体内射精一区二区| 亚洲精品123区在线观看| 美女强奷到抽搐在线播放| 尿了么app| 日本综艺大尺度无删减版在线 |