应用软件控制平台、开发者终端、分发系统及方法

阅读: 评论:0

著录项
  • CN201010549140.6
  • 20101117
  • CN102024107A
  • 20110420
  • 中国联合网络通信集团有限公司
  • 加雄伟
  • G06F21/00
  • G06F21/00

  • 北京市西城区金融大街21号
  • 中国,CN,北京(11)
  • 北京同立钧成知识产权代理有限公司
  • 臧建明
摘要
本发明提供一种应用软件控制平台、开发者终端、分发系统及方法,应用软件控制平台包括签名服务器和开发者服务器,签名服务器包括开发者签名模块,开发者服务器包括开发者证书模块、身份审核模块、应用软件审核模块和软件发布模块。开发者终端包括:申请模块、身份信息发送模块和应用软件发送模块。应用软件分发系统包括本发明提供的应用软件控制平台和本发明提供的开发者终端。本发明提供的应用软件控制平台、开发者终端、分发系统及方法,通过对身份信息和应用软件的双重审核,提高了软件分发的安全性。
权利要求

1.一种应用软件控制平台,其特征在于,包括:

签名服务器,包括开发者签名模块,用于当接受开发者服务器的开发者签名请求时,接收开发者证书,对所述开发者证书进行签名,并向所述开发者服务器返回签名后的开发者证书;

开发者服务器,包括开发者证书模块、身份审核模块、应用软件审核模块和软件发布模块;

所述开发者证书模块,用于当接受开发者终端的申请请求时,接收开发者申请信息,根据所述开发者申请信息生成开发者证书,将所述开发者签名请求和所述开发者证书提供给所述签名服务器,并将接收到的所述签名后的开发者证书提供给提出所述申请请求的开发者终端,以指示所述开发者终端根据所述签名后的开发者证书发送身份信息和应用软件;

所述身份审核模块,用于接收所述开发者终端提交的身份信息,并对所述身份信息进行审核;

所述应用软件审核模块,用于接收所述开发者终端提交的应用软件,并对所述应用软件进行审核;

所述软件发布模块,用于根据所述身份审核模块和应用软件审核模块的审核结果向应用商城服务器发布所述应用软件。

2.根据权利要求1所述的应用软件控制平台,其特征在于:

所述签名服务器还包括开发者服务器签名模块,用于当接受所述开发者服务器的开发者服务器签名请求时,接收开发者服务器证书,对所述开发者服务器证书进行签名,并向所述开发者服务器返回签名后的开发者服务器证书;

所述开发者服务器还包括开发者服务器证书模块,用于将所述开发者服务器签名请求和所述开发者服务器证书提供给所述签名服务器,接收所述签名后的开发者服务器证书,并将所述签名后的开发者服务器证书提供给所述开发者终端。

4.根据权利要求2所述的应用软件控制平台,所述身份信息包括所述开发者证书和所述开发者服务器证书,其特征在于:所述身份审核模块包括开发者证书审核单元和开发者服务器证书审核单元,所述发者证书审核单元用于审核所述开发者证书的正确性,所述开发者服务器证书审核单元用于审核所述开发者服务器证书的正确性。

5.根据权利要求4所述的应用软件控制平台,所述应用软件包括应用程序文件和签名文件,所述签名文件包括根据所述应用程序文件生成的签名文件摘要,其特征在于:所述应用软件审核模块包括摘要审核单元,用于审核所述签名文件摘要的正确性,以确定所述应用程序文件的正确性。

3.根据权利要求1或2所述的应用软件控制平台,其特征在于:所述签名服务器和所述开发者服务器一体设置。

6.根据权利要求1所述的应用软件控制平台,其特征在于,还包括:应用商城服务器,所述应用商城服务器用于接收所述开发者服务器提供的应用软件,并当接受使用者终端提出的下载请求时,向使用者终端发布所述应用软件。

7.根据权利要求6所述的应用软件控制平台,其特征在于:

所述签名服务器还包括使用者签名模块,用于当接受应用商城服务器的使用者签名 请求时,接收使用者证书,对所述使用者证书进行签名,并向所述应用商城服务器返回签名后的使用者证书;

所述应用商城服务器包括使用者证书模块,软件显示模块和软件发布模块;

所述使用者证书模块,用于当接受使用者终端的认证请求时,接收使用者申请信息,根据所述使用者申请信息生成使用者证书,将所述使用者签名请求和所述使用者证书提供给所述签名服务器,并将接收到的所述签名后的使用者证书提供给提出所述认证请求的开发者终端;

软件显示模块,用于当接收到应用软件时,将所述软件信息的介绍信息进行显示;

软件下载模块,用于根据所述签名后的使用者证书向所述使用者终端发布所述应用软件。

8.一种开发者终端,其特征在于,包括:

申请模块,用于向开发者服务器提供申请信息,并接收所述开发者服务器返回的开发者证书和开发者服务器证书;

身份信息发送模块,用于根据所述返回的开发者证书和开发者服务器证书向开发者服务器提供身份信息;

应用软件发送模块,用于根据所述返回的开发者证书向开发者服务器提供应用软件。

