一種計算機系統(tǒng)時間防篡改方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及通信與計算機技術領域,尤其涉及一種計算機系統(tǒng)時間防篡改方法及系統(tǒng)。
【背景技術】
[0002]隨著計算機系統(tǒng)的普及,對于計算機系統(tǒng)時間的要求越來越高。計算機程序的正常運行有可能依賴于計算機系統(tǒng)時間的有效性,計算機系統(tǒng)時間與參考時間的差異過大,即計算機系統(tǒng)時間不在有效范圍內可能導致計算機程序運行異常。
[0003]現(xiàn)有技術中,使用的檢查計算機系統(tǒng)時間在有效范圍內的方法有:
[0004]人工通過計算機系統(tǒng)程序獲得計算機系統(tǒng)時間,并與參考時間比較,確定計算機系統(tǒng)時間是否在有效范圍內。
[0005]在計算機系統(tǒng)A能夠通過網(wǎng)絡與運行于參考時間的計算機系統(tǒng)R通信的情況下,通過某種計算機系統(tǒng)網(wǎng)絡應用程序保持計算機系統(tǒng)A與計算機系統(tǒng)R的系統(tǒng)時間在有效的差異范圍內。
[0006]計算機系統(tǒng)A能夠通過外部設備直接獲得參考時間,并通過應用程序保持計算機系統(tǒng)時間與參考時間在有效的差異范圍內。
[0007]具體來說,在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有的方案存在如下缺點:
[0008]目前廣泛采用的檢查計算機系統(tǒng)時間在有效范圍內的方法是基于人們對系統(tǒng)時間與參考時間保持一致的期望而設計的,通常的方式是通過網(wǎng)絡獲取參考時間,并調整自身系統(tǒng)時間使之盡可能與參考時間一致。此類方法對人為故意甚至惡意修改系統(tǒng)時間,或者對保持計算機系統(tǒng)時間有效性的方法施加人工干擾(如中斷網(wǎng)絡連接)從而使計算機處于時間異常狀態(tài)的情況缺少足夠的檢查措施。
【發(fā)明內容】
[0009]本發(fā)明的目的在于克服現(xiàn)有技術的缺點和不足,提供一種計算機系統(tǒng)時間防篡改方法及系統(tǒng)。
[0010]一種計算機系統(tǒng)時間防篡改方法,所述方法包括:
[0011 ] 步驟一、檢查是否存在已保存的說明有效時間范圍的檢查點時間校驗字符串文件C,若是,將所述文件C中內容寫入檢查點時間校驗字符串數(shù)組Z ;否則,執(zhí)行步驟四;
[0012]步驟二、獲取當前系統(tǒng)時間,生成基準格式的檢查點時間字符串,通過散列算法F將所述字符串轉換為長度為L的檢查點時間校驗字符串s ;
[0013]步驟三、檢查所述數(shù)組Z中是否存在與檢查點時間校驗字符串s相同的字符串,若是,基于當前系統(tǒng)時間構造下一次檢查點時間校驗字符串數(shù)組Z’;否則,輸出需要重新驗證時間信息;
[0014]步驟四、重新創(chuàng)建所述文件C,并將所述數(shù)組Z’中的內容保存在所述文件C中;
[0015]步驟五、輸出時間偏差在有效范圍內的標志或信息。
[0016]所述檢查點時間校驗字符串根據(jù)如下方式構建:
[0017]根據(jù)當前系統(tǒng)時間、檢查周期P以及檢查起點時間構建檢查點時間字符串;
[0018]根據(jù)散列算法F將檢查點時間字符串轉換為長度為L位的檢查點時間校驗字符串O
[0019]所述基于當前系統(tǒng)時間構造下一次檢查點時間校驗字符串數(shù)組Z’,包括:
[0020]獲取當前系統(tǒng)時間,獲得最近的一個檢查點時間T’ ;
[0021]基于檢查周期P計算生成在下一次檢查時準許的時間范圍內的所有檢查點時間;
[0022]將所述所有檢查點時間依次通過散列算法F轉換長度為L的檢查點時間校驗字符串放入數(shù)組Z’中,使數(shù)組Z’中每個單元中的檢查點時間校驗字符串順序對應每個檢查點時間。
[0023]所述重新創(chuàng)建所述文件C,包括:
[0024]保留所述文件C并清除所述文件C中的內容。
[0025]所述方法還包括:
[0026]延遲檢查周期P后,執(zhí)行步驟二及后續(xù)步驟。
[0027]所述步驟三中,輸出需要重新驗證時間信息之后,還包括:
[0028]刪除所述說明有效時間范圍的檢查點時間校驗字符串文件C;
[0029]提示修正系統(tǒng)時間并等待確認;
[0030]在確認后,執(zhí)彳了步驟_■及后續(xù)步驟。
[0031]一種計算機系統(tǒng)時間防篡改系統(tǒng),所述系統(tǒng)包括文件C檢查單元、檢查點時間校驗字符串s生成單元、比對單元、重建文件C單元及時間偏差結果輸出單元,其中,
[0032]所述文件C檢查單元,用于檢查是否存在已保存的說明有效時間范圍的檢查點時間校驗字符串文件C,若是,將所述文件C中內容寫入檢查點時間校驗字符串數(shù)組Z,并發(fā)送給所述比對單元;否則,通知所述重建文件C單元;
[0033]所述檢查點時間校驗字符串s生成單元,用于獲取當前系統(tǒng)時間,生成基準格式的檢查點時間字符串,通過散列算法F將所述字符串轉換為長度為L的檢查點時間校驗字符串S,并發(fā)送給所述比對單元;
[0034]所述比對單元,用于檢查所述數(shù)組Z中是否存在與檢查點時間校驗字符串s相同的字符串,若是,基于當前系統(tǒng)時間構造下一次檢查點時間校驗字符串數(shù)組Z’并發(fā)送給所述重建文件C單元;
[0035]所述重建文件C單元,用于重新創(chuàng)建所述文件C,并將所述數(shù)組Z’中的內容保存在所述文件C中;
[0036]所述時間偏差結果輸出單元,用于輸出時間偏差在有效范圍內的標志或信息。
[0037]所述系統(tǒng)還包括檢查點時間校驗字符串構建單元,用于根據(jù)當前系統(tǒng)時間、檢查周期P以及檢查起點時間構建檢查點時間字符串;根據(jù)散列算法F將檢查點時間字符串轉換為長度為L位的檢查點時間校驗字符串。
[0038]所述檢查點時間校驗字符串s生成單元,還用于獲取當前系統(tǒng)時間,獲得最近的一個檢查點時間T’ ;基于檢查周期P計算生成在下一次檢查時準許的時間范圍內的所有檢查點時間;將所述所有檢查點時間依次通過散列算法F轉換長度為L的檢查點時間校驗字符串放入數(shù)組Z’中,使數(shù)組Z’中每個單元中的檢查點時間校驗字符串順序對應每個檢查點時間。
[0039]所述系統(tǒng)還包括重新驗證單元,用于在所述比對單元檢查出所述數(shù)組Z中不存在與檢查點時間校驗字符串s相同的字符串時,刪除所述說明有效時間范圍的檢查點時間校驗字符串文件C ;提示修正系統(tǒng)時間并等待確認;在確認后,通知所述檢查點時間校驗字符串s生成單元重新生成檢查點時間校驗字符串S。
[0040]本發(fā)明通過設置檢查點時間校驗字符串文件C,每次計算機系統(tǒng)開機運行或者定期運行時,根據(jù)當前系統(tǒng)時間計算得到基準格式的檢查點時間校驗字符串S。然后比對字符串s與文件C中是否存在相同的字符串,若是,認為通過校驗,系統(tǒng)時間正確;否則,認為系統(tǒng)時間修改過。每次檢查完成后,繼續(xù)設定下次檢查點的檢查點時間校驗字符串。與現(xiàn)有技術相比,本發(fā)明通過根據(jù)待檢查計算機系統(tǒng)時間生成的一組代表時間檢查點的字符串確定允許的計算機系統(tǒng)時間偏差范圍,通過散列算法將代表時間檢查點的字符串組轉換為不易理解的密文字符串組,待檢查計算機系統(tǒng)中,周期性將代表系統(tǒng)時間的檢查點時間的密文字符串與上一周期確定的代表本次檢查允許的時間偏差范圍的時間檢查點的密文字符串組比較和查找,確定在本周期中系統(tǒng)時間是否被修改且超過了允許的偏差范圍。對人為故意甚至惡意修改系統(tǒng)時間,或者對保持計算機系統(tǒng)時間有效性的方法施加人工干擾(如中斷網(wǎng)絡連接)從而使計算機處于時間異常狀態(tài)的情況有良好的監(jiān)控效果。
【附圖說明】
[0041]圖1為本發(fā)明實施例1提供的計算機系統(tǒng)時間防篡改方法原理流程圖;
[0042]圖2為本發(fā)明實施例2提供的計算機系統(tǒng)時間防篡改系統(tǒng)結構示意圖。
【具體實施方式】
[0043]下面結合附圖對本發(fā)明的【具體實施方式】進行詳細描述。但本發(fā)明的實施方式不限于此。
[0044]本發(fā)明各個實施例的基本原理為:在待檢查計算機系統(tǒng)中周期性維護一個由有效時間范圍的所有檢查點時間的特征描述組成的數(shù)組,該數(shù)組描述了有效的時間范圍,并在檢查時間到來時將系統(tǒng)時間特征描述與該數(shù)組中的數(shù)值進行比較,如果數(shù)組中存在相同的特征描述,則說明系統(tǒng)時間偏差沒有超出預定范圍,否則給出提示。而在該數(shù)組初次建立時或失效后再次建立時,需要輸入來自參考系統(tǒng)的時間特征描述,以確定當前系統(tǒng)時間是否在有效范圍內。
[0045]如圖1所示,為本發(fā)明實施例1提供的計算機系統(tǒng)時間防篡改方法原理流程圖,具體如下:
[0046]步驟10,檢查是否存在已保存的說明有效時間范圍的檢查點時