一种解决信息安全设备远程升级重放性的方法和系统转让专利

申请号 : CN201010150206.4

文献号 : CN101808100B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙吉平韩勇

申请人 : 北京深思洛克软件技术股份有限公司

摘要 :

一种解决信息安全设备远程升级重放性的方法,该方法包括:服务器将升级包和时间戳TSb组合后发送;用户端接收并拆分所述组合,判断TSb比用户端时间戳TSa大时,升级包更新,并用TSb更新TSa。本文还公开了一种解决信息安全设备远程升级重放性的系统。应用本发明实施例以后,在解决信息安全设备重放性的同时减少升级包生成端的工作量。

权利要求 :

1.一种解决信息安全设备远程升级重放性的方法,其特征在于,该方法包括:b

将升级包和时间戳TS 组合后发送;

b a b a

接收并拆分所述组合,判断TS 比时间戳TS 大时,升级包更新,并用TS 更新TS ;

b

所述升级包和时间戳TS 组合之前进一步包括,利用针对密钥Key’对升级包和时间戳b bTS 组合签名处理,得到签名信息Sig,将Sig、升级包和时间戳TS 组合后发送;

所述拆分后,所述判断之前进一步包括,由与Key’对应的密钥Key对Sig验签处理,对b验签处理通过的TS 执行所述的判断;

b a

设置标志flag,初次发送所述组合时,在所述验签处理通过后,所述执行判断TS 与TSb a之前,进一步包括判断有flag,则升级包更新,并用TS 作为TS,并清除flag。

2.根据权利要求1所述解决信息安全设备远程升级重放性的方法,其特征在于,所述b将Sig、升级包和时间戳TS 组合签名后,进一步包括对组合签名的加密处理;

b

所述拆分Sig、升级包和时间戳TS 组合签名数据之前,进一步包括对组合签名的解密处理。

3.根据权利要求1所述解决信息安全设备远程升级重放性的方法,其特征在于,所述b b升级包和时间戳TS 组合之后,所述发送之前,进一步包括对升级包和时间戳TS 进行加密b处理,得到升级包和时间戳TS 的加密组合;

b

然后利用针对用户端的密钥Key’对升级包和时间戳TS 的加密组合签名处理,得到签b名信息Sig,将升级包和时间戳TS 的加密组合与Sig组合后发送;

所述拆分后,所述判断之前进一步包括,由与Key’对应的密钥Key对Sig验签处理,验b签处理通过后,对升级包和时间戳TS 的加密组合进行解密处理。

4.根据权利要求1所述解决信息安全设备远程升级重放性的方法,其特征在于,所述签名处理之前,进一步对升级包进行加密处理,所述签名处理是利用密钥Key’对加密后升b b级包和时间戳TS 组合签名处理,得到签名信息Sig,将Sig、加密后升级包和时间戳TS 组合后发送;

b

所述验签后,得到加密后升级包和时间戳TS,对所述加密后升级包进行解密处理。

5.根据权利要求1至4中的任意一项权利要求所述解决信息安全设备远程升级重放性b的方法,其特征在于,所述TS 是生成升级包时的时间戳、升级包签名时的时间戳、组合升级包时的时间戳中的任意一个。

6.根据权利要求1至4中的任意一项权利要求所述解决信息安全设备远程升级重放性a的方法,其特征在于,在初次发送所述组合前所述时间戳TS 为操作系统的安装时间、软件b系统的安装时间、初始化时间、其他任何比TS 早的时间中的任意一个。

7.一种解决信息安全设备远程升级重放性的系统,其特征在于,该系统包括服务器和用户端,所述服务器端包括时间单元和组合单元;

所述用户端包括控制单元和判断单元;

b b

时间单元,产生时间戳TS,将TS 发送组合单元;

b

组合单元,将升级包和时间戳TS 组合,并发送至用户端的控制单元;

b b

控制单元,拆分升级包和时间戳TS 的组合,将TS 输入判断单元;

b a b a

判断单元,判断TS 比用户端时间戳TS 大时,升级包更新,并用TS 更新TS ;

所述服务器进一步包括

密钥单元,生成针对用户端的密钥对Key和Key’,将Key发送用户端的控制单元,Key’发送组合单元;

