CN102065077A - 终端应用软件分发方法及*** - Google Patents

终端应用软件分发方法及*** Download PDF

Info

Publication number
CN102065077A
CN102065077A CN2010105424416A CN201010542441A CN102065077A CN 102065077 A CN102065077 A CN 102065077A CN 2010105424416 A CN2010105424416 A CN 2010105424416A CN 201010542441 A CN201010542441 A CN 201010542441A CN 102065077 A CN102065077 A CN 102065077A
Authority
CN
China
Prior art keywords
developer
test
certificate
application
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010105424416A
Other languages
English (en)
Other versions
CN102065077B (zh
Inventor
加雄伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN 201010542441 priority Critical patent/CN102065077B/zh
Publication of CN102065077A publication Critical patent/CN102065077A/zh
Application granted granted Critical
Publication of CN102065077B publication Critical patent/CN102065077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种终端应用软件分发方法及***,其中方法包括:通过应用开发终端将开发者注册成为开发者社区的用户;由所述应用开发终端开发应用软件;由开发者测试终端测试所述应用软件;由所述应用开发终端对通过测试的应用软件进行打包并提交给所述开发者社区。本发明无需限定于特定的终端产品,具有较高的通用性及安全性,可以由运营商搭建可管理、可运营、安全的应用软件可控分发体系;并且,该方法从开发者开发和测试应用软件的阶段便可以控制应用软件的分发,因此具有较高的可控性。

Description

终端应用软件分发方法及***
技术领域
本发明涉及一种终端应用软件分发方法及***,属于智能终端技术领域。
背景技术
智能终端是指智能手机、电子书阅读器等终端设备。智能终端的安全问题主要包括用户数据(例如:联系人、账号、密码、照片等)的安全、终端资源(例如:摄像设备、录音设备、用户身份卡、网络连接设备、存储设备等)的安全、网络资源(例如:网上存储的联系人、照片等资源)的安全等。
智能终端的发展离不开智能终端上的应用软件的发展壮大。应用软件由各种各样的软件提供商或软件设计人员设计,出于安全考虑,用户需要可信的应用软件下载途径,针对这种情况,多家终端设备商、***制造商或运营商提供多种管控应用软件分发的技术方案。
例如,美国苹果公司的软件商店技术方案是解决应用软件分发的方案之一。苹果公司终端软件的开发者把开发的应用软件上传给苹果公司,苹果公司审核成功后,把应用软件放在软件商店中,供苹果公司终端用户下载和使用。苹果公司的智能终端用户信任苹果公司的审核结果,可以较安心的从苹果公司的软件商店中下载应用软件。
再例如,美国谷歌公司的软件商店技术方案也是解决应用软件分发的方案之一。与苹果公司的相关方案相比,谷歌公司不审核开发者的应用软件。因此,谷歌公司终端的用户并不能完全信任谷歌公司的软件商店上的应用软件。
现有的应用软件分发方案虽然在一定程度上解决了应用软件的分发问题,但上述方案只能用于特定公司的特定终端产品,而其它公司不能使用,因此不具有通用性,其使用范围非常有限。
发明内容
本发明提供一种终端应用软件分发方法及***,用以提高软件分发的通用性和安全性。
本发明一方面提供一种终端应用软件分发方法,其中包括:
通过应用开发终端将开发者注册成为开发者社区的用户;
由所述应用开发终端开发应用软件;
由开发者测试终端测试所述应用软件;
由所述应用开发终端对通过测试的应用软件进行打包并提交给所述开发者社区。
本发明另一方面提供一种终端应用软件分发***,其中包括:应用开发终端、开发者测试终端及开发者社区服务器,其中:
所述应用开发终端用于将开发者注册成为开发者社区的用户,并开发应用软件;
所述开发者测试终端用于测试所述应用软件;
所述应用开发终端还用于对通过所述测试的应用软件进行打包并提交给所述开发者社区服务器;
所述开发者社区服务器用于保存由应用开发终端提交的所述应用软件以供下载。
本发明无需限定于特定的终端产品,具有较高的通用性及安全性,可以由运营商搭建可管理、可运营、安全的应用软件可控分发体系;并且,该方法从开发者开发和测试应用软件的阶段便可以控制应用软件的分发,因此具有较高的可控性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述四层可控软件分发体系结构的分层示意图;
图2为本发明所述终端应用软件分发方法实施例的流程图;
图3为图2所示步骤100的具体步骤信令图;
图4A为图2所示步骤300的具体步骤流程图;
图4B为图4A所示步骤310的具体步骤流程图;
图4C为图4A所示步骤330的具体步骤流程图;
图4D为图4A所示步骤350的具体步骤流程图;
图5A为图4A所示步骤320中所述打包后形成的测试用安装包的数据格式示意图;
图5B为图5A所示数据格式中相应的索引格式示意图;
图6为本发明所述终端应用软件分发***实施例的结构示意图;
图7为图6所示应用开发终端10的一种可选结构示意图;
图8为图6所示开发者社区服务器30的一种可选结构示意图;
图9为图6所示应用开发终端10的另一种可选结构示意图;
图10为图6所示开发者测试终端20的可选结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先介绍为本实施例所述方法构建的四层可控软件分发体系结构,如图1所示,包括:
1、安全***层
该层主要包括签名服务***。签名服务***是应用可控分发安全体系中的基础安全设施。签名服务***为开发者社区提供证书与密钥管理服务、开发者证书签名和验证服务、应用软件签名与验证服务。
2、业务***层
该层主要包括开发者社区。在业务***层,可以有多个开发者社区。一个签名服务***可以同时为多个开发者社区提供安全控制服务。开发者社区管理开发者的信息,包括:开发者描述信息、开发者证书、开发者密钥、开发者终端信息、开发者级别信息等。
3、终端层
该层主要包括开发者测试终端和应用开发终端。开发者使用应用开发终端来开发终端应用软件,使用开发者测试终端测试开发的终端应用软件。开发者社区为开发者的应用开发终端提供应用安全控制服务。
4、用户层
该层主要包括终端应用软件的开发者和使用者(用户)。开发者可以有多个开发者测试终端或多个应用开发终端。使用者可以有多个用户终端。用户终端与开发者测试终端可以相同。开发者使用开发者应用开发终端开发终端应用软件,使用开发者测试终端测试应用软件。使用者在用户终端上使用终端应用软件。
在上述四层可控软件分发体系结构中,使用证书标识各个功能实体。使用签名服务***证书(也称为根证书)标识签名服务***。使用开发者社区证书标识开发者社区。使用开发者证书标识终端应用软件的开发者,使用用户证书标识终端应用软件的使用者。使用根证书签名开发者社区证书。使用开发者社区证书签名开发者证书。用户证书可以由根证书签名,也可以由开发者社区证书签名。具体可以使用常见的证书格式,例如X509。与证书对应的是,相关功能实体的公钥和私钥。签名服务***生成和管理自己的公钥和私钥。开发者社区、开发者、用户的证书对应的公钥和私钥可以由签名服务***生成,然后通过安全途径分发给相应的功能实体。其中,所有证书使用相同的密钥和摘要算法。在证书中,需要标识使用的密钥算法和摘要算法。
图2为本发明所述终端应用软件分发方法实施例的流程图,如图所示,该方法包括如下步骤:
步骤100,开发者通过应用开发终端注册成为开发者社区的用户。
通过本步骤,所述开发者可以得到开发者证书和密钥。
步骤200,由应用开发终端开发应用软件。
具体地,开发者可以使用应用开发终端的应用编程工具编辑、编译、链接和测试应用软件,并使用应用开发终端编辑和测试能力文件。
步骤300,由开发者测试终端测试应用软件。
具体地,开发者在开发者测试终端上测试应用软件之前,或者向开发者社区提交应用软件之前,可以先对应用软件打包生成测试用安装包,然后把测试用安装包推送到开发者测试终端或者开发者社区。该测试用安装包中包含应用软件、能力文件和签名文件。
步骤400,由应用开发终端对通过测试的应用软件进行打包并提交给开发者社区。
此后,用户终端可以到相应的开发者社区下载获取应用软件,以实现终端应用软件的分发。
本实施例所述终端应用软件的分发方法无需限定于特定的终端产品,具有较高的通用性及安全性,可以由运营商搭建可管理、可运营、安全的应用软件可控分发体系;并且,该方法从开发者开发和测试应用软件的阶段便可以控制应用软件的分发,因此具有较高的可控性。
如图3所示,上述步骤100可以具体包括如下步骤:
步骤101,开发者向应用开发终端发送注册申请。
步骤102,应用开发终端根据约定的加密算法生成证书申请信息。
其中,所述证书申请信息包括开发者名称、开发者描述、公钥、私钥、开发者测试终端的硬件标识等信息。所述开发者测试终端的硬件标识可以是相关终端的CPU序列号、硬盘序列号、网络设备号、用户身份卡设备号等,或者由这些硬件设备号生成的摘要等,用于在开发者测试终端测试时,应用安装引擎识别被测试应用是否可以安装到开发者测试终端的依据。因此,要求应用开发终端与开发者测试终端的应用安装引擎使用相同的算法生成硬件标识号。开发者证书对应的公钥与私钥可以由签名服务***生成,然后通过安全途径分发给开发者应用开发终端。所述约定的加密算法可以采用椭圆曲线密码编码(Elliptic Curves Cryptography,简称:ECC)算法及公钥加密算法(RSA)等算法,这些算法可以由签名服务***约定。
步骤103,应用开发终端向开发者社区发送包含上述证书申请信息的证书申请。
步骤104,开发者社区根据所述证书申请判断是否接受开发者的注册申请,如果接受,则根据所述证书申请信息及与签名服务***的约定生成开发者证书,否则转至步骤108。
其中,所述开发者证书的内容至少包括:
1)证书格式与版本,可以采用X.509格式;
2)证书编码方法,可以使用BASE64编码方式;
3)签名算法,可以使用无线局域网鉴别和保密基础结构(Wireless LANAuthentication and Privacy Infrastructure,简称:WAPI)ECC算法;
4)摘要算法,可以采用缩微图算法(SHA-1);
5)证书序列号,由签名服务***生成,可以是随机数;
6)证书主题,可以包括国家标识、开发者类型、开发者测试终端的硬件标识串(可以多个)、开发者的安全级别、开发者在开发者社区的账号等,为了便于说明,在本实施例中将开发者证书中包含的上述开发者测试终端的硬件标识串简称为第一硬件标识串;
7)证书的签名机构标识,也即开发者社区的标识;
8)证书摘要,用于检测开发者证书。
开发者证书对应的公钥存储在开发者证书中。开发者证书对应的私钥存储在应用开发终端的安全存储地点,并可以以加密的方式存储。应用开发终端提供安全存储和访问开发者证书对应的私钥的方法和设施。
步骤105,开发者社区请求签名服务***签名开发者证书。
步骤106,签名服务***对开发者证书进行签名,并将签名后的开发者证书反馈给开发者社区。
其中,签名服务***可以使用开发者社区证书及对应的私钥签名开发者证书,也可以使用根证书及对应的私钥签名开发者证书。如果由签名服务***生成开发者证书对应的公钥和私钥,则可以一并把所述公钥和私钥反馈给开发者社区。
具体的签名过程可以包括:签名服务***根据开发者社区提供的证书申请信息生成开发者证书A;签名服务***把开发者证书A的内容作为输入源,按约定的摘要算法(例如,SHA-1)计算开发者证书的摘要,得到摘要A;签名服务***使用开发者社区证书对应的私钥(或者根证书对应的私钥)按约定的摘要签名算法(例如,ECC)加密摘要A得到摘要B;签名服务***把摘要B加入到开发者证书A的约定的地方,得到开发者证书B。此时,开发者证书B即是签名后的开发者证书。
步骤107,开发者社区存储签名后的开发者证书、开发者公钥等信息。
如果由签名服务***生成开发者证书对应的公钥和私钥,则开发者社区也需要存储所述开发者私钥。
步骤108,开发者社区反馈证书申请处理结果给应用开发终端。
具体地,如果开发者已注册并已有开发者证书,则在步骤104中的开发者社区拒绝开发者的证书申请,相应地在本步骤中的证书申请处理结果则表明证书申请失败;如果通过步骤105~107成功申请到证书,则在本步骤中的证书申请处理结果则表明证书申请成功。
步骤109,应用开发终端存储开发者社区的证书申请处理结果。
如果开发者社区接受开发者的证书申请,则存储开发者证书以及相应的公钥与私钥等信息。
步骤110,应用开发终端向开发者反馈注册申请处理结果。
具体地,如果证书申请成功,则该注册申请处理结果为注册申请成功;如果证书申请失败,则该注册申请处理结果为注册申请失败。
如图4A所示,上述步骤300可以具体包括如下步骤:
步骤310,应用开发终端根据所述应用软件生成签名文件。
具体地,可以通过应用开发终端的签名打包工具根据约定的规则,以及应用软件、能力文件、开发者证书、开发者私钥等信息,生成签名文件。签名文件的内容至少包括:
1)开发者证书相关的内容:开发者证书的类型、开发者证书的编码方式、开发者证书内容,开发者证书作为签名证书;
2)开发者社区证书相关的内容:开发者社区证书的类型、开发者社区证书的编码方式、开发者社区证书内容,开发者社区证书作为可信任的证书;
3)应用软件摘要相关的内容:应用软件摘要的编码方式、标识与摘要内容;
4)能力文件摘要相关的内容:能力文件摘要的编码方式、标识与摘要内容;
5)摘要算法相关的内容:摘要算法标识,签名文件中使用的摘要算法相同;
6)签名文件摘要相关的内容:签名文件摘要的编码方式、摘要内容。
签名文件可以使用可扩展标记语言(Extens ible Markup Language,简称:XML)文档格式。在具体实施例中,可以使用下表中的描述方法,如下所示:
1)签名文件使用XML文档格式,UTF-8编码;
2)证书使用X509格式,BASE64编码;
3)摘要算法使用WAPI-SHA1算法,BASE64编码;
4)签名的加密算法使用ECC算法,BASE 64编码。
具体编码内容如下:
<?xml version=″1.0″encoding=″utf-8″?>
<!--开发者证书-->
<SignCert type=″x509″encoding=″base64″>......</SignCert>
<!--开发者社区证书-->
<TrustCert type=″x509″encoding=″base64″>......</TrustCert>
<!--应用软件摘要与能力文件摘要-->
<Digests encoding=″base64″>
<DigestValue name=″application″>......</DigestValue>
<DigestValue name=″menifest″>......</DigestValue>
</Digests>
<!--摘要算法-->
<Algorithm name=″WAPI-SHA1″/>
<!--签名文件摘要-->
<Signature encoding=″base64″algorithm=”ECC  ”
>......</Signature>
</Signed>
步骤320,根据所述签名文件生成测试用安装包。
具体地,应用开发终端的签名打包工具把应用软件、能力文件、签名文件按约定的规则组合成一个文件,组合的文件称为应用软件包,在测试时,也称为测试用安装包。该测试用安装包存储的数据可以依次为:应用软件数据包、能力文件数据包、签名文件数据包、应用软件数据包索引、能力文件数据包索引、签名文件数据包索引、索引数量、版本号。
打包后形成的测试用安装包的数据格式如图5A所示,其相应的索引格式如图5B所示。该数据格式既适用于打包应用软件,也适用于打包授权许可文件。
如图5A所示,数据被打包后,整体数据包分为四个部分:数据区、索引区、索引数量与版本号。其中:数据区依次存储数据包,例如,在打包应用软件时,数据区存储应用软件数据、能力文件数据、签名文件数据。这些数据可以压缩,也可以不压缩。数据区内的数据包不分先后顺序;索引区依次存储数据区内数据包的索引信息,每个索引由16个字节构成,如图5B所示,依次存储数据包的类型(4字节)、数据包距整体数据包的文件头的字节偏移量(4字节)、数据包的字节长度(4字节)、保留字节(4字节)。数据包的类型可以根据业务需要定义,例如,数据包可以是应用软件、能力文件、签名文件、购买信息等;索引数量存储整体数据包中包含的索引的个数;版本号存储整体数据包的版本号。
步骤330,根据所述测试用安装包生成测试用授权许可文件。
具体地,可以由应用开发终端的测试授权工具生成上述测试用授权许可文件。该测试用授权许可文件的内容至少包括:
1)开发者证书相关的内容:开发者证书的类型、开发者证书的编码方式、开发者证书内容,开发者证书作为签名证书;
2)购买信息的摘要签名相关的内容:购买信息摘要的编码方式、标识与摘要内容;
3)摘要算法相关的内容:摘要算法标识,签名文件中使用的摘要算法相同。
授权许可文件可以使用XML文档格式。在具体实施例中,可以使用下表中的描述方法,如下所示:
1)授权许可文件使用XML文档格式,UTF-8编码;
2)证书使用X509格式,BASE64编码;
3)摘要算法使用WAPI-SHA1算法,BASE64编码;
4)签名的加密算法使用ECC算法,BASE64编码。
具体编码内容如下:
<?xml version=″1.0″encoding=″utf-8″?>
<!--开发者证书-->
<SignCert type=″x509″encoding=″base64″>......</SignCert>
<!--购买信息签名-->
<Digests encoding=″base64″algorithm=”ECC”>
<DigestValue name=″license″>......</DigestValue>
</Digests>
<!--摘要算法-->
<Algorithm name=″WAPI-SHA1″/>
</Signed>
步骤340,将所述测试用安装包及所述测试用授权许可文件传输给所述开发者测试终端。
具体地,可以通过推送或复制等方式传输给开发者测试终端。
步骤350,当确认所述授权许可文件的合法性及有效性后,在所述开发者测试终端上安装并测试所述测试用安装包。
具体地,可以由开发者测试终端的应用安装引擎安装所述测试用安装包并验证开发者证书。其中,应用安装引擎通过授权许可文件中的签名证书判断授权许可文件是由开发者签名,还是由其它功能实体签名。签名证书中包含证书的类型。如果签名证书不由开发者签名,则不认为是测试用安装。测试用授权许可文件中的签名证书与测试用安装包签名文件中的签名证书应该相同。在签名证书中,包含证书签发机构的信息。应用安装引擎通过所述签发机构验证所述开发者证书。具体可以通过验证开发者证书中的签名来确认所述授权许可文件的合法性及有效性。
如图4B所示,上述步骤310可以包括:
步骤311,生成应用软件的摘要。
具体可以把整个或部分应用软件的内容作为输入源,按约定的摘要算法,生成应用软件摘要。
步骤312,生成所述应用软件相应能力文件的摘要。
具体可以把整个或部分能力文件的内容作为输入源,按约定的摘要算法,生成能力文件摘要。
步骤313,计算所述应用软件的摘要与所述能力文件的摘要的签名信息。
具体可以把应用软件的摘要与能力文件的摘要串连作为输入源,按约定的摘要算法,生成签名文件摘要,然后,按约定的加密算法,使用开发者的私钥加密签名文件摘要,并把加密后的摘要作为新的签名文件摘要。在整个应用可控分发体系中,摘要算法一致,可以使用SHA-1算法。在整个应用可控分发体系中,加密算法一致,可以使用ECC算法。
步骤314,根据所述签名信息生成签名文件。
如图4C所示,上述步骤330可以包括:
步骤331,根据所述测试用安装包生成购买信息。
其中,该购买信息也可称为使用信息。
步骤332,按约定的摘要算法及摘要加密算法,生成加密后的所述购买信息的摘要。
具体地,根据购买信息的部分或全部内容作为输入源,按约定的摘要算法,生成购买信息摘要,然后按约定的摘要加密算法,使用开发者的私钥加密购买信息摘要,并把加密后的购买信息摘要作为购买信息的摘要。
步骤333,根据所述购买信息的摘要按约定的规则生成测试用授权许可文件。
如图4D所示,上述步骤350可以包括:
步骤351,从所述测试用安装包中分离出应用软件、能力文件和签名文件,并找到相应的安装包标识。
其中,检查测试用安装包以及分离测试用安装包的内容,与前述签名应用软件,以及打包应用软件的过程相同,但顺序相反。所述安装包标识由应用开发终端的应用编程工具生成,可以采用全局用户标识(GUI)方式生成,以保证安装包标识的唯一性。
步骤352,根据所述安装包标识查找相应的测试用授权许可文件。
其中,测试用安装包和测试用授权许可文件可以放在同一个目录,并使用相同的名字,但具有不同的扩展名。应用安装引擎在查找测试用授权许可文件时,可以直接在测试用安装包所在的目录查找相同名字的测试用授权许可文件。
步骤353,对所述测试用授权许可文件进行检查,当该测试用授权许可文件中的签名证书与所述签名文件中的签名证书相同且均为开发者证书时,则继续执行步骤354;否则执行步骤357。
具体地,可以检查该测试用授权许可文件是否完整、一致和有效,以及是否合法。其中,检查该测试用授权许可文件的方法,与签名该测试用授权许可文件的过程相同,但执行顺序相反。
步骤354,从所述开发者证书中分离出第一硬件标识串,并获取所述开发者测试终端的第二硬件标识串。
其中,具体获取步骤与图3所示过程相似,此处不再赘述。
步骤355,判断所述第一硬件标识串与所述第二硬件标识串是否匹配,当不匹配时,则表明该测试用安装包不能在该开发者测试终端中安装,导致安装失败,执行步骤357;否则继续执行步骤356。
步骤356,安装所述应用软件及能力文件。
其中,安装应用软件的具体方法此处不做限定。安装能力文件时,要将能力文件或其容复制到约定的地方。
步骤357,显示安装结果。
如果安装成功,则显示测试成功的安装结果;如果安装失败,则显示测试失败的安装结果。
图6为本发明所述终端应用软件分发***实施例的结构示意图,该***能够实现上述各方法实施例所述的方法。如图所示,该***至少包括:应用开发终端10、开发者测试终端20及开发者社区服务器30,其工作原理如下:
开发者使用通过所述应用开发终端10将开发者注册成为开发者社区的用户,并开发应用软件;通过本步骤,可以得到开发者证书和密钥,具体地,开发者可以使用应用开发终端10的应用编程工具编辑、编译、链接和测试应用软件,并使用应用开发终端编辑和测试能力文件。
开发者通过开发者测试终端20测试所述应用软件。具体地,开发者在开发者测试终端上测试应用软件之前,或者向开发者社区提交应用软件之前,可以先对应用软件打包生成测试用安装包,然后把测试用安装包推送到开发者测试终端或者开发者社区。该测试用安装包中包含应用软件、能力文件和签名文件。
此后,所述开发者还通过应用开发终端10对通过所述测试的应用软件进行打包并提交给所述开发者社区服务器30,由该开发者社区服务器30保存由应用开发终端10提交的所述应用软件以供用户终端下载。从而实现终端应用软件的分发。
另外,如图6所示,所述***还可以进一步包括签名服务***40;如图7所示,所述应用开发终端10可以具体包括:加密模块11、证书申请模块12、存储模块13及结果反馈模块14;如图8所示,所述开发者社区服务器30包括:证书生成模块31及证书反馈模块32,其注册过程的工作原理说明如下:
当所述应用开发终端10接收到来自于开发者的注册申请后,应用开发终端10的加密模块11根据约定的加密算法生成证书申请信息,有关证书申请信息的说明可参见上述步骤102的相关说明,此处不再赘述;证书申请模块12向所述开发者社区服务器30发送包含所述证书申请信息的证书申请;所述开发者社区服务器30中的证书生成模块31根据所述证书申请信息及与签名服务***40的约定生成开发者证书,通过所述签名服务***40对证书生成模块31的所述开发者证书进行签名后,由证书反馈模块32将所述签名服务***40签名后的开发者证书反馈给所述应用开发终端10。
此后,应用开发终端10的存储模块13存储来自于所述开发者社区服务器的开发者证书,并通过结果反馈模块14向所述开发者社区服务器30反馈注册申请处理结果,从而完成注册过程。
如图9所示,所述应用开发终端10可以具体包括:签名文件生成模块15、安装包生成模块16、许可文件生成模块17及传输模块18;如图10所示,所述开发者测试终端20包括:分离模块21、查找模块22、检查模块23、标识串处理模块24、判断模块25和安装模块26。对应用软件的测试过程说明如下:
应用开发终端10中的签名文件生成模块15根据所述应用软件生成签名文件。具体地,可以通过应用开发终端的签名打包工具根据约定的规则,以及应用软件、能力文件、开发者证书、开发者私钥等信息,生成签名文件。有关签名文件的内容可参见上述步骤310的相关说明,此处不再赘述。
安装包生成模块16根据签名文件生成模块15生成的所述签名文件生成测试用安装包。有关该测试用安装包可以参考上述步骤320的相关说明,此处不再赘述。许可文件生成模块17根据安装包生成模块生成的所述测试用安装包生成测试用授权许可文件。有关该测试用授权许可文件可以参考上述步骤330的相关说明,此处不再赘述。
传输模块18将安装包生成模块16生成的所述测试用安装包及许可文件生成模块17生成的所述测试用授权许可文件传输给所述开发者测试终端20。
此后,该开发者测试终端20中的分离模块21从所述测试用安装包中分离出应用软件、能力文件和签名文件,并找到相应的安装包标识,其中,检查测试用安装包以及分离测试用安装包的内容,与前述签名应用软件,以及打包应用软件的过程相同,但顺序相反。所述安装包标识由应用开发终端的应用编程工具生成,可以采用全局用户标识(GUI)方式生成,以保证安装包标识的唯一性。
查找模块22根据分离模块21分离出的所述安装包标识查找相应的测试用授权许可文件。其中,测试用安装包和测试用授权许可文件可以放在同一个目录,并使用相同的名字,但具有不同的扩展名。应用安装引擎在查找测试用授权许可文件时,可以直接在测试用安装包所在的目录查找相同名字的测试用授权许可文件。
检查模块23对所述测试用授权许可文件进行检查;当检查模块23检查出所述测试用授权许可文件中的签名证书与所述签名文件中的签名证书相同且均为开发者证书时,由标识串处理模块24从所述开发者证书中分离出第一硬件标识串,并获取所述开发者测试终端的第二硬件标识串。具体地,可以检查该测试用授权许可文件是否完整、一致和有效,以及是否合法。其中,检查该测试用授权许可文件的方法,与签名该测试用授权许可文件的过程相同,但执行顺序相反。
判断模块25判断所述第一硬件标识串与所述第二硬件标识串是否匹配,当判断模块25判断出所述第一硬件标识串与所述第二硬件标识串匹配时,由安装模块26在开发者测试终端20上安装所述应用软件及能力文件,以便进行测试。
本实施例所述终端应用软件的分发***无需限定于特定的终端产品,具有较高的通用性及安全性,可以由运营商搭建可管理、可运营、安全的应用软件可控分发体系;并且,该方法从开发者开发和测试应用软件的阶段便可以控制应用软件的分发,因此具有较高的可控性。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种终端应用软件分发方法,其特征在于包括:
通过应用开发终端将开发者注册成为开发者社区的用户;
由所述应用开发终端开发应用软件;
由开发者测试终端测试所述应用软件;
由所述应用开发终端对通过测试的应用软件进行打包并提交给所述开发者社区。
2.根据权利要求1所述的方法,其特征在于所述通过应用开发终端将开发者注册成为开发者社区的用户包括:
所述应用开发终端接收到来自于开发者的注册申请后,根据约定的加密算法生成证书申请信息,并向开发者社区发送包含所述证书申请信息的证书申请;
所述开发者社区根据所述证书申请信息及与签名服务***的约定生成开发者证书;
所述签名服务***对开发者证书进行签名;
所述开发者社区将签名后的开发者证书反馈给所述应用开发终端;
所述应用开发终端存储所述开发者证书并向所述开发者社区反馈注册申请处理结果。
3.根据权利要求1所述的方法,其特征在于所述由开发者测试终端测试所述应用软件包括:
所述应用开发终端根据所述应用软件生成签名文件;
根据所述签名文件生成测试用安装包;
根据所述测试用安装包生成测试用授权许可文件;
将所述测试用安装包及所述测试用授权许可文件传输给所述开发者测试终端;
当确认所述授权许可文件的合法性及有效性后,在所述开发者测试终端上安装并测试所述测试用安装包。
4.根据权利要求3所述的方法,其特征在于所述应用开发终端根据所述应用软件生成签名文件包括:
生成所述应用软件的摘要;
生成所述应用软件相应能力文件的摘要;
计算所述应用软件的摘要与所述能力文件的摘要的签名信息;
根据所述签名信息生成签名文件。
5.根据权利要求3所述的方法,其特征在于所述根据所述测试用安装包生成测试用授权许可文件包括:
根据所述测试用安装包生成购买信息;
按约定的摘要算法及摘要加密算法,生成加密后的所述购买信息的摘要;
根据所述购买信息的摘要按约定的规则生成所述测试用授权许可文件。
6.根据权利要求3所述的方法,其特征在于所述在所述开发者测试终端上安装并测试所述测试用安装包包括:
从所述测试用安装包中分离出应用软件、能力文件和签名文件,并找到相应的安装包标识;
根据所述安装包标识查找相应的测试用授权许可文件;
对所述测试用授权许可文件进行检查,当该测试用授权许可文件中的签名证书与所述签名文件中的签名证书相同且均为开发者证书时,从所述开发者证书中分离出第一硬件标识串,并获取所述开发者测试终端的第二硬件标识串;
判断所述第一硬件标识串与所述第二硬件标识串是否匹配,当匹配时,安装所述应用软件及能力文件。
7.一种终端应用软件分发***,其特征在于包括应用开发终端、开发者测试终端及开发者社区服务器,其中:
所述应用开发终端用于将开发者注册成为开发者社区的用户,并开发应用软件;
所述开发者测试终端用于测试所述应用软件;
所述应用开发终端还用于对通过所述测试的应用软件进行打包并提交给所述开发者社区服务器;
所述开发者社区服务器用于保存由应用开发终端提交的所述应用软件以供下载。
8.根据权利要求7所述的***,其特征在于所述***还包括签名服务***,其中:
所述应用开发终端包括:
加密模块,用于当所述应用开发终端接收到来自于开发者的注册申请后,根据约定的加密算法生成证书申请信息;
证书申请模块,用于向所述开发者社区服务器发送包含所述证书申请信息的证书申请;
存储模块,用于存储来自于所述开发者社区服务器的开发者证书;
结果反馈模块,用于向所述开发者社区服务器反馈注册申请处理结果;
所述开发者社区服务器包括:
证书生成模块,用于根据所述证书申请信息及与签名服务***的约定生成开发者证书;
证书反馈模块,用于将所述签名服务***签名后的开发者证书反馈给所述应用开发终端;
所述签名服务***用于对证书生成模块生成的所述开发者证书进行签名。
9.根据权利要求7所述的***,其特征在于所述应用开发终端包括:
签名文件生成模块,用于根据所述应用软件生成签名文件;
安装包生成模块,用于根据签名文件生成模块生成的所述签名文件生成测试用安装包;
许可文件生成模块,用于根据安装包生成模块生成的所述测试用安装包生成测试用授权许可文件;
传输模块,用于将安装包生成模块生成的所述测试用安装包及许可文件生成模块生成的所述测试用授权许可文件传输给所述开发者测试终端。
10.根据权利要求9所述的***,其特征在于所述开发者测试终端包括:
分离模块,用于从所述测试用安装包中分离出应用软件、能力文件和签名文件,并找到相应的安装包标识;
查找模块,用于根据分离模块分离出的所述安装包标识查找相应的测试用授权许可文件;
检查模块,用于对所述测试用授权许可文件进行检查;
标识串处理模块,用于当检查模块检查出所述测试用授权许可文件中的签名证书与所述签名文件中的签名证书相同且均为开发者证书时,从所述开发者证书中分离出第一硬件标识串,并获取所述开发者测试终端的第二硬件标识串;
判断模块,用于判断所述第一硬件标识串与所述第二硬件标识串是否匹配;
安装模块,用于判断模块判断出所述第一硬件标识串与所述第二硬件标识串匹配时,安装所述应用软件及能力文件。
CN 201010542441 2010-11-11 2010-11-11 终端应用软件分发方法及*** Active CN102065077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010542441 CN102065077B (zh) 2010-11-11 2010-11-11 终端应用软件分发方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010542441 CN102065077B (zh) 2010-11-11 2010-11-11 终端应用软件分发方法及***

