2009-4-17
第五章
侵入式攻擊
這種攻擊需要直接接觸元器件的內部。如果是個安全模塊或看門狗,就需要打開它,然后讀芯片的存儲器。對于智能卡或微控制器,需要打開封裝后,用聚焦離子束或激光除去鈍層,用以接觸深埋在芯片鈍化層下的內部連線。這種攻擊需要良好的裝備和經驗豐富的破解者。同時,隨著特征尺寸的減小和器件復雜度的提高,侵入式攻擊的開銷越來越昂貴。某些操作如打開封裝和化學腐蝕,幾乎人人都可以做,只需很小的投資和有限的知識即可。同時,
如用光學方法讀取舊式的掩模ROM,或對使用兩層金屬,1微米線寬的芯片進行反向工程,是很容易成功的。
通常的侵入式攻擊用來作為了解芯片功能的手段,然后由此研究更廉價和快速的非侵入式攻擊方法。
5.1 樣品的準備
侵入式攻擊開始于部分或全部除去芯片的封裝,以暴露硅晶粒。總共有幾種方法打開封裝,取決于封裝的類型和以后分析的需求。對于微控制器,通常使用部分打開封裝的方式,那樣器件就可以放在標準的燒寫器上,并可以測試。有些器件需要保持它們的電性能,不能被打開封裝。在這種情況下,芯片的晶粒需要使用焊接機器將晶粒焊在芯片載帶上,通過金線或鋁線連到晶粒的焊盤。與晶粒的連接也可以用探針站的微探針保持接觸。
為了能在FIB或SEM下工作,芯片表面需要涂一層薄的金層使之導電,否則會很快積累電
子,圖像會一團漆黑。
5.1.1 打開封裝(Decapsulation)
打開芯片的封裝是個復雜的過程,需要很多經驗,這是個共識。(譯者注:本章節操作時使用到強腐蝕的化學物品,對人身安全極具威脅,故不予翻譯。
譯者曾在PSG里做過一段時間的FA,當時只要打開自來水的開關,就會聞到一股酸味。當然,現在沒有那種“特異功能”了。
市場上已出現一種表面呈灰白色的存儲器芯片,封裝材料的成份異于常見的黑色芯片。據說用原著中的配方打不開它的封裝。)
5.1.2 逆向處理(Deprocessing)
該過程與芯片制造的流程相反。(譯者注:本章節操作時使用到強腐蝕的化學物品,對人身安全極具威脅,故不予翻譯。)
5.2 反向工程(Reverse engineering)
反向工程是用來理解半導體元器件的結構和功能的技術。對于ASIC,意味著可以獲得關于所有晶體管和內部互聯位置的信息。為了獲得成功,需要具有集成電路設計方面的知識。芯片制造時的所有層次結構需要反向逐一剝離,并攝像以獲取芯片的內部結構。最后,處理所有獲得的信息,創建一張標準的網表文件用于進行模擬半導體器件。那是個冗長且耗時的過程,但有些公司將此作為標準的服務。
當開始對智能卡和微控制器進行反向工程時,需要器件的結構和程序代碼來理解器件是如何工作的。需要明白芯片的哪些地方與安全保護有關,如果存儲器總線進行了加密,需要對硬件的響應進行反向工程。最后,獲得內部存儲器的內容,進行反匯編來理解器件的功能。
對CPLD或FPGA進行反向工程稍有不同。即使攻破安全保護,并獲得了器件的配置位流文件。也不得不花很多時間和精力來將它轉換成邏輯方程式和簡單的模塊來進行稍后的模擬和分析。
5.2.1 使用光學圖像來重建版圖
對于0.18微米以下特征尺寸的硅芯片進行反向工程,帶CCD攝像頭的光學顯微鏡是個重
要的工具,用它來獲取高分辨率的芯片表面圖像。不是每一種顯微鏡都可以的。因為光線不能透過芯片,顯微鏡需要使用反射光源。圖像要清晰,沒有幾何失真和色彩異常,否則很難進行圖片對接。標準的100X物鏡(NA=0.9)的實用最大分辨率大約是0.3微米。為了獲得更高的光學孔徑,可以使用浸水物鏡和浸油物鏡,對于100X的物鏡,最大分辨率可以達到0.2微米。另一種增加分辨率的方法是使用更短的波長,使用360納米的近紫外線,分辨率可以提高到0.18微米,但這需要特殊的CCD鏡頭。
高分辨率的顯微鏡的主要缺點是物鏡和樣品之間的有效距離太短,特別是在高放大倍數下。結果導致不能觀察封裝被部分打開的芯片,需要芯片的封裝全部剝掉。使用長工作距離鏡頭的顯微鏡可以解決這個問題,但分辨率很低。
另一個問題是高分辨率物鏡的焦點很短,這使得焦點外的平面看上去很模糊,降低了圖像的質量。在多層芯片中需要倍加注意,因為頂層到底層的距離大于1微米。共焦顯微系統減少了這種影響,所有焦點外的平面呈黑色或顯示不同的顏色。這樣的系統很昂貴,特別是帶激光掃描的,只有相對較大的實驗室才可能裝備。
重建版圖需要芯片內部所有層的圖像進行整合。通常使用電動工作臺來獲取圖像,用特殊的軟件來整合所有圖像。
通常,特征尺寸等于或低于0.13微米的半導體芯片,需要使用SEM來獲取圖像,SEM的分辨率可以達到10納米。(譯者注:每次從硅芯片上腐蝕掉一層,并進行照相,然后利用肖特基效應顯示N摻雜區和P摻雜區。原理是將一薄層金或鈀沉積到硅表面以形成二極管,這些二極管可以在電子束作用下被觀察到。芯片的各層圖像經計算機處理,從而確定芯片基本參數和掩模版,電路圖以及庫單元列表。這種方法曾被成功用于英特爾80386處理器的反向工程。)
5.2.2 獲取存儲器內的信息
直接用光學的方法獲取存儲器內的信息只對確定類的掩模ROM有效。如在MC68HC705P6A微控制器中,使用1.2微米技術的帶有效層編程的NOR掩模ROM,可以在500X顯微鏡下讀出。
5.3 微探測技術(Microprobing)
侵入式攻擊的最重要的工具是微探針站。有五大部分:顯微鏡,工作臺,元器件測試座,顯微鏡操作器和探針。通常顯微鏡有三到四個物鏡來調節不同的放大倍數和聚焦深度。探針可以用來捕獲或注入信號,如果直連到示波器,通常就有較大的電容和較低的阻抗。這樣就不適合探測芯片內部的信號,除非用在帶緩沖的總線上。有源探頭就可以連到焊盤上,它有很大的帶寬,較低的電容和較高的阻抗。對于大部分應用,1微米精度的工作臺已經足夠了。
通常為獲得如存儲器內容或密鑰之類的信息,微探針放在數據總線上。同時觀察整個總線是很困難的,有多種方法可以克服它。如存儲器的讀操作要重復多次,2-4個探針用來觀察信號來組合成完整的總線波形。從智能卡中獲取信息更困難,它們的軟件通常不提供任何訪問內部存儲器的接口。為獲得成功,我們就復用處理器的部分組件如地址計數器或指令解碼器來訪問所有的存儲器單元。程序計數器在每個指令周期都在自動增加,用來讀下一個地址。這極為適合存儲器掃描。我們所要做的只是防止處理器執行跳轉,引用或返回指令,不能讓這些指令弄亂程序計數器。對指令解碼器或程序計數器進行微小的修改就能達到這種效果。這不是個輕松的活,通常需要部分反向工程處理器的電路。對于現代帶頂層網格保護和混合邏輯設計的智能卡更具挑戰。
5.3.1 激光切割器(Laser cutter)
在硅芯片上,頂層鋁互聯線被鈍化層覆蓋著。在探針可靠接觸前要除去鈍化層。最方便和最容易使用的方法是使用激光切割系統。
通常,紫外線激光用來除去聚酰亞胺(Polyimide)或別的有機層,這些經常出現在鈍化
層頂上。紫外線激光也可用來切割鈍化層,綠激光用來切割金屬線。紅外激光用于切割頂層金屬,形成通孔來訪問第二層的金屬層。
5.3.2 FIB工作站(Focused Ion Beam workstation)
對于0.5微米及以下的半導體器件需要更有效的工具來建立與內部線路的連接。這種工具就是FIB工作站。不僅可以制作測試點,也可用來成像和修復。在失效分析中,用來準備切面和缺陷分析。擁有極好的空間分辨率和精度,足以在深亞微米技術的晶粒上制作探測點。FIB工作站包括一個真空室,與SEM不同的是內有一個電子槍,鎵離子從液態陰極出發加速并聚焦成直徑為5-10納米的束流。通過增強離子束的電流,芯片材料可以被除去。通過注入碘之類的蒸汽可以有更好的腐蝕率。可以制作訪問底部金屬層的窗口而不損傷附近結構。
通過注入鉑基的有機氣體,可以制造新的連接。使用別的化學成分,甚至是絕緣物,可以沉積到底部金屬到表面的連接,而不用接觸任何覆蓋層。
FIB可以在芯片表面以0.1微米的精度進行移動,而不論芯片表面結構或芯片的平整度。使用紅外線成像,可以從芯片的背面定位某個晶體管,
5.4 修改芯片
并非一直需要使用微探測技術來從芯片的內部總線獲取信息。有時侯,特別是對于微控制器,可以通過切割掉內部的金屬互連線或破壞掉控制電路來屏蔽掉安全保護。FIB很容易將傳輸安全保護狀態的金屬線連到地上或電源上。微探針也能做到,但對于埋在芯片內部的金屬線就無能為力了。
芯片修改至少需要對芯片進行反向工程來找到可以破解的點,這意味著只有裝備精良且訓練有素的破解者才有可能獲得成功。