專利名稱:隨機捆綁軟件安裝方法
技術領域:
本發(fā)明涉及計算機信息安全技術領域,特別是指一種隨機捆綁軟件安裝方法。
背景技術:
長期以來,計算機廠商所捆綁軟件的開發(fā)商出于版權保護的考慮,需要防止非法用戶盜用其軟件被安裝在非捆綁的計算機上。為了實現該目的,一個基本方法是軟件開發(fā)商要求用戶在安裝隨機捆綁軟件時輸入其提供的授權的注冊號、密碼等信息,來防止非法用戶的任意盜用拷貝傳播。
這樣計算機的裝箱單中必須增加一個用戶卡,記錄有隨機捆綁軟件開發(fā)商提供給用戶的注冊號、密碼等信息。由于用戶卡很容易丟失,在以后的重新安裝該軟件時會給用戶帶來不便。另外某些企業(yè)會將用戶卡進行統(tǒng)一管理,例如統(tǒng)一保存在IT管理部門,而最終用戶無法得到,這樣帶來的問題是,用戶在安裝隨機軟件遇到涉及注冊號、密碼問題時會直接撥打計算機廠商的免費服務電話,對于計算機廠商來說,極大地增加了服務成本。
并且,用戶卡的形式,也容易使合法的用戶不正確的傳播該軟件安裝到非捆綁該軟件的計算機上,給捆綁軟件的開發(fā)商帶來了損失。為了避免用戶卡的形式,目前的解決方案是在計算機的BIOS中設置一個計算機廠商的標識信息,該廠商標識信息是隨機捆綁軟件開發(fā)商所捆綁的計算機的廠商標識。當在安裝該隨機軟件過程中,軟件安裝程序會讀取BIOS中的廠商標識信息,如果是所授權的計算機廠商的標識,則認為該計算機被授權,可以安裝該軟件,繼續(xù)完成軟件安裝過程。
但是,隨著刷新BIOS工具的廣泛流傳,非法用戶可以通過將BIOS刷新成合法計算機廠商的BIOS,來實現非法使用該隨機捆綁軟件。另一方面,使用這種廠商標識的方法,當不同的軟件提供商授權給同一個計算機廠商時,不同的隨機軟件都使用相同的方式鑒定BIOS中廠商標識是否為設定的該計算機廠商標識,從而使各個不同的捆綁軟件提供商知道其他軟件提供商的版本軟件保護方法,可以輕易的獲取對方軟件進行安裝。因此不同的軟件提供商希望使用不同的方法實現各自軟件的版權保護,以避免軟件提供商之間的軟件非法盜用。
發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種隨機捆綁軟件的安裝方法,實現隨機捆綁軟件的安全合法安裝,避免被安裝到非授權的計算機上。
實現本發(fā)明提供的一種隨機捆綁軟件安裝方法,要在所捆綁的計算機上固化一加密程序,在隨機捆綁軟件安裝程序中嵌入對應的解密程序;在隨機捆綁軟件安裝過程中,該方法包括以下步驟A1、隨機捆綁軟件安裝程序生成一驗證碼,并將驗證碼傳送給固化在計算機上的加密程序;B1、固化在計算機上的加密程序對該驗證碼加密生成加密驗證碼,并將加密驗證碼傳送給隨機捆綁軟件安裝程序;C1、隨機捆綁軟件安裝程序解密所述加密驗證碼,判斷所解密后的加密驗證碼是否與步驟A1所述驗證碼相同,是則繼續(xù)安裝過程;否則結束本流程。
可選的,在步驟A1所述隨機捆綁軟件安裝程序將驗證碼傳送給固化在計算機上的加密程序、和步驟B1所述加密程序將加密驗證碼傳送給隨機捆綁軟件安裝程序的步驟中,進一步包括加密程序對隨機捆綁軟件安裝程序進行鑒權的步驟。
可選的,步驟B1后進一步包括隨機捆綁軟件安裝程序在一定時間內未接收到所述加密程序的加密驗證碼信息,則結束本流程。
較佳的,所述加密程序固化在計算機硬盤的HPA區(qū)域內??蛇x的,步驟A1所述將驗證碼傳送給固化在計算機上的加密程序的步驟包括將驗證碼傳送給HPA存儲,修改CMOS參數值為啟動后執(zhí)行HPA中的加密程序,重啟計算機;重啟后,根據所述CMOS值啟動加密程序,加密程序讀取HPA存儲的所述驗證碼;步驟B1所述將加密驗證碼傳送給隨機捆綁軟件安裝程序的步驟包括將驗證碼在HPA中存儲,重啟計算機;重啟后,繼續(xù)進入隨機捆綁軟件安裝程序,隨機捆綁軟件安裝程序讀取HPA存儲的所述加密驗證碼。
本發(fā)明還提供了一種隨機捆綁軟件安裝方法,要在隨機捆綁軟件安裝程序中嵌入一加密程序,在所捆綁的計算機上固化對應的解密程序,在隨機捆綁軟件安裝過程中,該方法包括以下步驟A6、隨機捆綁軟件安裝程序生成一驗證碼,對該驗證碼加密生成加密驗證碼,并將加密驗證碼傳送給固化在計算機上的解密程序;B6、固化在計算機上的解密程序對該加密驗證碼解密生成驗證碼,并將該驗證碼傳送給隨機捆綁軟件安裝程序;C6、隨機捆綁軟件安裝程序判斷接收到的步驟B6的驗證碼是否與步驟A6所述驗證碼相同,是則繼續(xù),否則結束本流程。
可選的,步驟B6后進一步包括隨機捆綁軟件安裝程序在一定時間內未接收到所述解密程序解密后的驗證碼信息,則結束本流程。
8、根據權利要求6所述的方法,其特征在于,所述解密程序固化在計算機硬盤的HPA區(qū)域內。
可選的,步驟A6所述將加密驗證碼傳送給固化在計算機上的解密程序的步驟包括將加密驗證碼傳送給HPA存儲,修改CMOS參數值為啟動后執(zhí)行HPA中的解密程序,重啟計算機;重啟后,根據所述CMOS值啟動解密程序,解密程序讀取HPA存儲的所述加密驗證碼;步驟B6所述將解密后的驗證碼傳送給隨機捆綁軟件安裝程序的步驟包括將解密后的驗證碼在HPA中存儲,重啟計算機;重啟后,繼續(xù)進入隨機捆綁軟件安裝程序,隨機捆綁軟件安裝程序讀取HPA存儲的所述驗證碼。
本發(fā)明還提供了一種隨機捆綁軟件安裝方法,要在隨機捆綁軟件安裝程序中嵌入一加密程序,在所捆綁的計算機上固化相同的加密程序,在隨機捆綁軟件安裝過程中,該方法包括以下步驟A10、隨機捆綁軟件安裝程序生成一驗證碼,并將驗證碼傳送給固化在計算機上的加密程序;B10、固化在計算機上的加密程序對該驗證碼加密生成加密驗證碼,并將加密驗證碼傳送給隨機捆綁軟件安裝程序;C10、隨機捆綁軟件安裝程序對其所生成的驗證碼加密生成第二加密驗證碼,判斷第二加密驗證碼是否與接收的步驟B10所述加密驗證碼相同,是則繼續(xù)安裝過程;否則結束本流程。
較佳的,所述加密程序固化在計算機硬盤的HPA區(qū)域內??蛇x的,步驟A10所述將驗證碼傳送給固化在計算機上的加密程序的步驟包括將驗證碼傳送給HPA存儲,修改CMOS參數值為啟動后執(zhí)行HPA中的加密程序,重啟計算機;重啟后,根據CMOS值啟動加密程序,加密程序讀取HPA存儲的所述驗證碼;步驟B10所述將加密驗證碼傳送給隨機捆綁軟件安裝程序的步驟包括將驗證碼在HPA中存儲,重啟計算機;重啟后,繼續(xù)進入隨機捆綁軟件安裝程序,隨機捆綁軟件安裝程序讀取HPA存儲的所述加密驗證碼。
由上述方法可以看出,本發(fā)明的隨機捆綁軟件的安裝方法,可以讓不同的隨機軟件開發(fā)商均單獨與計算機廠商約定不同的版權保護的算法和密鑰,并且其內容甚至可以不告訴計算機廠商,降低了秘密公開化的風險。另外加密算法高強度,密鑰高隨機性也可以提升被破解的難度,得以對隨機捆綁軟件進行有效的版權保護。
圖1為隨機捆綁軟件安裝流程圖。
圖2為HPA分區(qū)的劃分示意圖。
圖3為本發(fā)明捆綁軟件安裝實施例流程圖。
圖4為計算機啟動HPA中程序的流程圖。
具體實施例方式
本發(fā)明公開了一種使用嵌入式系統(tǒng)和密碼技術實現隨機捆綁軟件的安裝方法,該方法可以在隨機捆綁軟件安裝過程中鑒別計算機是否為合法授權的計算機。
本發(fā)明在計算機上固化了一個加密程序,該加密程序可以位于與計算機為一體的器件上,例如可以位于計算機主板上的一個存儲器件上(如BIOS),或者位于硬盤上等;還要在隨機捆綁軟件中嵌入對應的解密程序。所述加密、解密算法由隨機捆綁軟件提供商提供。參見圖1示出的流程圖,本發(fā)明的隨機捆綁軟件安裝方法包括以下步驟步驟101隨機捆綁軟件安裝程序運行過程中生成一驗證碼,該驗證碼可以是一個隨機數,并將驗證碼傳送給固化在計算機上的加密程序;步驟102加密程序對該驗證碼加密生成加密驗證碼;并將加密驗證碼傳送給隨機捆綁軟件安裝程序;步驟103隨機捆綁軟件安裝程序解密所述加密驗證碼,判斷所解密后的加密驗證碼是否與步驟101所述驗證碼相同,是則說明該計算機是合法授權的計算機,繼續(xù)安裝過程;否則說明該計算機是未經授權的計算機,結束本流程。
上述步驟103也可以是隨機捆綁軟件安裝程序對其生成的驗證碼加密生成第二加密驗證碼,與加密程序返回的加密驗證碼進行比較,當相同時,則說明該計算機是授權的計算機,繼續(xù)安裝過程;否則說明該計算機是未經授權的計算機,結束本流程。
在上述流程中,當其他隨機捆綁軟件提供商也使用該方法來驗證所安裝的計算機是否為授權的計算機時,由于不同軟件廠商提供的加密算法不同(如密鑰或加密算法不同),則各個軟件提供商由于無法獲得其他軟件提供商的加密算法而無法非法使用。對于非捆綁軟件的計算機不存在該加密程序時,捆綁軟件安裝過程中會收不到步驟102中的響應信息而中止安裝流程,避免了捆綁軟件的非法傳播。
另外,也可以在計算機上固化解密程序,隨機捆綁軟件內嵌對應的加密算法,采用如下的步驟進行軟件的安裝,包括以下步驟第一步驟隨機捆綁軟件安裝程序運行過程中生成一驗證碼,對該驗證碼加密生成加密驗證碼,并將加密驗證碼傳送給固化在計算機上的解密程序;第二步驟解密程序對該加密驗證碼解密生成驗證碼;并將該驗證碼傳送給隨機捆綁軟件安裝程序;第三步驟隨機捆綁軟件安裝程序判斷接收到的第二步驟的驗證碼是否與第一步驟所述驗證碼相同,是則繼續(xù),否則結束本流程。
若隨機捆綁軟件安裝程序在一定時間內未接收到解密程序的響應信息,也要結束本流程。
由于上面所述在計算機上固化加密或解密程序的兩種方式原理基本相同,故后面所述實施例僅針對所述圖1的方案進行說明,對于上述第二種實施例,可以很容易的根據圖1方案的實施例推導出來,故不再驁述。
在本發(fā)明提供的實施例中,將加密程序固化在計算機的硬盤上,并且為了實現對該程序的保護,采用了主機保護區(qū)域(HPA,Host Protect Area)技術。HPA是指計算機生產廠商在出廠時在計算機硬盤中劃分的一個區(qū)域,該區(qū)域的內容受到保護,不能被操作系統(tǒng)直接訪問,必須通過專用的驅動接口進行讀寫訪問。并且為保證該區(qū)域的安全性,計算機廠商可以設置HPA的訪問密碼,在進行讀寫HPA時,驅動接口會驗證訪問HPA的程序的密碼是否正確,只有提供正確密碼的程序才可以訪問HPA。HPA中可以進一步劃分為多個獨立空間,分別存儲操作系統(tǒng),獨立程序或普通數據,各個空間依據標示號進行區(qū)分。HPA規(guī)范是計算機業(yè)界遵循的一種行業(yè)規(guī)范,BIOS、硬盤、OS和計算機廠商均支持該規(guī)范。
如圖2示出了本發(fā)明HPA分區(qū)功能模塊示意圖。本發(fā)明在HPA區(qū)域中設置了雙模式引導模塊(DM,Double Manager)、序列號驗證程序模塊和交互數據區(qū),這些模塊在計算機出廠時預置在硬盤HPA不同分區(qū)內。
DM模塊用于調用硬盤中不同的操作系統(tǒng)或應用。計算機啟動過程中,由BIOS自動將控制權交給該DM模塊,該模塊根據不同的標示號進入不同系統(tǒng)(如操作系統(tǒng)、HPA中存儲的不同應用模塊)。DM模塊由計算機廠商開發(fā)并長期維護,通過該模塊可以實現多種操作系統(tǒng)和應用并存與HPA中,實現雙模式或多模式應用。
序列號驗證程序由隨機軟件開發(fā)商實現,內嵌與隨機捆綁軟件安裝程序中的驗證模塊相配合的私密密鑰,該模塊實現加密運算,密鑰可以由隨機軟件提供商提供。該模塊負責對接收到的驗證碼進行加密并將加密結果存放在交互數據區(qū),相當于圖1對應的方法中所述的加密程序。
交互數據區(qū)是所述隨機捆綁軟件安裝程序和HPA中的序列號驗證程序進行數據交互的區(qū)域。
本發(fā)明還需要在隨機捆綁軟件安裝程序中嵌入一個驗證模塊,用于在安裝過程中負責生成隨機數作為驗證碼,以及對HPA返回的加密驗證碼進行解密和驗證功能,包含了圖1對應方法中所述的解密程序。
HPA內置的加密算法密鑰只有軟件開發(fā)商掌握,只有計算機生產廠商才可以在出廠時劃分和寫入HPA中的內容,保證了計算機上固化的加密算法不會被修改和破解。
下面參見附圖3,對本發(fā)明的捆綁軟件安裝方法進行說明,包括以下步驟步驟301用戶運行隨機捆綁軟件的安裝程序(如Setup.exe、Install.exe等),安裝程序內嵌的驗證模塊隨機生成驗證碼P,并將該驗證碼存儲到HPA的交互數據區(qū)中;可選的,在安裝程序通過驅動接口訪問HPA過程中,安裝程序需提供訪問HPA區(qū)域的密碼后才能訪問HPA區(qū)域將驗證碼P存入HPA的交互數據區(qū)。
步驟302修改CMOS中參數值為啟動時自動進入HPA序列號驗證程序的值,自動重新啟動計算機。修改CMOS值方法可以通過調用CMOS的接口進行修改。
步驟303BIOS在計算機啟動過程中讀取到CMOS中的上述參數值,并將其轉化為DM模塊可以識別的功能標示碼,將該功能標示碼寫入內存固定地址的參數表中。
然后,BIOS將控制權交給HPA內的DM模塊,DM模塊讀取內存參數表,根據參數表中的功能指示碼調用HPA中的該功能指示碼對應的序列號驗證程序。
對于該步驟,在HPA不同的分區(qū)放置不同的程序,DM根據功能指示碼對應的HPA分區(qū)的標示號,轉入該區(qū)域的首地址,調用其中記錄的程序(本例中即調用序列號驗證程序)。這個過程可以參見圖4示出的計算機啟動HPA中程序的流程圖。
步驟304序列號驗證程序讀取HPA交互數據區(qū)中的驗證碼P,使用加密算法和內置密鑰K1中對驗證碼P進行加密運算,生成加密的驗證碼P++,并將P++替換P存儲在交互數據區(qū)中,并清除步驟302所修改的COMS中的值,重新啟動計算機。
步驟305計算機重新啟動后繼續(xù)隨機捆綁軟件的安裝過程,安裝程序從HPA交互數據區(qū)中讀取出P++??蛇x的,在安裝程序通過驅動接口訪問HPA過程中,安裝程序需提供訪問HPA區(qū)域的密碼后才能讀取HPA的交互數據區(qū)。
步驟306隨機捆綁軟件使用自帶的解密算法和內置密鑰K2對序列號驗證程序提供的P++進行解密,生成比較碼P1,與驗證碼P進行比較,若相同則表示該計算機為授權的計算機,繼續(xù)完成安裝過程,否則給出提示信息后結束本流程。
不難理解,根據圖1對應的方法,也可以使用下面的步驟替換步驟306隨機捆綁軟件使用自帶的加密算法和內置密鑰K2對原驗證碼P進行加密生成P1++,與P++進行比較,若相同則表示該計算機為授權的計算機,繼續(xù)完成安裝過程,否則結束本流程。
以上提供的實施例是以隨機捆綁軟件提供驗證碼,然后提供給HPA中的程序加密,而后根據隨機捆綁軟件是否能夠將加密后的驗證碼解密為原驗證碼來判斷該軟件所安裝到的計算機是否是合法授權的計算機。不難理解,也可以是隨機捆綁軟件安裝過程中生成驗證碼并進行加密,將加密后的驗證碼提供給HPA中的程序解密,而后判斷解密后的驗證碼是否為軟件安裝過程所生成的原驗證碼來判斷軟件所安裝到的計算機是否是合法授權的計算機。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種隨機捆綁軟件安裝方法,其特征在于,在所捆綁的計算機上固化一加密程序,在隨機捆綁軟件安裝程序中嵌入對應的解密程序;在隨機捆綁軟件安裝過程中,該方法包括以下步驟A1、隨機捆綁軟件安裝程序生成一驗證碼,并將驗證碼傳送給固化在計算機上的加密程序;B1、固化在計算機上的加密程序對該驗證碼加密生成加密驗證碼,并將加密驗證碼傳送給隨機捆綁軟件安裝程序;C1、隨機捆綁軟件安裝程序解密所述加密驗證碼,判斷所解密后的加密驗證碼是否與步驟A1所述驗證碼相同,是則繼續(xù)安裝過程;否則結束本流程。
2.根據權利要求1所述的方法,其特征在于,在步驟A1所述隨機捆綁軟件安裝程序將驗證碼傳送給固化在計算機上的加密程序、和步驟B1所述加密程序將加密驗證碼傳送給隨機捆綁軟件安裝程序的步驟中,進一步包括加密程序對隨機捆綁軟件安裝程序進行鑒權的步驟。
3.根據權利要求1所述的方法,其特征在于,步驟B1后進一步包括隨機捆綁軟件安裝程序在一定時間內未接收到所述加密程序的加密驗證碼信息,則結束本流程。
4.根據權利要求1所述的方法,其特征在于,所述加密程序固化在計算機硬盤的HPA區(qū)域內。
5.根據權利要求4所述的方法,其特征在于,步驟A1所述將驗證碼傳送給固化在計算機上的加密程序的步驟包括將驗證碼傳送給HPA存儲,修改CMOS參數值為啟動后執(zhí)行HPA中的加密程序,重啟計算機;重啟后,根據所述CMOS值啟動加密程序,加密程序讀取HPA存儲的所述驗證碼;步驟B1所述將加密驗證碼傳送給隨機捆綁軟件安裝程序的步驟包括將驗證碼在HPA中存儲,重啟計算機;重啟后,繼續(xù)進入隨機捆綁軟件安裝程序,隨機捆綁軟件安裝程序讀取HPA存儲的所述加密驗證碼。
6.一種隨機捆綁軟件安裝方法,其特征在于,在隨機捆綁軟件安裝程序中嵌入一加密程序,在所捆綁的計算機上固化對應的解密程序,在隨機捆綁軟件安裝過程中,該方法包括以下步驟A6、隨機捆綁軟件安裝程序生成一驗證碼,對該驗證碼加密生成加密驗證碼,并將加密驗證碼傳送給固化在計算機上的解密程序;B6、固化在計算機上的解密程序對該加密驗證碼解密生成驗證碼,并將該驗證碼傳送給隨機捆綁軟件安裝程序;C6、隨機捆綁軟件安裝程序判斷接收到的步驟B6的驗證碼是否與步驟A6所述驗證碼相同,是則繼續(xù),否則結束本流程。
7.根據權利要求6所述的方法,其特征在于,步驟B6后進一步包括隨機捆綁軟件安裝程序在一定時間內未接收到所述解密程序解密后的驗證碼信息,則結束本流程。
8.根據權利要求6所述的方法,其特征在于,所述解密程序固化在計算機硬盤的HPA區(qū)域內。
9.根據權利要求8所述的方法,其特征在于,步驟A6所述將加密驗證碼傳送給固化在計算機上的解密程序的步驟包括將加密驗證碼傳送給HPA存儲,修改CMOS參數值為啟動后執(zhí)行HPA中的解密程序,重啟計算機;重啟后,根據所述CMOS值啟動解密程序,解密程序讀取HPA存儲的所述加密驗證碼;步驟B6所述將解密后的驗證碼傳送給隨機捆綁軟件安裝程序的步驟包括將解密后的驗證碼在HPA中存儲,重啟計算機;重啟后,繼續(xù)進入隨機捆綁軟件安裝程序,隨機捆綁軟件安裝程序讀取HPA存儲的所述驗證碼。
10.一種隨機捆綁軟件安裝方法,其特征在于,在隨機捆綁軟件安裝程序中嵌入一加密程序,在所捆綁的計算機上固化相同的加密程序,在隨機捆綁軟件安裝過程中,該方法包括以下步驟A10、隨機捆綁軟件安裝程序生成一驗證碼,并將驗證碼傳送給固化在計算機上的加密程序;B10、固化在計算機上的加密程序對該驗證碼加密生成加密驗證碼,并將加密驗證碼傳送給隨機捆綁軟件安裝程序;C10、隨機捆綁軟件安裝程序對其所生成的驗證碼加密生成第二加密驗證碼,判斷第二加密驗證碼是否與接收的步驟B10所述加密驗證碼相同,是則繼續(xù)安裝過程;否則結束本流程。
11.根據權利要求10所述的方法,其特征在于,所述加密程序固化在計算機硬盤的HPA區(qū)域內。
12.根據權利要求11所述的方法,其特征在于,步驟A10所述將驗證碼傳送給固化在計算機上的加密程序的步驟包括將驗證碼傳送給HPA存儲,修改CMOS參數值為啟動后執(zhí)行HPA中的加密程序,重啟計算機;重啟后,根據CMOS值啟動加密程序,加密程序讀取HPA存儲的所述驗證碼;步驟B10所述將加密驗證碼傳送給隨機捆綁軟件安裝程序的步驟包括將驗證碼在HPA中存儲,重啟計算機;重啟后,繼續(xù)進入隨機捆綁軟件安裝程序,隨機捆綁軟件安裝程序讀取HPA存儲的所述加密驗證碼。
全文摘要
本發(fā)明提供了一種隨機捆綁軟件安裝方法,在所捆綁的計算機上固化一加密程序,在隨機捆綁軟件安裝程序中嵌入對應的解密程序;在隨機捆綁軟件安裝過程中,還包括A1、隨機捆綁軟件安裝程序生成一驗證碼,并將驗證碼傳送給固化在計算機上的加密程序;B1、固化在計算機上的加密程序對該驗證碼加密生成加密驗證碼,并將加密驗證碼傳送給隨機捆綁軟件安裝程序;C1、隨機捆綁軟件安裝程序解密所述加密驗證碼,判斷所解密后的加密驗證碼是否與步驟A1所述驗證碼相同,是則繼續(xù)安裝過程;否則結束本流程。還相應的提供了另兩種隨機捆綁軟件安裝方法。使用本發(fā)明,在隨機捆綁軟件安裝過程中可鑒別計算機是否為合法授權的計算機。
文檔編號G06F9/445GK1851603SQ20051006633
公開日2006年10月25日 申請日期2005年4月22日 優(yōu)先權日2005年4月22日
發(fā)明者李亞輝 申請人:聯(lián)想(北京)有限公司