专利名称:软件保护装置中实时时间的获得及远程校准方法
技术领域:
本发明涉及计算机安全领域,特别是一种软件保护装置中获取实 时时间并对该实时时间进行远程校准的方法。
背景技术:
在软件版权保护领域,对软件的使用进行限时控制是常用的方法, 例如软件定期试用、租赁、定期使用许可等模式,即软件只能在某一 设定的日期之前被使用,这要求软件保护装置必须能够获得当前的实 时时间,以便对软件的运行进行控制。目前,获得实时时间有如下几 种实现方法第 一种方法是给软件保护装置附加电池,利用软件保护装置内部 处理器时钟频率累加计时。但由于软件保护装置在不工作时处理器仍 处于运行状态,耗电量高,装置的有效工作期受到电池容量的限制; 同时计时误差会累积,长时间使用会产生较大偏差;另外电池的使用 也会增加成本。第二种方法是附加实时时钟芯片进行计时,软件保护装置在工作 时从实时时钟芯片读取时间信息,实时时钟芯片功耗低、计时精确, 可以解决第 一种方法的部分缺点,但其使用时间仍受电池容量的限制, 成本则更高。第三种方法是软件保护装置在每次上电时利用内部处理器时钟频 率,从上次记录的时间开始累计计时,并定期写入非易失存储器中。但由于只能在上电时开始计时,因此必须使用本地主机的时间来校准。 该方法的最大问题是软件破解者很容易调整主机时间,或者篡改向软 件保护装置发送的时间信息。虽然该方法可以对从主机取得的时间进 行一定的判断,例如将其与装置内的计时信息进行比对,只有在主机 时间晚于装置时间时才被认为有效,但这种判断的有效性很差。软件 破解者可以记录每次下电时间,在下一次软件保护装置工作时传入该 时间之后的 一个很接近的时间,使得软件保护装置实际上只是在累计上电时间,而无法得到真正的实时时间。例如一个试用期为30天的软 件,假设软件平均每天的使用时间是2小时,破解者利用上述手段可 以获得长达约1年的使用期(24小时x 30天-2小时=360天)。因此该 方法无法提供有效的软件限时保护。发明内容为了解决上述问题,本发明提出了 一种软件保护装置中实时时间 的获得及远程校准方法,其在设定策略的控制下分析受保护软件的使为了便于叙述,首先对以下概念给出定义 实时时间准确的当前日期和时刻 发布时间软件保护装置发布的日期和时刻装置时间软件保护装置中当前所记录并维护的日期和时刻,本 发明的目的是使其尽可能地与实时时间相符主机时间软件保护装置从本地主机获得的日期和时刻信息,该 时间可能被人为改变,因此不一定与实时时间相符服务器时间由时钟服务器发出的响应数据包信息中的日期和时 刻,该时间是可信的实时时间上电时间软件保护装置某次上电过程的时间间隔累计上电时间从某一时刻开始以来所有上电时间的总和工作时间软件保护装置实施某次软件保护功能的时间间隔,即 保护功能结束时间减去保护功能开始时间,通常与受保护软件的一次 运行时间相对应累计工作时间从某一时刻开始以来所有工作时间的总和使用时间软件保护装置所推测出的,从某一起始时间到当前时 间之间的间隔,即装置时间减去该起始时间为实现上述目的,本发明提出的软件保护装置中实时时间的获得 及远程校准方法包括以下步骤a. 所述软件保护装置在上电后从所述非易失存储器中读取所保存 的装置时间,根据主机时间对该装置时间进行修正后,启动计时功能 并定期将当前的装置时间记录到所述非易失存储器内;b. 所述软件保护装置对所述受保护软件的使用信息进行统计和记 录,并判断所述使用信息是否达到设定的阈值条件;c. 当判断为上述使用信息达到了设定的阈值条件时,所述软件保 护装置启动实时时间远程校准流程,包括以下步骤d. 所述软件保护装置根据装置时间实施软件保护功能。所述软件保护装置在首次上电前,其内的非易失存储器中设置有 作为初始的装置时间的受保护软件发布时间。所述根据主机时间对所述装置时间进行修正的过程具体为判断 主机时间的有效性;如果判断为有效,即主机时间晚于装置时间,或 主机时间在预定的时间范围内早于装置时间,则根据主机时间更新装 置时间;如果判断为无效,即主机时间在预定的时间范围之外早于装 置时间,则进入主机时间异常处理流程,具体为启动所述c步骤的实 时时间远程校准流程、或者禁止使用所述受保护软件。所述c步骤具体包括如下步骤cl.所述软件保护装置向远程的时钟服务器发送请求数据包;c2.所述时钟服务器接收请求数据包后,生成响应数据包并发送 给所述软件保护装置;c3.所述软件保护装置收到响应数据包并验证其为有效时,用该 响应数据包内包含的时钟服务器时间校准所述装置时间,然后根据主 机时间对所述校准后的装置时间进行修正。在b步骤中,所述受保护软件的使用信息包括以下信息的至少其 中一种该受保护软件从最近一次校准时间起的使用时间;该受保护 软件从最近一次校准时间起的累计工作时间;该受保护软件从最近一 次校准时间起的累计上电时间;该受保护软件从最近一次校准时间起 的累计使用次数;所述最近一次校准时间为步骤c3中所述软件保护装 置成功地用服务器时间校准所述装置时间的时刻,或者为所述软件发 布时间。在b步骤中,所述阈值条件包括以下条件的至少其中一个从最 近一次校准时间起,所述受保护软件使用时间达到预设值;从最近一 次校准时间起,所述受保护软件累计工作时间达到预设值;从最近一 次校准时间起,所述受保护软件累计上电时间达到预设值;从最近一 次校准时间起,所述受保护软件累计使用次数达到预设值;从最近一 次校准时间起,累计工作时间与使用时间之比达到预设值;从最近一 次校准时间起,累计上电时间与使用时间之比达到预设值;从最近一 次校准时间起,受保护软件累计使用次数与使用时间之比达到预设值; 所述最近一次校准时间为步骤c3中所述软件保护装置用于校准所述装 置时间的所述服务器时间,或者为所述软件发布时间。在cl步骤中,所述请求数据包包含以下数据的至少其中一个所 述软件保护装置的设备信息;记录在非易失存储器中的请求数据包编 号,该编号的初始值为0,在每次发送请求数据包后加1;随机信息, 由所述软件保护装置在生成请求数据包时产生并记录在非易失存储器 中。在c2步骤中,所述响应数据包包含以下数据的至少其中一个实 时时间;请求数据包中包含的所述软件保护装置的设备信息;请求数 据包的编号;请求数据包中包含的随机信息。在cl和c2步骤中,所述软件保护装置和时钟服务器共享一个对 称密钥,以对所述响应数据包进行加密和解密。在cl和c2步骤中,所述时钟服务器对所述响应数据包附加验证 数据以待所述软件保护装置加以验证,所述验证数据由所述时钟服务 器使用密码学算法对响应数据包的数据运算产生。在C3步骤中,所述软件保护装置对响应数据包有效性的验证过程包括下列步骤的至少其中 一个所述响应数据包中包含的软件保护装 置设备信息与软件保护装置实际设备信息的 一致性验证;所述响应数 据包中包含的请求数据包编号与所述软件保护装置记录的请求数据包 编号的一致性验证;所述响应数据包中包含的随机信息与所述软件保 护装置记录的包含在请求数据包中的随机信息的一致性验证;使用响 应数据包中包含的可验证数据对响应数据包的完整性和不可伪造性进 行验证。在c3步骤中,所述软件保护装置用时钟服务器时间校准装置时间 的过程包括判断时钟服务器时间的有效性;如果判断为有效,即时 钟服务器时间晚于装置时间,或者在预定的时间范围内早于装置时间, 则用时钟服务器时间更新装置时间;如果判断为无效,即时钟服务器 时间在预定的时间范围之外早于装置时间,则进入包括禁止受保护软 件的使用在内的响应数据包异常处理流程。如果所述实时时间远程校准流程已经启动但尚未完成,则在d步 骤中对所述受保护软件实施以下控制策略之一立即禁止所述受保护 软件的使用;从此刻起,当使用时间达到预定值之后禁止所述受保护 软件的使用;从此刻起,当累计工作时间达到预定值之后禁止所述受 保护软件的使用;从此刻起,当累计上电时间达到预定值之后禁止所 述受保护软件的使用;从此刻起,当受保护软件累计使用次数达到预 定值之后禁止所述受保护软件的使用。如果没有启动所述实时时间远程校准流程,则在d步骤中对所述 受保护软件实施预定的控制策略。本发明的有益效果在于弥补了现有技术中主机时间不可信的缺 点,为软件著作权的限时保护提供了低成本、实用性强的解决方案。 使用本发明的方法无须为软件保护装置附加实时时钟芯片和电池,也 不依赖于本地主机时间,可获得可信的、较为精确的实时时间,为软 件开发商提供了日期限制等软件保护方案。
图1为本发明的控制流程图。
具体实施方式
下面结合附图对本发明的具体实施例做详尽描述。软件保护装置内包含有非易失存储器,用于保存装置时间等数据。 初始的装置时间为受保护软件的发布时间。图1为本发明的控制流程图,如图所示,软件保护装置上电(SOl) 后,读取非易失存储器中存储的装置时间(S02)和主机时间(S03) 并将这两个时间进行比较,即检查主机时间(S04),以判断该时间是 否为有效的实时时间。如果主机时间在允许的范围外早于装置时间,说明主机时间被人 为改动,判断主机时间无效并进入主机时间异常处理流程(S06),立 即禁止对受保护软件的使用(S23),或者启动远程校准流程(Sll), 以强制用户从时钟服务器端获取正确的实时时间。如果主机时间晚于装置时间,或在允许的范围内早于装置时间, 则认为主机时间可信,并使用主机时间修正装置时间(S05)。之后软件保护装置利用内部的时钟频率开始计时,更新装置时间并定期将当 前装置时间记录到非易失存储器中以防突然掉电(S07 )。在软件保护装置进行计时的同时还定期检查受保护软件的使用情况,统计并记录该受保护软件的使用信息(S08),并判断所保护软件 的使用信息如使用时间是否达到了设定的阈值(S09),如果达到阈值 则启动远程校准流程(S11 )。上述的受保护软件的使用信息可以是该受保护软件从最近一次校 准时间起的使用时间、累计工作时间、累计上电时间或者累计使用次 数,所述阈值条件可以是最近一次校准时间起,受保护软件的使用时 间、累计工作时间、累计上电时间、累计使用次数、累计工作时间与 使用时间之比、上电时间与使用时间之比或者累计使用次数与使用时 间之比达到预设值。上述最近一次校准时间为软件保护装置成功地用 服务器时间校准所述装置时间的时刻,或者为受保护软件的发布时间。现以具体的操作策略来说明检查和判断阈值的方法。例如一个办 公软件的限制使用期限是100天, 一般平均每天使用时间不会超过8 小时,也就是说在正常情况下该软件的累计工作时间达到800小时后 即超过使用期限,同时累计工作时间与使用时间(从软件发布时间到 当前的时间间隔)的比值不应超过1/3。因此可以让软件保护装置记录 累计工作肘间,如果发现已经达到一定数值,比如500小时,并且与 使用时间的比值明显大于1/3,比如达到1/2,则很可能主机时间被人 为修改了,当前的装置时间可信度很低,这时就启动远程校准流程 (Sll)。在用户正常的使用情况下,累计工作时间与使用时间的比值 很难达到上述条件,因此不会启动远程校准流程(S11)而是直接进入对受保护软件的控制流程(S10),不会给正常使用软件的用户造成不 便。启动远程校准流程(S11 )后,软件保护装置产生随机信息,该随机信息可以是硬件产生的一定长度的随机数,由所述软件保护装置在 生成请求数据包时产生并记录在非易失存储器中,该随机数与设备唯一序列号组成请求数据包(S12),经由主机发送给时钟服务器(S13)。 请求数据包还可以包括记录在软件保护装置的非易失存储器中的请求 数据包编号,该请求数据包编号的初始值为0,并在每次发送请求数据 包后加1。这时在时钟服务器端,服务器接收到请求后(S20),将当前的实 时时间、请求数据包中包含的上述随机数和设备唯一序列号组成响应 数据包数据,并用服务器私钥对响应数据包进行数字签名附加到响应 数据包中(S21),经由主机返回给软件保护装置(S22)。如果请求数 据包内包含请求数据包编号,则响应数据包也包含该编号,以便软件 保护装置进行检验。软件保护装置和时钟服务器可以使用密码学功能来保证响应数据 包的完整性和不可伪造性。具体可采用如下方案软件保护装置和时 钟服务器可以共享一个对称密钥,以对所述响应数据包进行加密和解 密;或者由时钟服务器对响应数据包附加可验证数据,该数据由时钟 服务器使用密码学算法生成,被软件保护装置验证其有效性,而他人 无法生成,例如可以釆用MAC、 HMAC、数字签名等密码学算法对响 应数据包的数据运算产生。本实施例中采用对称密钥的方案。软件保护装置接收上述时钟响 应数据包(S14)后,用共享的对称密钥对其解密,并验证响应数据包 中的随机数和设备唯一序列号或者请求数据包编号与该软件保护装置内部保存的信息是否一致(S15)。如果采用由时钟服务器对响应数据包附加可验证数据的方案,则需要使用响应数据包中包含的可验证数 据对响应数据包的完整性和不可伪造性进行验证。如果上述验证未能通过,则认为是一个无效的响应数据包,这时进入时钟响应包异常处理流程(S16);如果上述验证均通过,则认为 是一个有效的响应数据包,并用其中的实时时间更新装置时间(S17), 这时需要判断时钟服务器时间的有效性,如果时钟服务器时间晚于装 置时间,或者在预定的时间范围内早于装置时间,则用时钟服务器时 间更新装置时间,否则进入响应数据包异常处理流程,例如禁止使用 所述受保护软件。由于响应数据包从服务器端发出到软件保护装置端接收会有延 时,因此软件保护装置在用服务器时间校准装置时间后可以再用主机 时间修正(S18),修正时同样需要判断主机时间的有效性,其过程与 前述上电后用主机时间修正装置时间(S05)相同。当成功完成上述操 作后,结束远程校准流程(S19),进入对受保护软件的控制流程(SIO)。如果实时时间远程校准流程已经启动但尚未完成,则立即禁止受 保护软件的使用,或者从此刻起当受保护软件的使用时间、累计工作 时间、当累计上电时间或者累计使用次数达到预定值之后禁止该受保 护软件的使用。如果没有启动实时时间远程校准流程,则对受保护软 件实施预定的控制策略。本发明不局限于上述特定实施例子,在不背离本发明精神及其实形,这些相应改变和变形都应属于本发明所附权利要求保护范围之内。
权利要求
1、一种软件保护装置中实时时间的获得及远程校准方法,其特征在于,该方法包括以下步骤a.所述软件保护装置在上电后从所述非易失存储器中读取所保存的装置时间,根据主机时间对该装置时间进行修正后,启动计时功能并定期将当前的装置时间记录到所述非易失存储器内;b.所述软件保护装置对所述受保护软件的使用信息进行统计和记录,并判断所述使用信息是否达到设定的阈值条件;c.当判断为上述使用信息达到了设定的阈值条件时,所述软件保护装置启动实时时间远程校准流程;d.所述软件保护装置根据装置时间实施软件保护功能。
2、 如权利要求1所述的软件保护装置中实时时间的获得及远程校 准方法,其特征在于,所述软件保护装置在首次上电前,其内的非易 失存储器中设置有作为初始的装置时间的受保护软件发布时间。
3、 如权利要求1所述的软件保护装置中实时时间的获得及远程校 准方法,其特征在于,所述c步骤具体包括以下步骤c 1.所述软件保护装置向远程的时钟服务器发送请求数据包;c2.所述时钟服务器接收请求数据包后,生成响应数据包并发送 给所述软件保护装置;c3.所述软件保护装置收到响应数据包并验证其为有效时,用该 响应数据包内包含的时钟服务器时间校准所述装置时间,然后根据主 机时间对所述校准后的装置时间进行修正。
4、 如权利要求1~3中任一个所述的软件保护装置中实时时间的获得及远程校准方法,其特征在于,所述a步骤中根据主机时间对所述 装置时间进行修正的过程具体为判断主机时间的有效性;如果判断为有效,即主机时间晚于装置时间,或主机时间在预定 的时间范围内早于装置时间,则根据主机时间更新装置时间;如果判断为无效,即主机时间在预定的时间范围之外早于装置时 间,则进入主机时间异常处理流程,所述处理流程包括启动所述c步 骤的实时时间远程校准流程或者禁止使用所述受保护软件。
5、 如权利要求3所述的软件保护装置中实时时间的获得及远程校 准方法,其特征在于,所述c3步骤中根据主机时间对所述装置时间进 行修正的过程具体为判断主才几时间的有效性;如果判断为有效,即主机时间晚于装置时间,或主机时间在预定 的时间范围内早于装置时间,则根据主机时间更新装置时间;如果判断为无效,即主机时间在预定的时间范围之外早于装置时 间,则进入主机时间异常处理流程,所述处理流程包括禁止使用所述 受保护软件。
6、 如权利要求3或5所述的软件保护装置中实时时间的获得及远 程校准方法,其特征在于,在b步骤中,所述受保护软件的使用信息 包括以下信息的至少其中一种该受保护软件从 最近一次校准时间起的使用时间;该受保护软件从最近一次校准时间起的累计工作时间;该受保护软件从最近一次校准时间起的累计上电时间;该受保护软件从最近一次校准时间起的累计使用次数;所述最近一次校准时间为步骤c3中所述软件保护装置成功地用服 务器时间校准所述装置时间的时刻,或者为所述软件发布时间。
7、如权利要求3或5所述的软件保护装置中实时时间的获得及远程校准方法,其特征在于,在b步骤中,所述阈值条件包括以下条件 的至少其中一个从最近一次校准时间起,所述受保护软件使用时间达到预设值; 从最近一次校准时间起,所述受保护软件累计工作时间达到预设值;从最近一次校准时间起,所述受保护软件累计上电时间达到预设值;从最近一次校准时间起,所述受保护软件累计使用次数达到预设值;从最近一次校准时间起,累计工作时间与使用时间之比达到预设值;从最近一次校准时间起,累计上电时间与使用时间之比达到预设值;从最近一次校准时间起,受保护软件累计使用次数与使用时间之比达到预设值;所述最近一次校准时间为步骤c3中所述软件保护装置用于校准所 述装置时间的所述服务器时间,或者为所述软件发布时间。
8、 如权利要求3或5所述的软件保护装置中实时时间的获得及远 程校准方法,其特征在于,在cl步骤中,所述请求数据包包含以下数 据的至少其中一个所述软件保护装置的设备信息;记录在非易失存储器中的请求数据包编号,该编号的初始值为0, 在每次发送请求lt据包后加1;随机信息,由所述软件保护装置在生成请求数据包时产生并记录 在非易失存储器中。
9、 如权利要求3或5所述的软件保护装置中实时时间的获得及远 程校准方法,其特征在于,在c2步骤中,所述响应数据包包含以下数 据的至少其中一个实时时间;请求数据包中包含的所述软件保护装置的i殳备信息;请求数据包的编号;请求数据包中包含的随机信息。
10、 如权利要求3或5所述的软件保护装置中实时时间的获得及 远程校准方法,其特征在于,在cl和c2步骤中,所述软件保护装置和时钟服务器共享一个对称密钥,以对所述响应数据包进行加密和解 密。
11、 如权利要求3或5所述的软件保护装置中实时时间的获得及 远程校准方法,其特征在于,在cl和c2步骤中,所述时钟服务器对 所述响应数据包附加验证数据以待所述软件保护装置加以验证,所述 验证数据由所述时钟服务器使用密码学算法对响应数据包的数据运算 产生。
12、 如权利要求3或5所述的软件保护装置中实时时间的获得及 远程校准方法,其特征在于,在c3步骤中,所述软件保护装置对响应 数据包有效性的验证过程包括下列步骤的至少其中 一个所述响应数据包中包含的软件保护装置设备信息与软件保护装置 实际设备信息的 一致性验证;所述响应数据包中包含的请求数据包编号与所述软件保护装置记 录的请求数据包编号的一致性验证;所述响应数据包中包含的随机信息与所述软件保护装置记录的包 含在请求数据包中的随机信息的一致性验证;使用响应数据包中包含的可验证数据对响应数据包的完整性和不 可伪造性进行验证。
13、 如权利要求3或5所述的软件保护装置中实时时间的获得及 远程校准方法,其特征在于,在c3步骤中,所述软件保护装置用时钟 服务器时间校准装置时间的过程包括判断时钟服务器时间的有效性;如果判断为有效,即时钟服务器时间晚于装置时间,或者在预定的时间范围内早于装置时间,则用时钟服务器时间更新装置时间;如果判断为无效,即时钟服务器时间在预定的时间范围之外早于 装置时间,则进入包括禁止受保护软件的使用在内的响应数据包异常 处理流程。
14、 如权利要求1 3中任一个所述的软件保护装置中实时时间的 获得及远程校准方法,其特征在于,如果所述实时时间远程校准流程 已经启动但尚未完成,则在d步骤中对所述受保护软件实施以下控制 策略之一立即禁止所述受保护软件的使用;从此刻起,当使用时间达到预定值之后禁止所述受保护软件的使用;从此刻起,当累计工作时间达到预定值之后禁止所述受保护软件的使用;从此刻起,当累计上电时间达到预定值之后禁止所述受保护软件 的使用;从此刻起,当受保护软件累计使用次数达到预定值之后禁止所述 受保护软件的使用。
15、 如权利要求1~3中任一个所述的软件保护装置中实时时间的 获得及远程校准方法,其特征在于,如果没有启动所述实时时间远程 校准流程,则在d步骤中对所述受保护软件实施预定的控制策略。
全文摘要
一种软件保护装置中实时时间的获得及远程校准方法,包括软件保护装置在上电后读取所保存的装置时间,根据主机时间对该装置时间进行修正后,启动计时功能并定期记录当前的装置时间;软件保护装置记录受保护软件的使用信息,并判断该使用信息是否达到设定的阈值条件;当达到阈值条件时启动实时时间远程校准流程,包括软件保护装置向时钟服务器发送请求数据包、时钟服务器生成响应数据包并发送给软件保护装置、软件保护装置收到响应数据包并验证其为有效时,用服务器时间校准装置时间;软件保护装置根据装置时间实施软件保护功能。本发明弥补了现有技术中主机时间不可信的缺点,为软件著作权的限时保护提供了低成本、实用性强的解决方案。
文档编号G06F21/00GK101216870SQ20071030456
公开日2008年7月9日 申请日期2007年12月28日 优先权日2007年12月28日
发明者孙吉平, 勇 韩 申请人:北京深思洛克数据保护中心