精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

如何使用AES加密防止固件泄露?

UtFs_Zlgmcu7890 ? 來源:未知 ? 作者:工程師郭婷 ? 2018-07-22 12:17 ? 次閱讀

隨著電子產品更新換代速度的加快,往往都會進行系統升級或APP功能維護升級,但是由此產生了兩個主要問題。首先,由于更新過程中出現錯誤,該設備可能變得無用;另外一個主要問題是:如何避免未經授權的用戶訪問目標產品的固件?

嵌入式領域,根據嵌入式系統MCU存儲結構和更新原理,提出了通過加密方式升級設備功能的方法,其中最常用的方法為BootLoader加密升級。

Bootloader 是在操作系統或用戶應用程序運行之前執行的一小段程序,通過這一小段程序,我們可以初始化硬件設備(如 CPUSDRAM、Flash、串口等)、建立內存空間的映射表,從而將系統的軟硬件環境帶到一個合適的狀態,為最終調用操作系統內核或者用戶應用程序準備好正確的環境。

如何使用BootLoader加密升級可以防止競爭對手/惡意用戶獲得對固件代碼的訪問權限?

首先是使用代碼加密來保護固件。這里需要實現對稱密碼,以及私鑰的引導加載程序中的生成和包含。在制造商方面,需要保護相同的私鑰,用于加密新固件版本。如圖1所示,一般對稱加密算法流程。

如何使用AES加密防止固件泄露?

圖1對稱加密算法流程

對于常見的AES-128加密算法,由于AES處理的單位是字節,128位的輸入明文或固件P和輸入的密鑰K都被分為16個字節,一般我們會將明文分組用字節為單位的正方形狀態矩陣來描述,在每一輪的算法中,狀態矩陣的內容不斷發生變化,最終的結果作為密文輸出。如圖2所示,AES-128分塊加密。

如何使用AES加密防止固件泄露?

圖2 AES-128加密過程

AES算法是基于置換和代替的,置換是數據的重新排列,而代替是用一個單元數據替換另一個。AES算法使用了多重循環實現置換和代替,在規范中被稱為Bytes Sub(字節替換)-對數據的每個字節應用非線性變換;Shift Rows(行位移變換)-對每一行字節循環重新排序;Mix Columns(列混合變換)-對矩陣的列應用線性變換;Add Round Key(輪密鑰加)-對狀態和每輪的子密鑰進行異或操作。該算法對內存的需求非常低,使得它很適應于資源受限制的環境。

AES(AES-128)加解密的流程,如圖3所示。

如何使用AES加密防止固件泄露?

圖3AES-128加解密流程

對于實際AES(AES-128)加密過程中,在第一輪的迭代之前,會將明文和原始密鑰進行異或加密運算,然后正常執行從第一輪到第九輪一樣的加密函數,其中都會包含四個操作:字節代換、行位移、列混合和輪密鑰加;在最后一輪迭代不執行列混合運算。

解密的過程仍然為10輪,每一輪的操作都是加密操作的你操作。由于AES一輪的4個操作都是可逆的,因此解密操作的一輪就是執行逆行一位、逆字節代換、輪密鑰加和逆列混合;同加密操作類似,最后一輪不執行逆列混合,在第一輪解密之前,執行一次密鑰加操作。

如圖4所示,為Boot Loader固件升級流程圖。

如何使用AES加密防止固件泄露?

圖4Boot Loader固件升級流程

用戶程序升級成功之后,可以通過函數指針的方式調用該程序。函數在編譯時都會被分配一個入口地址,該地址就是函數的指針。只要用一個指針變量指向這個函數的入口地址,就可以通過指針變量調用這個函數。函數指針的本質是指針變量,只不過該指針變量指向函數,讀出程序標志區的運行地址就可以通過指針變量調用新寫入的程序。

固件升級的數據加密方案,對于具有IAP功能的芯片具有普遍意義,不僅適用于網絡遠程升級,同樣適用于本地升級。至于加密算法可以根據MCU的能力進行靈活選擇。

例如NXP推出的跨界MCU-iMX.RT1052系列MCU具有強大的安全組件,出于安全目的,數據協處理器DCP)提供硬件加速和密碼算法;其內置加密算法:AES-128(ECB和CBC模式)、哈希算法:SHA-1和SHA256、CRC-32等。

SNVS、DCP內部密鑰存儲或通用存儲器中進行密鑰選擇,當一個密鑰被寫入時,內部存儲器可存儲多達四個AES-128密鑰,它只能由DCP AES-128引擎讀取。

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

    關注

    41

    文章

    3564

    瀏覽量

    129224
  • AES
    AES
    +關注

    關注

    0

    文章

    103

    瀏覽量

    33206

