接上文
在上一篇文章中,讲了下ARM在ARMv9中人工智能领域的相关技术SVE2,以及其他人工智能相关的布局。对于ARMv9是否能给ARM带来腾飞,仅根据SVE2,我认为是不够的。
ARMv9另一大技术点是安全,本文会重点介绍ARMv9的CCA(Confidential Compute Architecture)技术和MTE(Memory Tagging Extension)技术。最终,结合两大方向,给出我对这个问题的结论。
安全,永远的安全
随着越来越多的设备连在网上,随着越来越多的数据被采集,随着人们隐私意识的不断增强,安全问题不断成为社会议论的焦点,相关的软硬件技术也在不断产生和迭代。赛门铁克仅在2020第一季度,就在IoT的Honypots中侦测到近1亿9千万次攻击,平均每秒超过100次[1]。
作为芯片IP提供设计者,ARM在其中扮演的角色至关重要。硬件的安全方案是软件无法攻克的,因此ARM有责任为当前社会的安全问题提供安全的硬件底座。这也就是为什么TrustZone技术被ARM在ARMv6中发布以来,已经被广泛的使用,提供可靠的安全启动,加解密等服务。下面我们先简单介绍下TrustZone的基本原理。
另一个世界(TrustZone)
TrustZone最核心思想就是在真实的世界(normal world)之外并行的增加了一个安全世界(secure world),两个世界都是完整的(都有硬件,操作系统,应用软件)。安全世界是全知全能的,但真实世界则对安全世界不感知的。创世纪(系统启动)先从安全世界开始,真实世界被安全世界定义后才被启动。而当待定的事件(比如特定的异常)在真实世界中被触发后,真实世界会被暂停,切换到安全世界来处理完成后再切换回真实世界,这段逝去的时间对于真实世界是无感的。
有了这样的硬件设计,就可以把一些敏感重要的信息和处理过程放在安全世界处理,对于这个数据的访问和过程调用,被封装成服务调用,在真实世界中被使用。比如安全启动的信任链的起点总是从安全世界开始,比如敏感的加解密过程也可以放在安全世界等等。
ARM的TrustZone设计是比Intel的TPM技术更方便的。TPM仅仅是把固定的能力设计成安全可靠,但ARM的TrustZone是提供了一个完整的世界,提供的功能可被软件完整定义,这样就提供了非常强的可塑性。
但TrustZone也有它的局限性。TrustZone基于的安全模型是低安全等级的软件对于高安全等级的软件是完全可见的,因此应用的安全性是会被操作系统和Hypervisor影响的。随着对于安全的诉求不断增加,TrustZone已经逐渐不够用了,此次ARMv9的发布,ARM和微软合作开发了CCA技术。
更多的世界(CCA)
引用
- https://www.arm.com/blogs/blueprint/armv9
- https://www.anandtech.com/show/16584/arm-announces-armv9-architecture/2
- https://armkeil.blob.core.windows.net/developer/Files/pdf/graphics-and-multimedia/confidential-computing-pulse-survey.pdf
- https://msrnd-cdn-stor.azureedge.net/bluehat/bluehatil/2019/assets/doc/Trends%2C%20Challenges%2C%20and%20Strategic%20Shifts%20in%20the%20Software%20Vulnerability%20Mitigation%20Landscape.pdf
- https://security.googleblog.com/2019/05/queue-hardening-enhancements.html
- https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/enhancing-memory-safety
- https://security.googleblog.com/2019/08/adopting-arm-memory-tagging-extension.html
- https://group.softbank/system/files/pdf/ir/financials/annual_reports/annual-report_fy2020_01_en.pdf