一种软件分发安全保护方法与流程

文档序号:16815376发布日期:2019-02-10 14:23阅读:268来源:国知局
一种软件分发安全保护方法与流程

本发明涉及软件安全技术领域,尤其涉及一种软件分发安全保护方法。



背景技术:

为了解决大型企事业中计算机软件的统一管理,往往需要在每个员工的计算机中安装、更新或者卸载某些特定的软件。传统做法是通过每个员工手动进行软件的下载、安装、更新或者卸载,这种做法不仅浪费了大量的工作时间,而且容易出现安装版本不一致等问题,效率较低且可靠性不高。为了解决该问题,人们开发了软件分发技术,软件分发技术通过网络连接自动批量的将软件从服务器安装到多台不同的计算机中或者对计算机中的软件进行统一的升级和卸载,从而达到高效准确的软件管理。

现有软件分发方式主要有两种,分别是网页分发和用户端安装软件管家类app分发两种,这两种分发方式适用于包括国产操作系统在内的各类操作系统。在网页分发方式中,用户通过单击浏览器页面的软件下载链接就可以下载到所需软件;在软件管家类app分发方式中,用户通过客户端人机交互界面从商家维护的软件库中获取相应软件。以上两种网络化软件分发方式都能够保证软件分发的时效性和便利性,有利于推广使用应用软件和完善应用软件的功能。

目前,在现有软件分发过程中,为了保证软件的完整性,通常在分发应用软件的同时,分发软件包的hash值,以便客户端安装软件包前能对软件包进行完整性验证。针对单个软件的保护技术包括基于硬件的保护方法和基于软件的保护方法等,能够阻碍对应用软件源代码的获取、可执行文件的调试,阻碍软件逆向分析人员分析程序算法和组织结构并进行篡改,保护软件版权的同时,保证软件的完整性、可信性与不可抵赖性。然而,在软件集中分发过程中,软件源中的应用软件繁多,对于单个软件的保护技术难以实现对多个应用软件进行有效的安全保护,特别是在基于linux内核的国产操作系统的软件分发中表现的更为明显。

因此,亟需设计一种软件分发安全保护方法,实现在软件分发条件下对软件源中多个软件的有效安全保护。



技术实现要素:

本发明提供的软件分发安全保护方法,能够针对现有技术的不足,实现在软件分发条件下对软件源中多个软件的有效安全保护。

本发明提供一种软件分发安全保护方法,包括:

步骤一、对软件开发者进行第一身份验证,所述第一身份验证通过后,将所述软件开发者提供的第一软件包进行第一加密和第一数字签名,上传给软件库管理员;

步骤二、所述软件库管理员进行第一数字签名验证,通过后对经所述第一加密的第一软件包进行第一解密,审核后进行第二加密和第二数字签名形成第二软件包,将所述第二软件包发布到软件库;

步骤三、对访问所述软件库的用户进行第二身份验证,所述第二身份验证通过后,所述用户下载所述第二软件包并进行第二数字签名验证和第二解密,通过后安装所述第二软件包。

可选地,上述第一加密和所述第二加密用于将软件明文转换为软件密文,所述第一数字签名和所述第二数字签名用于产生判断软件包是否被改动的证据。

可选地,上述软件开发者具有第一公钥密钥对,所述软件库管理员和软件库服务器端共用第二公钥密钥对,所述用户具有第三公钥密钥对,用于保护所述第一身份验证和所述第二身份验证的安全性。

可选地,上述步骤一包括所述软件库服务器端将第一对称密钥通过所述第一公钥密钥对中的公钥加密,并通过所述第二公钥密钥对中的私钥数字签名后发送给所述软件开发者,所述软件开发者通过所述第一对称密钥加密软件包并通过所述第一公钥密钥对中的私钥数字签名后发送给所述软件库管理员。

可选地,上述步骤二包括所述软件库管理员使用第二对称密钥将经过审核的软件包加密,并通过所述第二公钥密钥对中的私钥对所述软件包数字签名形成所述第二软件包。

可选地,上述步骤三包括所述第二对称密钥通过所述第三公钥密钥对中的公钥加密和所述第二公钥密钥对中的私钥签名后发送给所述用户,所述用户通过所述第二对称密钥进行第二解密。

