專利名稱:基于可信計(jì)算模塊芯片實(shí)現(xiàn)計(jì)算機(jī)軟件防盜版的方法
技術(shù)領(lǐng)域:
本發(fā)明方法屬于計(jì)算機(jī)信息安全技術(shù)領(lǐng)域,尤其涉及的是一種利用密碼技術(shù)和可信計(jì)算模塊芯片技術(shù)來解決軟件商品防盜版的方法。
背景技術(shù):
目前,國內(nèi)外能夠完全解決軟件防止盜版同時又能夠兼顧用戶的經(jīng)濟(jì)承受能力的技術(shù)和方法還沒有出現(xiàn)?,F(xiàn)在廣泛采用的軟件防盜版技術(shù)主要有三類一、采用注冊序列號碼,這類方法一般地,注冊號可以重復(fù)多次使用,注冊號碼一旦泄漏就會導(dǎo)致大量盜版產(chǎn)生;二、采用網(wǎng)上注冊或聯(lián)網(wǎng)激活方法,這種方法的原理是軟件中包含有判斷激活或注冊與否的程序代碼;但破解者可以通過代碼跟蹤找到起判斷作用的代碼,并將其繞過以達(dá)到盜版目的;三、硬件防盜版,軟件商銷售軟件產(chǎn)品時每套軟件附帶一個基于串口或USB接口的“軟件狗”或USB智能卡或類似功能的硬件產(chǎn)品,這種硬件防盜版模式大多數(shù)都使用了密碼保護(hù)技術(shù),因此可以起到較好的防盜版作用,但是附帶的硬件產(chǎn)品價格昂貴、且會占用計(jì)算機(jī)硬件接口資源,因此事實(shí)證明不適合大規(guī)模推廣和普及。其它種類的計(jì)算機(jī)軟件防盜版方法和產(chǎn)品還有,但大多數(shù)都是上述方法的變種或組合,并無實(shí)質(zhì)性突破,因此也不能從根本上達(dá)到既防止軟件盜版又經(jīng)濟(jì)實(shí)用的目的。
因此現(xiàn)有技術(shù)存在缺陷,而有待于改進(jìn)和發(fā)展。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于可信計(jì)算模塊芯片實(shí)現(xiàn)計(jì)算機(jī)軟件防盜版的方法,針對現(xiàn)有軟件防盜版技術(shù)的缺陷,本發(fā)明所述的技術(shù)方法能夠從根本上解決軟件商品無法完全實(shí)現(xiàn)防止盜版的問題,其采用的核心技術(shù)是利用計(jì)算機(jī)主板上安裝的可信計(jì)算模塊(TPM)芯片的安全保護(hù)功能和密碼技術(shù)原理,提供一種高安全性同時價格低廉的防盜版技術(shù)。
本發(fā)明的技術(shù)方案如下一種基于可信計(jì)算模塊芯片實(shí)現(xiàn)軟件防盜版的方法,包括以下步驟a.預(yù)先在軟件用戶計(jì)算機(jī)上安裝可信計(jì)算模塊芯片及其支撐軟件,并完成芯片初始化;b.軟件版權(quán)所有者將從受保護(hù)的軟件產(chǎn)品中選取一段或幾段關(guān)鍵數(shù)據(jù)隱藏,并將不包含隱藏?cái)?shù)據(jù)的軟件產(chǎn)品傳遞給合法取得該軟件的用戶,同時向用戶提供一軟件注冊工具軟件;c.用戶在正常使用該軟件之前,需在軟件版權(quán)所有者處進(jìn)行注冊;d.用戶通過所述軟件注冊工具軟件調(diào)用本地計(jì)算機(jī)內(nèi)的可信計(jì)算模塊芯片產(chǎn)生不可移植的注冊密鑰對,將注冊密鑰公鑰和注冊信息發(fā)給軟件版權(quán)所有者;e.軟件版權(quán)所有者確認(rèn)用戶合法性后,使用用戶注冊密鑰公鑰將隱藏?cái)?shù)據(jù)加密再傳遞給用戶,加密的隱藏?cái)?shù)據(jù)只能由該用戶解密使用;f.用戶每次使用該軟件之前都須調(diào)用本機(jī)可信計(jì)算模塊芯片對軟件的隱藏?cái)?shù)據(jù)進(jìn)行解密方可正常使用。
所述的方法,其中,所述隱藏?cái)?shù)據(jù)由所述軟件版權(quán)所有者在每一套銷售的軟件中從核心代碼中一段或多段隨機(jī)選取,其總長度為任意字節(jié)數(shù);所述隱藏?cái)?shù)據(jù)保留在軟件版權(quán)所有者的數(shù)據(jù)庫服務(wù)器中,其正式銷售的軟件中不包含該隱藏?cái)?shù)據(jù)。
所述的方法,其中,所述隱藏?cái)?shù)據(jù)的選擇至少包括用于判斷軟件是正式版還是試用版,以及判斷是否超過試用有效期的核心邏輯判斷代碼,以防止對軟件的非法破解。
所述的方法,其中,所述方法還包括在軟件出廠時將分配一組唯一且各不相同的編號作為其軟件標(biāo)識,其長度由軟件版權(quán)所有者隨機(jī)確定,該軟件標(biāo)識與其隱藏?cái)?shù)據(jù)對應(yīng)存儲在所述數(shù)據(jù)庫服務(wù)器中。
所述的方法,其中,所述方法還包括設(shè)置每套軟件與一軟件注冊工具、其對應(yīng)軟件標(biāo)識結(jié)合成一套軟件商品;并且所述軟件注冊工具可從網(wǎng)站上下載,用于軟件的合法用戶在取得軟件產(chǎn)品后通過互聯(lián)網(wǎng)在軟件版權(quán)所有者處進(jìn)行注冊登記。
所述的方法,其中,所述軟件注冊工具的注冊步驟包括c1、軟件注冊工具將調(diào)用安裝在用戶計(jì)算機(jī)上可信計(jì)算模塊芯片隨機(jī)產(chǎn)生一對不可移植的RSA算法或其他非對稱算法密鑰作為用戶注冊密鑰對;c2、其中該注冊密鑰的私鑰部分被可信計(jì)算模塊芯片“封裝”,即TPM使用該密鑰的父密鑰對該密鑰的私鑰部分進(jìn)行RSA算法或其他非對稱算法加密,其中所述父密鑰需要在該密鑰產(chǎn)生時指定,然后只將私鑰密文導(dǎo)出并存儲在用戶計(jì)算機(jī)硬盤上,并且該封裝私鑰只能導(dǎo)入本機(jī)的可信計(jì)算模塊芯片解密并在TPM芯片內(nèi)部使用,其公鑰部分隨同軟件標(biāo)識等用戶注冊數(shù)據(jù)一起由軟件注冊工具發(fā)往軟件版權(quán)所有者;c3、軟件版權(quán)所有者收到用戶注冊數(shù)據(jù)后,對用戶注冊信息進(jìn)行登記和確認(rèn),如果信息不符合要求則拒絕注冊返回錯誤;信息驗(yàn)證通過后根據(jù)軟件標(biāo)識索引到此套軟件的隱藏?cái)?shù)據(jù),并使用該用戶的注冊密鑰公鑰將此數(shù)據(jù)“綁定”在軟件用戶的計(jì)算機(jī)上,即軟件版權(quán)所有者使用用戶注冊密鑰公鑰對隱藏?cái)?shù)據(jù)執(zhí)行RSA算法或其他非對稱算法加密得到的隱藏?cái)?shù)據(jù)密文,該密文只能夠通過用戶計(jì)算機(jī)上的可信計(jì)算模塊芯片解除“綁定”,即在可信計(jì)算模塊芯片內(nèi)部使用注冊密鑰的私鑰將密文解密。
所述的方法,其中,所述注冊步驟還包括c4、通過用戶提交的軟件標(biāo)識,軟件版權(quán)所有者區(qū)分出用戶是正式版用戶還是試用版用戶;如果是軟件試用版用戶,則獲得軟件試用有效期數(shù)值,再將軟件試用有效期數(shù)值與軟件標(biāo)識連接,并使用用戶的注冊密鑰公鑰對該數(shù)據(jù)執(zhí)行“綁定”操作得到試用有效期密文,將所述隱藏?cái)?shù)據(jù)密文和試用有效期密文作為授權(quán)數(shù)據(jù)返回給用戶計(jì)算機(jī);c5、用戶計(jì)算機(jī)收到軟件版權(quán)所有者發(fā)回的授權(quán)數(shù)據(jù)后,軟件注冊工具將用戶私鑰和授權(quán)數(shù)據(jù)中的試用有效期密文導(dǎo)入可信計(jì)算模塊芯片,并調(diào)用可信計(jì)算模塊的解除“綁定”功能將試用有效期密文解密還原得到軟件試用有效期數(shù)值;c6、如果軟件為正式軟件,則將隱藏?cái)?shù)據(jù)密文和試用有效期密文保存在本機(jī)硬盤上,結(jié)束注冊過程;否則調(diào)用可信計(jì)算模塊功能創(chuàng)建指定的可信計(jì)算模塊單調(diào)計(jì)數(shù)器并取得計(jì)數(shù)器當(dāng)前值作為計(jì)數(shù)器初始值,或取得計(jì)算機(jī)系統(tǒng)時鐘當(dāng)前值作為試用軟件啟用時間和最后一次使用時間的初始值,將可信計(jì)算模塊單調(diào)計(jì)數(shù)器初始值或軟件啟用時間和最后一次使用時間與軟件標(biāo)識連接,并使用用戶注冊密鑰公鑰執(zhí)行可信計(jì)算模塊“綁定”操作得到計(jì)數(shù)器初始值密文,由軟件注冊工具將隱藏?cái)?shù)據(jù)密文、試用有效期密文和計(jì)數(shù)器初始值密文保存在本機(jī)硬盤上,完成注冊過程。
所述的方法,其中,所述步驟f還包括f1、用戶每次運(yùn)行軟件時,由軟件程序的引導(dǎo)部分將被封裝的用戶注冊私鑰導(dǎo)入可信計(jì)算模塊芯片,當(dāng)遇到需要還原隱藏的代碼數(shù)據(jù)時,調(diào)用可信計(jì)算模塊的解除綁定功能將隱藏?cái)?shù)據(jù)密文還原為明文數(shù)據(jù),并通過加密傳輸會話將還原的程序數(shù)據(jù)釋放到內(nèi)存中運(yùn)行,程序正常運(yùn)行后自動銷毀此前還原的代碼數(shù)據(jù),以后再遇到隱藏?cái)?shù)據(jù)時會重復(fù)上述數(shù)據(jù)還原過程,此過程將貫穿軟件整個運(yùn)行生命周期;f2、所述軟件程序啟動后會將試用有效期密文導(dǎo)入可信計(jì)算模塊芯片,并調(diào)用可信計(jì)算模塊的解除綁定功能將試用有效期密文還原為軟件試用有效期數(shù)值,根據(jù)軟件試用有效期數(shù)值判斷軟件是正式版還是試用版;f3、如果是正式版軟件,則正常運(yùn)行;如果是試用版軟件,由軟件將計(jì)數(shù)器初始值密文導(dǎo)入可信計(jì)算模塊芯片,并調(diào)用可信計(jì)算模塊的解除綁定功能將計(jì)數(shù)器初始值密文還原為注冊授權(quán)時的可信計(jì)算模塊芯片指定單調(diào)計(jì)數(shù)器的初始值,再調(diào)用可信計(jì)算模塊功能取得指定單調(diào)計(jì)數(shù)器的當(dāng)前值,通過比較計(jì)數(shù)器初始值和當(dāng)前值可以判斷軟件是否過期;或根據(jù)當(dāng)前計(jì)算機(jī)系統(tǒng)時鐘值和保存在試用有效期密文中的啟用時間和最后一次使用時間,來判斷軟件是否過期以及是否存在惡意修改系統(tǒng)時鐘的欺騙行為。
f4、如軟件未過期則繼續(xù)運(yùn)行,此時軟件如果采用的是單調(diào)計(jì)數(shù)器實(shí)現(xiàn)的次數(shù)限制試用策略,則還需要向可信計(jì)算模塊芯片發(fā)送單調(diào)計(jì)數(shù)器加1指令,更新單調(diào)計(jì)數(shù)器當(dāng)前值;如軟件過期則軟件立即終止運(yùn)行,并自動銷毀存儲在用戶計(jì)算機(jī)中的隱藏?cái)?shù)據(jù)。
本發(fā)明所提供的一種基于可信計(jì)算模塊芯片實(shí)現(xiàn)計(jì)算機(jī)軟件防盜版的方法,由于利用了焊接在計(jì)算機(jī)主板上的TPM芯片的數(shù)據(jù)封裝、平臺綁定和加密傳輸會話等安全特性,確保受保護(hù)的程序在指定的用戶計(jì)算機(jī)上合法使用,非法復(fù)制的軟件無法在用戶計(jì)算機(jī)以外的任何個人計(jì)算機(jī)上運(yùn)行;并且由于受保護(hù)的軟件中關(guān)鍵的邏輯代碼是“隱藏?cái)?shù)據(jù)”,隱藏位置不固定,而且“隱藏?cái)?shù)據(jù)”只能在用戶計(jì)算機(jī)內(nèi)存中在具體使用時還原,數(shù)據(jù)還原前還要對軟件完整性進(jìn)行檢查;此外軟件還會實(shí)施特殊的“混合亂序”、“加擾”和多層嵌套等內(nèi)存代碼動態(tài)保護(hù)機(jī)制,所以對軟件實(shí)施的任何反編譯或跟蹤、欺騙等破解手段將無法得逞;本發(fā)明方法使得用戶必須在使用軟件前在軟件廠商處注冊,否則無法使用,因此對任何使用相同軟件標(biāo)識進(jìn)行注冊的行為,軟件廠商可以很準(zhǔn)確的獲知此信息,并采取相應(yīng)措施或?qū)Σ?。?yīng)用本發(fā)明技術(shù)可以確保用戶在指定計(jì)算機(jī)上合法使用軟件,從而有效防止計(jì)算機(jī)軟件被盜版、被非法復(fù)制和被非授權(quán)安裝的違法行為。由于本軟件防盜版技術(shù)使用的TPM安全芯片已經(jīng)嵌入用戶個人計(jì)算機(jī)并銷售給用戶,因此用戶在使用受本發(fā)明技術(shù)保護(hù)的軟件時,無需再額外支付TPM芯片費(fèi)用,有利于該項(xiàng)發(fā)明技術(shù)的推廣。
圖1為本發(fā)明方法的軟件廠商初始化處理流程圖;圖2a為本發(fā)明方法的軟件用戶申請注冊處理流程圖;圖2b為本發(fā)明方法的軟件廠商授權(quán)處理流程圖;圖2c為本發(fā)明方法的軟件用戶本地注冊處理流程圖;圖3為本發(fā)明方法的軟件日常啟動工作流程圖。
具體實(shí)施例方式以下結(jié)合附圖,將詳細(xì)說明本發(fā)明的軟件防盜版方法的各具體實(shí)施方式
。
本發(fā)明所提供的一種基于可信計(jì)算模塊芯片實(shí)現(xiàn)軟件防盜版的方法,是利用密碼技術(shù)和可信計(jì)算模塊芯片(以下簡稱TPM芯片)功能來實(shí)現(xiàn),其包括以下基本步驟a.預(yù)先在軟件用戶計(jì)算機(jī)上安裝可信計(jì)算模塊芯片并完成芯片初始化;b.軟件版權(quán)所有者將選取受本方法保護(hù)的軟件產(chǎn)品中的關(guān)鍵數(shù)據(jù)進(jìn)行截取后,形成隱藏?cái)?shù)據(jù),將不包含隱藏?cái)?shù)據(jù)的軟件產(chǎn)品銷售或傳遞給合法取得本軟件的用戶,同時提供一套軟件注冊工具軟件;c.用戶在正常使用該軟件之前,需要在軟件版權(quán)所有者處進(jìn)行注冊;d.用戶通過軟件注冊工具軟件調(diào)用用戶計(jì)算機(jī)TPM芯片產(chǎn)生不可移植的注冊密鑰對,將注冊密鑰公鑰和其它注冊信息發(fā)給軟件版權(quán)所有者;e.軟件版權(quán)所有者使用用戶注冊密鑰將軟件的隱藏?cái)?shù)據(jù)加密后再傳遞給用戶,加密的數(shù)據(jù)只能由該軟件用戶解密使用;f.用戶每次使用該軟件時都需要利用用戶計(jì)算機(jī)TPM芯片對軟件的隱藏?cái)?shù)據(jù)進(jìn)行解密后方可正常使用。應(yīng)用本發(fā)明技術(shù)可以確保用戶在指定計(jì)算機(jī)上合法使用軟件,并且可以有效防止計(jì)算機(jī)軟件被盜版和被非法復(fù)制、非授權(quán)安裝等違法行為。
本發(fā)明的具體方法步驟如下軟件版權(quán)所有者對于其發(fā)布的某個軟件商品選取其軟件核心代碼中一段或多段信息作為隱藏?cái)?shù)據(jù),被隱藏的代碼數(shù)據(jù)段總數(shù)量m(m≥1根據(jù)發(fā)售的軟件產(chǎn)品數(shù)據(jù)而定)是固定的,但對于每一套銷售給最終用戶的軟件中,通過排列組合原理隨機(jī)從m段中選取n段(1≤n≤m)作為該套軟件唯一的隱藏?cái)?shù)據(jù)。并且計(jì)算得到該套軟件不包含隱藏?cái)?shù)據(jù)部分的完整性校驗(yàn)碼。該隱藏?cái)?shù)據(jù)和完整性校驗(yàn)碼將保留在軟件版權(quán)所有者的數(shù)據(jù)庫服務(wù)器中,正式銷售的每套軟件中將不包含隱藏?cái)?shù)據(jù)和校驗(yàn)碼。
隱藏?cái)?shù)據(jù)的選擇應(yīng)該至少包括用于軟件完整性檢查、判斷軟件是正式版還是試用版,以及判斷是否超過試用有效期等敏感的程序邏輯代碼,以及軟件版權(quán)所有者認(rèn)為有必要保護(hù)的其它核心代碼。軟件版權(quán)所有者在每套軟件出廠時將分配一組唯一且各不相同的編號作為軟件標(biāo)識,其長度L由軟件商自行確定,軟件標(biāo)識與軟件的隱藏?cái)?shù)據(jù)一一對應(yīng)并且存儲在該數(shù)據(jù)庫服務(wù)器中。
每套軟件與一套軟件注冊工具、軟件標(biāo)識等結(jié)合成一套軟件商品,可售賣給軟件用戶,其中的軟件注冊工具軟件也可以從軟件商的公開網(wǎng)站上下載最新升級版本,用于軟件的合法用戶在取得軟件產(chǎn)品后通過互聯(lián)網(wǎng)在軟件商處進(jìn)行注冊登記。
本發(fā)明方法在軟件正常安裝在用戶計(jì)算機(jī)上后,用戶必須在使用軟件前利用所述軟件注冊工具執(zhí)行注冊操作過程,此時,軟件注冊工具將調(diào)用安裝在用戶計(jì)算機(jī)上的TPM芯片隨機(jī)產(chǎn)生一對不可移植的RSA算法或其他非對稱算法密鑰作為注冊密鑰對RegKeyPair,其中私鑰部分PriKey被TPM芯片“封裝”(Wrap),即PriKey被其父密鑰SK或SRK加密后,只將私鑰密文PriKey’存儲在用戶計(jì)算機(jī)硬盤上,并且只能導(dǎo)入用戶計(jì)算機(jī)的TPM芯片解密并在芯片內(nèi)部使用;注意,本發(fā)明方法利用TPM芯片的技術(shù)特點(diǎn),所有對用戶注冊密鑰的加解密操作都是在TPM芯片內(nèi)部進(jìn)行的,因此,盜版者無法通過普通的技術(shù)手段如讀鍵盤,讀內(nèi)存或硬盤信息搜索等獲知密鑰明文和算法過程。注冊密鑰的公鑰部分PubKey(公鑰數(shù)據(jù)將以不公開的特殊格式順序排列)將隨同軟件標(biāo)識、用戶注冊信息如可能包括用戶名稱、服務(wù)的單位名稱等、用戶計(jì)算機(jī)平臺信息如可能包括TPM芯片ID、CPU ID、BIOS ID及計(jì)算機(jī)類型、主板型號等一起由軟件注冊工具發(fā)往軟件版權(quán)所有者。
軟件版權(quán)所有者收到用戶的注冊數(shù)據(jù)后,首先對用戶注冊信息進(jìn)行登記和確認(rèn),如果信息不符合要求則拒絕注冊,返回錯誤信息;信息驗(yàn)證通過后根據(jù)軟件標(biāo)識索引到此套軟件的隱藏?cái)?shù)據(jù)M0,并取得到該套軟件不包含隱藏?cái)?shù)據(jù)部分的完整性校驗(yàn)碼M1,將隱藏?cái)?shù)據(jù)M0和軟件校驗(yàn)碼M1連接,并使用用戶的注冊密鑰公鑰部分PubKey執(zhí)行數(shù)據(jù)“綁定”(Bind)操作,將軟件隱藏?cái)?shù)據(jù)和校驗(yàn)碼“綁定”在軟件用戶的計(jì)算機(jī)上,即使用用戶注冊密鑰公鑰進(jìn)行RSA算法或其他非對稱算法加密得到的數(shù)據(jù)密文m1,m1只能夠通過用戶計(jì)算機(jī)上的TPM芯片解除“綁定”,即在用戶計(jì)算機(jī)的TPM芯片內(nèi)部將密文m1解密還原為M0和M1。
通過用戶提交的軟件標(biāo)識,軟件版權(quán)所有者可以區(qū)分出用戶是正式版用戶還是試用版用戶。如果是軟件試用版用戶,則獲得軟件試用有效期數(shù)值M2正式版軟件M2=0或其它特定負(fù)數(shù)值,試用版軟件可設(shè)定M2的數(shù)值大于零;再將軟件試用有效期數(shù)值M2與軟件標(biāo)識SN連接,并使用用戶的注冊密鑰的公鑰部分對該數(shù)據(jù)執(zhí)行“綁定”得到試用有效期密文m2,將上述m1和m2作為授權(quán)數(shù)據(jù)返回給用戶計(jì)算機(jī)。
軟件試用有效期可以是自軟件第一次在用戶計(jì)算機(jī)上安裝開始后M2天數(shù)或小時數(shù),即采用時間限制;也可以是指軟件自安裝后啟動并使用M2次數(shù),即使用次數(shù)限制。軟件試用有效期的策略選擇由軟件版權(quán)所有者決定,每種類型的軟件商品只能指定使用上述兩種策略中的一種。軟件試用版到達(dá)使用的有效期限后將自動失效。
用戶計(jì)算機(jī)收到軟件版權(quán)所有者發(fā)回的授權(quán)數(shù)據(jù)后,軟件注冊工具自動將用戶私鑰PriKey’和授權(quán)數(shù)據(jù)中的試用有效期密文m2導(dǎo)入TPM芯片,并調(diào)用TPM的解密功能將密文m2還原為試用有效期數(shù)值M2得到軟件有效期,如果M2≤0說明是正式版軟件,則將隱藏?cái)?shù)據(jù)和軟件校驗(yàn)碼密文m1和試用有效期密文m2保存在用戶計(jì)算機(jī)硬盤上,結(jié)束注冊過程;否則說明是試用版軟件,注冊軟件自動調(diào)用TPM功能創(chuàng)建指定的TPM單調(diào)計(jì)數(shù)器并取得計(jì)數(shù)器初始值C0(次數(shù)限制策略),或取得計(jì)算機(jī)系統(tǒng)時鐘當(dāng)前值T0(以毫秒為單位),作為試用期起始值及最后使用時間T1(時間限制策略),再將C0或T0和T1及軟件標(biāo)識SN連接并使用用戶公鑰PubKey執(zhí)行“綁定”得到計(jì)數(shù)器初始值密文m3,最后由軟件注冊工具將隱藏?cái)?shù)據(jù)和軟件校驗(yàn)碼密文m1、試用有效期密文m2和計(jì)數(shù)器初始值密文m3保存在用戶計(jì)算機(jī)硬盤上,完成整個注冊過程。
本發(fā)明方法的TPM芯片中內(nèi)置的單調(diào)計(jì)數(shù)器由用戶創(chuàng)建后,只能由用戶指令觸發(fā)并且單調(diào)遞增,遞增幅度為每次加1。單調(diào)計(jì)數(shù)器及其當(dāng)前值都保存在TPM芯片的物理防護(hù)區(qū)域內(nèi),外界無法探測也不可能攥改和干擾計(jì)數(shù)器工作。
用戶每次運(yùn)行軟件時,首先由軟件程序的引導(dǎo)部分自動將被“封裝”的用戶私鑰密文PriKey’和包含有軟件隱藏?cái)?shù)據(jù)和校驗(yàn)碼的密文m1導(dǎo)入TPM芯片,并調(diào)用TPM的解除“綁定”功能將數(shù)據(jù)密文m1還原得到軟件校驗(yàn)碼M1,隨后在內(nèi)存中對未包含隱藏?cái)?shù)據(jù)的軟件進(jìn)行校驗(yàn)碼驗(yàn)證,確認(rèn)其完整性,驗(yàn)證通過后將控制權(quán)交給軟件核心,驗(yàn)證不通過則終止軟件運(yùn)行。軟件運(yùn)行中遇到需要恢復(fù)隱藏代碼數(shù)據(jù)時,再調(diào)用TPM的解除“綁定”功能將m1還原得到某段隱藏?cái)?shù)據(jù)M0s(s表示隱藏?cái)?shù)據(jù)的某一段)。此時,由于軟件運(yùn)行原先所缺少的核心程序段被補(bǔ)充到內(nèi)存中相應(yīng)位置上,從而使該軟件具備正常運(yùn)行的條件,運(yùn)行過后M0s數(shù)據(jù)會自動銷毀,再次調(diào)用時會重復(fù)上述還原隱藏?cái)?shù)據(jù)過程(此過程貫穿軟件整個的運(yùn)行生命周期)。
同時,軟件核心程序啟動后會立即自動將試用有效期密文m2導(dǎo)入TPM芯片,此時用戶注冊密鑰的私鑰密文PriKey’已導(dǎo)入TPM芯片,并調(diào)用TPM的解除“綁定”功能將試用有效期密文m2還原為試用有效期數(shù)值M2,得到軟件有效期值,根據(jù)M2是否小于等于0判斷軟件是正式版還是試用版。如果是正式版軟件,則軟件正常運(yùn)行。
如果是試用版軟件,由軟件自動將計(jì)數(shù)器初始值密文m3導(dǎo)入TPM芯片,此時用戶注冊密鑰私鑰密文PriKey’已導(dǎo)入TPM芯片,并調(diào)用TPM的解除“綁定”功能將計(jì)數(shù)器初始值密文m3還原為軟件授權(quán)注冊時的TPM單調(diào)計(jì)數(shù)器初始值C0或T0和T1,再調(diào)用TPM功能取得指定TPM單調(diào)計(jì)數(shù)器當(dāng)前值C1,計(jì)算公式E=M2-[(C1-C0)+1]([]表示取整運(yùn)算),或取得計(jì)算機(jī)系統(tǒng)時鐘當(dāng)前值T2(以毫秒為單位),計(jì)算公式E=M2-[(T2-T0)/1000/3600/24],判斷計(jì)算結(jié)果E是否≤0,如果≤0則說明軟件過期,軟件將被停止執(zhí)行;否則如果判斷T2<T1則說明存在惡意修改系統(tǒng)時鐘而非法使用試用版軟件的行為,則軟件會執(zhí)行自毀程序,用戶將不能再繼續(xù)運(yùn)行軟件。如果T2>T1則軟件正常運(yùn)行,當(dāng)軟件正常終止時會再次取得計(jì)算機(jī)系統(tǒng)時鐘當(dāng)前值T2’,并用T2’替換T1值以更新最后使用時間,然后重新生成密文數(shù)據(jù)m3。如果軟件采用試用次數(shù)限制策略,則軟件還將自動向TPM芯片發(fā)送計(jì)數(shù)器加1指令,以便更新單調(diào)計(jì)數(shù)器的當(dāng)前值C1。
本發(fā)明方法中調(diào)用TPM的過程將發(fā)生數(shù)據(jù)傳輸,此類過程均使用TPM的加密傳輸會話功能來實(shí)現(xiàn)TPM與應(yīng)用軟件的數(shù)據(jù)交互和傳遞。即使密文數(shù)據(jù)在TPM內(nèi)部還原為明文需要通過物理或邏輯通訊線路返回給上層軟件,其整個數(shù)據(jù)傳輸?shù)倪^程也都受到TPM加密傳輸會話機(jī)制的保護(hù),任何對于通訊線路的監(jiān)聽、窺探手段都無法截獲或破譯傳輸中的數(shù)據(jù)。
總體來說,本發(fā)明所實(shí)現(xiàn)的一種軟件防盜版的方法,是由軟件版權(quán)所有者提供數(shù)據(jù)庫服務(wù)器、軟件商品初始化程序;軟件用戶端提供個人計(jì)算機(jī)和可信計(jì)算模塊(TPM)芯片;通過軟件注冊工具和受保護(hù)軟件產(chǎn)品,調(diào)用TPM芯片提供的保護(hù)功能,并對受保護(hù)軟件產(chǎn)品進(jìn)行如下控制如圖1所示,軟件商品售賣前在軟件廠商處需要進(jìn)行初始化操作。由軟件商品初始化程序首先為每套正式發(fā)售的軟件商品進(jìn)行編號,產(chǎn)生軟件標(biāo)識,編號為長度L位0~9的數(shù)字,然后在此類軟件產(chǎn)品中選取其核心代碼中的m段(m≥1根據(jù)發(fā)售的軟件產(chǎn)品數(shù)據(jù)而定)數(shù)據(jù)作為候選數(shù)據(jù)(可以在初始化過程前或在軟件設(shè)計(jì)階段完成),通過排列組合原理從候選數(shù)據(jù)中隨機(jī)選取n段(1≤n≤m)作為該套軟件的“隱藏?cái)?shù)據(jù)”,每段數(shù)據(jù)長度以字節(jié)數(shù)記為DL,再將軟件商品編號即軟件標(biāo)識、“隱藏?cái)?shù)據(jù)”信息存儲到軟件廠商端的數(shù)據(jù)庫服務(wù)器中,最后將這套軟件產(chǎn)品中原“隱藏?cái)?shù)據(jù)”位置的DL字節(jié)核心數(shù)據(jù)刪除,循環(huán)執(zhí)行n次上述操作,然后計(jì)算該套軟件不包含“隱藏?cái)?shù)據(jù)”的程序部分完整性校驗(yàn)碼。將該套軟件“隱藏?cái)?shù)據(jù)”和完整性校驗(yàn)碼存儲在軟件廠商數(shù)據(jù)庫中。并且將處理過的軟件刻錄到CD或DVD光盤上。這樣即完成軟件產(chǎn)品初始化和制作過程。由于上述生產(chǎn)過程采用隨機(jī)抽取核心程序中的數(shù)據(jù)并隱藏的方法,針對不同的軟件標(biāo)識有不同的隱藏?cái)?shù)據(jù),因此盜版者對不包含隱藏?cái)?shù)據(jù)的軟件產(chǎn)品進(jìn)行盜版拷貝就失去了意義。
如圖2a所示的,用戶通過合法途徑獲得軟件商品后須進(jìn)行軟件注冊授權(quán)操作。用戶使用軟件光盤上附帶的軟件注冊工具(也可從軟件廠商網(wǎng)站上下載),首先調(diào)用用戶計(jì)算機(jī)的TPM芯片功能產(chǎn)生用戶的不可移植2048位模數(shù)RSA算法或其他非對稱算法密鑰對RegKeyPair,作為用戶注冊密鑰,其中私鑰PriKey被TPM加密“封裝”為私鑰密文PriKey’存儲在計(jì)算機(jī)硬盤上,公鑰PubKey和軟件標(biāo)識以及用戶注冊信息則發(fā)送給軟件廠商。以上就是軟件申請注冊過程。在上述過程中,由于用戶注冊密鑰產(chǎn)生和加密算法執(zhí)行過程都在TPM芯片的硬件中完成,導(dǎo)出到TPM芯片外部使用的數(shù)據(jù)都是經(jīng)過TPM加密過的數(shù)據(jù),因此在TPM芯片外部無法通過某種手段獲得密鑰等敏感數(shù)據(jù)的明文,軟件破解者要想獲得用戶的注冊密鑰,唯一可能使用的方法就只有去攻擊2048位模數(shù)的RSA加密算法,而現(xiàn)實(shí)中這是幾乎不可能成功的。
如圖2b所示,軟件版權(quán)所有者在收到軟件用戶的申請注冊數(shù)據(jù)后,首先對用戶注冊信息進(jìn)行登記和確認(rèn),注冊信息不符合要求的將拒絕授權(quán)并退出注冊受理程序;信息驗(yàn)證通過后,根據(jù)軟件標(biāo)識從軟件版權(quán)所有者數(shù)據(jù)庫服務(wù)器中索引到該套軟件的“隱藏?cái)?shù)據(jù)”M0和該套軟件不包含“隱藏?cái)?shù)據(jù)”部分的完整性校驗(yàn)碼M1,將隱藏?cái)?shù)據(jù)M0和軟件校驗(yàn)碼M1連接,并使用軟件用戶的注冊公鑰將此數(shù)據(jù)加密“綁定”在用戶計(jì)算機(jī)上,得到隱藏?cái)?shù)據(jù)密文m1。
軟件版權(quán)所有者根據(jù)軟件標(biāo)識可以得知軟件用戶類型為正式版還是試用版用戶,然后獲得軟件商品試用有效期數(shù)值M2(假設(shè)正式版軟件M2=0),再將M2與軟件標(biāo)識連接,并使用用戶的注冊密鑰公鑰對該數(shù)據(jù)執(zhí)行“綁定”得到試用有效期密文m2,將上述隱藏?cái)?shù)據(jù)及軟件校驗(yàn)碼密文m1和試用有效期密文m2作為授權(quán)數(shù)據(jù)返回給用戶計(jì)算機(jī)。以上就是軟件授權(quán)過程。
如圖2c所示,用戶計(jì)算機(jī)收到軟件版權(quán)所有者發(fā)回的授權(quán)數(shù)據(jù)m1和m2后,軟件注冊工具自動將用戶注冊密鑰私鑰密文PriKey’和授權(quán)數(shù)據(jù)中的試用有效期密文m2導(dǎo)入TPM芯片,并調(diào)用TPM的解除“綁定”功能將試用有效期密文m2還原為試用有效期數(shù)值M2得到軟件有效期,判斷如果M2=0軟件為正式版,則將隱藏?cái)?shù)據(jù)和軟件校驗(yàn)碼密文m1和試用有效期密文m2保存在用戶計(jì)算機(jī)的硬盤上,結(jié)束注冊過程;否則為試用版(以有效期策略為次數(shù)限制來舉例),軟件注冊工具自動調(diào)用TPM功能創(chuàng)建指定的TPM單調(diào)計(jì)數(shù)器并取得計(jì)數(shù)器初始值C0,將C0與軟件標(biāo)識SN連接,并使用用戶注冊公鑰PubKey執(zhí)行“綁定”得到計(jì)數(shù)器初始值密文m3,最后由軟件注冊工具將隱藏?cái)?shù)據(jù)和軟件校驗(yàn)碼密文m1、試用有效期密文m2和計(jì)數(shù)器初始值密文m3保存在本機(jī)硬盤上,完成整個本地注冊過程。由于整個注冊過程中傳輸?shù)年P(guān)鍵數(shù)據(jù)全部采用RSA非對稱密鑰算法進(jìn)行加密,解決了通訊過程中的數(shù)據(jù)安全性,使盜版者無法通過偵聽軟件注冊過程截獲破譯注冊數(shù)據(jù)來對軟件實(shí)施盜版。
如圖3所示,用戶每次使用軟件時,軟件引導(dǎo)程序首先自動將用戶注冊密鑰私鑰密文PriKey’和包含有隱藏?cái)?shù)據(jù)及軟件校驗(yàn)碼的密文m1導(dǎo)入TPM芯片,并調(diào)用TPM的解除“綁定”功能將密文數(shù)據(jù)m1還原得到軟件校驗(yàn)碼M1,隨后在內(nèi)存中對不包含隱藏?cái)?shù)據(jù)的軟件進(jìn)行校驗(yàn)碼驗(yàn)證確認(rèn)其完整性,驗(yàn)證通過后將控制權(quán)交給軟件核心,驗(yàn)證不通過則終止軟件運(yùn)行。軟件運(yùn)行中遇到需要恢復(fù)隱藏代碼數(shù)據(jù)時,再調(diào)用TPM的解除“綁定”功能將m1還原得到某段隱藏?cái)?shù)據(jù)M0s(s表示隱藏?cái)?shù)據(jù)的某一段),軟件運(yùn)行過后M0s數(shù)據(jù)會自動銷毀(此過程貫穿軟件整個的運(yùn)行生命周期)。軟件核心程序啟動后會自動將試用有效期密文m2導(dǎo)入TPM芯片,并調(diào)用TPM的解除“綁定”功能將試用有效期密文m2還原為軟件試用有效期數(shù)值M2,得到軟件有效期值,根據(jù)試用有效期數(shù)值M2是否等于0(假設(shè)M2=0為正式版)判斷軟件是正式版還是試用版。如果是正式版軟件則繼續(xù)運(yùn)行,啟動過程結(jié)束。如果是試用版,則軟件自動將單調(diào)計(jì)數(shù)器初始值密文m3導(dǎo)入到TPM芯片,并調(diào)用TPM的解除“綁定”功能將計(jì)數(shù)器初始值密文m3還原為授權(quán)注冊時的TPM單調(diào)計(jì)數(shù)器初始值C0,再調(diào)用TPM功能取得指定TPM單調(diào)計(jì)數(shù)器當(dāng)前值C1,計(jì)算公式E=M2-[(C1-C0)+1],并判斷計(jì)算結(jié)果E是否≤0,如果≤0則說明軟件過期,軟件將被停止執(zhí)行;否則軟件繼續(xù)運(yùn)行,啟動過程結(jié)束。
本發(fā)明方法由于利用了TPM芯片的數(shù)據(jù)封裝、綁定和加密傳輸會話等安全功能特性,使得由本發(fā)明方法保護(hù)的軟件商品可以確保在指定的用戶計(jì)算機(jī)上合法使用,非法復(fù)制的軟件無法在用戶計(jì)算機(jī)以外的任何個人計(jì)算機(jī)上運(yùn)行;其次,由于受保護(hù)的軟件中關(guān)鍵的邏輯代碼是“隱藏?cái)?shù)據(jù)”且隱藏位置對每一套軟件產(chǎn)品都不相同,而且“隱藏?cái)?shù)據(jù)”只能在用戶計(jì)算機(jī)內(nèi)存中還原,此外受保護(hù)軟件還會實(shí)施特殊的“混合亂序”、“加擾”和多層嵌套等內(nèi)存代碼動態(tài)保護(hù)機(jī)制,所以對軟件實(shí)施的任何反編譯或跟蹤等破解手段將無法得逞;還有,本發(fā)明技術(shù)方法,使得用戶必須在使用軟件前在軟件廠商處注冊,否則無法使用,因此對任何使用相同軟件標(biāo)識進(jìn)行注冊的行為,軟件廠商可以很準(zhǔn)確的獲知此信息,并采取相應(yīng)措施或?qū)Σ摺?br>
此外本發(fā)明利用TPM芯片內(nèi)置在保護(hù)區(qū)域內(nèi)的單調(diào)計(jì)數(shù)器,不依賴于存儲在計(jì)算機(jī)標(biāo)準(zhǔn)存儲介質(zhì)(如軟磁盤、硬盤或U盤等)中的計(jì)數(shù)器數(shù)據(jù),可以保證試用版軟件只能在軟件有效期內(nèi)合法運(yùn)行。
因?yàn)門PM芯片是焊接在計(jì)算機(jī)主板上的一塊安全芯片,用戶在購買計(jì)算機(jī)時即獲得此芯片,用戶購買任何受本發(fā)明技術(shù)保護(hù)的軟件商品都無須為硬件芯片再額外支付費(fèi)用,而TPM芯片的安全性絕對可以媲美甚至超越目前使用的任何一款硬件防盜版產(chǎn)品,所以應(yīng)用本技術(shù)發(fā)明,可以使軟件商和用戶在安全性和經(jīng)濟(jì)性方面都能夠從中受益。
根據(jù)IDC的權(quán)威預(yù)測,TPM芯片將成為個人計(jì)算機(jī)的標(biāo)準(zhǔn)配置產(chǎn)品,到2007年安裝TPM芯片的個人計(jì)算機(jī)將占到市場保有量的80%以上,因此本發(fā)明所述的基于TPM芯片和密碼技術(shù)的軟件防盜版方法在軟件業(yè)具有廣泛的應(yīng)用前景。
同時應(yīng)當(dāng)指出的是,上述針對具體實(shí)施例的描述較為詳細(xì),技術(shù)用語可能較為具體,例如上述描述中所采用的軟件版權(quán)所有者一詞應(yīng)指軟件所有權(quán)的售賣者,總之,對具體技術(shù)術(shù)語的描述僅為描述之方便,對本領(lǐng)域技術(shù)人員來說,顯然根據(jù)本發(fā)明的技術(shù)方案可以有更多的等同替換構(gòu)思,這些構(gòu)思都應(yīng)屬于本發(fā)明的權(quán)利要求所構(gòu)建的專利保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于可信計(jì)算模塊芯片實(shí)現(xiàn)軟件防盜版的方法,包括以下步驟a.預(yù)先在軟件用戶計(jì)算機(jī)上安裝可信計(jì)算模塊芯片及其支撐軟件,并完成芯片初始化;b.軟件版權(quán)所有者將受保護(hù)的軟件產(chǎn)品中的一段或幾段選取的關(guān)鍵數(shù)據(jù)隱藏,并將不包含隱藏?cái)?shù)據(jù)的軟件產(chǎn)品傳遞給合法取得該軟件的用戶,同時向用戶提供一軟件注冊工具軟件;c.用戶在正常使用該軟件之前,需在軟件版權(quán)所有者處進(jìn)行注冊;d.用戶通過所述軟件注冊工具軟件調(diào)用本地計(jì)算機(jī)內(nèi)的可信計(jì)算模塊芯片產(chǎn)生不可移植的注冊密鑰對,將注冊密鑰公鑰和注冊信息發(fā)給軟件版權(quán)所有者;e.軟件版權(quán)所有者確認(rèn)用戶合法性后,使用用戶注冊密鑰公鑰將隱藏?cái)?shù)據(jù)加密再傳遞給用戶,加密的隱藏?cái)?shù)據(jù)只能由該用戶解密使用;f.用戶每次使用該軟件之前都須調(diào)用本機(jī)可信計(jì)算模塊芯片對軟件的隱藏?cái)?shù)據(jù)進(jìn)行解密方可正常使用。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述隱藏?cái)?shù)據(jù)由所述軟件版權(quán)所有者在每一套銷售的軟件中從核心代碼中一段或多段隨機(jī)選取,其總長度為任意字節(jié)數(shù);所述隱藏?cái)?shù)據(jù)保留在軟件版權(quán)所有者的數(shù)據(jù)庫服務(wù)器中,其正式銷售的軟件中不包含該隱藏?cái)?shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述隱藏?cái)?shù)據(jù)的選擇至少包括用于判斷軟件是正式版還是試用版,以及判斷是否超過試用有效期的核心邏輯判斷代碼,以防止對軟件的非法破解。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括在軟件出廠時將分配一組唯一且各不相同的編號作為其軟件標(biāo)識,其長度由軟件版權(quán)所有者隨機(jī)確定,該軟件標(biāo)識與其隱藏?cái)?shù)據(jù)對應(yīng)存儲在所述數(shù)據(jù)庫服務(wù)器中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括設(shè)置每套軟件與一軟件注冊工具、其對應(yīng)軟件標(biāo)識結(jié)合成一套軟件商品;并且所述軟件注冊工具可從網(wǎng)站上下載,用于軟件的合法用戶在取得軟件產(chǎn)品后通過互聯(lián)網(wǎng)在軟件版權(quán)所有者處進(jìn)行注冊登記。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述軟件注冊工具的注冊步驟包括c1、軟件注冊工具將調(diào)用安裝在用戶計(jì)算機(jī)上可信計(jì)算模塊芯片隨機(jī)產(chǎn)生一對不可移植的RSA算法或其他非對稱算法密鑰作為用戶注冊密鑰對;c2、其中該注冊密鑰的私鑰部分被可信計(jì)算模塊芯片“封裝”,即使用該密鑰的父密鑰對該密鑰的私鑰部分進(jìn)行RSA算法或其他非對稱算法加密,然后只將私鑰密文存儲在用戶計(jì)算機(jī)硬盤上,并且該封裝私鑰只能導(dǎo)入本機(jī)的可信計(jì)算模塊芯片解密并在芯片內(nèi)部使用,其公鑰部分隨同軟件標(biāo)識等用戶注冊數(shù)據(jù)一起由軟件注冊工具發(fā)往軟件版權(quán)所有者;c3、軟件版權(quán)所有者收到用戶注冊數(shù)據(jù)后,對用戶注冊信息進(jìn)行登記和確認(rèn),如果信息不符合要求則拒絕注冊返回錯誤;信息驗(yàn)證通過后根據(jù)軟件標(biāo)識索引到此套軟件的隱藏?cái)?shù)據(jù),并使用該用戶的注冊密鑰公鑰將此數(shù)據(jù)“綁定”在軟件用戶的計(jì)算機(jī)上,即軟件版權(quán)所有者使用用戶注冊密鑰公鑰對隱藏?cái)?shù)據(jù)執(zhí)行RSA算法或其他非對稱算法加密得到的隱藏?cái)?shù)據(jù)密文,該密文只能夠通過用戶計(jì)算機(jī)上的可信計(jì)算模塊芯片解除“綁定”,即在可信計(jì)算模塊芯片內(nèi)部使用封裝私鑰將密文解密。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述注冊步驟還包括c4、通過用戶提交的軟件標(biāo)識,軟件版權(quán)所有者區(qū)分出用戶是正式版用戶還是試用版用戶;如果是軟件試用版用戶,則獲得軟件試用有效期數(shù)值,再將軟件試用有效期數(shù)值與軟件標(biāo)識連接,并使用用戶的注冊密鑰公鑰對該數(shù)據(jù)執(zhí)行“綁定”操作得到試用有效期密文,將所述隱藏?cái)?shù)據(jù)密文和試用有效期密文作為授權(quán)數(shù)據(jù)返回給用戶計(jì)算機(jī);c5、用戶計(jì)算機(jī)收到軟件版權(quán)所有者發(fā)回的授權(quán)數(shù)據(jù)后,軟件注冊工具將用戶私鑰和授權(quán)數(shù)據(jù)中的試用有效期密文導(dǎo)入可信計(jì)算模塊芯片,并調(diào)用可信計(jì)算模塊的解除“綁定”功能將試用有效期密文解密還原得到軟件試用有效期數(shù)值;c6、如果軟件為正式軟件,則將隱藏?cái)?shù)據(jù)密文和試用有效期密文保存在本機(jī)硬盤上,結(jié)束注冊過程;否則調(diào)用可信計(jì)算模塊功能創(chuàng)建指定的可信計(jì)算模塊單調(diào)計(jì)數(shù)器并取得計(jì)數(shù)器當(dāng)前值作為計(jì)數(shù)器初始值,或取得計(jì)算機(jī)系統(tǒng)時鐘當(dāng)前值作為試用軟件啟用時間和最后一次使用時間的初始值,將可信計(jì)算模塊單調(diào)計(jì)數(shù)器初始值或軟件啟用時間和最后一次使用時間與軟件標(biāo)識連接,并使用用戶注冊密鑰公鑰執(zhí)行可信計(jì)算模塊“綁定”操作得到計(jì)數(shù)器初始值密文,由軟件注冊工具將隱藏?cái)?shù)據(jù)密文、試用有效期密文和計(jì)數(shù)器初始值密文保存在本機(jī)硬盤上,完成注冊過程。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟f還包括f1、用戶每次運(yùn)行軟件時,由軟件程序的引導(dǎo)部分將被封裝的用戶注冊私鑰導(dǎo)入可信計(jì)算模塊芯片,當(dāng)遇到需要還原隱藏的代碼數(shù)據(jù)時,調(diào)用可信計(jì)算模塊的解除綁定功能將隱藏?cái)?shù)據(jù)密文還原為明文數(shù)據(jù),并通過加密傳輸會話將還原的程序數(shù)據(jù)釋放到內(nèi)存中運(yùn)行,程序正常運(yùn)行后自動銷毀此前還原的代碼數(shù)據(jù),以后再遇到隱藏?cái)?shù)據(jù)時會重復(fù)上述數(shù)據(jù)還原過程,此過程將貫穿軟件整個運(yùn)行生命周期;f2、所述軟件程序啟動后會將試用有效期密文導(dǎo)入可信計(jì)算模塊芯片,并調(diào)用可信計(jì)算模塊的解除綁定功能將試用有效期密文還原為軟件試用有效期數(shù)值,根據(jù)軟件試用有效期數(shù)值判斷軟件是正式版還是試用版;f3、如果是正式版軟件,則正常運(yùn)行;如果是試用版軟件,由軟件將計(jì)數(shù)器初始值密文導(dǎo)入可信計(jì)算模塊芯片,并調(diào)用可信計(jì)算模塊的解除綁定功能將計(jì)數(shù)器初始值密文還原為注冊授權(quán)時的可信計(jì)算模塊芯片指定單調(diào)計(jì)數(shù)器的初始值,再調(diào)用可信計(jì)算模塊功能取得指定可信計(jì)算模塊單調(diào)計(jì)數(shù)器的當(dāng)前值,通過比較計(jì)數(shù)器初始值和當(dāng)前值可以判斷軟件是否過期;或根據(jù)當(dāng)前計(jì)算機(jī)系統(tǒng)時鐘值和保存在試用有效期密文中的啟用時間和最后一次使用時間,來判斷軟件是否過期以及是否存在惡意修改系統(tǒng)時鐘的欺騙行為。f4、如軟件未過期則繼續(xù)運(yùn)行,此時軟件如果采用的是單調(diào)計(jì)數(shù)器實(shí)現(xiàn)的次數(shù)限制試用策略,則還需要向可信計(jì)算模塊芯片發(fā)送單調(diào)計(jì)數(shù)器加1指令,更新單調(diào)計(jì)數(shù)器當(dāng)前值;如軟件過期則軟件立即終止運(yùn)行,并自動銷毀存儲在用戶計(jì)算機(jī)中的隱藏?cái)?shù)據(jù)。
全文摘要
本發(fā)明公開了一種基于可信計(jì)算模塊芯片實(shí)現(xiàn)軟件防盜版的方法,包括預(yù)先在軟件用戶計(jì)算機(jī)上安裝可信計(jì)算模塊芯片及其支撐軟件,并完成芯片初始化;軟件版權(quán)所有者將受保護(hù)的軟件產(chǎn)品中的一段或幾段選取的關(guān)鍵數(shù)據(jù)隱藏,并將不包含隱藏?cái)?shù)據(jù)的軟件產(chǎn)品傳遞給合法取得該軟件的用戶,同時向用戶提供一軟件注冊工具軟件;用戶通過所述軟件注冊工具軟件調(diào)用本地計(jì)算機(jī)內(nèi)的可信計(jì)算模塊芯片產(chǎn)生不可移植的注冊密鑰對,將注冊密鑰公鑰和注冊信息發(fā)給軟件版權(quán)所有者。本發(fā)明的軟件防盜版的方法由于利用了TPM芯片的數(shù)據(jù)封裝和綁定、加密傳輸會話等安全特性,有效防止計(jì)算機(jī)軟件被盜版、被非法復(fù)制和被非授權(quán)安裝等違法行為。
文檔編號G06F21/00GK1740940SQ20051003724
公開日2006年3月1日 申請日期2005年9月9日 優(yōu)先權(quán)日2005年9月9日
發(fā)明者楊晶, 劉宏偉, 劉長生, 高萬鵬 申請人:北京兆日科技有限責(zé)任公司