:基于公钥签名算法的协议。受信任的供应商使用他们的私钥(PrK)生成要部署的代码的签名,并将其与软件二进制文件一起推送到设备上。设备包含供应商的公钥(PuK),该公钥可用于验证二进制文件是否未被修改,以及该二进制文件是否由相关的受信任供应商提供。
信任链:从一个隐式可信组件开始,在执行之前,可以对每个其他组件进行身份验证。信任根位于ROM中,不容易被修改或替换。
片内/片外安全世界:最简单的防御shack攻击的方法是将任何安全世界资源的执行放在SoC片内内存位置。如果代码和数据从未暴露在SoC封装之外,则很难窥探或修改数据值。
监控模式软件:管理安全和非安全处理器状态之间的切换,类似于上下文切换。正常世界进入监控模式需通过以下异常实现:中断、外部中止或通过SMC指令的显式调用
;从安全世界进入监控模式除了通过正常世界可用的异常机制外,还可以通过直接写入CPSR来实现。
- 上下文切换:监视器保存的任何安全状态都应该保存在安全内存的某个区域中,这样正常世界就不会对其进行篡改。可以通过过
SMC指令、惰性上下文切换
(仅在必要时保存协处理器的上下文,而不是在每次操作系统上下文切换或TrustZone世界切换时都保存)来实现世界切换。
安全软件和多处理器系统:安全世界软件实现可以选择实现一个单处理器安全世界(不具备多处理能力)。
TrustZone API
- 定义了一个软件接口,在富操作环境中运行的客户端应用可以使用该接口与安全环境交互。该API主要是一个通信API,使客户端能够向安全服务发送命令请求,并使客户端能够有效地与所连接的服务交换数据。