Armv8-M的TrustZone技术在不同攻击场景下的安全性

140 篇文章 27 订阅 ¥59.90 ¥99.00

在讨论安全系统设计时,一个常见的问题是:“它有多安全?”在Armv8-M的TrustZone技术开发中考虑了许多攻击场景的各个方面,例如:

软件访问:

        通过额外的系统级组件,内存可以在安全和非安全空间之间分区,并可以禁止非安全软件访问安全内存和资源。

分支跳转到任意的安全地址位置:

        SG指令和NSC内存属性确保只能在有效入口点处进行从非安全到安全的分支。

二进制数据中的意外SG指令:

        NSC内存属性确保只有预期用作入口点的安全地址空间才能用于将处理器切换到安全状态。在未标记为NSC的地址位置上分支到意外的SG指令会导致故障异常。

在调用安全API时伪造返回地址:

        当执行SG指令时,函数的返回状态存储在链接寄存器(LR)中返回地址的最低有效位。在函数返回时,此位与返回状态进行比较,以防止Secure API函数(从非安全侧调用)返回到指向安全地址的伪造返回地址。

尝试使用FNC_RETURN(函数返回代码)切换到安全侧:

        从不可返回的安全代码(例如安全引导加载程序)切换到非安全时,必须使用BLXNS指令以确保存在有效的返回堆栈。然后可以使用返回堆栈进入错误处理程序。

        这可防止非安全恶意代码尝试使用FNC_RETURN机制将处理器切换到安全代码,并在安全堆栈中没有有效返回地址的情况下使安全软件崩溃。

        这个建议在从Secure API返回到非安全软件时不适用

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuxiaochen99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值