女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Kerry Maletsky ? 2022-08-17 10:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

許多系統使用外部標準閃存芯片來存儲不包括嵌入式非易失性程序存儲的處理器的操作程序。這非常棒,因為它可以輕松進行閃存擴展和軟件修改,可能在生產線上作為客戶下載或在維護操作期間進行。缺點是 OEM 失去了對閃存內容的控制,可能會允許未經授權的復制或修改。

然而,要擔心的不僅僅是收入損失。如果惡意軟件被下載到系統中,OEM 的聲譽可能會受到影響。對于醫療設備等系統,OEM 甚至可能面臨責任問題。

收回安全

硬件安全芯片可以幫助將控制權交還給 OEM。可編程的、高度安全的智能卡處理器已經面世一段時間了,但需要編寫額外的固件,并且會增加系統的不可接受的成本。另一方面,硬件認證芯片是交鑰匙設備,不需要內部編程或密碼算法的詳細知識,而且價格適中。

這些芯片的工作方式非常簡單。系統微處理器向芯片發送質詢,然后芯片使用加密算法將質詢與安全存儲在非易失性存儲器中的秘密結合起來。然后將響應發送回系統。芯片內部實現的算法的選擇方式是,觀察總線的觀察者可以看到挑戰和響應,但無法確定密鑰的值。根據芯片存儲秘密的安全程度,復制這樣的個性化芯片可能非常困難。

雖然這些芯片可以以各種方式用于為系統增加安全性,但有兩個軟件保護功能特別令人感興趣。第一個是安全啟動,它提供了一種方法來確保只執行真實的程序,同時仍然允許進行升級。第二,反克隆,防止未經授權的系統構建或設計的完全復制。

安全啟動

片上系統 (SoC) 設備通常包含一個小型引導 ROM,其中包含用于在執行外部閃存內容之前初始化芯片操作的程序。該引導 ROM 可以很容易地重新編程以與外部驗證芯片一起工作。

在系統發貨之前,OEM 將驗證值與程序一起存儲在閃存中。這是通過將程序的摘要與秘密相結合來計算的,其副本存儲在認證芯片中。使用諸如安全散列算法 1 (SHA-1) 或 SHA-2 之類的散列算法來生成程序摘要。黑客可能能夠更改閃存的內容,但在不知道秘密的情況下,無法生成新的驗證值。

在執行引導 ROM 中的代碼期間,微處理器實時生成存儲在閃存中的可執行程序的摘要(參見圖 1)。然后將該摘要作為質詢發送到認證芯片。芯片會將摘要與其內部存儲的秘密結合起來,并且可以將響應視為一種程序簽名。如果響應與閃存中存儲的驗證值匹配,則允許繼續執行閃存內容;如果不是,微處理器可以循環到下載器以等待加載有效的閃存映像。

圖 1:引導 ROM 可以與微處理器一起工作,該微處理器生成存儲在閃存中的可執行程序的摘要,并將其作為質詢發送到身份驗證芯片。

poYBAGL8UvSAHDT6AAKZlAV-lU0956.png

如果黑客可以將修改后的軟件發送到身份驗證芯片,使用邏輯分析儀讀取響應,然后將此驗證值與修改后的代碼一起存儲在閃存中,則此方案可能存在安全漏洞。但是,有幾種方法可以解決此問題。

最好的解決方案是使用不返回預期驗證值而是將其作為輸入并返回真/假以指示匹配的身份驗證芯片。摘要通常太大,而且芯片太慢,攻擊者無法猜測修改代碼的正確驗證值。為了獲得更高的安全性,安全芯片可以將隨機挑戰(或者可能是當前時間或處理器序列號)與真/假加密組合,并將其返回給處理器。這樣,就不能使用簡單的開關類電路修改來欺騙處理器。

另一種方法是機械地防止訪問安全芯片的引腳。對于 ASIC SoC,可以以裸片形式購買安全芯片,并以多裸片封裝的形式集成到主封裝中。另一種方法是購買類似于 BGA 封裝的安全芯片,由于焊盤完全隱藏,因此不允許探測。或者板上的安全芯片可以用環氧樹脂進行保形涂層以防止訪問。

在某些情況下,系統可能能夠使用引導 ROM 中的軟件計算閃存程序的摘要。但是,在啟動時驗證整個內存陣列可能過于耗時,尤其是對于具有較大閃存的系統。有兩種方法可以解決這個問題:增量驗證或硬件加速。

使用增量驗證方案,僅使用引導 ROM 代碼驗證存儲在閃存中的模塊加載程序。在加載每個新模塊以供執行之前,模塊加載器使用認證芯片對該模塊執行相同的驗證過程。這些模塊也可以在空閑時間提前驗證,以提高事件響應性能。

