一种带时间阈保护的软件保护装置及其实现方法

文档序号:6464085阅读:134来源:国知局
专利名称:一种带时间阈保护的软件保护装置及其实现方法
技术领域
本发明涉及软件保护和许可技术,特别涉及一种能够对软件运行时间进 行控制的软件保护装置及其实现方法。
背景技术
使用软件保护装置是实现软件安全保护和版权保护的主要手段。装置中 存储着软件的使用许可,例如决定软件是否可以被使用,那些模块被使用等
等。软件保护装置特指一种附加在计算机接口 (比如,USB接口、串口、并 口等接口 )上的硬件设备,对运行在计算机上的特定的软件进行软件安全保 护和版权保护。现代的软件保护装置,例如USB加密锁,采用高强度智能 卡芯片和先进的密码学技术,具有一定的运算和存储能力,同时难以被破解 和复制,在高强度软件版权保护中具有广泛的应用。
软件使用许可既可以显式存在于软件保护装置中,也可以隐式存在于软 件保护装置中。所谓显式存在,指的是在软件保护装置中,存在特定的数据 文件或者数据存储单元,用于存储软件许可的内容,例如软件可以被使用的 次数、软件允许的并发运行客户端数量等;所谓隐式存在,指的是软件保护 装置中并没有特殊的区域用于保存软件许可的内容,而是直接判断软件所需 要的功能模式是否存在、功能是否正确等。
显式存在的软件许可具有更高的灵活性,能够定义出非常复杂的软件许 可类型,其中最为常用的是对软件的使用时间进行控制,例如设定软件运行 的过期时间。
为了对时间进行准确的控制,必须存在一个可信的日历和时钟。传统上, 有三种方式来得到日历和时钟信息方式一、在软件保护装置中增加一个带电池的日历和时钟。 由于软件保护装置自带独立的日历和时钟,因此由此获得的时间信息是
非常可靠的;如果软件保护装置能够通过内部的电路或者接口对自带的日历 和时钟进行访问并控制软件的使用,那么这种方式的效杲就非常好。存在的 问题是必须自带电池和时钟芯片,不仅增加了大量的成本,而且电池的寿命 也会大大缩短软件保护装置自身的生命周期。 方式二、利用计算机的日历和时钟。
这是采用最多的控制软件使用时间的方式,其优点是无需额外的成本, 但致命的缺陷是计算机的时间可以被任意更改,甚至有专门的软件来使计算 机的时间"停止,,以#:骗软件。
方式三、利用软件保护装置中的计数器进行时间累加。
高端的可编程软件保护装置中一般包含一个定时器即Timer功能,在对 Timer进行启动后(也可能自启动)即开始计时,软件保护装置内部的代码 或者计算机软件可以读取Timer的当前计数值,以此判断自Timer启动后所 经过的时间。由于Timer必须在软件保护装置工作的时候才能使用,所以只 能实现时间的累计判断,不能得到有效的日历和时钟。
中国专利申请200610066863.4公开了 一种对软件保护装置内部存储的 日历和时钟信息进行校准的方法,这种方法在软件保护装置内部以时间累积 并保存在存储区中,从而作为标准来判断计算机传递进来的时间信息是否可 信,如果可信则用计算机上的时间来修正软件保护装置内部保存的时间。这 种方法的过程比较复杂,且依赖于主机对软件保护装置的功能调用。

