一种分块式的远程更新方法技术

技术编号:2820876 阅读:166 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种软件保护装置中的功能模块的升级方法,该方法包括:软件开发商端在生成升级包时,将待升级的功能模块的数据分成多个数据块,并为每个数据块设置控制信息、计算校验码,并对需要加密的数据加密,然后组合这些数据块,形成功能模块升级包。软件保护装置在升级功能模块时,也是分块地对功能模块进行升级,并通过验证每个数据块的校验码以确定每个数据块的合法性,通过检查数据块中的控制信息来确定每个数据块的有效性。

【技术实现步骤摘要】

本专利技术涉及软件保护技术,特别是一种分块的远程更新软件保护装置中 的功能模块的方法。
技术介绍
功能模块软件开发商中从软件产品中提取出来的可以或者已经放在软 件保护设备中的供外部调用代码,数据或者代码和数据。功能模块升级包用于升级软件保护设备中的功能模块的数据包。随着经济技术的飞速发展,软件作为辅助工具已经深入到了各行各业当 中。软件产品是软件设计者和软件编程人员智慧的结晶,软件开发商的生存 和发展是软件产品充足供应的基础,因而,保护软件产品的版权,防止软件 产品被盗版,具有很重要的现实意义。在软件开发商已有的保护软件产品的众多策略中,多数采用了这样一种 方式提炼出软件产品中的核心算法或密钥作为关键程序代码,将所述关键 程序代码及该程序代码所需要的数据放在软件保护设备中。作为软件保护设 备的功能模块,供外部软件调用。釆用这种方式以后当用户使用软件产品时, 必须要有软件保护设备同时运行,否则将无法使用该软件产品。这种策略的优势是,软件产品的关键代码是放在软件保护设备中的,破 解者很难得到软件产品的关键程序代码,也很难克隆软件保护设备,也就很 难破解该软件产品。当然所述的软件保护设备的处理芯片是一个具有一定安 全认证等级的智能卡芯片才可以防止被硬克隆。正因为有这种优势,国内外 越来越多的软件开发商都采用了这种策略保护自己的软件产品。但是,软件开发商所生产的软件产品需要不断更新升级,因而对于使用 该软件产品的用户来说,也需要同步的更新与软件产品配套的软件保护设备 的功能模块。为了降低成本,软件开发商可以通过远程升级技术升级软件保护装置内 的功能模块,但由于通讯数据量的限制,待升级内容无法一次性的传入到软 件保护装置中,需要分批传入到软件保护装置中,并保存在软件保护装置中, 直到所有的数据都传入后,才能确定待升级内容是否完整和合法,然后才能 对功能模块进行升级。这样就需要额外的存储区来存放传入待升级的数据。
技术实现思路
有鉴于此,本专利技术提供了一种分块安装或者更新软件保护装置中的功能 模块的方法。根据本专利技术的一个方面,提供一种分块式的远程更新的方法,其特征在于,该方法包括步骤(1) 将待升级的功能模块分块;(2) 对分块的升级数据块进行处理后生成功能模块升级包;(3) 软件保护装置使用所述升级包升级功能模块。 根据本专利技术的一个方面,其特征还在于,在步骤(2)中,为每个升级数据块设置控制信息。根据本专利技术的一个方面,其特征还在于,在步骤(2)中,为每个升级数据块加密并计算校验码。根据本专利技术的一个方面,其特征还在于,将升级数据块组合起来形成功 能模块升级包。根据本专利技术的一个方面,其特征还在于,在步骤(3)中,软件保护装 置先将功能模块设置成禁用状态。根据本专利技术的一个方面,其特征还在于,软件保护装置接收升级数据块。 根据本专利技术的一个方面,其特征还在于,软件保护装置验证接收到的升级数据块的校验码。根据本专利技术的一个方面,其特征还在于,如果校验码验证通过,则为合法升级包;否则为非法的升级包,终止升级过程。.根据本专利技术的一个方面,其特征还在于,通过校验码验证后,检查升级 数据块中的控制信息,判断升级包有效或无效,如果是无效升级包则终止升 级过程。根据本专利技术的一个方面,其特征还在于,如果是有效升级包则升级功能 模块中的对应的数据。根据本专利技术的一个方面,其特征还在于,检查当前的升级数据块是否是 最后一个。根据本专利技术的一个方面,其特征还在于,如果是最后一个数据块,则将 功能模块设置为可用状态。附图说明图1,本专利技术的工作流程示意图。图2,本专利技术的一个实施例的升级数据块结构示意图。图3,本专利技术的一个实施例的工作流程示意图具体实施例方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下参照附图并举 实施例,对本专利技术进行进一步详细说明。图1为本专利技术的工作流程图,如图1所示,本专利技术包含以下步骤开发商端生成升级包步骤IOI,将待升级功能模块分块。本步骤中,软件开发商端根据实际需要将待升级的功能模块的数据分块。例如,可以根据软件保护装置中的功能模块每次通讯能被升级的最大的 数据量来对数据分块。步骤102,设置每个数据块的控制信息。本步骤中,软件开发商端为每个数据块设置控制信息。所述的控制信息,包含有对该功能模块升级包的适用范围的描述、数据 块标志和偏移地址。功能模块升级包的适用范围的描述可以是针对所有、一组或者单个软件 保护设备的。如果是针对一组或者单个软件保护装置设备,控制信息中还需 要包含待升级的软件保护设备的特征信息。所述的软件保护设备特征信息可以是单个软件保护设备的唯一标识,也 可以是一组软件保护设备的唯一标识。单个软件保护设备的唯一标识与软件 保护设备是——对应的,可以是软件保护设备的硬件全球唯一序列号。 一组 软件保护设备的唯一标识是指一组软件保护设备共有的区别于不同组的软 件保护设备的信息。软件开发商获取待升级的软件保护设备特征信息的方法可以是软件开 发商在出售软件产品时记录同时发售的软件保护设备的软件保护设备特征 信息,也可以是当用户有升级软件保护设备的需求时向软件开发商提供的该 用户所持有的软件保护设备的软件保护设备特征信息。数据块标志用来指明该数据块是否是最后一个数据块。步骤103,加密数据块并计算校验码。本步骤中,软件开发商端对每个数据块进行加密,并计算控制信息和数 据块的校验码。再把控制信息和数据块和校验码组合成生升级数据块 加密使用的算法可以是对称算法也可以是非对称算法。 计算校验码使用的算法可以使HASH算法,HMAC算法,MAC算法或 者非对称的数字签名算法数据块中的控制信息和校验码部分可以加密也可以不加密。计算校验码可以是对加密前的数据计算校验码,也可以是对加密后的数据计算校验码,但如果对加密后的数据计算校验码,使用的算法不能使HASH。例如可以先对^t据(可以包含或者不包含控制信息部分)力。密,然后计算控制信息和加密后的数据部分的校验码,此时校验码的计算算法必须使用需要密钥参与密钥的HMAC算法、MAC算法或者非对称得数字签名算法。 也可以先对控制信息和加密前的数据计算校验码,然后对数据(可以包含或 者不包含控制信息部分或者校验码部分)加密,此时计算校验码的算法可以 是不需要密钥参与的HASH算法,也可以使用需要密钥参与的HMAC算法、 MAC算法或者非对称的数字签名算法。步骤104,组合升级数据块成为功能模块升级包。本步骤中,软件开发商端组合升级数据块,成为功能模块升级包。软件保护装置端使用升级包升级功能模块步骤lll,设置功能模块为禁用状态。本步骤中,软件保护装置先将功能模块设置成禁用状态。步骤112,接收一个升级数据块。本步骤中,软件保护装置接收一个升级数据块。步骤113,验证校验码并解密数据块。本步骤中,软件保护装置验证接收到的升级数据块的校验码,并对加密的数据进行解密。如果校验码验证通过,则为合法升级包,执行步骤114,否则,为非法的升级包,终止升级过程。解密数据和验证校验码的过程是和步骤103的顺序相对应的。 如果步骤103中校验码是针对加密后的数据计算的,那么验证校验的过程是针对解密前的数据的。如果步骤103中校验码是针对加密前的数据计算的。那么验证校验码的过程也是针对解密后的数据。解密本文档来自技高网
...

【技术保护点】
一种分块式的远程更新的方法,其特征在于,该方法包括步骤: (1)将待升级的功能模块分块; (2)对分块的升级数据块进行处理后生成功能模块升级包; (3)软件保护装置使用所述升级包升级功能模块。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙吉平韩勇
申请(专利权)人:北京深思洛克软件技术股份有限公司
类型:发明
国别省市:11[中国|北京]

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

1