許多系統(tǒng)使用外部標準閃存芯片來存儲不包括嵌入式非易失性程序存儲的處理器的操作程序。這很棒,因為它允許輕松的閃存擴展和軟件修改,也許在生產(chǎn)線上作為客戶下載或在維護操作期間。缺點是OEM失去了對閃存內(nèi)容的控制,可能允許未經(jīng)授權(quán)的復(fù)制或修改。
然而,這不僅僅是需要擔心的收入損失。如果將惡意軟件下載到系統(tǒng)中,OEM 的聲譽可能會受到影響。對于醫(yī)療設(shè)備等系統(tǒng),OEM甚至可能面臨責(zé)任問題。
奪回安全性
硬件安全芯片可以幫助將控制權(quán)帶回 OEM???a target="_blank">編程、高度安全的智能卡處理器已經(jīng)存在了一段時間,但需要寫入額外的固件,并且可能會給系統(tǒng)增加不可接受的成本。另一方面,硬件認證芯片是交鑰匙設(shè)備,不需要內(nèi)部編程或詳細的加密算法知識,價格適中。
這些芯片的工作方式非常簡單。系統(tǒng)微處理器向芯片發(fā)送質(zhì)詢,然后芯片使用加密算法將質(zhì)詢與安全存儲在非易失性存儲器中的密鑰相結(jié)合。然后將響應(yīng)發(fā)送回系統(tǒng)。芯片內(nèi)部實現(xiàn)的算法的選擇方式是,觀察總線的觀察者可以看到挑戰(zhàn)和響應(yīng),無法確定秘密的價值。根據(jù)芯片存儲密鑰的安全性,復(fù)制這樣的個性化芯片可能非常困難。
雖然這些芯片可以以各種方式用于增加系統(tǒng)的安全性,但有兩個軟件保護功能特別令人感興趣。第一種安全啟動提供了一種方法來確保僅執(zhí)行真實的程序,同時仍允許進行升級。第二種是反克隆,可防止未經(jīng)授權(quán)的系統(tǒng)構(gòu)建或設(shè)計的直接復(fù)制。
安全啟動
片上系統(tǒng)(SoC)器件通常包括一個小型引導(dǎo)ROM,其中包含用于在執(zhí)行外部閃存內(nèi)容之前初始化芯片操作的程序。該引導(dǎo)ROM可以很容易地重新編程,以與外部認證芯片配合使用。
在系統(tǒng)發(fā)貨之前,OEM 會將驗證值與程序一起存儲在閃存中。這是通過將程序摘要與密鑰相結(jié)合來計算的,其副本存儲在身份驗證芯片中。哈希算法(如安全哈希算法 1 (SHA-1) 或 SHA-2)用于生成程序摘要。黑客可能能夠更改閃存的內(nèi)容,但在不知道秘密的情況下,無法生成新的驗證值。
在引導(dǎo)ROM中執(zhí)行代碼期間,微處理器實時生成存儲在閃存中的可執(zhí)行程序的摘要。然后,此摘要作為質(zhì)詢發(fā)送到身份驗證芯片。芯片將摘要與其內(nèi)部存儲的機密相結(jié)合,響應(yīng)可以被視為一種程序簽名。如果響應(yīng)與閃存中存儲的驗證值匹配,則允許繼續(xù)執(zhí)行閃存內(nèi)容;如果沒有,微處理器可以循環(huán)到下載器,等待加載有效的閃存映像。
如果黑客可以將修改后的軟件發(fā)送到身份驗證芯片,使用邏輯分析儀讀取響應(yīng),然后將此驗證值與修改后的代碼一起存儲在閃存中,則此方案可能存在安全漏洞。但是,有幾種方法可以解決此問題。
最好的解決方案是使用身份驗證芯片,該芯片不返回預(yù)期的驗證值,而是在輸入時獲取該值并返回真/假以指示匹配。摘要通常太大,芯片太慢,攻擊者無法猜測修改代碼的正確驗證值。為了獲得更高的安全性,安全芯片可以加密方式將隨機質(zhì)詢(或者可能是當前時間或處理器序列號)與真/假相結(jié)合,并將其返回給處理器。這樣,一種簡單的開關(guān)電路修改就不能用來欺騙處理器。
另一種方法是機械地防止訪問安全芯片的引腳。對于ASIC SoC,安全芯片可以芯片形式購買,并以多芯片封裝集成到主封裝中。另一種方法是購買類似于BGA封裝的安全芯片,這不允許探測,因為焊盤是完全隱藏的?;蛘撸娐钒迳系陌踩酒梢员P瓮可檄h(huán)氧樹脂,以防止進入。
在某些情況下,系統(tǒng)可能能夠使用引導(dǎo)ROM中的軟件計算閃存程序的摘要。但是,在啟動時驗證整個內(nèi)存陣列可能過于耗時,特別是對于具有較大閃存的系統(tǒng)。有兩種方法可以解決此問題:增量驗證或硬件加速。
使用增量驗證方案時,僅使用引導(dǎo)ROM代碼驗證存儲在閃存中的模塊加載器。在加載每個新模塊以執(zhí)行之前,模塊加載程序使用身份驗證芯片在該模塊上執(zhí)行相同的驗證過程。這些模塊還可以在空閑時間提前驗證,以提高事件響應(yīng)性能。
現(xiàn)代處理器并不總是包括硬件哈希引擎,但高級加密標準(AES)或三重數(shù)據(jù)加密標準(3DES)引擎非常普遍。通過將加密引擎配置為在基于密碼的消息身份驗證代碼 (CMAC) 模式下運行,可以輕松使用這些加密算法以硬件速度生成程序摘要。
反克隆
大多數(shù) OEM 現(xiàn)在使用分包商來構(gòu)建其設(shè)備。因此,系統(tǒng)有時會被過度構(gòu)建,以便在本地銷售或可能在灰色市場上銷售?;蛘?,競爭對手或黑客可能會克隆系統(tǒng)并以較低的成本出售,因為他們不必投資軟件開發(fā)。如果系統(tǒng)僅使用現(xiàn)成的組件,則可以降低制造成本,但這會使未經(jīng)授權(quán)的系統(tǒng)更容易構(gòu)建。
使用硬件安全芯片可以結(jié)束這些克隆,而不會顯著增加系統(tǒng)的大小或成本。編譯到嵌入式軟件中有許多測試,以確保是否存在正確編程的硬件安全芯片。OEM控制編程到芯片中的秘密,并控制編程芯片到分包商的分配。作為另一種選擇,芯片供應(yīng)商可以為 OEM 管理芯片的個性化。
有幾種方法可以實現(xiàn)這些軟件測試。一種簡單的方法是在軟件中編譯挑戰(zhàn)和預(yù)期響應(yīng)。如果安全芯片丟失或具有錯誤的機密,則響應(yīng)不匹配,并且可以禁用系統(tǒng)或返回下載模式以獲取更正的文件。在程序中的許多地方添加這些檢查,黑客可能很難刪除它們,特別是當代碼在初始加載時由ROM驗證時。
這些軟件測試的其他選項包括將質(zhì)詢生成和響應(yīng)檢查分布在程序的各個部分。來自安全芯片的響應(yīng)可用作動態(tài)軟件模塊解密的密鑰。響應(yīng)可以使用單獨的常量進行 XOR‘d,然后用作跳轉(zhuǎn)向量。如果安全芯片支持它,則可以從代碼的不同部分發(fā)送多個質(zhì)詢并組合以生成單個響應(yīng)。
在典型的實現(xiàn)中,芯片中包含許多不同類型的測試,因此即使一種機制被擊敗,其他機制仍然可以完成其工作。理想情況下,這些測試依賴于安全芯片中存儲的多個密鑰,確保即使泄露一個密鑰值,也能保持整體系統(tǒng)安全性。
秘密安全
如果很容易從身份驗證芯片中獲取秘密,那么所有這些都無關(guān)緊要。在這種情況下,黑客可以創(chuàng)建正確的軟件驗證值,或者系統(tǒng)克隆者可以使用簡單的微處理器對安全芯片進行建模。認證芯片至少以兩種方式保護機密:使用強大的加密算法和使用特殊的硬件芯片設(shè)計技術(shù)來防止對芯片的直接或間接攻擊。
過去,某種形式的線性反饋移位寄存器(LFSR),也稱為循環(huán)冗余校驗(CRC),被用作哈希算法。由于實施成本低,這些算法很常見,但是對于現(xiàn)代高速PC,這些算法通??梢栽诙虝r間內(nèi)進行分析和破解。
如果密鑰大小太小,LFSR / CRC算法尤其弱,因為使用相對簡單的軟件可以進行暴力攻擊。對于大小是否足夠大,沒有通用規(guī)則,但大多數(shù)現(xiàn)代系統(tǒng)使用 128 位或更長的機密。
目前,SHA 算法是安全啟動和反克隆的最佳選擇。SHA-1今天已經(jīng)足夠安全,但它有一些已知的弱點,并且已經(jīng)被SHA-2系列(包括SHA-256和SHA-512等)所取代。由于大多數(shù)嵌入式系統(tǒng)的使用壽命以年為單位,因此使用最新算法將確保系統(tǒng)的安全性,即使在其使用壽命結(jié)束時也是如此。
也可以購買使用公鑰(非對稱)算法的身份驗證芯片,這些芯片通常更慢且更復(fù)雜。系統(tǒng)端的軟件也可能要復(fù)雜得多。與使用哈希算法的身份驗證芯片相比,它們可以提高安全啟動方案的安全性,同時對軟件克隆提供很少或根本沒有額外的好處。
但一個強大的算法是不夠的。如今,微探針很容易在eBay上購買,因此對于芯片來說,防止攻擊者入侵是很重要的,攻擊者可能會蝕刻封裝并微探針一些內(nèi)部節(jié)點來獲取這些秘密?,F(xiàn)代芯片通過在整個芯片上安裝有源內(nèi)部屏蔽,超過三層窄寬度金屬,內(nèi)部模塊上的額外加密以及沒有暴露的測試墊來防止這種情況。
黑客還可能嘗試高或低電壓或過高的時鐘頻率,以使身份驗證芯片泄露其秘密。這些攻擊可以通過內(nèi)部篡改檢測器來防御,如果嘗試在正常工作范圍之外進行操作,則會關(guān)閉芯片。這些是常見的安全塊,大多數(shù)芯片制造商在通常的篡改塊之外添加其他專有安全組件。
嵌入式實施
嵌入式系統(tǒng)中的認證芯片可以檢測對存儲在閃存中的系統(tǒng)軟件的未經(jīng)授權(quán)的修改或復(fù)制。此外,它們還可以以各種其他方式用于交換會話加密密鑰,向遠程服務(wù)器提供節(jié)點身份驗證,驗證序列號存儲,安全地存儲制造和/或維護歷史記錄以及各種其他與安全相關(guān)的功能。
高安全性認證芯片不需要設(shè)計人員具備任何特殊的加密知識,并且可以集成到嵌入式系統(tǒng)中,而不會影響上市時間。它們通常采用小型封裝,甚至適用于對空間最敏感的應(yīng)用。其中一款芯片是阿特梅爾 AT88SA102S。它將SHA-256算法與256位密鑰長度和易于使用的單線接口相結(jié)合,與所有微處理器兼容。該設(shè)計包括一個覆蓋整個電路的有源屏蔽、篡改檢測器和加密的內(nèi)部存儲器。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229853 -
芯片
+關(guān)注
關(guān)注
455文章
50816瀏覽量
423674 -
微處理器
+關(guān)注
關(guān)注
11文章
2263瀏覽量
82457
發(fā)布評論請先 登錄
相關(guān)推薦
評論