b

所述组合单元进一步根据密钥Key’对升级包和时间戳TS 组合签名处理,得到签名信b息Sig,将Sig、升级包和时间戳TS 组合,并发送至用户端的控制单元;

b

所述控制单元,拆分Sig、升级包和时间戳TS 的组合,再由密钥Key对Sig验签处理,b将验签处理后的TS 输入判断单元;

所述组合单元进一步为初次升级的用户端设置标志flag;

所述判断单元在验签处理通过后,进一步判断用户端是否有flag,如果用户端保存有b aflag,升级包更新,用TS 作为TS,并清除flag。

8.根据权利要求7所述解决信息安全设备远程升级重放性的系统,其特征在于,所述服务器进一步包括加密单元,所述加密单元对所述组合后的Sig、升级包和时间戳bTS 加密,再发送至用户端的控制单元;

b

所述用户端进一步包括解密单元,对所述Sig、升级包和时间戳TS 组合先进行解密,再由所述的控制单元进行所述的拆分。

9.根据权利要求7所述解决信息安全设备远程升级重放性的系统,其特征在于,所述服务器进一步包括密钥单元,生成针对用户端的密钥对Key和Key’,将Key发送用户端的控制单元,Key’发送组合单元;

b

加密单元,对所述组合后的升级包和时间戳TS 加密;

b

所述组合单元进一步根据密钥Key’对加密后的升级包和时间戳TS 的组合进行签名b处理,得到签名信息Sig,将Sig、加密后的升级包和时间戳TS 组合,并发送至用户端控制单元;

b

所述控制单元,拆分Sig、加密后的升级包和时间戳TS 的组合,再由密钥Key对Sig验签处理;

b

所述用户端进一步包括解密单元,对所述加密后的升级包和时间戳TS 的组合进行解密。

10.根据权利要求7所述解决信息安全设备远程升级重放性的系统,其特征在于,所述服务器进一步包括,加密单元,对所述升级包加密,并将所述加密后升级包发送至组合单元;

所述用户端进一步包括解密单元,对从所述控制单元拆分得到的所述加密后升级包进行解密。

说明书 :

一种解决信息安全设备远程升级重放性的方法和系统

技术领域

[0001] 本发明涉及信息安全设备升级技术,特别是一种解决信息安全设备远程升级重放性的方法和系统。

背景技术

[0002] 一般来说,软件的升级可以通过Internet的方式进行,方便用户使用。但是硬件的升级通常使用邮寄的方式,受地理的限制,用户拿到新硬件就需要几天的时间,同时比较麻烦。并且,软件保护产品和其他信息安全设备作为软件产品的一部分,通过邮寄的方式更新用户的产品,严重影响了用户的正常使用。
[0003] 因此,很多信息安全设备都提供了远程升级的功能。信息安全设备的远程升级一般包括如下过程:
[0004] 1、升级包生成端将升级数据A,如数据、代码、授权信息、固件程序等内容进行加密和签名操作之后得到升级信息B(如升级数据没有保密和防伪造需求,也可不进行加密和签名等处理),将得到的升级信息B传输至用户升级端。
[0005] 2、在用户升级端调用信息安全设备的升级接口,将处理后的升级信息B还原为升级数据A,并实现对信息安全设备数据、代码、授权信息、固件程序等内容的升级。
[0006] 在以上过程中不需要专业人员到信息安全设备所在的现场进行任何升级操作,也不需要将信息安全设备寄回,而是由升级包生成端来更新,大大节省了物流、人力成本和管理成本。
[0007] 在步骤1前,用户升级端可能需要告知升级包生成端自身信息安全设备的特征码,以便生成的升级包对应唯一用户升级端的信息安全设备,即升级包仅用于其对应的用户升级端,而不能用在其他用户升级端。
[0008] 很多情况下,远程升级中的升级包并不存在重放性问题,即可多次重复升级。比如对路由器等设备,他们进行远程升级的内容基本上是路由器的新版本固件代码,这种升级包可以多次重复升级。
[0009] 但是对于一些升级数据只希望用户升级端升级一次,再次进行升级时则不能升级成功。比如对于提供授权管理功能的信息安全设备,这种设备中保存了软件可用次数授权。每次客户使用与该信息安全设备绑定的软件时,该软件需要检查信息安全设备中的软件可用次数是否仍然有效,如果有效,则将软件可用次数授权减1,然后才能开始运行。当软件可用次数授权用完之后,软件无法使用,这时软件用户可以向软件开发商再购买软件可用次数授权。类似的只希望升级一次的升级包还有软件剩余天数授权。我们称这种升级包为一次有效的升级包。对于一次有效的升级包就不能重复升级,就存在重放性问题。
[0010] 目前解决信息安全设备重放性的方法如下:
[0011] A、升级包生成端和用户升级端约定一个相同的数值N,数值N同时存放在升级包生成端和用户升级端。
[0012] B、升级包生成端每次生成升级包时,将数值N加1,并放在远程升级包中,加上签名操作,发给用户升级。
[0013] C、用户升级端拿到远程升级包后,验证签名,提取出数值内容,与原来保存的数值进行比较,如果远程升级包中的数值比较大,则将用户升级端保存的数值更新,并更新待升级内容。
[0014] 该方法有一个很大的弱点,即升级包生成端必须记住每一个用户升级端的当前数值,当用户升级端数量很多的时候,会造成升级包生成端的工作量急剧增加。

