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