Arm推出v9架构,主打机密运算防护应用

在2011年10月,主打64位元运算架构的Armv8问世,经历近10年之后的此刻,Armv9架构在今年3月底正式推出。

对此,Arm台湾总裁曾志光表示,过去三十年,基于Arm架构的芯片,出货量已经高达1千8百亿颗,而在未来十年,他们预估基于Arm架构的芯片,最少会有3千亿颗。

那么,Arm如何为这3千亿颗芯片做准备?由于Arm应用范围相当广泛,小从传感器,大到服务器、高速计算机的运算芯片,他认为,地球永续(sustainability)、提供更容易开发的环境、安全都将是重点提升的项目,Arm会不断提升性能、能源功耗使用效率、软件开发简易度,以及信息安全,让开发者能够安心开发,也促使这些应用程序可以顺利使用在未来的设备上。

而在自身的角色定位上,正值人工智能、物联网与5G当道的现在,面对联网世界在各个阶段的处理需求,v9架构也将加快Arm转移到特定运算(Specialized Compute / Specialized Processing)的脚步,从通用运算得以横跨到每一种应用,Arm认为,在这个过程中,所有共享的资料若是在基于Arm而成的系统执行,无论是终端、边缘或是云计算等环境,都必须做到100%安全的处理。

也因此,安全正是Armv9本次发布的最大卖点,因为这其中将包含Arm发展的机密运算架构(Confidential Compute Architecture,CCA)。而显然此类技术所针对的主要应用场景,就是这两年来备受关注的机密运算(Confidential Computing),多家公有云计算企业、处理器厂商,以及系统平台厂商都曾为此陆续宣布合作,并且积极发展相关的功能。

Armv9不只是继续保有兼容性、强化性能,支持更多种应用,安全防护的改善更是重点。Arm资深副总裁暨首席架构师与院士Richard Grisenthwaite表示,这项未来几年即将部署的架构,能够广泛应用于数字信号处理(DSP)、机器学习(ML),并且可改善系统的安全性与强健度,预计会导入A系列应用处理器、R系列即时处理器,以及M系列微控制处理器。

Arm如何定义机密运算?他们认为,借由在硬件架构的安全环境执行运算,能在软件正在执行时,其中所使用的程序代码与资料,不会受到访问与修改,而且就算是其他获得特殊权限许可的系统软件,也不能在应用程序执行期间访问与修改这些内容。

对于机密运算的出现与普及,Arm表示,将会改变操作系统因被授与最高执行权限,而能看到与执行一切的现况。简而言之,操作系统仍能决定哪些可执行,以及何时执行,但应用程序会坐落在内存隔离的硬件保护区域,与整个系统的其他部分隔开。

在实际运行的概念上,Arm CCA是在Arm长期发展的TrustZone基础所发展出来的安全执行架构──TrustZone是从ARMv6、ARM11就开始提供的技术,时至今日,已横跨ARMv6Z、ARMv7-A、ARMv8-A、ARMv8-M等架构。而Arm最新发展的CCA,采用的做法是动态设置一或多个机密领域(Realm),适用于所有的应用程序,能从现今混杂安全与不安全的执行环境中,另行隔出一个个独立运行区域。

若用于商业应用系统,CCA提供的机密领域,可以保护具有商业性质的敏感资料与程序代码,在软件执行期间、进入静置状态,或进行传输时,不会受到系统其他部分的访问与篡改。例如,消费者个人的网络银行信息,能够与智能手机的社交媒体应用程序之间,完全区隔开来,因此,就算部分应用程序受到恶意软件的感染,CCA可避免它们散播到手机的其他部分。

关于机密运算的重要性,不只是针对个人端设备而言,Arm认为,此种做法的价值是更为广泛的,因为,无论在资料处于使用中、传输中,或是静置等状态,皆能维持加密状态,所以,若将机密运算用于云计算环境,也意味着,能让系统在执行第三方程式代码时,保护实体处理器与虚拟处理器的使用。