发明内容

[0015] 本发明实施例提出一种解决信息安全设备远程升级重放性的方法,在解决信息安全设备重放性的同时减少升级包生成端的工作量。
[0016] 本发明实施例还提出一种解决信息安全设备远程升级重放性的系统,在解决信息安全设备重放性的同时减少升级包生成端的工作量。
[0017] 本发明实施例的技术方案如下:
[0018] 一种解决信息安全设备远程升级重放性的方法,该方法包括:
[0019] 将升级包和时间戳TSb组合后发送;
[0020] 接收并拆分所述组合,判断TSb比时间戳TSa大时,升级包更新,并用TSb更新TSa;
[0021] 所述升级包和时间戳TSb组合之前进一步包括,利用针对密钥Key’对升级包和时b b间戳TS 组合签名处理,得到签名信息Sig,将Sig、升级包和时间戳TS 组合后发送;
[0022] 所述拆分后,所述判断之前进一步包括,由与Key’对应的密钥Key对Sig验签处b理,对验签处理通过的TS 执行所述的判断;
[0023] 设置标志flag,初次发送所述组合时,在所述验签处理通过后,所述执行判断TSba b a与TS 之前,进一步包括判断有flag,则升级包更新,并用TS 作为TS,并清除flag。
[0024] 所述将Sig、升级包和时间戳TSb组合签名后,进一步包括对组合签名的加密处理;
[0025] 所述拆分Sig、升级包和时间戳TSb组合签名数据之前,进一步包括对组合签名的解密处理。
[0026] 所述升级包和时间戳TSb组合之后,所述发送之前,进一步包括对升级包和时间戳b bTS 进行加密处理,得到升级包和时间戳TS 的加密组合;
[0027] 然后利用针对用户端的密钥Key’对升级包和时间戳TSb的加密组合签名处理,得b到签名信息Sig,将升级包和时间戳TS 的加密组合与Sig组合后发送;
[0028] 所述拆分后,所述判断之前进一步包括,由与Key’对应的密钥Key对Sig验签处b理,验签处理通过后,对升级包和时间戳TS 的加密组合进行解密处理。
[0029] 所述签名处理之前,进一步对升级包进行加密处理,所述签名处理是利用密钥bKey’对加密后升级包和时间戳TS 组合签名处理,得到签名信息Sig,将Sig、加密后升级包b
和时间戳TS 组合后发送;
[0030] 所述验签后,得到加密后升级包和时间戳TSb,对所述加密后升级包进行解密处理。
[0031] 所述TSb是生成升级包时的时间戳、升级包签名时的时间戳、组合升级包时的时间戳中的任意一个。
[0032] 在初次发送所述组合前所述时间戳TSa为操作系统的安装时间、软件系统的安装b时间、初始化时间、其他任何比TS 早的时间中的任意一个。
[0033] 一种解决信息安全设备远程升级重放性的系统,该系统包括服务器和用户端,[0034] 所述服务器端包括时间单元和组合单元;
[0035] 所述用户端包括控制单元和判断单元;
[0036] 时间单元,产生时间戳TSb,将TSb发送组合单元;
[0037] 组合单元,将升级包和时间戳TSb组合,并发送至用户端的控制单元;
[0038] 控制单元,拆分升级包和时间戳TSb的组合,将TSb输入判断单元;
[0039] 判断单元,判断TSb比用户端时间戳TSa大时,升级包更新,并用TSb更新TSa;
[0040] 所述服务器进一步包括
[0041] 密钥单元,生成针对用户端的密钥对Key和Key’,将Key发送用户端的控制单元,Key’发送组合单元;
[0042] 所述组合单元进一步根据密钥Key’对升级包和时间戳TSb组合签名处理,得到签b名信息Sig,将Sig、升级包和时间戳TS 组合,并发送至用户端的控制单元;
[0043] 所述控制单元,拆分Sig、升级包和时间戳TSb的组合,再由密钥Key对Sig验签处b理,将验签处理后的TS 输入判断单元;
[0044] 所述组合单元进一步为初次升级的用户端设置标志flag;
[0045] 所述判断单元在验签处理通过后,进一步判断用户端是否有flag,如果用户端保b a存有flag,升级包更新,用TS 作为TS,并清除flag。
[0046] 所述服务器进一步包括加密单元,所述加密单元对所述组合后的Sig、升级包和时b间戳TS 加密,再发送至用户端的控制单元;
[0047] 所述用户端进一步包括解密单元,对所述Sig、升级包和时间戳TSb组合先进行解密,再由所述的控制单元进行所述的拆分。
[0048] 所述服务器进一步包括
[0049] 密钥单元,生成针对用户端的密钥对Key和Key’,将Key发送用户端的控制单元,Key’发送组合单元;
[0050] 加密单元,对所述组合后的升级包和时间戳TSb加密;
[0051] 所述组合单元进一步根据密钥Key’对加密后的升级包和时间戳TSb的组合进行b签名处理,得到签名信息Sig,将Sig、加密后的升级包和时间戳TS 组合,并发送至用户端控制单元;
[0052] 所述控制单元,拆分Sig、加密后的升级包和时间戳TSb的组合,再由密钥Key对Sig验签处理;
[0053] 所述用户端进一步包括解密单元,对所述加密后的升级包和时间戳TSb的组合进行解密。
[0054] 所述服务器进一步包括,
[0055] 加密单元,对所述升级包加密,并将所述加密后升级包发送至组合单元;
[0056] 所述用户端进一步包括解密单元,对从所述控制单元拆分得到的所述加密后升级包进行解密。
[0057] 从上述技术方案中可以看出,在本发明实施例中,服务器将升级包和生成时间戳b b bTS 组合后发送,用户端接收并拆分升级包和时间戳TS 组合数据,判断TS 比用户端时间戳a b a
TS 大时,升级包更新,并用TS 更新TS。由对比时间戳,可以确定对相同的升级包,用户端只更新一次,避免了信息安全设备重放性问题;对于升级包生成日期比用户端时间戳早的升级包,用户端并不进行更新。根据用户保存的时间戳就可以在解决信息安全设备重放性的同时减少升级包生成端的工作量。