原文標題:安全加密(五):如何使用AES防止固件泄露

文章出處:【微信號:Zlgmcu7890,微信公眾號:周立功單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ESP-IDF中能否加密應用固件

    描述:我啟動了flahs加密,這樣物理上可以防止數據的讀取和篡改。但在進行https-OTA時,從服務器傳輸固件到設備的過程中,可能會泄露固件
    發表于 06-11 06:50

    防止u盤機密文件泄露,請給U盤文件加密

    放了某些機密資料、個人隱私…丟失的后果就不能用錢來衡量了。 假如該U盤實現了加密處理或是帶有移動文件加密保險柜功能,就不用擔心U盤丟失或者被攻擊后,由于U盤內攜帶的某些資料泄露給我們所帶來的損失。就算
    發表于 04-20 17:15

    轉:熟悉AES加密

    通常對代碼的加密保護有硬件加密方式和軟件加密方式。AES是通常比較常用的一種有效加密方式什么是AES
    發表于 07-09 17:24

    AES 256加密認證芯片介紹 帶加密認證功能的EEPROM

    出自主的加密算法,相對目前市場上的AES-128更安全可靠,也是目前市場上AES等級最高的加密算法4:安全的保護機制基于安全的加密算法,軟硬
    發表于 10-14 13:59

    如何實施軟件AES以及AES加密/解密

    這一樣本代碼展示了如何實施軟件AES(高級加密標準)以及AES加密/解密如何運作。 您可以在下列時間下載樣本代碼http://www.nuvoton.com/resources-d
    發表于 08-22 06:41

    GPON 中的AES加密

    文章簡單的介紹了GPON 的體系結構與下行幀的結構,并著重介紹了AES 加密的流程、方法與具體算法,最后對GPON 中的AES 加密,解密方法,AE
    發表于 12-14 10:23 ?16次下載

    基于AES和ECC的混合加密系統的設計

    基于AES加密算法具有速度快、強度高、便于實現等優點和ECC加密算法具有密鑰分配與管理簡單、安全強度高等優點,采用AES加密算法
    發表于 03-20 10:24 ?42次下載
    基于<b class='flag-5'>AES</b>和ECC的混合<b class='flag-5'>加密</b>系統的設計

    基于AES算法的加密模塊設計

    文中介紹了高級加密算法(AES)的基本原理,并給出了基于AES算法硬件加密模塊設計方案。通過Modelsim6.le對其進行仿真實現,仿真結果表明,該
    發表于 02-21 15:52 ?0次下載
    基于<b class='flag-5'>AES</b>算法的<b class='flag-5'>加密</b>模塊設計

    嵌入式AES加密IP核設計

    介紹了AES加密標準的Rijndael實現方法,設計了一種適合應用于嵌入式系統32位數據界面時序緊湊的AES加密IP核。該IP核能以較低的資源消耗實現在低端FPGA上速度為256Mb/
    發表于 09-07 19:14 ?13次下載

    AES和ECC的混合加密系統的設計

    AES和ECC的混合加密系統的設計
    發表于 10-31 09:04 ?11次下載
    <b class='flag-5'>AES</b>和ECC的混合<b class='flag-5'>加密</b>系統的設計

    用matlab實現AES加密算法

    AES加密算法是密碼學中的高級加密標準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美
    發表于 05-25 15:18 ?11次下載
    用matlab實現<b class='flag-5'>AES</b><b class='flag-5'>加密</b>算法

    AES算法加密工具合集免費下載

    本文檔的主要內容詳細介紹的是AES算法加密工具合集免費下載。
    發表于 04-21 08:00 ?24次下載
    <b class='flag-5'>AES</b>算法<b class='flag-5'>加密</b>工具合集免費下載

    AES加密協議是什么?AES加密協議的應用

    AES(Advanced Encryption Standard,高級加密標準)是一種廣泛使用的對稱密鑰加密協議,它被設計用于保護電子數據的安全。以下是對AES
    的頭像 發表于 04-15 15:34 ?763次閱讀

    開源物聯網技術--AES加密功能技術分享

    一、AES加密功能 在物聯網行業中的應用 AES加密功能在物聯網行業中有著廣泛的應用。隨著物聯網技術的不斷發展,越來越多的設備連接到互聯網上,這也增加了數據
    的頭像 發表于 09-11 14:50 ?517次閱讀
    開源物聯網技術--<b class='flag-5'>AES</b><b class='flag-5'>加密</b>功能技術分享

    aes加密的常見錯誤及解決方案

    AES(Advanced Encryption Standard,高級加密標準)是一種對稱加密算法,它使用固定長度的密鑰對數據進行加密。在使用AES
    的頭像 發表于 11-14 15:13 ?499次閱讀