0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TrustZone是什么?TrustZone的结构

Q4MP_gh_c472c21 来源:未知 作者:李倩 2018-07-12 11:24 次阅读

TrustZone是什么

基本的安全方式有加密和完整性保护等,加密通过密码口令或是秘钥方式,鉴权用来检查资源是否可用,如果资源遭遇破坏则会导致鉴权失败。由于存在多种攻击方式,软件方式包括软件病毒、恶意软件等,而硬件方式可以通过JTAG引脚、I/O引脚检测电流电压检测、显微镜查看电路等进行攻击,所以需要从硬件软件层面设计有效系统来对抗攻击。TrustZone是ARM为了防止设备有效资源被拷贝、破坏或篡改,防止被恶意攻击,对资产包括有形和无形资产进行,以防止恶意软件、硬件监视、硬件干预等方式破坏或获取设备信息。Trustzone从处理器、总线、外设等系统层面进行保护,同时考虑减少额外的资源开销。注意时间、开销允许的情况下,不可能阻止所有可能的攻击,只是在一定的时间和资源(钱)的限制内,能够保证不会受到相应的攻击。

TrustZone 将软件硬件部分分为安全世界和正常世界,正常世界器件不可访问安全世界区域器件、存储空间等。TrustZone可以作为实现TPM功能的HSM (hardware Secure module) 模块来使用。对于外设的权限控制TrustZone通过AXI-APB桥来实现,以此兼容外设需求。

ARMv8的特征

ARMv8中包含了trustZone功能,同时提供了SHA、AES等一些加密加速器处理(? 没有注意到TRNG 真随机数处理的相关模块)。另外相对于v7,v8中还提供了64位数据的指令处理,同时增加了SIMD ( Single Instruction Multi Data) 的指令处理。所以在v8中有AArch64和AArch32的处理模式,在AArch64模式下支持128比特的SIMD,在AArch32模式下支持64比特的SIMD处理模式,同时v8有三种配置模式,A Application配置,指示虚拟地址系统VMSA(Virtual Memory System Architecture)及MMU,支持A64、A32、T32指令集;R Real-time配置,支持MPU,支持PMSA(Protected Memory System Architecture),支持A32和T32指令集;M 微控制配置。支持PMSA,低延时中断处理,支持T32变种指令集。三种模式对能力和功耗做了权衡,可适应不同的使用场景。v8 AArch64重新定义了四种等级EL0-EL3模式,其中EL0为最低模式,EL0 用户应用模式;EL1 系统相关功能特权模式;EL2 为Hypervisor 虚拟功能模式;EL3 Monitor用于切换Secure和Non-Secure两种模式。对应32模式增加了Hypervisor和 Monitor 两种模式分队对应EL2和EL3模式,用户模式为EL0,其他FIQ、IRQ、system等模式对应EL1。为了实现Secure world和Non-Secure world的分离,增加了NS比特位的处理,例如CP15 SCR( Secure Configuration Register ) NS的配置。

TrustZone的结构

整体结构: 两个虚拟world使用同一个物理处理器实现,亦即一个实体核有两虚拟核模式,非安全核只能访问非可信系统资源,而安全核可以访问所有资源。两种模式不可共存,时分复用,通过Monitor mode(软件实现两种模式的信息切换)切换。进入monitor通过软件指令Secure Monitor Call (SMC) instructio或硬件机制( FRQ、FIQ、external Data Abort and Prefetch Abort ) 。

软件调度实现

在实现两个不同安全模式切换时,采用Monitor进行两个世界的上下文切换,而对于两个模式的配合可以使用多种不同的方式。安全世界可以拥有自己的操作系统,独立于非安全世界;同样安全功能也可以作为正常模式调用的子模式,或是采用两种极端模式的折中方式。

安全启动与可信链

常见到secure boot、trusted boot、meased boot等,方式有些类似,都是采用签名加密等方式来保证启动及软件的完整和安全性,当然处理方式细节及概念细节上也存在些许差别,例如关于安全启动和可信引导 secure boot、trusted boot,前者保证boot程序正确,后者引导的程序未被修改,采用数字签名技术。可信根 ( 需要NVRAM或OTP One-Time-Progrm方式存储 ) 需要从硬件初始化开始保证每个模块代码的载入都是可靠可信的,可信链即表达了按照链式方式保证每个步骤都是可靠的。

TrustZone典型启动过程

硬件安全的一些理解

通过频率、电源供电等检测、电路、时钟、时序、端口等硬件方式可以得到硬件的具体执行内容,例如正常乘法和加法消耗时间可能就不相同。为了避免这些硬件攻击方式,硬件可以在物理特性上保证消除不同处理的特征差异,如统一执行周期,加入指令噪声,插入特殊或空指令等;而防止ROM / FLASH等内容被读出进行反汇编,则可以采用加密接口的ROM、FLASH等;防止总线数据被读取,可以进行极性反转等操作;同样检测数据是否被修改,可以进行奇偶校验等处理。当然这些处理将带来更多的资源,更多的功耗,所以需要必要的进行权衡取舍,简化无效处理。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 加速器
    +关注

    关注

    2

    文章

    790

    浏览量

    37669
  • trustzone
    +关注

    关注

    0

    文章

    20

    浏览量

    12519
  • ARMv8
    +关注

    关注

    1

    文章

    35

    浏览量

    14133