发明内容
本发明提出了 一种利用时间阈保护来实现日历与时钟的方法,通过在软 件保护装置中增加时间闳控制模块,要求计算机与软件保护装置在指定的时 间间隔内进行时间上的同步,以建立可靠的内部日历和时钟。根据本发明的一个方面,提供一种带时间阈保护的软件保护装置,其特
征在于,该装置包含
软件保护装置功能模块,用于执行软件保护功能; 时间阈控制模块,用于实现日历和时钟。
根据本发明的一个方面,其特征还在于,时间阈控制模块进一步包含 状态存储单元,用于存储时间阈控制模块的状态标志值; 错误计数单元,用于记录错误次数; 时间阈值,用于计时; 曰历和时钟存储单元,用于存储时间。
根据本发明的一个方面,其特征还在于,状态存储单元可以是寄存器或 者内存单元。
根据本发明的一个方面,其特征还在于,在超过设定的时间阈值后,在 没有同步操作的情况下,状态存储单元将修改其状态标志值,表示已经超过 了指定的时间阈值。
根据本发明的一个方面,其特征还在于,如果在未超过设定的时间阈值 期间进行了同步操作,时间阈控制模块将重新开始计时。
根据本发明的一个方面,其特征还在于,如果超过时间阈值后进行同步 操作,时间阈控制模块进行一次错误计数累积,并重新开始计时。
根据本发明的一个方面,其特征还在于,所述的同步操作是计算机将 当前的时间传给时间阈控制模块,时间阈控制模块对传入的时间进行校验, 根据校验的结果更新日历和时钟存储单元。
根据本发明的一个方面,其特征还在于,所述的校验和更新是通过与 日历和时钟存储单元中保存的时间进行比较,判断计算机传入的时间是否被 寸'务改过。
根据本发明的一个方面,其特征还在于, 认为校验成功,并用传入的时间更新原先存储的日历和时钟;则忽略此次同步操作;
校验失败,进行一次错误计数累积。
根据本发明的一个方面,其特征还在于,所述合理晚于是指计算机所 传入的时间与日历和时钟存储单元中保存的时间相比,其差值大于指定的时 间间隔。
根据本发明的一个方面,其特征还在于,用于记录超时未同步以及记录 计算机传入时间校验错误的错误计数单元既可以是一个,也可以是分别的两 个。
根据本发明的一个方面,其特征还在于,日历和时钟存储单元中初始的 时间值可以在软件保护装置发布前预设,也可以在软件初次运行时通过同步
进4亍初始4b。
根据本发明的另 一个方面,提供一种利用带有时间阚保护的软件保护装 置实现日历与时钟的方法,其中软件保护装置包含用于实现曰历和时钟的时
间阈控制模块,其特征在于,该方法包含步骤
(1 )计算机在时间阈控制模块设定的时间间隔内与时间阈控制模块进 行同步,将计算机当前时间传给时间阈控制模块;
(2)时间阈控制模块依据计算机传入的时间,更新软件保护装置内部 保存的最新日历和时钟。
根据本发明的另 一个方面,其特征还在于,时间阈控制模块进一步包含 状态存储单元,用于存储时间阈控制模块的状态标志; 错误计数单元,用于记录错误次数; 时间阈值,用于计时;
日历和时钟存储单元,用于存储日历和时钟。
根据本发明的另一个方面,其特征还在于,在超过设定的时间阈值后, 在没有同步操作的情况下,状态存储单元将修改其状态标志值,表示已经超过了指定的时间阈值。
根据本发明的另一个方面,其特征还在于,如果在未超过设定的时间阈 值期间进行了同步操作,时间阈控制模块将重新开始计时。
根据本发明的另一个方面,其特征还在于,如果超过时间阈值后进行同 步操作,时间阈控制模块进行一次错误计数累积,并重新开始计时。
根据本发明的另一个方面,其特征还在于,所述的同步操作是计算机 将当前的时间传给时间阈控制模块,时间阈控制模块对传入的时间进行校 验,根据校验的结果更新日历和时钟存储单元。
根据本发明的另一个方面,其特征还在于,所述的校验和更新是通过 与日历和时钟存储单元中保存的日历和时钟进行比较,判断计算机传入的时 间是否被修改过。
根据本发明的另一个方面,其特征还在于,
如果计算机传入的时间合理晚于日历和时钟存储单元中保存的时间,则 认为校验成功,并用传入的时间更新原先存储的日历和时钟;
如杲计算机传入的时间不合理晚于日历和时钟存储单元中保存的时间, 则忽略此次同步操作;
如果计算机传入的时间早于日历和时钟存储单元中保存的时间,则认为 校验失败,进行一次错误计数累积。
根据本发明的另一个方面,其特征还在于,所述合理晚于是指计算机 所传入的时间与日历和时钟存储单元中保存的时间相比,其差值大于指定的 时间间隔。
根据本发明的另一个方面,其特征还在于,可以通过对内部计时/计数
根据本发明的另一个方面,其特征还在于,当状态存储单元的状态标志 值表示在指定时间内未同步的情况下,软件保护装置的软件保护功能全部或 部分被限制使用,直到该状态被修改为正常值为止。
根据本发明的另一个方面,其特征还在于,当所述的错误计数发生时,时间阈控制模块可以将错误同时传递给计算机,要求计算机注意并修正弓1起 错误的原因。
根据本发明的另一个方面,其特征还在于,时间阈控制模块根据错误计 数进行相应的错误处理。
根据本发明的另一个方面,其特征还在于,相应的错误处理是当错误次 数超过设定的临界值后,软件保护装置被限制工作,直到错误计数被授权清 除为止。
根据本发明的另一个方面,其特征还在于,日历和时钟存储单元中初始 的时间值可以在软件保护装置发布前预设,也可以在專欠件初次运行时通过同 步进行初始化。


