嵌入式操作系統(tǒng)的加密方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機(jī)技術(shù)領(lǐng)域,具體涉及一種嵌入式操作系統(tǒng)的加密方法和裝置。
【背景技術(shù)】
[0002]嵌入式操作系統(tǒng)(Embedded Operating System,簡稱:EOS)是指用于嵌入式系統(tǒng)的操作系統(tǒng)。嵌入式操作系統(tǒng)運行時,一般是先啟動BOOT程序,然后由BOOT程序跳轉(zhuǎn)至Kernel,運行主程序。BOOT、Kernel和主程序都是燒錄在FLASH中,待系統(tǒng)上電的時候,才會從FLASH把相應(yīng)的程序運行起來。
[0003]在硬件結(jié)構(gòu)電路相同的情況下,如果把FLASH的數(shù)據(jù)讀取并拷貝至另一個操作系統(tǒng)的板子去,程序也同樣運行起來。因此在沒有加密的系統(tǒng)里,很容易被抄襲。
[0004]在一些常見的加密處理中,需要在電路里,加個EEPROM來儲存校驗數(shù)據(jù)(見圖1),這樣在BOOT程序和應(yīng)用程序里,都先讀取校驗數(shù)據(jù),如果匹配才正常運行,如果不匹配,則不能正常運行,從而起到一定的保護(hù)作用。但即便這樣,如果EEPROM的數(shù)據(jù)被讀取拷貝至抄襲的嵌入式系統(tǒng)的板子里,還是會面臨被抄襲的情況。
【發(fā)明內(nèi)容】
[0005]本發(fā)明旨在為嵌入式操作系統(tǒng)提供一種基于系統(tǒng)唯一硬件序列號的加密方法和裝置,防止系統(tǒng)硬件或軟件被非法偽造,確保系統(tǒng)數(shù)據(jù)不被非法篡改,保證系統(tǒng)安全運行。
[0006]本發(fā)明的技術(shù)方案是:嵌入式操作系統(tǒng)的加密方法,它基于嵌入式硬件系統(tǒng)的唯一硬件序列號,由上位機(jī)分別對BOOT程序和主程序進(jìn)行加密處理,各自生成相應(yīng)的校驗數(shù)據(jù),在將BOOT程序和主程序燒錄在所述嵌入式硬件系統(tǒng)的FLASH的同時,將所述校驗數(shù)據(jù)存儲至所述嵌入式硬件系統(tǒng)的EEPR0M,使BOOT程序和主程序形成了基于所述唯一硬件序列號的互鎖結(jié)構(gòu),保持所述嵌入式操作系統(tǒng)的唯一性,其加密燒錄步驟如下:
步驟1.運行所述上位機(jī)中燒錄授權(quán)軟件,為所述嵌入式硬件系統(tǒng)上電,嵌入式硬件系統(tǒng)與上位機(jī)連接;
步驟2.上位機(jī)發(fā)送請求,讀取嵌入式硬件系統(tǒng)的唯一硬件序列號;讀取硬件序列號時,嵌入式操作系統(tǒng)的燒錄程序?qū)⑿蛄刑栠M(jìn)行加密,傳輸給上位機(jī)的燒錄授權(quán)軟件,所述燒錄授權(quán)軟件再進(jìn)行解密,得到嵌入式硬件系統(tǒng)真實的唯一硬件序列號;
步驟3.上位機(jī)將BOOT程序燒錄到嵌入式硬件系統(tǒng)的FLASH中;
步驟4.上位機(jī)將讀到的唯一硬件序列號與BOOT程序通過加密算法計算出BOOT程序校驗數(shù)據(jù),并將BOOT程序校驗數(shù)據(jù)儲存在嵌入式硬件系統(tǒng)的EEPROM中;
步驟5.上位機(jī)將Kernel程序燒錄到嵌入式硬件系統(tǒng)的FLASH中;
步驟6.上位機(jī)將主程序燒錄到嵌入式硬件系統(tǒng)的FLASH中;
步驟7.上位機(jī)將讀到的唯一硬件序列號與主程序通過加密算法計算出主程序校驗數(shù)據(jù),并將主程序校驗數(shù)據(jù)儲存在嵌入式硬件系統(tǒng)的EEPROM中;
步驟8.上位機(jī)確認(rèn)上述步驟完成,指令嵌入式硬件系統(tǒng)結(jié)束燒錄過程。
[0007]所述嵌入式操作系統(tǒng)啟動時,BOOT程序和主程序在啟動過程中相互校驗,一旦校驗不通過,程序運行結(jié)束,嵌入式操作系統(tǒng)停止工作,BOOT程序和主程序啟動運行步驟如下:
步驟11.啟動BOOT程序;
步驟12.BOOT程序啟動后,讀取所述嵌入式硬件系統(tǒng)的唯一硬件序列號和燒錄在FLASH中的主程序;
步驟13.通過與授權(quán)軟件相同的加密算法生成主程序校驗數(shù)據(jù);
步驟14.讀取儲存在EEPROM中由加密授權(quán)軟件燒錄的主程序的校驗數(shù)據(jù),并與步驟13生成的主程序校驗數(shù)據(jù)進(jìn)行比較;
步驟15.如果不匹配,則程序運行結(jié)束;如果匹配,則正常跳轉(zhuǎn)啟動主程序;
步驟16.主程序啟動后,讀取所述嵌入式硬件系統(tǒng)唯一硬件序列號和燒錄在FLASH中的BOOT程序;
步驟17.通過與授權(quán)軟件相同的加密算法生成BOOT程序校驗數(shù)據(jù);
步驟18.讀取儲存在EEPROM中由加密授權(quán)軟件燒錄的BOOT程序校驗數(shù)據(jù),并與步驟17生成的BOOT程序校驗數(shù)據(jù)進(jìn)行比較;
步驟19.如果匹配,主程序正常運行;如果不匹配,則程序運行結(jié)束。
[0008]—種應(yīng)用上述加密方法的裝置,它包括:
嵌入式硬件系統(tǒng),是待加密的硬件設(shè)備,內(nèi)置了 CPU、FLASH、EEPROM ;
上位機(jī),通過USB線與所述嵌入式系統(tǒng)連接,內(nèi)存燒錄軟件和加密算法軟件,為所述嵌入式系統(tǒng)燒錄程序、傳輸數(shù)據(jù)。
[0009]加密燒錄時,所述上位機(jī)讀取所述嵌入式硬件系統(tǒng)CPU的唯一硬件序列號,由上位機(jī)運用加密算法軟件分別對BOOT程序和主程序進(jìn)行加密處理,各自生成相應(yīng)的校驗數(shù)據(jù),在將BOOT程序和主程序燒錄在所述嵌入式硬件系統(tǒng)的FLASH的同時,將所述校驗數(shù)據(jù)存儲至所述嵌入式硬件系統(tǒng)的EEPR0M,使BOOT程序和主程序形成了基于所述唯一硬件序列號的互鎖結(jié)構(gòu);所述嵌入式硬件系統(tǒng)啟動時,加密處理的BOOT程序和主程序在啟動過程中相互校驗,一旦校驗不通過,程序運行結(jié)束,嵌入式操作系統(tǒng)停止工作。
[0010]由于本發(fā)明嵌入式操作系統(tǒng)的加密方法和裝置基于嵌入式硬件系統(tǒng)的唯一硬件序列號,可以很好地讓BOOT程序與主程序進(jìn)行互鎖,將軟件程序與硬件結(jié)構(gòu)電路結(jié)合在一起。當(dāng)硬件被抄襲時,F(xiàn)LASH與EEPROM的數(shù)據(jù)遭拷貝復(fù)制,但由于唯一硬件序列號不一樣,則交叉互檢校驗就不會通過,系統(tǒng)也無法運行起來,從而很好地對原硬件及軟件系統(tǒng)進(jìn)行了保護(hù)。
【附圖說明】
[0011]圖1是現(xiàn)有技術(shù)嵌入式操作系統(tǒng)加密程序框圖;
圖2是本發(fā)明嵌入式操作系統(tǒng)加密程序框圖;
圖3是本發(fā)明嵌入式操作系統(tǒng)BOOT程序和主程序校驗數(shù)據(jù)生成框圖;
圖4是本發(fā)明嵌入式操作系統(tǒng)加密燒錄程序圖;
圖5是本發(fā)明嵌入式操作系統(tǒng)BOOT程序和主程序加密啟動互鎖原理框圖;
圖6是加密燒錄過程上位機(jī)與嵌入式硬件系統(tǒng)的信息交互狀態(tài)梯形圖。
【具體實施方式】
[0012]下面結(jié)合附圖對本發(fā)明進(jìn)一步說明。
[0013]如圖2所示是嵌入式硬件系統(tǒng)的CPU框架圖,F(xiàn)LASH用于燒錄BOOT程序和主程序,而BOOT程序校驗數(shù)據(jù)和主程序校驗數(shù)據(jù)是存放在EEPROM里的,本發(fā)明嵌入式操作系統(tǒng)的加密方法基于該CPU的唯一硬件序列號ID。在加密處理中,讀取CPU唯一硬件序列號ID,將原始數(shù)據(jù)與ID號通過一定的算法處理,生成相應(yīng)的校驗數(shù)據(jù)。由于每個CPU的唯一硬件ID號各不一樣,就算硬件電路和軟件程序數(shù)據(jù)被抄襲拷貝,經(jīng)本發(fā)明加密方法所建立的校驗過程就不會通過,BOOT程序和主程序則無法正常運行,從而起到了保護(hù)作用。
[0014]具體加密過程如圖4所示,在待加密嵌入式硬件系統(tǒng)CPU上電后,首先上位機(jī)運行燒錄授權(quán)軟件,讀取CPU的唯一硬件ID號。由于上位機(jī)是通過USB或串口與下位機(jī)進(jìn)行通信,如果唯一硬件ID號直接明文傳輸,則有可能被監(jiān)控軟件監(jiān)控或篡改,因此在傳輸ID時,嵌入式操作系統(tǒng)的燒錄程序?qū)D號進(jìn)行加密,傳輸給上位機(jī)的燒錄授權(quán)軟件,然后燒錄授權(quán)軟件再進(jìn)行解密,得到CPU真實的唯一硬件ID號。
[0015]得到唯一硬件ID號后,燒錄授權(quán)軟件將BOOT程序與ID號經(jīng)過加密算法處理,生成BOOT校驗數(shù)據(jù)(見圖3),并將BOOT程序燒錄到嵌入式硬件系統(tǒng)FLASH指定的地址中,然后將BOOT程序校驗數(shù)據(jù)存儲在嵌入式硬件系統(tǒng)EEPROM指定的地址中;同樣地,將主程序與ID號經(jīng)過加密算法處理,生成主程序校驗數(shù)據(jù)(見圖3),并將主程序燒錄到嵌入式硬件系統(tǒng)FLASH指定的地址中,然后將主程序校驗數(shù)據(jù)存放在嵌入式硬件系統(tǒng)EEPROM指定的地址中;加密燒錄工作完成。
[0016]加密后的嵌入式硬件系統(tǒng)CPU再次啟動時,BOOT程序和主程序分別基于本系統(tǒng)唯一 ID號形成了如下互鎖結(jié)構(gòu),為系統(tǒng)安全啟動運行提供嚴(yán)格的校驗程序:
如圖5所示,在BOOT程序啟動的時候,先讀取系統(tǒng)CPU唯一 ID和存儲在FLASH中的主程序,并通過與授權(quán)軟件相同的加密算法處理生成主程序校驗數(shù)據(jù);然后讀取存儲在EEPROM中由授權(quán)軟件燒錄的主程序的校驗數(shù)據(jù);再將這兩組校驗數(shù)據(jù)進(jìn)行比較,如果匹配,則可以正常跳轉(zhuǎn),啟動主程序;如果不匹配,則程序結(jié)束,嵌入式系統(tǒng)停止工作。
[0017]在主程序啟動的時候,先讀取系統(tǒng)CPU唯一 ID和存儲在FLASH中的BOOT程序,并通過與授權(quán)軟件相同的加密算法處理生成BOOT程序校驗數(shù)據(jù);然后讀取存儲在EEPROM中由授權(quán)軟件燒錄的BOOT程序的校驗數(shù)據(jù);再將這兩組校驗數(shù)據(jù)進(jìn)行比較,如果匹配,則可以正常運行,如果不匹