可信执行环境简介:ARM 的 TrustZone

这篇具有很好参考价值的文章主要介绍了可信执行环境简介:ARM 的 TrustZone。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

可信执行环境

具有信任区的 ARM 处理器实现了架构安全性每个物理处理器内核提供两个虚拟的扩展 核心,一个被认为是不安全的,称为不安全的世界,另一个被认为是安全的 称为安全世界,以及两者之间的上下文切换机制,称为监视模式。

来自 ARM 的架构:
可信执行环境,TEE,arm开发,哈希算法,算法
如图所示,TrustZone 由监视器、可选操作系统和可选应用程序组成,所有这些都在安全世界中运行。 Trustzone实现可以是所有这些组件,例如在Qualcomm或Trustonic实现上, 或者像Nintendo Switch实现那样仅是一个监视器。

实施 TrustZone 操作系统为添加可信功能提供了一个更灵活的模型,这些功能旨在为普通世界提供额外的安全服务。

这些功能可作为签名的第三方应用程序(称为trustlet)提供,并由在TrustZone(SecureOS)中运行的操作系统在Secure World中安全地加载和执行。

这些安全加载功能之一(即高通)在高通公开之前由Gal Beniamini完全复古设计。

trustlet完整性检查过程是相对标准的,由一个哈希表组成,每个哈希代表ELF二进制文件一段的哈希。然后,此哈希表由 trustlet 颁发者签名,并且可以通过直接放置在签名之后的证书链来验证此签名。由于将 SHA256 放置在保险丝 (QFuse) 中的根证书,可以验证此信任链,从而确保其完整性。
可信执行环境,TEE,arm开发,哈希算法,算法
TrustZone 用于多种用途,包括 DRM、访问平台硬件功能,例如在 eFuse 中存储的 RSA 公钥哈希、硬件凭据存储、安全启动、安全元件仿真等。

安全世界与普通世界 - 上下文切换机制

处理器当前运行的世界可以是由安全配置寄存器中可用的非安全位确定。 物理处理器可以从非安全世界可以通过执行名为安全监视器呼叫(SMC),它可以被视为监视器模式的例外软件。 此外,主存储器也标有非安全位,允许内存安全和非安全世界之间的隔离。

ARMv7 中的异常处理

ARMv7 中的异常处理要求安全世界注册遇到 SMC 指令时处理器将跳转到的向量。 此处理程序位于与存储在监视器矢量中的地址的偏移量0x8 ARMv7 中的基址寄存器 (MVBAR)。

ARMv8 中的异常处理

在 ARMv8 中,引入了一个新的异常模型,该模型定义了异常级别的概念。例外级别确定权限级别(PL0 到 PL3) 在哪些软件组件运行以及哪些处理器模式(不安全和安全) 应用于运行它。在 ELn 处执行对应于特权 PLn,并且 n 越大, 执行级别具有的权限越多。 发生异常时,处理器分支到异常向量表 并运行相应的处理程序。在 ARMv8 中,每个异常级别都有自己的异常级别异常向量表。
可信执行环境,TEE,arm开发,哈希算法,算法
安全监视器调用 (SMC) 生成由存储在 VBAR_EL3 + 0x600 的处理程序(同步 EL3 异常处理程序)

信任区商业实施

已经开发了几种商业实现,其中三种最普遍 在移动平台上:

1、来自Trustonic的Kinibi
2、来自高通的QSEE公司
3、可信核心(华为TEE操作系统)

在TrustZone的不同实现中发现了许多漏洞, 但在多个平台的安全启动中也发现了几个, 允许在信任区中获取代码执行。下面讨论其中一些漏洞及其影响。

TrustZone 本身的漏洞

高通

Gal Beniamini 发现了几个漏洞,包括安全世界用户空间权限提升中的代码执行,以通过 SMC 处理程序在安全世界内核中获得代码执行或通过SVC(ARM中的系统调用)处理程序允许KeyMaster Keys从TrustZone提取Linux内核劫持,和引导加载程序解锁

Azimuth Security发现了两个漏洞,包括在Qualcomm Trustzone中写入原语和任意代码执行

一个漏洞允许将零字写入信任区内核中的任何地址。它可用于禁用 TrustZone 内存边界验证函数, 制作任意写入基元。

正如本文所示,高通TrustZone遭受单点故障,存在许多个人 TrustZone中的参与者,但其中一个玩家的一个错误会影响所有其他组件。 单个任意内存写入漏洞(尤其是在安全世界内核中)可使整个安全模型崩溃。

最后,使用有符号比较而不是无符号比较会导致信息从安全世界泄漏到正常世界

正如本文所示,高通TrustZone遭受单点故障,存在许多个人 TrustZone中的参与者,但其中一个玩家的一个错误会影响所有其他组件。 单个任意内存写入漏洞(尤其是在安全世界内核中)可使整个安全模型崩溃。

最后,使用有符号比较而不是无符号比较会导致信息从安全世界泄漏到正常世界

Trustonic

与QSEE不同,由Trustonic开发的TrustZone以前称为t-base,然后更名为Kinibi,具有微内核,这意味着不再有单点故障。 尽管关于Trustonic的TrustZone的公开研究较少,但仍有一些文章详细介绍了t-base内部结构和在Secure World用户空间中发现的一些漏洞。

从Qualcomm TrustZone收购TEE OS比从Trustonic TrustZone更容易。例如,Qualcomm TrustZone 可以直接从 /dev/block 下的块中获取,而 Trustonic TrustZone 必须通过反向启动来获取。

