一種智能顯示終端固件升級(jí)方法
【專利摘要】本發(fā)明提供了一種智能顯示終端固件升級(jí)方法,該方法包括:設(shè)置兩個(gè)加載程序,根據(jù)終端當(dāng)前狀態(tài)利用不同的加載程序進(jìn)行引導(dǎo)和啟動(dòng);對(duì)升級(jí)文件進(jìn)行完整性校驗(yàn);對(duì)升級(jí)文件添加數(shù)字簽名;選擇通過自動(dòng)升級(jí)或手動(dòng)升級(jí)之一來(lái)完成更新。本發(fā)明降低了智能顯示終端故障率,保證了升級(jí)文件的正確性和升級(jí)的安全性。
【專利說明】一種智能顯示終端固件升級(jí)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及程序升級(jí),特別涉及一種智能顯示終端的更新方法。
【背景技術(shù)】
[0002]隨著智能系統(tǒng)的廣泛應(yīng)用,數(shù)字電視技術(shù)的日新月異,基于智能系統(tǒng)的數(shù)字電視智能顯示終端應(yīng)運(yùn)而生。作為一種新興的智能終端設(shè)備,固件在其中扮演了非常重要的角色。由于智能顯示終端的功能不斷拓展,內(nèi)部的固件及加載程序本身的不斷更新,智能顯示終端能夠進(jìn)行固件升級(jí)的需求也變得日益迫切。目前,智能顯示終端加載程序模塊多基于Linux平臺(tái),基于智能平臺(tái)的較少,而且還存在很大的弊端。當(dāng)加載程序出現(xiàn)BUG或與前端設(shè)備不匹配時(shí),必須通過加載程序模塊的自身升級(jí)進(jìn)行修復(fù),然而加載程序在進(jìn)行自身升級(jí)時(shí),一旦發(fā)生意外將導(dǎo)致安裝失敗,加載程序便不能正常運(yùn)行,用戶便無(wú)法固件升級(jí)。
[0003]因此,針對(duì)相關(guān)技術(shù)中所存在的上述問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0004]為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種智能顯示終端固件升級(jí)方法,基于智能平臺(tái),有效完成應(yīng)用程序以及固件自身升級(jí)加載,包括:
[0005]設(shè)置兩個(gè)加載程序,根據(jù)終端當(dāng)前狀態(tài)利用不同的加載程序進(jìn)行引導(dǎo)和啟動(dòng);對(duì)升級(jí)文件進(jìn)行完整性校驗(yàn);對(duì)升級(jí)文件添加數(shù)字簽名;選擇通過自動(dòng)升級(jí)或手動(dòng)升級(jí)之一來(lái)完成更新。
[0006]優(yōu)選地,所述設(shè)置兩個(gè)加載程序,包括設(shè)置主加載程序和備份加載程序,除了與開機(jī)引導(dǎo)程序、應(yīng)用程序同在系統(tǒng)應(yīng)用分區(qū)中的主加載程序外,SD卡分區(qū)中還存儲(chǔ)了備份加載程序安裝包,在所述終端重啟后引導(dǎo)程序檢測(cè)主加載程序損壞時(shí),調(diào)用安裝SD卡分區(qū)的備份加載程序安裝包進(jìn)行同步過程,即安裝SD卡中的備份加載程序替換損壞的主加載程序,并在加載程序完成自身升級(jí)后,利用新升級(jí)的加載程序安裝包替換原來(lái)的備份加載程序安裝包,以使備份加載程序隨著主加載程序的更新而更新;
[0007]所述升級(jí)數(shù)據(jù)包是由一個(gè)或多個(gè)PES包組合而成,在每個(gè)PES包中均包括MD5校驗(yàn)碼,并且所述完整性校驗(yàn)還包括:
[0008]對(duì)升級(jí)文件進(jìn)行雙重MD5校驗(yàn),以確保升級(jí)文件完整;
[0009]將經(jīng)過MD5算法處理后的升級(jí)文件發(fā)送到終端,終端加載程序模塊下載時(shí)首先對(duì)每個(gè)PES包進(jìn)行校驗(yàn),對(duì)校驗(yàn)通過的PES包保存有效載荷區(qū),并舍棄未通過的PES包,重復(fù)上述過程直至所有升級(jí)文件下載完成;
[0010]在下載完成后,再對(duì)緩存區(qū)的待升級(jí)文件進(jìn)行MD5校驗(yàn),若校驗(yàn)通過,則繼續(xù)升級(jí)過程,否則停止升級(jí)過程。
[0011]優(yōu)選地,所述方法利用安全更新協(xié)議來(lái)保證顯示終端遠(yuǎn)程更新的安全性,所述安全更新協(xié)議使顯示終端對(duì)更新信息的來(lái)源進(jìn)行合法性驗(yàn)證,防止攻擊者冒充服務(wù)器發(fā)起更新;并且服務(wù)器對(duì)終端進(jìn)行認(rèn)證,對(duì)傳輸?shù)母滦畔⒗妹艽a算法進(jìn)行完整性保護(hù),在檢測(cè)數(shù)據(jù)的誤碼或篡改時(shí)拒絕更新;
[0012]在初始狀態(tài)下,每臺(tái)顯示終端在生產(chǎn)時(shí)均保存自身的唯一編碼,內(nèi)含偽隨機(jī)數(shù)產(chǎn)生器和散列運(yùn)算函數(shù),終端編碼至少為32字節(jié)長(zhǎng)度,編碼規(guī)則采用隨機(jī)序列,服務(wù)器存儲(chǔ)所有終端的編號(hào)以及部署位置;
[0013]更新協(xié)議按照消息傳遞的順序的步驟如下:
[0014]步驟1:服務(wù)器生成一個(gè)偽隨機(jī)數(shù)Rg,向顯示終端發(fā)送認(rèn)證請(qǐng)求,同時(shí)將隨機(jī)數(shù)Rg發(fā)送給顯示終端;
[0015]步驟2:顯示終端生成一個(gè)偽隨機(jī)數(shù)Rd,計(jì)算Res = h(h(No) ? Rg ? Rd),其中h為散列函數(shù),其中No為終端的唯一編碼,顯示終端將Res發(fā)送到服務(wù)器;服務(wù)器接收到Res后,在相應(yīng)的后臺(tái)數(shù)據(jù)庫(kù)中查找是否存在某個(gè)終端編碼Noj (I ( j Sn),使得h(h (Noj) ? Rg ? Rd) = h (h (No) ? Rg ? Rd)成立;若找到這樣的Noj,則通過對(duì)該終端的認(rèn)證,并計(jì)算Rep = h(h (No) ? Rd),發(fā)送給終端;若找不到這樣的Noj,則認(rèn)證過程終止;
[0016]步驟3:服務(wù)器將Rep = h(h(No) ? Rd)發(fā)送給終端后,終端驗(yàn)證h(h(Noj) ? Rd)= h(h(No) ? Rd)是否成立;若兩式相等,則終端對(duì)服務(wù)器的認(rèn)證通過,準(zhǔn)備接收新版本固件,否則返回拒絕更新的消息;
[0017]步驟4:根據(jù)新版本固件和終端唯一編碼計(jì)算新版本固件散列值SW,將升級(jí)包和該散列值SW—并發(fā)送給終端;終端收到后驗(yàn)證h(SW Il h(No) Il Rd)) =h(Sff Il h (Noj) II Rd))是否成立;若相等,則表明固件未經(jīng)過篡改和誤碼,開始擦除原有固件,寫入新固件;否則拒絕更新發(fā)送告警信息。
[0018]優(yōu)選地,所述程序更新進(jìn)一步包括:
[0019]加載程序負(fù)責(zé)應(yīng)用程序的啟動(dòng)和更新,應(yīng)用程序?qū)崿F(xiàn)監(jiān)控功能,;當(dāng)CPU復(fù)位時(shí),加載程序開始運(yùn)行,在對(duì)寄存器和外圍設(shè)備初始化后,向服務(wù)器詢問是否有升級(jí)程序,若有則開始升級(jí)處理,若沒有則跳轉(zhuǎn)到應(yīng)用程序執(zhí)行;在應(yīng)用程序執(zhí)行時(shí),若接收到服務(wù)器的升級(jí)命令,停止監(jiān)控處理,軟復(fù)位終端,由加載程序進(jìn)行升級(jí),加載程序的地址空間分配為0-0x4000,共16K,應(yīng)用程序的地址空間分配為0x4000-0xffff,共48K,分別編譯鏈接,終端出廠時(shí)加載程序通過ISP方式燒寫到SD卡中的相應(yīng)地址,應(yīng)用程序由加載程序燒寫到相應(yīng)地址,應(yīng)用程序分包發(fā)送,終端將接收到的固件暫時(shí)保存到外部RAM中,全部接收并校驗(yàn)通過后進(jìn)行SD卡的擦除和燒寫。
[0020]本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
[0021]本發(fā)明的程序升級(jí)方法降低了智能顯示終端故障率,保證了升級(jí)文件的正確性和升級(jí)的安全性,也實(shí)現(xiàn)了生產(chǎn)商和運(yùn)營(yíng)商對(duì)固件升級(jí)的管控,確保升級(jí)固件的合法性和雙方相互認(rèn)證以及完整性保護(hù)。
【專利附圖】
【附圖說明】
[0022]圖1是根據(jù)本發(fā)明實(shí)施例的智能顯示終端固件升級(jí)方法的流程圖。
【具體實(shí)施方式】
[0023]下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無(wú)這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實(shí)現(xiàn)本發(fā)明。
[0024]本發(fā)明的一方面提供了一種智能顯示終端固件升級(jí)方法。圖1是根據(jù)本發(fā)明實(shí)施例的智能顯示終端固件升級(jí)方法流程圖。
[0025]加載程序是智能顯示終端固件升級(jí)的功能模塊,也是其核心模塊,加載程序模塊對(duì)于智能顯示終端的正常工作和后續(xù)固件的升級(jí)起著至關(guān)重要的作用。本發(fā)明設(shè)計(jì)的加載程序在運(yùn)行模式上,采用兩個(gè)加載程序運(yùn)行模式;在升級(jí)文件完整性校驗(yàn)上,采用MD5算法校驗(yàn);而在安全性上,結(jié)合信息摘要算法與RSA算法,對(duì)升級(jí)文件添加數(shù)字簽名。
[0026]為了確保加載程序的可用性,保證用戶能及時(shí)地進(jìn)行固件更新,本發(fā)明引入兩個(gè)加載程序運(yùn)行模式,即除了與開機(jī)引導(dǎo)程序、應(yīng)用程序同在系統(tǒng)應(yīng)用分區(qū)中的主加載程序夕卜,SD卡分區(qū)中也存儲(chǔ)了一份備份加載程序安裝包。若因意外導(dǎo)致升級(jí)失敗或加載程序損壞,智能顯示終端重啟后,引導(dǎo)程序檢測(cè)到主加載程序損壞便調(diào)用安裝SD卡分區(qū)的備份加載程序安裝包進(jìn)行同步過程,即安裝SD卡中的備份加載程序替換損壞的主加載程序,使智能顯示終端能重新具有升級(jí)功能。而在加載程序完成自身升級(jí)后,要用新升級(jí)的加載程序安裝包替換原來(lái)的備份加載程序安裝包,以保證備份加載程序隨著主加載程序的更新而更新。
[0027]升級(jí)數(shù)據(jù)包是由一個(gè)或多個(gè)PES包組合而成,由于數(shù)據(jù)的完整性十分重要,運(yùn)營(yíng)商在前端發(fā)送升級(jí)數(shù)據(jù)包時(shí)在每個(gè)PES包中均增加了 MD5校驗(yàn)碼。然而,單一的MD5校驗(yàn)并不能完全可靠地驗(yàn)證數(shù)據(jù)的完整性,升級(jí)文件在傳輸?shù)倪^程可能會(huì)出現(xiàn)部分丟失或損壞的現(xiàn)象,造成文件傳輸不完整,因此,為了增加校驗(yàn)的可靠性,本發(fā)明在原有的基礎(chǔ)上再增加了一次MD5校驗(yàn),即對(duì)升級(jí)文件進(jìn)行雙重MD5校驗(yàn),以確保升級(jí)文件完整。
[0028]MD5校驗(yàn),是數(shù)據(jù)通信領(lǐng)域中的一種差錯(cuò)校驗(yàn)碼,實(shí)現(xiàn)簡(jiǎn)單,檢錯(cuò)能力強(qiáng),運(yùn)行時(shí)間短。經(jīng)過MD5算法處理后的升級(jí)文件發(fā)送到用戶終端,用戶終端加載程序模塊下載時(shí)首先對(duì)每個(gè)PES包進(jìn)行校驗(yàn),校驗(yàn)通過的PES包保存有效載荷區(qū),未通過的舍棄,重復(fù)上述過程,直至所有升級(jí)文件下載完成為止。下載完成后再對(duì)緩存區(qū)的待升級(jí)文件進(jìn)行MD5校驗(yàn),若校驗(yàn)通過,則繼續(xù)升級(jí)過程,反之則停止升級(jí)過程。
[0029]為了讓本品牌的顯示終端只下載屬于自身型號(hào)對(duì)應(yīng)的固件,拒絕非法固件的安裝,本發(fā)明采用基于簽名的權(quán)限檢查機(jī)制,結(jié)合信息摘要算法(散列算法)與數(shù)字簽名技術(shù)對(duì)升級(jí)數(shù)據(jù)包進(jìn)行加解密處理,讓智能顯示終端以更安全的方式進(jìn)行固件更新。
[0030]RSA加密算法適合處理小數(shù)據(jù)量的信息。對(duì)于大數(shù)據(jù)文件,本發(fā)明結(jié)合信息摘要算法只對(duì)其信息摘要進(jìn)行加密,然后將加密的摘要與待升級(jí)的原文件一起發(fā)送到用戶終端。用戶終端加載程序模塊接收完升級(jí)包后,首先利用固化在智能顯示終端中的運(yùn)營(yíng)商公鑰(OPK)對(duì)加密的提供商私鑰(PSK)進(jìn)行解密,然后用解密后的私鑰(PSK)解密發(fā)送方加密的摘要文件,得到發(fā)送方升級(jí)文件的摘要,最后將下載的升級(jí)文件通過散列算法生成接收方摘要,由于接收方摘要和發(fā)送方摘要是由相同的方法得到的,若兩者相同,則繼續(xù)升級(jí)過程,否則停止升級(jí)過程。
[0031]智能操作系統(tǒng)擁有開放的開發(fā)平臺(tái),可幫助運(yùn)營(yíng)商便捷地完成系統(tǒng)的修改和二次開發(fā),當(dāng)某一程序經(jīng)過完善再次投入使用時(shí)需要通過智能顯示終端加載程序模塊進(jìn)行固件更新。固件更新通過自動(dòng)升級(jí)或手動(dòng)強(qiáng)制升級(jí)來(lái)完成。
[0032]其中,自動(dòng)升級(jí)是指由運(yùn)營(yíng)商前端統(tǒng)一播發(fā)升級(jí)數(shù)據(jù)流,通過網(wǎng)絡(luò)信息表(NIT)中的描述符中相關(guān)內(nèi)容的變化觸發(fā)升級(jí)。根據(jù)NIT表檢索機(jī)制,當(dāng)智能顯示終端主程檢測(cè)到智能顯示終端序列號(hào)在NIT表規(guī)定的范圍內(nèi)時(shí),且兩者硬件版本相等,描述符中固件版本高于智能顯示終端中版本時(shí),先將前端升級(jí)碼流的信道參數(shù)(下載頻率、符號(hào)率、解調(diào)參數(shù)等)與一些狀態(tài)變量存儲(chǔ)后,再引導(dǎo)智能顯示終端重啟進(jìn)入加載程序。加載程序根據(jù)存儲(chǔ)的升級(jí)參數(shù)下載升級(jí)數(shù)據(jù)包進(jìn)行升級(jí)過程。升級(jí)完成后,若是加載程序自身的升級(jí),則需更新SD卡分區(qū)中備份加載程序安裝包。當(dāng)自動(dòng)升級(jí)失敗次數(shù)超過2次,需手動(dòng)升級(jí)來(lái)實(shí)現(xiàn)固件的更新。
[0033]另一方面,手動(dòng)升級(jí)是指用戶在智能顯示終端開啟時(shí)通過手動(dòng)操作強(qiáng)制進(jìn)入加載程序更新協(xié)議。此時(shí),升級(jí)參數(shù)是由用戶手動(dòng)設(shè)置而非前端碼流中的參數(shù)。若用戶設(shè)置下載方式為主動(dòng)下載,則加載程序根據(jù)用戶設(shè)置的參數(shù)下載升級(jí)數(shù)據(jù)包進(jìn)行更新協(xié)議;反之,則需要檢測(cè)NIT表,并根據(jù)NIT表中信道參數(shù)下載升級(jí)文件進(jìn)行更新協(xié)議。
[0034]根據(jù)本發(fā)明的另一方面,網(wǎng)絡(luò)的開放性使得更新過程容易遭到各種安全攻擊。例如,在更新信息的傳輸過程中,攻擊者可截獲并篡改固件信息,重新計(jì)算校驗(yàn)和,并將篡改后的更新信息發(fā)送至顯示終端,或者直接偽造更新信息發(fā)送至顯示終端,而顯示終端通過更新接口接收到篡改或偽造的升級(jí)信息后,不進(jìn)行任何合法性認(rèn)證即直接對(duì)其內(nèi)部固件進(jìn)行升級(jí),從而使得該設(shè)備被攻擊者利用或破壞。
[0035]為保證顯示終端遠(yuǎn)程更新的安全性,安全更新協(xié)議設(shè)計(jì)要滿足相互可認(rèn)證性,顯示終端要能對(duì)更新信息的來(lái)源進(jìn)行合法性驗(yàn)證,防止攻擊者冒充服務(wù)器發(fā)起更新;服務(wù)器要能對(duì)設(shè)備進(jìn)行認(rèn)證,在設(shè)備已被控制的情況下告知服務(wù)器更新成功。并滿足完整性保護(hù):對(duì)傳輸?shù)母滦畔⒗妹艽a算法進(jìn)行完整性保護(hù),在數(shù)據(jù)遭到誤碼或篡改時(shí)能夠檢測(cè)到,并拒絕更新。
[0036]在初始狀態(tài)下,每臺(tái)顯示終端在生產(chǎn)時(shí)均保存自身的唯一編碼,內(nèi)含偽隨機(jī)數(shù)產(chǎn)生器和散列運(yùn)算函數(shù)。設(shè)備編碼應(yīng)至少32字節(jié)長(zhǎng)度,編碼規(guī)則采用隨機(jī)序列。服務(wù)器存儲(chǔ)著所有設(shè)備的編號(hào)以及部署位置等相關(guān)信息,能夠進(jìn)行復(fù)雜的運(yùn)算。
[0037]按照消息傳遞的順序,更新協(xié)議的主要步驟如下:
[0038]步驟1:服務(wù)器生成一個(gè)偽隨機(jī)數(shù)Rg,向顯示終端發(fā)送認(rèn)證請(qǐng)求,同時(shí)將隨機(jī)數(shù)Rg發(fā)送給顯示終端。
[0039]步驟2:顯示終端生成一個(gè)偽隨機(jī)數(shù)Rd,計(jì)算Res = h(h (No) ? Rg ? Rd),其中h為散列函數(shù),其中No為終端的唯一編碼,顯示終端將Res發(fā)送到服務(wù)器,(?為異或運(yùn)算符)。服務(wù)器接收到Res后,在相應(yīng)的后臺(tái)數(shù)據(jù)庫(kù)中查找是否存在某個(gè)設(shè)備編碼Noj (l^j ^n),使得h(h (Noj) ? Rg ? Rd) = h (h (No) ? Rg ? Rd)成立。若找到這樣的Noj,則通過對(duì)該終端的認(rèn)證,并計(jì)算Rep = h(h (No) ? Rd),發(fā)送給設(shè)備;若找不到這樣的Noj,則認(rèn)證過程終止。
[0040]步驟3:服務(wù)器將Rep = h (h (No) ? Rd)發(fā)送給設(shè)備后,設(shè)備驗(yàn)證h (h (No j) ? Rd)= h(h(No) ? Rd)是否成立。若兩式相等,則設(shè)備對(duì)服務(wù)器的認(rèn)證通過,準(zhǔn)備接收新版本固件,否則返回拒絕更新的消息。
[0041]步驟4:根據(jù)新版本固件和設(shè)備唯一編碼計(jì)算新版本固件散列值SW,將升級(jí)包和該散列值SW—并發(fā)送給終端。設(shè)備收到后驗(yàn)證h(SW Il h(No) Il Rd)) =h(Sff Il h (Noj) II Rd))是否成立。若相等,則表明固件未經(jīng)過篡改和誤碼,開始擦除原有固件,寫入新固件;否則拒絕更新發(fā)送告警信息。
[0042]以下是與安全更新過程相關(guān)的部分的體系結(jié)構(gòu)的實(shí)現(xiàn)。包括:
[0043]CPU中程序分為兩部分:加載程序和應(yīng)用程序,加載程序負(fù)責(zé)應(yīng)用程序的啟動(dòng)和更新,應(yīng)用程序?qū)崿F(xiàn)監(jiān)控功能,本發(fā)明的安全協(xié)議在加載程序中實(shí)現(xiàn)。當(dāng)CPU復(fù)位時(shí),加載程序開始運(yùn)行,在對(duì)寄存器和外圍設(shè)備初始化后,向服務(wù)器詢問是否有升級(jí)程序,若有則開始升級(jí)處理,若沒有則跳轉(zhuǎn)到應(yīng)用程序執(zhí)行。在應(yīng)用程序執(zhí)行時(shí),若接收到服務(wù)器的升級(jí)命令時(shí),停止監(jiān)控處理,軟復(fù)位設(shè)備,由加載程序進(jìn)行升級(jí)。加載程序的地址空間分配為0-0x4000,共16K,應(yīng)用程序的地址空間分配為0x4000-0xffff,共48K,分別編譯鏈接。設(shè)備出廠時(shí)加載程序通過ISP方式燒寫到SD卡中的相應(yīng)地址,應(yīng)用程序由加載程序燒寫到相應(yīng)地址。
[0044]本發(fā)明選用線性疊加偽隨機(jī)數(shù)的產(chǎn)生方法,該方法的計(jì)算公式為:種子=AX種子+C,此公式在幾何圖中表示一條直線,而且新種子由舊種子反復(fù)相加得來(lái)。在常數(shù)的選擇上,A選擇1634529,C選擇1,可以獲得較好的隨機(jī)性。該設(shè)備采用了定時(shí)器輸出和A/D轉(zhuǎn)換器輸出相異或的值作為隨機(jī)數(shù)的第一個(gè)種子。
[0045]本發(fā)明選用SHA-256算法作為散列函數(shù),該算法有常見的C語(yǔ)言版本,移植較為容易。
[0046]該設(shè)備完全按照上文的安全協(xié)議實(shí)現(xiàn)。需要注意的是,在安全性更新的第4步,由于嵌入式協(xié)議棧不能緩存較多數(shù)據(jù),應(yīng)用程序要分包發(fā)送,設(shè)備需要將接收到的固件暫時(shí)保存到外部RAM中,全部接收并校驗(yàn)通過后才可進(jìn)行SD卡擦除和燒寫。
[0047]綜上所述,本發(fā)明提出的更新方法降低了智能顯示終端故障率,雙重加密技術(shù)的采用保證了升級(jí)文件的正確性和升級(jí)的安全性,也實(shí)現(xiàn)了生產(chǎn)商和運(yùn)營(yíng)商對(duì)固件升級(jí)的管控,確保升級(jí)固件的合法性和雙方相互認(rèn)證以及完整性保護(hù),為智能顯示終端生產(chǎn)商和運(yùn)營(yíng)商提供了一種優(yōu)良的固件升級(jí)方案。
[0048]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算系統(tǒng)來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算系統(tǒng)上,或者分布在多個(gè)計(jì)算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算系統(tǒng)可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)系統(tǒng)中由計(jì)算系統(tǒng)來(lái)執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和固件結(jié)合。
[0049]應(yīng)當(dāng)理解的是,本發(fā)明的上述【具體實(shí)施方式】?jī)H僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對(duì)本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。
【權(quán)利要求】
1.一種智能顯示終端固件升級(jí)方法,其特征在于,包括: 設(shè)置兩個(gè)加載程序,根據(jù)終端當(dāng)前狀態(tài)利用不同的加載程序進(jìn)行引導(dǎo)和啟動(dòng);對(duì)固件升級(jí)文件進(jìn)行完整性校驗(yàn)并對(duì)固件升級(jí)文件添加數(shù)字簽名;選擇通過自動(dòng)升級(jí)或手動(dòng)升級(jí)之一來(lái)完成固件更新。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)置兩個(gè)加載程序,包括設(shè)置主加載程序和備份加載程序,除了與開機(jī)引導(dǎo)程序、應(yīng)用程序同在系統(tǒng)應(yīng)用分區(qū)中的主加載程序夕卜,SD卡分區(qū)中還存儲(chǔ)了備份加載程序安裝包,在所述終端重啟后引導(dǎo)程序檢測(cè)主加載程序損壞時(shí),調(diào)用安裝SD卡分區(qū)的備份加載程序安裝包進(jìn)行同步過程,即安裝SD卡中的備份加載程序替換損壞的主加載程序,并在加載程序完成自身升級(jí)后,利用新升級(jí)的加載程序安裝包替換原來(lái)的備份加載程序安裝包,以使備份加載程序隨著主加載程序的更新而更新; 所述固件升級(jí)數(shù)據(jù)包是由一個(gè)或多個(gè)PES包組合而成,在每個(gè)PES包中均包括MD5校驗(yàn)碼,并且所述完整性校驗(yàn)還包括: 對(duì)固件升級(jí)文件進(jìn)行雙重MD5校驗(yàn),以確保固件升級(jí)文件完整; 將經(jīng)過MD5算法處理后的固件升級(jí)文件發(fā)送到終端,終端加載程序模塊下載時(shí)首先對(duì)每個(gè)PES包進(jìn)行校驗(yàn),對(duì)校驗(yàn)通過的PES包保存有效載荷區(qū),并舍棄未通過的PES包,重復(fù)上述過程直至所有升級(jí)文件下載完成; 在下載完成后,再對(duì)緩存區(qū)的待升級(jí)文件進(jìn)行MD5校驗(yàn),若校驗(yàn)通過,則繼續(xù)固件升級(jí)過程,否則停止升級(jí)過程。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法利用安全更新協(xié)議來(lái)保證顯示終端遠(yuǎn)程更新的安全性,所述安全更新協(xié)議使顯示終端對(duì)更新信息的來(lái)源進(jìn)行合法性驗(yàn)證,防止攻擊者冒充服務(wù)器發(fā)起更新;并且服務(wù)器對(duì)終端進(jìn)行認(rèn)證,對(duì)傳輸?shù)母滦畔⒗妹艽a算法進(jìn)行完整性保護(hù),在檢測(cè)數(shù)據(jù)的誤碼或篡改時(shí)拒絕更新; 在初始狀態(tài)下,每臺(tái)顯示終端在生產(chǎn)時(shí)均保存自身的唯一編碼,內(nèi)含偽隨機(jī)數(shù)產(chǎn)生器和散列運(yùn)算函數(shù),終端編碼至少為32字節(jié)長(zhǎng)度,編碼規(guī)則采用隨機(jī)序列,服務(wù)器存儲(chǔ)所有終端的編號(hào)以及部署位置; 更新協(xié)議按照消息傳遞的順序的步驟如下: 步驟1:服務(wù)器生成一個(gè)偽隨機(jī)數(shù)Rg,向顯示終端發(fā)送認(rèn)證請(qǐng)求,同時(shí)將隨機(jī)數(shù)Rg發(fā)送給顯示終端; 步驟2:顯示終端生成一個(gè)偽隨機(jī)數(shù)Rd,計(jì)算Res = h(h(No) ? Rg ? Rd),其中h為散列函數(shù),其中No為終端的唯一編碼,顯示終端將Res發(fā)送到服務(wù)器;服務(wù)器接收到Res后,在相應(yīng)的后臺(tái)數(shù)據(jù)庫(kù)中查找是否存在某個(gè)終端編碼Noj(l ( j <n),使得h(h (Noj) ? Rg ? Rd) = h (h (No) ? Rg ? Rd)成立;若找到這樣的Noj,則通過對(duì)該終端的認(rèn)證,并計(jì)算Rep = h(h (No) ? Rd),發(fā)送給終端;若找不到這樣的Noj,則認(rèn)證過程終止; 步驟3:服務(wù)器將Rep = h (h (No) ? Rd)發(fā)送給終端后,終端驗(yàn)證h (h (No j) ? Rd)=h(h(No) ? Rd)是否成立;若兩式相等,則終端對(duì)服務(wù)器的認(rèn)證通過,準(zhǔn)備接收新版本固件,否則返回拒絕更新的消息; 步驟4:根據(jù)新版本固件和終端唯一編碼計(jì)算新版本固件散列值SW,將固件升級(jí)包和該散列值SW—并發(fā)送給終端;終端收到后驗(yàn)證h(SW Il h(No) Il Rd)) =h(Sff Il h (Noj) II Rd))是否成立;若相等,則表明固件未經(jīng)過篡改和誤碼,開始擦除原有固件,寫入新固件;否則拒絕更新發(fā)送告警信息。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述顯示終端遠(yuǎn)程更新進(jìn)一步包括: 加載程序負(fù)責(zé)應(yīng)用程序的啟動(dòng)和更新,應(yīng)用程序?qū)崿F(xiàn)監(jiān)控功能,;當(dāng)CPU復(fù)位時(shí),力口載程序開始運(yùn)行,在對(duì)寄存器和外圍設(shè)備初始化后,向服務(wù)器詢問是否有升級(jí)程序,若有則開始升級(jí)處理,若沒有則跳轉(zhuǎn)到應(yīng)用程序執(zhí)行;在應(yīng)用程序執(zhí)行時(shí),若接收到服務(wù)器的升級(jí)命令,停止監(jiān)控處理,軟復(fù)位終端,由加載程序進(jìn)行升級(jí),加載程序的地址空間分配為0-0x4000,共16K,應(yīng)用程序的地址空間分配為0x4000-0xffff,共48K,分別編譯鏈接,終端出廠時(shí)加載程序通過ISP方式燒寫到SD卡中的相應(yīng)地址,應(yīng)用程序由加載程序燒寫到相應(yīng)地址,應(yīng)用程序分包發(fā)送,終端將接收到的固件暫時(shí)保存到外部RAM中,全部接收并校驗(yàn)通過后進(jìn)行SD卡的擦除和燒寫。
【文檔編號(hào)】H04L9/32GK104166565SQ201410393291
【公開日】2014年11月26日 申請(qǐng)日期:2014年8月11日 優(yōu)先權(quán)日:2014年8月11日
【發(fā)明者】高冬 申請(qǐng)人:成都瑞博慧窗信息技術(shù)有限公司