專利名稱:在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域和嵌入式系統(tǒng)應(yīng)用領(lǐng)域,特別涉及一種在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的方法和裝置。
背景技術(shù):
隨著嵌入式微處理器的處理能力日益增強,嵌入式設(shè)備得到了越來越廣泛的應(yīng)用。但是嵌入式設(shè)備的安全問題沒有得到足夠的重視和針對性的解決,安全問題變得越來越突出??尚庞嬎闶切畔踩I(lǐng)域的ー個新的發(fā)展方向,它的總體目標(biāo)是提高計算系統(tǒng)的安全性??尚庞嬎愕幕舅枷胧鞘紫仍谟嬎銠C系統(tǒng)中建立ー個信任根,再建立一條信任鏈,從信任根開始到硬件平臺,到操作系統(tǒng),再到上層應(yīng)用,ー級測量認證ー級,ー級信任一
級,把這種信任擴展到整個計算機系統(tǒng),從而確保整個計算機系統(tǒng)的可信。由于嵌入式系統(tǒng)是從通用計算機系統(tǒng)中進行軟硬件裁剪得到的,因此可以將可信計算的思想引入到嵌入式系統(tǒng)中,從而從根本上提高嵌入式系統(tǒng)的安全性?,F(xiàn)有技術(shù)在嵌入式設(shè)備上實現(xiàn)可信計算大多采用可信計算模塊TPM或者TCM芯片,利用FPGA進行接ロ轉(zhuǎn)換和邏輯控制等。同時,考慮到嵌入式設(shè)備的安全啟動問題,將嵌入式設(shè)備中的嵌入式微處理器和程序存儲器割裂開來。系統(tǒng)上電后,由FPGA控制嵌入式微處理器訪問程序存儲器。這種做法便于TPM (或TCM)對程序存儲器中的引導(dǎo)程序及操作系統(tǒng)內(nèi)核等進行完整性度量,從而實現(xiàn)安全啟動。但是,顯然這種做法需要對嵌入式設(shè)備進行硬件系統(tǒng)上的重新設(shè)計,因此在不改變嵌入式設(shè)備硬件結(jié)構(gòu)的前提下,它不能夠完成在嵌入式設(shè)備上實現(xiàn)可信計算的目標(biāo)。TPM (或TCM)芯片是針對通用計算機系統(tǒng)設(shè)計的,不具備嵌入式系統(tǒng)通常具備的總線接ロ,因此必須利用硬件或者軟件進行不同總線協(xié)議的接ロ轉(zhuǎn)換,這也就増加了應(yīng)用的復(fù)雜性。因此急需ー種具有普遍適用性,應(yīng)用方式簡單且易于實現(xiàn)的安全模塊在現(xiàn)有嵌入式設(shè)備中實現(xiàn)可信嵌入式系統(tǒng)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的技術(shù)問題是提供一種基于FPGA設(shè)計實現(xiàn)的安全模塊在現(xiàn)有嵌入式設(shè)備中實現(xiàn)可信嵌入式系統(tǒng)。本發(fā)明的目的之ー是提出一種在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置;本發(fā)明的目的之ニ是提出一種在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的方法。本發(fā)明的目的之一是通過以下技術(shù)方案來實現(xiàn)的
本發(fā)明提供的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置,包括嵌入式設(shè)備和安全模塊;
所述嵌入式設(shè)備包括嵌入式微處理器、程序存儲器和第一通信接ロ ;所述嵌入式微處理器為嵌入式設(shè)備的執(zhí)行控制単元;所述程序存儲器存儲嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和文件系統(tǒng);所述第一通信接ロ用于嵌入式設(shè)備與外部進行數(shù)據(jù)通信;所述程序存儲器和第一通信接ロ分別與嵌入式微處理器連接;
所述安全模塊包括FPGA片上系統(tǒng)、存儲器、第二通信接口和狀態(tài)指示電路;所述FPGA片上系統(tǒng)實現(xiàn)安全模塊的計算與控制功能;所述存儲器包括非易失性存儲器和易失性存儲器,用于存儲安全模塊的程序和數(shù)據(jù);所述第二通信接ロ用于安全模塊與嵌入式設(shè)備之間的數(shù)據(jù)通信;所述狀態(tài)指示電路用于指示安全模塊的運行狀態(tài);所述存儲器、第二通信接口和狀態(tài)指示電路分別與FPGA片上系統(tǒng)連接;
所述嵌入式設(shè)備的第一通信接ロ與安全模 塊的第二通信接ロ進行物理連接。進ー步,所述FPGA片上系統(tǒng)包括微處理器、密碼模塊和內(nèi)部存儲器,
所述微處理器采用NiosII軟核處理器,在FPGA芯片內(nèi)部定制實現(xiàn),用于控制FPGA片上系統(tǒng)的其他組成模塊及整個安全模塊的數(shù)據(jù)流向;
所述密碼模塊,用于完成數(shù)據(jù)加解密運算、數(shù)據(jù)完整性度量和隨機數(shù)的產(chǎn)生;
所述內(nèi)部存儲器,用于存儲特殊敏感數(shù)據(jù);
所述微處理器、密碼模塊和內(nèi)部存儲器分別與內(nèi)部總線連接。進ー步,所述密碼模塊包括加解密運算単元、摘要運算單元和隨機數(shù)發(fā)生器;
所述加解密運算単元,用于對特定的數(shù)據(jù)摘要進行加解密處理;
所述摘要運算單元,用于對嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和應(yīng)用程序的數(shù)據(jù)進行摘要計算,分別得到160位的數(shù)據(jù)摘要;
所述隨機數(shù)發(fā)生器,用于為加解密運算単元提供32位隨機數(shù);
所述加解密運算単元、摘要運算單元和隨機數(shù)發(fā)生器與微處理器連接。進ー步,所述摘要運算單元包括SHA-I模塊,所述SHA-I模塊包括輸入模塊、數(shù)據(jù)填充模塊、Wt生成模塊、核心計算模塊、控制模塊和輸出模塊;
所述輸入模塊,用于將消息數(shù)據(jù)按消息塊輸入到SHA-I模塊中;
所述數(shù)據(jù)填充模塊,用于原始消息的數(shù)據(jù)填充;
所述Wt生成模塊,用于將512位的消息塊數(shù)據(jù)擴展成80個字;
所述核心計算模塊,用于進行SHA-I的迭代運算并輸出消息摘要;
所述控制模塊,用于為數(shù)據(jù)填充模塊,生成模塊和核心計算模塊提供控制信號;
所述輸出模塊,用于將160位的消息摘要按照32位進行輸出;
進ー步,所述加解密運算単元中的密鑰長度為1024位;所述摘要運算單元的SHA-I算法中所得到的數(shù)據(jù)摘要為160位數(shù)據(jù)摘要;所述隨機數(shù)發(fā)生器為產(chǎn)生32位隨機數(shù)的隨機數(shù)發(fā)生器。本發(fā)明的目的之ニ是通過以下技術(shù)方案來實現(xiàn)的
本發(fā)明提供的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的方法,包括以下步驟
Si:將嵌入式設(shè)備和安全模塊通過串行總線物理連接;
52:嵌入式設(shè)備上電后與安全模塊進行交互驗證;
53:在交互驗證結(jié)束后依次逐級對嵌入式設(shè)備啟動過程的程序數(shù)據(jù)進行完整性度量,實現(xiàn)嵌入式設(shè)備的安全啟動;
S4:在嵌入式設(shè)備安全啟動后對應(yīng)用程序進行完整性度量,通過驗證后予以執(zhí)行。進ー步,所述交互驗證具體過程包括以下步驟
S21:安全模塊接收應(yīng)答信號并驗證應(yīng)答信號是否接收成功,如果沒有接收成功則循環(huán)向嵌入式設(shè)備發(fā)出交互驗證命令;
S22:嵌入式設(shè)備接收并檢查交互驗證命令是否接收成功,如果接收成功后則向安全模塊給出交互驗證應(yīng)答信號,否則繼續(xù)等待接收交互驗證命令;
S23:安全模塊接收應(yīng)答信號并驗證應(yīng)答信號是否正確,如果正確則向嵌入式設(shè)備發(fā)出交互驗證正確信號;
S24 :嵌入式設(shè)備接收安全模塊的交互驗證正確性信號,嵌入式設(shè)備與安全模塊的交互驗證過程結(jié)束。進ー步,所述完整性度量具體包括以下步驟
531:安全模塊接收嵌入式設(shè)備的操作命令;
532:對操作命令進行命令解析并判斷完整性度量操作命令是否合法;
533:如果操作命令合法,則安全模塊給出應(yīng)答信號,指示已經(jīng)完成摘要計算準(zhǔn)備;
534:安全模塊接收嵌入式設(shè)備的數(shù)據(jù)包;
535:安全模塊根據(jù)數(shù)據(jù)包的特征進行數(shù)據(jù)提??;
536:將數(shù)據(jù)包中的有效數(shù)據(jù)送入摘要計算單元進行摘要運算;
537:安全模塊對摘要運算結(jié)果進行正確性驗證,若驗證結(jié)果正確,安全模塊則給出完整性度量正確信號。進ー步,所述嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和應(yīng)用程序的160位數(shù)據(jù)摘要的加解密處理是通過RSA算法來實現(xiàn)的,所述加解密運算中的密鑰長度為1024位;所述摘要運算采用SHA-I算法來實現(xiàn)的,所述SHA-I算法中所得到的數(shù)據(jù)摘要為160位數(shù)據(jù)摘要。本發(fā)明與現(xiàn)有技術(shù)相比,在現(xiàn)有嵌入式設(shè)備的基礎(chǔ)上加入安全模塊,在不改變嵌入式設(shè)備硬件的前提下,未給嵌入式設(shè)備增加額外的程序存儲器,且不需要改動嵌入式設(shè)備原有的硬件結(jié)構(gòu),通過串行通信接ロ將安全模塊與嵌入式設(shè)備相連接,完成安全模塊在嵌入式設(shè)備上的應(yīng)用,利用安全模塊提供的安全功能實現(xiàn)嵌入式設(shè)備的可信計算功能,安全模塊電路構(gòu)成簡單,靈活性強,應(yīng)用方式簡單,易于實現(xiàn),具有普遍適用性。本發(fā)明具有如下的優(yōu)點及效果
第一,安全模塊的核心部分是通過FPGA設(shè)計實現(xiàn),由微處理器和密碼模塊等構(gòu)成ー個FPGA片上系統(tǒng)。因此安全模塊能夠根據(jù)不同嵌入式設(shè)備的應(yīng)用需求進行修改,電路硬件構(gòu)成簡單,靈活性強。第二,嵌入式設(shè)備不需要進行硬件結(jié)構(gòu)上的重新設(shè)計,安全模塊僅通過串行通信接ロ連接到嵌入式設(shè)備上,應(yīng)用方式簡單,具有普遍適用性。同時,串行通信接ロ采用UART和USB兩種形式,滿足不同的通信速率要求。第三,嵌入式設(shè)備上電后從原有硬件的程序存儲器運行,通過與安全模塊交互驗證后進行逐級完整性度量,實現(xiàn)嵌入式設(shè)備的安全啟動。相比于在嵌入式設(shè)備外増加程序存儲器進行總線仲裁的做法,此方法更簡單有效,易于實現(xiàn)。本發(fā)明的其它優(yōu)點、目標(biāo)和特征在某種程度上將在隨后的說明書中進行闡述,并且在某種程度上,基于對下文的考察研究對本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可以從本發(fā)明的實踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其它優(yōu)點可以通過下面的說明書,權(quán)利要求書,以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進一步的詳細描述,其中
圖I為本發(fā)明實施例提供的可信嵌入式系統(tǒng)總體框 圖2為本發(fā)明實施例提供的安全模塊FPGA片上系統(tǒng)的結(jié)構(gòu)框 圖3為本發(fā)明實施例提供的嵌入式設(shè)備與安全模塊交互驗證流程 圖4為本發(fā)明實施例提供的安全模塊進行完整性度量流程 圖5為本發(fā)明實施例提供的SHA-I模塊的結(jié)構(gòu)框圖。
具體實施例方式以下將結(jié)合附圖,對本發(fā)明的優(yōu)選實施例進行詳細的描述;應(yīng)當(dāng)理解,優(yōu)選實施例僅為了說明本發(fā)明,而不是為了限制本發(fā)明的保護范圍。圖I為本發(fā)明實施例提供的可信嵌入式系統(tǒng)總體框圖,圖2為本發(fā)明實施例提供的安全模塊FPGA片上系統(tǒng)的結(jié)構(gòu)框圖,圖3為本發(fā)明實施例提供的嵌入式設(shè)備與安全模塊交互驗證流程圖,圖4為本發(fā)明實施例提供的安全模塊進行完整性度量流程圖。如圖I所示本發(fā)明提供的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置,包括嵌入式設(shè)備和安全模塊;
所述嵌入式設(shè)備主要包括嵌入式微處理器、程序存儲器和第一通信接ロ ;所述嵌入式微處理器為嵌入式設(shè)備的執(zhí)行控制単元;所述程序存儲器存儲嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和文件系統(tǒng);所述第一通信接ロ用于嵌入式設(shè)備與外部進行數(shù)據(jù)通信,所述程序存儲器和第一通信接ロ分別與嵌入式微處理器連接;
所述安全模塊包括FPGA片上系統(tǒng)、存儲器、第二通信接口和狀態(tài)指示電路;所述FPGA片上系統(tǒng)實現(xiàn)安全模塊的計算與控制功能;所述存儲器包括非易失性存儲器和易失性存儲器,用于存儲安全模塊的程序和數(shù)據(jù);所述通信接ロ用于安全模塊與嵌入式設(shè)備之間的數(shù)據(jù)通信;所述狀態(tài)指示電路用于指示安全模塊的運行和驗證狀態(tài),所述存儲器、第二通信接口和狀態(tài)指示電路分別與FPGA片上系統(tǒng)連接;
所述安全模塊的第一通信接ロ與嵌入式設(shè)備的第二通信接ロ通過串行總線物理連接。嵌入式設(shè)備為DaVinci數(shù)字媒體處理平臺,此平臺是以高性能TMS320C64x系列DSP為核心的SoC,可以從DSP與ARM內(nèi)核進行定制,包括符合消費類產(chǎn)品規(guī)范的硬件加速器以及音頻、視頻外設(shè),其中嵌入式微處理器為數(shù)字媒體處理器DM6446 ;程序存儲器為NAND FLASH,用于存儲嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和文件系統(tǒng)等內(nèi)容。所述安全模塊由FPGA片上系統(tǒng)、存儲器和通信接ロ組成,F(xiàn)PGA芯片為Cyclone IV器件EP4CE15F17C8,存儲器包括FLASH、SDRAM和 SRAM,通信接ロ為串行通信接ロ,包括UART和 USB。所述FPGA片上系統(tǒng)包括微處理器、密碼模塊和內(nèi)部存儲器,
所述微處理器采用NiosII軟核處理器,在FPGA芯片內(nèi)部定制實現(xiàn),用于控制FPGA片上系統(tǒng)的其他組成模塊及整個安全模塊的數(shù)據(jù)流向;
所述密碼模塊,用于完成數(shù)據(jù)加解密運算、數(shù)據(jù)完整性度量和隨機數(shù)的產(chǎn)生;所述內(nèi)部存儲器,用于存儲特殊敏感數(shù)據(jù);
所述微處理器、密碼模塊和內(nèi)部存儲器分別與內(nèi)部總線連接。如圖2所示,安全模塊中的FPGA芯片構(gòu)成ー個片上系統(tǒng),包含NiosII處理器、密碼模塊、片內(nèi)存儲器和內(nèi)部總線等組件。NiosII處理器是32位的軟核處理器,作為安全模塊的控制単元,用于控制密碼模塊運行和安全模塊的數(shù)據(jù)流向。密碼模塊包括SHA-I模塊、RSA模塊和隨機數(shù)發(fā)生器模塊。SHA-I模塊根據(jù)SHA-I安全散列算法對輸入數(shù)據(jù)進行散列計算,生成160位的數(shù)據(jù)摘要;RSA模塊利用1024位RSA公鑰密碼算法對數(shù)據(jù)進行加密和解密運算;隨機數(shù)發(fā)生器模塊用于產(chǎn)生32位隨機數(shù)。片內(nèi)存儲器包括內(nèi)部ROM和內(nèi)部RAM,在FPGA內(nèi)部由邏輯資源實現(xiàn),用于存儲安全模塊中的敏感數(shù)據(jù)。除此以外,F(xiàn)PGA芯片內(nèi)部還包括安全模塊外部存儲器控制器和通信接ロ模塊等。FPGA內(nèi)部所有組成模塊通過Avalon總線構(gòu)成一個完整的片上系統(tǒng)。所述密碼模塊包括加解密運算単元、摘要運算單元和隨機數(shù)發(fā)生器;
所述加解密運算単元,用于對特定的數(shù)據(jù)摘要進行加解密處理;
所述摘要運算單元,用于嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和應(yīng)用程序的數(shù)據(jù)進行摘要計算,分別得到160位的數(shù)據(jù)摘要;
所述隨機數(shù)發(fā)生器,用于為加解密運算単元提供32位隨機數(shù);
所述加解密運算単元、摘要運算單元和隨機數(shù)發(fā)生器與微處理器連接。圖5為本發(fā)明實施例提供的SHA-I模塊的結(jié)構(gòu)框圖,如圖所示,所述摘要運算單元包括SHA-I模塊,所述SHA-I模塊包括輸入模塊、數(shù)據(jù)填充模塊、Wt生成模塊、核心計算模塊、控制模塊和輸出模塊;
所述輸入模塊,用于將消息數(shù)據(jù)按消息塊輸入到SHA-I模塊中;
所述數(shù)據(jù)填充模塊,用于原始消息的數(shù)據(jù)填充;
所述Wt生成模塊,用于將512位的消息塊數(shù)據(jù)擴展成80個字;
所述核心計算模塊,用于進行SHA-I的迭代運算并輸出消息摘要;
所述控制模塊,用于為數(shù)據(jù)填充模塊,生成模塊和核心計算模塊提供控制信號;
所述輸出模塊,用于將160位的消息摘要按照32位進行輸出。本發(fā)明在DaVinci數(shù)字媒體處理平臺(以下簡稱為DaVinci平臺)上實現(xiàn)可信嵌入式系統(tǒng)的方法,具體過程是
1)將安全模塊通過UART串行通信接ロ與DaVinci平臺進行連接;
2)用戶給DaVinci平臺和安全模塊上電,DaVinci平臺執(zhí)行RBL讀取NANDFLASH中的UBL到內(nèi)存中并執(zhí)行UBL,進行基本設(shè)備初始化,進入步驟3);
3)DaVinci平臺設(shè)備初始化完成,等待安全模塊的交互驗證命令。DaVinci平臺檢查交互驗證命令的正確性,驗證正確后則給出交互驗證應(yīng)答信號,否則繼續(xù)等待。安全模塊上電初始化結(jié)束后,循環(huán)向外發(fā)送交互驗證命令,同時進行應(yīng)答信號的接收與驗證。當(dāng)接收到正確的應(yīng)答信號后,說明DaVinci平臺已完成初始化工作并成功接收交互驗證命令,此時停止發(fā)送交互驗證命令,同時給出交互驗證正確信號,進入步驟4 )。安全模塊未接收到應(yīng)答信號時,繼續(xù)循環(huán)發(fā)送交互驗證命令;安全模塊接收到應(yīng)答信號并驗證錯誤,則發(fā)出錯誤警告,提示用戶當(dāng)前DaVinci平臺存在風(fēng)險;當(dāng)安全模塊內(nèi)接收應(yīng)答信號超時,即安全模塊未能在規(guī)定時間內(nèi)成功接收交互驗證命令,說明DaVinci平臺未能按照預(yù)定方式進行初始化及交互驗證工作,則安全模塊發(fā)出超時警告,提示用戶當(dāng)前DaVinci平臺存在風(fēng)險。4) DaVinci平臺接收安全模塊的交互驗證正確性信號,DaVinci平臺與安全模塊的交互驗證過程結(jié)束,進入步驟5);
5)DaVinci平臺向安全模塊發(fā)送引導(dǎo)程序摘要計算命令;安全模塊在規(guī)定時間內(nèi)接收摘要計算命令,同時給出應(yīng)答信號,指示 安全模塊已經(jīng)完成摘要計算準(zhǔn)備,進入步驟6);如果安全模塊在規(guī)定時間未能成功接收引導(dǎo)程序摘要計算命令,則發(fā)出警告,提示用戶DaVinci平臺未按預(yù)定方式運行,存在風(fēng)險。6)DaVinci平臺接收安全模塊的摘要計算應(yīng)答信號,讀取NAND FLASH中的U_boot引導(dǎo)程序數(shù)據(jù)并將其以數(shù)據(jù)包的形式發(fā)送到安全模塊;安全模塊接收DaVinci平臺的數(shù)據(jù)包,井根據(jù)數(shù)據(jù)包的特征進行數(shù)據(jù)提取,將提取到的引導(dǎo)程序數(shù)據(jù)送入摘要計算單元進行摘要運算。摘要運算完成后對運算結(jié)果進行正確性驗證。若驗證結(jié)果正確,說明DaVinci平臺引導(dǎo)程序完整,則向DaVinci平臺發(fā)送引導(dǎo)程序完整信號,進入步驟7),否則發(fā)出警告,提示用戶DaVinci平臺的引導(dǎo)程序完整性度量未通過。7)DaVinci平臺接收安全模塊發(fā)出的引導(dǎo)程序完整信號,加載運行引導(dǎo)程序,進入步驟8);若DaVinci平臺接收到引導(dǎo)程序完整性度量錯誤信號,則進入步驟5)繼續(xù)進行引導(dǎo)程序的完整性度量。8) DaVinci平臺向安全模塊發(fā)送操作系統(tǒng)內(nèi)核摘要計算命令,安全模塊在規(guī)定時間內(nèi)接收摘要計算命令,同時給出應(yīng)答信號,指示安全模塊已經(jīng)完成摘要計算準(zhǔn)備,進入步驟9);如果安全模塊在規(guī)定時間未能成功接收操作系統(tǒng)內(nèi)核摘要計算命令,則發(fā)出警告,提示用戶DaVinci平臺未按預(yù)定方式運行,存在風(fēng)險。9)DaVinci平臺接收安全模塊的摘要計算應(yīng)答信號,讀取NAND FLASH中操作系統(tǒng)內(nèi)核數(shù)據(jù)并將其以數(shù)據(jù)包的形式發(fā)送到安全模塊;安全模塊接收DaVinci平臺的數(shù)據(jù)包,井根據(jù)數(shù)據(jù)包的特征進行數(shù)據(jù)提取,將提取到的操作系統(tǒng)內(nèi)核數(shù)據(jù)送入摘要計算單元進行摘要運算。摘要運算完成后對運算結(jié)果進行正確性驗證。若驗證結(jié)果正確,說明DaVinci平臺操作系統(tǒng)內(nèi)核完整,則向DaVinci平臺發(fā)送操作系統(tǒng)內(nèi)核完整信號,進入步驟10),否則發(fā)出警告,提示用戶DaVinci平臺的操作系統(tǒng)內(nèi)核完整性度量未通過。10)DaVinci平臺接收安全模塊發(fā)出操作系統(tǒng)內(nèi)核完整信號,加載運行操作系統(tǒng)內(nèi)核,完成DaVinci平臺的啟動,進入步驟11);
11)DaVinci平臺啟動完成后,操作系統(tǒng)將需要執(zhí)行的應(yīng)用程序數(shù)據(jù)發(fā)送給安全模塊;安全模塊對接收到的數(shù)據(jù)進行摘要計算,同時對運算結(jié)果進行正確性驗證;安全模塊驗證應(yīng)用程序數(shù)據(jù)完整后,向DaVinci平臺發(fā)送驗證正確信號,否則發(fā)出警告,提示用戶該應(yīng)用程序完整性度量未通過,存在風(fēng)險。本發(fā)明所述的正確性驗證,操作步驟是
1)安全模塊根據(jù)摘要計算命令,讀取配置過程中存儲在NANDFLASH中指定位置處的加密原始摘要數(shù)據(jù);
2)安全模塊利用RSA模塊對讀取的數(shù)據(jù)進行解密處理;
3)安全模塊將摘要計算結(jié)果與解密后的原始摘要數(shù)據(jù)進行比對,若比對一致則為驗證正確,否則為驗證錯誤。本發(fā)明所述的配置過程,操作步驟是1)安全模塊對DaVinci平臺的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和應(yīng)用程序的數(shù)據(jù)進行摘要計算,分別得到160位的數(shù)據(jù)摘要;
2)安全模塊利用RSA模塊對得到的160位數(shù)據(jù)摘要分別進行加密處理;
3)安全模塊將加密后的原始摘要數(shù)據(jù)存儲到NANDFLASH中的指定位置。以上所述僅為本發(fā)明的優(yōu)選實施例,并不用于限制本發(fā)明,顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些
改動和變型在內(nèi)。
權(quán)利要求
1.在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置,其特征在于包括嵌入式設(shè)備和安全模塊; 所述嵌入式設(shè)備包括嵌入式微處理器、程序存儲器和第一通信接口 ;所述嵌入式微處理器為嵌入式設(shè)備的執(zhí)行控制單元;所述程序存儲器存儲嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和文件系統(tǒng);所述第一通信接口用于嵌入式設(shè)備與外部進行數(shù)據(jù)通信;所述程序存儲器和第一通信接口分別與嵌入式微處理器連接; 所述安全模塊包括FPGA片上系統(tǒng)、存儲器、第二通信接口和狀態(tài)指示電路;所述FPGA片上系統(tǒng)實現(xiàn)安全模塊的計算與控制功能;所述存儲器包括非易失性存儲器和易失性存儲器,用于存儲安全模塊的程序和數(shù)據(jù);所述第二通信接口用于安全模塊與嵌入式設(shè)備之間的數(shù)據(jù)通信;所述狀態(tài)指示電路用于指示安全模塊的運行狀態(tài);所述存儲器、第二通信接口和狀態(tài)指示電路分別與FPGA片上系統(tǒng)連接; 所述嵌入式設(shè)備的第一通信接口與安全模塊的第二通信接口進行物理連接。
2.根據(jù)權(quán)利要求I所述的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置,其特征在于所述FPGA片上系統(tǒng)包括微處理器、密碼模塊和內(nèi)部存儲器; 所述微處理器采用NiosII軟核處理器,在FPGA芯片內(nèi)部定制實現(xiàn),用于控制FPGA片上系統(tǒng)的其他組成模塊及整個安全模塊的數(shù)據(jù)流向; 所述密碼模塊,用于完成數(shù)據(jù)加解密運算、數(shù)據(jù)完整性度量和隨機數(shù)的產(chǎn)生; 所述內(nèi)部存儲器,用于存儲特殊敏感數(shù)據(jù); 所述微處理器、密碼模塊和內(nèi)部存儲器分別與內(nèi)部總線連接。
3.根據(jù)權(quán)利要求2所述的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置,其特征在于所述密碼模塊包括加解密運算單元、摘要運算單元和隨機數(shù)發(fā)生器; 所述加解密運算單元,用于對特定的數(shù)據(jù)摘要進行加解密處理; 所述摘要運算單元,用于對嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和應(yīng)用程序的數(shù)據(jù)進行摘要計算,分別得到160位的數(shù)據(jù)摘要; 所述隨機數(shù)發(fā)生器,用于為加解密運算單元提供32位隨機數(shù); 所述加解密運算單元、摘要運算單元和隨機數(shù)發(fā)生器與微處理器連接。
4.根據(jù)權(quán)利要求3所述的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置,其特征在于所述摘要運算單元包括SHA-I模塊,所述SHA-I模塊包括輸入模塊、數(shù)據(jù)填充模塊、Wt生成模塊、核心計算模塊、控制模塊和輸出模塊; 所述輸入模塊,用于將消息數(shù)據(jù)按消息塊輸入到SHA-I模塊中; 所述數(shù)據(jù)填充模塊,用于原始消息的數(shù)據(jù)填充; 所述Wt生成模塊,用于將512位的消息塊數(shù)據(jù)擴展成80個字; 所述核心計算模塊,用于進行SHA-I的迭代運算并輸出消息摘要; 所述控制模塊,用于為數(shù)據(jù)填充模塊,生成模塊和核心計算模塊提供控制信號; 所述輸出模塊,用于將160位的消息摘要按照32位進行輸出。
5.根據(jù)權(quán)利要求4所述的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的裝置,其特征在于所述加解密運算單元中的密鑰長度為1024位;所述摘要運算單元的SHA-I算法中所得到的數(shù)據(jù)摘要為160位數(shù)據(jù)摘要;所述隨機數(shù)發(fā)生器產(chǎn)生32位隨機數(shù)的隨機數(shù)發(fā)生器。
6.在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的方法,其特征在于包括以下步驟Si:將嵌入式設(shè)備和安全模塊通過串行總線物理連接; 52:嵌入式設(shè)備上電后與安全模塊進行交互驗證; 53:在交互驗證結(jié)束后依次逐級對嵌入式設(shè)備啟動過程的程序數(shù)據(jù)進行完整性度量,實現(xiàn)嵌入式設(shè)備的安全啟動; S4:在嵌入式設(shè)備安全啟動后對應(yīng)用程序進行完整性度量,通過驗證后予以執(zhí)行。
7.根據(jù)權(quán)利要求6所述的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的方法,其特征在于所述交互驗證具體過程包括以下步驟 521:安全模塊接收應(yīng)答信號并驗證應(yīng)答信號是否接收成功,如果沒有接收成功則循環(huán)向嵌入式設(shè)備發(fā)出交互驗證命令; 522:嵌入式設(shè)備接收并檢查交互驗證命令是否接收成功,如果接收成功后則向安全模塊給出交互驗證應(yīng)答信號,否則繼續(xù)等待接收交互驗證命令; S23:安全模塊接收應(yīng)答信號并驗證應(yīng)答信號是否正確,如果正確則向嵌入式設(shè)備發(fā)出交互驗證正確信號; S24 :嵌入式設(shè)備接收安全模塊的交互驗證正確性信號,嵌入式設(shè)備與安全模塊的交互驗證過程結(jié)束。
8.根據(jù)權(quán)利要求7所述的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的方法,其特征在于所述完整性度量具體包括以下步驟 531:安全模塊接收嵌入式設(shè)備的操作命令; 532:對操作命令進行命令解析并判斷完整性度量操作命令是否合法; 533:如果操作命令合法,則安全模塊給出應(yīng)答信號,指示已經(jīng)完成摘要計算準(zhǔn)備; 534:安全模塊接收嵌入式設(shè)備的數(shù)據(jù)包; 535:安全模塊根據(jù)數(shù)據(jù)包的特征進行數(shù)據(jù)提?。? 536:將數(shù)據(jù)包中的有效數(shù)據(jù)送入摘要計算單元進行摘要運算; 537:安全模塊對摘要運算結(jié)果進行正確性驗證,若驗證結(jié)果正確,安全模塊則給出完整性度量正確信號。
9.根據(jù)權(quán)利要求8所述的在現(xiàn)有嵌入式設(shè)備上實現(xiàn)可信嵌入式系統(tǒng)的方法,其特征在于所述嵌入式設(shè)備的引導(dǎo)程序、操作系統(tǒng)內(nèi)核和應(yīng)用程序的160位數(shù)據(jù)摘要的加解密處理是通過RSA算法來實現(xiàn)的,所述加解密運算中的密鑰長度為1024位;所述摘要運算采用SHA-I算法來實現(xiàn)的,所述SHA-I算法中所得到的數(shù)據(jù)摘要為160位數(shù)據(jù)摘要。
全文摘要
本發(fā)明公開了一種基于安全模塊的可信嵌入式系統(tǒng),解決的技術(shù)問題是提高現(xiàn)有嵌入式設(shè)備的安全性。本發(fā)明的可信嵌入式系統(tǒng)包括嵌入式設(shè)備和安全模塊,嵌入式設(shè)備和安全模塊通過串行總線物理連接;其中嵌入式設(shè)備是為實現(xiàn)特定功能的嵌入式系統(tǒng)平臺;安全模塊以FPGA片上系統(tǒng)為核心,為嵌入式設(shè)備提供數(shù)據(jù)的加解密運算和完整性度量等功能,提高嵌入式設(shè)備從啟動到運行過程的安全性。本發(fā)明與現(xiàn)有技術(shù)相比,未給嵌入式設(shè)備增加額外的程序存儲器,且不需要改動嵌入式設(shè)備原有的硬件結(jié)構(gòu),安全模塊電路構(gòu)成簡單,靈活性強,應(yīng)用方式簡單,易于實現(xiàn),具有普遍適用性。
文檔編號G06F21/00GK102819706SQ201210261098
公開日2012年12月12日 申請日期2012年7月26日 優(yōu)先權(quán)日2012年7月26日
發(fā)明者羅鈞, 蔣敬旗, 閔志盛, 李成清, 李義軍, 付麗, 孫洪旗 申請人:重慶大學(xué)