一种软件保护方法及装置
技术领域
本发明涉及信息安全领域,特别涉及一种基于GPS授时的软件保护方法及装置。
背景技术
在软件版权保护领域,对软件的使用进行限时控制是常用的方法,例如软件定期试用、租赁、定期使用许可、分期付款等模式,即软件只能在某一设定的时间段内被使用,这要求软件保护装置必须能够获得当前的实时时间,以便对软件的运行进行控制。
软件保护装置是一种通过计算机接口(例如并口或者USB接口等)连接到计算机主机上的硬件设备。软件保护装置内部具有非易失性存储空间用于读写,通常还具有单片机或者微处理控制芯片等计算处理单元。软件开发者可以通过接口函数和软件保护装置进行数据交换(即对软件保护装置进行读写),以检查软件保护装置是否插在计算机接口上;或者利用软件保护装置附带的工具进行加密。这样,软件开发者可以在软件中多处设置软件锁,利用软件保护装置作为“钥匙”来打开这些软件锁;如果计算机没有插接软件保护装置或者软件保护装置不对应,计算机中相应的软件将不能正常执行。
此外,软件保护装置内部还可包含有其它特定的功能,例如包含存储空间、密码算法或者用户自定义的算法或者功能等。在软件发行之前,软件开发者修改软件代码,使得软件在运行过程中需要使用到软件保护装置内部的功能,进而使得软件离开软件保护装置之后无法运行,因为软件保护装置作为一种硬件设备复制的难度较大,从而可起到防止盗版软件非法传播的作用。
当前市场上主要的软件保护装置包括:美国SafeNet(赛孚耐)公司的SentinelSuperpro、以色列Aladdin(阿拉丁)公司的Hasp HL、中国北京深思洛克软件股份有限公司的精锐系列、德国Wi-Bu公司的WIBU-Key等。所有这些软件保护装置都提供了内置的存储空间、私有或公开的密码算法,在软件运行过程中可以调用这些功能来检验软件是否属于正版。这些软件保护装置采用了智能卡芯片作为硬件的基础,而且支持用户将自定义的功能写入到软件保护装置内部,甚至可以直接将软件的部分功能移植到软件保护装置内部完成,从而大大提高了软件被盗版的难度。通常称这种将自定义的功能或者软件的部分功能移植到软件保护装置内部的技术为代码移植。
时钟锁,即带有时钟控制的加密锁,是软件保护装置的一种功能,用以限制软件保护装置的使用时间,进而限制软件的使用时间。现有的时钟锁都带有电池,时钟锁的有效工作时间受到电池容量的限制,而电池具有较短的寿命,并且随着时间的推移,时钟锁的误差会增加,这样便不能有效的限制软件保护装置的使用时间,特别是在需要时间精确度高的场合。另外,现有的时钟锁中,每个时钟锁的时间彼此并不同步,进而不利于对使用多个软件保护装置的软件的管理和调控。并且在现有技术中,很多主机(计算机)时间都存在不可信的缺点(如未联网的计算机不能进行时间同步等),进而影响了很多依赖于本地主机时间的时钟锁方案最终使用的效果和范围。
发明内容
有鉴于此,本发明提供一种软件保护方法和装置,以提供软件保护中的精确时间精和保障软件的安全性。
本申请的技术方案是这样实现的:
一种软件保护方法,包括:
设定软件授权使用时间阀值;
通过GPS获取参考时间;
依据所述参考时间确定所述软件的使用时间;
当所述软件的使用时间达到所述阀值时,限制所述软件的使用。
进一步,所述软件授权使用时间阀值为时间长度值。
进一步,依据所述参考时间确定所述软件的使用时间包括:
在所述软件初次使用时的参考时间,作为所述软件的初始时间;
将所述软件使用时的参考时间与所述软件的初始时间的差值,作为所述软件的使用时间。
进一步,所述软件的使用时间达到所设定的阀值为:所述软件的使用时间达到所述时间长度值。
进一步,所述软件授权使用时间阀值为时间点。
进一步,依据所述参考时间确定所述软件的使用时间包括:
将所述软件使用时的参考时间作为所述软件的使用时间。
进一步,所述软件的使用时间达到所设定的阀值为:所述软件的使用时间达到所述时间点。
进一步,限制所述软件的使用包括:禁止所述软件的使用或者禁止所述软件的部分功能。
一种软件保护装置,包括:
GPS模块,用于通过GPS获取参考时间;
主控芯片,与所述GPS模块连接,并通过并口或者USB接口连接于计算机,用于存储所述计算机中软件的授权使用时间阀值,依据所述参考时间确定所述软件的使用时间,当所述软件的使用时间达到所述阀值时,限制所述软件的使用。
进一步,所述主控芯片包括存储单元、时间获取单元、计算单元和执行单元;其中
所述存储单元,用于存储软件授权使用时间阀值和所述参考时间;
所述时间获取单元,连接于所述GPS模块,并与所述存储单元连接,用于从所述GPS模块接收所述参考时间并将其发送给所述存储单元;
所述计算单元,连接于所述存储单元,用于依据所述软件授权使用时间阀值和所述参考时间计算所述软件的使用时间是否达到所述阀值;
所述执行单元,连接于所述计算单元,并通过并口或者USB接口连接于所述计算机,用于当达到所述阀值时,限制所述软件的使用。
进一步,所述主控芯片还包括:
安全管理单元,通过并口或者USB接口连接于所述计算机,用于提供所述软件的安全保护操作。
进一步,所述主控芯片还用于将所述参考时间发送给所述计算机以进行所述计算机的时间同步。
从上述方案可以看出,本发明所提供的软件保护方法和装置利用GPS模块获取准确的全球一致的GPS时间。当多个软件保护装置都在使用时,由于每个都是通过GPS获取的一致的时间,因此每个软件保护装置的时间都是同步的,进而对于多个软件保护装置且需要同时控制软件使用时间的技术方案提供基于时间的可靠支持。
本发明的软件保护方法和装置,可有效弥补现有时钟锁依赖于电池且容易产生误差以及时间不同步的缺点,通过GPS模块获取准确的可信的实时时间,进而可精确控制软件保护时间,同时还可通过本发明的软件保护装置校准计算机的系统时钟,进而可简化操作、提高软件使用时的时间精确度和安全性。
附图说明
图1为本发明的软件保护方法流程图;
图2为本发明的软件保护装置实施例结构图;
图3为本发明的软件保护装置另一实施例结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
如图1所示,本发明的软件保护方法包括:
步骤1、设定软件授权使用时间阀值;
步骤2、通过GPS获取参考时间;
步骤3、依据所述参考时间确定所述软件的使用时间;
步骤4、当所述软件的使用时间达到所述阀值时,限制所述软件的使用。
本发明的方法,通过增加GPS模块以通过GPS获取参考时间,由于GPS时间为全球一致设定的时间,这样对于软件保护来说,便可以校正软件的正确使用时间,该种方法对于未联网计算机或者时间不同步计算机以及人为修改系统时间的计算机同样有效。以下结合两个实施例,进一步对本发明的软件保护方法进行详细说明。
实施例1
步骤1、设定软件授权使用时间阀值。
本步骤1中,将软件授权使用时间阀值设定为一时间长度值t0,例如30天等。这样在进行软件保护时,从软件最开始激活使用开始算起,只要软件使用天数达到了30天,便达到了软件的使用期限。
步骤2、通过GPS获取参考时间。
本步骤中可利用现有的GPS模块获取参考时间。该参考时间的获取是在软件的使用过程中进行的,因为考虑到由于计算机系统时间的不准确,需要通过GPS及时获知准确的参考时间,这样才能为软件的时间方面的保护,提供可靠的时间依据。
步骤3、依据所述参考时间确定所述软件的使用时间。
因为考虑到计算机系统时间可能不准确,需要根据GPS获取的参考时间来确定软件的使用时间。
本步骤3包括:
在软件初次使用时通过GPS获取的参考时间,作为所述软件的初始时间T0;
将所述软件使用时通过GPS获取的参考时间T1与软件的初始时间T0的差值,作为所述软件的使用时间t1,即
T1-T0=t1
步骤4、当所述软件的使用时间达到所述阀值时,限制所述软件的使用。
本实施例中,步骤4的所述软件的使用时间达到所述阀值表示为所述软件的使用时间t1达到所述时间长度值t0。具体地,在软件使用时,判断t1是否达到t0的大小,当t1≥t0时,即所述软件的使用时间达到或者超过了所设定的软件授权使用时间阀值,表明软件已经到达使用期限,这时便限制所述软件的使用。
限制所述软件的使用,例如禁止所述软件的使用或者禁止所述软件的部分功能等,可采用现有技术进行软件使用的限制。
实施例2
步骤1、设定软件授权使用时间阀值。
本步骤1中,将软件授权使用时间阀值设定为一时间点,例如2014年12月31日等。这样,在进行软件保护时,无论软件是否开始激活使用,其最后的使用期限均在2014年12月31日,这相当于给软件提供了一个“保质期”,即使从未使用的软件,只要达到了该“保质期”便无法使用,这对于某些具有特殊需求的软件非常重要。
步骤2、通过GPS获取参考时间。
本步骤与实施例1中相同,不再赘述。
步骤3、依据所述参考时间确定所述软件的使用时间。
本实施例2中,是将所述软件使用时的参考时间作为所述软件的使用时间。例如,当在2014年12月15日使用所述软件时,通过GPS模块获取的参考时间,作为所述软件的使用时间。
步骤4、当所述软件的使用时间达到所述阀值时,限制所述软件的使用。
本实施例中,步骤4的所述软件的使用时间达到所述阀值表示为所述软件的使用时间达到所述时间点。具体地,在软件使用时,通过GPS模块获取的参考时间即为所述软件的使用时间,将该GPS模块获取的参考时间与所设置的时间点进行比较,当GPS模块获取的参考时间达到了所设置的时间点或者已经超过了所设置的时间点,则表明所述软件已经到达使用期限,这时便限制所述软件的使用。例如,所设置的时间点为2014年12月30日,当GPS模块获取的参考时间为2014年12月30日时或者超过2014年12月30日(例如2014年12月31日)时,则表明所述软件已经到达(或者超过)2014年12月30日的使用期限,这是便限制所述软件的使用。
本发明实施例中,限制所述软件的使用包括禁用所述软件功能、对所述软件进行初始化等。
本发明还提供了一种软件保护装置,如图2所示,软件保护装置10包括GPS模块11和与其连接的主控芯片12。其中,所述GPS模块11,用于通过GPS获取参考时间,并将所获取的参考时间发送给主控芯片12。所述主控芯片12,与所述GPS模块11连接,并通过并口或者USB接口连接于计算机20,用于存储所述计算机20中软件的授权使用时间阀值,依据所述参考时间确定所述软件的使用时间,当所述软件的使用时间达到所述阀值时,限制所述软件的使用。
如图3所示,主控芯片12中进一步包括存储单元121、时间获取单元122、计算单元123和执行单元124。其中,所述存储单元121,用于存储软件授权使用时间阀值和所述参考时间。所述时间获取单元122,连接于所述GPS模块11,并与所述存储单元121连接,用于从所述GPS模块11接收所述参考时间并将其发送给所述存储单元121。所述计算单元123,连接于所述存储单元121,用于依据所述存储单元121中存储的软件授权使用时间阀值和所述参考时间计算所述软件的使用时间是否达到所述阀值,当计算出所述软件的使用时间达到所述阀值时,将其通知所述执行单元124。所述执行单元124,连接于所述计算单元123,并通过并口或者USB接口连接于所述计算机20,用于当达到所述阀值(即接收到所述存储单元121发来的所述软件的使用时间达到所述阀值的通知)时,授权限制时间时,通过所述并口或者USB接口限制计算机20中的所述软件的使用。
进一步地,所述主控芯片12中还包括安全管理单元125,通过并口或者USB接口连接于所述计算机20,用于提供计算机20中的所述软件的安全保护操作,例如提供所述软件的版权保护和身份认证等安全保护操作。
作为一个具体实施例,本发明的软件保护装置为内置有GPS模块的加密锁,通过所述加密锁对软件进行安全保护。
本发明的软件保护装置的一个实施例中,所述主控芯片12还用于将所述参考时间发送给所述计算机20以进行所述计算机20的时间同步。具体地,所述主控芯片12利用其中的时间获取单元122将从所述GPS模块11接收到的参考时间通过并口或者USB接口发送给所述计算机20。
本发明所提供的软件保护方法和装置利用GPS模块获取准确的全球一致的GPS时间。当多个软件保护装置都在使用时,由于每个都是通过GPS获取的一致的时间,因此每个软件保护装置的时间都是同步的,进而对于多个软件保护装置且需要同时控制软件使用时间的技术方案提供基于时间的可靠支持。
本发明的软件保护方法和装置,可有效弥补现有时钟锁依赖于电池且容易产生误差以及时间不同步的缺点,通过GPS模块获取准确的可信的实时时间,进而可精确控制软件保护时间,同时还可通过本发明的软件保护装置校准计算机的系统时钟,进而可简化操作、提高软件使用时的时间精确度和安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。