9.根据权利要求8所述的开发者终端,所述应用软件包括应用程序文件和签名文件,其特征在于,所述应用软件发送模块包括:

应用编程单元,用于开发并测试所述应用程序文件;

签名文件单元,用于根据所述开发者证书和所述应用程序文件生成所述签名文件;

软件包生成单元,用于将所述应用程序文件和签名文件进行打包,以生成所述应用软件;

软件发送单元,用于向所述开发者服务器提供所述应用软件。

10.根据权利要求9所述的开发者终端,其特征在于,所述签名文件单元包括:

摘要生成子单元,用于根据所述应用程序文件生成应用程序文件摘要;

摘要签名子单元,用于根据应用程序文件摘要生成签名文件摘要,并通过所述开发者证书对所述签名文件摘要进行签名,以形成所述签名文件。

11.一种应用软件分发系统,其特征在于,包括:权利要求1-7任一所述的应用软件控制平台和权利要求8-10任一所述的开发者终端。

12.一种应用软件分发方法,其特征在于,包括:

当开发者服务器接受开发者终端提出的申请请求时,接收所述开发者终端提供的开发者申请信息,根据所述开发者申请信息生成开发者证书;

所述开发者服务器向签名服务器提出开发者签名请求,并将所述开发者证书提供给所述签名服务器;

当所述签名服务器接受所述开发者签名请求时,对接收到的开发者证书进行签名,并将签名后的开发者证书返回所述开发者服务器;

所述开发者服务器将所述签名后的开发者证书返回所述开发者终端,以指示所述开发者终端根据接收的所述开发者证书向所述开发者服务器发送身份信息和应用软件;

所述开发者服务器对接收到的身份信息和应用软件进行审核;

所述开发者服务器根据审核结果向应用商城服务器提供所述应用软件,以指示所述商城服务器根据使用者终端的请求向所述使用者终端发布所述应用软件。

13.根据权利要求12所述的应用软件分发方法,其特征在于,所述开发者服务器根据所述开发者申请信息生成开发者证书之前,还包括:

所述开发者服务器向所述签名服务器提出开发者服务器签名请求,并将开发者服务器证书提供给所述签名服务器;

当所述签名服务器接受所述开发者服务器签名请求时,对接收到的所述开发者服务器证书进行签名,并将签名后的所述开发者服务器证书返回所述开发者服务器。

14.根据权利要求13所述的应用软件分发方法,其特征在于,所述开发者服务器将所述签名后的开发者证书返回所述开发者终端之后,还包括:

所述开发者服务器将所述签名后的开发者服务器证书提供给所述开发者终端。

15.根据权利要求14所述的应用软件分发方法,所述身份信息包括所述开发者证书和所述开发者服务器证书,其特征在于,所述开发者服务器对所述身份信息进行审核具体为:

所述开发者服务器分别对所述开发者证书和所述开发者服务器证书进行审核。

16.根据权利要求12所述的应用软件分发方法,所述应用软件包括应用程序文件和签名文件,所述签名文件包括根据所述应用程序文件生成的签名文件摘要,其特征在于,所述开发者服务器对所述应用软件进行审核具体为:

所述开发者服务器通过审核所述签名文件摘要的正确性,以确定所述应用程序文件的正确性。

17.根据权利要求12所述的应用软件分发方法,其特征在于,所述开发者服务器根据审核结果向应用商城服务器提供所述应用软件具体为:当所述身份信息和所述应用软件都通过审核时,向所述应用商城服务器提供所述应用软件。

18.根据权利要求12所述的应用软件分发方法,其特征在于,所述应用商城服务器根据使用者终端的请求向所述使用者终端发布所述应用软件包括:

当所述应用商城服务器接收到应用软件时,将所述软件信息的介绍信息进行显示;

当所述应用商城服务器接受使用者终端的软件申请请求时,接收使用者申请信息,根据所述使用者信息生成使用者证书,通过应用商城服务器证书对所述使用者证书进行签名,并将签名后的使用者证书提供给所述使用者终端;

所述应用商城服务器根据所述签名后的使用者证书向所述使用者终端发布所述应用软件。

说明书
技术领域

技术领域

本发明涉及应用软件分发技术,尤其涉及一种应用软件控制平台、开发者终端、分发系统及方法。

背景技术

随着智能终端(例如,智能手机、电子书等)的推广和应用,终端安全问题日益重要。安全问题主要包括用户数据(例如,联系人、帐号、密码、照片等)的安全、终端资源(例如,摄像设备、录音设备、用户身份卡、网络连接设备、存储设备等)的安全、网络资源(例如,网络上存储的联系人、照片等资源)的安全等。

智能终端的发展离不开智能终端上的应用软件的发展壮大。通常应用软件由各种各样的软件提供商,或软件设计人员设计,各种应用软件的功能不尽相同。由于诸多恶意应用软件的出现,用户对于选择应用软件无所适从,用户没有可信的应用软件下载途径。

发明内容

本发明提供一种应用软件控制平台、开发者终端、分发系统及方法,以提高应用软件分发的安全性。

本发明提供一种应用软件控制平台,包括:

