一种计算机系统时间防篡改方法及系统的制作方法

文档序号:8381282阅读:556来源:国知局
一种计算机系统时间防篡改方法及系统的制作方法
【技术领域】
[0001]本发明涉及通信与计算机技术领域,尤其涉及一种计算机系统时间防篡改方法及系统。
【背景技术】
[0002]随着计算机系统的普及,对于计算机系统时间的要求越来越高。计算机程序的正常运行有可能依赖于计算机系统时间的有效性,计算机系统时间与参考时间的差异过大,即计算机系统时间不在有效范围内可能导致计算机程序运行异常。
[0003]现有技术中,使用的检查计算机系统时间在有效范围内的方法有:
[0004]人工通过计算机系统程序获得计算机系统时间,并与参考时间比较,确定计算机系统时间是否在有效范围内。
[0005]在计算机系统A能够通过网络与运行于参考时间的计算机系统R通信的情况下,通过某种计算机系统网络应用程序保持计算机系统A与计算机系统R的系统时间在有效的差异范围内。
[0006]计算机系统A能够通过外部设备直接获得参考时间,并通过应用程序保持计算机系统时间与参考时间在有效的差异范围内。
[0007]具体来说,在实现本发明的过程中,发明人发现现有的方案存在如下缺点:
[0008]目前广泛采用的检查计算机系统时间在有效范围内的方法是基于人们对系统时间与参考时间保持一致的期望而设计的,通常的方式是通过网络获取参考时间,并调整自身系统时间使之尽可能与参考时间一致。此类方法对人为故意甚至恶意修改系统时间,或者对保持计算机系统时间有效性的方法施加人工干扰(如中断网络连接)从而使计算机处于时间异常状态的情况缺少足够的检查措施。

【发明内容】

