TrustZone for Armv8-M和 TrustZone是什么关系?

嵌入式资讯精选 2020-08-20 00:00

  • TrustZone for Armv8-M  TrustZone 是什么关系


首先 “TrustZone for ARMv8-M” 是一个 专有名词,它和 Cortex-A 系列上引入的 “TrustZone”  具有以下的共同特点:

    • 都是销售用语

    • 都高举 TrustZone 大旗

    • 仅在纯理论层面共享一些抽象的模型,用于理解和设计嵌入式信息安全

    • 安全效果基本相同


它们至少在以下几个方面存在差异:

    • 架构定义完全不同

    • 技术实现完全不同

    • 执行效率完全不同

    • 各类成本完全不同

    • 使用方法完全不同

    • ……


    (其实,我个人觉得TrustZone for ARMv8-M 比 TrustZone 要先进。这当然不仅仅因为“我是 Cortex-M 阵营的”,更因为我觉得“用脚趾头想都知道,TrustZone for ARMv8-M 是后来者,当然有充分的理由比 TrustZone 先进啦。”)


  • 功能安全Safety 信息安全Security


打个比方,你买了一个智能灯泡,那么对于这个产品来说:

    • 用于保护灯泡不会因为电压过高、过低或者电流过大而损坏的保护电路,实现的就是功能安全,用英文单词 Safety 表示;

    • 用于保护你家灯泡不被隔壁老王控制,或者保护你家灯泡上的摄像头(如果有的话)以及麦克风(如果有的话)不被隔壁老王窃听的设计,实现的就是信息安全,用英文单词 Security 表示。


    再进一步总结来说,你可以简单粗暴的认为:


Safety 保证的是系统在各种不同(通常是极端)的环境下,都拥有正常的工作逻辑;或者说所提供的功能和服务都是正常的;如果环境太极端,就进入某种保护状态,以避免为用户提供错误或者危险的服务。——Safety 对抗的是来自环境的挑战


Security 保证的是在人为破坏的情况下,系统能有效地检测到攻击行为、确保有效信息不会被泄露、系统不会被未经授权的用户所控制—— Security 对抗的是隔壁老王以及各类隐藏在网络上的云老王

NOTE:关于Safety和Security的关系,更多详细信息,请参考文章《大白话说嵌入式安全(1)》


实际上 Security 必然是通过硬件和软件实现的,只有它的功能、逻辑得到充分的保护,才能有效地对抗攻击者。因此,“老王”们通常利用攻击系统的Safety,也就是功能安全,来试图破构建其上的 信息安全—— Security 是建立在 Safety 之上的,谈论 Security 的时候必然离不开Safety——这也是大家常常混淆着两个概念的原因。同时,我们不能因为它们有单方向的依存关系(Security 依赖于 Safety,反过来却不一定),就认为我们可以不分场合的将它们混用。



  • 为什么人们突然这么重视 Security


过去,大多数微控制器的项目,1)本地团队自己就可以完成了,2)往往不用跟第三方合作,3)也不需要大规模的连接到网络上,4)模块化的目的单纯为了快速开发,因而过去的系统在信息安全上的问题并不是非常突出,基本上就停留在克隆抄袭这个层面上。

然而,除了克隆抄袭这个永恒的原因以外,1)IoT 的到来使得更多的嵌入式设备无法孤立的存在,因此通信安全变得突出;2)生态系统和平台的概念深入人心,单一的本地团队越来越无法独立的完成整个项目,因而与第三方合作成为常态,这就必然导致第三方黑盒子模块的引入,运行时的系统信息安全变得突出;3)商业模式的建立鼓励多方合作,模块化只会帮助IP更高效的被使用而并不天然保护知识产权,更进一步说,单纯的模块化技术并不能保证厂商从最终产品的收益中获得持续稳定的收益。


