崔競飛 王勁林 張 振
(1.中國科學(xué)院大學(xué) 北京100049;2.中國科學(xué)院聲學(xué)研究所 國家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京100190;3.北京大學(xué) 信息科學(xué)技術(shù)學(xué)院,北京100871)
高性能同軸網(wǎng)絡(luò)(HINOC,High performance Network Over Coax)系統(tǒng)是“三網(wǎng)融合”方案中由中國自主研發(fā)的有限同軸電纜寬帶接入系統(tǒng)解決方案.HINOC同軸電纜接入系統(tǒng)利用了現(xiàn)有的有線電視網(wǎng)絡(luò)作為家庭用戶接入網(wǎng),主要由網(wǎng)橋(HB,HINOC Bridge)以及調(diào)制解調(diào)器(HM,HINOC Modem)組成.HB通過光纖連接于光設(shè)備末端,作為與光設(shè)備唯一的傳輸接口,同時作為HINOC網(wǎng)絡(luò)中心控制單元對網(wǎng)內(nèi)的HM統(tǒng)一進行控制.HB與HM通過同軸電纜連接,網(wǎng)管中心主機負責(zé)控制系統(tǒng)升級以及HB與HM的設(shè)備管理,升級服務(wù)器主要為遠端設(shè)備提供升級文件[1-2],HINOC系統(tǒng)架構(gòu)示意圖如圖 1所示[3].
圖1 HINOC架構(gòu)示意圖Fig.1 Structure of HINOC
系統(tǒng)升級設(shè)計是軟件平臺為了滿足HINOC嵌入式設(shè)備軟件系統(tǒng)升級的需要而設(shè)計的應(yīng)用程序.HINOC在投入用戶使用后,隨著軟件版本的不斷更新,需要采用遠程在線升級來降低成本.系統(tǒng)升級主要考慮升級的穩(wěn)定性、文件傳輸以及更新過程的可靠性、升級系統(tǒng)通信的安全性等關(guān)鍵問題.
基于嵌入式平臺的升級系統(tǒng)傳輸?shù)奈募饕▋?nèi)核、文件系統(tǒng)、應(yīng)用程序等.傳輸方法常采用文件整體傳輸和差分文件傳輸[4].文件傳輸?shù)倪^程中通信系統(tǒng)需要考慮文件保密、身份驗證和數(shù)據(jù)完整.數(shù)據(jù)完整校驗常采用的方法包括CRC校驗和單向散列函數(shù)校驗,身份驗證機制則包括對稱加密與非對稱加密[5].系統(tǒng)升級之后,需要進行系統(tǒng)和軟件的重啟,確保升級成功,為了保證遠端設(shè)備在升級失敗情況下基本功能的正常運行,需要引入異常保護機制[6].
升級程序主要包括服務(wù)器端程序、客戶端程序以及控制端程序.服務(wù)器端程序運行在升級服務(wù)器上,HB和HM運行客戶端程序,HINOC網(wǎng)管中心運行網(wǎng)絡(luò)系統(tǒng)控制端.升級服務(wù)器在啟動前默認已經(jīng)準(zhǔn)備好升級所需要的文件,包括加密的密鑰、需要傳輸?shù)纳壩募?系統(tǒng)升級的序列圖如圖2所示,主要步驟如下:
1)服務(wù)器端程序向網(wǎng)絡(luò)控制端發(fā)送公鑰,網(wǎng)管中心控制端將升級服務(wù)器地址以及解密公鑰發(fā)送到升級客戶端.
2)客戶端程序根據(jù)升級服務(wù)器地址發(fā)送升級請求,與服務(wù)器端建立鏈接.
3)客戶端接收升級文件以及加密的校驗信息,通過校驗信息和公鑰檢驗文件傳輸是否有誤.
4)若文件傳輸正確,備份舊版本文件,若為應(yīng)用程序,直接將文件存儲至指定目錄;若為內(nèi)核文件系統(tǒng)或者 boot腳本,則將文件燒寫至FLASH.
5)通過系統(tǒng)和軟件重啟檢驗系統(tǒng)升級是否成功,若重啟成功,則升級成功;若首次重啟失敗,啟用異常保護機制,退出此次升級.客戶端同時向網(wǎng)管中心反饋升級狀態(tài)信息.
圖2 升級系統(tǒng)序列圖Fig.2 Sequence diagram of upgrades
升級系統(tǒng)的關(guān)鍵機制包括文件編碼與解碼、文件校驗與加密解密以及異常保護機制.
2.2.1 文件編碼與解碼
在文件傳輸過程中,文件整體傳輸具有耗時長、效率低、安全性差等特點,容易造成信息泄露.在HINOC系統(tǒng)中,由于升級文件新舊版本文件之間改動較小,所以選擇差分文件傳輸不僅可以節(jié)約傳輸時間,減少數(shù)據(jù)傳輸量,同時可以防止信息泄露[7-8].
最簡單的差分算法是對不同版本的軟件的字符塊按字節(jié)逐個比較,而本系統(tǒng)中通過計算字符塊的Hash值[9-10],采用3層Hash差分比較法生成差分文件,該算法具有計算速度快、碰撞概率小等特點.主要步驟如下:
1)將新版本文件以若干字節(jié)為一個字符塊,分為若干塊,分別計算塊的弱Hash值,保存到一個Hash表中.
2)取一個新版本字符塊,與舊版本文件字符塊進行匹配,首先比較兩個字符塊的前面幾個字符.如果不同,則移動一個字節(jié),匹配舊版本文件下一個字符塊;如果相同,則計算該字符塊的弱Hash值,如果不同,則匹配下一字符塊,如果相同,則進一步計算新舊兩個字符塊的Hash值,如果3層強Hash值相同則匹配成功.記錄舊版本標(biāo)記、舊字符塊在舊文件中的起始位置及塊長度到一個結(jié)構(gòu)體變量,并保存到差分文件中.對于舊版本中連續(xù)匹配的字符塊,只需改變結(jié)構(gòu)體變量中的塊長度,減少差分文件數(shù)據(jù).
3)如果到最后沒有找到匹配的舊版本字符塊,則匹配失敗,記錄新版本標(biāo)記、新字符塊在新版本文件中的起始位置及塊長度到一個結(jié)構(gòu)體變量,復(fù)制新版本字符塊,并保存到差分文件中.對新版本文件的各個塊連續(xù)查找匹配塊直到結(jié)束,便生成差分文件.服務(wù)器端差分文件生成算法流程如圖3所示.
在客戶端,其還原算法如下:利用差分文件信息,逐個讀取各個結(jié)構(gòu)體數(shù)據(jù),如果標(biāo)記為舊版本數(shù)據(jù),則利用塊起始地址和塊長度,從舊版本文件復(fù)制數(shù)據(jù)到還原文件;如果標(biāo)記為新版本文件,則直接從差分文件復(fù)制數(shù)據(jù)到還原文件.
2.2.2 文件校驗與加密
在數(shù)據(jù)校驗的機制設(shè)計中,CRC校驗?zāi)芎芎玫貦z測數(shù)據(jù)錯誤,但是因為CRC多項式是線性結(jié)構(gòu),在網(wǎng)絡(luò)通信中,可以很容易被攻擊者故意改變數(shù)據(jù)而維持CRC不變,因此CRC校驗不適合網(wǎng)絡(luò)數(shù)據(jù)校驗.單向散列函數(shù)校驗?zāi)軌驅(qū)θ我忾L度數(shù)據(jù)變化成固定長度輸出數(shù)據(jù),具有計算簡單、數(shù)據(jù)不容易被故意更改等優(yōu)點,常用的算法包括MD5 和 SHA 等[9-12].
圖3 差分文件生成算法流程圖Fig.3 Flow chart of delta file generating
在身份認證設(shè)計中,常見對稱加密算法有DES和AES算法,其特點是同一密鑰可同時用于加密和解密,收發(fā)雙方使用同樣的密鑰,缺乏認證的功能,其安全性難以得到保障.常用非對稱加密主要有RSA和DSA算法,其特點是密鑰分為公鑰和私鑰,私鑰由收發(fā)其中一方保持,能夠進行身份認證;而公鑰可對外公開,方便密鑰管理[13-15].綜上,HINOC系統(tǒng)采用單向散列函數(shù)(MD5算法)校驗結(jié)合非對稱RSA加密驗證機制.
升級服務(wù)器主要負責(zé)生成RSA私鑰和公鑰,并且將公鑰通過網(wǎng)管中心發(fā)送至客戶端.升級服務(wù)器對更新版本文件進行計算產(chǎn)生MD5校驗碼,校驗碼經(jīng)過RSA私鑰加密,在差分文件傳輸完成后,再發(fā)送給升級客戶端.
客戶端收到加密的校驗碼后,利用RSA公鑰解密出服務(wù)端的MD5碼;在還原出升級文件的當(dāng)前版本之后,對其計算產(chǎn)生還原文件的MD5校驗碼.前后兩個MD5碼進行比較,如果相等,則說明升級還原版本文件是完整的,并且發(fā)送方身份是可信任的;否則,說明文件傳輸出現(xiàn)問題,需要重新傳輸文件.
由于發(fā)送文件采用差分編碼,所以即使被沒有經(jīng)過授權(quán)接受者獲得,得到的文件信息也是無效的.本升級系統(tǒng)結(jié)合了文件差分編碼、文件校驗和非對稱加密等方式保障升級系統(tǒng)的安全性.
2.2.3 異常保護機制
系統(tǒng)異常主要指兩方面:一是由于系統(tǒng)升級中途出現(xiàn)斷電等硬件異常導(dǎo)致內(nèi)核文件更新失敗;二是由于系統(tǒng)內(nèi)核文件區(qū)程序更新錯誤導(dǎo)致系統(tǒng)無法啟動.因此升級系統(tǒng)采用兩種主要的保護方式來應(yīng)對這兩種異常情況.
1)內(nèi)核分區(qū)設(shè)計.
HINOC系統(tǒng)采用兩個內(nèi)核文件映像分區(qū)方式,其中一個內(nèi)核文件FLASH分區(qū)在內(nèi)核驅(qū)動中設(shè)置為只讀,在該分區(qū)存儲出廠的內(nèi)核與文件映像;另一個內(nèi)核文件分區(qū)設(shè)置為可讀寫,該分區(qū)存儲當(dāng)前使用的內(nèi)核與文件映像,當(dāng)系統(tǒng)需要升級內(nèi)核時,由于內(nèi)核程序是運行在RAM中,所以升級程序可以對該FLASH分區(qū)進行擦除讀寫以更新內(nèi)核,F(xiàn)LASH分區(qū)設(shè)置如表1所示.
表1 FLASH分區(qū)設(shè)置Table 1 Partition of flash device
2)內(nèi)核重啟機制.
HM引入了自動重啟機制解決系統(tǒng)異常問題,該機制通過系統(tǒng)環(huán)境變量判斷啟動內(nèi)核版本,引入看門狗電路判斷啟動狀態(tài).內(nèi)核重啟狀態(tài)轉(zhuǎn)移圖如圖4所示,主要步驟如下.
①系統(tǒng)啟動前,uboot判斷啟動環(huán)境變量flag1的值:如果flag1=value1,boot從出廠內(nèi)核啟動,flag1值不變,將flag2置為value1;如果flag1=value2,boot從更新內(nèi)核啟動,將flag1置為value1,flag2置為value2.
②系統(tǒng)啟動后,如果啟動成功,判斷flag2的值:如果flag2=value1,可知系統(tǒng)運行在出廠內(nèi)核狀態(tài),將flag1置為value2,判斷更新內(nèi)核文件區(qū)是否錯誤,如果錯誤則取出備份內(nèi)核文件映像,燒寫到更新內(nèi)核文件區(qū);如果flag2=value2,可知系統(tǒng)運行在更新內(nèi)核狀態(tài),將flag1置為value2.
③系統(tǒng)啟動后,如果啟動失敗:若更新內(nèi)核啟動失敗,則看門狗電路自動重啟設(shè)備,系統(tǒng)將從默認內(nèi)核啟動;若默認內(nèi)核啟動失敗,則需手動燒寫內(nèi)核,由于默認內(nèi)核是寫保護,所以此類情況出現(xiàn)的可能性可以忽略.
圖4 內(nèi)核重啟狀態(tài)轉(zhuǎn)移圖Fig.4 State transition diagram of booting
升級測試環(huán)境如圖5所示,HM(左)通過同軸線與HB(右)相連,HB通過業(yè)務(wù)網(wǎng)口與升級服務(wù)器連接.HB與HM硬件平臺核心處理器是XSCALE PXA270嵌入式處理器,主頻為520MHz,同時外接32MB的NOR FLASH和32MB的SDRAM存儲器.升級服務(wù)器和網(wǎng)管中心均使用DELL OptiPlex960主機,核心處理器為 Intel酷睿2四核Q9650處理器.
圖5 升級系統(tǒng)測試實物圖Fig.5 Physical map of the upgrade system
差分文件的生成在升級服務(wù)器中進行,差分文件主要為內(nèi)核文件以及HM應(yīng)用程序.表2反映了內(nèi)核和應(yīng)用程序差分文件的生成和還原新版本耗時.
表2 差分文件生成與還原Table 2 Information of delta files
系統(tǒng)對不同文件進行差分文件的生成和還原,得到新版本文件正確,證明文件差分編碼功能正確.
圖6為差分文件壓縮率與比較字符塊大小的變化曲線,隨著字符塊大小的增大,差分文件壓縮率越大.圖7為差分文件生成時間與字符塊大小的關(guān)系,隨著字符塊的不斷增大,計算時間無明顯變化趨勢.
圖6 差分文件壓縮率隨字符塊大小變化曲線Fig.6 Relationship between compression ratio and block size
圖7 差分文件生成時間隨字符塊大小變化曲線Fig.7 Relationship between build time and block size
系統(tǒng)異常測試主要是指嵌入式系統(tǒng)不能正常啟動時,能自動判斷錯誤并從出廠內(nèi)核文件區(qū)啟動.由于HM第一版本系統(tǒng)硬件沒有引入看門狗電路,因此重啟時采用手動重啟方式.測試方法如下:破壞更新文件映像區(qū),然后設(shè)置boot環(huán)境變量flag1為value2,從更新內(nèi)核文件區(qū)啟動,測試結(jié)果如圖8所示,啟動boot時更新文件CRC校驗出錯.
圖8 初次啟動結(jié)果Fig.8 Result of first boot
手動重啟后系統(tǒng)判斷flag1和flag2環(huán)境變量分別為value1和value2,判斷內(nèi)核文件啟動失敗,選擇出廠內(nèi)核文件區(qū)啟動,完成異常條件下的成功啟動,重啟結(jié)果如圖9所示.
圖9 系統(tǒng)重啟結(jié)果Fig.9 Result of restart
HINOC系統(tǒng)升級程序的設(shè)計考慮了文件差分編碼、文件信息加密、身份認證、異常保護等問題,應(yīng)用范圍廣泛,可以適應(yīng)多種嵌入式網(wǎng)絡(luò)應(yīng)用環(huán)境.該升級系統(tǒng)相比普通升級系統(tǒng)具有以下優(yōu)點:
1)差分編碼壓縮傳輸文件大小,節(jié)省傳輸時間,保障信息安全;
2)文件的校驗和身份認證共同通過MD5碼進行完成,相比其他升級系統(tǒng),減少了信息交換時間,提高通信效率;
3)異常保護機制保障了系統(tǒng)異常情況下設(shè)備的基本功能,提高了系統(tǒng)的可靠性,節(jié)省了入戶維修的人力和經(jīng)濟成本.
由于HM硬件尚未引入看門狗電路,因此異常保護機制的自動重啟功能仍需要進一步測試.同時在實驗環(huán)境下驗證的基本功能,仍需要在實際應(yīng)用環(huán)境中進行升級測試,才能進一步檢驗升級機制設(shè)計的完備性和健壯性.
References)
[1]GY/T 265—2012 NGB寬帶接主系統(tǒng) HINOC傳輸和媒質(zhì)接入控制技術(shù)規(guī)范[S]GY/T 265—2012 NGB broadband access system-technical specification of HINOC physical layer and media access control protocol[S](in Chinese)
[2]歐陽鋒,崔競飛,趙玉萍,等.HINOC同軸電纜接入系統(tǒng)技術(shù)方案[J].廣播與電視技術(shù),2011,38(10):34-38 Ouyang Feng,Cui Jingfei,Zhao Yuping,et al.Technology of high performance network over coax[J].Radio & TV Broadcast Engineering,2011,38(10):34-38(in Chinese)
[3] Cui W W,Duan X H,Yuan W,et al.Design and implementation of HINOC network management system based on SNMP[C]//Signal Processing,Communication and Computing(ICSPCC).Washington,D C:IEEE Computer Society,2012:527-532
[4]陳璐,鐘聲.網(wǎng)絡(luò)文件傳輸方法和系統(tǒng):中國,102420822[P].2012-04-28 Chen Lu,Zhong Sheng.Transfer method and system of network file:China,102420822[P].2012-04-28(in Chinese)
[5] David A.Security enhanced firmware update procedures in embedded systems[D].Link?ping:Link?ping University,2008
[6] Andrew C.Secure firmware update:US,2006143600[P].2006-07-06
[7] Ryozo K,Mariko K,Satoshi M,et al.A delta representation scheme for updating between versions of mobile phone software[J].Electronics and Communications in Japan,2007,90(7):26-37
[8]王廣輝.嵌入式固件遠程升級技術(shù)的研究與實現(xiàn)[D].成都:電子科技大學(xué),2011 Wang Guanghui.Design and implementation of remote upgrades based on embedded device[D].Chengdu:University of Electronic Science and Technology of China,2011(in Chinese)
[9]張紹蘭.幾類密碼Hash函數(shù)的設(shè)計與安全性分析[D].北京:北京郵電大學(xué),2011 Zhang Shaolan.Design and security analysis on several cryptography hash functions[D].Beijing:Beijing University of Posts and Telecommunications,2011(in Chinese)
[10]梁杰.MD5-Hash函數(shù)的安全性分析[D].上海:上海交通大學(xué),2007 Liang Jie.Security analysis of Hash function MD5[D].Shanghai:Shanghai Jiao Tong University,2007(in Chinese)
[11] Putri Ratna A A,Dewi Purnamasari P,Shaugi A,et al.Analysis and comparison of MD5 and SHA-1 algorithm implementation in simple-O authentication based security system[C]//2013 International Conference on Quality in Research,QiR 2013-In Conjunction with ICCS 2013:The 2nd International Conference on Civic Space.Washington,D C:IEEE Computer Society,2013:99-104
[12] J?rvinen K,Tommiska M,Skytt? J.Hardware implementation analysis of the MD5 hash algorithm[C]//Proceedings of the Annual Hawaii International Conference on System Sciences.Washington,D C:IEEE Computer Society,2005:298
[13] Ramesh A,Suruliandi A.Performance analysis of encryption algorithms for information security[C]//Proceedings of IEEE International Conference on Circuit,Power and Computing Technologies,ICCPCT 2013.Washington,D C:IEEE Computer Society,2013:840-844
[14] Stallings W,Brown L.Computer security principles and practice[M].2nd ed.Upper Saddle River,New Jersey:Prentice Hall,2011:71-101
[15] Wu X H,Zhou Y P.Analysis of data encryption algorithm based on WEB[C]//ICCET 2010-2010 International Conference on Computer Engineering and Technology,Proceedings.Piscataway,NJ:IEEE Computer Society,2010,7:673-677