確保IC製造關鍵階段的安全性

作者 : Josh Norem,芯科科技資深系統工程師

本文探討晶片供應商和OEM之間的相互關係,以及他們為何必須攜手合作以完成各個製造階段的漏洞保護...

供應鏈安全是現今人們討論的熱門話題。由於晶片供應商(例如Silicon Labs)所提供的物聯網(IoT)元件最易受資料提取和資訊操縱的影響,因而對此更加關注。瞭解晶片供應商供應鏈中存在的風險以及這些風險如何影響其最終產品關係到原始設備製造商(OEM)的利益。因此,儘管產品開發的雙方都受到安全威脅,但OEM生命週期階段特有的風險也是一個問題。

本文包括兩部份,主要探討晶片供應商和OEM之間的相互關係,以及他們為何必須攜手合作以完成各個製造階段的漏洞保護。第一部份指出IC製造生命週期每個階段中存在的威脅,並說明如何解決這些威脅。第二部份著重說明了OEM特有的風險,並指出最終產品製造商和晶片供應商如何承擔各自的責任。這些內容將圍繞以下問題進行闡釋,即OEM和晶片供應商對各自生產階段的風險各負其責,以此來阻止大多數安全攻擊。

IC生命週期各階段存在的安全威脅

無論是由於晶圓代工廠的刻意行為還是惡意人士的滲透,IC生命週期的每個階段都存在多種威脅,而這種威脅可能使最終產品面臨風險。

製造生命週期包含以下階段,如圖1所示。

  1. 製造
  2. 探針測試
  3. 封裝組裝
  4. 封裝測試
  5. 電路板組裝(OEM擁有和控制)
  6. 電路板測試(OEM擁有和控制)

圖1:IC生命週期開發階段。

IC開發始於製造階段,在此階段元件在晶圓代工廠開始實質性的製造。此時,IC的ROM已編程,但所有其他記憶體(OTP、快閃記憶體和RAM)均未編程。下一步是探針測試,IC在從矽晶圓上切下之前先進行功能測試。在該階段,並未安裝永久性配置,且作為測試程序的一部份,在製造過程中插入的任何數據都將被刪除。

在封裝組裝階段,將單個晶粒放入封裝中。該階段完全是屬於機械操作,不進行編程或測試。一旦進入封裝,IC就會進行封裝測試,晶片供應商通常稱其為「最終測試」,因為這是晶片供應商進行的最後測試。

該測試有多個目的——查找組裝過程中的缺陷、檢查元件是否存在參數問題(例如功耗過大或偏離規格)。此外,該測試會對帶有晶片供應商資料的元件進行初始化。然後將這些元件出售給OEM,OEM負責電路板組裝,並將這些元件安裝到系統中。在電路板測試中,IC完成最終測試、配置和編程。

透過對IC生命週期各個階段的基本瞭解,現在可以深入瞭解各個階段中存在的威脅。在討論這些階段時,本文使用Silicon Labs的製造生命週期作為IC開發模型。其他晶片供應商也基本相似,因此本篇綜述對於大多數供應商都應適用。

製造

針對此階段的攻擊幾乎不可能發生,因為針對該階段進行攻擊需要高昂的花費,並且需要產生至少一組新的光罩、對元件的深入分析以及高度的專業知識。此外,針對該階段的任何攻擊都不能輕易攻擊到最終產品,因為晶圓代工廠生產多個晶圓,每個晶圓上都有數千個元件,攻擊者無從知曉哪些元件最終會用於哪一個最終產品。此外,在此開發階段對設計進行任何修改都會影響該設備製造的每個元件副本,進而更容易偵測到這些修改。但是,此階段的漏洞確實會帶來安全風險,對此將在以下小節進行說明。

資料提取

對晶圓代工廠而言,可能的攻擊途徑之一是存取機密資訊,而這將使最終產品面臨風險。例如,如果IC在ROM(或被寫入編碼到暫存器等其他硬體中)中具有對稱金鑰或專用金鑰,晶圓代工廠則可以輕鬆提取該值。同樣重要的是,可以從設計中輕鬆提取的任何資料也可以透過反向工程技術從元件副本中獲得,這一點要牢記。例如,一些實驗室對ROM資料進行反處理和提取,所花費用還不到1萬美元,這可能比從晶圓代工廠獲取設計圖的費用更低廉。為避免此問題,精心設計的產品絕不應包含機密資訊。

邏輯更改

更現實的威脅可能是晶圓代工廠去修改元件、植入漏洞並加以利用。這種修改可能包括修改ROM內容或邏輯以改變元件運行或引入其它功能。儘管此類修改不容易進行,且花費高昂,但攻擊者完全有能力進行這些基本操作,而這些會使晶圓代工廠處於風險之中。