基于以上原因,简单说就是:因为要与老王合作卖煎饼,我提供设备,老王提供服务,我即担心隔壁老王“你懂的”原因窥探你的财产,同时又希望老王不至于偷了我设备的图纸、把我一脚踢开自己赚钱,所以Security 在 IoT 时代是必须的


  • 一句话抓住安全技术的精髓


  • Security 技术实现的核心是 隔离(Isolation )。

  • Isolation 在时间上的实现就是把处理器时间按照不同的安全级别进行分配——建立所谓的安全的运行(Secure )和非安全(Non-secure)的运行、或者是不同安全级别的运行模式。

  • Isolation 在空间上的实现就是各类对存储器以及外设访问的权限控制(Access Attribution Management)。


值得特别说明的是,对访问权限的控制是一个通用的工具(Tool),你既可以用它来实现各类资源的分配,比如操作系统中的资源管理;也可以用它来实现信息安全。这并不是说,资源管理是信息安全的一部分,也不能说信息安全就是通过资源管理来实现的——这种说法最要命的地方就是“似是而非”,因而迷惑了很多人。如果有人跟你讨(争)论这个,我的建议是:你跟他打赌吵架都没用,自己心里明白就可以了——“对对对,诸葛孔明是两个人”。


  • TrustZone for ARMv8-M 之 程序员不得不知道的技术

既然我们就是要简单粗暴,那么就不用扯那么多犊子。ARMv8-M Security Extension 的本质仍然是实现 Isolation。那么要达到怎样的效果呢?


    • CPU在时间上被划分成了两个运行状态:Secure state 和 Non-Secure state

    • 空间上,4GB 的地址空间被划分为两个阵营:Secure Memory 和 Non-Secure Memory

    • 保存在Secure Memory 上的代码就是 Secure Code,它必须在 Secure State下运行;保存在Non-Secure Memory上的代码就是Non-Secure Code,它必须在Non-Secure State下运行——简单说就是“你是你、我是我”。

    • Secure Code可以访问所有的数据。


Non-Secure Memory:  你瞅啥?

Secure Code: 瞅你咋地?

Non-Secure Memory: 不……咋地……你……你瞅我我也不知道……


    • Non-Secure Code只能访问Non-Secure Memory上的数据;


Secure Memory:  你瞅啥?

Non-secure Code: 瞅你咋地?

Secure Memory: 我老大你认识不?

Secure Fault: 是谁在我地盘上横啊?

Non-secure Code: 哥,这……这误会阿……哥

Secure Fault: 误会?Secure Memory是你来得地er么?你!这!就!是!搞!事!来啊,拖走!

Non-secure Code: 哥……哥,消消气,你看啊,这地盘也不是你划分的,咱还不得找管事er的人说理不是?


    • Secure Memory 和 Non-Secure Memory是由 Secure Attribution Unit 和 Implementation Defined Attribution Unit 共同决定的。

      你可以把他们理解为一对夫妻:男人 IDAU 主外(由芯片厂商定义),女主内(SAU,是 Secure Code 在运行时刻通过寄存器来配置的)。对Cortex-M23/33的每一个总线访问,SAU和IDAU都会根据目标地址对比自己所掌握的信息进行投票,仲裁的优先顺序依次是:Non-SecureNon-Secure-CallableSecure。谁更接近Secure谁说了算。



SAU: 呦~ Fault哥,又抓到人啦?

Secure Fault: 可不,Secure Memoy说这小子是Non-Secure的。

Secure Memory:  姐,你可要帮我做主,这小子居然瞅了我一眼!

Non-secure Code: 我哪知道……

SAU/IDAU : 小子,说其他没用,地址多少?

Non-secure Code:  我……来自非安全域……

SAU: 呦,Non-Secure的人啊,你知道你偷看的地址属于Secure的么?你就瞅人家?你也不照照镜子,Secure Memory是你能瞅的么?

Non-secure Code:我哪知道它是Secure Memory啊?

SAU/IDAU : 我说是就是!

Non-secure Code:哦……哦……(低头不敢看)

SAU/IDAU:Fault 哥,去查查老祖宗立下的规矩,该汇报就汇报,该RESET就RESET,按程序办事。

