0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

保護和控制存儲在閃存中的軟件

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Kerry Maletsky ? 2022-10-24 11:38 ? 次閱讀

許多系統(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)部存儲器。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19286

    瀏覽量

    229853
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50816

    瀏覽量

    423674
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2263

    瀏覽量

    82457
收藏 人收藏

    評論

    相關(guān)推薦

    EMMC閃存的工作原理解析 EMMC存儲的讀寫速度測試

    EMMC閃存的工作原理解析 結(jié)構(gòu)組成 EMMC是一種基于NAND閃存存儲解決方案,它集成了控制器和NAND閃存在一個單一的封裝
    的頭像 發(fā)表于 12-25 09:46 ?137次閱讀

    EMMC存儲在手機的應(yīng)用

    存儲技術(shù),它集成了控制器和NAND閃存在一個單一的封裝。這種集成設(shè)計簡化了手機制造商的設(shè)計和制造過程,因為它減少了需要集成的組件數(shù)量。EMMC遵循JEDEC標準,支持多種接口,如e
    的頭像 發(fā)表于 12-25 09:36 ?154次閱讀

    緩存技術(shù)軟件開發(fā)的應(yīng)用

    現(xiàn)代軟件開發(fā),隨著數(shù)據(jù)量的爆炸性增長和用戶對響應(yīng)速度的高要求,緩存技術(shù)成為了提升系統(tǒng)性能的重要手段。緩存技術(shù)通過將數(shù)據(jù)存儲離用戶更近的
    的頭像 發(fā)表于 12-18 09:32 ?233次閱讀

    吉時利源表軟件憶阻器測試的應(yīng)用

    現(xiàn)代電子技術(shù)的發(fā)展,憶阻器作為一種新型的非線性元件,因其存儲器、神經(jīng)網(wǎng)絡(luò)和模擬計算等領(lǐng)域的廣泛應(yīng)用而備受關(guān)注。為了有效地測試和評估憶阻器的性能,吉時利源表
    的頭像 發(fā)表于 11-19 16:24 ?220次閱讀
    吉時利源表<b class='flag-5'>軟件</b><b class='flag-5'>在</b>憶阻器測試<b class='flag-5'>中</b>的應(yīng)用

    SFTP存儲的應(yīng)用

    ,并且支持用戶身份驗證。 2. SFTP存儲的應(yīng)用 2.1 數(shù)據(jù)安全 存儲環(huán)境,數(shù)據(jù)
    的頭像 發(fā)表于 11-13 14:16 ?232次閱讀

    憶聯(lián)榮獲2024年度閃存控制器金獎

    近日,由百易傳媒(DOIT)主辦的2024國數(shù)據(jù)與存儲峰會,以“智數(shù)據(jù) AI未來”為主題在北京舉行,《2024年度存儲風(fēng)云榜》也會議期間同步揭曉,憶聯(lián)企業(yè)級
    的頭像 發(fā)表于 11-08 18:11 ?538次閱讀

    什么是閃存?它有哪些類型?

    等。閃存以其長壽命的非易失性特性而著稱,即使斷電的情況下,存儲的數(shù)據(jù)也不會丟失。這種特性使得閃存成為便攜式數(shù)字設(shè)備不可或缺的
    的頭像 發(fā)表于 09-26 15:35 ?669次閱讀

    閃存的哪些扇區(qū)可用于用戶數(shù)據(jù)存儲?

    界面(通過 AP 獲得),然后閃存存儲數(shù)據(jù),以便設(shè)備自動以 ST 模式連接,并保存用戶密碼以保護配置。變化。 我已經(jīng)準備了這樣的
    發(fā)表于 07-12 08:13

    XMC1302T028X0016ABXUMA1如何在閃存存儲數(shù)據(jù)?

    你好,我想在 MCU 存儲一些配置參數(shù)。 如何在閃存存儲這些數(shù)據(jù)? 我只需要在發(fā)貨前寫一次這些數(shù)據(jù)。 我指的是這份文件https://w
    發(fā)表于 07-04 07:32

    TC375如何將變量值保存到非易失性存儲?

    我有一臺 TC375,正在開發(fā)工作室進行編程。 我的軟件有一個控制系統(tǒng),它使用一組我可以調(diào)整的參數(shù)。 這些參數(shù)設(shè)置為全局變量。 一旦我對它們進行了調(diào)整,控制器復(fù)位后就無法保持它們的值。 是否有辦法使用
    發(fā)表于 05-31 06:40

    華為高端全閃存榮獲DCIG年度存儲數(shù)據(jù)安全首位推薦

    全球知名技術(shù)評估機構(gòu)DCIG近日發(fā)布的《DCIG 2024-25高端全閃存存儲安全TOP5》報告,華為OceanStor Dorado 18000高端全閃存憑借其卓越的數(shù)據(jù)安全能力,
    的頭像 發(fā)表于 05-24 10:04 ?509次閱讀

    如何在啟動軟件時將信息存儲非易失性存儲,以便在COLD PORST之后恢復(fù)?

    如何在啟動軟件時將信息存儲非易失性存儲,以便在 COLD PORST 之后恢復(fù)?
    發(fā)表于 05-21 07:55

    請問如何編寫.bin程序使用IAR或GreenHill將文件存儲到外部存儲

    你好, 我們使用帶有 CYT4DN 和 S25HS 外部存儲器的自定義COOLDIM_PRG_BOARD 。 我們正在嘗試閃存 .bin 圖像 文件到外部存儲。 因此,我想知道 I
    發(fā)表于 05-15 07:22

    如何讓CYUSBlinux上閃存固件?

    你好, 我想通過控制中心 linux 刷新固件。 Windows ,我們有支持 EZUSB 的
    發(fā)表于 02-22 06:23

    Pflash和Dflash都有閃存ECC保護,ECC內(nèi)存在哪里?

    在用戶手冊,Pflash 和 Dflash 都有閃存 ECC 保護,我想知道 ECC 內(nèi)存在哪里? 它會占用 pflash 空間還是存儲在用戶無法訪問的地方? 在此先謝謝!
    發(fā)表于 01-26 08:12