專利名稱:一種軟件在線升級方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件升級方法,特別是涉及一種軟件在線安全保密的升級方法。
背景技術(shù):
目前,隨著網(wǎng)絡(luò)應(yīng)用的普及以及軟件復(fù)雜度的提高,越來越多的產(chǎn)品提供軟件在 線升級功能,例如手機、網(wǎng)絡(luò)電視、機頂盒、播放器等。通常的做法是產(chǎn)品的軟件系統(tǒng)連接 到網(wǎng)絡(luò)服務(wù)器,下載軟件并完成升級。這種方法簡單實用,但隨著網(wǎng)絡(luò)環(huán)境的日益復(fù)雜,需 要考慮下面幾個方面的隱患第一、軟件在網(wǎng)絡(luò)中傳輸時,可能會有部分數(shù)據(jù)發(fā)生錯誤;第 二、黑客的惡意攻擊,篡改網(wǎng)絡(luò)服務(wù)器上的軟件文件;第三、路由被人為干預(yù),使產(chǎn)品的軟件 系統(tǒng)鏈接到錯誤的服務(wù)器,下載到錯誤的軟件。如果不建立一種軟件在線升級的安全機制, 而是直接下載軟件和直接升級,在發(fā)生上述情況時,可能會導(dǎo)致軟件系統(tǒng)崩潰而使產(chǎn)品無 法正常使用,或者是軟件中被惡意的植入一些功能部件。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種軟件在線升級方法,通過在網(wǎng) 絡(luò)服務(wù)器和產(chǎn)品軟件系統(tǒng)這兩端建立相關(guān)聯(lián)的校驗和加密機制,可以識別軟件的完整性, 防止錯誤的或被篡改過的軟件升級到產(chǎn)品中。為了達到上述目的,本發(fā)明采用的技術(shù)方案是,一種軟件在線升級方法,步驟如 下步驟1、使用RSA算法,生成一對公鑰和私鑰;步驟2、將公鑰放置在網(wǎng)絡(luò)服務(wù)器端,私鑰放置在產(chǎn)品的軟件系統(tǒng)中;步驟3、在網(wǎng)絡(luò)服務(wù)器端進行以下設(shè)置,步驟3. 1、使用SHAl數(shù)據(jù)摘要算法對軟件文件進行運算,生成20字節(jié)的數(shù)據(jù)摘 要;步驟3. 2、使用RSA數(shù)據(jù)加密算法,用公鑰對20字節(jié)數(shù)據(jù)摘要進行加密,并將加密 后的數(shù)據(jù)存放在一個單獨的文件中;步驟3. 3、將軟件文件和對應(yīng)的加密文件放置到網(wǎng)絡(luò)服務(wù)器上;步驟4、在產(chǎn)品端,當需要升級軟件時,步驟4. 1、產(chǎn)品端系統(tǒng)連接到網(wǎng)絡(luò)服務(wù)器,下載軟件文件和對應(yīng)的加密文件;步驟4. 2、使用RSA數(shù)據(jù)加密算法,用私鑰對下載的加密文件進行解密,得到20字 節(jié)的數(shù)據(jù)摘要A ;步驟4. 3、使用SHAl數(shù)據(jù)摘要算法,對下載的軟件文件進行運算,得到20字節(jié)的數(shù) 據(jù)摘要B ;步驟4. 4、比較數(shù)據(jù)摘要A和數(shù)據(jù)摘要B,相同則認為軟件文件是完整和安全的,可 以用來升級,否則認為軟件文件有誤,放棄升級;步驟5、程序結(jié)束。
本發(fā)明所指的網(wǎng)絡(luò)為因特網(wǎng)、3G網(wǎng)絡(luò)、GPRS等網(wǎng)絡(luò)應(yīng)用環(huán)境。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是利用RSA數(shù)據(jù)加密算法和SHAl數(shù)據(jù)摘 要算法分別對網(wǎng)絡(luò)服務(wù)器端和產(chǎn)品端進行加密和解密的設(shè)置,通過對比一致后方可下載升 級,在網(wǎng)絡(luò)服務(wù)器和產(chǎn)品軟件系統(tǒng)這兩端建立相關(guān)聯(lián)的校驗和加密機制,做到正確識別軟 件的完整性,防止錯誤的或被篡改過的軟件升級到產(chǎn)品中,使得產(chǎn)品端安全升級軟件。
圖1為本發(fā)明的軟件程序流程圖。
具體實施例方式本發(fā)明的主旨在于克服現(xiàn)有技術(shù)的不足,提供一種軟件在線升級方法,在網(wǎng)絡(luò)服 務(wù)器和產(chǎn)品軟件系統(tǒng)這兩端建立相關(guān)聯(lián)的校驗和加密機制,做到正確識別軟件的完整性, 防止錯誤的或被篡改過的軟件升級到產(chǎn)品中,使得產(chǎn)品端安全升級軟件。該軟件在線升級方法利用RSA加密算法的非對稱性對升級軟件進行加密,生成一 對密鑰,即公鑰和私鑰,將公鑰放置在網(wǎng)絡(luò)服務(wù)器端,私鑰放置在產(chǎn)品的軟件系統(tǒng)中,公鑰 用來加密,在產(chǎn)品升級時,用私鑰來解密。RSA算法基于一個十分簡單的數(shù)論事實,將兩個素 數(shù)相乘,將乘積公開作為加密密鑰,在解密時對其乘積進行因數(shù)分解,但兩個素數(shù)相乘比較 容易,而對其乘積進行因數(shù)分解卻極其困難。在加密和解密的過程中,使用到了安全散列算法SHA(英文kcure Hash Algorithm 的縮寫),SHAO、SHAl、SHA224、SHA256、SHA384 及 SHA512 為 SHA 的一系列密碼 散列函數(shù)。對于長度小于2~64位的數(shù)據(jù),數(shù)據(jù)摘要算法SHAl會產(chǎn)生一個20字節(jié)的數(shù)據(jù)摘 要。當接收到數(shù)據(jù)的時候,這個20字節(jié)的數(shù)據(jù)摘要可以用來驗證數(shù)據(jù)的完整性。在傳輸?shù)?過程中,數(shù)據(jù)可能會發(fā)生變化,可能會產(chǎn)生不同的數(shù)據(jù)摘要。使用SHAl有如下好處不能從 數(shù)據(jù)摘要中復(fù)原數(shù)據(jù);兩個不同的數(shù)據(jù)不會產(chǎn)生同樣的數(shù)據(jù)摘要。這樣就保證了在升級軟 件的時候做到安全保密。下面結(jié)合實施例參照附圖進行詳細說明,以便對本發(fā)明的技術(shù)特征及優(yōu)點進行更 深入的詮釋。本發(fā)明的軟件流程圖如圖1所示,一種軟件在線升級方法,其步驟如下步驟1、使用RSA算法,生成一對公鑰和私鑰;步驟2、將公鑰放置在網(wǎng)絡(luò)服務(wù)器端,私鑰放置在產(chǎn)品的軟件系統(tǒng)中;步驟3、在網(wǎng)絡(luò)服務(wù)器端進行以下設(shè)置,步驟3. 1、使用SHAl數(shù)據(jù)摘要算法對軟件文件進行運算,生成20字節(jié)的數(shù)據(jù)摘 要;步驟3. 2、使用RSA數(shù)據(jù)加密算法,用公鑰對20字節(jié)數(shù)據(jù)摘要進行加密,并將加密 后的數(shù)據(jù)存放在一個單獨的文件中;步驟3. 3、將軟件文件和對應(yīng)的加密文件放置到網(wǎng)絡(luò)服務(wù)器上;步驟4、在產(chǎn)品端,當需要升級軟件時,步驟4. 1、產(chǎn)品端系統(tǒng)連接到網(wǎng)絡(luò)服務(wù)器,下載軟件文件和對應(yīng)的加密文件;步驟4. 2、使用RSA數(shù)據(jù)加密算法,用私鑰對下載的加密文件進行解密,得到20字節(jié)的數(shù)據(jù)摘要A ;步驟4. 3、使用SHAl數(shù)據(jù)摘要算法,對下載的軟件文件進行運算,得到20字節(jié)的數(shù) 據(jù)摘要B ;步驟4. 4、比較數(shù)據(jù)摘要A和數(shù)據(jù)摘要B,相同則認為軟件文件是完整和安全的,可 以用來升級,否則認為軟件文件有誤,放棄升級;步驟5、程序結(jié)束。本發(fā)明所指的網(wǎng)絡(luò)為因特網(wǎng)、3G網(wǎng)絡(luò)、GPRS等網(wǎng)絡(luò)應(yīng)用環(huán)境。本發(fā)明所指的數(shù) 據(jù)摘要算法,除了 SHA1,還有 CRC32、MD4、MD5、SHA256、SHA384、SHA512、RIPEMD, PANAMA、 TIGER、ADLER32等算法。本發(fā)明所指的數(shù)據(jù)加密算法,除了 RSA,還有DES、AES、DSA等算法。用戶的手機、網(wǎng)絡(luò)電視、機頂盒、播放器等電子產(chǎn)品需要升級時,只需用戶點擊軟 件系統(tǒng)的的在線升級后,則產(chǎn)品端系統(tǒng)自動連接至網(wǎng)絡(luò)服務(wù)器,下載軟件文件和對應(yīng)的加 密文件,然后利用產(chǎn)品端系統(tǒng)自帶的RSA數(shù)據(jù)加密算法功能,用私鑰對下載的加密文件進 行解密,得到20字節(jié)的數(shù)據(jù)摘要A,再使用SHAl數(shù)據(jù)摘要算法,對下載的軟件文件進行運 算,得到20字節(jié)的數(shù)據(jù)摘要B,最后比較數(shù)據(jù)摘要A和數(shù)據(jù)摘要B,相同則認為軟件文件是 完整和安全的,可以用來升級,否則認為軟件文件有誤,放棄升級。整個軟件在線升級過程 安全保密,并且自動完成,不需要用戶再次進行設(shè)置,使得用戶安全放心使用。
權(quán)利要求
1.一種軟件在線升級方法,步驟如下步驟1、使用RSA算法,生成一對公鑰和私鑰;步驟2、將公鑰放置在網(wǎng)絡(luò)服務(wù)器端,私鑰放置在產(chǎn)品的軟件系統(tǒng)中;步驟3、在網(wǎng)絡(luò)服務(wù)器端進行以下設(shè)置,步驟3. 1、使用SHAl數(shù)據(jù)摘要算法對軟件文件進行運算,生成20字節(jié)的數(shù)據(jù)摘要; 步驟3. 2、使用RSA數(shù)據(jù)加密算法,用公鑰對20字節(jié)數(shù)據(jù)摘要進行加密,并將加密后的 數(shù)據(jù)存放在一個單獨的文件中;步驟3. 3、將軟件文件和對應(yīng)的加密文件放置到網(wǎng)絡(luò)服務(wù)器上; 步驟4、在產(chǎn)品端,當需要升級軟件時,步驟4. 1、產(chǎn)品端系統(tǒng)連接到網(wǎng)絡(luò)服務(wù)器,下載軟件文件和對應(yīng)的加密文件; 步驟4. 2、使用RSA數(shù)據(jù)加密算法,用私鑰對下載的加密文件進行解密,得到20字節(jié)的 數(shù)據(jù)摘要A ;步驟4. 3、使用SHAl數(shù)據(jù)摘要算法,對下載的軟件文件進行運算,得到20字節(jié)的數(shù)據(jù)摘 要B;步驟4. 4、比較數(shù)據(jù)摘要A和數(shù)據(jù)摘要B,相同則認為軟件文件是完整和安全的,可以用 來升級,否則認為軟件文件有誤,放棄升級; 步驟5、程序結(jié)束。
2.根據(jù)權(quán)利要求1所述的軟件在線升級方法,其特征在于所述的網(wǎng)絡(luò)為因特網(wǎng)、3G網(wǎng) 絡(luò)、GPRS網(wǎng)絡(luò)。
全文摘要
一種軟件在線升級方法,利用RSA加密算法的非對稱性對升級軟件進行加密,生成一對公鑰和私鑰,將公鑰放置在網(wǎng)絡(luò)服務(wù)器端,私鑰放置在產(chǎn)品的軟件系統(tǒng)中,公鑰用來加密,私鑰用來解密。RSA將兩個素數(shù)相乘,并將乘積公開作為加密密鑰,在解密時對其乘積進行因數(shù)分解,但兩個素數(shù)相乘比較容易,而對其乘積進行因數(shù)分解卻極其困難。利用RSA數(shù)據(jù)加密算法和SHA1數(shù)據(jù)摘要算法分別對網(wǎng)絡(luò)服務(wù)器端和產(chǎn)品端進行加密和解密的設(shè)置,通過對比一致后方可下載升級,在網(wǎng)絡(luò)服務(wù)器和產(chǎn)品軟件系統(tǒng)這兩端建立相關(guān)聯(lián)的校驗和加密機制,做到正確識別軟件的完整性,防止錯誤的或被篡改過的軟件升級到產(chǎn)品中,使得產(chǎn)品端安全升級軟件。
文檔編號H04L9/30GK102082784SQ201010546559
公開日2011年6月1日 申請日期2010年11月11日 優(yōu)先權(quán)日2010年11月11日
發(fā)明者林尚波 申請人:廣東歐珀電子工業(yè)有限公司