本质
增加了一个 Secure world , 该体系结构的增加意味着单个物理内核可以以时间切片的方式执行来自正常世界和安全世界的代码
定义了 硬件实现 , 规范了 软件实现
软件实现 : TrustZone安全扩展
硬件实现 : 安全外围设备
ARM安全模型将设备硬件和软件资源进行了划分,以便它们要么存在于安全子系统的安全世界中,要么存在于其他所有系统的正常世界中。
world这个词不仅用于描述执行状态,还用于描述所有只能在该状态下访问的内存和外围设备。
Secure world 包括 软件和硬件
Non-secure world 也包括 软件和硬件
目的:
Security is usually defined by the principles of Confidentiality, Integrity, and Availability.
A system that offers
a certain level of security,
a trusted system, is one that protects assets, prevent them from being copied or damaged, or made unavailable.for example
passwords and cryptographic keys,
or credit card details,
from a range of plausible attacks,
阻挡两种攻击
1. Software attacks
通常不需要对设备进行物理访问,并且可以利用操作系统或应用程序中的漏洞进行攻击。
2. Simple hardware attacks
这些攻击通常是被动的,主要是非破坏性的攻击,需要访问设备和接触电子设备,并使用常见的工具,如逻辑探针和JTAG运行控制单元。
不阻挡 "实验室硬件攻击"
这种攻击需要复杂且昂贵的工具,如聚焦离子束(FIB)技术或功率分析技术,并且更常用于对付智能卡设备。
硬件
平行世界的诞生
将之前的所有都封装到了 Non-secure world , 并增加了一个 Secure world
world这个词不仅用于描述执行状态,还用于描述所有只能在该状态下访问的内存和外围设备。
切换
Non-secure world -> Secure world
1. Non-secure world 执行代码时 ,调用SMC
2. Non-secure world 执行代码时 ,发生 secure world 中的设备中断(一般被映射为FIQ)
Secure world -> Non-secure world
1. Secure world 执行代码时 , 调用ERET
2. Secure world 执行代码时 , 发生 Non-secure world 中的设备中断 // ?? TODO
交互
相关组织封装了 SMC
普通世界库提供的高级API,例如authenticate()。该库由与受信任服务相同的供应商提供
用户应用程序调用API进行适当的操作系统调用,然后传递到驱动程序代码,然后通过安全监视器将执行传递到TEE