发明内容
为了使加密锁具有限制其使用的起始时间和截止时间的功能,本发明实施例提供了一种保护软件的方法、装置和系统。所述技术方案如下:
一种保护软件的方法,其特征在于,所述方法包括:
安全设备与终端设备建立连接,所述安全设备中包括时间的限制信息;
所述终端设备中的受保护软件向所述安全设备发送预先约定的服务指令;
所述安全设备接收所述服务指令,判断所述安全设备内部的实时钟是否已经被激活;
当所述判断结果为未激活时,所述安全设备激活所述实时钟,将所述实时 钟中的时间状态值设置为所述实时钟的起始时间,并根据所述时间状态值和所述时间的限制信息设置截止时间,读取所述实时钟的当前时间,并判断所述当前时间是否有效;如果是,则所述安全设备执行所述服务指令并返回执行结果给所述终端设备;如果不是,则所述安全设备返回错误结果给所述终端设备;
其中,所述安全设备激活所述实时钟的方法具体包括:
所述安全设备将所述实时钟的时钟芯片与电池连接;所述电池开始为所述实时钟供电,所述实时钟开始计时;将所述实时钟的激活标识位修改为激活标志;将所述实时钟的时间状态值设置为所述实时钟的起始时间;
或者,
所述安全设备控制所述实时钟的时钟振荡器使其开始工作;并将所述实时钟的使能脚使能,所述实时钟开始计时;将所述实时钟的激活标识位修改为激活标志;将所述实时钟的时间状态值设置为所述实时钟的起始时间;
当所述判断结果为已激活时,所述安全设备读取所述实时钟的当前时间,并判断所述当前时间是否有效;如果是,则所述安全设备执行所述服务指令并返回执行结果给所述终端设备;如果不是,则所述安全设备返回错误结果给所述终端设备。
所述受保护软件向所述安全设备发送预先约定的服务指令,具体包括:
所述终端设备对所述服务指令进行加密,并将所述加密后的服务指令发送给所述安全设备;
相应的,所述方法还包括:
所述安全设备对接收到的所述加密后的服务指令进行解密。
所述方法还包括:
所述安全设备对所述执行结果或所述错误结果进行加密,并将加密后的执行结果或错误结果返回给所述终端设备;
相应的,所述方法还包括:
所述终端设备对接收到的所述加密后的执行结果或错误结果进行解密。
所述错误结果具体为所述安全设备已过期的提示信息或报错信息或随机结果。
所述判断所述安全设备内部的实时钟是否已经被激活,具体包括:
所述安全设备判断所述实时钟的激活标识位是否激活标识;
当所述激活标识位为激活标识时,所述实时钟已激活;
当所述激活标识位为非激活标识时,所述实时钟未激活。
所述判断所述当前时间是否有效,具体包括:
所述安全设备读取所述实时钟的当前时间、以及所述设置的截止时间;
判断所述实时钟的当前时间是否已超过所述截止时间;
如果是,则当前时间为无效;
如果否,则当前时间为有效。
所述判断所述当前时间是否有效,具体包括:
所述安全设备读取所述实时钟的当前时间、所述时间的限制信息以及设置为所述实时钟的起始时间的时间状态值;
计算所述当前时间与所述起始时间的差值;
判断所述差值是否小于所述时间限制信息中设定的时间长度;
如果是,则当前时间为有效;
如果否,则当前时间为无效。
所述安全设备激活所述实时钟,具体包括:
所述安全设备激活实时钟使其开启时间保护功能;
并将所述实时钟的激活标识位修改为激活标志。
所述判断所述当前时间是否有效,具体包括:
所述安全设备读取所述实时钟的当前时间、所述时间的限制信息中设定的截止使用日期;
判断所述实时钟的当前时间是否超过所述时间的限制信息中设定的截止使用日期;
如果是,则当前时间为无效;
如果否,则当前时间为有效。
所述判断所述当前时间是否有效,具体包括:
所述安全设备读取所述实时钟的当前时间、所述时间的限制信息中设定的指定的使用时间区间;
判断所述实时钟的当前时间是否在所述时间的限制信息中设定的指定的使用时间区间内;
如果是,则当前时间为有效;
如果否,则当前时间为无效。
一种保护软件的装置,其特征在于,所述装置包括:
连接模块,用于与终端设备建立连接;
接收模块,用于接收所述终端设备中的受保护软件发送的预先约定的服务指令;
激活判断模块,用于判断所述安全设备内部的实时钟是否已经被激活;
激活模块,用于当所述激活判断模块的判断结果为未激活时,激活所述实时钟;
读取模块,用于读取所述实时钟的当前时间;
有效判断模块,用于判断所述当前时间是否有效;
发送模块,用于当所述有效判断模块的判断结果为是时,发送所述服务指令的执行结果给所述终端设备;当所述有效判断模块的判断结果为否时,发送错误结果给所述终端设备;
其中,所述激活模块具体包括:
连接单元,用于将所述实时钟的时钟芯片与电池连接;
计时单元,用于所述电池开始为所述实时钟供电,所述实时钟开始计时;
修改单元,用于将所述实时钟的激活标识位修改为激活标志;
设置单元,用于将所述实时钟的时间状态值设置为所述实时钟的起始时间;
或者,
所述激活模块具体包括:
控制单元,用于控制所述实时钟的时钟振荡器使其开始工作;
计时单元,用于将所述实时钟的使能脚使能,所述实时钟开始计时;
修改单元,用于将所述实时钟的激活标识位修改为激活标志;
设置单元,用于将所述实时钟的时间状态值设置为所述实时钟的起始时间。
所述装置还包括:
解密模块,用于当所述接收模块接收到的服务指令为加密的服务指令时,使用预先约定的解密算法对所述加密的服务指令进行解密。
所述装置还包括:
加密模块,用于对所述执行结果或所述错误结果进行加密;
相应的,所述发送模块具体用于:
将所述加密后的执行结果或错误结果返回给所述终端设备。
所述错误结果具体为所述安全设备已过期的提示信息或报错信息或随机结果。
所述激活判断模块具体用于判断所述实时钟的激活标识位是否激活标识;
当所述激活标识位为激活标识时,所述实时钟已激活;
当所述激活标识位为非激活标识时,所述实时钟未激活。
所述有效判断模块具体包括:
读取单元,用于读取所述实时钟的当前时间、以及预设的时间的限制信息中的截止时间;
判断单元,用于判断所述实时钟的当前时间是否已超过所述截止时间;
如果是,则所述判断单元的结果为当前时间为无效;
如果否,则所述判断单元的结果为当前时间为有效。
所述有效判断模块具体包括:
读取单元,用于读取所述实时钟的当前时间、预置的时间的限制信息中的起始时间和截止时间;
判断单元,用于判断所述实时钟的当前时间是否处于所述时间的限制信息中的起始时间和截止时间之间;
如果是,则所述判断单元的结果为当前时间为有效;
如果否,则所述判断单元的结果为当前时间为无效。
所述激活模块具体包括:
开启单元,用于开启所述实时钟的时间保护功能;
修改单元,用于将所述实时钟的激活标识位修改为激活标志。
所述有效判断模块具体包括:
读取单元,用于读取所述实时钟的当前时间、所述时间的限制信息;
判断单元,用于判断所述实时钟的当前时间是否超过所述时间的限制信息中设定的截止时间;
如果是,则所述判断单元的结果为当前时间为无效;
如果否,则所述判断单元的结果为当前时间为有效。
所述有效判断模块具体包括:
读取单元,用于读取所述实时钟的当前时间、所述时间的限制信息;
判断单元,用于判断所述实时钟的当前时间是否在所述时间的限制信息中设定的指定的使用时间区间内;
如果是,则当前时间为有效;
如果否,则当前时间为无效。
本发明实施例提供的技术方案带来的有益效果是:
通过安全设备中携带时间的限制信息,并根据时间的限制信息限制安全设备的使用时间,使得安全设备更加方便地与时间、日期等功能进行绑定,限制了受保护软件使用安全设备的周期,为受保护软件提供了更安全的服务;同时还延长了安全设备的使用寿命。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本实施例提供了一种保护软件的方法,参见图1,该方法包括:
步骤101:安全设备与终端设备建立连接;
本实施例中的安全设备以加密锁为例进行说明,其中,加密锁包含一个由电池供电的实时钟,该加密锁在出厂时实时钟不工作,即实时钟不计时,只有在接收到终端设备发送的服务指令后实时钟才开始进行计时,并且,在该加密锁出厂之前,还可以设置一个或多个关于时间的限制信息,该时间的限制信息用于加密锁在出厂后的使用中对受保护的软件实施时间保护功能。这种对受保护软件实施的时间保护功能在加密锁出厂之前是处于未激活的状态,只有当加密锁与终端设备建立连接之后,加密锁接收到终端设备发送的服务指令时才会被激活。其中,服务指令为加密锁在出厂生产时与被保护软件之间预先约定好 的。
在本实施例中,时间的限制信息可以为限制受保护软件使用该安全设备的时间长度(如10小时)。
终端设备可以为计算机、有源读卡器、射频读卡器以及所有能够使用上述加密锁的设备。
步骤102:终端设备中的受保护软件向安全设备发送服务指令;
其中,受保护软件是指对部分或全部功能的使用进行修改或加密保护的软件,并且在受保护软件启动应用保护功能时,受保护软件可以自动或手动地向安全设备发送服务指令。
服务指令为安全设备与终端设备之间预先约定的指令,可以是预先约定的多条服务指令中的任意一条。例如,服务指令可以为计算机与加密锁的通讯指令,如APDU指令80 10 00 00 00,也可以是程序启动指令和/或功能算法指令等。
进一步的,终端设备中的受保护软件向还可以向安全设备发送加密后的服务指令;其中,终端设备对服务指令进行加密可以但不限于采用以下加密算法,如AES(Advanced Encryption Standard)高级加密算法、DES(Data Encryption Standard)数据加密算法等。
步骤103:安全设备接收到终端设备发送的服务指令,判断安全设备内的实时钟是否被激活,即已经开始计时;
如果否,则执行步骤104;
如果是,则执行步骤105;
其中,如果安全设备接收到的是加密后的服务指令,则安全设备按照预先约定的解密算法对加密后的服务指令进行解密。解密的算法可以但不限于:AES算法或DES算法等。
在本步骤103中,判断实时钟是否已经开始计时的方法具体可以包括:
判断实时钟的激活标识位是否为激活标识;
当激活标识位为非激活标识时,表示时钟芯片与电池断开,实时钟没有开始计时;
当激活标识位为激活标识时,表示时钟芯片与电池已连接,实时钟已经开始计时。
步骤104:安全设备激活内部实时钟使其开始计时,并将实时钟中的时间状 态值设置为实时钟的起始时间;
这里需要说明的是,本发明实施例中安全设备的实时钟省略了与终端设备的时钟进行同步,安全设备可以按照实时钟本身进行计时。
在实时钟被激活开始计数之前,实时钟处于不工作的状态,实时钟内部会存储着一个时间值,本实施例将其称为时间状态值。当实时钟被激活开始计数时,安全设备将该时间状态值设置为实时钟的起始时间。
本实施例还可以包括:安全设备读取内部预先设置的限制受保护软件使用该安全设备的时间长度(如10小时),并判断实时钟保存的时间状态值是否为0,若为0,则安全设备将读取得到的时间长度(如10小时)设置为实时钟的截止时间,若不为0,则安全设备将实时钟保存的时间状态值加上读取得到的限制受保护软件使用该安全设备的时间长度(如10小时)后得到的时间设置为受保护软件使用该实时钟的截止时间;
其中,当判断得出实时钟保存的时间状态值不为0时,还可以进行如下操作:安全设备将实时钟保存的时间状态值清0,并将读取得到的时间长度设置为实时钟的截止时间。
具体的,本实施例中,安全设备激活其内部实时钟的操作具体可以概括为以下几种情况:
(1)当实时钟的时钟芯片与电池处于断开状态时;
安全设备将实时钟的时钟芯片与电池连接;
电池开始给实时钟供电,即实时钟开始计时;
同时将实时钟的激活标识位改为激活标识。
(2)当实时钟的时钟芯片与电池处于连接状态时;
安全设备控制实时钟的时钟振荡器使其开始工作;
实时钟的使能脚被使能,实时钟开始计时;
同时将实时钟的激活标识位改为激活标识。
步骤105:安全设备读取实时钟的当前时间,判断当前时间是否为有效时间;
如果是,则执行服务指令并将执行结果返回给终端设备;
如果不,则将错误结果返回给终端设备。
其中,安全设备返回给终端设备的执行结果和/或错误结果可以是加密的,安全设备所采用的加密算法可以但不限于包括AES算法或DES算法;
并且,错误结果具体可以但不限于为安全设备已过期的提示信息或报错信息或随机结果。
判断当前时间是否为有效时间的方法具体可以为:
安全设备计算当前时间和起始时间的差值,并将得到的差值与其自身预置的限制受保护软件使用该安全设备的时间长度相比较,判断得到的差值是否已经超过其自身预置的限制受保护软件使用该安全设备的时间长度,如果超过,则当前时间为无效;如果未超过,则当前时间为有效;
例如,安全设备的实时钟当前时间为6点25分,起始时间是0点;而其自身预置的限制受保护软件使用该安全设备的时间长度为10小时,当前时间与起始时间的差值未超过时间长度10小时,因此当前时间有效;
或者,
安全设备读取此时实时钟的当前时间和截止时间,并判断读取得到的当前时间是否在截止时间之前,若不是,则当前时间为无效;若是,则当前时间为有效;
例如,若安全设备的实时钟当前时间为10点45分,而截止时间为10点,当前时间在截止时间之前,因此当前时间有效。
需要说明的是,当安全设备中的实时钟被激活后,只有当受保护软件主动停止应用或已到达应用时间,实时钟才会停止工作,如果强制其停止工作,该安全设备将被损坏,并向终端设备返回安全设备已坏的信息。
本发明实施例通过安全设备中保存时间的限制信息,并根据时间的限制信息限制安全设备的使用时间,使得安全设备更加方便地与时间、日期等功能进行绑定,限制了受保护软件使用安全设备的周期,为受保护软件提供了更安全的服务;同时还延长了安全设备的使用寿命。
实施例2
本实施例提供了一种保护软件的方法,参见图2,该方法包括:
步骤201:安全设备与终端设备建立连接;
本实施例中的安全设备以加密锁为例进行说明,其中,加密锁包含一个由电池供电的实时钟,该实时钟在加密锁出场即已进行校对,使得实时钟的时间 和日期准确、可信;并且,在该加密锁出厂之前,还可以设置一个或多个关于时间的限制信息,该时间的限制信息用于加密锁在出厂后的使用中对受保护的软件实施时间保护功能。这种对受保护的软件实施时间保护功能在加密锁出厂之前是处于未激活的状态,只有当加密锁与终端设备建立连接之后,加密锁接收到终端设备发送的服务指令时才会被激活。其中,服务指令为加密锁在出厂之前厂家与终端设备的厂家之间预先约定好的。
在本实施例中,时间的限制信息可以为限制受保护软件只能在截止日期之前(如2010年12月31日之前)使用该加密锁;或者,时间的限制信息可以为限制受保护软件只能在指定的时间区间内(如一天当中的8:00a.m——5:00p.m)使用该加密锁。
终端设备可以为计算机、有源读卡器、射频读卡器以及所有能够使用上述加密锁的设备。
步骤202:终端设备中的受保护软件向安全设备发送服务指令;
其中,受保护软件是指对部分或全部功能的使用进行修改或加密保护的软件,并且在受保护软件启动应用保护功能时,受保护软件可以自动或手动地向安全设备发送服务指令。
服务指令为安全设备与终端设备之间预先约定的指令,可以是预先约定的多条服务指令中的任意一条。例如,服务指令可以为计算机与加密锁的通讯指令,如APDU指令80 10 00 00 00,也可以是程序启动指令和/或功能算法指令等。
进一步的,终端设备中的受保护软件向还可以向安全设备发送加密后的服务指令;其中,终端设备对服务指令进行加密可以但不限于采用以下加密算法,如AES算法、DES算法等。
步骤203:安全设备接收到终端设备发送的服务指令,判断安全设备内的实时钟是否被激活,即实时钟是否已经开启时间保护功能;
如果否,则执行步骤204;
如果是,则执行步骤205;
其中,如果安全设备接收到的是加密后的服务指令,则安全设备按照预先约定的解密算法对加密后的服务指令进行解密。解密的算法可以但不限于:AES算法或DES算法等。
需要说明的是,安全设备还可以通过接收到的服务指令,将自身的实时钟 的当前时间与终端设备的时钟进行校准操作。
在本步骤203中,判断实时钟是否已经开启时间保护功能的方法具体可以包括:
判断实时钟的激活标识位是否为激活标识;
当激活标识位为非激活标识时,表示实时钟没有开启时间保护功能;
当激活标识位为激活标识时,表示实时钟已经开启时间保护功能。
步骤204:安全设备激活内部实时钟使其开启时间保护功能,并将实时钟的激活标识位改为激活标识;
需要说明的是,当安全设备中的实时钟被激活后,只有当受保护软件主动停止应用或已到达应用时间,实时钟才会停止工作,如果强制其停止工作,该安全设备将被损坏,并向终端设备返回安全设备已坏的信息。
步骤205:安全设备读取实时钟的当前时间,判断当前时间是否为有效时间;
如果是,则执行服务指令并将执行结果返回给终端设备;
如果不,则将错误结果返回给终端设备。
其中,安全设备返回给终端设备的执行结果和/或错误结果可以是加密的,安全设备所采用的加密算法可以但不限于包括AES算法或DES算法;
并且,错误结果具体可以但不限于为安全设备已过期的提示信息或报错信息或随机结果。
判断当前时间是否为有效时间的方法可以包括以下几种:
(1)当时间的限制信息为限制受保护软件只能在截止日期之前使用该安全设备时;
安全设备读取实时钟的当前时间和时间的限制信息中的截止时间;
判断实时钟的当前时间是否已超过截止时间;
如果是,则当前时间为无效时间;
如果否,则当前时间为有效时间。
例如,实时钟的当前时间为2009年6月23日,时间的限制信息中的截止时间为2010年12月31日,则实时钟的当前时间未超过截止时间,当前时间有效。
(2)当时间的限制信息为限制受保护软件只能在指定的时间区间内使用该 安全设备时;
安全设备读取实时钟的当前时间、时间的限制信息中的起始时间和截止时间;
判断实时钟的当前时间是否处于时间的限制信息中的起始时间和截止时间之间;
如果是,则当前时间为有效时间;
如果否,则当前时间为无效时间。
例如,实时钟的当前时间为6:00a.m,时间的限制信息中的起始时间和截止时间分别为:8:00a.m和5:00p.m,则实时钟的当前时间未处于时间的限制信息中的起始时间和截止时间,当前时间无效。
本发明实施例通过安全设备中保存时间的限制信息,并根据时间的限制信息限制安全设备的使用时间,使得安全设备更加方便地与时间、日期等功能进行绑定,限制了受保护软件使用安全设备的周期,为受保护软件提供了更安全的服务;同时还延长了安全设备的使用寿命。
实施例3
本实施例提供了一种保护软件的装置,参见图3,该装置包括:
连接模块301,用于与终端设备建立连接;
接收模块302,用于接收终端设备中的受保护软件发送的预先约定的服务指令;
激活判断模块303,用于判断安全设备内部的实时钟是否已经被激活;
激活模块304,用于当激活判断模块的判断结果为未激活时,激活实时钟;
读取模块305,用于读取实时钟的当前时间;
有效判断模块306,用于判断当前时间是否有效;
发送模块307,用于当有效判断模块的判断结果为是时,发送服务指令的执行结果给终端设备;当有效判断模块的判断结果为否时,发送错误结果给终端设备,其中错误结果具体可以但不限于为安全设备已过期的提示信息或报错信息或随机结果;
进一步的,该装置还可以包括:
解密模块,用于当接收模块302接收到的服务指令为加密的服务指令时,使用预先约定的解密算法对加密的服务指令进行解密。
进一步的,该装置还可以包括:
加密模块,用于对执行结果或错误结果进行加密;
相应的,发送模块307具体用于:
将加密后的执行结果或错误结果返回给终端设备。
激活判断模块303具体用于判断实时钟的激活标识位是否激活标志;
当激活标志位为激活标志时,实时钟已激活;
当激活标志位为非激活标志时,实时钟未激活。
一种实施方式下,激活模块304具体包括:
连接单元,用于将实时钟的时钟芯片与电池连接;
计时单元,用于电池开始为实时钟供电,实时钟开始计时;
修改单元,用于将实时钟的激活标识位修改为激活标志;
设置单元,用于将实时钟的当前时间设置为实时钟的起始时间。
另一种实施方式下,激活模块304具体包括:
控制单元,用于控制实时钟的时钟振荡器使其开始工作;
计时单元,用于将实时钟的使能脚使能,实时钟开始计时;
修改单元,用于将实时钟的激活标识位修改为激活标志;
设置单元,用于将实时钟的当前时间设置为实时钟的起始时间。
再一种实施方式下,激活模块304具体包括:
开启单元,用于开启实时钟的时间保护功能;
修改单元,用于将实时钟的激活标识位修改为激活标志。
一种实施方式下,有效判断模块306具体包括:
读取单元,用于读取实时钟的当前时间、以及预设的的截止时间;
判断单元,用于判断实时钟的当前时间是否已超过截止时间;
如果是,则判断单元的结果为当前时间为无效;
如果否,则判断单元的结果为当前时间为有效。
另一种实施方式下,有效判断模块306具体包括:
读取单元,用于读取实时钟的当前时间、时间的限制信息以及设置为所述实时钟的起始时间的时间状态值;
计算单元,用于计算当前时间与起始时间之间的差值;
判断单元,用于判断差值是否小于时间的限制信息中设定的时间长度;
如果是,则判断单元的结果为当前时间为有效;
如果否,则判断单元的结果为当前时间为无效。
再一种实施方式下,有效判断模块306具体包括:
读取单元,用于读取实时钟的当前时间、时间的限制信息;
判断单元,用于判断实时钟的当前时间是否已超过时间的限制信息中设定的截止时间;
如果是,则判断单元的结果为当前时间为无效;
如果否,则判断单元的结果为当前时间为有效。
又一种实施方式下,有效判断模块306具体包括:
读取单元,用于读取实时钟的当前时间、时间的限制信息;
判断单元,用于判断所述实时钟的当前时间是否在所述时间的限制信息中设定的指定的使用时间区间内;
如果是,则当前时间为有效;
如果否,则当前时间为无效。
本发明实施例通过安全设备中保存时间的限制信息,并根据时间的限制信息限制安全设备的使用时间,使得安全设备更加方便地与时间、日期等功能进行绑定,限制了受保护软件使用安全设备的周期,为受保护软件提供了更安全的服务;同时还延长了安全设备的使用寿命。
实施例3
本实施例提供了一种保护软件的系统,参见图4,该系统包括:安全设备401和终端设备402;
其中,安全设备401具体可以参见实施例2中保护软件的装置,在本实施例中不予以重复赘述。
参见图,终端设备402包括:
接口模块,用于与终端设备的连接模块建立连接;
发送模块,用于向安全设备发送预先约定的服务指令;
接收模块,用于接收安全设备发送的执行结果或错误结果,其中错误结果 具体可以但不限于为安全设备已过期的提示信息或报错信息或随机结果。
进一步的,终端设备402还包括:
加密模块,用于对服务指令进行加密;
相应的,终端设备402的发送模块还用于:
向安全设备发送加密后的服务指令。
进一步的,终端设备402还包括:
解密模块,用于当接收模块接收到的是加密后的执行结果或错误结果时,对加密后的执行结果或错误结果进行解密。
本发明实施例通过安全设备中保存时间的限制信息,并根据时间的限制信息限制安全设备的使用时间,使得安全设备更加方便地与时间、日期等功能进行绑定,限制了受保护软件使用安全设备的周期,为受保护软件提供了更安全的服务;同时还延长了安全设备的使用寿命。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。