Secure Fault: 得令,走你!


    • Secure Code会通过一些专用的 API 来为Non-Secure Code提供服务,这些专用的API被称为 Secure Entry。Secure Entry 必须放在 Non-Secure-Callable 属性的Memory内。Non-Secure-Callable 本身其实是Secure Memory,但是它特殊的地方就在于可以存放Secure Entry。——你可以把NSC理解为银行的营业大厅,而那些防弹玻璃上开的一个个柜台小洞就是Secure Entry


    • TrustZone for ARMv8-M 所追求的是,Non-Secure Code 和 Secure Code都 以为自己独占整个系统。对Cortex-M23来说,Non-Secure Code以为自己运行在一个Cortex-M0/M0+上;而对Cortex-M33来说,Non-Secure Code来说,它已为自己独占的是Cortex-M3/M4。


      我们知道,Non-Secure Code的独占是“错觉”,因为它并不知道Secure Code的存在,任何出格的访问(站在它角度来说,任何对未知空间的访问)都会被截获,当作Secure Fault。Secure Code的独占是货真价实的,因为它不仅知道Non-Secure的存在,也可以随时访问他们。


      为了构建这种错觉,代价是巨大的。对于一些核心的资源,比如NVIC,SysTick,MPU,Cortex-M23/33都货真价实的为Non-Secure Code提供了额外的一份;对于另外一些昂贵的核心资源,比如流水线,通用寄存器页、Debug逻辑、浮点运算单元,Secure Code就只能屈尊和Non-Secure Code分时复用(共享)了。


    • Non-Secure Code 与 Secure Code 通过Secure Entry进行信息交换。当Non-Secure Code调用Secure Entry时,如果Secure Entry是有效的,并且存放于NSC Memory里,那么CPU就会从Non-Secure state切换到Secure State,并运行NSC里面的代码(NSC是Secure Memory,所以里面的代码是Secure Code),一般来说,Secure Entry会立即跳转到其它纯粹的Secure Memory中执行。 

      Secure Code可以借助特殊的函数指针以回调(Callback)的方式调用Non-Secure Memory中的代码(并暂时性的切换回Non-Secure state)。更多的细节,还请自己阅读公开的各类文档。      


    •  Secure Code 和 Non-Secure Code 都可以拥有自己的异常处理程序,这里面涉及到的Secure和Non-Secure的切换都是硬件自动处理好的,程序员不用操心。值得说明的是,复位以后,整个系统都是Secure状态,所有的异常都属于Secure Code,这个时候,只有Secure Code可以大发慈悲的分配一些中断给Non-Secure Code使用。而且,我们有一个专门的寄存器位可以让所有Non-Secure Exception的优先级比任何Secure Exception都“低人一等”。


总结来说,TrustZone for ARMv8-M 创造了两个世界,Secure domainNon-Secure domain。SAU/IDAU共同将4G地址空间拆分为多个Secure,Non-Secure和Non-Secure-Callable的Region。无论是Secure domain还是Secure domain都可以把自己看作是一个普通的Cortex-M0/M0+或者Cortex-M3/M4处理器来开发——大家都有自己独立的NVIC,Systick甚至是独立的MPU。

Secure 可以打 Non-Secure,Non-Secure不能还手,因为所有的资源理论上都首先属于Secure domain



  • 结语


Cortex-M23/33 所引入的安全扩展为整个ARM嵌入式系统的信息安全提供了基础(Fundation)或者说根基(The Root of the Security)。然而,单单依靠“基础”不足以构建起坚固的防御体系——芯片厂商、OEM厂商,软件IP厂商、工具链、系统软件及应用设计,任何一环都需要引入必要的信息安全技术和措施。我们可以说:


没有 TrustZone for Armv8-M,建立在 Cortex-M 系统之上的安全将是空中楼阁;而单单依靠 TrustZone for Armv8-M 来保护信息安全,更是掩耳盗铃。用户不仅要知道自己要保护什么,如何保护,更要知道:构建一个基础坚实的安全设计所要做的 比贴一张“TrustZone Inside”的标签纸 到自己的产品上 要多得多的多。

1.芯师爷|2020硬核中国芯 重磅启动!

2.【直播福利+预告】第三期“嵌入式与物联网开发技术”线上分享即将开始啦~

3.使用ZYNQ实现复杂嵌入式系统,真的好用!

4.工业互联网:嵌入式系统的机遇和挑战

