近年来,卡脖子事件频发,不久前的两件卡脖子事件虽然与我国没有直接关系,但又难免物伤其类、兔死狐悲。
一是ARM取消了对高通的指令集架构授权,说明在经济利益面前,商业信誉不名一文。二是Linux内核移出了11名俄罗斯开发者的贡献条目,说明在政治争端面前,开源精神也难以为继。
两件事都发生在国外,但是国内ARM CPU厂商也应该设身处地地加以警惕,以史为鉴,前车之鉴,后事之师。
ARM架构不安全
安全是一个系统工程,所谓的L1、L2、L3、L4的安全分类等级其实是自欺欺人,只有从CPU指令集、IP核设计到芯片生产、封装都完全自主,从操作系统到应用软件都完全可控,才能真正做到安全。
当下,国产ARM芯片基于ARM指令集架构或IP核授权,就很难做到真正安全。比如国产ARM手机芯片,在过去十多年里先后购买了ARM Cortex A9 A7 A15 A53 A57 A72 A73 A76 A77 等CPU核,可谓是引进一代、落后一代、反复引进,手机芯片性能提升高度依赖从ARM购买更好的CPU核与采用台积电更好的工艺。这种设计、制造两头在外的模式是存在较大风险的,一旦国际环境发生变化,就有休克的风险。
此外,由于不能对购买的指令集架构或IP核进行自由扩展,导致ARM自身携带的大量先天漏洞后门无法修复,从而让CPU成了待宰的羔羊。从已经爆发的漏洞看,国产ARM芯片在面对致命的幽灵漏洞和内存漏洞等时难以应对,而这些漏洞会导致机密信息泄露和云计算场景系统被攻击等严重问题。
目前,安全研究人员已经在ARM架构的CPU中发现不少严重安全漏洞。比如:
1. CVE-2024-5660内存访问错误漏洞。系ARM V8.2架构的处理器存在的一个漏洞。该漏洞使得经过修改的、不可信的客户操作系统危及宿主机系统的安全,可被攻击者用于云计算场景的系统攻击。
2.UnTrustZone漏洞。攻击者通过安全调用在TrustZone中将秘密数据拷贝到SRAM,并利用该漏洞恢复SRAM中的秘密数据,因此该漏洞可被用于突破TrustZone的安全隔离。
3.TIKTAG漏洞。该漏洞揭示了ARM处理器上内存保护存在的缺陷,对于ARM v8.2架构,其由于没有实现MTE而存在内存保护功能的缺失,或者即使实现了MTE功能但是因为该漏洞存在导致ARM v8.2架构不能完全防御针对内存的攻击。该漏洞以Arm的内存标记扩展(MTE)为目标,利用推测执行来泄露MTE内存标签,可绕过防止内存损坏的关键保护机制。利用TIKTAG漏洞Gadget,攻击者能在诸如谷歌浏览器和 Linux内核等现实应用中,在数秒内高精度地泄露 MTE标签,进而破坏针对内存的保护机制。
4.CVE-2024-10929SPECTRE-BSE幽灵漏洞。ARM 架构的中央处理器(CPU)中存在一个被称为 Spectre-BSE(Spectre Branch Status Eviction)的幽灵漏洞。该漏洞让攻击者能够对受害者的分支历史记录实现控制,从而控制受害者分支预测路径。说明ARM v8.2架构的幽灵漏洞防御可能并不彻底。
5.Leaky MDU侧信道漏洞。该漏洞利用MDU侧信道推测受害者地址信息,从而破解诸如KASLR之类的安全功能。攻击者利用消歧单元的状态变化从而获取受害者地址信息,并进一步获取对地址信息存在依赖的秘密数据。
ARM授权不可靠
过去十几年,国内企业从国外引进了一大批CPU,使MIPS、SPARC、Power、ARM、X86 CPU都在中国大陆落地生根。从实践上看,在美国掀起科技战后,出现过或曾经出现过供货紧张和“绝版”是ARM芯片。
在美国政客放嘴炮的时候,ARM公司声明遵守美国禁令,断绝与中国大陆企业的所有合作和交流,当国际局势缓和时,ARM就主打“合规”,表示愿意和中国做生意。实践已经证明了,ARM不具备对抗美国禁令的能力,面对国际政治风险基本不具备免疫力。
过去,国内ARM厂商喜欢标榜所谓的ARM指令集授权,但从实际上看,这种授权不仅无法承受国际政治风险,连商业风险都很难避免。
就以ARM起诉高通为例,ARM在诉讼中向高通发出了《取消架构许可协议的60天强制通知》,此举证明了ARM授权可以被取消,ARM可以对外卖授权,自然就可以取消授权。
诚然,最终美国法院的判决偏向高通,但并不意味着中国企业同样会得到美国法院的袒护。毕竟高通在美国的游说团体、法律资源和政商关系不是任何一家中国公司能够碰瓷的,并且ARM如今还是一家美股上市公司。一旦中国企业卷入类似的诉讼,下场不会比当年休克的晋华好多少。
ARM取消了对高通的指令集架构授权和Linux内核移出了11名俄罗斯开发者的贡献条目都有一个共同点,就是被制裁的一方都是在他人的地皮上搞建设。
看似自由,但不管你的建设成果使地皮的价值提高了多少,都不影响地主把你赶走并吞下你的建设成果,然后换别人来继续建设。因此,避免被卡脖子的唯一方式,只能是在自己的地皮上搞建设。
ARM发展不自主
虽然ARM CPU厂商在PPT中宣称龙芯指令集可持续发展能力不足,自己可以基于ARM V9授权持续演进。但实际上,龙芯才是真正独立自主的指令集,具备自主发展能力,国内ARM CPU厂商反而只能跟随ARM亦步亦趋。
具体来说,就是ARM路线存在买无止境的问题,ARM指令集已经更新到V9,以后肯定会更新V10、V11,此前,国产ARM购买了V8授权,现在购买了V9授权,以后ARM更新了V10,国产ARM厂商是不是还要购买,如果是这种买无止境,那么,国产ARM所谓的自主性又体现在哪里呢?
就自主性来说,龙芯自主指令,核心IP全部自主设计,自建软件生态,自主性是最强的,龙芯如果能够做成,就可以实现X86、ARM、loongArch三足鼎立,实现三分天下有其一。
相比之下,国产ARM其实是ARM体系中的附庸,在技术上和利润上受制于ARM,需要持续向ARM支付版税,去年,ARM在美国上市,中国市场占其营收的38%,中国市场已经成为ARM营收和利润的重要来源。
这里铁流必须吐槽一下国产ARM CPU所谓的自研CPU,既然都自主研发了,什么事情都自己做,为啥每年还要给ARM高额授权费呢?
自研含金量如何,关键看给外商的专利费多寡,完全不给专利费,必然是真自研,否则就是伪自研。
在每年向ARM缴纳巨额授权费,ARM近4成营收来自中国市场的情况下,国产ARM CPU哪来的厚脸皮标榜自主呢?
结语
事实上,国产ARM芯片的合适定位应当是商业芯片,通过融入西方的技术体系,购买ARM授权和台积电工艺,受益于安卓软件生态,在商业市场上开拓疆土,使国产手机厂商有更加廉价的ARM芯片可用,增强手机厂商对高通、联发科的议价能力。
从实践上看,要保证信息安全,必须基于从CPU指令集、IP核设计到芯片生产、封装都完全自主的CPU,国产ARM芯片不适合作为自主信息化系统的基石。特别是对安全性、自主性要求较高的使用场景,不应当强制推广ARM。