整体而言,Arm首席执行官Simon Segars表示,在Arm架构发展机密运算,至关重大,而他们将会基于现在已完成开发的,以及未来创造的安全功能特色,来应对用所有层级的运算应用,协助保护物联网传感器、头戴式设备、笔记本,以及互联网与云计算服务等执行环境。

在CCA正式推出之前,Arm预告,第一代基于Armv9-A架构的处理器,将会集成内存标记延伸技术(Memory Tagging Extension,MTE)。

事实上,MTE这项技术先前主要是在2018年9月推出的Armv8.5-A架构提供,能让开发者在他们负责的应用程序其中,识别那些违反安全规范的内存访问行为,能在软件部署之前与之后,找出内存的安全弱点所在。

截至目前为止,有哪些软件平台支持MTE?2019年8月,Google宣布Android操作系统将采用MTE,并承诺整个Android软件堆栈会支持MTE,当时他们已与特定系统单芯片厂商合作测试MTE支持,期盼未来能广泛在Android软件与硬件生态系统部署MTE。

到了2020年9月,Google正式推出Android 11,在软件测试功能内置的标记指标功能(Tagged Pointers),与MTE支持的准备就绪有密切关系。他们通过操作系统的核心,来支持Arm内存最顶端8位元位置略过处理(Top-byte Ignore,TBI)──TBI会在应用程序访问内存时,从硬件层级来略过指标的头1个字节,因此,系统能在这里,针对设备所有的内存堆积,实例成预先定义的标记组合,之后,系统会在重新配置内存时检查标记,若有任何应用程序试图修改这组标记,会被终止执行。

同年10月,Linux核心5.10版开始支持Armv8.5的MTE,随后OpenSUSE也提供相关支持。

在基于v9- A架构的处理器其中,Arm将提供CCA机密运算架构,根据Arm开发者网站公布的架构安全功能列表来看,CCA预计包含两大部分,一是机密领域管理延伸技术(Realm Management Extension,RME),另一是Arm机密运算固件架构(Arm Confidential Compute Firmware Architecture),将在v9.3-A架构提供。Arm也预告,这套架构会有许多支持软件规格与参考实例。

以RME而言,Arm表示,能以此创建硬件式安全环境,可将安全运算延伸至所有的开发者与工作负载,而在应用案例上,可针对公有云的所有运算执行实例服务,使其能安全地处理敏感或有价值的资料,

至于Arm机密运算固件架构,则是一套标准平台软件框架,能简化硬件设计,并促进重复使用与可移植性。此套架构能应用在哪些场景?Arm表示,可针对移动设备,保护敏感的个人医疗看护资料。

关于CCA的起源,除了基于Arm长期发展TrustZone,Arm开放源码软件副总裁Mark Hambleton补充了另一个发展脉络,那就是可信任固件(Trusted Firmware)这套开放安全软件参考实例,其中包含了在例外层级3(EL3,固件)执行的安全监控机制(Secure Monitor),而在Armv8.4-A架构,Arm让安全分区管理员(Secure Partition Manager,SPM)的执行,提升到例外层级2(EL2,Hypervisor)。

而到了CCA,Arm另外设立了机密领域,EL3仍然是Secure Monitor,EL2配置的是机密领域管理员Realm Manager,而EL1与EL0仍分别是操作系统与应用程序执行的层级,因此,我们可将多个中间件系统的执行位置,改到基于硬件隔离机制而成的机密领域。

值得注意的是,就基本的应用方式而言,Realm Manager可同时承载Linux与Windows虚拟机的执行,扮演如同Hypervisor的角色,因此,可将虚拟机改到机密领域执行。

此外,Realm Manager还可支持复杂的应用方式。例如,原本在Hypervisor之上执行两套系统,一是Android操作系统,其中执行医疗看护App,另一则是执行专属操作系统与数字版权管理服务;若是换到Realm Manager环境,可在不同机密领域其中,分别执行多个应用系统,于是,过去在Hypervisor执行的Android操作系统、医疗看护App、数字版权管理服务,以及在安全分区管理员执行的安全服务,都可配置到彼此以硬件来区隔的机密领域里面执行。