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

文档序号:8381282阅读:来源:国知局
[0079]至此,完成了对计算机系统时间的验证。进一步的,为了保证系统时间检查的力度,可以周期性的进行系统时间检查。检查周期为P,在延迟检查周期P后,可以重新执行步骤20,根据系统当前时间构建检查点时间校验字符串S并进行后续的检查步骤。
[0080]本实施例检查计算机系统时间在有效范围内的装置由运行程序Z的计算机系统R和运行程序B并保存文件C的计算机A构成。
[0081]程序Z向有需要的系统提供基于标准时间的时间点检查点时间校验字符串S。
[0082]程序B和文件C周期性的检查当前系统时间对应的检查点时间是否在上一周期确定的本周期检查时的有效时间范围内,并给出输出与提示。
[0083]本实施例中,通过根据待检查计算机系统时间生成的一组代表时间检查点的字符串确定允许的计算机系统时间偏差范围。通过散列算法将代表时间检查点的字符串组转换为不易理解的密文字符串组。待检查计算机系统中,周期性将代表系统时间的检查点时间的密文字符串与上一周期确定的代表本次检查允许的时间偏差范围的时间检查点的密文字符串组比较和查找,确定在本周期中系统时间是否被修改且超过了允许的偏差范围。
[0084]目前广泛采用的检查计算机系统时间在有效范围内的方法是基于人们对系统时间与参考时间保持一致的期望而设计的,通常的方式是通过网络获取参考时间,并调整自身系统时间使之尽可能与参考时间一致。此类方法对人为故意甚至恶意修改系统时间,或者对保持计算机系统时间有效性的方法施加人工干扰(如中断网络连接)从而使计算机处于时间异常状态的情况缺少足够的检查措施。
[0085]本实施例的目标不在于使系统时间能够与参考时间尽可能保持一致,而是建立一种检查机制,使人为的对系统时间的变更能够被发现。其优点在于:
[0086]程序B为独立运行的程序,在一次时间检查通过后立即确定下一次检查时允许的时间偏差范围,其运行过程不受系统时间变更的影响,因此,如果在两次检查过程中发生了系统时间变更且超出了允许的偏差范围,在后次检查时能够被发现并给出提示和输出。
[0087]由于程序B的运行,只有每检查周期中修改时间的偏移量不超出所设定的偏差范围时才能不被程序B发现,因此,如果人为修改的期望目标时间与当前系统时间有较大差距时,需要反复多次修改系统时间才能达到目的,从而增加了人为修改计算机系统时间而不被程序B发现的难度。
[0088]程序B为独立运行的程序,除输入来自参考系统的当前检查点时间校验字符串夕卜,在运行过程中不需要与外部程序进行通信,因此,在待检查系统与参考系统没有网络连接时也能够进行检查。
[0089]进一步来说,本实施例在系统初次运行时,或系统关闭时间超过关闭前保存的现场时间特征描述所确定的允许时间偏差范围后再次启动时,或检查结果表明系统时间偏差超过允许范围时,将参考时间的特征描述与利用本地时间生成的能够描述允许时间偏差的现场时间特征描述相比较,确定本地时间与参考时间的偏差是否在允许范围内。
[0090]在系统持续运行的过程中,周期性地将本地时间的特征描述与上一周期利用本地时间生成的现场时间特征描述相比较,确定在一个周期内是否因为大幅度的时间调整而导致本地时间超出了上一周期所确定的允许偏差范围。
[0091]如果本地系统时间在允许的偏差范围内,则利用本地系统时间生成现场时间特征描述,作为下一次检查的基准,并给出系统时间偏差在允许范围内的输出结果;否则给出系统时间偏差在允许范围外的输出结果,并按上述在系统初次运行时,或系统关闭时间超过关闭前保存的现场时间特征描述所确定的允许时间偏差范围后再次启动时,或检查结果表明系统时间偏差超过允许范围时所记载的检查方式进行检查。
[0092]举例说明如下:
[0093]假设系统允许时间范围为-4小时/+4小时,检查周期为I小时,当前系统时间为7:15,描述有效时间范围的所有检查点时间为:
[0094]3:00、4:00、5:00、6:00、7:00、8:00、9:00:、10:00
[0095]即系统时间在3:00至10:59分之间为有效。上述每个检查点时间以检查点时间校验字符串的方式保存在数组和文件中以便检查时使用。
[0096]此时,时间检查程序在延时一个检查周期,即I小时后,再次开始新的检查过程,根据当前系统时间7:15生成检查点时间为7:00,由于对应7:00时刻的检查点时间校验字符串已经保存在数组和文件中,由此可判定系统时间在有效范围内,输出时间偏差满足要求信息,同时将数组和文件中的内容更新为下一周期启动检查时对应的有效时间范围,即:
[0097]4:00、5:00、6:00、7:00、8:00、9:00、10:00、11:00
[0098]并进入时间长度为一个检查周期的延时,即I小时的延时。
[0099]如果没有修改过系统时间,在一个检查周期过后,系统时间为8:15,检查点时间为8:00,其检查点时间校验字符串能够在上一周期保存的数据或文件中找到,由此可判定系统时间在有效范围内,输出时间偏差满足要求信息,同时将数组和文件中的内容更新为下一周期启动检查时对应的有效时间范围,并再次进入长度为一个检查周期的延时。以上过程以一个检查周期为间隔反复执行,如果系统时间始终在有效范围内,则始终输出时间偏差满足要求信息。
[0100]如果在下一个检查周期到来前人为修改了系统时间,并且超出了前近一次检查所确定的有效时间范围,如再次启动检查过程时系统时间为3:25,对应检查点时间为3:00。而3:00的检查点时间校验字符串s并没有保存在有效检查点时间校验字符串数组和文件中,因此输出时间偏差超出范围信息,并要求输入验证来自参考系统的检查点时间校验字符串S。此时,系统管理者需要将系统时间修改到与参考时间的偏差范围在有效范围内的时间,并将来自参考系统的检查点时间校验字符串s输入系统中进行验证。
[0101]当系统首次运行时,由于不存在以前保存的描述有效时间范围的检查点时间校验字符串文件,则以当前系统时间为基准生成有效时间范围检查点时间数组,并要求输入验证来自参考系统的检查点时间校验字符串S。此时,系统管理者需要将来自参考系统的检查点时间校验字符串S输入系统中进行验证。
[0102]如果系统关闭了较长时间,再次启动时的时间已经超过了上次保存在检查点时间校验字符串文件中所确定的时间范围,则以当前系统时间为基准生成有效时间范围检查点时间数组,并要求输入验证来自参考系统的检查点时间校验字符串。此时,系统管理者需要将来自参考系统的检查点时间校验字符串输入系统中进行验证。
[0103]如图2所示,为本发明实施例2提供的计算机系统时间防篡改系统结构示意图,该系统包括文件C检查单元100、检查点时间校验字符串S生成单元200、比对单元300、重建文件C单元400及时间偏差结果输出单元500,具体如下:
[0104]文件C检查单元100,用于检查是否存在已保存的说明有效时间范围的检查点时间校验字符串文件C,若是,将文件C中内容写入检查点时间校验字符串数组Z,并发送给比对单元300 ;否则,通知重建文件C单元400 ;
[0105]检查点时间校验字符串s生成单元200,用于获取当前系统时间,生成基准格式的检查点时间字符串,通过散列算法F将字符串转换为长度为L的检查点时间校验字符串S,并发送给比对单元300;
[0106]比对单元300,用于检查数组Z中是否存在与检查点时间校验字符串s相同的字符串,若是,基于当前系统时间构造下一次检查点时间校验字符串数组Z’并发送给重建文件C单元400 ;
[0107]重建文件C单元400,用于重新创建文件C,并将数组Z’中的内容保存在文件C中;
[0108]时间偏差结果输出单兀500,用于输出时间偏差在有效范围内的标志或信息。
[0109]进一步的,上述系统还包括检查点时间校验字符串构建单元600,用于根据当前系统时间、检查周期P以及检查起点时间构建检查点时间字符串;根据散列算法F将检查点时间字符串转换为长度为L位的检查点时间校验字符串。
[0110]进一步的,上述的检查点时间校验字符串s生成单元200,还用于获取当前系统时间,获得最近的一个检查点时间T’ ;基于检查周期P计算生成在下
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1