可选地,上述第一对称密钥和/或第二对称密钥存储在所述软件库服务器端,使用时由所述软件库服务器端以密文方式分发给所述用户。

可选地,上述第一、第二和第三公钥密钥对中的私钥分别存储在所述软件开发者、软件库服务器和用户的实体端,公钥通过专用公钥服务器发布而获取。

可选地,上述公钥通过信任网方案进行合法性认证,所述信任网方案包括:

所述软件开发者的本机存储从所述公钥服务器导入的第二公钥密钥对中的公钥,信任度为绝对信任;

所述用户的本机存储从所述公钥服务器导入的第二公钥密钥对中的公钥,信任度为绝对信任;

所述软件库服务器端存储从所述公钥服务器导入的第一公钥密钥对中的公钥以及第三公钥密钥对中的公钥,信任度为绝对信任。

可选地,上述第一、第二、第三公钥密钥对中的公钥经过散列值验证。

本发明实施例提供的软件分发安全保护方法,通过分析软件分发过程中面临的风险,基于混合密码学系统在各环节中采取相应安全措施,能够保证分发软件数据的安全性、完整性和不可否认性,从而增强软件分发过程中的软件安全性。

附图说明

图1为本发明一实施例的软件分发安全保护方法的基本框架图;

图2为本发明一实施例的基于混合密码学的整体保护方法的流程框图;

图3为本发明一个实施例的身份验证过程中所使用密钥的类型和主体示意图;

图4为本发明一个实施例的信任网的架构示意图;

图5为本发明一实施例中的国产操作系统下的对软件包进行加密、签名和解密的流程示意图;

图6a为本发明一实施例中的国产操作系统下的原始软件包目录结构示意图;

图6b为本发明一实施例中的国产操作系统下的解密软件包目录结构示意图;

图6c为本发明一实施例中的国产操作系统下的打开加密软件提示示意图;

图6d为本发明一实施例中的国产操作系统下的对加密软件进行完整性验证的结果示意图;

图7为本发明一个实施例提供的软件分发安全保护方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种软件分发安全保护方法,图1示出了本发明一个实施例的软件分发安全保护方法的基本框架图。如图所示,首先,软件开发者进行软件开发,得到软件源码,优选的,软件开发人员通过编译型verilog模拟器synopsysvcs进行。软件开发者开发完软件源码后,需要将软件源码及相关开发文档提交软件库管理员。典型的,软件库管理员即软件发行平台维护者,相关开发文档包括但不限于控制文件、原数据、补丁等。随后,软件发行平台维护者经过审核修改后,生成软件包,并将软件包传送至包分发存储池,即软件库。用户通过网络连接访问包分发存储池,通过安装在用户机器上的包管理软件获得包分发存储池的索引描述,找到需要安装或更新的软件包,并安装在用户机器上。

具体的,软件开发者将软件源码等相关数据上传给管理员过程中,会面临被恶意人员截获的威胁。同时,软件开发者开发出的软件源码,也有可能不经过软件发行平台发布软件包而直接安装到用户客户端,由此软件源码自身的安全性也可能存在质疑。为使软件源码上传给管理员的过程不被恶意人员截获并篡改,并且防止软件开发者否认自身开发恶意软件源码的情况,软件库需要提供一种能够确保软件数据在上传传输过程中的机密性的机制,并且该机制能够确保软件开发者对自身上传的软件数据无法否认。

具体的,成功上传的软件源码及相关文件经过管理员严格审核后,进入到软件库中,如果软件包在软件源中采取明文存储的方式,软件库容易面临恶意人员进入服务器端软件源获取软件包数据的威胁,所以需要保证软件源中存储的软件包数据的机密性。另外,在软件包分发过程中,软件数据同样需要通过网络传输给用户,也面临被恶意人员截获、篡改的威胁,所以软件库也需要保证软件数据网络分发传输过程中的机密性;同时,为了提高用户对获取到的软件数据的可信性和对软件开发者所提供的软件数据的不可否认性,软件库也需要使用户能够在软件安装前对获取到的软件包进行有效验证。