签名服务器,包括开发者签名模块,用于当接受开发者服务器的开发者签名请求时,接收开发者证书,对所述开发者证书进行签名,并向所述开发者服务器返回签名后的开发者证书;

开发者服务器,包括开发者证书模块、身份审核模块、应用软件审核模块和软件发布模块;

所述开发者证书模块,用于当接受开发者终端的申请请求时,接收开发者申请信息,根据所述开发者申请信息生成开发者证书,将所述开发者签名请求和所述开发者证书提供给所述签名服务器,并将接收到的所述签名后的开发者证书提供给提出所述申请请求的开发者终端,以指示所述开发者终端根据所述签名后的开发者证书发送身份信息和应用软件;

所述身份审核模块,用于接收所述开发者终端提交的身份信息,并对所述身份信息进行审核;

所述应用软件审核模块,用于接收所述开发者终端提交的应用软件,并对所述应用软件进行审核;

所述软件发布模块,用于根据所述身份审核模块和应用软件审核模块的审核结果向应用商城服务器发布所述应用软件。

如上所述的应用软件控制平台,其中,

所述签名服务器还包括开发者服务器签名模块,用于当接受所述开发者服务器 的开发者服务器签名请求时,接收开发者服务器证书,对所述开发者服务器证书进行签名,并向所述开发者服务器返回签名后的开发者服务器证书;

所述开发者服务器还包括开发者服务器证书模块,用于将所述开发者服务器签名请求和所述开发者服务器证书提供给所述签名服务器,接收所述签名后的开发者服务器证书,并将所述签名后的开发者服务器证书提供给所述开发者终端。

如上所述的应用软件控制平台,其中,所述签名服务器和所述开发者服务器一体设置。

如上所述的应用软件控制平台,所述身份信息包括所述开发者证书和所述开发者服务器证书,其中,所述身份审核模块包括开发者证书审核单元和开发者服务器证书审核单元,所述发者证书审核单元用于审核所述开发者证书的正确性,所述开发者服务器证书审核单元用于审核所述开发者服务器证书的正确性。

如上所述的应用软件控制平台,所述应用软件包括应用程序文件和签名文件,所述签名文件包括根据所述应用程序文件生成的签名文件摘要,其中,所述应用软件审核模块包括摘要审核单元,用于审核所述签名文件摘要的正确性,以确定所述应用程序文件的正确性。

如上所述的应用软件控制平台,还包括:应用商城服务器,所述应用商城服务器用于接收所述开发者服务器提供的应用软件,并当接受使用者终端提出的下载请求时,向使用者终端发布所述应用软件。

如上所述的应用软件控制平台,其中,

所述签名服务器还包括使用者签名模块,用于当接受应用商城服务器的使用者签名请求时,接收使用者证书,对所述使用者证书进行签名,并向所述应用商城服务器返回签名后的使用者证书;

所述应用商城服务器包括使用者证书模块,软件显示模块和软件发布模块;

所述使用者证书模块,用于当接受使用者终端的认证请求时,接收使用者申请信息,根据所述使用者申请信息生成使用者证书,将所述使用者签名请求和所述使用者证书提供给所述签名服务器,并将接收到的所述签名后的使用者证书提供给提出所述认证请求的开发者终端;

软件显示模块,用于当接收到应用软件时,将所述软件信息的介绍信息进行显示;

软件下载模块,用于根据所述签名后的使用者证书向所述使用者终端发布所述应用软件。

本发明提供一种开发者终端,包括:

申请模块,用于向开发者服务器提供申请信息,并接收所述开发者服务器返回的开发者证书和开发者服务器证书;

身份信息发送模块,用于根据所述返回的开发者证书和开发者服务器证书向开发者服务器提供身份信息;

应用软件发送模块,用于根据所述返回的开发者证书向开发者服务器提供应用软件。

如上所述的开发者终端,所述应用软件包括应用程序文件和签名文件,其中, 所述应用软件发送模块包括:

应用编程单元,用于开发并测试所述应用程序文件;

签名文件单元,用于根据所述开发者证书和所述应用程序文件生成所述签名文件;

软件包生成单元,用于将所述应用程序文件和签名文件进行打包,以生成所述应用软件。

软件发送单元,用于向所述开发者服务器提供所述应用软件。

如上所述的开发者终端,其中,所述签名文件单元包括:

摘要生成子单元,用于根据所述应用程序文件生成应用程序文件摘要;

摘要签名子单元,用于根据应用程序文件摘要生成签名文件摘要,并通过所述开发者证书对所述签名文件摘要进行签名,以形成所述签名文件。

本发明提供一种应用软件分发系统,其中,包括:本发明提供的应用软件控制平台和本发明提供的开发者终端。

本发明提供一种应用软件分发方法,包括:

当开发者服务器接受开发者终端提出的申请请求时,接收所述开发者终端提供的开发者申请信息,根据所述开发者申请信息生成开发者证书;

所述开发者服务器向签名服务器提出开发者签名请求,并将所述开发者证书提供给所述签名服务器;

当所述签名服务器接受所述开发者签名请求时,对接收到的开发者证书进行签名,并将签名后的开发者证书返回所述开发者服务器;

