鑒于不斷出現的系統偽造攻擊事件,來自工業、軍事/航空航天、商業和技術等各個領域的設計工程師正在尋找最佳的加密認證IC,以保護其先進的系統設計免受偽造之害。
遺憾的是,雖然有很多加密芯片可供選擇,但大多數只能提供很小范圍的安全保障。在某些情況下,設計工程師有意/無意中選擇的芯片,可能與他們所期望的防偽(ACF)保護功能相差甚遠。
有兩種類型的認證IC:固定功能“狀態機設計”,以及包含大量不同安全協議的軟件可程序組件。圖1顯示了一個認證IC的通用原理架構圖
圖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所示:
圖2:DPA阻抗性/保護與DPA免疫的區別(來源:Rambus)
有了DPA免疫協議,攻擊者根本無法獲得足夠的信息來對密鑰進行任何重要的推斷,無論他們收集到多少電源消耗追蹤曲線。另一方面,受DPA保護(但不具有DPA免疫性)且嵌入在低成本安全芯片中的加密IP核心最終將泄漏足夠的信息讓DPA攻擊得逞。這可能需要很長的時間,攻擊者可能需要收集超過1億條追蹤曲線才能獲取密鑰,但是可以做到的。
防篡改技術的重要性
上面列出的關鍵考慮因素中,第四項是確保在安全芯片中有防篡改功能。防篡改機制本身不是算法或安全問題。然而,它可以指明芯片制造商如何能夠阻止攻擊者進入芯片并以電子方式監控訊號。如果非侵入性攻擊(例如DPA分析)證明無法得逞,攻擊者就會使用篡改的辦法來獲取秘密數據,這對攻擊者是十分有效的途徑。
遺憾的是,關于芯片的特定防篡改技術大多不會公開,因為芯片開發商的技術是專有的,再說這些信息對有意攻擊者來說是特別敏感的。但是,根據保密協議(NDA),系統工程師可以與供貨商核實,以確定他們如何實施這一關鍵保護層。在檢測到有篡改攻擊時,確切知道安全芯片如何保護其秘密數據是最值得關心的事情。
總結來看,在現今這個時代,應該深入研究防偽技術。對于最先進的技術來說尤其如此,以防止那些既有耐心又非常渴望獲得密鑰的攻擊者,他們用此啟動兼容的安全芯片,讓假冒山寨產品流入市場。