图2示出了本发明一个实施例的基于混合密码学的整体保护方法的流程框图。如图所示,软件开发者在将软件源码等相关文件上传给软件库管理员之前,首先需要进行注册,将软件开发者的相关信息进行审核和存储,并且在软件开发者进行登录时,对登录者进行身份验证。如果登陆者的身份验证通过,则对软件开发者登录提供的软件源码和相关文件进行加密以及数字签名,随后上传到数据库管理员;如果登陆者的身份验证未通过,则由系统记录并且退出。

软件库管理员收到软件开发者上传的软件源码等相关文件后,首先进行数字签名验证。如果验证通过,则对已经加密的软件源码等相关文件进行解密以及审核,待审核完成后生成软件包,重新进行加密及数字签名,并上传到软件库。如果数字签名验证未通过,则删除该软件开发者上传的软件源码及相关文件。另外,当软件库管理员经过解密后审核软件源码等相关文件,如果未通过审核,也将删除该软件开发者上传的软件源码及相关文件。

用户需要接受软件分发时,首先进行注册,经过系统审核后,进行用户信息存储。用户登录时,以存储的用户信息为比对进行身份验证。身份验证通过后,通过登录认证的用户会在客户端界面中看到可获取软件索引列表,获得软件包数据更新情况并将软件包信息显示,随后用户对获取到的软件包数据进行签名验证及解密,进行基本操作如安装、升级、卸载、下载等。

一方面的,在本发明一个实施例的软件分发安全保护方法整体方案中,为了保证软件源码及相关文件的安全性以及访问软件库的人员均具有非恶意目的,需要对软件开发者和用户进行身份验证。具体的,验证数据的传输需要用到公钥密码,能够保证身份验证的高安全可靠性。

图3示出了本发明一个实施例的身份验证过程中所使用密钥的类型和主体示意图。如图所示,在本发明的基于混合密码学系统的软件分发安全保护过程中,涉及的主体包括开发者、管理员、软件库服务器和用户,各个主体均具有自身的公钥和私钥。具体的,软件开发者具有公钥密钥对(私钥1、公钥1),服务器端管理员、软件库服务器共用公钥密钥对(私钥2、公钥2),用户具有公钥密钥对(私钥3、公钥3)。另外,在软件服务器端存储有两种密钥,分别是对称密钥0和对称密钥1,对称密钥0用来加密开发者上传的软件源码及相关文件,对称密钥1用来加密存储和解密分发软件包。

软件开发者在注册并登录后上传软件源码及相关文件时,软件库服务器端将对称密钥0通过开发者公钥1加密,并通过自身私钥2签名后发送给软件开发者。软件开发者使用密钥0加密软件包,并且用自身私钥1签名软件包并上传给服务器端指定区域;服务器端管理员下载、验证、解密软件包并进行审核,审核通过后,使用密钥1将软件包对称加密,并用共用公钥对(私钥2、公钥2)进行数字签名,然后将软件包入库发布;用户在下载软件包时,经过管理员加密和签名的软件包会通过网络分发给用户,并且用于加密的对称密钥1也通过用户公钥3加密、管理员私钥2签名后发送给用户。用户客户端下载软件包后进行管理员签名验证和软件包解密,验证正确后客户端开始进行软件包安装。

由于对加密软件包中密文的破译在不知道密钥的情况下十分困难,因此本发明一实施例的基于混合密码学的软件分发安全保护方法中最重要的是对密钥的安全保存和对公钥的合法性验证。

特别的,上述基于混合密码学的软件分发安全保护方法中的对称密钥0和对称密钥1均存储在服务器端,使用时由服务器端以密文方式分发给用户。另外,公钥密钥对的私钥分别存储在相应的实体端,优选的,公钥的获取通过建立专用的公钥服务器对公钥进行权威发布。

进一步的,可以根据公钥分发的需求采用基于简化信任网方案对公钥的合法性进行认证。信任网的构建需要依赖本机存储的配置文件、信任库、公钥库和私钥库。其中,配置文件用来记录可以获取通信对方公钥的公钥服务器地址等信息,信任库记录主体对公钥库中公钥的信任程度,公钥库存储需要与本机进行通信实体的公钥,私钥库存储本机的唯一私钥。