[0009]本发明的目的在于克服现有技术的缺点和不足,提供一种计算机系统时间防篡改方法及系统。
[0010]一种计算机系统时间防篡改方法,所述方法包括:
[0011 ] 步骤一、检查是否存在已保存的说明有效时间范围的检查点时间校验字符串文件C,若是,将所述文件C中内容写入检查点时间校验字符串数组Z ;否则,执行步骤四;
[0012]步骤二、获取当前系统时间,生成基准格式的检查点时间字符串,通过散列算法F将所述字符串转换为长度为L的检查点时间校验字符串s ;
[0013]步骤三、检查所述数组Z中是否存在与检查点时间校验字符串s相同的字符串,若是,基于当前系统时间构造下一次检查点时间校验字符串数组Z’;否则,输出需要重新验证时间信息;
[0014]步骤四、重新创建所述文件C,并将所述数组Z’中的内容保存在所述文件C中;
[0015]步骤五、输出时间偏差在有效范围内的标志或信息。
[0016]所述检查点时间校验字符串根据如下方式构建:
[0017]根据当前系统时间、检查周期P以及检查起点时间构建检查点时间字符串;
[0018]根据散列算法F将检查点时间字符串转换为长度为L位的检查点时间校验字符串O
[0019]所述基于当前系统时间构造下一次检查点时间校验字符串数组Z’,包括:
[0020]获取当前系统时间,获得最近的一个检查点时间T’ ;
[0021]基于检查周期P计算生成在下一次检查时准许的时间范围内的所有检查点时间;
[0022]将所述所有检查点时间依次通过散列算法F转换长度为L的检查点时间校验字符串放入数组Z’中,使数组Z’中每个单元中的检查点时间校验字符串顺序对应每个检查点时间。
[0023]所述重新创建所述文件C,包括:
[0024]保留所述文件C并清除所述文件C中的内容。
[0025]所述方法还包括:
[0026]延迟检查周期P后,执行步骤二及后续步骤。
[0027]所述步骤三中,输出需要重新验证时间信息之后,还包括:
[0028]删除所述说明有效时间范围的检查点时间校验字符串文件C;
[0029]提示修正系统时间并等待确认;
[0030]在确认后,执彳了步骤_■及后续步骤。
[0031]一种计算机系统时间防篡改系统,所述系统包括文件C检查单元、检查点时间校验字符串s生成单元、比对单元、重建文件C单元及时间偏差结果输出单元,其中,
[0032]所述文件C检查单元,用于检查是否存在已保存的说明有效时间范围的检查点时间校验字符串文件C,若是,将所述文件C中内容写入检查点时间校验字符串数组Z,并发送给所述比对单元;否则,通知所述重建文件C单元;
[0033]所述检查点时间校验字符串s生成单元,用于获取当前系统时间,生成基准格式的检查点时间字符串,通过散列算法F将所述字符串转换为长度为L的检查点时间校验字符串S,并发送给所述比对单元;
[0034]所述比对单元,用于检查所述数组Z中是否存在与检查点时间校验字符串s相同的字符串,若是,基于当前系统时间构造下一次检查点时间校验字符串数组Z’并发送给所述重建文件C单元;
[0035]所述重建文件C单元,用于重新创建所述文件C,并将所述数组Z’中的内容保存在所述文件C中;
[0036]所述时间偏差结果输出单元,用于输出时间偏差在有效范围内的标志或信息。
[0037]所述系统还包括检查点时间校验字符串构建单元,用于根据当前系统时间、检查周期P以及检查起点时间构建检查点时间字符串;根据散列算法F将检查点时间字符串转换为长度为L位的检查点时间校验字符串。
[0038]所述检查点时间校验字符串s生成单元,还用于获取当前系统时间,获得最近的一个检查点时间T’ ;基于检查周期P计算生成在下一次检查时准许的时间范围内的所有检查点时间;将所述所有检查点时间依次通过散列算法F转换长度为L的检查点时间校验字符串放入数组Z’中,使数组Z’中每个单元中的检查点时间校验字符串顺序对应每个检查点时间。
[0039]所述系统还包括重新验证单元,用于在所述比对单元检查出所述数组Z中不存在与检查点时间校验字符串s相同的字符串时,删除所述说明有效时间范围的检查点时间校验字符串文件C ;提示修正系统时间并等待确认;在确认后,通知所述检查点时间校验字符串s生成单元重新生成检查点时间校验字符串S。
[0040]本发明通过设置检查点时间校验字符串文件C,每次计算机系统开机运行或者定期运行时,根据当前系统时间计算得到基准格式的检查点时间校验字符串S。然后比对字符串s与文件C中是否存在相同的字符串,若是,认为通过校验,系统时间正确;否则,认为系统时间修改过。每次检查完成后,继续设定下次检查点的检查点时间校验字符串。与现有技术相比,本发明通过根据待检查计算机系统时间生成的一组代表时间检查点的字符串确定允许的计算机系统时间偏差范围,通过散列算法将代表时间检查点的字符串组转换为不易理解的密文字符串组,待检查计算机系统中,周期性将代表系统时间的检查点时间的密文字符串与上一周期确定的代表本次检查允许的时间偏差范围的时间检查点的密文字符串组比较和查找,确定在本周期中系统时间是否被修改且超过了允许的偏差范围。对人为故意甚至恶意修改系统时间,或者对保持计算机系统时间有效性的方法施加人工干扰(如中断网络连接)从而使计算机处于时间异常状态的情况有良好的监控效果。
【附图说明】
[0041]图1为本发明实施例1提供的计算机系统时间防篡改方法原理流程图;
[0042]图2为本发明实施例2提供的计算机系统时间防篡改系统结构示意图。
【具体实施方式】
[0043]下面结合附图对本发明的【具体实施方式】进行详细描述。但本发明的实施方式不限于此。
[0044]本发明各个实施例的基本原理为:在待检查计算机系统中周期性维护一个由有效时间范围的所有检查点时间的特征描述组成的数组,该数组描述了有效的时间范围,并在检查时间到来时将系统时间特征描述与该数组中的数值进行比较,如果数组中存在相同的特征描述,则说明系统时间偏差没有超出预定范围,否则给出提示。而在该数组初次建立时或失效后再次建立时,需要输入来自参考系统的时间特征描述,以确定当前系统时间是否在有效范围内。
[0045]如图1所示,为本发明实施例1提供的计算机系统时间防篡改方法原理流程图,具体如下:
[0046]步骤10,检查是否存在已保存的说明有效时间范围的检查点时
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1