針對這種攻擊的對策是進行抽樣測試,以隨機驗證成品元件的功能。例如,Silicon Labs每年都隨機抽取一些樣本進行測試以驗證ROM內容、驗證邏輯以及測試其他功能。如果晶圓代工廠進行了更改,測試將失敗。雖然此測試可能會有無法捕捉到的邏輯更改,但此類更改的效果會大打折扣,甚至會絲毫不起作用。在可信任的站點(例如公司總部)進行樣本測試,可以極大地降低晶圓代工廠對硬體進行更改並成功破壞這種偵測測試的風險。

在干預偵測方面,將來會得到改進,例如基於機器學習的影像分析,這會進一步防止對晶粒進行未經授權的修改,但現今還無法使用這些方法。

元件複製

在這種類型的攻擊中,晶圓代工廠可以過量生產元件,並將其合法出售。例如,攻擊者過量生產修改過的ROM零件,並將其合法出售給OEM,避開旨在攔截此類做法的測試。這種方法可以讓攻擊者直接面對OEM,因為這些元件不再流經供應商的供應鏈。

防止過量生產的最佳方法是在封裝測試時提供加密憑證。這樣OEM就可以檢查這些憑證,以確保接收到了供應商的正品元件。儘管晶圓代工廠可以生產相同的元件,但無法生成有效的元件憑證,而且OEM會偵測到假冒產品。

解決這一問題需要有標準的解鎖元件安全地保存金鑰。Silicon Labs的Vault-High EFR產品就具有這種功能。OEM使用安全層級較低的元件(例如Vault-Mid元件而非Vault-High元件)儘管保護級較低,但也可以達到相似的效果,方法是使用像Silicon Labs的客製零件製造服務(CPMS)這樣的客製編程服務。在這種情況下,對元件內容的存取在發貨之前就被上了鎖,因此金鑰可以秘密儲存在非揮發性記憶體(NVM)中。

元件分析

元件分析是晶圓代工廠加工中最現實的威脅。在不安全的解鎖狀態下製造元件,為存取邏輯和系統提供了可乘之機,而這種存取在成品元件中則無法進行。雖然存取空白的開放零件不會直接造成安全威脅,但攻擊者可以利用這個機會分析元件並在已配置和鎖定的零件上尋找可利用的漏洞。

這種威脅不僅存在於製造過程中,更有可能出現在組裝階段,下面將對此進行更詳細的討論。

探針測試

利用探針測試階段的漏洞,其費用要低於在晶圓代工廠進行修改的費用,這是因為在探針測試階段,僅需破壞測試程式或測試器即可。然而,與針對製造階段的攻擊一樣,針對探針測試的攻擊具有系統性,不能簡單地指向某個具體的最終產品或OEM。

惡意程式碼注入

攻擊者可能會在探針測試期間嘗試將惡意程式碼寫入元件。但是,在此階段寫入的所有內容要麼在封裝測試時被刪除,要麼在供應商無法對正確的內容編程時造成封裝測試失敗。此外,一旦在封裝測試中啟用安全開機,就會阻止安裝一切未經授權的程式碼。對於施作良好的產品和製造生命週期而言,這不會造成實際的威脅。

元件分析

理論上,在探針測試中控制測試器的攻擊者可以執行元件分析,該分析類似於對晶圓代工廠過量生產所造成的後果的分析。但是,攻擊者更有可能在組裝階段嘗試獲得此存取權限。

封裝組裝

在封裝組裝階段,供應商將元件置入最終產品之中,因此封裝組裝階段是攻擊者最有可能竊取空白、開放的元件以伺機進行複製和分析。

圖2:晶片製造商必須確保降低與開放樣本有關的風險。

竊取行為

竊取空白元件的目的是獲取開放樣本,並以對攻擊者有利的方式對其進行配置,然後將這些元件披著合法的外衣交付給目標OEM。這種策略針對具體的OEM或產品,並避開了供應商的最終測試,否則修改會被覆寫或偵測到。

與沒有輸入數量的製造階段不同,組裝現場接收並生產已知數量的IC,因此透過比較這些數字應該很容易偵測到比較明顯的竊取行為。

與製造階段一樣,可以透過在封裝測試中對加密憑證進行編程,以防止被竊取的開放元件被誤認為是正品。例如,出於此目的將所有EFR Vault-High產品都配備了加密憑證,並且提供了CPMS以便在沒有Vault-High功能集的元件上配置憑證。

元件分析

攻擊者在安全引擎(SE)被編程和鎖定之前竊取元件,並利用該存取權限獲取郵箱工作機制(mailbox mechanism)和SE硬體功能,這可能是此階段元件分析最明顯的範例。從理論上講,這種存取可以讓攻擊者找出一個弱點,並將其轉化為針對鎖定SE的漏洞加以利用。