图4示出了本发明一个实施例的信任网的架构示意图。如图所示,a代表使用本机私钥签名后的公钥,本机对该公钥具有绝对信任,b公钥经过a的签名且信任级别设置为绝对信任,依次c公钥完全信任,d公钥有限信任,e公钥有限信任、f公钥不信任和j公钥未知/未设置。在这种信任度的设置下,假定两个有限信任就可以确定为信任,则本机在收到经由公钥库中公钥签名后的陌生实体的公钥后即可判断出公钥g、h、i属于可信任的公钥,公钥k、l无法被确定是否合法。

具体的,在本发明的一个实施例中,软件包的传输过程只涉及软件开发者与软件库服务器、管理员与软件库服务器、用户与软件库服务器,而开发者与管理员,管理员与用户之间无需进行软件包传输通信,因此减少了各实体本机需要获取公钥的数目。如开发者、用户只需获取并存储软件库服务器公钥,软件库服务器需要获取并存储所有开发者和用户的公钥。

进一步的,为严格要求公钥的合法性,可以采用基于简化信任网方案的公钥合法性认证方案,包括:软件开发者本机只需存储从公钥服务器导入经过散列值验证的管理员公钥,信任度为绝对信任;用户本机只需存储从公钥服务器导入并且经过散列值验证的管理员公钥,信任度为绝对信任;软件库服务器端需要存储从公钥服务器导入经过散列值验证的软件开发者公钥、用户公钥,信任度为绝对信任。

另一方面,为防止恶意侵入人员对软件的恶意截获与篡改,需要对软件包进行加密,把软件明文转换为软件密文,并使用数字签名对软件包产生证据,软件包在服务器端存储与经加密和签名后的软件包数据在网络上传输,软件获取端通过对证据的验证能确定软件是否被改动,安全性显著提高。

图5示出了本发明一实施例中的国产操作系统下的对软件包进行加密、签名和解密的流程示意图。如图所示,①为原始的.deb格式软件包;②为经过对称加密后的软件包,经加密的软件包命名在①名称的基础上前方增加jm-;③为②的分离式签名文件,与②唯一对应;④为经过签名验证合格后对②对称解密得到的.deb软件包。

图6a示出了本发明一实施例中的国产操作系统下的原始软件包目录结构,图6b示出了本发明一实施例中的国产操作系统下的解密软件包目录结构,图6c示出了本发明一实施例中的国产操作系统下的打开加密软件提示示意图,图6d示出了本发明一实施例中的国产操作系统下的对加密软件进行完整性验证的结果示意图。用归档管理器打开图5中的原始软件包①显示软件包目录结构如图6a所示,用归档管理器打开图5中的经解密后的软件包④显示软件包目录结构如图6b所示。图6a和图6b中的软件包目录完全相同,说明经过对称加密与对称解密,软件包④已经完全恢复出了原始软件包,可用来正确安装。用归档管理器打开图5中的加密后软件包②,出现装入归档文件错误提示如图6c,说明经加密后的软件包已经改变其目录结构与内容,无法进行正确识别,即使恶意人员截获,由于没有密钥,无法获得软件包明文数据。用数字签名文件③对软件包②的密文进行完整性验证,当加密软件包未被修改过时,验证结果如图6d所示,当验证结果是“完好的签名”时,说明软件包密文未经修改,满足完整性。

图7示出了本发明一个实施例提供的软件分发安全保护方法流程示意图。如图所示,s71表示对软件开发者进行第一身份验证,所述第一身份验证通过后,将所述软件开发者提供的第一软件包进行第一加密和第一数字签名,上传给软件库管理员;s72表示软件库管理员进行第一数字签名验证,通过后对经所述第一加密的第一软件包进行第一解密,审核后进行第二加密和第二数字签名形成第二软件包,将所述第二软件包发布到软件库;s73表示对访问所述软件库的用户进行第二身份验证,所述第二身份验证通过后,所述用户下载所述第二软件包并进行第二数字签名验证和第二解密,通过后安装所述第二软件包。

本发明提供的软件分发安全保护方法,针对软件存储和分发安全保护方面的需求,基于混合密码学系统集中管理分发特定领域、安全性要求高且在国产操作系统上运行的应用软件,能够提高软件集中存储和分发过程中软件数据的安全性。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1