原文标题:TrustZone、ARMv8及硬件安全处理的一些基础知识理解

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    embOS如何支持Arm TrustZone

    通过ARMv8-M架构支持的TrustZone技术,可以将关键安全固件和私有程序(如安全引导、固件更新和密钥)与其余应用程序隔离,极大降低被攻击的可能性,增加嵌入式系统安全。SEGGER的embOS目前已支持ARMv8-M TrustZone,这使得embOS成为高效、安
    发表于 09-22 12:16 402次阅读
    embOS如何支持Arm <b class='flag-5'>TrustZone</b>

    TrustZone结构化消息是什么?

    大家好,我已阅读任何与TrustZone相关的内容,但我无法弄清楚这两个世界是如何相互沟通的。我所能找到的只是TrustZone API规范中的内容:客户端和服务可以通过两种机制进行通信:结构
    发表于 03-20 08:58

    介绍Cortex-A和Cortex-M的TrustZone之间的差异

    相信关注安全和嵌入式的开发者对TrustZone都不陌生,最近看到有网友在问Cortex-A和Cortex-M的TrustZone之间的差异,我们来简单介绍下。Arm在2003年的Armv6开始
    发表于 07-13 14:45

    了解体系结构-适用于AArch64的TrustZone介绍

    在本指南中,我们介绍了TrustZoneTrustZone通过内置在CPU中的硬件强制隔离,提供了一种高效的全系统安全方法。 我们介绍了TrustZone添加到处理器体系结构中的功能
    发表于 08-10 07:02

    STM32 MCU TrustZone开发调试技巧分享

    系统隔离与ARM V8-M TrustZone技术、TrustZone地址安全区及资源安全属性配置、TrustZone架构下的HardFault调试与处理 、TrustZone环境中外
    发表于 09-05 06:16

    ARM TrustZone技术对Zynq SoC的作用

    现在,你可以通过阅读“对Xilinx Zynq-7000 All Programmable SoC中的ARM TrustZone架构进行编程”这本新鲜出炉的用户手册,来理解怎样更好的使用Zynq
    的头像 发表于 08-01 08:28 3397次阅读
    ARM <b class='flag-5'>TrustZone</b>技术对Zynq SoC的作用

    AN5347_STM32L5系列TrustZone®功能

    AN5347_STM32L5系列TrustZone®功能
    发表于 11-21 08:11 0次下载
    AN5347_STM32L5系列<b class='flag-5'>TrustZone</b>®功能

    AN5600_STM32L5系列GPIO与TrustZone的配合使用

    AN5600_STM32L5系列GPIO与TrustZone的配合使用
    发表于 11-21 08:11 0次下载
    AN5600_STM32L5系列GPIO与<b class='flag-5'>TrustZone</b>的配合使用

    RA6快速设计指南 [8] 使用TrustZone®

    7 使用TrustZone 7.1 Arm TrustZone 技术的实现 某些RA6 MCU(如RA6M4和RA6M5)包含Arm TrustZone (TZ) 安全功能。有关 TZ 实现的完整
    的头像 发表于 06-19 15:25 607次阅读
    RA6快速设计指南 [8] 使用<b class='flag-5'>TrustZone</b>®

    Arm® TrustZone® 技术简介

    一.前言 本文对TrustZone 进行简单的介绍,不涉及具体的技术细节,旨在有一个概念性的感性的理解,后面有机会再分享几篇更详细的技术细节介绍和实际应用案例。 本文后续内容以瑞萨的RA系列为例
    的头像 发表于 07-04 08:44 2973次阅读
    Arm® <b class='flag-5'>TrustZone</b>® 技术简介

    STM32 MCU TrustZone开发调试技巧分享

    电子发烧友网站提供《STM32 MCU TrustZone开发调试技巧分享.pdf》资料免费下载
    发表于 07-28 13:35 1次下载
    STM32 MCU <b class='flag-5'>TrustZone</b>开发调试技巧分享

    调试TrustZone时,如何处理HardFault?

    调试TrustZone时,如何处理HardFault?
    的头像 发表于 09-27 16:33 625次阅读
    调试<b class='flag-5'>TrustZone</b>时,如何处理HardFault?

    STM32L5中如何关闭TrustZone

    电子发烧友网站提供《STM32L5中如何关闭TrustZone.pdf》资料免费下载
    发表于 09-20 09:41 0次下载
    STM32L5中如何关闭<b class='flag-5'>TrustZone</b>

    STM32 TrustZone 开发调试技巧

    电子发烧友网站提供《STM32 TrustZone 开发调试技巧.pdf》资料免费下载
    发表于 12-18 11:16 2次下载
    STM32 <b class='flag-5'>TrustZone</b> 开发调试技巧

    STM32H5 DA 之初体验(带 TrustZone)

    电子发烧友网站提供《STM32H5 DA 之初体验(带 TrustZone).pdf》资料免费下载
    发表于 02-19 14:19 0次下载
    STM32H5 DA 之初体验(带 <b class='flag-5'>TrustZone</b>)