Foundary插木马的话呢:
目前来说前端插入的HW Trojan在学术圈不是什么新的课题了,后端foundary插入变成了比较有趣的研究点。方向开始往analog Trojan上面偏。思路是利用模拟(或者数模混合)部分的一小部分电路做Trigger,触发后发出一个特定信号(比如高电平)来激活潜伏着的硬件或软件上的功效(payload)部分。
这种思路下,加上模拟电路的特性,这种Trojan Trigger具有面积,功耗,时延等等所有指标overhead超级小的特点,几乎无法检测出。比如通过修改特定的存储单元内部结构,加个电阻电容啦,来对特殊的电信号做出反应。
目前来看,修改特定结构的思路虽然用来写paper的人多,但是实际意义上来说我不看好。太费劲儿,不好实际去用。但是利用现有正常的电路结构去构建木马是个很有价值的方向。就是说:我认为A2(Trojan)很厉害,但我更看好Rowhammer(Vulnerability)。
检测方法的话呢:
传统的测试不可能检测到这种木马,其实最简单的RTL层插入的木马也没办法通过传统的办法检测到,比如通过时序逻辑+组合逻辑设计的Trigger,测不过来的。
通过侧信道分析来检测这类木马是这个领域占比例很大的一部分思路。硬件任何行为都会体现在侧信道信号上面:再小的木马在通电的时候怎么也得有个电磁辐射/功耗吧。收集信号不难,难在后期如何分析。
通过形式化验证来检测这类木马是这个领域……我做的方向,写了这么多就为了打广告容易么我……_(:з」∠)_咳咳。后期通过反提netlist作为benchmark然后做分析。今年下半年正常会去Kansas State U做AP,有读博意愿的同学请私信联系我,对这个领域感兴趣的欢迎私信交流。
这个问题我理解成:如果TSMC在为华为代工的芯片上做手脚,有没有可能华为发现不了?
答案是,可能的,在芯片制造阶段加入难以被发现的后门是可能的。
被人反馈说讲的不够清楚,稍作修改。
后门大家都知道,硬件后门更是威力巨大。举个例子iphone4的处理器有硬件bug(可以理解为意外出现的后门),导致iphone4上IOS怎么升级都没用,一定能越狱。
但后门也不容易,一个好的后门必须做到:
1. 隐蔽,难以被发现。特别是不影响原有的设计的正常的功能,否则会在测试阶段被轻易的发现。换句话说,不能被轻易触发。
2. 这个后门能够被激活,否则它就没有任何作用了。至于后门激活后会干什么任何可能性都有,但既然叫后门,肯定就是从前门走做不了的事情。
3. 这个后门的激活必须能够绕过现有的软硬件安全机制。一般而言,动静越小越好。
众所周知的,软件可以加入后门,芯片在设计阶段也有很多可能加入硬件后门。但TSMC是负责制造的,它拿到手只是设计好的芯片版图。如果需要在设计都已经完成的芯片加入一个硬件后门,那么它只能在版图基础上做尽量少的修改,把芯片重新设计一遍来加入一个后门一般来说并没有什么意义。
听起来这个任务几乎不可能完成是吧?但现实是已经有人找到了方法。
这个后门的实现有很多方法,但最简单的实现可以简单到一个MOS管加一个电容。其基本原理是利用电容的特性,当某个被某条指令触发的某个逻辑信号触发譬如几千次之后,即可使电容充电到阈值,使后面的逻辑输出翻转,执行一个譬如说提权的操作。也就是说,一条完全正常的指令重复几千次,后门就开了,然后譬如说处理器会把你后面的某些原本没有权限的指令当成特权指令执行。然后触发时间到了后门还会自己关上,一切就像没发生过一样。
从各种角度上来说,这个后门很完美:
1. 对原有设计改动极小,由于非常简单,这个后门可以在完成了版图设计的芯片上插入,这也就是TSMC负责的阶段。利用芯片上随处可见的空位就可以放下。插入后门简单只需要一个员工,当然他得非常熟悉设计本身否则也没法知道把后门接到哪里。如果是全定制的设计会比较困难一些,也并非不可能,而对于公版设计的处理器来说更是要简单得多。
2. 不会被典型的软件硬件测试发现:只要设计后门时选择适当的条件,即可防止被无意触发。没谁会没事执行几千条特定的指令,大家都没有上帝视角。实际上编译器就不会编译出这样的程序,所以日常使用中完全不会被触发,通常的定向或者随机测试也很难覆盖到这种场景。
3. 用以触发后门的指令本身完全合法,并不会触发软件安全系统。同时由于加入的电路非常简单,功耗也极低,基本上也无法被现有的硬件安全系统发现。
相关论文发表在IEEE Symposium on Privacy and Security 2016,我记得还是当年的最佳论文?
论文链接在这里
我都不知道高赞一楼在IC行业干啥的。台积电要有水平能在你给的10几层layout freeze的GDS2文件里完美的插入一个后门,而且能通过你定义的引脚,让这个后门启动,那台积电怕不是得让美帝叫爸爸。你插个晶体管多次使用让他坏掉是可以,然而这并没啥用。本来layout里就留了一些cell给未来ECO的,但真出了大问题拿着SPEC的设计方ECO修好都难用的要死,一个公司除非钱烧的慌,绕线资源和cell place利用率都是很高的,老板让你们原有版图上不加面积加点新功能都难的要死,台积电还有技术多搞一套后门电路,你有这技术扣点面积那可是能赚大钱的,芯片就是按面积卖的。你别说让只有版图的台积电造后门了,连spec都没有的人制造方输入输出信号都不知道,你怎么留。
最可能留下这个东西的是芯片IP供应商,还有论文本身是我啥都知道了再加进去的,现实你是不可能知道用户芯片的功能。
地摊阴谋论真的很受欢迎。
撞枪口上的问题啊。这篇答案不求多少赞,讲些填坑多年来的肺腑之言吧。
个人背景:俩月以前在TSMC流了一个片,一个月以前有篇一作文章谈这个问题在比CHES差一档的会上拿了best paper candidate。
谈些Hardware Security这个领域研究十年来的基本共识。
总结:
这个问题蛮有趣的。先不讨论台积电或者谁是否有动机这么做,我们仅仅问,技术上他们能不能做到呢?
……注意,我没有任何明示暗示说他们这么干了,仅仅是可行性讨论。而且即使理论上可行,在芯片上埋一个后门又不被发现,还不影响正常功能,同样难度超高。
情况一,海思或者任一设计公司的芯片是全定制的,每个ip都是自己设计的,那么交给代工厂的gds文件就包含了每一个晶体管每一根线。代工厂想动手脚,基本上一定被发现。
情况二,设计公司从代工厂之外的第三方购买了一些核心ip,获得了该ip的完整gds,包含了每个晶体管的信息。与情况一类似,代工厂动手脚会被发现。但是,ip提供者如果埋了后门,是有可能不被发现的。
情况三,设计公司从代工厂或者第三方购买了一些核心ip,但并未获得完整的gds,而是选择流片时由代工厂将ip整合进芯片(这种情况并不罕见)。那么如果ip里有后门,是很难发现的。
情况四,代工厂很清白,IP提供商也很清白,但是eda工具厂在综合器编译器等地方加了后门,干干净净的代码变成网表的过程中被塞了私货进去。这种情况几乎无法被发现。这么玩才是高手中的高手。
情况五,(昨晚躺着想到的)一颗芯片的生命周期可能会很长,foundry花个一年把芯片吃透,某些批次加个后门模块进去。进入量产阶段的芯片,不出啥问题的话,设计公司不会注意到的。
所以说,仅仅考虑技术上的手段,tsmc不是最可怕的,synopsy/cadence才是幕后boss,因为他们不仅仅是最大的eda厂,也是arm之外最大的ip供应商。
必须再补充一下,所谓后门,也有几个层次。第一层次是芯片debug用的工程模式,基本上每个芯片都有,有心人拿来好好运用一下,可以来个大死机。这种需要软件配合,而且重启一下也就修好了。
第二层次呢,就是监听,偶尔偷偷发些信息出去。这种只要在个别几个关键IP上动手脚就行,也不需要软件配合。
第三层呢,我的理解就是远程接管所有硬件控制权。我才疏学浅,想不到有啥特别简单的办法能做到这事还不让设计方发现。而且有这种本领,直接在软件上埋后门就好了,何需如此大张旗鼓……