Publications (2)

Publication Number Publication Date
CN102065077A true CN102065077A (zh) 2011-05-18
CN102065077B CN102065077B (zh) 2013-12-18

Family

ID=44000178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010542441 Active CN102065077B (zh) 2010-11-11 2010-11-11 终端应用软件分发方法及***

Country Status (1)

Country Link
CN (1) CN102065077B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271130A (zh) * 2011-07-22 2011-12-07 四川长虹电器股份有限公司 实现软件安全交付及分发的方法
CN102546604A (zh) * 2011-12-22 2012-07-04 四川长虹电器股份有限公司 智能电视应用程序安全控制方法
CN103106140A (zh) * 2013-01-24 2013-05-15 Tcl集团股份有限公司 智能显示设备测试信息显示方法
CN103198250A (zh) * 2013-03-11 2013-07-10 青岛海信传媒网络技术有限公司 智能电视应用程序的审核方法
CN103207943A (zh) * 2012-01-11 2013-07-17 磨相软件公司 基于网络的平台***
CN103235906A (zh) * 2013-03-27 2013-08-07 广东欧珀移动通信有限公司 一种应用程序加密、解密方法及加密、解密装置
CN104063668A (zh) * 2013-03-21 2014-09-24 深圳富泰宏精密工业有限公司 程序安装包签名***及方法
CN105487908A (zh) * 2015-12-22 2016-04-13 中软信息***工程有限公司 一种安全的应用软件生态服务方法
CN107864038A (zh) * 2017-10-25 2018-03-30 中国平安人寿保险股份有限公司 证书管理方法、装置、设备及计算机可读存储介质
CN109309645A (zh) * 2017-07-26 2019-02-05 中国人民解放军装备学院 一种软件分发安全保护方法
CN110865802A (zh) * 2019-11-28 2020-03-06 山东浪潮商用***有限公司 一种基于微服务架构的税务接口快速开发方法
CN111046376A (zh) * 2018-10-11 2020-04-21 中国人民解放军战略支援部队航天工程大学 基于安装包的分发审核方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000065763A2 (en) * 1999-04-26 2000-11-02 Dodots, Inc. Apparatus and method for delivering internet content
US6226784B1 (en) * 1998-10-14 2001-05-01 Mci Communications Corporation Reliable and repeatable process for specifying developing distributing and monitoring a software system in a dynamic environment
CN101339595A (zh) * 2008-05-20 2009-01-07 北京深思洛克数据保护中心 一种通过使用许可控制软件使用的装置
CN101404053A (zh) * 2008-05-04 2009-04-08 北京深思洛克软件技术股份有限公司 一种防止重复发放软件许可的方法
CN101789967A (zh) * 2010-01-12 2010-07-28 重庆大学 基于电子商务的远程测试服务***及其使用方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226784B1 (en) * 1998-10-14 2001-05-01 Mci Communications Corporation Reliable and repeatable process for specifying developing distributing and monitoring a software system in a dynamic environment
WO2000065763A2 (en) * 1999-04-26 2000-11-02 Dodots, Inc. Apparatus and method for delivering internet content
CN101404053A (zh) * 2008-05-04 2009-04-08 北京深思洛克软件技术股份有限公司 一种防止重复发放软件许可的方法
CN101339595A (zh) * 2008-05-20 2009-01-07 北京深思洛克数据保护中心 一种通过使用许可控制软件使用的装置
CN101789967A (zh) * 2010-01-12 2010-07-28 重庆大学 基于电子商务的远程测试服务***及其使用方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
孙青,蒋伟,陈波: "《代码签名技术及应用探讨》", 《电脑编程技巧与维护》 *
康金辉: "《基于数字校园网的客户端软件分发方法》", 《陕西理工学院学报(自然科学版)》 *
黄君毅: "《基于PKI/CA架构的加密签名***设计与实现》", 《万方数据-中山大学硕士学位论文》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271130A (zh) * 2011-07-22 2011-12-07 四川长虹电器股份有限公司 实现软件安全交付及分发的方法
CN102271130B (zh) * 2011-07-22 2014-09-10 四川长虹电器股份有限公司 实现软件安全交付及分发的方法
CN102546604A (zh) * 2011-12-22 2012-07-04 四川长虹电器股份有限公司 智能电视应用程序安全控制方法
CN102546604B (zh) * 2011-12-22 2014-12-24 四川长虹电器股份有限公司 智能电视应用程序安全控制方法
CN103207943A (zh) * 2012-01-11 2013-07-17 磨相软件公司 基于网络的平台***
CN103106140A (zh) * 2013-01-24 2013-05-15 Tcl集团股份有限公司 智能显示设备测试信息显示方法
CN103198250A (zh) * 2013-03-11 2013-07-10 青岛海信传媒网络技术有限公司 智能电视应用程序的审核方法
CN104063668A (zh) * 2013-03-21 2014-09-24 深圳富泰宏精密工业有限公司 程序安装包签名***及方法
CN104063668B (zh) * 2013-03-21 2018-07-27 深圳富泰宏精密工业有限公司 程序安装包签名***及方法
CN103235906A (zh) * 2013-03-27 2013-08-07 广东欧珀移动通信有限公司 一种应用程序加密、解密方法及加密、解密装置
CN105487908A (zh) * 2015-12-22 2016-04-13 中软信息***工程有限公司 一种安全的应用软件生态服务方法
CN105487908B (zh) * 2015-12-22 2020-05-19 中软信息***工程有限公司 一种安全的应用软件生态服务方法
CN109309645A (zh) * 2017-07-26 2019-02-05 中国人民解放军装备学院 一种软件分发安全保护方法
CN107864038A (zh) * 2017-10-25 2018-03-30 中国平安人寿保险股份有限公司 证书管理方法、装置、设备及计算机可读存储介质
CN111046376A (zh) * 2018-10-11 2020-04-21 中国人民解放军战略支援部队航天工程大学 基于安装包的分发审核方法及装置
CN111046376B (zh) * 2018-10-11 2022-05-17 中国人民解放军战略支援部队航天工程大学 基于安装包的分发审核方法及装置
CN110865802A (zh) * 2019-11-28 2020-03-06 山东浪潮商用***有限公司 一种基于微服务架构的税务接口快速开发方法