图1为本发明的示意图。
图2为根据本发明的一种实施方式的工作流程图。
图3为实施方式中软件保护装置原有功能的工作流程。
具体实施例方式
结合时间阈控制模块实现日历和时钟的工作方法为
A:计算机在时间阈控制模块设定的时间间隔内与时间阈控制模块进行 同步,将计算机当前时间传给时间阈控制模块;
B:时间阈控制模块依据计算机传入的时间,更新装置内部保存的最新 日历时间。
所述的时间阈控制模块既可以是一个独立的硬件模块,也可以是在软件 保护装置内部实现的软件模块。该模块包括 一个用于表示其状态的存储单 元,例如寄存器或者内存单元; 一个设定的时间阁值; 一个用于错误累积的 错误计数单元; 一个用于存储日历和时钟的日历和时钟存储单元。该模块的 功能是在超过设定的时间阈值后,在没有同步操作的情况下,时间阈控制模块内部的状态存储单元将修改其标志,表示已经超过了指定的时间阈值; 如果在未超过设定的时间阈值期间进行了同步操作,时间阈控制模块将重新 开始计时;如果超过时间阈值后进行同步操作,时间阈控制模块将进行一次 错误计数累积,并重新开始计时。
所述的同步操作为计算机将当前的时间传给时间阈控制模块,时间阈 控制模块对传入的时间进行校验,根据校验的结果更新时间阈控制模块内的 曰历和时钟存储单元。
所述的校验和更新过程为判断计算机传入的时间是否是修改过的,方 法是与日历和时钟存储单元中保存的时间相比较如果合理晚于后者,则认 为校验成功,并用传入的时间更新原先存储的日历和时钟;如果不合理晚于 后者,则忽略此次同步操作;如果早于日历和时钟存储单元中保存的时间, 则认为校验失败,进行一次错误计数累积。
所述合理晚于是指计算机所传入的时间与日历和时钟存储单元中保存 的时间相比,其差值大于一个认可的时间间隔,目的是防止对传入的时间进 行固定或者伪造。
用于判断是否超过时间阈控制模块设定的时间阈的方法可以是对内部 计时/计数器的查询,也可以是硬件定时发生的中断。
所述时间阈控制模块中用于表示其状态的存储单元,其状态值影响到对 软件保护装置的使用。在状态值指示在指定时间内未同步的情况下,软件保 护装置的软件保护功能全部或部分被限制使用,直到该状态被修改为正常 值。
当所述的错误计数发生时,时间阈控制模块可以将错误同时传递给计算 机,要求计算机注意并修正引起错误的原因。
用于记录超时未同步以及记录计算机传入时间校验错误的错误计数器 既可以是一个,也可以是分别的两个。
时间阈控制模块根据错误计数进行相应的错误处理。 一种处理方法是当 错误次数超过设定的临界值后,软件保护装置将被限制工作,直到错误计数被授权清除。
时间阈控制模块内部的日历和时钟存储单元中初始的时间值可以在软 件保护装置发布前预设,也可以在软件初次运行的时候通过同步进行初始 化。
下面结合附图对本发明的具体实施例进行详细描述。
本实施例在深思洛克公司的精锐IV软件保护装置中增加一个时间阈控
制模块,模块以固件模块的方式被加入。
精锐IV软件保护装置的主要功能是将软件的部分代码移植到软件保护
装置内部,并在计算机软件的调用下在装置内部执行并返回执行结果。在增 加了时间阈控制模块后,计算机软件必须在设定的时间间隔内与时间阈控制 模块进时间上的同步,否则将禁止计算机软件调用装置内部的代码。
在本实施例中,时间阈净皮设定为T1 =300秒,即计算机软件必须在300 秒的间隔内与时间阈控制模块进行一次同步。合理晚于时间设定为T2=150 秒,即如果计算机软件在少于150秒的时间间隔内与时间阈模块进行同步或 者所传入的时间与上次比较低于150秒,则此次同步被忽略。
时间阈控制模块中的错误计数被限定为Ce-lOO,即在IOO次错误之内, 软件保护装置仍能正常工作。如果所发生的错误超过IOO次,软件保护装置 将停止提供内部代码执行的功能。
时间阈控制模块在同步机制启动后,在T1即300秒后就会发生中断, 对状态存储单元进行修改;如果进行了正确的同步,中断就会被重新设置。 本实施例中不需要一个显式的计时器。
具体工作流程为
步骤101:软件保护装置上电工作,等待计算机软件在上电后的第一次 初始同步;
步骤102:计算机开始第一次同步,将当前的时间传给软件保护装置的 时间阈控制模块;
步骤103:时间阈控制模块对传入的时间进行检验,如果晚于内部保存的时间,则更新为传入的时间,否则执行错误处理;
步骤104:时间阈控制模块启动定期同步机制,等待同步操作发生;同 时允许软件调用软件保护装置的代码执行功能;
在步骤104之后,软件可以在任何时间对软件保护装置内部的代码执行 功能进行调用。调用过程为
步骤201:计算机向软件保护装置发出调用请求;
步骤202:软件保护装置检查时间阈控制模块中的状态存储单元,检查 是否过期未同步,如果过期未同步则不允许调用并返回错误,否则执行步骤 203;
步骤203:软件保护装置读取日历和时钟存储单元中的时间值,判断是 否满足软件执行的许可条件,如果不满足则执行错误处理,否则执行步骤 204;
步骤204:如果满足条件则执行计算机要求的内部代码,将结果返回给 计算机。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等, 均应包含在本发明的保护范围之内。
权利要求
1. 一种带时间阈保护的软件保护装置,其特征在于,该装置包含软件保护装置功能模块,用于执行软件保护功能;时间阈控制模块,用于实现日历和时钟。
2、 根据权利要求1所述的装置,其特征在于,时间阈控制模块进一步 包含状态存储单元,用于存储时间阈控制模块的状态标志值; 错误计数单元,用于记录错误次数; 时间阈值,用于计时; 日历和时钟存储单元,用于存储时间。
3、 根据权利要求2所述的装置,其特征在于,状态存储单元可以是寄 存器或者内存单元。
4、 根据权利要求2所述的装置,其特征在于,在超过设定的时间阈值 后,在没有同步操作的情况下,状态存储单元将修改其状态标志值,表示已 经超过了指定的时间阈值。
5、 根据权利要求2所述的装置,其特征在于,如果在未超过设定的时 间阈值期间进行了同步操作,时间阈控制模块将重新开始计时。
6、 根据权利要求2所述的装置,其特征在于,如果超过时间阈值后进 行同步操作,时间阔控制模块进行一次错误计数累积,并重新开始计时。
7、 根据权利要求4或5或6所述的装置,其特征在于,所述的同步操 作是计算机将当前的时间传给时间阈控制模块,时间阈控制模块对传入的 时间进行校验,根据校验的结果更新日历和时钟存储单元。
8、 根据权利要求7所述的装置,其特征在于,所述的校验和更新是 通过与日历和时钟存储单元中保存的时间进行比较,判断计算机传入的时间 是否被修改过。
9、 根据权利要求8所述的装置,其特征在于,如果计算机传入的时间合理晚于日历和时钟存储单元中保存的时间,则 认为校验成功,并用传入的时间更新原先存储的日历和时钟;如果计算机传入的时间不合理晚于日历和时钟存储单元中保存的时间,则忽略此次同步操作;如果计算机传入的时间早于日历和时钟存储单元中保存的时间,则认为 校验失败,进行一次错误计数累积。
10、 根据权利要求9所述的装置,其特征在于,所述合理晚于是指计 算机所传入的时间与日历和时钟存储单元中保存的时间相比,其差值大于指 定的时间间隔。
11、 根据权利要求7所述的装置,其特征在于,用于记录超时未同步以 及记录计算机传入时间校验错误的错误计数单元既可以是一个,也可以是分 别的两个。
12、 根据权利要求7所述的装置,其特征在于,日历和时钟存储单元中 初始的时间值可以在软件保护装置发布前预设,也可以在软件初次运行时通 过同步进行初始化。
13、 一种利用带有时间阈保护"软件保护装置实现日历与时钟的方法, 其中软件保护装置包含用于实现日历和时钟的时间阈控制模块,其特征在 于,该方法包含步骤(1 )计算机在时间阈控制模块设定的时间间隔内与时间阈控制模块进行同步,将计算机当前时间传给时间阈控制模块;(2)时间阈控制模块依据计算机传入的时间,更新软件保护装置内部 保存的最新日历和时钟。
14、 根据权利要求13所述的方法,其特征在于,时间阈控制模块进一 步包含状态存储单元,用于存储时间阈控制模块的状态标志; 错误计数单元,用于记录错误次数; 时间阈^i,用于计时;曰历和时钟存储单元,用于存储日历和时钟。
15、 根据权利要求14所述的方法,其特征在于,在超过设定的时间阈 值后,在没有同步操作的情况下,状态存储单元将修改其状态标志值,表示 已经超过了指定的时间阈值。
16、 根据权利要求14所述的方法,其特征在于,如果在未超过设定的 时间阈值期间进行了同步操作,时间阈控制模块将重新开始计时。
17、 根据权利要求14所述的方法,其特征在于,如果超过时间阈值后 进行同步操作,时间阈控制模块进行一次错误计数累积,并重新开始计时。
18、 根据权利要求15或16或17所述的方法,其特征在于,所述的同 步操作是计算机将当前的时间传给时间阈控制模块,时间阈控制模块对传 入的时间进行校验,根据校验的结果更新日历和时钟存储单元。
19、 根据权利要求18所述的方法,其特征在于,所述的校验和更新是 通过与日历和时钟存储单元中保存的日历和时钟进行比较,判断计算机传入 的时间是否被修改过。
20、 根据权利要求19所述的方法,其特征在于,如果计算机传入的时间合理晚于日历和时钟存储单元中保存的时间,则 认为校验成功,并用传入的时间更新原先存储的日历和时钟;如果计算机传入的时间不合理晚于日历和时钟存储单元中保存的时间, 则忽略此次同步操作;校验失败,进行一次错误计数累积。
21、 根据权利要求20所述的方法,其特征在于,所述合理晚于是指 计算机所传入的时间与日历和时钟存储单元中保存的时间相比,其差值大于 指定的时间间隔。
22、 根据权利要求18所述的方法,其特征在于,可以通过对内部计时/ 计数器的查询,也可以通过硬件定时发生中断来判断是否超过设定的时间阈。
23、 根据权利要求18所述的方法,其特征在于,当状态存储单元的状 态标志值表示在指定时间内未同步的情况下,软件保护装置的软件保护功能 全部或部分被限制使用,直到该状态被修改为正常值为止。
24、 根据权利要求18所述的方法,其特征在于,当所迷的错误计数发 生时,时间阈控制模块可以将错误同时传递给计算机,要求计算机注意并修 正引起错误的原因。
25、 根据权利要求18所述的方法,其特征在于,时间阈控制模块根据 错误计数进行相应的错误处理。
26、 根据权利要求25所述的方法,其特征在于,相应的错误处理是当 错误次数超过设定的临界值后,软件保护装置被限制工作,直到错误计数被 授权清除为止。
27、 根据权利要求18所迷的方法,其特征在于,日历和时钟存储单元 中初始的时间值可以在软件保护装置发布前预设,也可以在软件初次运行时 通过同步进行初始化。
全文摘要
本发明公开了一种带时间阈保护的软件保护装置及其实现方法。通过在软件保护装置中增加时间阈控制单元,要求计算机必须在指定的时间间隔内与软件保护装置完成一次时间上的同步,从而实现软件保护装置内部可靠的日历功能。本发明能够满足软件保护中对时间的控制要求,但不需要软件保护装置自带实时时钟。
文档编号G06F21/00GK101290649SQ20081011194
公开日2008年10月22日 申请日期2008年5月19日 优先权日2008年5月19日
发明者孙吉平, 勇 韩 申请人:北京深思洛克数据保护中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1