关于Trustzone的四问四答

来源:公众号“汽车信息安全”
2021-10-26
3608
随着 R155 法规的正式生效,基于 HSM、TPM、SE、Trusztzone 的网络安全方案逐渐成为主机厂和供应商的日常会议话题。前三个都涉及单车成本,我们放在未来讨论。今天咱们就单独聊一聊 Trustzone 这个不涉及单车成本的话题。下面的内容会以问题的方式展开,我们将会讨论:Trustzone 是什么,是怎样实现的,能干什么,与 HSM、TPM、SE 的关系。


1. Trustzone 是什么?
Trustzone 是 ARM 提出的一种基于硬件的系统级安全解决方案。系统级解决方案意味着除了选用支持 TrustZone 的 CPU,同时还要支持 TrustZone 的总线(NS BIT 线)、安全地址空间过滤器、定时器、时钟源、SRAM 等。好在 Trustzone 虽然作为一个可选的安全扩展,实际几乎所有的 ARMv7-A、ARMv8-A、ARMv8-M 都已实现。但不要高兴的太早,硬件支 Trustzone 不代表咱们就可以直接使用,毕竟还需要额外的可信固件开发。小编偷偷的告诉你,可以参考 ARM 的 Trusted Firmware-A 或 Trusted Firmware-M 开源项目。
2. Trustzone 是怎样实现的?    
咱们以 ARMv8-arch32 为例,直接上图:
图片 
ARM 将单个处理器划分为两个虚拟的核,一个用于 Normal world(也称为 REE),一个用于 Secure world(也称为 TEE),上下文通过 SMC(Secure Monitor Call指令或中断进入monitor 模式(该模式始终运行在 Seceure world)进行切换。Normal world 和 Secureworld 共用物理处理器,为了实现多操作系统,处理器运行时采用分时机制,并通过 SCR(Secure Configuration Register)的 NS 位进行区分Normal/Secure world。     Secure world 对Normal world 隔离,处于 Secure world 的 OS 可以看见所有的系统资源,处于 Normal world 却只能看见自身的系统资源,但后者可以使用 Secure world 提供的服务,即使它始终不知道该服务在 Secure world 是怎样运行的。除了 Normal world 和 Secure world 的隔离外,我们也可以实现 OS 本身的一些特征,如 APP 与 APP 之间的隔离、APP 与内核之间的隔离。
3.Trustzone 能用来干什么?    
从上面的介绍我们可以了解到。Trustzone 是从芯片设计最早阶段从最底层考虑实现的指令集级别的安全解决方案,它可以提供一个运行时硬件隔离环境,分配独有的存储空间、独立的 OS,并能实现对外设的安全控制。在这个环境里我们可以实现诸如安全存储、TRNG服务、加解密、安全调试等基础服务,并基于此实现用户身份验证、安全通信(如 TLS)、安全启动、敏感数据加密OTA升级包校验等衍生服务。
4.有了 Trustzone 还需要 HSM、TPM、SE 吗?   
二者可以相辅相成,毕竟安全是一个系统工程,单点保护对于安全是没有太多意义的。Trustzone(不包括 Trustzone Cryptolsland,下同)其本质还是共用同一个处理器,但基于安全芯片技术的 HSM、TPM、SE,具有较高的安全等级,且本身可以提供一个单独的处理器。拿Infineon 的 Aurix 397 为例, 6 个核中有一个 HSM 专用核。单独的处理器可以保证 Root key始终处于芯片内,这是 Trustzone 很难做到的.但 Trsuztzone 也有自己的优势,相对于 TPM、SE,它有更大的存储空间、更强的算力、能够提供更丰富的接口和功能、提供运行时保护、更灵活的资源配置。”


图片


上图引用自技术社区 PSA 专栏,TPM 也是类似,HSM 由于不同厂家设计不同,此处不做讨论。在 IoT 领域,生物识别支付、系统安全,BYOD 等场景都是依赖 TrustZone 来保证,其中交通卡、eSIM,strongbox 等场景是通过 SE 来实现。在汽车领域,我们也可以根据实际业务对资源的需求和敏感程度,将 Trustzone 和 TPM/SE/HSM有机的结合起来。


收藏
点赞
2000