現代處理器并不總是包含硬件哈希引擎,但高級加密標準 (AES) 或三重數據加密標準 (3DES) 引擎非常常見。通過將加密引擎配置為在基于密碼的消息驗證碼 (CMAC) 模式下運行,可以輕松使用這些加密算法以硬件速度生成程序摘要。

反克隆

大多數原始設備制造商現在使用分包商來制造他們的設備。因此,系統有時會過度構建以供本地銷售或可能在灰色市場上銷售。或者,競爭對手或黑客可能會克隆系統并以較低的成本出售,因為他們不必投資于軟件開發。如果系統僅使用現成的組件,則可以降低制造成本,但這會使未經授權的系統更容易構建。

使用硬件安全芯片可以結束這些克隆,而不會顯著增加系統的大小或成本。編譯到嵌入式軟件中的是許多測試,以檢查是否存在正確編程的硬件安全芯片。OEM 控制著被編程到芯片中的秘密,并控制著將被編程的芯片分發給分包商。作為另一種選擇,芯片供應商可以為 OEM 管理芯片的個性化。

有幾種方法可以實現這些軟件測試。一種簡單的方法是在軟件中編譯挑戰和預期響應。如果安全芯片丟失或密碼錯誤,響應不匹配,系統可以被禁用或返回下載模式以獲取更正的文件。在程序的許多地方添加這些檢查,黑客很難刪除它們,尤其是當代碼在初始加載時由 ROM 驗證時。

這些軟件測試的其他選項包括在程序的各個部分分配挑戰生成和響應檢查。來自安全芯片的響應可以用作即時軟件模塊解密的密鑰。響應可以與一個單獨的常數進行異或運算,然后用作跳轉向量。如果安全芯片支持它,那么可以從不同的代碼部分發送多個質詢并組合生成單個響應。

在典型的實現中,芯片中包含許多不同類型的測試,因此即使一種機制被擊敗,其他機制仍能發揮作用。理想情況下,這些測試依賴于存儲在安全芯片中的多個秘密,以確保即使一個秘密值被泄露,也能維持整個系統的安全性。

秘密安全

如果很容易從身份驗證芯片中獲取秘密,那么所有這些都無關緊要。在這種情況下,黑客可以創建正確的軟件驗證值,或者系統克隆者可以使用簡單的微處理器對安全芯片進行建模。認證芯片至少以兩種方式保護秘密:使用強大的密碼算法和使用特殊的硬件芯片設計技術來防止對硅的直接或間接攻擊。

過去,某種形式的線性反饋移位寄存器 (LFSR),也稱為循環冗余校驗 (CRC),被用作哈希算法。由于實施成本低,這些算法很常見,但對于現代高速 PC,這些算法通常可以在短時間內被分析和破解。

如果秘密大小太小,LFSR/CRC 算法尤其薄弱,因為使用相對簡單的軟件可以進行蠻力攻擊。沒有關于什么大小足夠大的通用規則,但大多數現代系統使用 128 位或更長的密鑰。

目前,SHA 算法是安全啟動和反克隆的最佳選擇。SHA-1 在今天已經足夠安全了,但是它有一些已知的弱點并且已經被 SHA-2 系列(包括 SHA-256 和 SHA-512 等)所取代。由于大多數嵌入式系統的生命周期是以年為單位來衡量的,因此即使在其使用壽命結束時,使用最新的算法也能確保系統的安全性。

也可以購買使用公鑰(非對稱)算法的身份驗證芯片,這些算法通常更慢且更復雜。系統端的軟件也可以復雜得多。與使用散列算法的身份驗證芯片相比,它們可以提高安全啟動方案的安全性,同時對軟件克隆幾乎沒有或沒有額外的好處。

但是一個強大的算法是不夠的。如今,微探針很容易在 eBay 上購買,因此芯片必須防止攻擊者蝕刻掉封裝并微探針一些內部節點以獲取這些秘密。現代芯片通過整個芯片上的有源內部屏蔽、超過三層的窄寬度金屬、內部塊的額外加密以及沒有暴露的測試焊盤來防止這種情況。

黑客還可能會嘗試使用高電壓或低電壓或過高的時鐘頻率來讓身份驗證芯片泄露其秘密。如果試圖在正常操作范圍之外進行操作,則可以使用內部篡改檢測器來防御這些攻擊,該檢測器會關閉芯片。這些是常見的安全塊,大多數芯片制造商在通常的篡改塊之外添加了其他專有安全組件。

嵌入式實現