元件分析只需從組裝現場獲取少量元件。儘管限制存取開放樣本是理想的防禦措施,但也應該考慮到攻擊者在某個時候獲得對開放樣本的存取權限時的應對策略。IC的設計不應造成難以應付的風險或者是破壞系統的安全性。

Silicon Labs採取了一些措施來降低與開放樣品相關的風險,包括審核組裝承包商的流程和程序、追蹤用於內部開發的開放元件、以及在無需開放樣品時將其予以銷毀。此外,產品的設計旨在保證安全,即使是針對使用開放樣本及能夠完全存取設計的攻擊者。最後,內部和第三方滲透測試均由掌握開放樣本、完整設計知識和高度專業知識的人員執行。

硬體改造

如今,透過更改或附加元件修改封裝所帶來的風險非常小。這種攻擊途徑並不具備較高風險,原因如下。首先,組裝距離終端系統足夠遠,因此很難鎖定特定的終端設備(如門鎖)。此外,由於空間限制,很難在IC上隱藏其它元件。最後,抽樣測試可以透過對一些部件進行X光偵測以識別出人們預料之外的元件,進而偵測出大規模攻擊。

封裝測試

有許多方法可以讓封裝測試階段的漏洞難以被利用,比如限制對測試站點的存取權限和維護記錄控制等。應遵守網路和PC的正常安全操作。例如,測試系統不應直接連接到互聯網,也不應使用可遠端通聯的登錄資訊。供應商應定期檢查這些流程和系統,以確保其未被更改、利用。這些簡單的操作會讓攻擊者難以存取測試系統。

圖3:在封裝測試站點,擁有不受其他供應商影響的受信任機器至關重要。

Silicon Labs採用多種技術以提高測試站點的安全性。例如,Silicon Labs啟用了不與其他供應商共享的安全強化測試器。此外,Silicon Labs為測試站點提供受信任的機器,該機器不受測試站點的影響,且可監控測試機並為其提供支援。該機器位於伺服器機房中,沒有本機介面,並且包含能夠抵禦物理攻擊的硬體。

惡意程式碼注入

該階段最明顯的攻擊方法是寫入惡意程式碼來控制元件的運行。晶片供應商在該階段提供的程式碼,例如SE韌體不會被電路板測試複寫,但是,如果程式碼被更改,交付的元件可能已受損。

這種風險可以透過在ROM中使用帶有公共金鑰的安全開機來避免,進而確保只有正確簽名的程式碼才能運行。如果攻擊者試圖修改程式碼,程式碼將無法正確簽名,並且元件會停止運行。因為用於簽名的金鑰儲存在硬體安全模組(HSM)中受到嚴格管控,並且在生產環境中不可用,因此攻擊者幾乎是不可能為被竄改的影像生成正確的簽名。

出於測試需要,韌體編程後需啟用安全開機。儘管這一流程很複雜,但攻擊者卻可能會在該流程中破壞封裝測試,進而編程惡意影像並禁用安全開機。

為了徹底消除這種風險,IC應能使OEM在不受程式碼影響的情況下驗證元件狀態。例如,Silicon Labs元件配有硬體暫存器,用於指示SE子系統是否鎖定,且支援OEM應用程式或測試程式驗證元件配置是否正確。透過適當驗證,OEM可以偵測到任何封裝測試更改或惡意程式碼,並丟棄這些被更改的元件。

提取機密資訊

如果在封裝測試期間對機密資訊進行了編程,攻擊者可能會破壞測試系統以尋找存取權限。對於標準的嵌入式產品來說,唯一的機密資訊是與憑證關聯的金鑰。對於在板上產生金鑰的元件而言,金鑰將無法提取;但是,如果測試系統注入了金鑰,那麼攻擊者就能獲得所需的存取權限,以在編程時查看金鑰資訊。

帶有機密資訊和OEM專用資訊的客製元件特別容易受到此類攻擊的威脅。但是,如果晶片供應商遵循本文中的建議,就可確保達到或超過大多數電路板測試設施的安全級別。始終建議OEM與晶片供應商合作,以確定元件編程的最佳解決方案。

供應鏈安全要有分層方法

安全性是系統層面的問題,供應商和OEM在開發互連產品時要相互信賴、共同努力。隨著在IoT建構方面取得的進展,對於OEM來說,晶片供應商如何成功地解決製造生命週期中的安全問題至關重要。在決定與哪家供應商合作時,OEM應考慮供應商所提供的資訊是否透徹全面,還需考慮IC的成本和性能。現在您可以與供應商相互探討製造安全問題,確保您的最終產品安全可靠。

(參考原文:A primer on security of key stages in IC manufacturing lifecycle,by Josh Norem)

加入LINE@,最新消息一手掌握!

發表評論