專利名稱:軟件保護裝置中實時時鐘的遠程校準方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機安全領(lǐng)域,特別是一種軟件保護裝置中對實時 時鐘進行遠程校準的方法。
背景技術(shù):
在軟件版權(quán)保護領(lǐng)域,對軟件的使用進行限時控制是常用的方法, 例如軟件定期試用、租賃、定期使用許可等模式,即軟件只能在某一 設(shè)定的日期之前被使用,這要求軟件保護裝置必須能夠獲得當前的實 時時間,以便對軟件的運行進行控制。獲得實時時間的有效的方法之一是給軟件保護裝置附加時鐘芯片 和電池。無論軟件保護裝置是否上電工作,時鐘芯片始終在計時。當 軟件保護裝置下電時,由電池為時鐘芯片供電。因此時鐘芯片能夠正 常計時的時間由電池容量決定。如果電池電量耗盡使得時鐘芯片停止 計時,或者電量不足影響時鐘芯片的計時精度,軟件保護裝置都無法 獲得實時時間以實施對受保護軟件的使用控制。此外,外界環(huán)境干擾(如強烈的電磁輻射)也會引起時鐘芯片功能異常,導致計時出錯。 另外,軟件破解者有可能會給時鐘芯片放電,或通過芯片的信號管腳 發(fā)送命令以改變芯片內(nèi)的計時信息,從而獲得超出軟件使用期限的使 用授權(quán)。如果軟件保護裝置內(nèi)的實時時鐘早于實時時間,將使得軟件的限時使用控制失效,損害了軟件商的利益;如果晚于實時時間,則軟件在有效期內(nèi)被禁止使用,損害了使用者的利益。軟件商只能采用更換 軟件保護裝置或重新設(shè)置實時時鐘的方法,這無疑將增加軟件商的物 力和管理成本。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種對軟件保護裝置內(nèi)的實時時鐘進行動 態(tài)記錄和有效性判斷的方法,并且當發(fā)現(xiàn)異常時可通過遠程時鐘服務 器對其進行實時時鐘校準,以解決現(xiàn)有技術(shù)中由于電池耗盡或其它原 因使得時鐘芯片的計時數(shù)據(jù)無效的問題。為了便于敘述,首先定義以下概念 實時時間當前實際的日期和時刻; 實時時鐘時鐘芯片計時的時間;記錄時間軟件保護裝置記錄在其非易失存儲器中的時間;主機時間軟件保護裝置從本地主機獲得的日期和時刻信息,該 時間可被人為修改,因此不一定與實時時間相符;時鐘服務器時間時鐘服務器發(fā)送出的響應數(shù)據(jù)包中包含的日 期和時刻信息數(shù)據(jù),該時間是可信的實時時間。為實現(xiàn)上述目的,本發(fā)明提出一種軟件保護裝置中實時時鐘的遠 程校準方法,包括實時時鐘遠程校準流程,其具體包括以下步驟cl.軟件保護裝置向遠程時鐘服務器發(fā)送請求數(shù)據(jù)包;c2.時鐘服務器接收請求數(shù)據(jù)包后,生成響應數(shù)據(jù)包并發(fā)送給軟件 保護裝置,該響應數(shù)據(jù)包內(nèi)包含時鐘服務器時間;C3.軟件保護裝置接收響應數(shù)據(jù)包并驗證其有效性,根據(jù)主機時間準。本發(fā)明的軟件保護裝置中實時時鐘的遠程校準的啟動方法,可以采用以下步驟a. 軟件保護裝置在上電后,其控制器將從時鐘芯片讀取的實時時 鐘與從該裝置內(nèi)的非易失存儲器中讀取的記錄時間進行比較;b. 如果a步驟中的比較結(jié)果為所述實時時鐘晚于記錄時間,則對 受保護軟件實施正常的軟件保護功能,并定期將從時鐘芯片讀取 的實時時鐘記錄到所述非易失存儲器中以更新記錄時間;c. 如果a步驟中的比較結(jié)果為所述實時時鐘早于記錄時間,則啟 動實時時鐘遠程才交準流程;d. 軟件保護裝置根據(jù)經(jīng)過校準的實時時鐘對受保護軟件實施軟件 保護功能。在受保護軟件發(fā)布時,對所述時鐘芯片的實時時鐘進行設(shè)置并將 所設(shè)時間記錄在所述非易失存儲器中,同時對時鐘芯片啟動計時。cl步驟中的請求數(shù)據(jù)包包含以下內(nèi)容的至少其中一項軟件保護 裝置的設(shè)備信息;請求數(shù)據(jù)包編號,該編號記錄在所述非易失存儲器 中,其在受保護軟件發(fā)布時設(shè)置初始值為0,以后每次發(fā)送請求數(shù)據(jù)包 后加l;隨機信息,其由軟件保護裝置在生成請求數(shù)據(jù)包時產(chǎn)生并記錄 到所述非易失存儲器中。c2步驟中的響應數(shù)據(jù)包包含以下內(nèi)容的至少其中 一項實時時間;請求數(shù)據(jù)包中包含的軟件保護裝置的設(shè)備信息;請求數(shù)據(jù)包中包含的請求數(shù)據(jù)包編號,該編號記錄在所述非易失存儲器中,其在受保護軟件發(fā)布時設(shè)置初始值為0,以后每次發(fā)送請求數(shù)據(jù)包后加1;請求數(shù)據(jù) 包中包含的隨機信息,其由軟件保護裝置在生成請求數(shù)據(jù)包時產(chǎn)生并 記錄在所述非易失存儲器中。在c2和c3步驟中,時鐘服務器和軟件保護裝置共享一個對稱密 鑰以對響應數(shù)據(jù)包進行加密和解密。在c2和c3步驟中,所述時鐘服務器還可對所述響應數(shù)據(jù)包附加 驗證數(shù)據(jù)以待所述軟件保護裝置加以驗證,所述驗證數(shù)據(jù)由所述時鐘 服務器使用密碼學算法對響應數(shù)據(jù)包進行數(shù)據(jù)運算產(chǎn)生。在c3步驟中,所述軟件保護裝置對響應數(shù)據(jù)包有效性的驗證過程 包括下列步驟的至少其中 一個所述響應數(shù)據(jù)包中包含的軟件保護裝 置設(shè)備信息與軟件保護裝置實際設(shè)備信息的 一致性驗證;所述響應數(shù) 據(jù)包中包含的請求數(shù)據(jù)包編號與所述軟件保護裝置記錄的請求數(shù)據(jù)包 編號的一致性驗證;所述響應數(shù)據(jù)包中包含的隨機信息與所述軟件保 護裝置記錄的包含在請求數(shù)據(jù)包中的隨機信息的一致性驗證;使用響 應數(shù)據(jù)包中包含的可驗證數(shù)據(jù)對響應數(shù)據(jù)包的完整性和不可偽造性進 行驗證;如果所述驗證未通過,則進入異常處理流程,具體為禁止受 保護軟件的使用、重新啟動遠程校準流程或者其他控制策略。在c3步驟中,所述根據(jù)主機時間與所述時鐘服務器時間的比較結(jié) 果對時鐘芯片的實時時鐘進行校準的具體過程為如果主機時間晚于 所述時鐘服務器時間,則將該主機時間設(shè)置為時鐘芯片的實時時間; 如果主機時間早于所述時鐘服務器時間,則將該時鐘服務器時間設(shè)置為時鐘芯片的實時時間。如果所述遠程校準流程已經(jīng)啟動但尚未完成,則立即禁止受保護 軟件的使用。本發(fā)明確保了軟件保護裝置中實時時鐘的可信度和精確度,為軟 件開發(fā)商提供了方便有效的日期限制等軟件保護功能。
圖1為本發(fā)明的實時時鐘遠程校準方法中的裝置結(jié)構(gòu)示意圖; 圖2為本發(fā)明的實時時鐘的遠程校準方法的控制流程示意圖。
具體實施方式
下面結(jié)合具體實施例對本發(fā)明內(nèi)容做詳盡描述。圖1為本發(fā)明的實時時鐘遠程校準方法中的裝置結(jié)構(gòu)示意圖。如 圖所示,軟件保護裝置1包括非易失存儲器4、控制器5、時鐘芯片6 和電池7,其中非易失存儲器4中存儲有記錄時間,時鐘芯片6提供實 時時鐘,由控制器5進行讀寫數(shù)據(jù)等控制操作。軟件保護裝置1通過計算機接口與本地主機2相連接。本地主機2 提供主機時間,并通過網(wǎng)絡(luò)連接到遠程的提供時鐘服務器時間的時鐘 服務器3。圖2為本發(fā)明的實時時鐘的遠程校準方法的控制流程示意圖。如圖所示,軟件保護裝置上電后(S01),控制器讀取時鐘芯片的 實時時鐘(S02)和非易失存儲器中的記錄時間(S03),并判斷實時時 鐘是否晚于記錄時間(S04 )。如果判斷為實時時鐘晚于記錄時間,說明實時時鐘可信,進入正 常的軟件保護的控制流程,同時定期讀取實時時鐘并記錄到非易失存 儲器中以更新記錄時間(S05),以防突然掉電等情況。如果判斷為實時時鐘早于記錄時間,說明實時時鐘不可信,這可 能是由于電池耗盡或者其它因素引起時鐘芯片的計時不正常,此時啟動遠程校準流程(S06),以強制從時鐘服務器端獲取正確的實時時間。啟動遠程校準流程后,軟件保護裝置產(chǎn)生一個隨機數(shù),與設(shè)備唯一序列號組成請求數(shù)據(jù)包(S07),經(jīng)由主機發(fā)送給時鐘服務器(S08)。請求數(shù)據(jù)包中可以包括軟件保護裝置的設(shè)備信息(如硬件唯一 序列號)、請求數(shù)據(jù)包的編號(該編號記錄在非易失存儲器中,在軟件 保護裝置發(fā)布時初始設(shè)置為0,以后每次發(fā)送請求數(shù)據(jù)包后加1)、隨 機信息(由軟件保護裝置在生成請求數(shù)據(jù)包時產(chǎn)生并記錄到非易失存 儲器中,該隨機信息可以是硬件產(chǎn)生的一定長度的隨機數(shù))或其它內(nèi) 容的其中一項或幾項。本發(fā)明中使用密碼學功能來保證響應數(shù)據(jù)包的完整性和不可偽造 性。軟件保護裝置和時鐘服務器可以共享一個對稱密鑰,對數(shù)據(jù)包進 行加解密,使得攻擊者無法修改和偽造數(shù)據(jù)包。時鐘服務器也可以對 響應數(shù)據(jù)包附加可驗證數(shù)據(jù),該數(shù)據(jù)由時鐘服務器使用密碼學算法生 成,被軟件保護裝置驗證其有效性,而他人無法生成,例如可以采用 MAC、 HMAC、數(shù)字簽名等密碼學算法對響應數(shù)據(jù)包的數(shù)據(jù)運算產(chǎn)生。本實施例中采用對響應數(shù)據(jù)包附加可驗證數(shù)據(jù)的方案。時鐘服務 器接收到請求數(shù)據(jù)包后(S09),將當前的實時時間、請求數(shù)據(jù)包中包 含的隨機數(shù)和設(shè)備唯一序列號組成響應數(shù)據(jù)包數(shù)據(jù),并用服務器私鑰對響應數(shù)據(jù)包進行數(shù)字簽名附加到響應數(shù)據(jù)包中(S10),經(jīng)由主機返 回給軟件保護裝置(Sll)。響應數(shù)據(jù)包中包含有實時時間,并且與請求數(shù)據(jù)包相應地包含有 請求數(shù)據(jù)包中的設(shè)備信息、請求數(shù)據(jù)包中的編號、請求數(shù)據(jù)包中的隨 機信息、或其它內(nèi)容的其中一項或幾項。軟件保護裝置接收響應數(shù)據(jù)包后(S12),驗證響應數(shù)據(jù)包中的隨機數(shù)和設(shè)備唯一序列號與內(nèi)部保存的信息是否 一致,再用裝置內(nèi)保存的服務器公鑰驗證數(shù)字簽名(S13)。根據(jù)請求數(shù)據(jù)包和響應數(shù)據(jù)包所包含內(nèi)容的 一致性,上述的對響 應數(shù)據(jù)包的有效性的驗證過程可包括驗證響應數(shù)據(jù)包中的設(shè)備信息、 請求數(shù)據(jù)包編號、隨機信息或者可驗證數(shù)據(jù)與軟件保護裝置的相應數(shù) 據(jù)的一致性的其中一項或幾項。如果所述驗證未通過,響應數(shù)據(jù)包無 效,則進入異常處理流程(S14),可以是禁止受保護軟件的使用,重 新啟動遠程校準流程,或是其它控制策略。如果上述驗證均通過,則 認為是一個有效的響應數(shù)據(jù)包,提取其中的服務器時間更新實時時鐘。由于響應數(shù)據(jù)包從服務器端發(fā)出到軟件保護裝置端接收會有延 時,因此在更新實時時鐘之前可以利用主機時間進行《奮正,修正時需 要判斷主機時間的有效性,即判斷主機時間是否晚于時鐘服務器時間 (S15)。只有在主機時間晚于服務器時間的情況下,才采用主機時間 校準實時時鐘(S16),否則采用時鐘服務器時間纟交準實時時鐘(S17)。 當成功完成上述操作后,結(jié)束遠程校準流程(S18),進入對軟件保護 的控制流程(S05)。此外,如果遠程校準流程已經(jīng)啟動但尚未完成, 還可以立即禁止對受保護軟件的使用。本發(fā)明不局限于上述特定實施例子,在不背離本發(fā)明精神及其實形,但這些相應改變和變形都應屬于本發(fā)明所附權(quán)利要求保護范圍之 內(nèi)。
權(quán)利要求
1、一種軟件保護裝置中實時時鐘的遠程校準方法,其特征在于,包括實時時鐘遠程校準流程,其具體包括以下步驟c1.軟件保護裝置向遠程時鐘服務器發(fā)送請求數(shù)據(jù)包;c2.時鐘服務器接收請求數(shù)據(jù)包后,生成響應數(shù)據(jù)包并發(fā)送給軟件保護裝置,該響應數(shù)據(jù)包內(nèi)包含時鐘服務器時間;c3.軟件保護裝置接收響應數(shù)據(jù)包并驗證其有效性,根據(jù)主機時間與所述時鐘服務器時間的比較結(jié)果對時鐘芯片的實時時鐘進行校準。
2、 如權(quán)利要求1所述的軟件保護裝置中實時時鐘的遠程校準方法, 其特征在于,還包括以下步驟a. 軟件保護裝置在上電后,其控制器將從時鐘芯片讀取的實時時 鐘與從該裝置內(nèi)的非易失存儲器中讀取的記錄時間進行比較;b. 如果a步驟中的比較結(jié)果為所述實時時鐘晚于記錄時間,則對 受保護軟件實施正常的軟件保護功能,并定期將從時鐘芯片讀取 的實時時鐘記錄到所述非易失存儲器中以更新記錄時間;c. 如果a步驟中的比較結(jié)果為所述實時時鐘早于記錄時間,則啟 動所述實時時鐘遠程校準流程;d. 軟件保護裝置根據(jù)經(jīng)過校準的實時時鐘對受保護軟件實施軟件 保護功能。
3、 如權(quán)利要求2所述的軟件保護裝置中實時時鐘的遠程校準方法, 其特征在于,在a步驟之前還包括下述步驟在受保護軟件發(fā)布時,對所述時鐘芯片的實時時鐘進行設(shè)置并將 所設(shè)時間記錄在所述非易失存儲器中,同時對時鐘芯片啟動計時。
4、 如權(quán)利要求1所述的軟件保護裝置中實時時鐘的遠程4交準方法,其特征在于,cl步驟中的請求數(shù)據(jù)包包含以下內(nèi)容的至少其中一項 軟件保護裝置的設(shè)備信息;請求數(shù)據(jù)包編號,該編號記錄在所述非易失存儲器中,其在受保 護軟件發(fā)布時設(shè)置初始值為0,以后每次發(fā)送請求數(shù)據(jù)包后加1;隨機信息,其由軟件保護裝置在生成請求數(shù)據(jù)包時產(chǎn)生并記錄到 所述非易失存儲器中。
5、 如權(quán)利要求1所述的軟件保護裝置中實時時鐘的遠程校準方法, 其特征在于,c2步驟中的響應數(shù)據(jù)包包含實時時間以及以下內(nèi)容的至 少其中一項請求數(shù)據(jù)包中包含的軟件保護裝置的設(shè)備信息;請求數(shù)據(jù)包中包含的請求數(shù)據(jù)包編號,該編號記錄在所述非易失 存儲器中,其在受保護軟件發(fā)布時設(shè)置初始值為0,以后每次發(fā)送請求 數(shù)據(jù)包后加1;請求數(shù)據(jù)包中包含的隨機信息,其由軟件保護裝置在生成請求數(shù) 據(jù)包時產(chǎn)生并記錄在所述非易失存儲器中。
6、 如權(quán)利要求1所述的軟件保護裝置中實時時鐘的遠程校準方法, 其特征在于,在c2和c3步驟中,時鐘服務器和軟件保護裝置共享一 個對稱密鑰以對響應數(shù)據(jù)包進行加密和解密。
7、 如權(quán)利要求1所述的軟件保護裝置中實時時鐘的遠程校準方法,其特征在于,在c2和c3步驟中,所述時鐘服務器對所述響應數(shù)據(jù)包附加驗證數(shù)據(jù)以待所述軟件保護裝置加以驗證,所述驗證數(shù)據(jù)由所述 時鐘服務器使用密碼學算法對響應數(shù)據(jù)包進行數(shù)據(jù)運算產(chǎn)生。
8、 如權(quán)利要求1所述的軟件保護裝置中實時時鐘的遠程校準方法, 其特征在于,在c3步驟中,所述軟件保護裝置對響應數(shù)據(jù)包有效性的 驗證過程包括下列步驟的至少其中 一個所述響應數(shù)據(jù)包中包含的軟件保護裝置設(shè)備信息與軟件保護裝置 實際設(shè)備信息的 一致性驗證;所述響應數(shù)據(jù)包中包含的請求數(shù)據(jù)包編號與所述軟件保護裝置記 錄的請求數(shù)據(jù)包編號的一致性驗證;所述響應數(shù)據(jù)包中包含的隨機信息與所述軟件保護裝置記錄的包 含在請求數(shù)據(jù)包中的隨機信息的 一致性驗-i正;使用響應數(shù)據(jù)包中包含的可驗證數(shù)據(jù)對響應數(shù)據(jù)包的完整性和不 可偽造性進行驗證;如果所述驗證未通過,則進入異常處理流程,具體為禁止受保護 軟件的使用、重新啟動遠程校準流程或者其他控制策略。
9、 如權(quán)利要求1所述的軟件保護裝置中實時時鐘的遠程校準方法, 其特征在于,在c3步驟中,所述根據(jù)主機時間與所述時鐘服務器時間如果主機時間晚于所述時鐘服務器時間,則將該主機時間設(shè)置為 時鐘芯片的實時時間;如果主機時間早于所述時鐘服務器時間,則將該時鐘服務器時間 設(shè)置為時鐘芯片的實時時間。
10、如權(quán)利要求1所述的軟件保護裝置中實時時鐘的遠程校準方 法,其特征在于,如果所述遠程校準流程已經(jīng)啟動但尚未完成,則立 即禁止受保護軟件的使用。
全文摘要
一種軟件保護裝置中實時時鐘的遠程校準方法,包括實時時鐘遠程校準流程,其具體包括以下步驟軟件保護裝置向遠程時鐘服務器發(fā)送請求數(shù)據(jù)包;時鐘服務器接收請求數(shù)據(jù)包后,生成響應數(shù)據(jù)包并發(fā)送給軟件保護裝置,該響應數(shù)據(jù)包內(nèi)包含時鐘服務器時間;軟件保護裝置接收響應數(shù)據(jù)包并驗證其有效性,根據(jù)主機時間與所述時鐘服務器時間的比較結(jié)果對時鐘芯片的實時時鐘進行校準。本發(fā)明確保了軟件保護裝置中實時時鐘的可信度和精確度,為軟件開發(fā)商提供了方便有效的日期限制等軟件保護功能。
文檔編號G06F21/00GK101221614SQ20081005665
公開日2008年7月16日 申請日期2008年1月23日 優(yōu)先權(quán)日2008年1月23日
發(fā)明者孫吉平, 勇 韓 申請人:北京深思洛克數(shù)據(jù)保護中心