72、安全软件开发与项目创建全解析

安全软件开发与项目创建全解析

1. 故障处理程序(Fault Handler)

在使用TrustZone安全特性时,安全固件的配置至关重要。硬故障(HardFault)和总线故障(BusFault)异常应指向安全状态,即AIRCR.BFHFNMINS位需保持为零。同时,建议对安全固件中的故障异常进行设置,防止在安全世界触发故障异常后,非安全代码执行可能引发故障安全上下文操作,这是因为在安全攻击中,安全世界的故障异常可能触发,而故障安全上下文的安全堆栈可能被破坏,所以需要停止安全上下文并防止非安全代码进一步操作。

若被破坏的是安全进程堆栈(PSP_S),且相关安全上下文(软件线程)可终止,那么恢复正常执行是安全的。此时,安全软件可选择包含回调API功能,以便在故障发生时通知非安全软件。若被破坏的是安全主堆栈,或故障安全上下文无法终止,则应重启系统。

为进一步降低安全风险,安全软件可通过将安全世界故障异常的优先级设为高于非安全异常来防止非安全软件攻击,具体方法有:
- 方法一 :将AIRCR.PRIS设为1,并确保安全世界的总线故障、使用故障、安全故障和内存管理故障的异常优先级在0到0x7F范围内。
- 方法二 :不在安全世界启用总线故障、使用故障、安全故障和内存管理故障,使针对安全状态的故障事件升级为安全硬故障。

由于硬故障和总线故障异常指向安全状态,非安全软件开发人员在调试时难以找出软件故障原因,因为这些故障异常的状态信息在非安全世界无法访问。为便于调试,使用Cortex - M33处理器的非安全软件开发人员应启用使用故障和内存管理故障,并将其优先级设为高于其他中断

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值