<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM開(kāi)發(fā)板平臺的嵌入式軟件保護方案

基于A(yíng)RM開(kāi)發(fā)板平臺的嵌入式軟件保護方案

作者: 時(shí)間:2012-03-07 來(lái)源:網(wǎng)絡(luò ) 收藏

從軟件到軟硬件聯(lián)合攻擊給系統造成嚴峻的安全威脅。安全性已成為系統設計中必不可少的一部分,同時(shí)這又是一個(gè)折衷的過(guò)程,不能單靠軟件來(lái)保證,而全硬件的解決方式很昂貴且不具有彈性。很多產(chǎn)品開(kāi)始從設計之初就從系統架構上考慮了安全性,如公司的TruSTZONe技術(shù)開(kāi)辟了一片可信代碼區,近年來(lái)。通過(guò)一個(gè)S比特來(lái)區分系統的安全狀態(tài),IBMPowerPC中使用了多核單元寬帶引擎(BE進(jìn)行安全引導和物理隔離。

本文引用地址:http://dyxdggzs.com/article/149501.htm

軟件與嵌入式系統是密不可分的,嵌入式系統是“控制、監視或者輔助設備、機器和車(chē)間運行的裝置”,就是以應用為中心,以計算機技術(shù)為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專(zhuān)用計算機系統。它一般由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶(hù)的應用程序等四個(gè)部分組成,用于實(shí)現對其他設備的控制、監視或管理等功能。而嵌入式軟件就是嵌入式系統設計的軟件,它也是計算機軟件的一種,同樣由程序及其文檔組成,可細分成系統軟件、支撐軟件、應用軟件三類(lèi),是嵌入式系統的重要組成部分。嵌入式軟件廣泛應用于國防、工控、家用、商用、辦公、醫療等領(lǐng)域,如我們常見(jiàn)的移動(dòng)電話(huà)、掌上電腦、數碼相機、機頂盒、MP3等都是用嵌入式軟件技術(shù)對傳統產(chǎn)品進(jìn)行智能化改造的結果。

1 硬件結構

通過(guò)總線(xiàn)方式對NorFlash進(jìn)行訪(fǎng)問(wèn),本的硬件處理器采用三星公司的S3C2442內核為920T外置1塊2MBNorFlash用以存放密文數據。該硬件結構中最重要的部分是添加了1塊安全協(xié)處理器:福華公司的嵌入式系統芯片FS8826該芯片可通過(guò)I2C或SPI總線(xiàn)與SOC連接,這里使用I2C方式。PC機能夠對硬件中的每個(gè)芯片進(jìn)行編程控制:通過(guò)JTA G端口、串口及網(wǎng)口與ARM進(jìn)行通信,通過(guò)專(zhuān)門(mén)的燒錄器對FS8826硬件密鑰和安全存儲區進(jìn)行寫(xiě)入。

09.jpg

2 軟件實(shí)現

軟件設計從兩個(gè)主要方面考慮,一是代碼加密,二是版權認證。前者主要通過(guò)AES(Advanced Encryptiong Standard)加解密算法實(shí)現,其算法密鑰的管理以及版權認證將依靠FS8826來(lái)實(shí)現,最終達到安全啟動(dòng)嵌入式操作系統以及保護運行時(shí)的版權目的。安全啟動(dòng)Bootloader+Image的加載機制,也是ARM處理器通用的引導機制。首先采用AES加解密算法在PC機端將編譯完成Image加密,利用FS8826安全存儲區存放AES算法密鑰,密文存儲在片外存儲器中,ARM啟動(dòng)時(shí)將密文加載入內存。然后在Bootloader啟動(dòng)過(guò)程時(shí)加入與FS8826的認證操作,認證通過(guò)則在該過(guò)程中使用AES解密算法解密Image,并用明文將原內存中的密文覆蓋,系統正常運行中加入與FS8826的實(shí)時(shí)通信監測,確保在授權目標機上運行程序。軟件實(shí)現流程如圖2所示,相應的實(shí)現框圖如圖3所示。

10.jpg

11.jpg

2.1 AES算法

目前對稱(chēng)加密領(lǐng)域內的主流算法。其數據分組固定為128bit, AES美國國家標準和技術(shù)研究所(NIST選定的高級加密標準。密鑰分組可支持128bit/192bit/256bit核心過(guò)程為數據塊矩陣的Nr10/12/14次輪操作。每一次輪操作都由S盒代換(SubByt行移位(ShiftRow列混淆(MixColumn和輪密鑰加(AddRoundKei4個(gè)函數組成,第Nr次輪操作不包含MixColumn函數。密鑰擴展為每一輪變換提供輪密鑰[2]本方案中加密在PC機端離線(xiàn)完成,沒(méi)有時(shí)間和運行效率的特別要求,但是解密在A(yíng)RM9處理器中完成,其運行時(shí)間將作為系統啟動(dòng)的一部分,所以下面針對解密部分的算法程序結合其實(shí)現進(jìn)行優(yōu)化設計。

解密的輪變換中交換逆行移位和逆S盒代換,輪密鑰加和逆列混淆的順序,只需要調整密鑰的編排方案即可。實(shí)現中等價(jià)解密過(guò)程可以將解密輪變換中的前3個(gè)步驟綜合生成1張4KBT表用于查詢(xún),即可快速準確地完成解密。直接的解密算法是將加密過(guò)程的每一步求逆并倒置次序得到,然而這樣并不利于優(yōu)化。算法的創(chuàng )始人提出了一種等價(jià)解密過(guò)程。

如果變量長(cháng)度與ARM內部寄存器長(cháng)度不一致,1數據類(lèi)型設置:ARM處理器內部是32bit寄存器。將會(huì )使得變量的存取都需要附加其他指令[3]AES算法中密鑰及數據都是以字節為單位運算,優(yōu)化時(shí)調整為32bit僅在輸入輸出時(shí)進(jìn)行位數變換,可以帶來(lái)很大的速度改進(jìn)。

循環(huán)執行Nr-1次。等價(jià)解密算法融合了3個(gè)子函數形成T表查詢(xún),循環(huán)展開(kāi):ARM處理器中每一次循環(huán)最少有4個(gè)周期的循環(huán)開(kāi)銷(xiāo)解密輪變換涉及4個(gè)子函數調用。于是可以把輪變換展開(kāi),不增加太多代碼量的基礎上,每一個(gè)數據分組解密減少4Nr-1個(gè)周期。當密鑰位長(cháng)、密文數據量大時(shí)節省的循環(huán)開(kāi)銷(xiāo)就比較可觀(guān)。

應盡量限制函數內部循環(huán)所用局部變量的數目, 控制變量數:為了高效執行1個(gè)函數。最多不超過(guò)12個(gè),確保最重要的和經(jīng)常用到變量都被分配在寄存器里。

2.2 FS8826功能實(shí)現

具有不可回讀、不可在總線(xiàn)上傳輸的特點(diǎn),FS8826芯片自帶24B硬件密鑰。主要用于芯片內部的認證模塊運算(HA SH3DES和安全數據傳輸。芯片內部開(kāi)辟了1塊安全存儲區(96BEEPROM讀寫(xiě)都受硬件密鑰的保護,且具有CRC校驗功能。本方案中該芯片主要實(shí)現兩方面功能:SoC版權確認和AES密鑰管理。前者通過(guò)認證實(shí)現,具體流程如圖5所示??偩€(xiàn)上發(fā)送的數據為硬件密鑰與用戶(hù)設置的認證區數據通過(guò)HA SH運算得出的數組,并加入了8B隨機數,能夠有效地防止重放攻擊(repliattack該項功能能夠提供代碼完整性驗證[4]一定程度上抵抗反匯編攻擊。后者通過(guò)將AES密鑰燒入FS8826安全存儲區,由其硬件密鑰進(jìn)行保護實(shí)現,認證通過(guò)后發(fā)送加密的讀取命令,算法密鑰以密文形式在總線(xiàn)上傳遞。

13.jpg

2.3 Vxworks啟動(dòng)、運行

并在其調用的初始化文件(bootConfig.c中加入與FS8826安全認證、密鑰傳輸以及解密運算。bootrom_uncmp由仿真器燒入到目標板的norflash中,VxWork操作系統的映像包括兩大類(lèi):VxWork類(lèi)型和Boorom類(lèi)型[5]本文對RA M中運行的VxWork映像在PC機端進(jìn)行AES加密。選擇執行格式的未壓縮Bootrom映像—bootrom_uncmp作為啟動(dòng)映像。上電后,bootrom_uncmp把自身拷貝到RA M_HIGH_A DRS地址上運行引導程序。之后,把VxWork映像裝入到起始地址為RA M_LOW_ADRSRA M中,接著(zhù)跳轉到VxWork映像裝入點(diǎn)運行[5]如果認證通過(guò),引導程序將從FS8826安全存儲區獲取AES算法密鑰,進(jìn)行解密,否則在RA M_LOW_A DRS處的VxWork映像將仍然為密文,無(wú)法正常啟動(dòng)。

加載的明文映像開(kāi)始運行,同時(shí), 系統安全啟動(dòng)后。隱藏在映像中認證程序也將開(kāi)始運行,并定時(shí)與FS8826通信,確保持有正確硬件密鑰的芯片運行正常,以防黑客移植代碼非法使用。

14.jpg

3 實(shí)現結果及分析

通過(guò)ADSDebuggInternal工具從速度和內存占用量?jì)煞矫婧饬繉?shí)現效率[2]如表1所示為在A(yíng)RM9處理器中2種算法所耗的匯編指令數和指令周期數。表 2為兩者占用的內存資源對比。 按照ARM平臺下的優(yōu)化原則,A ES解密算法通過(guò)直接解密和等價(jià)解密2種形式進(jìn)行實(shí)現。

15.jpg

等價(jià)解密算法中使用了T表,從表中結果可以看出。且將循環(huán)展開(kāi)造成了代碼量的增加。所以在實(shí)際使用時(shí),對內存資源的要求高于速度要求時(shí)建議采用直接解密算法,反之則可采用等價(jià)解密算法。這里所用的ARM9有足夠的內存空間,所以采用128bit密鑰的等價(jià)解密算法,以1MBVxwork密文映像為對象進(jìn)行啟動(dòng)測試。

16.jpg

然后通過(guò)NandFlash加載文件。實(shí)際測試中對1MB密文的讀取耗時(shí)1.4s可以對密文讀取方式進(jìn)行優(yōu)化,正常啟動(dòng)中先由NorFlash建立文件系統。將密文燒入片外NorFlash中,系統上電后,內存從NorFlash中獲取密文的讀取方式,時(shí)間為0.03s這種差別的原因主要有2點(diǎn):1文件系統訪(fǎng)問(wèn)方式下用fopen和fread函數打開(kāi)密文,解密后的數據還需寫(xiě)回到文件中重新讀取,且會(huì )受時(shí)鐘頻率及總線(xiàn)速度的限制。而后者屬于內存直接讀取,解密后直接從內存啟動(dòng);2NorFlash讀取速度本身就比NandFlash要快。

保證主映像運行在授權目標機上。認證過(guò)程中的運算都在FS8826芯片內進(jìn)行,不會(huì )對主映像的運行速度造成影響,經(jīng)過(guò)測試每次認證耗時(shí)0.16s如果安全級別要求不是很高,也可以選擇采用復位芯片的方式進(jìn)行監測,每次僅耗時(shí)0.01s 系統啟動(dòng)后進(jìn)行的定時(shí)認證,可以監測與FS8826正常通信。

ARM為客戶(hù)提供16/32位嵌入式RISC微控制器方案,將其RISC處理器授權給電子公司使用,在便攜式通訊,手持計算設備,消費類(lèi)和數字化多媒體方案中,ARM正有一種成為標準的趨勢。ARM7、ARM9是ARM系列中的兩個(gè)分支系列,ARM9功能更強些,它還有其他分支系列。ARM公司是一個(gè)只做設計不生產(chǎn)的公司,它提供各種不同性能的ARM核,如果象Motorola這樣的公司就可以用它提供的ARM核,再加上相關(guān)的I/O資源、存儲器、可編程部件就形成自己的32位RISC嵌入式單片處理器。Motorola最近要在其龍珠處理器中采用ARM,Atmel公司的AT91系列也是采用ARM核的內32位/外16位處理器。用來(lái)、調試ARM的各種應用的工具就是arm平臺。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

p2p機相關(guān)文章:p2p原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>