trustzone调研

trustzone是一种arm处理器安全架构,是一种虚拟cpu技术,允许cpu状态,mmu单元在安全世界和非安全世界切换。提供了一个隔离的,优先级高于正常世界操作系统的安全执行环境(通常片上rom和ram只能由安全世界访问,使用内部总线连接,一定程度上抵御了简单的硬件攻击),为安全引导和安全存储机制提供支持。

安全世界与正常世界的切换通过smc指令进入cpu的monitor模式 完成状态切换。

安全世界通常占有少量的硬件资源,大多数手机设备中,安全模式下只能访问片上rom和ram,不支持安全世界访问外部内存。一般非安全世界(拥有大部分或全部外部内存)执行操作系统代码,安全世界运行安全相关的少量代码,如密码学算法,安全引导代码。以及存储一些关键数据,如设备特定的密钥。为保证安全,安全世界中的用户定义代码(boot loader)必需被签名认证。trustzone的安全引导功能由片上rom中的trust root(设备密钥的公钥部分,出厂时写入rom),加密功能,安全引导代码支持,设备启动后(进入安全状态),主cpu首先执行片上rom中特定位置的安全引导代码,利用trust root和加密算法验证boot loader的签名,之后bootloader执行,再由boot loader验证OS kernel的签名,这就是verify-before-execute机制。

考虑到安全模式下内存资源的限制,一般手机设备的安全模式中没有用户I/O组件,只能通过受限的方法,由正常世界的操作系统特权状态(内核态)访问安全世界。也没有单调安全计数器,在一定程度上不能防止重放攻击。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章