所述开发者服务器将所述签名后的开发者证书返回所述开发者终端,以指示所述开发者终端根据接收的所述开发者证书向所述开发者服务器发送身份信息和应用软件;

所述开发者服务器对接收到的身份信息和应用软件进行审核;

所述开发者服务器根据审核结果向应用商城服务器提供所述应用软件,以指示所述商城服务器根据使用者终端的请求向所述使用者终端发布所述应用软件。

如上所述的应用软件分发方法,所述开发者服务器根据所述开发者申请信息生成开发者证书之前,还包括:

所述开发者服务器向所述签名服务器提出开发者服务器签名请求,并将开发者服务器证书提供给所述签名服务器;

当所述签名服务器接受所述开发者服务器签名请求时,对接收到的所述开发者服务器证书进行签名,并将签名后的所述开发者服务器证书返回所述开发者服务器。

如上所述的应用软件分发方法,所述开发者服务器将所述签名后的开发者证书返回所述开发者终端之后,还包括:

所述开发者服务器将所述签名后的开发者服务器证书提供给所述开发者终端。

如上所述的应用软件分发方法,所述身份信息包括所述开发者证书和所述开发者服务器证书,其中,所述开发者服务器对所述身份信息进行审核具体为:

所述开发者服务器分别对所述开发者证书和所述开发者服务器证书进行审核。

如上所述的应用软件分发方法,所述应用软件包括应用程序文件和签名文件, 所述签名文件包括根据所述应用程序文件生成的签名文件摘要,其中,所述开发者服务器对所述应用软件进行审核具体为:

所述开发者服务器通过审核所述签名文件摘要的正确性,以确定所述应用程序文件的正确性。

如上所述的应用软件分发方法,其中,所述开发者服务器根据审核结果向应用商城服务器提供所述应用软件具体为:当所述身份信息和所述应用软件都通过审核时,向所述应用商城服务器提供所述应用软件。

如上所述的应用软件分发方法,其中,所述应用商城服务器根据使用者终端的请求向所述使用者终端发布所述应用软件包括:

当所述应用商城服务器接收到应用软件时,将所述软件信息的介绍信息进行显示;

当所述应用商城服务器接受使用者终端的软件申请请求时,接收使用者申请信息,根据所述使用者信息生成使用者证书,通过应用商城服务器证书对所述使用者证书进行签名,并将签名后的使用者证书提供给所述使用者终端;

所述应用商城服务器根据所述签名后的使用者证书向所述使用者终端发布所述应用软件。

本发明提供的应用软件控制平台、开发者终端、分发系统及方法,通过对开发者终端提供的身份信息和应用软件双重审核,提高了应用软件分发的安全性。

附图说明

图1为本发明实施例一提供的应用软件控制平台结构示意图;

图2为本发明实施例二提供的应用软件控制平台结构示意图;

图3为应用软件数据打包格式示意图;

图4为应用软件数据打包格式索引格式示意图;

图5为本发明实施例三提供的应用软件控制平台结构示意图;

图6为本发明实施例四提供的开发者终端结构示意图;

图7为本发明实施例六提供的应用软件分发方法流程图。

附图标记:

11-应用软件控制平台;         22-开发者终端;

12-签名服务器;               13-开发者服务器;

14-应用商城服务器;           121-开发者签名模块;

122-开发者服务器签名模块;    131-开发者证书模块;

132-开发者服务器证书模块;    133-身份审核模块;

134-应用软件审核模块;        135-软件发布模块;

1331-开发者证书审核单元;     1332-开发者服务器证书审核单元;

1341-摘要审核单元;           141-使用者证书模块;

142-软件显示模块;            143-软件下载模块;

221-申请模块;                222-身份信息发送模块;

223-应用软件发送模块;        2231-签名文件单元;

2232-应用编程单元;           2233-软件包生成单元;

2234-软件发送单元;           123-使用者签名模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在附图或说明书中,相似或相同的元件皆使用相同的附图标记。

应用软件控制平台实施例一

图1为本发明实施例一提供的应用软件控制平台结构示意图,如图1所示,该应用软件控制平台11包括签名服务器12和开发者服务器13。签名服务器12包括开发者签名模块121,用于当接受开发者服务器13的开发者签名请求时,接收开发者证书,对开发者证书进行签名,并向开发者服务器13返回签名后的开发者证书。开发者服务器13包括开发者证书模块131、身份审核模块133、应用软件审核模块134和软件发布模块135。开发者证书模块131用于当接受开发者终端的申请请求时,接收开发者申请信息,根据开发者申请信息生成开发者证书,将开发者签名请求和开发者证书提供给签名服务器12,具体提供给开发者签名模块121,并将接收到的签名后的开发者证书提供给提出申请请求的开发者终端,以指示开发者终端根据签名后的开发者证书发送身份信息和应用软件。身份审核模块133用于接收开发者终端提交的身份信息,并对身份信息进行审核。应用软件审核模块134用于接收开发者终端提交的应用软件,并对应用软件进行审核。软件发布模块135用于根据身份审核模块133和应用软件审核模块134的审核结果向应用商城服务器发布应用软件。