Also Published As

Publication number Publication date
CN102065077B (zh) 2013-12-18

Similar Documents

Publication Publication Date Title
CN102065077B (zh) 终端应用软件分发方法及***
CN102035653B (zh) 软件审核阶段的可控分发方法及***
CN108197891B (zh) 一种基于区块链的电子签约装置及方法
CN102024127B (zh) 应用软件控制平台、使用者终端、分发***及方法
CN102171652A (zh) 为电子装置提供可信软件的方法
CN104426658B (zh) 对移动终端上的应用进行身份验证的方法及装置
CN102024107A (zh) 应用软件控制平台、开发者终端、分发***及方法
JP2007502578A (ja) 安全な移動体通信及び高価な取引の実行に対しランタイムパッケージ署名において信頼性の高いハードウェアベースのアイデンティティ信任状を使用する方法
JP2008517519A (ja) 異なるデジタル著作権管理ドメイン間のコンテンツ交換のための方法及びシステム
JP7235930B2 (ja) データ要求を処理するための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
US8578170B2 (en) Bundle verification
KR101523309B1 (ko) 어플리케이션 배포 시스템 및 방법
CN114282193A (zh) 一种应用授权方法、装置、设备及存储介质
CN111210217A (zh) 数据处理的方法、装置及存储介质
CN103179176A (zh) 在云/集群环境下web应用的调用方法、装置和***
CN102811210B (zh) 一种基于ws协议的信息卡认证方法及***
CN115796871A (zh) 基于区块链的资源数据处理方法、装置和服务器
WO2022151888A1 (zh) 数据共享方法及装置
CN105743651A (zh) 芯片安全域的卡应用使用方法、装置和应用终端
KR101858562B1 (ko) 이트레이닝 컨텐츠 사용을 위한 암호화 시스템
CN115409511B (zh) 一种基于区块链的个人信息保护***
CN112150158B (zh) 一种区块链交易交付验证方法及装置
KR101744697B1 (ko) 이트레이닝 콘텐츠 사용을 위한 암호화된 패키지 생성 및 전송 시스템
CN112543181B (zh) 一种通过网络鉴权安全认证设备的***和方法
CN112994882B (zh) 基于区块链的鉴权方法、装置、介质及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant