當前位置: 華文問答 > 數碼

如果台積電在為華為生產的芯片上做手腳,能被華為發現麽?

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人家現在正規流片都忙不過來,吃飽了沒事幹去搞這歪門邪道真是何苦來。