一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

UtFs_Zlgmcu7890 ? 來源:未知 ? 作者:工程師郭婷 ? 2018-07-22 12:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著電子產(chǎn)品更新?lián)Q代速度的加快,往往都會(huì)進(jìn)行系統(tǒng)升級(jí)或APP功能維護(hù)升級(jí),但是由此產(chǎn)生了兩個(gè)主要問題。首先,由于更新過程中出現(xiàn)錯(cuò)誤,該設(shè)備可能變得無用;另外一個(gè)主要問題是:如何避免未經(jīng)授權(quán)的用戶訪問目標(biāo)產(chǎn)品的固件?

嵌入式領(lǐng)域,根據(jù)嵌入式系統(tǒng)MCU存儲(chǔ)結(jié)構(gòu)和更新原理,提出了通過加密方式升級(jí)設(shè)備功能的方法,其中最常用的方法為BootLoader加密升級(jí)。

Bootloader 是在操作系統(tǒng)或用戶應(yīng)用程序運(yùn)行之前執(zhí)行的一小段程序,通過這一小段程序,我們可以初始化硬件設(shè)備(如 CPU、SDRAM、Flash、串口等)、建立內(nèi)存空間的映射表,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),為最終調(diào)用操作系統(tǒng)內(nèi)核或者用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境。

如何使用BootLoader加密升級(jí)可以防止競(jìng)爭(zhēng)對(duì)手/惡意用戶獲得對(duì)固件代碼的訪問權(quán)限?

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

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

圖1對(duì)稱加密算法流程

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

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

圖2 AES-128加密過程

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

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

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

圖3AES-128加解密流程

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

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

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

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

圖4Boot Loader固件升級(jí)流程

用戶程序升級(jí)成功之后,可以通過函數(shù)指針的方式調(diào)用該程序。函數(shù)在編譯時(shí)都會(huì)被分配一個(gè)入口地址,該地址就是函數(shù)的指針。只要用一個(gè)指針變量指向這個(gè)函數(shù)的入口地址,就可以通過指針變量調(diào)用這個(gè)函數(shù)。函數(shù)指針的本質(zhì)是指針變量,只不過該指針變量指向函數(shù),讀出程序標(biāo)志區(qū)的運(yùn)行地址就可以通過指針變量調(diào)用新寫入的程序。

固件升級(jí)的數(shù)據(jù)加密方案,對(duì)于具有IAP功能的芯片具有普遍意義,不僅適用于網(wǎng)絡(luò)遠(yuǎn)程升級(jí),同樣適用于本地升級(jí)。至于加密算法可以根據(jù)MCU的能力進(jìn)行靈活選擇。

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

SNVS、DCP內(nèi)部密鑰存儲(chǔ)或通用存儲(chǔ)器中進(jìn)行密鑰選擇,當(dāng)一個(gè)密鑰被寫入時(shí),內(nèi)部存儲(chǔ)器可存儲(chǔ)多達(dá)四個(gè)AES-128密鑰,它只能由DCP AES-128引擎讀取。

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

    關(guān)注

    41

    文章

    3677

    瀏覽量

    131275
  • AES
    AES
    +關(guān)注

    關(guān)注

    0

    文章

    107

    瀏覽量

    33542

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

文章出處:【微信號(hào):Zlgmcu7890,微信公眾號(hào):周立功單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ESP-IDF中能否加密應(yīng)用固件?

    描述:我啟動(dòng)了flahs加密,這樣物理上可以防止數(shù)據(jù)的讀取和篡改。但在進(jìn)行https-OTA時(shí),從服務(wù)器傳輸固件到設(shè)備的過程中,可能會(huì)泄露固件
    發(fā)表于 06-11 06:50

    防止u盤機(jī)密文件泄露,請(qǐng)給U盤文件加密

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

    轉(zhuǎn):熟悉AES加密

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

    AES 256加密認(rèn)證芯片介紹 帶加密認(rèn)證功能的EEPROM

    出自主的加密算法,相對(duì)目前市場(chǎng)上的AES-128更安全可靠,也是目前市場(chǎng)上AES等級(jí)最高的加密算法4:安全的保護(hù)機(jī)制基于安全的加密算法,軟硬
    發(fā)表于 10-14 13:59

    如何實(shí)施軟件AES以及AES加密/解密

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

    GPON 中的AES加密

    文章簡(jiǎn)單的介紹了GPON 的體系結(jié)構(gòu)與下行幀的結(jié)構(gòu),并著重介紹了AES 加密的流程、方法與具體算法,最后對(duì)GPON 中的AES 加密,解密方法,AE
    發(fā)表于 12-14 10:23 ?16次下載

    基于AES和ECC的混合加密系統(tǒng)的設(shè)計(jì)

    基于AES加密算法具有速度快、強(qiáng)度高、便于實(shí)現(xiàn)等優(yōu)點(diǎn)和ECC加密算法具有密鑰分配與管理簡(jiǎn)單、安全強(qiáng)度高等優(yōu)點(diǎn),采用AES加密算法
    發(fā)表于 03-20 10:24 ?42次下載
    基于<b class='flag-5'>AES</b>和ECC的混合<b class='flag-5'>加密</b>系統(tǒng)的設(shè)計(jì)

    基于AES算法的加密模塊設(shè)計(jì)

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

    嵌入式AES加密IP核設(shè)計(jì)

    介紹了AES加密標(biāo)準(zhǔn)的Rijndael實(shí)現(xiàn)方法,設(shè)計(jì)了一種適合應(yīng)用于嵌入式系統(tǒng)32位數(shù)據(jù)界面時(shí)序緊湊的AES加密IP核。該IP核能以較低的資源消耗實(shí)現(xiàn)在低端FPGA上速度為256Mb/
    發(fā)表于 09-07 19:14 ?13次下載

    AES和ECC的混合加密系統(tǒng)的設(shè)計(jì)

    AES和ECC的混合加密系統(tǒng)的設(shè)計(jì)
    發(fā)表于 10-31 09:04 ?11次下載
    <b class='flag-5'>AES</b>和ECC的混合<b class='flag-5'>加密</b>系統(tǒng)的設(shè)計(jì)

    用matlab實(shí)現(xiàn)AES加密算法

    AES加密算法是密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美
    發(fā)表于 05-25 15:18 ?11次下載
    用matlab實(shí)現(xiàn)<b class='flag-5'>AES</b><b class='flag-5'>加密</b>算法

    AES算法加密工具合集免費(fèi)下載

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

    AES加密協(xié)議是什么?AES加密協(xié)議的應(yīng)用

    AES(Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))是一種廣泛使用的對(duì)稱密鑰加密協(xié)議,它被設(shè)計(jì)用于保護(hù)電子數(shù)據(jù)的安全。以下是對(duì)AES
    的頭像 發(fā)表于 04-15 15:34 ?2039次閱讀

    開源物聯(lián)網(wǎng)技術(shù)--AES加密功能技術(shù)分享

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

    aes加密的常見錯(cuò)誤及解決方案

    AES(Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))是一種對(duì)稱加密算法,它使用固定長(zhǎng)度的密鑰對(duì)數(shù)據(jù)進(jìn)行加密。在使用AES
    的頭像 發(fā)表于 11-14 15:13 ?4142次閱讀