附图说明

[0058] 图1为本发明实施例解决信息安全设备远程升级重放性的方法流程示意图;
[0059] 图2为本发明实施例解决安全设备远程升级重放性的系统结构示意图;
[0060] 图3为本发明实施例解决安全设备远程升级重放性的流程图示意图。

具体实施方式

[0061] 为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0062] 针对现有技术存在的问题,本发明实施例采用对升级包增加时间戳组合,用户端通过比较时间戳就可以确定是否需要升级,避免了现有技术中升级包生成端必须记住每个用户升级端的当前可用次数授权数值,另外利用用户端所保存的Key对应的密钥Key’来确定用户端,密钥对的使用保证了用户端的唯一性,从而在解决信息安全设备重放性的同时减少升级包生成端的工作量。
[0063] 本发明实施例解决信息安全设备远程升级重放性的方法流程如图1所示,包括如下步骤:
[0064] 步骤101、在服务器处,利用非对称密码学算法或对称密码学算法,计算出针对不a同用户的密钥Key,以及与密钥Key对应的Key’;用户端保存Key和用户端时间戳TS,时间a
戳TS 设置为用户端操作系统的安装时间、用户端软件系统的安装时间、服务器的初始化时间或服务器的生产时间或其他任何比升级数据D生成时间早的时间。
[0065] 用户端在初次升级前,还可以设置一个标志flag,该标志表示该用户端未升级过。
[0066] 步骤102、服务器将升级数据D和时间戳TSb组合在一起,生成D||TSb。时间戳TSb为生成升级包时的时间戳、升级包签名时的时间戳、组合升级包时的时间戳中的任意一个。b
数据组合的方式有很多种,也可以将升级数据D组合在时间戳TS 的后面,数据组合在现有技术已经非常成熟,本文不再赘述。
[0067] 然后,再利用Key’对D||TSb执行签名处理,得到签名信息Sig。签名处理和步骤103中的验签处理的方式可以是下列算法中的任意一种:信息认证码(MAC)算法、杂凑信息验证码(HMAC)算法、非对称加密(RSA)算法、椭圆曲线加密(ECC)算法。
[0068] 服务器将D||TSb与Sig组合,生成D||TSb||Sig信息,发送该组合信息给用户端。b
此时,根据实际情况的需要,在生成D||TS||Sig信息后,对该信息加密处理,以保证信息的b b
安全。D、TS 和Sig可以以任意形式组合,只要最后能够重新拆分为D、TS 和Sig即可。
[0069] 加密处理和步骤103中的解密处理可以利用以下算法中的任意一种:数据加密标准(DES)算法、三重数据加密标准(TDES)算法、高级加密标准(AES)算法、RSA算法、ECC算法。
[0070] 步骤103、用户端收到D||TSb||Sig信息。如果该信息经过加密处理,则需要进行b b b相应的解密处理,才能得到D||TS||Sig。D||TS||Sig拆分得到D,TS,Sig三部分信息。
b
如果D||TS||Sig没有加密,则直接拆分。
[0071] 步骤104、由Key对D,TSb进行验签处理,确保D,TSb没有被篡改。如果验签处理没有通过,则向服务器返回错误,结束整个远程升级过程;否则执行步骤105。
[0072] 步骤105、如果用户端保存标志flag,则表明该用户端从未进行过远程升级,此次a升级是该用户端初次远程升级,该用户端的TS 没有实际意义,执行步骤106;如果用户端没有标志flag,则执行步骤107。
[0073] 步骤106、用数据D更新用户端中的原始数据,并用TSb更新TSa,清除flag,表示a已经完成一次远程升级,此时用户升级端的TS 有意义。
[0074] 步骤107、用户端没有标志flag,则代表该用户端的TSa有意义。即将TSb与用户a b a b升级端保存的TS 进行比较,当TS 比TS 大时,执行步骤108;否则,即TS 小于或者等于a
TS 时,表示本次远程升级包的生成时间比用户端中记录的时间更早或者相同,此时向服务器返回错误,结束整个远程升级过程。
[0075] 步骤108、当TSb比TSa大时,表示本次远程升级包的生成时间比用户端中记录的b a时间戳更晚,此时,本次远程升级可以继续进行,用TS 更新TS,并用数据D更新用户升级端中的原始数据。
[0076] 在本发明中,服务器也可以将升级包与时间戳TSb组合后再加密,然后对利用Key’b对加密后的组合做签名处理得到Sig,将Sig与加密后的升级包和时间戳TS 组合再组合;
b
用户端利用Key对再组合的数据验签处理,验签处理通过后,对升级包和时间戳TS 的加密b b a
组合进行解密处理,得到升级包和时间戳TS,判断TS 比用户端时间戳TS 大时,升级包更b a
新,并用TS 更新TS。
[0077] 另外,服务器端也可以首先对升级包做加密处理,然后利用针对用户端的密钥bKey’对加密后升级包和时间戳TS 组合签名处理,得到签名信息Sig,将Sig、加密后升级b
包和时间戳TS 组合后发送;用户端接收并拆分组合后数据,由与Key’对应的密钥Key对b a
Sig验签处理,验签处理通过,判断TS 比用户端时间戳TS 大时,对加密后升级包进行解密b a
处理,升级包更新,并用TS 更新TS。
[0078] 图2为本发明实施例解决安全设备远程升级重放性的系统结构示意图。在图2中,安全设备远程升级的系统包括服务器和用户端。
[0079] 服务器中的密钥单元201针对每个用户端生成密钥对Key和Key’,Key与Key’唯一对应,将密钥Key发送至用户端的控制单元,密钥Key’发送至组合单元。
[0080] 时间单元202用于产生时间戳TSb,将TSb发送至组合单元。
[0081] 组合单元203将升级数据D以及时间戳TSb组合得到D||TSb;利用Key’对组合数b b据进行签名处理,得到签名信息Sig;组合单元将D||TS 与Sig组合,生成D||TS||Sig组合,然后发送至用户端;组合单元进一步用于在初次升级的用户端设置标志flag。
[0082] 加密单元204,用于加密D||TSb||Sig,然后将加密后的D||TSb||Sig发送至用户端。
[0083] 用户端的控制单元205用于拆分D||TSb||Sig组合,得到D、TSb和Sig三部分数b据,利用Key对Sig验签处理,确保D和TS 没有被篡改。
[0084] 判断单元206,用于判断用户端是否有flag,如果用户端保存有flag,则TSa没有b a实际意义,用数据D更新用户端的原始内容以及用TS 更新TS ;如果用户端没有flag,进一b a b a b a
步判断TS 比TS 大时,用数据D更新用户端的原始内容以及用TS 更新TS ;TS 比TS 小b a
或TS 等于TS 时,向服务器返回错误。
[0085] 解密单元207,用于收到加密的D||TSb||Sig组合后,解密D||TSb||Sig组合,并将b解密后的D||TS||Sig组合发送至控制单元。
[0086] 图3就解决安全设备远程升级重放性的系统的应用举例说明。
[0087] 步骤301、服务器的密钥单元生成一对RSA 1024位公私钥对Key和Key’,作为相应用户的签名处理和验签处理的密钥对。
[0088] 步骤302、在用户端中保存一个时间戳TSa,该时间戳来源为PC系统时钟或者internet时钟服务器,如2009年9月1日15时24分13秒。
[0089] 步骤303、将验证签名密钥Key保存在用户端中。用户端的控制单元在初次升级的用户端设置标志flag。
[0090] 步骤304、在用户端写入其他的软件授权信息,比如软件模块的可用次数授权数值C设为100次。
[0091] 步骤305、将签名密钥Key’保存在服务器中。
[0092] 步骤306、软件用户使用软件模块100次之后,该授权过期,C变为0。此时服务器准备发送一个500可用次数授权的远程升级包D至该用户端。
[0093] 步骤307、服务器由时间单元获得当前时间戳TSb,比如当前时间为2009年9月25日16点16分34秒。
[0094] 步骤308、组合单元将升级数据D和时间戳TSb组合起来,形成一个8字节数据bD||TS。
[0095] 步骤309、利用密钥Key’,密钥单元完成对数据D||TSb的签名,得到128字节签名结果Sig。
[0096] 步骤310、组合单元将D||TSb和Sig组合在一起,生成的D||TSb||Sig,共136字b节,发送至用户端。如有保密需要,先对D||TS||Sig加密,然后再发送至用户端。
[0097] 步骤311、用户端将数据解密然后拆分为D、TSb、Sig。
[0098] 步骤312、控制单元利用密钥Key,验证签名信息Sig,如果验证不通过,则向服务器返回错误。
[0099] 步骤313、用户端中保存有flag,则TSa没有实际意义,用数据D更新用户端的原b a b a始内容C和用TS 更新TS,并清除flag;发现用户端没有flag,判断单元将TS 和TS 进行比较。
[0100] 步骤314、如果TSb大于TSa,则说明升级包D生成时间有效,可以进行升级;否则向服务器报错。
[0101] 步骤315、控制单元将可用次数授权值500保存。
[0102] 步骤316、控制单元用TSb更新TSa,完成全部远程升级过程。
[0103] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。