冲量网络 | 详解TrustZone(2)
在上一期的《冲量网络 | 详解TrustZone》中,我们提到了TrustZone的基本概念、核心技术关键词和特点,而TrustZone的内容远远不止于此,包括内存管理单元(MMU)、物理内存和外设保护以及其与核心之间的关系等,都是TrustZone技术在实现过程中不可忽略的环节,这些技术环节将进一步帮助TrustZone实现可信环境的搭建,打造可信世界。
在之前的文章中,我们介绍了TrustZone的基本概念,其是ARM发布的可信环境解决方案,其目的是为消费电子产品构建一个安全框架来抵御各种可能的攻击。针对高性能计算平台上的大量应用,包括安全支付、数字版权管理 (DRM)、企业服务和基于 Web 的服务。相比于其他方案,TrustZone更注重保护运行时的攻击,比如某个黑客直接在运行时进行**,直接去内存访问你解密过的东西。
而对于一个硬件来说,内存管理单元也尤其重要,内存管理单元(MemoryManagementUnit,MMU)负责的是虚拟地址与物理地址的转换,并提供硬件机制的内存访问授权。尽管在早期,电脑处理器中不一定会有内存管理单元,但在现代的处理中,基本已经全有了内存管理单元。
在TrustZone中,安全世界和普通世界都有自己的内存管理单元,一般来说,内存管理单元的描述符里会有一个特殊的地址位。对于普通世界,处理器做地址转换的时候无视这个特殊的地址位,对于安全世界,处理器做地址转换的时候按照描述符里的特殊的地址位来确定地址转换的物理地址空间。对普通世界而言,描述符的特殊的地址位确实没有意义,因为它只能访问普通世界的资源。
对于需要保护的东西来说,无论是代码还是数据,都需要存储于内存中,因此其安全也变得非常重要,因此对于Trustzone来说,其需要物理内存和外设在两个世界之间的隔离,这才是可信世界所需要的东西。物理内存和外设的隔离保护通过可信内存分区的设置来达到目的。可信内存分区可以把物理内存分成多个区域。
对于每个区域来说,其访问权限可以灵活配置为安全区域或者非安全区域,如果愿意,也可以配置成只有普通世界可以访问,虽然可能没有人会这么做,其通过内存分配。同时,整个过程都只能在可信环境中进行。通过上述工具,也可分配外设处于的位置,从而达到最稳定的保护,并使得物理内存和外设都得到保护。
可信应用程序采用基于TrustZone技术的运行可信执行环境,即我们常说的SOC,其与主系统之间分开,可防止恶意软件的攻击。此外,TrustZone还饿可以切换到安全模式,提供硬件支持的隔离。其也可模拟多个独立安全区域应用程序的并发执行、新安全应用程序的运行时下载以及完全与普通区域环境独立的安全区域任务。例如,安全区域应用程序可继承它支持的普通区域任务的优先级。这将导致对媒体应用程序做出某些形式的软实时响应。
对于处理器来说,处理器核心是其非常重要的组成部分,例如在四核处理器(比如ARM架构下的SOC)中,每个核都可以配成两个虚拟核,那么总共会有8个世界,当然,对于TrustZone来说,其缓存都需要在一致性、中断处理等机制硬件层都尽量避免不同核心之间的互相干扰。
随着动设备处理重要服务的需求日益增加,无论是数据的安全还是隐私的安全都变得越来越重要,可信将成为下一代互联网非常重要关键词。相信在未来,通过TrustZone技术和SGX等可信技术, 将可以保证每个人的个人隐私和账号等受到可信保护,也让不同机构间的可信协作来的更便捷。
对于冲量网络来说,其也将进一步加强对于TrustZone和SGX等可信技术的应用,并从硬件、软件、算法、共识等多维度保障安全。并助力金融、政务、电信、互联网、医疗等行业的精细化运营。