软件保护装置中实时时间的远程校准方法制造方法及图纸

技术编号:10230178 阅读:182 留言:0更新日期:2014-07-18 03:47
本发明专利技术提供一种软件保护装置中实时时间的远程校准方法。包括:1)客户端获取软件保护装置内随机数、时间及其Mac,同时软件保护装置内EEPROM存储随机数和装置内时间;2)客户端获取主机时间并与步骤1中数据合并为数据包,并把数据包发送给服务器;3)服务器比较主机时间与服务器时间,如果差值在允许范围内,则计算主机时间与装置内时间之差,重新组合数据包;4)服务器校验数据包,校验成功则对随机数、装置内时间及步骤3中计算的时间差计算Mac,将Mac与数据包中数据组合成校准码,并发给客户端;5)客户端将校准码发送给软件保护装置;6)软件保护装置根据校准码校准装置内时间。本发明专利技术不依赖于本地主机时间,可获得可信的、较为精确的实时时间。

【技术实现步骤摘要】
【专利摘要】本专利技术提供一种。包括:1)客户端获取软件保护装置内随机数、时间及其Mac,同时软件保护装置内EEPROM存储随机数和装置内时间;2)客户端获取主机时间并与步骤1中数据合并为数据包,并把数据包发送给服务器;3)服务器比较主机时间与服务器时间,如果差值在允许范围内,则计算主机时间与装置内时间之差,重新组合数据包;4)服务器校验数据包,校验成功则对随机数、装置内时间及步骤3中计算的时间差计算Mac,将Mac与数据包中数据组合成校准码,并发给客户端;5)客户端将校准码发送给软件保护装置;6)软件保护装置根据校准码校准装置内时间。本专利技术不依赖于本地主机时间,可获得可信的、较为精确的实时时间。【专利说明】
本专利技术涉及计算机安全领域,特别涉及一种。
技术介绍
在软件版权保护领域,对软件的使用进行限时控制是常用的方法,例如软件定期试用、租凭、定期使用许可等模式,即软件只能在某一设定的日期之前被使用,这要求软件保护装置必须能够获得当前的实时时间,以便对软件的运行进行控制。软件保护装置是一种通过计算机接口(包括但不限于并口或者USB接口 )连接到计算机主机上的硬件设备。该设备内部具有非易失性存储空间可供读写,通常还具有单片机或者微处理控制芯片等计算处理单元。软件开发者可以通过接口函数和软件保护装置进行数据交换(即对软件保护装置进行读写),来检查软件保护装置是否插在接口上;或者直接用软件保护装置附带的工具进行加密。这样,软件开发者可以在软件中设置多处软件锁,利用软件保护装置作为钥匙来打开这些锁;如果没插软件保护装置或软件保护装置不对应,软件将不能正常执行。此外,软件保护装置内部包含特定的功能,例如一部分存储空间、一些密码算法或者一些用户自定义的算法或者功能。在软件发行之前,软件开发者修改自己的软件代码,使得软件在运行过程中需要使用到软件保护装置内部的一些功能,这样软件离开软件保护装置之后就会无法运行,而软件保护装置作为一种硬件设备复制的难度较大,从而起到防止盗版软件非法传播的作用。当前市场上主要的软件保护装置包括:美国SafeNet公司的Sentinel Superpro>以色列Aladdin公司的Hasp HL、中国北京深思洛克软件股份有限公司的精锐系列、德国W1-Bu公司的WIBU-Key等。所有这些软件保护装置都提供了内置的存储空间、私有或公开的密码算法,当软件运行过程中可以调用这些功能来检验是否属于正版。这些软件保护装置采用了智能卡芯片作为硬件的基础,而且支持用户将自己定义的功能写入到软件保护装置内部,甚至可以直接将软件的部分功能移植到软件保护装置内部完成,从而大大提高了软件被盗版的难度,通常称这种将自己定义的功能或者软件的部分功能移植到软件保护装置内部的技术为代码移植。本专利技术人现在对应网站为http://www.sense, com.cn/,其中详细公开了本专利技术人开发的软件保护装置的具体参数性能和工作原理。目前,获得实时时间的有效方法包括: 第一种是给软件保护装置附加电池,利用软件保护装置内部处理器时钟频率累加计时。但由于软件保护装置在不工作时处理器时钟处于运行状态,耗电量高,装置的有效工作期受电池容量的限制;同时,计时误差会累积,长时间使用会产生较大偏差;另外电池的使用也会增加成本。第二种是附加实时时钟芯片进行计时,软件保护装置在工作时从实时时钟芯片中读取时间信息,实时时钟芯片功耗低、计时精确,可以解决第一种方法的部分缺陷,但其使用时间仍受电池容量的限制,成本则更高。第三种是软件保护装置在每次上电时,利用内部处理器时钟频率从上次记录的时间开始累计计时,并定期写入非易失存储器中。但由于只能在上电时开始计时,因此必须使用本地主机的时间来校准。该方法最大的问题是软件破解者很容易调整主机时间,或者篡改向软件保护装置发送的时间信息。虽然该方法可以对从主机取得的时间进行一定的判断,例如将其与装置内的计时信息进行比对,只有在主机时间晚于装置时间时才被认为有效,但这种判断的有效性很差。软件破解者可以记录每次下电时间,在下一次软件保护装置工作时传入该事件之后的一个很接近的时间,使得软件保护装置实际上只是在累计上电时间,而无法得到真正的实时时间。例如一个试用期为30天的软件,假设软件平均每天使用时间为2小时,破解者利用上述手段可以获得长达约一年的使用期(24小时*30天/2小时=360天)。因此该方法无法提供有效的软件限时保护。第四种是给软件保护装置附加时钟芯片和电池,无论软件保护装置是否上电工作,时钟芯片始终在计时。当软件保护装置下电时,由电池为时钟芯片供电。因此时钟芯片能够正常计时的时间由电池容量决定。如果电池电量耗尽使得时钟芯片停止计时,或者电量不足影响时钟芯片的计时精度,软件保护装置都无法获得实时时间以实施对受保护软件的使用控制。此外,外界环境干扰(如强烈电磁辐射)也会引起时钟芯片功能异常,导致计时出错。另外,软件破解者有可能会给时钟芯片放电,或通过芯片的信号管脚发送命令以改变芯片内的计时信息,从而获得超出软件使用期限的使用授权。如果软件保护装置内的实时时钟早于实时时间,将使得软件的限时使用控制失效,损害了软件商的利益;如果晚于实时时间,软件将会在有效期内被禁止使用,损害了使用者的利益。软件商只能采取更换软件保护装置或重新设置实时时钟的方法,这无疑将增加软件商的物理和管理成本。MAC (Message Authentication Code,消息认证码)是基于密钥和消息摘要所获得的一个值,用来验证消息的完整性和真实性(即合法性)。具体来说,它是利用密钥来生成一个固定长度的端数据块,并将该数据块附加在消息之后,通信中,消息和MAC —起被发给接收方,接收方利用收到的信息及密钥进行计算,若得到新的MAC值和接收到的值相等,则认为: 1)接收到的信息未被篡改:因为攻击者没有密钥,故篡改信息之后,得不到对应的MAC值(消息完整性保护); 2)接收到的信息来自真正的发送方:攻击者没有密钥,不能生成MAC值(保证信息的合法性)。MAC算法(带密钥的hash函数)是含有密钥散列函数算法,兼容了 MD和SHA算法的特性,并在此基础上增加了密钥。MAC中消息的散列值由只有通信双方知道的秘密密钥来控制。通常有基于HASH函数的MAC(被称为HMAC)以及基于分组密码的MAC(通常称之为 CMAC)。
技术实现思路
有鉴于此,本专利技术提供了一种。本专利技术提供一种软件保护装置中实时时间校准的方法,所述方法步骤包括: 1.客户端获取软件保护装置中的随机数、装置内时间及其消息认证码Mac,同时,软件保护装置内部保存当前装置内时间和随机数信息; 2.客户端获取主机时间,与步骤I中获取的数据即随机数、装置内时间及其Mac合并为数据包,并将数据包发送给服务器; 3.服务器接收客户端发送的数据包,比较其中的主机时间与服务器端时间,如果差值在允许范围内,则执行步骤4 ; 4.服务器计算数据包中存储的主机时间和软件保护装置内部时间的时间差,重新组合数据包;重新组合就是在原有数据包中增加本步骤所计算出的时间差,组合方式例如:可以将本步骤计算出的时间差添加在原数据包的末尾位置(当然也可以是其他位置); 5.服务器对本文档来自技高网
...

【技术保护点】
一种软件保护装置中实时时间校准的方法,所述方法步骤包括: (1)客户端获取软件保护装置中的随机数、装置内时间及其消息认证码Mac,同时,软件保护装置内部保存当前装置内时间和随机数信息;  (2)客户端获取主机时间,与步骤(1)中获取的数据即随机数、装置内时间及其Mac合并为数据包,并将数据包发送给服务器; (3)服务器接收客户端发送的数据包,比较其中的主机时间与服务器端时间,如果差值在允许范围内,则执行步骤(4); (4)服务器计算数据包中存储的主机时间和软件保护装置内部时间的时间差,重新组合数据包;  (5)服务器对重新组合后的数据包进行校验,如果校验成功,则执行步骤(6),否则,返回错误信息; (6)服务器用重新组合后的数据包中的随机数、装置内时间、步骤(4)中计算出的时间差计算Mac,组合成校准码; (7)服务器将校准码发送给客户端;(8)客户端将校准码发送到软件保护装置,软件保护装置获取校准码,校准装置内时间。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙吉平韩勇
申请(专利权)人:北京深思数盾科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1