一种高安全性的软件安装方法

文档序号:9624140阅读:836来源:国知局
一种高安全性的软件安装方法
【技术领域】
[0001] 本发明设及软件工程领域,提供了一种高安全性的软件安装方法,用于在复杂环 境下,从云端为终端计算机提供安全、可靠的应用软件安装包。
【背景技术】
[0002] 现有技术中,用户为了在其计算机上安装一份应用软件,通常需要从某处获得该 软件的安装包,获取的主要来源从原始的软盘,到光盘、U盘,一直在变化。在互联网大发展 后,现在的应用软件常常是从网上下载,即由软件厂商在其主页上提供软件安装包的下载 链接,用户根据该链接,从软件厂商的下载服务器下载该软件安装包后进行安装。
[0003] 但是,现有技术中,运种根据下载链接从某个下载服务器下载软件的方法具有缺 陷,首先,下载服务器在软件发布初期可能需要承受大量的下载请求,从而导致下载缓慢, 甚至中断下载,可靠性降低;其次,下载服务器如果出现故障、黑客入侵时,软件的安全性就 会受到威胁。此外,对于需要保密的软件安装包(例如软件厂商指定在某个时刻才可W下 载,之前需要保密),下载链接也很容易被提前泄露出去。

【发明内容】

[0004] 为了解决上述技术问题,本发明提供了一种高安全性的软件安装方法。 阳〇化]为了达到上述目的,本发明所采用的技术方案是:
[0006] 一种高安全性的软件安装方法,该方法使用n台云端服务器为软件下载提供云服 务,并使用一台管理服务器作为软件安装包的分发中屯、,用户的计算机内安装有云客户端, 通过云客户端进行软件安装,云客户端中预先安装了管理服务器的数字证书,n〉2,该方法 的步骤包括:
[0007] 步骤1 :软件厂商将软件安装包上传到管理服务器上,管理服务器使用数字签名 算法对软件安装包进行数字签名,获得签名结果,即S = R(A,K),其中A是软件安装包,K是 管理服务器的私钥,S是签名结果,R是数字签名算法,管理服务器将所述签名结果上传到 每一台云端服务器;
[0008] 步骤2 :管理服务器使用有限域算法处理该软件安装包,从而生成n个子安装包, 并将每个子安装包分别上传到一台云端服务器中,所述子安装包中的任意t个可W通过有 限域重构算法重构出软件安装包,其中t是一个预先确定的数值,Kt<n ;
[0009] 步骤3 :用户在其计算机上使用云客户端连接n台云端服务器,从n台云端服务器 上分别下载其保存的子安装包W及签名结果;
[0010] 步骤4:当所有下载都结束后,云客户端检查其下载获得的子安装包数量,如果下 载的子安装包数量小于t,则云客户端向用户报告下载失败,流程结束,如果下载的子安装 包数量大于等于t,则继续执行下列步骤;
[0011] 步骤5 :云客户端核对所有下载获得的签名结果,如果所有签名结果都各不相同, 则云客户端向用户报告下载失败,流程结束,否则采用相同数量最多的签名结果作为正确 的签名结果;
[0012] 步骤6 :令i = 1,云客户端从下载的所有子安装包中随机选择t个子安装包集合, 记为集合Al;
[0013] 步骤7:对选择的集合Ai使用有限域重构算法进行计算,重构出软件安装包;
[0014] 步骤8:使用管理服务器的数字证书和步骤5获得的签名结果,对步骤7获得的 软件安装包进行数字签名验证,如果验证通过,则执行该软件安装包进行软件安装,流程结 束;如果验证不通过,则继续执行下列步骤;
[0015] 步骤9 :令i增加1,并重新从下载的所有子安装包中随机选择t个子安装包集合 Al,且对任意的j<i,满足条件Ai声A,,j为整数;如果找不到满足该条件的集合,则云客户 端向用户报告下载失败,流程结束,否则转到步骤7。
[0016]其中n= 10,t= 6。
[0017]其中所述n台云端服务器编号为cloud 1,cloud 2,............,cloud n;
[0018] 所述有限域算法的具体步骤如下:
[0019] 1)管理服务器选择一个素数P,在有限域GF(P)中随机选择t-1个数曰1,曰2,… ,at1,从而构造一个t-1次多项式f (X),即
[0021] 其中,P是一个预先确定的公开的素数,但是曰1,曰2,…,at1保密,只有产生它们的 管理服务器知道,X是自变量,k为整数,1《Kt ; 阳02引 2)管理服务器计算f(l),f似,……,f(n),获得n个函数值,每个函数值做为一 个子安装包; 阳02引扣管理服务器将fa)上传到cloudji,1《n。
[0024]其中 在GF(P)上满足:akmodk =0。
[00巧]其中所述有限域重构算法的具体步骤如下:
[00%] 1)获取t个子安装包,W及每个子安装包对应的云端服务器编号;
[0027]2)基于上述t个子安装包及对应的云端服务器编号,重构出多项式f (X),从而获 得软件安装包。
[0028] 有益效果:本发明提出了一种高安全性的软件安装方法,该软件安装方法使用多 台云端服务器存储软件安装包,用户通过云客户端从云端服务器下载软件并安装。其中软 件安装包并不是每台云端服务器各存储一个,而是通过本发明的有限域算法,将软件安装 包的有限域计算结果(即子安装包)分别存储在各个云端服务器上,云客户端只有获得其 中预定数量的子安装包,通过有限域重构算法,才能获得软件安装包,从而大大提高了软件 安装的容错性、鲁棒性、安全性和可靠性。
【附图说明】
[0029]图1 :实现本发明软件安装方法的系统结构
【具体实施方式】
[0030] 如图I所示,本发明提供了 n台云端服务器为软件下载提供云服务,n〉2,另外还提 供了一台管理服务器作为软件的分发中屯、。用户计算机安装有云客户端,通过云客户端进 行软件安装,管理服务器具有其数字证书和对应的私钥,该数字证书已预先安装到云客户 端中。
[0031] 软件安装的主要步骤流程如下:
[0032] 步骤1 :软件厂商将软件安装包上传到管理服务器上,管理服务器使用数字签名 算法对软件安装包进行数字签名,获得签名结果,即S = R(A,K),其中A是软件安装包,K是 管理服务器的私钥,S是签名结果,R是数字签名算法。数字签名算法可W采用任意一种公 知的数字签名算法。然后,管理服务器将所述签名结果上传到每一台云端服务器。
[0033] 步骤2 :管理服务器使用有限域算法处理该软件安装包,从而生成n份子安装包并 上传到云端服务器(详细的有限域算法在下面说明),每一份子安装包都上传到一台云端 服务器上保存,从而每台云端服务器都存储了一份子安装包。
[0034] 本发明所提出的有限域算法具有运样的特性:只要获得n份子安装包中的t份,就 可W通过计算重构出软件安装包,如果获得的子安装包数量小于t份,就无法重构出软件 安装包,其中t是一个预先设定的数值,Kt<n。优选的,n = 10, t = 6,只要获得10份子安 装包中的6份,就可W重构出完整的软件安装包,如果小于6份,就无法重构。
[0035] 步骤3 :用户在其计算机上使用云客户端连接n台云端服务器,从n台云端服务器 上分别下载其保存的子安装包W及签名结果。
[0036] 步骤4:由于各种原因,从云端服务器的下载可能被拒绝或者被中断,但是无论每 个下载是否成功,当所有下载都结束后,云客户端检查其下载获得的子安装包数量,如果下 载的子安装包数量小于t,则云客户端向用户报告下载失败,流程结束,如果下载的子安装 包数量大于等于t,则继续执行下列步骤。
[0037] 步骤5 :云客户端核对所有下载获得的签名结果,从理论上说,下载的n个签名结 果都应该是相同的,但是可能由于网络传输错误等原因,少数下载的签名结果与其他签名 结果不一致。因此,云客户端采用少数服从多数的原则,剔除少数与其他签名结果不一致的 签名结果,采用相同数量最多的签名结果作为正确的签名结果。如果所有签名结果都各不 相同,则云客户端向用户报告下载失败,流程
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1