一种更新文件的推送方法技术

技术编号:18208394 阅读:20 留言:0更新日期:2018-06-13 08:09
本发明专利技术涉及一种更新文件的推送方法,该方法包括:更新服务器生成初始加密密钥,并通过密钥交换方法,使得客户端获得该初始加密密钥;基于该初始加密密钥,更新服务器将待更新的文件分块加密后发送给所述客户端;所述客户端组装所述分块,获得更新文件。

【技术实现步骤摘要】
一种更新文件的推送方法
本专利技术属于计算机和文件更新领域,尤其涉及一种更新文件的推送方法。
技术介绍
近年来,随着互联网,尤其是移动互联网的普及,通过推送更新,成为了计算机文件的主要更新方式之一。与原有的由用户主动下载更新不同,现在由计算机软件厂商主动将文件更新推送到用户的计算机里,自动进行更新。一个典型的例子是浏览器,浏览器程序在打开后,会主动连接一个更新服务器,如果该浏览器程序有更新文件,该更新服务器向该浏览器程序推送该更新文件,该浏览器程序在接收到该更新文件后,将在某个合适的时间点自动运用该更新文件,而无需用户干预。但是,现有技术中的更新文件推送方法的安全性并不高,通常都是由厂商自行设计,很多都是文件本身在网络上传送,没有完整性检查。
技术实现思路
为了解决现有技术中的上述问题,本专利技术提出了一种更新文件的推送方法。本专利技术采用的技术方案如下:一种更新文件的推送方法,该方法包括以下步骤:步骤100:更新服务器生成初始加密密钥,并通过密钥交换方法,使得客户端获得该初始加密密钥;步骤200:基于该初始加密密钥,更新服务器将待更新的文件分块加密后发送给所述客户端;步骤300:所述客户端组装所述分块,获得更新文件。进一步地,所述初始加密密钥的长度为4096位。进一步地,每个文件分块的长度是密钥长度的整数倍。进一步地,在分块传输的过程中对每个分块进行完整性校验。进一步地,如果所述完整性校验不通过,则所述客户端请求更新服务器重传。本专利技术的有益效果包括:更新文件的安全性更高,通过完整性校验保证了更新文件的完整性。【附图说明】此处所说明的附图是用来提供对本专利技术的进一步理解,构成本申请的一部分,但并不构成对本专利技术的不当限定,在附图中:图1是本专利技术方法所应用的系统结构图。图2是本专利技术方法的基本流程图。【具体实施方式】下面将结合附图以及具体实施例来详细说明本专利技术,其中的示意性实施例以及说明仅用来解释本专利技术,但并不作为对本专利技术的限定。参见附图1,本专利技术涉及两点之间的更新文件传输,分别包括更新服务器和客户端,两者之间通过网络连接,目的是通过该网络将更新文件从更新服务器传输到客户端。本专利技术的更新文件传输方法的第一个考虑是安全性,因而文件在传输过程中应当是加密的,并且,为了具有普适性,本专利技术的更新服务器和客户端可以在无需事先协商的情况下,完成更新文件的加密传输;第二个考虑是传输的效率,但是加密传输一般会降低传输的效率,因而本专利技术采用了一个简单有效地加密方法,在保证足够加密强度的基础上,对传输效率的影响很小;第三个考虑是传输的可靠性和容错性,本专利技术通过将文件分块传输,使得即使少数文件块在传输过程中损坏,也可以进行文件块重传,不会对整个传输带来太大的影响;第四个考虑文件的完整性,本专利技术通过对文件块的哈希值校验来解决完整性问题。并且,本专利技术的更新文件传输方法有机地将上述四个考虑方面结合在一起,较为完善地解决了更新文件传输问题。参见附图2,基于上述设置,本专利技术的更新文件的推送方法的基本步骤如下:步骤100:更新服务器生成初始加密密钥,并通过密钥交换方法,使得客户端获得该初始加密密钥;步骤200:基于该初始加密密钥,更新服务器将待更新的文件分块加密后发送给所述客户端;步骤300:所述客户端组装所述分块,获得更新文件。基于上述基本步骤,下面对本专利技术的方法流程进行详细地说明:(1)更新服务器与客户端建立连接后,更新服务器生成一个随机数a,并且计算初始加密密钥K=gamodP,同时客户端也生成一个随机数b,并计算Y=gbmodP。其中,P是一个大素数,g是P的一个本原元,为了安全考虑,P的长度应该足够大,优选地,P的长度为4096位,则K的长度也为4096位(如果不足4096位,则在前端补零至4096位)(2)客户端将Y发送给更新服务器,更新服务器计算X=YamodP,并将X发送给客户端。(3)客户端计算由上述步骤容易推导出,步骤(3)客户端获得的K’就等于K,因此通过上述步骤,更新服务器和客户端共同拥有了初始加密密钥K,由于整个过程中K都没有在网络上传输,因此即使有黑客监听了整个过程,也只能获得X和Y两个值,由于离散对数计算的困难性,该黑客实质上无法在可接受的时间内,基于X和Y的值计算获得K,因而K获得了足够的保密性和安全性。(4)更新服务器将待传输的更新文件分块,每块的长度都是K的长度的m倍,m为整数,最后一块的长度如果不足,则通过在块最后增加随机数来补足长度。设该更新文件被分成N块,记为F1,F2,……,FN。例如,K的长度为4096位,m=10,则将该更新文件以40960位的长度分块,如果最后一块不足40960位,则在最后一块的后面增加随机数,补足至40960位。更新文件分块的目的,是为了分块传输,从而将损坏的风险分散,即使传输过程中发生错误,也只需要重传出错的块,而无需重传整个文件。(5)更新服务器组装一个文件信息包={File,N,mL}。其中File是待传输更新文件的文件信息,包括文件名,文件长度等,N是更新文件被分块的块数,L是K的长度,mL就是每个分块的长度。(6)更新服务器计算更新文件的第一个分块的哈希值Hash(F1),设哈希值的长度为h,则在哈希值后补上长度为L-h的随机数R1,获得新的长度为L的密钥K1。Hash是本专利技术采用的哈希算法,优选地,本专利技术采用MD5的哈希算法,MD5的结果是128位,K的长度为4096位,则需要生成一个4096-128=3968位的随机数,补在MD5哈希值后面,构成新的4096位的密钥K1,由于新密钥中不仅有随机数,还包括哈希值,进一步增强了密钥的随机性,该新密钥在后面用于对第一个文件包的加密。(7)设文件信息包的长度为L0,则将文件信息包与K的前L0位进行异或,得到异或结果XF。然后更新服务器组装一个初始信息包={K1⊕K,XF,HF},将该初始信息包括发送给客户端。其中HF是文件信息包和K1的哈希值,用于后续的校验。(8)客户端使用K解密该初始信息包,获得K1和文件信息包,并使用HF进行哈希校验,如果校验不通过,则请求更新服务器重发该初始信息包直到校验通过,如果校验通过,则客户端告知更新服务器已准备好接收更新文件。由于客户端在步骤(3)中已经获得了密钥K,因此可以通过与初始信息包进行异或,解密出K1和文件信息包。哈希校验保证了初始信息包是正确的。另外,由于K1中包括了Hash(F1),因而客户端同时还获得了第一个分块的哈希值。(9)更新服务器设置循环变量i=1。(10)更新服务器组装第i个文件包Bi,如果i<N(即不是最后一个文件包),则令Bi={Fi,Ki+1},Ki+1={Hash(Fi+1),Ri+1},如果i=N,则Bi=Fi。其中,Ri+1是一个长度为L-h的随机数,则Ri+1的长度与Hash(Fi+1)的长度之和为L,也就是说,Ki+1的长度为L,作为下个文件包的加密密钥。(11)更新服务器使用密钥Ki加密第i个文件包,即计算Ei=E(Ki,Bi)。本专利技术提出了一种新的加密算法E,即连续异或法,该方法在后面做详细介绍。(12)更新服务器将Ei和Hash(Bi)发送给客户端,客户端对Ei解密,获得Bi(具体的解密方法也在后面介绍)。如果i&am本文档来自技高网...
一种更新文件的推送方法

【技术保护点】
一种更新文件的推送方法,其特征在于,该方法包括以下步骤:步骤100:更新服务器生成初始加密密钥,并通过密钥交换方法,使得客户端获得该初始加密密钥;步骤200:基于该初始加密密钥,更新服务器将待更新的文件分块加密后发送给所述客户端;步骤300:所述客户端组装所述分块,获得更新文件。

【技术特征摘要】
1.一种更新文件的推送方法,其特征在于,该方法包括以下步骤:步骤100:更新服务器生成初始加密密钥,并通过密钥交换方法,使得客户端获得该初始加密密钥;步骤200:基于该初始加密密钥,更新服务器将待更新的文件分块加密后发送给所述客户端;步骤300:所述客户端组装所述分块,获得更新文件。2.根据权利要求1所述的更新文件的推送方法,其特征在于,所述初始加密密...

【专利技术属性】
技术研发人员:林殷吴方才许金龙
申请(专利权)人:航天星图科技北京有限公司
类型:发明
国别省市:北京,11

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

1