4]4)實(shí)現(xiàn)映像分區(qū)重構(gòu)、安全加密及數(shù)字簽名等在映像分區(qū)往目標(biāo)硬件燒錄或下載的時(shí)候即完成封裝、加固,同時(shí)通過硬件安全單元及安全存儲(chǔ)芯片的物理技術(shù)配合;
[0015]5)實(shí)現(xiàn)在目標(biāo)硬件映像燒錄或下載時(shí)即完成Bootloader特殊加載域硬加密、修通內(nèi)核加載域的安全硬數(shù)字簽名關(guān)鍵安全流程。
[0016]優(yōu)選地,系統(tǒng)上電啟動(dòng)時(shí),首先由片上固化的PBL執(zhí)行系統(tǒng)上電后的系統(tǒng)資源基本初始化,同時(shí)加載NAND/eMMC從BlockO開始存儲(chǔ)的Bootloader映像中的SPL加載域到SRAM中,并執(zhí)行SPL流程。
[0017]優(yōu)選地,SPL和U-Boot是Bootloader映像的兩個(gè)加載域,也是其兩個(gè)BOOT邏輯流程,分別有特定功能定義,SPL主要功能就是初始化DDR,時(shí)鐘等最小系統(tǒng),具體包括:
[0018]a.配置ARM核,包括:中斷向量表,Cache,MMU等;
[0019]b.配置UART/I2C等串并行接口 ;
[0020]c.配置電源管理單元PMU
[0021]d.配置系統(tǒng)內(nèi)存單元DDR ;
[0022]e.配置系統(tǒng)HMER、中斷系統(tǒng);
[0023]f.配置U-Boot運(yùn)行相關(guān)的硬件資源;
[0024]完成上述處理器基本資源的初始化后,SPL會(huì)讀取U-boot分區(qū),并運(yùn)行U-Boot流程。
[0025]優(yōu)選地,U-Boot流程包括:讀取U-Boot分區(qū)的映像文件頭信息;通過映像文件頭信息加載相關(guān)的頭映像數(shù)據(jù);對(duì)裝載進(jìn)來(lái)的U-Boot映像數(shù)據(jù)進(jìn)行解密、完整性校驗(yàn)及驗(yàn)簽;上述任何執(zhí)行過程如果驗(yàn)證失敗,則走異常處理流程,系統(tǒng)引導(dǎo)失敗,如果失敗則走異常處理流程,系統(tǒng)引導(dǎo)失?。怀晒t執(zhí)行Bootloader的第二階段引導(dǎo),運(yùn)行U_Boot。
[0026]一種嵌入式分區(qū)映像安全認(rèn)證及內(nèi)核可信引導(dǎo)設(shè)備,包括處理器、分別通過系統(tǒng)總線連接在處理器上的系統(tǒng)內(nèi)存、電源管理模塊、存儲(chǔ)介質(zhì)、顯示系統(tǒng)、通過專用總線連接在處理器上的安全單元以及通過專用控制總線連接在處理器上的密鑰存儲(chǔ)器。
[0027]本發(fā)明針對(duì)目前嵌入式系統(tǒng)引導(dǎo)和啟動(dòng)的過程所產(chǎn)生的潛在安全問題,提供了一套新的基于安全硬件的嵌入式系統(tǒng)分區(qū)映像安全認(rèn)證和操作系統(tǒng)內(nèi)核可信引導(dǎo)方法,對(duì)嵌入式系統(tǒng)的啟動(dòng)過程進(jìn)行多層加固,防止對(duì)系統(tǒng)BOOTLOADER、操作系統(tǒng)內(nèi)核、文件系統(tǒng)數(shù)據(jù)或應(yīng)用程序數(shù)據(jù)等進(jìn)行惡意的劫持、篡改,以保護(hù)嵌入式設(shè)備的使用安全。
[0028]本發(fā)明相對(duì)現(xiàn)有技術(shù)的創(chuàng)新在于:
[0029]1、在系統(tǒng)上電階段,實(shí)現(xiàn)對(duì)處理器系統(tǒng)DMA/MMU/MPU/CACHE(1-CACHE/D-CACHE)/DDR/JTAG等存儲(chǔ)、處理器緩存及片上調(diào)試系統(tǒng)的物理隔離、系統(tǒng)訪問權(quán)限控制;
[0030]2、避免入侵者通過物理技術(shù)在此階段“旁路攻擊”,總線探測(cè)等,確保U-Boot分區(qū)不被惡意篡改;
[0031]3、實(shí)現(xiàn)Bootloader映像分區(qū)、內(nèi)核映像分區(qū)、Bootloader初始化流程(嵌入硬解密流程)及內(nèi)核加載流程(嵌入驗(yàn)簽流程)的邏輯重構(gòu)及嚴(yán)格安全認(rèn)證;
[0032]4、通過硬件安全單元(SE)及安全存儲(chǔ)芯片的物理技術(shù)擴(kuò)展,實(shí)現(xiàn)Bootloader特殊加載域的硬加密、內(nèi)核加載域的硬加密及數(shù)字簽名;
[0033]5、在目標(biāo)映像在線編程或下載階段對(duì)Bootloader及內(nèi)核分區(qū)映像進(jìn)行安全硬加密和數(shù)字簽名,確保嵌入式設(shè)備片上NAND/eMMC的數(shù)據(jù)唯一性,
[0034]6、避免入侵者通過物理技術(shù)(如JTAG、CHIP-0FF)拷貝片上數(shù)據(jù)和代碼進(jìn)行設(shè)備克隆或邏輯分析的可能。
[0035]與目前現(xiàn)有嵌入式系統(tǒng)引導(dǎo)和啟動(dòng)方法相比較,本方案對(duì)嵌入式系統(tǒng)分區(qū)格式進(jìn)行了調(diào)整,在Bootloader的第一階段加入了對(duì)U-Boot分區(qū)完整性安全校驗(yàn)及數(shù)字簽名認(rèn)證,在Bootloader的第二階段加入了對(duì)操作系統(tǒng)內(nèi)核映像的完整性安全校驗(yàn)、數(shù)字簽名以及數(shù)據(jù)的加解密處理。分區(qū)格式的變化在滿足了引導(dǎo)啟動(dòng)階段的可信處理的同時(shí),能有效防止入侵者生成虛擬映像以代替燒錄固話的合法分區(qū)映像;對(duì)映像數(shù)據(jù)的完整性安全校驗(yàn)則可以防止不完整的映像文件對(duì)系統(tǒng)造成的破壞,比如無(wú)法開機(jī)、開機(jī)死機(jī)、功能失效等后果,提高系統(tǒng)引導(dǎo)和啟動(dòng)的成功率;結(jié)合終端的數(shù)字簽名保證了分區(qū)映像數(shù)據(jù)的完整性、真實(shí)性及身份的特殊匹配;對(duì)內(nèi)核映像文件的加解密處理可以防止對(duì)數(shù)據(jù)的非法攻擊或惡意的篡改。
[0036]本方法實(shí)現(xiàn)了物理技術(shù)與邏輯技術(shù)的高度結(jié)合,實(shí)現(xiàn)了對(duì)Bootloader流程、內(nèi)核加載流程、Bootloader映像及內(nèi)核映像的安全防護(hù),本方法的應(yīng)用能有效保障裝載系統(tǒng)Bootloader、操作系統(tǒng)內(nèi)核的可信、安全,通過安全引導(dǎo)映像及配套的安全引導(dǎo)流程保護(hù)嵌入式設(shè)備的啟動(dòng)安全,特別對(duì)于有特殊安全固化要求的行業(yè)設(shè)備有特殊意義和價(jià)值。
【附圖說明】
[0037]圖1為本發(fā)明【背景技術(shù)】中提到的現(xiàn)有嵌入系統(tǒng)啟動(dòng)過程框圖;
[0038]圖2為本發(fā)明【背景技術(shù)】中提到的現(xiàn)有嵌入式系統(tǒng)啟動(dòng)詳細(xì)流程;
[0039]圖3為本發(fā)明【背景技術(shù)】中提到的現(xiàn)有嵌入式系統(tǒng)映像分區(qū)Layout ;
[0040]圖4為本發(fā)明【背景技術(shù)】中提到的現(xiàn)有嵌入式系統(tǒng)Bootloader映像分區(qū)Layout ;
[0041]圖5為傳統(tǒng)的U-Boot分區(qū)映像Layout ;
[0042]圖6為本發(fā)明中支持安全認(rèn)證的U-Boot分區(qū)映像Layout ;
[0043]圖7為一般的內(nèi)核(Boot)分區(qū)Layout ;
[0044]圖8為本發(fā)明中支持可信引導(dǎo)的內(nèi)核(Boot)分區(qū)Layout ;
[0045]圖9為本發(fā)明中SPL對(duì)U-Boot的加載安全認(rèn)證流程圖;
[0046]圖10為本發(fā)明中內(nèi)核(Boot)加載可信引導(dǎo)流程圖;
[0047]圖11為本發(fā)明中設(shè)備硬件原理框圖。
[0048]其中Layout為規(guī)劃圖或者分布圖的意思。
【具體實(shí)施方式】
[0049]下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明,但并不是對(duì)本發(fā)明保護(hù)范圍的限制。
[0050]本發(fā)明提供了一套新的嵌入式系統(tǒng)分區(qū)映像安全認(rèn)證、操作系統(tǒng)內(nèi)核可信引導(dǎo)機(jī)制,本技術(shù)方案基于Android系統(tǒng)的嵌入式設(shè)備平臺(tái)進(jìn)行設(shè)計(jì);對(duì)系統(tǒng)上電、Bootloader及內(nèi)核分區(qū)Layout及部分加載域等按照特定規(guī)則做了安全加固及重構(gòu),具體包括:實(shí)現(xiàn)系統(tǒng)上電及初始化階段,確保DMA/MMU/MPU/CACHE (1-CACHE/D-CACHE) /DDR/JTAG等系統(tǒng)存儲(chǔ)、處理器緩存及片上調(diào)試系統(tǒng)的物理隔離、系統(tǒng)訪問權(quán)限控制等,避免入侵者通過物理技術(shù)在此階段“旁路攻擊”,總線探測(cè)等,確保U-Boot分區(qū)不被惡意篡改;實(shí)現(xiàn)U-Boot映像文件重新封裝,新的映像Layout定義了映像數(shù)據(jù)頭信息和數(shù)字簽名信息,如圖6所示;實(shí)現(xiàn)系統(tǒng)內(nèi)核(Boot)分區(qū)重構(gòu),重構(gòu)后的內(nèi)核映像包括映像數(shù)據(jù)頭、映像原始數(shù)據(jù)、加密后的部分映像加載域數(shù)據(jù)及數(shù)字簽名,如圖8所示;實(shí)現(xiàn)映像分區(qū)重構(gòu)、安全加密及數(shù)字簽名等在映像分區(qū)往目標(biāo)硬件燒錄或下載的時(shí)候即完成封裝、加固,同時(shí)通過硬件安全單元(SE)及安全存儲(chǔ)芯片的物理技術(shù)配合,實(shí)現(xiàn)在目標(biāo)硬件映像燒錄或下載時(shí)即完成Bootloader特殊加載域硬加密、修通內(nèi)核加載域的安全硬數(shù)字簽名等關(guān)鍵安全流程。
[0051]如圖9所示,系統(tǒng)上電啟動(dòng)時(shí),首先由片上固化的PBL執(zhí)行系統(tǒng)上電后的系統(tǒng)資源基本初始化,同時(shí)加載NAND/eMMC從BlockO開始存儲(chǔ)的Bootloader映像中的SPL加載域到SRAM中,并執(zhí)行SPL流程。SPL和U-Boot是Bootloader映像的兩個(gè)加載域,也是其兩個(gè)BOOT邏輯流程,分別有特定功能定義。SPL主要功能就是初始化DDR,時(shí)鐘等最小系統(tǒng),具體包括:
[0052]a.配置ARM核,包括:中斷向量表,Cache,MMU等;
[0053]b.配置UART/I2C等串并行接口 ;
[0054]c.配置電源管理單元PMU
[0055]d.配置系統(tǒng)內(nèi)存單元DDR ;
[0056]e.配置系統(tǒng)HMER、中斷系統(tǒng);
[0057]f.配置U-Boot運(yùn)行相關(guān)的硬件資源;
[0058]完成上述處理器基本資源的初始化后,SPL會(huì)讀取U-boot分區(qū),并運(yùn)行U-Boot流程。本方案在此過程中加入了 U-Boot的特殊代碼段解密及數(shù)字簽名等安全驗(yàn)證流程,包括:讀取U-Boot分區(qū)的映像文件頭信息(映像文件的頭信息包括:魔