技术领域
[0001] 本
发明涉及系统安全保护领域,特别是涉及一种系统时间防护方法和装置。 背景技术
[0002] 目前存在很多恶意
软件通过篡改系统时间让一些服务失效,从而实现对系统的攻击,同时也有部分收费软件是以时间为标识的,有些用户购买软件后在使用期限快到时通过更改系统时间,使得购买的软件长久使用。针对
恶意软件篡改系统时间,目前主要通过
应用软件来保护,即通过系统下的应用软件来实现对系统时间的写保护,只能读取系统时间而不能
修改系统时间,然而当该应用软件被停用时,系统时间就可被直接修改,安全性较低。
发明内容
[0003] 基于此,有必要针对目前采用应用软件保护系统时间不被修改安全性低的问题,提供一种安全性较高的系统时间防护方法。
[0004] 此外,还有必要提供一种安全性较高的系统时间防护装置。
[0005] 一种系统时间防护方法,包括以下步骤:
[0006] 获取对系统时间的修改操作;
[0007] 判断
基本输入输出系统中的系统时间防护功能是否开启,若是,则拒绝修改系统时间。
[0008] 在其中一个
实施例中,所述获取对系统时间的修改操作的步骤包括: [0009] 获取对基本输入输出系统的
实时时钟芯片的
访问请求;
[0010] 当所述访问请求为写请求时,判断所述写请求是否为对所述实时时钟芯片内存储的系统时间进行写操作,若是,则得到对所述系统时间的修改操作;
[0011] 所述判断基本输入输出系统中的系统时间防护功能是否开启,若是,则拒绝修改系统时间的步骤包括:
[0012] 判断基本输入输出系统中的系统时间防护功能是否开启,若是,则拒绝所 述访问请求。
[0013] 在其中一个实施例中,当所述写请求不为对所述实时时钟芯片内存储的系统时间进行写操作时,允许所述访问请求。
[0014] 在其中一个实施例中,在所述获取对基本输入输出系统的实时时钟芯片的访问请求的步骤之后,还包括:
[0015] 关闭中断访问;
[0016] 在所述拒绝所述访问请求,或在所述允许所述访问请求,或对所述系统时间的修改操作的步骤之后,还包括:
[0017] 开启中断访问。
[0018] 在其中一个实施例中,在所述获取对基本输入输出系统的实时时钟芯片的访问请求的步骤之前,还包括:
[0019] 将系统时间存储在所述实时时钟芯片的头10个寄存器中;
[0020] 所述判断所述写请求是否为对所述实时时钟芯片内存储的系统时间进行写操作的步骤包括:
[0021] 判断所述写请求是否为对所述实时时钟芯片的头10个寄存器进行写操作。 [0022] 一种系统时间防护装置,包括:
[0023] 获取模
块,用于获取对系统时间的修改操作;
[0024] 判断模块,用于判断基本输入输出系统中的系统时间防护功能是否开启; [0025] 执行模块,用于当判断基本输入输出系统中的系统时间防护功能开启时,拒绝修改系统时间。
[0026] 在其中一个实施例中,所述获取模块包括:
[0027] 访问单元,用于获取对基本输入输出系统的实时时钟芯片的访问请求; [0028] 判断单元,用于当所述访问请求为写请求时,判断所述写请求是否为对所述实时时钟芯片内存储的系统时间进行写操作,若是,得到对所述系统时间的修改操作; [0029] 所述执行模块还用于当判断基本输入输出系统中的系统时间防护功能开启时,拒绝所述访问请求。
[0030] 在其中一个实施例中,所述执行模块还用于当所述写请求不为对所述实时 时钟芯片内存储的系统时间进行写操作时,允许所述访问请求。
[0031] 在其中一个实施例中,所述装置还包括:
[0032] 标记模块,用于在所述获取对基本输入输出系统的实时时钟芯片的访问请求之后,关闭中断访问,以及在所述拒绝所述访问请求或在所述允许所述访问请求,或对所述系统时间的修改操作之后,开启中断访问。
[0033] 在其中一个实施例中,所述装置还包括:
[0034] 预存模块,用于将系统时间存储在所述实时时钟芯片的头10个寄存器中; [0035] 所述判断单元还用于判断所述写请求是否为对所述实时时钟芯片的头10个寄存器进行写操作。
[0036] 上述系统时间防护方法和装置,通过在基本输入输出系统中开启系统时间防护功能,拒绝了对系统时间的修改,防止了恶意软件更改系统时间致使系统的某些服务失效,提高了系统的安全性。
附图说明
[0037] 图1为一个实施例中系统时间防护方法的
流程图;
[0038] 图2为另一个实施例中系统时间防护方法的流程图;
[0039] 图3为一个实施例中系统时间防护装置的结构
框图;
[0040] 图4为一个实施例中获取模块的内部结构框图;
[0041] 图5为另一个实施例中系统时间防护装置的结构框图。
具体实施方式
[0042] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0043] 图1为一个实施例中系统时间防护方法的流程图。该系统时间防护方法可运行于台式计算机、
笔记本电脑、
平板电脑等。该系统时间防护方法,包括以下步骤: [0044] 步骤102,获取对系统时间的修改操作。
[0045] 在BIOS(Basic Input Output System,基本输入输出系统)的菜单中设置系统时间保护功能菜单,具有超级管理员权限的用户可手动设置关闭或打开系统时间保护功能,如此当系统时间错误时,可通过超级管理员将系统时间设置正确后保存退出。 [0046] 步骤104,判断基本输入输出系统中的系统时间防护功能是否开启,若是,执行步骤106,若否,执行步骤108。
[0047] 步骤106,拒绝修改该系统时间。
[0048] 步骤108,对该系统时间进行修改。
[0049] 上述系统时间防护方法,通过在基本输入输出系统中开启系统时间防护功能,拒绝了对系统时间的修改,防止了恶意软件更改系统时间致使系统的某些服务失效,提高了系统的安全性。此外,还可防止某些收费软件用户通过更改系统时间来规避软件使用到期的问题。
[0050] 图2为另一个实施例中系统时间防护方法的流程图。该系统时间防护方法,包括以下步骤:
[0051] 步骤202,获取对基本输入输出系统的实时时钟芯片的访问请求。具体的,系统时间存储在基本输入输出系统的RTC(Real-Time Clock,实时时钟芯片)中。RTC中存储的系统时间,包括年、月、日、时、分、秒。以X86系统架构为例,RTC的内容可通过70h/71h端口或者72h/73h端口访问,其中,70h端口用于存放地址,71h端口用于实现读写操作。RTC中的系统时间如表1所示。
[0052] 表1
[0053]寄存器 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h
内容 秒 秒唤醒 分钟 分钟唤醒 小时 小时唤醒 周 日 月 年
[0054] 由表1可知,RTC的头10个寄存器中存储系统时间,如果修改系统时间即写修改RTC中的年、月、日、时、分、秒,也就是通过70h/71h端口写相应的值。若禁止更改系统时间即禁止通过70h/71h端口写操作RTC的头10个寄存器(即00~09h)。
[0055] 因X86架构的南桥有4个IO Trap(IO端口的陷阱)寄存器。最多可以设置 4个IO端口的陷阱访问。其中,TRCR寄存器是IO Trap访问时候保存的地址,TWDR寄存器是IO Trap写时保持的要写的数据。
[0056] 每个IO Trap寄存器都有几个重要的bit位:
[0057] (1)TRSE:即Trap Enable的标志位,该标志
位置为第一标识的时候陷阱访问功能关闭,该标志位置为第二标识的时候陷阱访问功能打开。本实施例中,第一标识为0,第二标识为1;
[0058] (2)IOAD:设置被陷入的IO端口地址;
[0059] (3)RWIO/RWM:即写、读陷入访问的标志。
[0060] IO访问是一个IO中断,通过IO Trap设置后当访问IO端口的时候会执行
指定的陷入代码。本实施例中,通过对71h端口设置IO Trap。由此,步骤202具体为获取对基本输入输出系统中实时时钟芯片的预设端口的访问请求。该预设端口可为71h端口。 [0061] 在一个实施例中,在该获取对基本输入输出系统的实时时钟芯片的访问请求的步骤之后,还包括:关闭中断访问。如将Trap Enable的标志位设置为第一标识。该第一标识为0,即设置TRSE为0,以关闭IO中断。步骤204,当该访问请求为写请求时,判断该写请求是否为对该实时时钟芯片内存储的系统时间进行写操作,若是,执行步骤206,若否,执行步骤208。
[0062] 具体的,判断该写请求是否为对该实时时钟芯片的头10个寄存器进行写操作。 [0063] 步骤206,得到对该系统时间的修改操作,然后执行步骤210。
[0064] 其中,步骤202,204和206为图1步骤102的具体步骤。
[0065] 步骤208,允许该访问请求,然后结束。
[0066] 若写请求不为对RTC的00~09h操作,可允许直接按照该访问请求进行写操作。 [0067] 步骤210,判断基本输入输出系统中的系统时间防护功能是否开启,若是,执行步骤212,若否,执行步骤214。
[0068] 步骤212,拒绝该访问请求。
[0069] 若是对RTC的00~09写操作,直接跳出,即拒绝该访问请求。
[0070] 在一个实施例中,在该拒绝该访问请求,或在所述允许所述访问请求,或对所述系统时间的修改操作的步骤之后,还包括:开启中断访问。如将TrapEnable的标志位设置为第二标识。具体的,第二标识为1,拒绝后设TRSE为1即开启IO Trap,也就是开启中断,以便接收下个中断访问。
[0071] 步骤214,对该系统时间进行修改。
[0072] 此外,当该访问请求为读请求时,直接按照该访问请求进行读操作。 [0073] 在本实施例中,以X86系统架构为例进行说明,但本发明并不局限于X86系统架构,在其他系统架构中,区别仅在于对系统实时时钟芯片的访问方式。
[0074] 上述系统时间防护方法,通过对实时时钟芯片的访问判断是否对系统时间的写操作,中断访问方式更加安全,在基本输入输出系统中开启系统时间防护功能,拒绝了对系统时间的修改,防止了恶意软件更改系统时间致使系统的某些服务失效,提高了系统的安全性。
[0075] 图3为一个实施例中系统时间防护装置的结构框图。该系统时间防护装置,包括获取模块320、判断模块340和执行模块360。
[0076] 其中,获取模块320用于获取对系统时间的修改操作。
[0077] 判断模块340用于判断基本输入输出系统中的系统时间防护功能是否开启; [0078] 执行模块360用于当判断基本输入输出系统中的系统时间防护功能开启时,拒绝修改系统时间,以及当判断基本输入输出系统中的系统时间防护功能未开启时,对该系统时间的修改成功。
[0079] 上述系统时间防护装置,通过在基本输入输出系统中开启系统时间防护功能,拒绝了对系统时间的修改,防止了恶意软件更改系统时间致使系统的某些服务失效,提高了系统的安全性。
[0080] 如图4所示,获取模块320包括访问单元322和判断单元324。
[0081] 其中,访问单元322用于获取对基本输入输出系统的实时时钟芯片的访问请求。 [0082] 具体的,系统时间存储在基本输入输出系统的RTC(Real-Time Clock,实 时时钟芯片)中。RTC中存储的系统时间,包括年、月、日、时、分、秒。以X86系统架构为例,RTC的内容可通过70h/71h端口或者72h/73h端口访问,其中,70h端口用于存放地址,71h端口用于实现读写操作。RTC中的系统时间如表1所示。
[0083] 判断单元324用于当所述访问请求为写请求时,判断所述写请求是否为对所述实时时钟芯片内存储的系统时间进行写操作,若是,得到对该系统时间的修改操作。 [0084] 结合图3所示,执行模块360用于当该写请求为对该实时时钟芯片内存储的系统时间进行写操作时,拒绝该访问请求。
[0085] 执行模块360还用于当该写请求不为对该实时时钟芯片内存储的系统时间进行写操作时,允许该访问请求。
[0086] 在本实施例中,以X86系统架构为例进行说明,但本发明并不局限于X86系统架构,在其他系统架构中,区别仅在于对系统实时时钟芯片的访问方式。
[0087] 图5为另一个实施例中系统时间防护装置的结构框图。该系统时间防护装置,除了包括获取模块320、判断模块340和执行模块360,还包括预存模块310、标记模块330。 [0088] 其中,预存模块310用于将系统时间存储在该实时时钟芯片的头10个寄存器中。 [0089] 结合图4所示,该判断单元324还用于判断该写请求是否为对该实时时钟芯片的头10个寄存器进行写操作。
[0090] 标记模块330用于在该获取对基本输入输出系统的实时时钟芯片的访问请求之后,关闭中断访问,以及在该拒绝该访问请求,或在所述允许所述访问请求,或对所述系统时间的修改操作之后,开启中断访问。此外,上述系统时间防护装置还可包括读取模块。该读取模块用于当该访问请求为读请求时,直接按照该访问请求进行读操作。 [0091] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 可以通过
计算机程序来指令相关的
硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0092] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明
专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干
变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附
权利要求为准。