專利名稱:一種通過共享密鑰實(shí)現(xiàn)遠(yuǎn)程升級(jí)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,尤其涉及通過共享密鑰對(duì)軟件保護(hù) 裝置的內(nèi)容進(jìn)行遠(yuǎn)程升級(jí)的方法。
背景技術(shù):
共享密鑰,指軟件開發(fā)商與其開發(fā)出的軟件保護(hù)裝置共享的一 對(duì)密鑰。軟件保護(hù)裝置,指對(duì)軟件進(jìn)行加密保護(hù)的硬件。例如,加密鎖。 遠(yuǎn)程升級(jí),指直接在用戶端更新軟件保護(hù)裝置的內(nèi)容。 模塊,指軟件保護(hù)裝置內(nèi)具有某 一 特定功能的內(nèi)容的集合。 硬件程序,指在軟件保護(hù)裝置內(nèi),提供底層控制功能的程序。傳統(tǒng)的對(duì)軟件保護(hù)裝置的內(nèi)容進(jìn)行升級(jí)方法是用戶將軟件保 護(hù)裝置返回到軟件開發(fā)商進(jìn)行升級(jí),再由軟件開發(fā)商返回給用戶, 由于需要實(shí)物傳遞,升級(jí)過程耗時(shí)比較長,影響用戶的正常使用, 同時(shí)也增加軟件開發(fā)商的管理成本。還有一種比較高速有效的升級(jí)方法是軟件開發(fā)商可以通過電 子郵件給用戶發(fā)送軟件保護(hù)裝置的升級(jí)包,或者由用戶到互聯(lián)網(wǎng)上 下載軟件保護(hù)裝置的升級(jí)包,手動(dòng)或者自動(dòng)地對(duì)軟件保護(hù)裝置進(jìn)行 升級(jí)。但是該方法中軟件開發(fā)商需要獲知用戶設(shè)備的特征信息以便針對(duì)不同用戶的軟件保護(hù)裝置生成不同的升級(jí)包,這增加了操作的 難度、軟件開發(fā)商的管理成本。發(fā)明內(nèi)容本發(fā)明的目的是提供一種通過共享密鑰對(duì)軟件保護(hù)裝置的內(nèi)容 進(jìn)行遠(yuǎn)程升級(jí)的方法,以便能夠簡單、安全、快速地對(duì)用戶的軟件 保護(hù)裝置的內(nèi)容進(jìn)行升級(jí),克服上述現(xiàn)有技術(shù)中的問題。為達(dá)到上述目的,本發(fā)明提供了一種通過共享密鑰對(duì)軟件保護(hù)裝置的內(nèi)容進(jìn)行遠(yuǎn)程升級(jí)的方法,包括下列步驟(1 )軟件開發(fā)商對(duì)軟件保護(hù)裝置進(jìn)行分組;(2 )軟件開發(fā)商在相同的軟件保護(hù)裝置分組中寫入相同的共享 密鑰,不同分組的軟件保護(hù)裝置內(nèi)的密鑰不同;(3)當(dāng)軟件保護(hù)裝置需要升級(jí)時(shí),軟件開發(fā)商使用所述共享的 密鑰對(duì)要升級(jí)的內(nèi)容進(jìn)行加密,生成升級(jí)包;(4 )得到所述升級(jí)包之后,軟件保護(hù)裝置利用所述共享的密鑰 通過硬件程序?qū)ι?jí)包進(jìn)行解密,并用解密后的內(nèi)容更新其軟件保 護(hù)裝置的內(nèi)容。通過本發(fā)明的升級(jí)方法,軟件開發(fā)商不需要針對(duì)每個(gè)不同用戶 的軟件保護(hù)裝置生成不同升級(jí)包,而只需針對(duì)不同的分組生成升級(jí) 包,減少了軟件開發(fā)商的管理成本,而且使得軟件保護(hù)裝置的升級(jí) 更加快速、簡單。同時(shí),升級(jí)包是經(jīng)過加密后發(fā)送的,這確保了升 級(jí)包在傳輸過程中的安全性,并且確保只有擁有該共享密鑰的軟件 保護(hù)裝置才能解密升級(jí)包。
圖1為本發(fā)明實(shí)施例的遠(yuǎn)程升級(jí)的方法的流程圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例,對(duì)本發(fā)明內(nèi)容做進(jìn)一步闡述。本實(shí)施例中的軟件保護(hù)裝置為用于保護(hù)PC端軟件的可編程硬件,其核心為單片機(jī)或智能卡芯片,所述單片機(jī)或智能卡芯片包括中央處理單元CPU、與CPU相連的存儲(chǔ)器和接口控制芯片。CPU可以采用任 意的,如Intel MCS8051、 Philips 80C31等微處理器。存儲(chǔ)器可以采用 RAM、 ROM、 EEPROM、 Flash或上述處理器的組合。接口控制芯片 可以是USB控制芯片、firewire控制芯片等。硬件程序、用戶可執(zhí)行代 碼及數(shù)據(jù)存放在存儲(chǔ)器中。PC端包括被保護(hù)的軟件,硬件驅(qū)動(dòng)及訪問 硬件的應(yīng)用層API。 PC端通過外部總線,如USB總線,軟件保護(hù)裝置 中的接口控制芯片,如USB控制芯片,與連接到PC的軟件保護(hù)裝置 通信。具體來說,升級(jí)過程如下 軟件開發(fā)商端軟件開發(fā)商對(duì)軟件保護(hù)裝置進(jìn)行分組(S1Q1)。所述分組的規(guī)則視開發(fā)商需求策略決定,例如,用于保護(hù)不同 版本軟件的軟件保護(hù)裝置分成不同的組。在本實(shí)施例中,軟件開發(fā)商根據(jù)軟件功能將PC端軟件分為A、 B 兩個(gè)版本A版(完全版)具有軟件全部功能、B版(評(píng)估版)具有 軟件一部分功能。根據(jù)PC端軟件的版本不同,軟件保護(hù)裝置也相應(yīng)的分為A、 B兩 個(gè)組?,F(xiàn)假設(shè)軟件開發(fā)商要升級(jí)A版本PC端軟件,相應(yīng)的A組軟件 保護(hù)裝置也需要升級(jí)。軟件開發(fā)商和軟件保護(hù)裝置之間共享一對(duì)密鑰(S102)。同 一分組的軟件保護(hù)裝置內(nèi)的密鑰相同,不同分組的軟件保護(hù) 裝置內(nèi)的密鑰不同。軟件開發(fā)商在初始化軟件保護(hù)裝置時(shí),與A組 軟件保護(hù)裝置共享A組的密鑰,與B組軟件保護(hù)裝置共享B組的密 鑰。軟件開發(fā)商對(duì)要升級(jí)的內(nèi)容進(jìn)行加密,生成升級(jí)包(S103)。對(duì)于本實(shí)施例的軟件保護(hù)裝置,可升級(jí)的內(nèi)容為存儲(chǔ)器中存放的 可執(zhí)行代碼或數(shù)據(jù)。所述升級(jí)包中除了包含要升級(jí)的內(nèi)容,還可以包含對(duì)升級(jí)進(jìn)行 描述的信息。所述對(duì)升級(jí)進(jìn)行描述的信息,是指升級(jí)過程需要用到 的信息,如,對(duì)升級(jí)模塊、升級(jí)位置的描述。所述升級(jí)包中還可以包含對(duì)升級(jí)內(nèi)容的授;f又,即對(duì)升級(jí)內(nèi)容的 使用限制,如使用時(shí)間、次數(shù)、范圍。本實(shí)施例釆用DES算法對(duì)升級(jí)的內(nèi)容和授權(quán)進(jìn)行加密,所述授權(quán) 包括對(duì)使用時(shí)間的限制。此外,加密可以使用公開的加密算法,包括對(duì)稱加密算法(如DES、 TDES、 AES算法)、非對(duì)稱加密算法(如RSA算法)、混 合加密算法,或使用開發(fā)商自己實(shí)現(xiàn)的保密算法。在本實(shí)施例中,如果要對(duì)A組軟件保護(hù)裝置進(jìn)行升級(jí),軟件開發(fā) 商將待升級(jí)的數(shù)據(jù)用A組的密鑰加密。Data表示待升級(jí)的內(nèi)容,例如待更新的可執(zhí)行代碼或數(shù)據(jù);K^表示A組的密鑰。則加密后的待升級(jí) 內(nèi)容的密文S為S=E^(Data)其中,E表示DES加密運(yùn)算,下標(biāo)K^表示使用密鑰K、密文S 即為升級(jí)包。然后,軟件開發(fā)商將S發(fā)送給用戶。用戶端軟件保護(hù)裝置對(duì)升級(jí)包進(jìn)行解密,更新軟件保護(hù)裝置(S104)。用戶將軟件開發(fā)商發(fā)來的升級(jí)包S,通過PC端的升級(jí)程序,傳送 到軟件保護(hù)裝置中。軟件保護(hù)裝置中的硬件程序利用共享的A組的密鑰通過DES算法 將S解密得到明文Datal=D,)其中,D表示DES解密運(yùn)算,下標(biāo)K^表示使用密鑰K^由于軟件保護(hù)裝置中與軟件開發(fā)商共享同一密鑰,所以Datal 與Data完全相同。軟件保護(hù)裝置獲得待升級(jí)的內(nèi)容。硬件程序利用Datal更新軟件保護(hù)裝置中的內(nèi)容,例如存儲(chǔ)器中 的可執(zhí)行代碼或數(shù)據(jù)。至此,升級(jí)成功完成,用戶現(xiàn)在可以使用升級(jí)后的軟件。另一方面,B組用戶不能使用升級(jí)包S升級(jí)其軟件保護(hù)裝置。假設(shè)使用B軟件的用戶通過某種途徑得到了升級(jí)包S,用同樣的 PC端的升級(jí)程序,傳送到軟件保護(hù)裝置中。由于B組軟件保護(hù)裝置中共享的是B組的密鑰,表示為Ks。則 硬件程序?qū)用DES算法解密得到明文Data2=D"(S)由于解密使用的密鑰Ks與加密使用的密鑰K^不相同,所以Data2 與正確的升級(jí)數(shù)據(jù)Data不相同。升級(jí)后的軟件保護(hù)裝置不能和升級(jí)后的PC端軟件相匹配。B組軟 件的用戶不能夠使用升級(jí)后的軟件。這就確保只有A組軟件的用戶得 到升級(jí)。脫離本發(fā)明的精神范圍。因此如果這些改變屬于本發(fā)明權(quán)利要求書及 其等同技術(shù)范圍內(nèi),則本發(fā)明也意圖涵蓋這些改變。
權(quán)利要求
1、一種通過共享密鑰對(duì)軟件保護(hù)裝置的內(nèi)容進(jìn)行遠(yuǎn)程升級(jí)的方法,包括下列步驟(1)軟件開發(fā)商對(duì)軟件保護(hù)裝置進(jìn)行分組;(2)軟件開發(fā)商在相同的軟件保護(hù)裝置分組中寫入相同的共享密鑰,不同分組的軟件保護(hù)裝置內(nèi)的密鑰不同;(3)當(dāng)軟件保護(hù)裝置需要升級(jí)時(shí),軟件開發(fā)商使用所述共享的密鑰對(duì)要升級(jí)的內(nèi)容進(jìn)行加密,生成升級(jí)包;(4)得到所述升級(jí)包之后,軟件保護(hù)裝置利用所述共享的密鑰通過硬件程序?qū)ι?jí)包進(jìn)行解密,并用解密后的內(nèi)容更新軟件保護(hù)裝置的內(nèi)容。
2、 如權(quán)利要求1所述的遠(yuǎn)程升級(jí)的方法,其特征在于軟件開發(fā)商在初始化軟件保護(hù)裝置時(shí),在軟件保護(hù)裝置中寫入 共享的密鑰。
3、 如權(quán)利要求1所述的遠(yuǎn)程升級(jí)的方法,其特征在于 所述分組的確定由開發(fā)商根據(jù)需求策略決定。
4、 如權(quán)利要求1所述的遠(yuǎn)程升級(jí)的方法,其特征在于 所述共享密鑰可以是任意加密算法所使用的密鑰。
5、 如權(quán)利要求1所述的遠(yuǎn)程升級(jí)的方法,其特征在于所述升級(jí)包中包含要升級(jí)的內(nèi)容,還可以包含對(duì)升級(jí)進(jìn)行描述 的信息,即指升級(jí)過程需要用到的信息。
6、 如權(quán)利要求1所述的遠(yuǎn)程升級(jí)的方法,其特征在于升級(jí)包中還可以包含對(duì)升級(jí)內(nèi)容的授權(quán),即對(duì)升級(jí)內(nèi)容的使用 限制。
7、 如權(quán)利要求3所述的遠(yuǎn)程升級(jí)的方法,其特征在于所述需求策略包括對(duì)用于保護(hù)不同版本軟件的軟件保護(hù)裝置的 需求。
8、 如權(quán)利要求4所述的遠(yuǎn)程升級(jí)的方法,其特征在于所述加密算法包括對(duì)稱加密算法、非對(duì)稱加密算法、混合加 密算法,或軟件開發(fā)商自己實(shí)現(xiàn)的保密算法。
9、 如權(quán)利要求5所述的遠(yuǎn)程升級(jí)的方法,其特征在于所述對(duì)升級(jí)進(jìn)行描述的信息包括對(duì)升級(jí)模塊、升級(jí)位置的描述。
10、 如權(quán)利要求6所述的遠(yuǎn)程升級(jí)的方法,其特征在于 所述使用限制包括使用時(shí)間、次數(shù)、范圍。
全文摘要
本發(fā)明公開一種通過共享密鑰對(duì)軟件保護(hù)裝置的內(nèi)容進(jìn)行遠(yuǎn)程升級(jí)的方法。傳統(tǒng)的升級(jí)方法包括將軟件保護(hù)裝置返回到軟件開發(fā)商,升級(jí)之后再返回給用戶,該方法耗時(shí)比較長。另外一種方法是用戶通過互聯(lián)網(wǎng)下載升級(jí)包,這要求軟件開發(fā)商獲知用戶設(shè)備的特征信息以便針對(duì)不同的軟件保護(hù)裝置生成不同的升級(jí)包,該方法操作難度大,管理成本增加。本發(fā)明的方法是在軟件開發(fā)商和其開發(fā)的不同軟件保護(hù)裝置分組之間共享不同的密鑰;軟件開發(fā)商使用共享的密鑰對(duì)要升級(jí)的內(nèi)容進(jìn)行加密,生成升級(jí)包;軟件保護(hù)裝置利用共享的密鑰對(duì)升級(jí)包進(jìn)行解密,更新軟件保護(hù)裝置。通過本方法,能夠簡單、安全、快速地對(duì)用戶的軟件保護(hù)裝置的內(nèi)容進(jìn)行升級(jí)。
文檔編號(hào)H04L9/08GK101217363SQ20071030456
公開日2008年7月9日 申請(qǐng)日期2007年12月28日 優(yōu)先權(quán)日2007年12月28日
發(fā)明者孫吉平, 勇 韓 申請(qǐng)人:北京深思洛克數(shù)據(jù)保護(hù)中心