信任区强化的弱点

TrustZone 强化是获得良好安全属性并减缓逆向工程和利用过程的关键点。 尽管如此,下面列出的几个经典硬化点并未应用:

这两种实现在生产中都存在许多调试字符串。
Kinibi上没有ASLR,QSEE上只有9个ASLR位。
Kinibi上没有Stack Cookie。相反,QSEE上有Stack Cookie。
有趣的是,一些TrustZone实现,例如为Nintendo Switch开发的实现,是加密存储的,并在启动过程中解密,这给攻击者增加了额外的难度。

结论

一方面,使用 TrustZone 技术实施的安全模型通过分离安全世界和正常世界提供了额外的分段,例如,允许 DRM 解决方案来防止敌对环境,例如用户土地和内核土地上的受感染系统。

另一方面,整个操作系统的开发是一项艰巨的任务,通常涉及许多错误。运行TrustZone的操作系统也不例外。导致安全世界内核内存损坏的开发错误会导致安全世界中的系统完全损坏,从而使其安全性过时。它还完全损害了可以从安全世界访问的正常世界。

最后,如果在安全启动链中发现漏洞,则可以在执行TEE操作系统之前对其进行破坏,例如多次

声明

本博客源于https://blog.quarkslab.com/introduction-to-trusted-execution-environment-arms-trustzone.html,仅供笔记参考。文章来源地址https://www.toymoban.com/news/detail-769279.html

到了这里,关于可信执行环境简介:ARM 的 TrustZone的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARM动态Trustzone技术简介

    目录 动态 TrustZone 典型的安全媒体路径 Arm 安全和架构特性 安全虚拟化 Realm Management Extensio

    2024年01月17日
    浏览(42)
  • ARM可用的可信固件项目简介

    安全之安全(security²)博客目录导读 目录 一、TrustedFirmware-A (TF-A) 二、MCUboot 三、TrustedFirmware-M (TF-M) 四、TF-RMM 五、OP-TEE

    2024年02月08日
    浏览(28)
  • ARM A64架构TrustZone学习

    本文翻译自文档 Learn the architecture - TrustZone for AArch64 原文链接:https://developer.arm.com/documentation/102418/0101/?lang=en 在本指南中,我们介绍了 TrustZone。TrustZone 通过内置于 CPU 中的硬件强制隔离提供了一种高效的、系统范围的安全方法。 我们涵盖了 TrustZone 添加到处理器架构中

    2024年02月06日
    浏览(45)
  • Arm Trustzone与ATF安全介绍 - 一篇就够了

    随着时代的发展、科技的进步,安全需求的趋势也越来越明显,ARM也一直在调整和更新其新架构,很多都是和安全相关的。如下列出了一些和安全相关的架构 基于Trust Zone技术,硬件被静态隔离,可预先分配硬件归属于关键应用域或非关键应用域,不需要hypervisor的支持,相关

    2024年02月05日
    浏览(45)
  • ARM TrustZone技术解析:构建嵌入式系统的安全扩展基石

    🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​ 💫个人格言:“没有罗马,那就自己创造罗马~” 本文转自 周贺贺,baron,代码改变世界ctw,Arm精选, armv8/armv9,trustzone/tee,secureboot,资深安全架构专家,11年手机安全/SOC底层安全开发

    2024年03月12日
    浏览(54)
  • Confidential Compute Architecture - Arm构架的TEE新模式

    快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 联系方式-加入交流群 ---- 联系方式-加入交流群 1 简介 如今,云计算在分布式计算资源按需使用方面起着重要的作用。许多公司

    2024年02月07日
    浏览(72)
  • Trustzone/TEE/安全 面试100问

    :cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频,cache视频、mmu视频,armv8视频、armv9视频、FF-A视频、密码学视频、RME/CCA视频、学习资料下载、免费学习资料、免费 周贺贺

    2024年02月04日
    浏览(65)
  • 【ARM 裸机】开发环境搭建

    使用过程中,要频繁进行 Ubuntu 和 Windows 的文件互传,需要使用 FTP 服务; 1.1、开启 Ubuntu 下的 FTP 服务 修改结果,保证这两行命令前面没有 # ,保存退出; 重启 FTP 服务; 1.2、Windows 下安装 FTP 客户端 FileZilla 安装好 FileZilla 客户端之后,点击文件选项进入站点管理器,编号4输

    2024年04月10日
    浏览(45)
  • linux下arm环境启动脚本/etc/init.d/rcS执行命令失败,踩坑记录

    记一次踩坑记录!!! 接触到一个新的系统,需要在这个系统上跑程序,测试的时候,手动执行脚本和程序都没问题,于是将执行命令写入到linux启动脚本/etc/init.d/rcS这个文件中,然后重启,等待程序起来,但是让我意想不到的是,执行到我加的命令的时候,居然报错,找不

    2024年01月21日
    浏览(49)
  • ARM开发环境下载地址大全

    超链接如下,点击直达: Keil MDK (Keil Licensing) (MDK000) (arm.com) 实际网址如下所示: https://developer.arm.com/downloads/view/MDK000 超链接如下,点击直达: Arm Compiler for Embedded (ACOMPE) 实际网址如下所示: https://developer.arm.com/downloads/view/ACOMPE 超链接如下,点击直达: Arm GNU Toolchain Download

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包