嵌入式系統中的認證芯片可以檢測存儲在閃存中的系統軟件的未經授權的修改或復制。此外,它們可以以多種其他方式用于交換會話加密密鑰、向遠程服務器提供節點身份驗證、驗證序列號存儲、安全存儲制造和/或維護歷史,以及各種其他與安全相關的功能。

高安全性認證芯片不需要設計人員具備任何特殊的密碼知識,并且可以集成到嵌入式系統中而不影響上市時間。通常以小包裝形式出現,它們甚至適用于對空間最敏感的應用。Atmel AT88SA102S 就是這樣一種芯片。它結合了 SHA-256 算法與 256 位密鑰長度和與所有微處理器兼容的易于使用的單線接口。該設計包括覆蓋整個電路的有源屏蔽、篡改檢測器和加密的內部存儲器。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7651

    瀏覽量

    167367
  • 服務器
    +關注

    關注

    13

    文章

    9795

    瀏覽量

    87967
  • 微處理器
    +關注

    關注

    11

    文章

    2383

    瀏覽量

    84174
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    閃存的哪些扇區可用于用戶數據存儲

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

    控制器讀取閃存軟件信息時,軟件信息部署在哪里? 是 SRAM 嗎?

    我對 PMG1 閃光燈有疑問。 1.微控制器讀取閃存軟件信息時,軟件信息部署在哪里? 是 SRAM 嗎? 2.微
    發表于 05-23 06:22

    閃存技術基礎-1-1 #存儲技術

    閃存IC設計存儲技術閃存技術
    EE_Voky
    發布于 :2022年06月28日 17:31:14

    閃存技術基礎-1-2 #存儲技術

    閃存IC設計存儲技術閃存技術
    EE_Voky
    發布于 :2022年06月28日 17:31:41

    閃存技術基礎-1-3 #存儲技術

    閃存IC設計存儲技術閃存技術
    EE_Voky
    發布于 :2022年06月28日 17:32:08

    閃存存儲的VDI場景應用

    行業向閃存時代平滑演進。    以PC 為辦公工具的傳統辦公模式不但耗時,而且成本高昂,隨著成熟VDI系統企業IT系統中廣泛應用,不僅可以本地或云中交付、保護和管理 Windows
    發表于 11-29 11:41

    如何在閃存而不是RAM存儲大型常量數組

    如何在閃存而不是RAM存儲大型常量數組以上來自于谷歌翻譯以下為原文 How to store large constant arra
    發表于 02-20 15:30

    什么是基于閃存平臺的存儲管理策略?

    作者:李建勛 樊曉光 禚真福來源:什么是基于閃存平臺的存儲管理策略?嵌入式系統,由于閃存成本低、容量大、非易失、訪問速度高和機械故障少的
    發表于 07-31 08:17

    啟動時清除閃存存儲的數據

    嗨,我做了一些函數閃存讀和存儲。代碼可以工作,當我存儲數據時,我可以讀回去,但是啟動時,當
    發表于 03-13 10:27

    DLP4500將圖像存儲閃存

    新手入門DLP4500用戶手冊說如果要創建序列,首先要將圖像存儲閃存Image/Fireware下的Fireware Bulid
    發表于 04-09 18:46

    STM32F103C8如何編程以斷電時將計數器值存儲閃存

    STM32F103C8,帶MXCUBE,MDK-ARM V5。我想知道如何編程以斷電時將計數器值存儲閃存。當電源上升時自動調用計數器值
    發表于 01-30 07:34

    閃存儲控制器選擇技巧

    現代快閃存儲控制的磨損平衡技術已經有顯著進步,能夠克服快閃存儲器儲存介質固有的弱點,并幫助發揮出快閃存儲器的優勢。對于現代快
    發表于 03-07 09:45 ?1540次閱讀

    閃存存儲企業為何如此受到歡迎?

    時至今日,貌似整個存儲行業都在談論全閃存存儲,無論是廠商還是用戶,但凡提到有關存儲的相關話題,必須離不開全閃存,貌似
    的頭像 發表于 06-17 15:34 ?3083次閱讀

    浪潮存儲閃存儲領域的產品及技術布局

    存儲作為新存儲引領者,以“云存智用 運籌新數據”理念,加快布局閃存存儲步伐,針對用戶不同的應用場景和需求,創新研發了浪潮新一代全閃存儲平臺
    的頭像 發表于 08-10 14:32 ?2744次閱讀

    保護控制存儲閃存軟件

      許多系統使用外部標準閃存芯片來存儲不包括嵌入式非易失性程序存儲的處理器的操作程序。這很棒,因為它允許輕松的閃存擴展和軟件修改,也許在生產
    的頭像 發表于 10-24 11:38 ?885次閱讀