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是如何实现多任务的?

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

嵌入式资讯精选 掌握最鲜资讯,尽领行业新风
评论 (0)
  •        深夜的公园里,当路灯熄灭后,传统监控摄像头只能拍出模糊的黑白画面,仿佛老式胶片电影里的场景。而搭载为旌瑶光ISP的摄像头,却能像猫科动物一样,在几乎全黑的环境中捕捉到行人衣服的颜色、树叶的纹理,甚至快速跑动的宠物狗毛发细节。这种从“黑白默片”到“全彩4K电影”的跨越,背后是为旌瑶光ISP对传统红外补光技术的颠覆性创新。一、传统方案之困:被红外光“绑架”的夜视世界        传统安防摄像头依赖红外
    中科领创 2025-03-07 16:50 335浏览
  • 文/Leon编辑/cc孙聪颖2025年全国两会进行时,作为“十四五”规划收官之年,本届两会释放出坚定目标、稳中求进、以进促稳等信号。其中,企业家们的建议备受关注,关系到民营经济在2025年的走向。作为国内科技制造业的“老兵”,全国人大代表、TCL集团创始人及董事长李东生在本届两会中提出三份代表建议,包括《关于优化中国科技制造业融资环境的建议》、《关于加强AI深度伪造欺诈管理的建议》和《关于降低灵活就业人员社会保险参保门槛的建议》,表现出对科技制造、AI发展和劳动者保障方面的关注。会后,李东生接受
    华尔街科技眼 2025-03-06 19:41 149浏览
  • 近年来,越来越多的企业在5S管理的基础上,开始追求6S、7S甚至8S管理,仿佛S越多,管理就越先进,企业就越优秀。于是,6S增加了“安全”,7S又加上了“节约”,8S甚至引入了“学习”……看似更加全面,实则很多企业只是机械地增加S,却忽略了管理的核心目标:提升效率、降低浪费、优化工作环境。优思学院认为,5S本身已经是一套成熟的精益管理工具,它的核心理念不仅简单高效,而且易于实施和推广。如果企业只是为了赶时髦,盲目增加S,而没有真正理解5S的本质,那么这些额外的“S”很可能会变成管理上的负担,而不
    优思学院 2025-03-07 12:43 207浏览
  • 多人同时共享相同无线网络,以下场景是否是您熟悉的日常?姐姐:「妈~我在房间在线上课,影音一直断断续续的怎么上课啊!」奶奶:「媳妇啊~我在在线追剧,影片一直卡卡的,实在让人生气!」除此之外,同时间有老公在跟客户开在线会议,还有弟弟在玩在线游戏,而妈妈自己其实也在客厅追剧,同时间加总起来,共有五个人同时使用这个网络!我们不论是在家里、咖啡厅、餐厅、商场或是公司,都会面临到周遭充斥着非常多的无线路由器(AP),若同时间每位使用者透过手机、平板或是笔电连接到相同的一个网络,可想而知网络上的壅塞及相互干扰
    百佳泰测试实验室 2025-03-06 16:50 162浏览
  • 深圳触觉智能SOM3506核心板现已上市,搭载瑞芯微RK3506B/J超低功耗处理器(1.5GHz三核A7+M0),低功耗满载仅0.7W,支持40℃~85℃工作环境,即日起宽温级59元/工业级68元,特价开售!芯片介绍RK3506是瑞芯微Rockchip在2024年第四季度全新推出的Arm嵌入式芯片平台,三核Cortex-A7+单核Cortex-M0多核异构设计,CPU频率达1.5Ghz, M0 MCU为200Mhz。RK3506适用场景简介工业控制‌:RK3506适用于工业控制、工业通信、人机
    Industio_触觉智能 2025-03-07 10:03 165浏览
  • 一、系统概述MYD-LD25X搭载的Debian系统包含以太网、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI显示和摄像头等功能,同时也集成了XFCE轻量化桌面、VNC远程操控、SWITCH网络交换和TSN时间敏感网络功能,为工业设备赋予“超强算力+实时响应+极简运维”的体验!类别名称描述源码TF-AArm Trusted Firmware 2.8OP-TEEOP-TEE 3.19BootloaderU-boot 2022.10KernelLinux Ke
    米尔电子嵌入式 2025-03-07 14:08 250浏览
  • 深圳触觉智能RK3506开发板现已上市,开启预售!搭载瑞芯微RK3506B/J超低功耗工业处理器(1.5GHz三核A7+M0,主频1.5GHz);支持1280×1280显示、双百兆网口、星闪无线三模,板载高达2路CAN FD与5路串口。RK3506适用场景简介工业控制‌:RK3506适用于工业控制、工业通信、人机交互等应用场景。其多核异构架构(3xCortex-A7+Cortex-M0)和外设接口丰富,支持Buildroot、Yocto系统,适合轻量级HMI应用‌。‌工业通信‌:RK3506均支
    Industio_触觉智能 2025-03-07 10:04 136浏览
  • 在企业管理和职场环境中,权力是一个常被提及却又让人感到微妙的话题。有人觉得它充满吸引力,有人却对它避之不及。然而,不管你对权力的态度如何,理解它、掌握它,甚至善用它,都是职场成功的重要一环。今天,我们就来深入探讨权力的本质,特别是个人权力和社会权力的区别,以及如何在职场中逐步建立属于自己的影响力。权力的两种面貌:你掌控自己,还是掌控他人?说到权力,首先要区分它的两种类型。个人权力是你对自己生活的掌控感。比如,你能自由决定自己的职业方向,不用总是请示他人。这种权力让人感到踏实和满足,是我们在生活中
    优思学院 2025-03-07 15:56 216浏览
  • 服务器应用环境与客户需求PCIe 5.0高速接口技术的成熟驱动着生成式AI与高效能运算等相关应用蓬勃发展。在随着企业对服务器性能的要求日益严苛,服务器更新换代的周期也持续加快。在此背景下,白牌与DIY(Do It Yourself)服务器市场迎来了新的发展契机,但同时也面临着更趋复杂的技术挑战。传统上,白牌与DIY服务器以其高度客制化与成本效益优势受到市场青睐。然而,随着PCIe 5.0等高速技术的导入,服务器系统的复杂度大幅提升,对组装技术与组件兼容性也就提出更高的要求。举个简单的例子来说,P
    百佳泰测试实验室 2025-03-06 17:00 169浏览
  • ​CS6212是一款可分别用于USB Type-C主机/显示端口源应用的带重定时的有源开关。这设备符合USB 3.2标准版本1.0和USB Type-C标准上的VESA DisplayPort Alt模式 1.0版,支持通过GPIO或12C进行灵活的模式切换。此设备支持USB 3.2第2x1代 运行速度高达10Gbps,DisplayPort 1.4运行速度高达HBR3 8.1Gbps。CS6212管脚分布及功能定义:CS6212支持重定时器训练,并支持USB 3.2标准中定义的状态状态机(RT
    QQ1540182856 2025-03-07 10:09 166浏览
  • Sub-GHz,即工作频段低于1GHz的无线通信技术,常见频段有315MHz、433MHz、868MHz与915MHz等。其可借助无线电波在自由空间传播的特性,把数据调制到射频载波上进行传输,达成物联网设备间的无线通信,是物联网设备实现高效、稳定、无缝交互的“通信基石”。典型射频信号(无线电波)收发电路简示在工业自动化、智慧城市、智慧农业与智能家居等物联网领域中,LoRa、Wi-SUN、Z-Wave、Sigfox等工业级通信协议大多运行在Sub-GHz频段。而正是通过Sub-GHz射频技术,传感
    华普微HOPERF 2025-03-07 11:39 167浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