近日,中国计算机学会(CCF)在太原晋祠宾馆举行了“2016第二届自主安全产业生态创新发展论坛”,中国工程院院士倪光南、中国工程院院士沈昌祥、全国信息安全标准化技术委员会副主任委员韩俊、工信部软件与集成电路促进中心软件处副处长魏威,以及自主安全产业的专家学者、企业代表出席论坛。在论坛上,参会人员对什么是自主可控,如何发展自主可控核心技术等话题进行了讨论。
虽然现在国内对自主可控的标准依旧没有形成统一的观点——很多马甲CPU公司都坚称自己的产品符合自主可控的标准......但这些导致CPU存在安全风险的因素却实实在在的摆在眼前。
令集就是一个编码集合。它是用一些代码表达读、写等操作,命令计算机做各种运算的一套命令标准。指令集可分为复杂指令CISC、精简指令RISC、超长指令集VLIW。CISC的典型代表是X86,RISC的典型代表有ARM、MIPS、Power。
隐藏于指令集的安全风险
CISC和RISC在竞争的过程中相互学习、取长补短,CISC指令集在解码阶段实现向RISC类指令的转化,将后端流水线转换成类RISC的形式。随着技术发展,RISC指令集也达到数百条甚至上千条,两者在指令集上殊途同归了。而超长指令集的典型代表就是Intel的安腾,由于VLIW与CISC、RISC软件生态不兼容的原因, VLIW已经很罕见了。
一些网络文章中将指令集视为“黑科技”,并以中国大多IC设计公司采用国外指令集为理由来贬低国内IC设计公司的技术水平,其实这种言论是非常值得商榷的。在技术上,重新定义指令集难度近乎于零,美国也一度禁止将单独的指令集申请为专利,而真正有价值的是围绕指令集建设的软件生态和指令集的发展权——正如华为海思购买ARM的指令集授权,其本质是为了能够兼容ARM的软件生态,并非该指令集有多么高的技术含量。ARM能够把ARM阵营的IC设计公司变成自己的马仔,正是因为其严禁其他公司修改指令集,掌握了ARM指令集的发展权。
虽然指令集仅仅是一个编码集合,但并不意味着其不存在猫腻——国内单位经过测试,发现X86指令集存在未公开指令,包括加解密、浮点操作在内共计二十余条。其中,有三条指令在用户模式就可以使机器死机或重启,作用机制直接穿透各种软件保护措施,防护软件却不能感知;普通应用程序中嵌入一条即可使系统宕机——Intel可以利用这些未公开指令轻而易举的黑掉用户,虽然Intel在和平时期未必会这样做,但Intel确实拥有黑掉用户的能力。
隐藏于微结构的安全风险
微结构也被称为CPU核,很大程度上决定了CPU的性能、功耗、安全性等要素,我们日常所说的双核、四核、八核CPU芯片,其实是将2、4、8个微结构(CPU核)的接口互联并集成到一片硅片上。
开发一款优异的微结构有多难呢?我们可以从不可替代性的角度进行分析。目前,虽然国内拥有一大批IC设计公司,但具备高性能微结构开发能力的CPU公司却寥寥无几,国内CPU公司大多采取购买国外CPU核授权的方式开发所谓的国产CPU。具体来说,华为海思、展讯、全志、瑞芯微、新岸线等公司虽然已经卖出了数以亿计的手机、平板芯片,但已经商用的产品中没有一片芯片的CPU核是自主开发的,全部都是购买ARM的CPU核授权。
正因此,由于都是购买ARM设计的微结构,所以基于ARM结构的国产芯片的性能、功耗、安全性都由ARM决定,中国ARM阵营IC设计公司在性能、功耗、安全性方面根本不具备话语权,能够做主的,仅仅是把这些ARM微结构组合成双核、四核、还是八核的芯片,以及在后端设计方面,在ARM留有的冗余范围内,将主频定得高一点,还是低一点。
虽然笔者没有明确证据证明ARM出售的CPU核是否存在后门,但经过国内单位的测试,X86芯片确实存在功能不明确的“多余”模块——这些模块不是一般意义的调试接口,而是由特定的CPU芯片引脚控制,可读写CPU内部状态寄存器、读写指定存储区域、激活特定的微代码段执行某个处理流程、对CPU进行复位。
另外,有人认为由于能够拿到源码,因此ARM芯片就是安全可控的,这种说法其实也是非常值得商榷的。
首先,熟悉IC设计的开发者应该都知道,一个IP设计公司在对第三方提供其设计好的IP时,即便是较开放的软核授权,也不会做到所有代码可读可修改,而是包装了好多模块,其中有些可以配置、有些可以修改,而在大部分模块内部都不可能进行随意修改。
其次,即便拿到源码,也存在“看得见,但看不懂”的问题。虽然对研发单位来说,员工在自己写的代码里设置后门,可能会在code review的过程中被发现,但第三方在没有设计文档和验证环境等技术支持下,要想发现设计单位埋设的后门却非常困难。而且设计单位可以对源码进行变量置乱,所有变量全部用随机字母和数字代替,在这种情况下,第三方想要破解源码中埋设的后门近乎是一件不可能完成的任务。因此,国内ARM阵营IC设计公司能够读懂源码的多寡,其实取决于ARM想让你看懂多少。
在代工生产中的安全风险
上月,来自密歇根大学的研究人员证明了在芯片制造过程中植入硬件木马的可行性,并在不久前的IEEE隐私与安全大会上,他们的研究获得了最佳论文奖。
在论文中,研究人员详细描述了一种恶意、超微型的硬件后门的概念验证攻击。在他们的展示中,黑客通过每分钟在处理器上运行一系列看上去完全无害的命令,能够有效地触发处理器的一项功能,获得操作系统的完整权限。最让人恐慌的是,极微小的硬件后门基本无法通过任何现代硬件安全分析手段检测出来,而且只要芯片工厂中的一位员工就能进完成植入。
密歇根大学的研究人员称,这种木马不是篡改芯片的“数字”特性,比如更改芯片的逻辑计算功能,而是一种物理入侵,劫持电流穿过二极管的路线,触发预料之外的结果。
换言之,除了在集成电路设计的过程中可以安插硬件木马之外,在集成电路的制造过程中,同样可以对原始电路进行恶意修改,安插微小的恶意电路,以达到在无条件或在特定的触发条件下实现改变系统功能、泄露机密情报,或摧毁系统的目的。
在论文中,来自密歇根的研究人员坚称,“他们的本意是防止这类无法检测的硬件后门攻击,而不是发明它们。事实上,世界各国的政府有可能已经想到了这种模拟电路攻击方法......通过发布这篇论文,我们说明了,这种攻击是真实的、迫在眉睫的威胁。现在我们需要找到一种防御方式。”
因此,国内一些公司在境外流片的所谓的“安全芯片”,很难说安全保密程度到底有多高。
结语
自改革开放以来,中国在信息技术领域一直存在“缺芯少魂”的问题,最近几年每年的芯片进口费用超过石油进口总额。这不仅严重制约了本土技术和产业的成长和发展,还对国家的信息安全造成了巨大的隐患——从海湾战争中萨达姆的防空系统突然瘫痪,到2007年以色列轰炸叙利亚东北部的一处潜在核设施时,叙利亚预警雷达因通用处理器后门而失效,再到2012年伊朗布什尔核电站在信息系统物理隔绝的情况下遭到震网病毒的攻击......残酷的现实向世人阐释了只要存在国家和利益斗争,给CPU或操作系统留后门的行为就永远存在。
前车之鉴,后事之师,前人无暇自哀,切勿使后人复哀后人也。