本实施例提供的应用软件控制平台11,通过签名服务器12的设置,对开发者证书进行签名,开发者终端根据签名后的开发者证书对身份信息和应用软件进行处理,开发者服务器13可以对接收到的身份信息和应用软件进行审核,当符合审核结果时,将应用软件推送到应用商城服务器以供使用者进行购买下载。开发者服务器13不仅对开发者终端提供的应用软件进行审核,还对开发者终端提供的身份信息进行审核,优选地,应用软件和身份信息都通过审核后才确定应用软件为安全的应用软件。开发者服务器13对应用软件和身份信息的双重审核,提高了应用软件分发的安全性。且开发者终端根据签名后的开发者证书来生成应用软件和身份信息,以保证开发者服务器13审核有据可依,进而避免在传递过程中应用软件被篡改。

在本实施例中,签名服务器12还可以包括开发者服务器签名模块122,用于当接受开发者服务器13的开发者服务器签名请求时,接收开发者服务器证书,对开发者服务器证书进行签名,并向开发者服务器13返回签名后的开发者服务器证书。开发者服务器13还可以包括开发者服务器证书模块132,用于将开发者服务器签名请求和开发者服务器证书提供给签名服务器12,具体提供给开发者服务器签名模块122,接收签名后的开发者服务器证书,并将签名后的开发者服务器证书提供给开发者终端。在本实施例中,签名服务器12既可以对开发者证书进行签名,也可以对开发者服务器证书进行签名,为应用软件控制平台11提供安全基础。

在本实施例中,签名服务器12和开发者服务器13可以一体设置,即开发者服务 器13中可以设置签名服务器12,对开发者证书和开发者服务器证书进行签名,保证开发者证书和开发者服务器证书的安全认证。

应用软件控制平台实施例二

图2为本发明实施例二提供的应用软件控制平台结构示意图,如图2所示,实施例二提供的应用软件控制平台是以实施例一提供的应用软件控制平台为基础的,在本实施例中,身份信息包括开发者证书和开发者服务器证书,身份审核模块133可以包括开发者证书审核单元1331和开发者服务器证书审核单元1332,开发者证书审核单元1331用于审核开发者证书的正确性,开发者服务器证书审核单元1332用于审核开发者服务器证书的正确性。通过审核开发者证书的正确性,确定开发者终端的身份是否可信,通过审核开发者服务器证书的正确性,确定开发者终端是否为该开发者服务器的注册开发者用户。优选地,当开发者证书和开发者服务器证书都通过审核时,确定身份信息是正确的。当安全级别设置为较低级别时,当开发者证书和开发者服务器证书其中之一通过审核就可以确定身份信息是正确的。应用软件具体可以包括应用程序文件和签名文件,签名文件可以包括根据应用程序文件生成的签名文件摘要,应用软件审核模块134包括摘要审核单元,用于审核签名文件摘要的正确性,以确定应用程序文件的正确性。

在本实施例中,身份审核模块133和应用软件审核模块134的结构可以根据身份信息和应用软件的内容来设置,只要可以达到对身份信息进行审核和对应用软件进行双重审核的目的即可,并不以本实施例为限。

应用软件控制平台的工作过程具体可以为:开发者通过开发者终端向开发者服务器13提出申请请求和开发者申请信息,两者可以同时提出,也可以先提出申请请求。申请请求具体可以为注册申请请求,开发者通过开发者终端向开发者服务器13提出注册申请请求,以注册成为开发者服务器13的开发者用户,如果开发者服务器13的开发者证书模块131检测到该开发者已经是该开发者服务器13的开发者用户,则拒绝开发者终端的注册申请请求,并提示开发者相关信息。开发者可以使用已经注册的开发者用户身份信息登录。如果开发者服务器13的开发者证书模块131检测到该开发者不是该开发者服务器13的开发者用户,则接受开发者终端的注册申请请求。开发者证书模块131根据提交的开发者信息通过预设证书生成算法生成开发者证书,开发者证书通常有对应开发者公钥和开发者私钥,开发者公钥包含在开发者证书中,开发者公钥和开发者私钥可以通过预定非对称密钥算法生成,预定非对称密钥算法可以采用ECC、RSA等算法。开发者公钥和开发者私钥可以由开发者终端生成,也可以由开发者服务器13生成,还可以由签名服务器12生成,当由开发者服务器13生成开发者公钥和开发者私钥时,需要将开发者公钥和开发者私钥提供给开发者终端,当由签名服务器12生成开发者公钥和开发者私钥时,需要将开发者公钥和开发者私钥分别提供给开发者服务器13和开发者终端。开发者服务器13将开发者签名请求和开发者证书提供给签名服务器12,签名服务器12的开发者签名模块121可以判断是否接受该开发者签名请求,如果该开发者服务器13是非受信开发者服务器,开发者签名模块121可以拒绝该开发者签名请求,并反馈错误信息。如果开发者签名模块121接受该开发者签名请求,则对开发者证书进行签名。开发者签名模块121将签名后的开发者证书返回给开发者服务器13的开发者证书模块131,开发者证书模块131将签名后的开发者证书返回给开发者终端。

