鑒於不斷出現的系統偽造攻擊事件,來自工業、軍事/航空航太、商業和技術等各個領域的設計工程師正在尋找最佳的加密認證IC,以保護其先進的系統設計免受偽造之害。

遺憾的是,雖然有很多加密晶片可供選擇,但大多數只能提供很小範圍的安全保障。在某些情況下,設計工程師有意/無意中選擇的晶片,可能與他們所期望的防偽(ACF)保護功能相差甚遠。

有兩種類型的認證IC:固定功能「狀態機設計」,以及包含大量不同安全協定的軟體可程式元件。圖1顯示了一個認證IC的通用原理架構圖

20181227_cyber_security_TA01P1 圖1:認證IC內部原理圖(來源:Rambus)

可以對高性能安全處理器進行編碼,以執行各種任務,包括身份驗證。一個例子是可信平台模組(TPM)晶片,它可以執行許多不同類型的加密操作。相較之下,固定功能的認證晶片只執行一項任務:將質詢安全地轉化為回應。

質詢/回應協定是防偽的核心,使用質詢-握手驗證協定(CHAP)示例有助於解解釋這一點。在CHAP系統中,認證伺服器以一種大量隨機位元的形式向用戶發出質詢。使用者的密碼(秘密值)用於加密質詢,加密結果返回給伺服器。一旦伺服器收到用戶回應,它就可以驗證回應是否符合預期,這意味著使用者必須輸入正確的密碼。確認匹配後,用戶身份就通過了認證,由此得到了「質詢/回應協議」的稱號。

固定功能的ACF晶片也以類似的方式工作。它從驗證器主機接收到質詢(以大量隨機位元的形式),並且使用儲存在ACF晶片內的秘密資料以加密的方式對該質詢進行操作。然後,它將計算的結果返回給驗證器晶片,然後就可以確認晶片知道正確的秘密值。如果確實是這樣,晶片以及它所保護的產品就被認為是真實的。

考慮關鍵優勢

儘管所有認證IC都使用秘密數值來遵守某種質詢/回應協議,但為了徹底保護其系統設計免受偽造影響,精明的工程師就會對一個ACF晶片有別於其它同類晶片的關鍵差異進行全面審視。這涉及四個關鍵考慮因素:

  1. 要瞭解秘密資料如何儲存在晶片中以及它是怎麼受到保護的。
  2. 使用哪個金鑰派生函數(KDF)?換句話說,秘密資料如何成為用於加密傳入質詢的金鑰?
  3. 加密演算法的具體細節也很重要,包括對DPA攻擊和故障注入攻擊的反應敏感程度。
  4. 晶片的整體防篡改功能也至關重要。

首先,系統設計人員必須詢問所使用的非揮發性記憶體確切類型,以及該記憶體在晶片遭遇非侵入性、半侵入性和完全侵入性攻擊時的堅韌性。供應商如何選擇儲存秘密資料是晶片的一個關鍵因素,安全晶片開發商會使用不同的技術來儲存這些資料。相較於EEPROM或嵌入式快閃記憶體等帶電可讀寫式記憶體,一次性可程式設計(OTP)記憶體是更為安全的。雖然兩者都會屈服於持續的侵入性攻擊,但使用半侵入式掃描電子顯微鏡技術可以更容易地對帶電可讀寫式記憶體進行反向工程。

系統設計人員需要問的第二個問題是秘密資料如何成為用於加密質詢的金鑰。這是KDF的工作,它需要取出該資料並專門對其處理,以便讓它成為金鑰。最好使用工作量證明(PoW)函數從秘密資料中匯出金鑰。PoW函數或演算法會以很高的時脈速率運行,並且需要使用極寬的資料路徑,因此是無法在低成本微控制器(MCU)中進行有效模擬的。

實際上,具有這種PoW能力的KDF可以確保系統設計者每次在該晶片上執行認證時,晶片不僅會確認知道金鑰,而且還可以執行KDF功能。這種雙重身份認證專門用來防止攻擊者僅使用程式設計到現成MCU中的秘密資料來部署低成本的攻擊。

第三,需要清楚將質詢轉化為回應所使用的是什麼加密引擎或實際協定。有許多協議可用于生成回應。一些晶片使用先進加密標準(AES),而其他晶片則使用安全雜湊演算法(SHA-2和SHA-3)。大多數安全晶片開發商都使用橢圓曲線密碼術(ECC)。有不同的方法來組合質詢和金鑰,以便計算出回應,而且攻擊者不能基於質詢/回應資料對密鑰進行反向工程。

然而,即便所有這些都確定後,也無法避免所有加密演算法都必須面對的與差分功率分析(DPA)相關的問題。無論你使用ECC、AES、DES或任何SHA,都必須正視這一問題。實際上,幾乎每個加密演算法在根據質詢計算相應的回應時都會「洩漏」一些與其密鑰相關的資訊。

小心DPA攻擊

簡言之,DPA攻擊就是攻擊者或假冒晶片製造商在真實晶片執行加密操作時想法監控它的電源消耗。然後,他們記錄下這些波形,並使用洩漏資訊來精確定位加密金鑰的資料位元。在大多數情況下,這足以從安全晶片中獲取密鑰的值。

採取這種資料分析過程不會引起昂貴的侵入性攻擊。因此,在晶片中儲存秘密資料的記憶體類型或者防篡改保護措施都無關緊要了。如果加密演算法沒有進行DPA保護,攻擊者就可以透過DPA攻擊來獲取金鑰。

因此,系統工程師應該專注於用來計算質詢-回應的演算法,使其具有DPA免疫性。在這種情況下,即使攻擊者可以從安全晶片收集到數億個電源追蹤曲線(trace),也都無濟於事。

這裡需要提醒的是,DPA阻抗性或保護性與DPA免疫協議之間是有差異的,如圖2所示:

20181227_cyber_security_TA01P2 圖2:DPA阻抗性/保護與DPA免疫的區別(來源:Rambus)

有了DPA免疫協議,攻擊者根本無法獲得足夠的資訊來對金鑰進行任何重要的推斷,無論他們收集到多少電源消耗追蹤曲線。另一方面,受DPA保護(但不具有DPA免疫性)且嵌入在低成本安全晶片中的加密IP核心最終將洩漏足夠的資訊讓DPA攻擊得逞。這可能需要很長的時間,攻擊者可能需要收集超過1億條追蹤曲線才能獲取金鑰,但是可以做到的。

防篡改技術的重要性

上面列出的關鍵考慮因素中,第四項是確保在安全晶片中有防篡改功能。防篡改機制本身不是演算法或安全問題。然而,它可以指明晶片製造商如何能夠阻止攻擊者進入晶片並以電子方式監控訊號。如果非侵入性攻擊(例如DPA分析)證明無法得逞,攻擊者就會使用篡改的辦法來獲取秘密資料,這對攻擊者是十分有效的途徑。

遺憾的是,關於晶片的特定防篡改技術大多不會公開,因為晶片開發商的技術是專有的,再說這些資訊對有意攻擊者來說是特別敏感的。但是,根據保密協定(NDA),系統工程師可以與供應商核實,以確定他們如何實施這一關鍵保護層。在檢測到有篡改攻擊時,確切知道安全晶片如何保護其秘密資料是最值得關心的事情。

總結來看,在現今這個時代,應該深入研究防偽技術。對於最先進的技術來說尤其如此,以防止那些既有耐心又非常渴望獲得金鑰的攻擊者,他們用此啟動相容的安全晶片,讓假冒山寨產品流入市場。

(參考原文:Going Above and Beyond Basic Cybersecurity Authentication Chips,by Scott Best)