当前位置: 华文问答 > 数码

如果台积电在为华为生产的芯片上做手脚,能被华为发现么?

2019-05-29数码

撞枪口上的问题啊。这篇答案不求多少赞,讲些填坑多年来的肺腑之言吧。

个人背景:俩月以前在TSMC流了一个片,一个月以前有篇一作文章谈这个问题在比CHES差一档的会上拿了best paper candidate。

谈些Hardware Security这个领域研究十年来的基本共识。

  1. 首先要明确的一点是,Hardware Security研究界定义的Trojan跟一般概念中的「后门」是有所区别的,前者的条件要更宽泛一些。研究中如果发现一种新方法,可以插入一个能够造成实际破坏性效果的电路,而常见的检测方法难以发现,那么就可以说发现一种新Trojan快乐的发文章了;但是一般所谓的芯片后门通常要求更高,不但要不能发现,而且要能找到机密情报并传递回攻击者控制的服务器,甚至有些人认为实现远程控制才算。所以学界发那么多Trojan文章,现实生活中大家感觉还没有见过,都是正常的。甚至有个别PI攻击说Trojan就是个伪概念,也是正常的。当然了,到会上撞见了该撕还是得撕就是了。
  2. Hardware Trojan定义得这么宽泛而始终能拿到钱,这跟美国政府和军队等基金发放部门对本部门面临任务的理解有关,就不进行个人的揣测了。操作上可以理解为他们认为只要存在Trojan的可能,就要假设存在后门的风险。当然这些部门也不见得一定是傻多速,也可能是他们基于所掌握的机密知识认为从Trojan到后门这一步对有决心有资金的情报机构并不困难。
  3. Hardware Trojan有很多种分法,一个重要的分类方法是看在供应链上哪个供应商插入的Trojan,这样可以分为IP提供商插的Trojan,前端部门(内鬼)插的Trojan,后端部门(内鬼)插的Trojan,等等。像题主提到这种叫做untrusted foundry插的Trojan。
  4. Untrusted Foundry是一个从DARPA到学界公认认为难以解决的问题,主要原因就是因为Fondry太神通广大了。比如说有些答主说的需要逆向工程其实Foundry并不需要这么干,因为你给他提交的是GDS,是设计的最完全信息,完全版的版图。有过后端经验的应该知道后端工具从版图中提取netlist有多么快,然后从netlist自动提取某些特殊格式的RTL(比如状态机)的方法其实也是旧文献了。你可以反驳说仍然很费工,但是你要考虑到Hardware Security出现之前这方面挑大梁的是密码学,人家是认为暴力破解时间短于质子衰变就算漏洞的方向。大概是这种观点感染了DARPA,现在学界的基本共识是认为在设计上摆迷魂阵不说白费力气,起码也是追求不高。
  5. 另一方面,如果一个Foundry想使坏有太多种方法,插Trojan都算没效率的了。比如说最简单的它可以多造几万片拿出来偷偷卖,或者拿GDS出来当成hard macro IP来卖。一度号称能解决这些问题的方案最近都遇到了各种各样的问题。比如说插入逻辑锁的方法(logic locking)前年被人指出其实强度只相当于SAT;还有IARPA之前提出的利用「trusted foundry」搞分步制造(split manufacturing)方案在火了多年以后撞上了IBM退出foundry事业结果悲剧了。
  6. 就题主这个问题,我在最近这篇文章中提到untrusted foundry可以从每个设计无处不在的大带载能力(load capacity)逻辑门中拆出非必须的晶体管来,通过修改M1层接线达到寓Trojan门于正常门内部的目的。这样拆出来的门跟原本的门已经不发生电气连接了,所以对原本的门唯一的影响就是由于带载能力不匹配会变慢而已。要发现这种修改要么对造出来的硅电路做全面逆向工程,要么指望延迟测试(delay test)可以把延迟异常的门找出来。后者要做一开始就很难(因为延迟测试是不可能全覆盖的),而且攻击者完全可以选择那些你设计的延迟测试没有覆盖到的门来做修改,所以基本不能指望。
  7. 我的脑洞姑置不提,要记得DRC规则文件是foundry写的啊。要记得GDS做好foundry可以理直气壮的进行任意修改然后称之为design for manufacturability啊。某种程度上来说,你流片出来的芯片跟你的设计本来就大不一样了,而且你不具备分辨这些改动是否无害的知识:这些知识是foundry的商业秘密,你要先搞工业间谍才能知道。
  8. 对硅电路进行全面逆向工程属于失效分析(failure diagnostic/analysis)部门,基本的方法是在电子显微镜SEM的指引下使用离子束FIB来把制造出来的硅电路一层层磨掉照相。这是个很费时的过程——我们最近这篇因为把时间从几个月缩短到几小时拿了best paper candidate——而且还有一个可能是foundry如果不惜工本完全可以只在某几个芯片上动手脚:出货量上亿的芯片你总不能每个花几个月分析吧?而且还是破坏性分析。针对这个问题我们的画饼是说用分析过的芯片的旁道(side channel)特征训练分类模型,不过这个想法目前真的只是画饼而已。

总结:

  1. 理论上(Trojan)可行。后门有多可行不知道,取决于NSA等机构掌握的非公开信息。
  2. 如果Trojan到后门这一步变换可行,那么台积电可以做到让后门很难发现。
  3. 这篇回答并不挑战foundry基于商业声誉考虑不愿意这么做的解释——实质上我个人认为这是现实中没有哪家真这么干的主要原因。TSMC人家现在正规流片都忙不过来,吃饱了没事干去搞这歪门邪道真是何苦来。