签名服务器12的开发者签名模块121可以通过签名服务器12的根证书对应的私钥对开发者证书进行签名,具体可以根据以下签名方法对开发者证书进行签名:开发者签名模块121把开发者证书的内容作为输入源,按照预设摘要算法(例如,SHA-1算法),计算开发者证书的摘要,得到摘要A;通过签名服务器12的根证书对应的私钥,按照预设摘要签名算法(例如,ECC算法),对摘要A进行签名得到摘要B;开发者签名模块121把摘要B加入到开发者证书A的预设的位置,得到签名后的开发者证书。

签名后的开发者证书的内容具体可以包括:证书格式,可以采用X.509格式;证书编码方法,可以使用BASE64;签名算法,可以使用WAPI ECC算法;摘要算法,可以采用缩微图算法(SHA-1);证书序列号,可以是随机数,具体可以由签名服务器12生成;证书主题,可以包括国家标识、开发者类型、开发者终端的硬件标识、开发者的安全级别、开发者在开发者服务器13的账号等;证书的签名机构标识,也即签名服务器12的标识;证书摘要,用于作为开发者证书的依据。

开发者签名模块121也可以采用其他方式对开发者证书进行签名,可以根据安全需要来设定算法的难易程度,不以本实施例提供的签名方法为限。

签名服务器12的开发者服务器签名模块122对开发者服务器证书的签名方法可以与开发者签名模块121对开发者证书签名的签名方法相同。具体的,开发者服务器证书也为包含开发者服务器公钥的文件,开发者服务器公钥和开发者服务器私钥通过预定非对称密钥算法生成,可以由开发者服务器13生成,也可以由签名服务器12生成后再提供给开发者服务器13。开发者服务器证书模块132将接收到的签名后的开发者服务器证书提供给开发者终端。签名后的开发者服务器证书的内容形式与开发者证书的内容形式相似。签名服务器12也可以通过开发者服务器证书对应的开发者服务器私钥对开发者证书进行签名。

开发者终端根据接收到的签名后的开发者证书和签名后的开发者服务器证书生成身份信息,并根据签名后的开发者证书和开发完成并经过测试的应用程序文件生成应用软件,并将身份信息和应用软件向开发者服务器13提交,以供开发者服务器13进行审核。

开发者终端生成应用软件的过程具体可以为:开发者终端把整个或部分应用程序文件的内容作为输入源,按照预设摘要算法,生成应用程序文件摘要。也可以在这之前使用对称密钥应用预设对称加密算法对应用程序文件进行加密,对称加密算法可以为DES算法,开发者终端需要向开发者服务器13提供对称密钥,开发者终端还可以通过开发者服务器公钥对对称密钥进行加密,并把对称加密算法、加密后的对称密钥和编码方式包含在签名文件中,开发者服务器13可以通过开发者服务器私钥对加密过的对称密钥进行解密,以获得该对称密钥。如果应用程序文件被加密,则可以以加密后的应用程序文件作为计算应用程序文件摘要的输入源。开发者终端把应用程序文件摘要作为输入源,按预定摘要算法,生成签名文件摘要,然后开发者终端按预设加密算法,使用开发者证书对应的开发者私钥加密签名文件摘要,并把加密后的摘要作为新的签名文件摘要。优选地,应用软件控制平台和使用者终端使用的预设摘要算法一致,可以使用SHA-1算法,使用的预设加密算法一致,可以使用ECC算法。最后按预设签名文件生成规则生成签名文件。

签名文件的内容可以包括:

应用程序文件摘要相关的内容:应用程序摘要的编码方式、标识与摘要内容;

摘要算法相关的内容:摘要算法标识;

签名文件摘要相关的内容:签名文件摘要的编码方式和摘要内容。

如果应用程序文件被加密则签名文件中还包含对称密钥相关的信息:对称加密算法、加密后的对称密钥和编码方式。

签名文件具体可以使用XML文档格式,签名文件的描述方法,具体可以如下所示:

签名文件使用XML文档格式,UTF-8编码;

证书使用X509格式,BASE64编码;

摘要算法使用WAPI-SHA1算法,BASE64编码;

签名的加密算法使用ECC算法,BASE64编码。

本实施例提供了一种签名文件具体生成方法和格式,本领域技术人员也可以采用其他方式生成签名文件,以达到对应用程序文件审核的目的,不以本实施例为限。

开发者终端对签名文件和应用程序文件进行打包以生成应用软件,如图3所示,应用软件的打包格式具体可以包括四个部分:数据区、索引区、索引数量与版本号。

数据区依次存储数据包,例如,在打包应用软件时,数据区存储应用程序文件数据、签名文件数据。这些数据可以压缩,也可以不压缩。数据区内的数据包不分先后顺序;

索引区依次存储数据区内数据包的索引信息,每个索引具体由16个字节构成,如图4所示,依次存储数据包的类型(4字节)、数据包距整体数据包的文件头的字节偏移量(4字节)、数据包的字节长度(4字节)、保留字节(4字节)。

索引数量为索引的个数;

版本号为整体数据包的版本号。

开发者终端也可以采用其他方法生成应用软件包,生成软件包的方法为与应用软件控制平台约定的方法即可,不以本实施例为限。

