遺憾的是,雖然有很多加密芯片可供選擇,但大多數(shù)只能提供很小范圍的安全保障。在某些情況下,設(shè)計工程師有意/無意中選擇的芯片,可能與他們所期望的防偽(ACF)保護功能相差甚遠。
有兩種類型的認證IC:固定功能“狀態(tài)機設(shè)計”,以及包含大量不同安全協(xié)議的軟件可程序組件。圖1顯示了一個認證IC的通用原理架構(gòu)圖
圖1:認證IC內(nèi)部原理圖(來源:Rambus)
可以對高性能安全處理器進行編碼,以執(zhí)行各種任務(wù),包括身份驗證。一個例子是可信平臺模塊(TPM)芯片,它可以執(zhí)行許多不同類型的加密操作。相較之下,固定功能的認證芯片只執(zhí)行一項任務(wù):將質(zhì)詢安全地轉(zhuǎn)化為回應(yīng)。
質(zhì)詢/響應(yīng)協(xié)議是防偽的核心,使用質(zhì)詢-握手驗證協(xié)議(CHAP)示例有助于解解釋這一點。在CHAP系統(tǒng)中,認證服務(wù)器以一種大量隨機位的形式向用戶發(fā)出質(zhì)詢。用戶的密碼(秘密值)用于加密質(zhì)詢,加密結(jié)果返回給服務(wù)器。一旦服務(wù)器收到用戶響應(yīng),它就可以驗證回應(yīng)是否符合預(yù)期,這意味著用戶必須輸入正確的密碼。確認匹配后,用戶身份就通過了認證,由此得到了“質(zhì)詢/響應(yīng)協(xié)議”的稱號。
固定功能的ACF芯片也以類似的方式工作。它從驗證器主機接收到質(zhì)詢(以大量隨機位的形式),并且使用儲存在ACF芯片內(nèi)的秘密數(shù)據(jù)以加密的方式對該質(zhì)詢進行操作。然后,它將計算的結(jié)果返回給驗證器芯片,然后就可以確認芯片知道正確的秘密值。如果確實是這樣,芯片以及它所保護的產(chǎn)品就被認為是真實的。
考慮關(guān)鍵優(yōu)勢
盡管所有認證IC都使用秘密數(shù)值來遵守某種質(zhì)詢/響應(yīng)協(xié)議,但為了徹底保護其系統(tǒng)設(shè)計免受偽造影響,精明的工程師就會對一個ACF芯片有別于其它同類芯片的關(guān)鍵差異進行全面審視。這涉及四個關(guān)鍵考慮因素:
1.要了解秘密數(shù)據(jù)如何儲存在芯片中以及它是怎么受到保護的。
2.使用哪個密鑰派生函數(shù)(KDF)?換句話說,秘密數(shù)據(jù)如何成為用于加密傳入質(zhì)詢的密鑰?
3.加密算法的具體細節(jié)也很重要,包括對DPA攻擊和故障注入攻擊的反應(yīng)敏感程度。
4.芯片的整體防篡改功能也至關(guān)重要。
首先,系統(tǒng)設(shè)計人員必須詢問所使用的非揮發(fā)性內(nèi)存確切類型,以及該內(nèi)存在芯片遭遇非侵入性、半侵入性和完全侵入性攻擊時的堅韌性。供貨商如何選擇儲存秘密數(shù)據(jù)是芯片的一個關(guān)鍵因素,安全芯片開發(fā)商會使用不同的技術(shù)來儲存這些數(shù)據(jù)。相較于EEPROM或嵌入式閃存等帶電可擦寫式內(nèi)存,一次性可程序設(shè)計(OTP)內(nèi)存是更為安全的。雖然兩者都會屈服于持續(xù)的侵入性攻擊,但使用半侵入式掃描電子顯微鏡技術(shù)可以更容易地對帶電可擦寫式內(nèi)存進行反向工程。
系統(tǒng)設(shè)計人員需要問的第二個問題是秘密數(shù)據(jù)如何成為用于加密質(zhì)詢的密鑰。這是KDF的工作,它需要取出該資料并專門對其處理,以便讓它成為密鑰。最好使用工作量證明(PoW)函數(shù)從秘密數(shù)據(jù)中導出密鑰。PoW函數(shù)或算法會以很高的時鐘速率運行,并且需要使用極寬的數(shù)據(jù)路徑,因此是無法在低成本微控制器(MCU)中進行有效模擬的。
實際上,具有這種PoW能力的KDF可以確保系統(tǒng)設(shè)計者每次在該芯片上執(zhí)行認證時,芯片不僅會確認知道密鑰,而且還可以執(zhí)行KDF功能。這種雙重身份認證專門用來防止攻擊者僅使用程序設(shè)計到現(xiàn)成MCU中的秘密數(shù)據(jù)來部署低成本的攻擊。
第三,需要清楚將質(zhì)詢轉(zhuǎn)化為響應(yīng)所使用的是什么加密引擎或?qū)嶋H協(xié)議。有許多協(xié)議可用于生成響應(yīng)。一些芯片使用先進加密標準(AES),而其他芯片則使用安全哈希算法(SHA-2和SHA-3)。大多數(shù)安全芯片開發(fā)商都使用橢圓曲線密碼術(shù)(ECC)。有不同的方法來組合質(zhì)詢和密鑰,以便計算出響應(yīng),而且攻擊者不能基于質(zhì)詢/響應(yīng)數(shù)據(jù)對密鑰進行反向工程。
然而,即便所有這些都確定后,也無法避免所有加密算法都必須面對的與差分功率分析(DPA)相關(guān)的問題。無論你使用ECC、AES、DES或任何SHA,都必須正視這一問題。實際上,幾乎每個加密算法在根據(jù)質(zhì)詢計算相應(yīng)的響應(yīng)時都會「泄漏」一些與其密鑰相關(guān)的信息。
小心DPA攻擊
簡言之,DPA攻擊就是攻擊者或假冒芯片制造商在真實芯片執(zhí)行加密操作時想法監(jiān)控它的電源消耗。然后,他們記錄下這些波形,并使用泄漏信息來精確定位加密密鑰的數(shù)據(jù)位。在大多數(shù)情況下,這足以從安全芯片中獲取密鑰的值。
采取這種數(shù)據(jù)分析過程不會引起昂貴的侵入性攻擊。因此,在芯片中儲存秘密數(shù)據(jù)的內(nèi)存類型或者防篡改保護措施都無關(guān)緊要了。如果加密算法沒有進行DPA保護,攻擊者就可以透過DPA攻擊來獲取密鑰。
因此,系統(tǒng)工程師應(yīng)該專注于用來計算質(zhì)詢-響應(yīng)的算法,使其具有DPA免疫性。在這種情況下,即使攻擊者可以從安全芯片收集到數(shù)億個電源追蹤曲線(trace),也都無濟于事。
這里需要提醒的是,DPA阻抗性或保護性與DPA免疫協(xié)議之間是有差異的,如圖2所示:
圖2:DPA阻抗性/保護與DPA免疫的區(qū)別(來源:Rambus)
有了DPA免疫協(xié)議,攻擊者根本無法獲得足夠的信息來對密鑰進行任何重要的推斷,無論他們收集到多少電源消耗追蹤曲線。另一方面,受DPA保護(但不具有DPA免疫性)且嵌入在低成本安全芯片中的加密IP核心最終將泄漏足夠的信息讓DPA攻擊得逞。這可能需要很長的時間,攻擊者可能需要收集超過1億條追蹤曲線才能獲取密鑰,但是可以做到的。
防篡改技術(shù)的重要性
上面列出的關(guān)鍵考慮因素中,第四項是確保在安全芯片中有防篡改功能。防篡改機制本身不是算法或安全問題。然而,它可以指明芯片制造商如何能夠阻止攻擊者進入芯片并以電子方式監(jiān)控訊號。如果非侵入性攻擊(例如DPA分析)證明無法得逞,攻擊者就會使用篡改的辦法來獲取秘密數(shù)據(jù),這對攻擊者是十分有效的途徑。
遺憾的是,關(guān)于芯片的特定防篡改技術(shù)大多不會公開,因為芯片開發(fā)商的技術(shù)是專有的,再說這些信息對有意攻擊者來說是特別敏感的。但是,根據(jù)保密協(xié)議(NDA),系統(tǒng)工程師可以與供貨商核實,以確定他們?nèi)绾螌嵤┻@一關(guān)鍵保護層。在檢測到有篡改攻擊時,確切知道安全芯片如何保護其秘密數(shù)據(jù)是最值得關(guān)心的事情。
總結(jié)來看,在現(xiàn)今這個時代,應(yīng)該深入研究防偽技術(shù)。對于最先進的技術(shù)來說尤其如此,以防止那些既有耐心又非常渴望獲得密鑰的攻擊者,他們用此啟動兼容的安全芯片,讓假冒山寨產(chǎn)品流入市場。