5.余承东签发内部文件:华为要造屏幕芯片!

6.RTOS是如何实现多任务的?

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

嵌入式资讯精选 掌握最鲜资讯,尽领行业新风
评论
  • 车载光纤通信随着ADAS(高阶驾驶辅助系统)、汽车智能网联、V2X和信息娱乐技术的不断发展,车载电子系统和应用数量迅速增加。不断增长的车内传输数据量对车载通信网络造成了巨大的数据带宽和安全性需求,传统的车载总线技术已经不能满足当今高速传输的要求。铜缆的广泛使用导致了严重的电磁干扰(EMI),同时也存在CAN、LIN、FlexRay等传统总线技术不太容易解决的问题。在此背景下,车载光纤通信技术逐渐受到关注和重视,除了大大提高数据传输率外,还具有抗电磁干扰、减少电缆空间和车辆质量等优点,在未来具有很
    广电计量 2024-12-18 13:31 55浏览
  • 以人形机器人和通用人工智能为代表的新技术、新产品、新业态蓬勃发展,正成为全球科技创新的制高点与未来产业的新赛道。01、Optimus-Gen 2来了,人形机器人管家还远吗?没有一点点防备,特斯拉人形机器人Optimus-Gen 2来了!12月13日,马斯克于社交媒体上公布了特斯拉第二代人形机器人的产品演示,并预计将于本月内发布。在视频中,Optimus-Gen 2相比上一代有了大幅改进,不仅拥有AI大模型的加持,并在没有其他性能影响的前提下(相比上一代)将体重减少10kg,更包含:由特斯拉设计的
    艾迈斯欧司朗 2024-12-18 12:50 29浏览
  •        随着对车载高速总线的深入研究,以电信号为媒介的传输方式逐渐显露出劣势,当传输速率超过25Gbps时,基于电信号传输已经很难保证长距离传输下的信号质量与损耗。在这样的背景下,应用于工业领域的光通信技术因其高带宽、长距离、低电磁干扰的特点得到了密切的关注,IEEE在2023年发布了802.3cz[1]协议,旨在定义一套光纤以太网在车载领域的应用标准。MultiGBASE-AU总览       以下是Mult
    经纬恒润 2024-12-17 17:29 70浏览
  • You are correct that the length of the via affects its inductance. Not only the length of the via, but also the shape and proximity of the return-current path determines the inductance.   For example, let's work with a four-layer board h
    tao180539_524066311 2024-12-18 15:56 34浏览
  • 户外照明的“璀璨王者”,艾迈斯欧司朗OSCONIQ® C3030降临啦全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)近日宣布,推出新一代高性能LED——OSCONIQ® C 3030。这款尖端LED系列专为严苛的户外及体育场照明环境而设计,兼具出色的发光强度与卓越的散热效能。其支持高达3A的驱动电流及最大9W的功率输出,以紧凑扁平封装呈现卓越亮度和可靠性,确保高强度照明持久耐用且性能出众。应用领域01体育场及高杆照明OSCONIQ® C 3030以卓越的光通量密度、出
    艾迈斯欧司朗 2024-12-18 14:25 36浏览
  • 随着国家对环保要求日趋严格。以铅酸电池为动力的电动自行车、电动摩托车,将逐渐受到环保管制。而能量密度更高的磷酸铁锂等锂电池成为优先的选择,锂电池以其高能量密度、快速充电、轻量化等特点,已经大量应用于电动车领域。光耦在锂电池系统PMU中的应用,能提供完善的安全保护和系统支撑。BMS和电池被封装成安装所需要的尺寸外形,高速的CAN以及RS-485等通信总线,被应用在与控制器、中控之间通信。晶台光耦,被广泛应用于通信隔离、双MCU系统应用地隔离、电机驱动隔离等。下图例举在电动摩托车上的应用中包含的部件
    晶台光耦 2024-12-17 13:47 57浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-18 14:02 56浏览
  •  2024年下半年,接二连三的“Duang Duang”声,从自动驾驶行业中传来:文远知行、黑芝麻、地平线、小马智行等相继登陆二级市场,希迪智驾、Momenta、佑驾等若干家企业在排队冲刺IPO中。算法模型的历史性迭代与政策的不断加码,让自动驾驶的前景越来越清晰。由来只有新人笑,有谁听到旧人哭。在资本密集兑现的自动驾驶小元年里,很多人可能都已经遗忘,“全球自动驾驶第一股”的名号,曾经属于一家叫做图森未来的公司。曾经风光无两的“图森”,历经内讧与退市等不堪往事之后,而今的“未来”似乎被锚
    锦缎研究院 2024-12-18 11:13 59浏览
  • 2003年买的电子管功放机,俗称胆机,坏过几次,咨询厂家,购买零件,自己修理,干中学,学中干。有照片记录的是2011年3月,一天,发现整流管比之前红亮了很多,赶紧关机,想找原因,反反复复折腾了几个月,搞好了。就此,还在网上论坛咨询和讨论,欧博Rererence 5.0电子管发粉红色光,何故?-『胆艺轩音响技术论坛』-胆艺轩[Tubebbs]论坛 发表于2011-5-7同时与厂家联系得到支持,见文:29kg胆机修理之联想——环保简易,做到真难!-面包板社区 发表于2011-6-13又继续使用了多年
    自做自受 2024-12-17 22:18 121浏览
  •   前言  作为一名电子专业的学生,半导体存储显然是绕不过去的一个坎,今天聊一聊关于Nand Flash的一些小知识。  这里十分感谢深圳雷龙发展有限公司为博主提供的两片CS创世SD NAND的存储芯片,同时也给大家推荐该品牌的相关产品。  一、定义  存储芯片根据断电后是否保留存储的信息可分为易失性存储芯片(RAM)和非易失性存储芯片(ROM)。  非易失性存储器芯片在断电后亦能持续保存代码及数据,分为闪型存储器 (Flash Memory)与只读存储器(Read-OnlyMemory),其中
    雷龙发展 2024-12-17 17:37 55浏览
  • 1. 磁性材料的磁化曲线磁性材料是由铁磁性物质或亚铁磁性物质组成的,在外加磁场H 作用下,必有相应的磁化强度M 或磁感应强度B,它们随磁场强度H 的变化曲线称为磁化曲线(M~H或B~H曲线)。磁化曲线一般来说是非线性的,具有2个特点:磁饱和现象及磁滞现象。即当磁场强度H足够大时,磁化强度M达到一个确定的饱和值Ms,继续增大H,Ms保持不变;以及当材料的M值达到饱和后,外磁场H降低为零时,M并不恢复为零,而是沿MsMr曲线变化。材料的工作状态相当于M~H曲线
    锦正茂科技 2024-12-17 10:40 123浏览
  • 上汽大通G90是一款集豪华、科技与舒适于一身的中大型MPV,号称“国产埃尔法”。在国内市场,作为“卷王”的G90主要面向中大型MPV市场,满足家庭出行、商务接待和客运租赁等多元化场景需求,在国内市场上取得了不错的销售成绩。在海外市场,上汽大通G90也展现出了强大的竞争力,通过技术创新和品质提升,上汽大通的产品在国际市场上获得了广泛认可,出口量持续增长,如果你去过泰国,你就应该可以了解到,上汽的品牌出海战略,他们在泰国有建立工厂,上汽大通G90作为品牌的旗舰车型之一,自然也在海外市场上占据了重要地
    lauguo2013 2024-12-18 10:11 68浏览
  • 随着现代汽车工业的不断发展,驾驶安全与舒适性成为消费者关注的焦点。在这个追求极致体验的时代,汽车ASF随动转向LED大灯技术应运而生,它不仅代表了车辆操控辅助系统的最新进展,更是对未来智能安全出行愿景的一次大胆探索。擎耀将深入探讨ASF随动转向技术的原理及落地方案,旨在为汽车LED照明升级行业提供一份详尽且实用的参考。首先,ASF随动转向技术不是什么高精尖的技术,一般的汽车大灯制造厂商都可能完成,通过软硬件的逻辑加上传感器,基本就可以实时监测车辆的行驶状态,包括但不限于车速、转向角度等关键参数。
    lauguo2013 2024-12-17 14:43 51浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