开发者终端将身份信息和应用软件提供给开发者服务器13,开发者服务器13的身份审核模块133对身份信息进行审核,开发者服务器13的应用软件审核模块134对应用软件进行审核。开发者证书审核单元1331通过计算开发者证书的摘要来确定开发者证书的正确性,开发者服务器证书审核单元1332通过计算开发者证书的摘要来确定开发者服务器证书的正确性。应用软件审核模块134对应用软件进行审核的过程具体可以为:

应用软件审核模块134从签名文件中提取签名文件摘要A,应用软件审核模块134使用开发者公钥及预设摘要加密算法(例如,ECC)解密签名文件摘要A,得到解密后的签名文件摘要C。根据签名文件摘要C使用预设摘要算法(例如,SHA-1)计算应用程序文件摘要A。

开发者服务器13根据全部或部分应用程序数据,使用预定摘要算法和应用程序数据使用方法,计算应用程序文件摘要B。如果应用程序文件摘要A与应用程序文件摘要B不同,则认为应用程序文件被篡改,并进一步认为应用软件不正确。可以使用加 密后的应用程序文件数据,也可以使用未加密的应用程序文件数据计算应用程序文件摘要。开发者服务器13和开发者终端使用应用程序数据的方法相同,计算摘要的算法也相同。如果应用程序文件为加密文件,开发者服务器13可以使用对称密钥对应用程序文件进行解密。

对身份信息和应用软件审核的模块也可以具体设置在签名服务器12中,开发者服务器13则需要将接收到的身份信息和应用软件提供给签名服务器12,签名服务器12将审核结果反馈给开发者服务器13和开发者终端。审查合格的应用软件就可以发布到应用商城服务器以供使用者购买下载了。

应用软件控制平台实施例三

图5为本发明实施例三提供的应用软件控制平台结构示意图,如图5所示,实施例三提供的应用软件控制平台是以实施例一为基础的,该应用软件控制平台11还包括应用商城服务器14,应用商城服务器14用于接收开发者服务器13提供的应用软件,并当接受使用者终端提出的下载请求时,向使用者终端发布应用软件。签名服务器12还可以为应用商城服务器14提供统一的安全控制,签名服务器12还包括使用者签名模块123,用于当接受应用商城服务器的使用者签名请求时,接收使用者证书,对使用者证书进行签名,并向应用商城服务器14返回签名后的使用者证书。应用商城服务器14包括使用者证书模块141,软件显示模块142和软件下载模块143。使用者证书模块141用于当接受使用者终端的认证请求时,接收使用者申请信息,根据使用者申请信息生成使用者证书,将使用者签名请求和使用者证书提供给签名服务器12,并将接收到的签名后的使用者证书提供给提出认证请求的使用者终端。软件显示模块142用于当接收到应用软件时,将软件信息的介绍信息进行显示。软件下载模块143用于根据签名后的使用者证书向使用者终端发布应用软件。

具体的,使用者可以通过使用者终端注册成为应用商城服务器14的使用者用户,获得签名后的使用者证书,使用者证书也是包含使用者证书对应的使用者公钥的文件,使用者证书对应的使用者公钥和使用者私钥可以由应用商城服务器生成后提供给使用者终端,也可以由签名服务器生成后分别提供给应用商城服务器和使用者终端,还可以由使用者终端自己生成后,提供给应用商城服务器。应用商城服务器具体通过使用者证书对应的使用者公钥对应软软件进行加密,使用者终端再通过使用者证书对应的使用者私钥对下载的应用软件进行验证,以保证应用软件下载的安全性。

开发者终端实施例四

图6为本发明实施例四提供的开发者终端结构示意图,如图6所示,本实施例提供的开发者终端22可以与本发明任意实施例提供的应用软件控制平台配合使用,也可以与其他应用软件控制平台配合使用。开发者终端22包括申请模块221、身份信息发送模块222和应用软件发送模块223。申请模块221用于向开发者服务器提供申请信息,并接收开发者服务器返回的开发者证书和开发者服务器证书。身份信息发送模块222用于根据返回的开发者证书和开发者服务器证书向开发者服务器提供身份信息。应用软件发送模块223用于根据返回的开发者证书向开发者服务器提供应用软件。开发者终端22通过向开发者服务器发送身份信息和应用软件,开发者服务器可以对身份信息和应用软件进行双重审核,提高了应用程序文件的安全性。

在本实施例中,应用软件包括应用程序文件和签名文件,应用软件发送模块包括签名文件单元2231、应用编程单元2232、软件包生成单元2233和软件发送单元2234。应用编程单元2232用于开发并测试应用程序文件。签名文件单元2231用于根据开发者证书和应用程序文件生成签名文件。软件包生成单元2233用于将应用程序文件和签名文件进行打包,以生成应用软件。软件发送单元2234用于向开发者服务器提供应用软件。应用编程单元2232在对应用程序文件进行测试时通常会产生开发者终端的硬件标识,可以是相关开发者终端的CPU序列号、硬盘序列号、网络设备号、用户身份卡设备号等,或者由这些硬件设备号生成的摘要等。开发者终端的硬件标识号,用于在开发者终端测试时,应用安装引擎识别被测试应用是否可以安装到开发者终端的依据。开发和测试应用程序文件的终端也可以不同,如可以使用开发终端对应用程序文件进行开发,使用测试终端对应用程序文件进行测试,则要求由测试终端生成测试终端的硬件标识。签名文件单元2231包括摘要生成子单元和摘要签名子单元。摘要生成子单元用于根据应用程序文件生成应用程序文件摘要。摘要签名子单元,用于根据应用程序文件摘要生成签名文件摘要,并通过开发者证书对应的开发者私钥对签名文件摘要进行签名,以形成签名文件。

开发者终端22生成应用软件和身份信息的方法要根据与其相配合的开发者服务器共同约定,另一方面,如果开发者终端22不是开发者服务器的可信应用软件提供实体时,则会因约定规则不同而无法对开发者终端提供的应用软件和身份信息进行审核,也进一步提高了应用软件分发的安全性和可控性。

应用软件分发系统实施例五

本实施例提供的应用软件分发系统包括本发明任意实施例提供的应用软件控制平台和本发明任意实施例提供的开发者终端。

应用软件分发方法实施例六

图7为本发明实施例六提供的应用软件分发方法流程图,如图7所示:

步骤10、当开发者服务器接受开发者终端提出的申请请求时,接收开发者终端提供的开发者申请信息,根据开发者申请信息生成开发者证书;

步骤20、开发者服务器向签名服务器提出开发者签名请求,并将开发者证书提供给签名服务器;

步骤30、当签名服务器接受开发者签名请求时,对接收到的开发者证书进行签名,并将签名后的开发者证书返回开发者服务器;

步骤40、开发者服务器将签名后的开发者证书返回开发者终端,以指示开发者终端根据接收的开发者证书向开发者服务器发送身份信息和应用软件;

步骤50、开发者服务器对接收到的身份信息和应用软件进行审核;

步骤60、开发者服务器根据审核结果向应用商城服务器提供应用软件,商城服务器根据使用者终端的请求向使用者终端发布应用软件。

本实施例提供的软件分发方法,开发者服务器既要对提供软件的开发者终端的身份信息进行审核,以保证该开发者终端是可信的终端,还要对应用软件进行审核,以保证应用软件数据在传送过程中不被篡改,保证其正确性。开发者服务器将通过审核的应用软件向应用商城服务器发布,以供使用者通过使用者终端的从应用商城服务器下载 应用软件,使用者可以信任应用商城发布的应用软件。

在本实施例中,步骤10、开发者服务器根据开发者申请信息生成开发者证书之前还包括:

步骤70、开发者服务器向签名服务器提出开发者服务器签名请求,并将开发者服务器证书提供给签名服务器;

步骤80、当签名服务器接受开发者服务器签名请求时,对接收到的开发者服务器证书进行签名,并将签名后的开发者服务器证书返回开发者服务器。

开发者终端提供的身份信息可以既包括开发者证书也包括开发者服务器证书,以供开发者服务器对开发者服务器证书进行审核,如果从开发者终端接收到的开发者服务器证书与该开发者服务器提供的开发者服务器证书相同,则可认为开发者终端是该开发者服务器的可信实体。通过对开发者服务器证书的审核加强了对开发者终端的身份认证力度,进一步提高了安全性。

在本实施例中,步骤40、开发者服务器将签名后的开发者证书返回开发者终端之后还包括:

步骤90、开发者服务器将签名后的开发者服务器证书提供给开发者终端。

在本实施例中,身份信息包括开发者证书和开发者服务器证书,开发者服务器对身份信息进行审核具体为:开发者服务器分别对开发者证书和开发者服务器证书进行审核。

在本实施例中,应用软件包括应用程序文件和签名文件,签名文件包括根据应用程序文件生成的签名文件摘要,开发者服务器对应用软件进行审核具体为:开发者服务器通过审核签名文件摘要的正确性,以确定应用程序文件的正确性。

在本实施例中,开发者服务器根据审核结果向应用商城服务器提供应用软件具体为:当身份信息和应用软件都通过审核时,向应用商城服务器提供应用软件。应用商城服务器根据使用者终端的请求向使用者终端发布应用软件包括:

步骤801、当应用商城服务器接收到应用软件时,将软件信息的介绍信息进行显示;

步骤802、当应用商城服务器接受使用者终端的软件申请请求时,接收使用者申请信息,根据使用者信息生成使用者证书,通过应用商城服务器证书对使用者证书进行签名,并将签名后的使用者证书提供给使用者终端;

步骤803、当应用商城服务器根据签名后的使用者证书向使用者终端发布应用软件。

应用商城服务器显示接收到的应用软件的介绍信息,介绍信息可以包括应用软件的信息、开发者服务器的信息及购买信息等,以供使用者终端根据使用者需要购买并下载应用软件。

本发明提供的应用软件控制平台、开发者终端、分发系统及方法,通过对开发者终端提供的身份信息和应用软件进行双重审核,提高了应用软件分发过程的安全性。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同 替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

本文发布于:2023-04-14 14:22:05,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/86662.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图