软件审核阶段的可控分发方法及系统的制作方法

文档序号:7767671阅读:360来源:国知局
专利名称:软件审核阶段的可控分发方法及系统的制作方法
技术领域
本发明涉及计算机技术,尤其涉及一种软件审核阶段的可控分发方法及系统。
技术背景
随着智能终端(例如,智能手机、电子书等)的推广和应用,终端安全问题日益重 要。安全问题主要包括用户数据(例如,联系人、帐号、密码、照片等)的安全、终端资源(例 如,摄像设备、录音设备、用户身份卡、网络连接设备、存储设备等)的安全、网络资源(例 如,网上存储的联系人、照片等资源)的安全等。
智能终端的发展,离不开智能终端上的应用软件的发展壮大。应用软件由各种各 样的软件提供商,或软件设计人员设计。各种应用软件的功能不尽相同。由于诸多恶意应 用软件的出现,用户对于选择应用软件无所适从,用户没有可信的应用软件下载途径。针对 这种情况,多家终端设备商(或系统制造商,或运营商),提供多种管控应用软件分发的技 术方案。
然而,在众多厂商提供的应用软件分发系统中,在以审核为目的测试阶段,还没有 安全的分发方法。发明内容
本发明提供一种软件审核阶段的可控分发方法及系统,用以解决现有技术中以审 核为目的测试阶段安全性较低的缺陷,实现了在软件审核阶段的可控分发。
本发明提供一种软件审核阶段的可控分发方法,包括
开发管理平台从开发终端发送的开发软件包中分解出开发签名文件和应用程序 后,根据开发者证书和开发管理平台证书,对所述开发签名文件进行验证;在所述开发签名 文件验证通过后,根据所述开发签名文件验证所述应用程序;
在所述应用程序验证通过后,所述开发管理平台将所述应用程序以及根据审核者 证书和所述开发管理平台证书生成的审核签名文件,组合成审核软件包,并将所述审核软 件包和根据所述审核者证书生成的审核授权许可文件发送给审核终端;
所述审核终端根据审核者证书对所述审核授权许可文件和所述审核签名文件进 行验证,在验证通过后,安装并审核所述审核软件包中的应用程序。
本发明提供一种软件审核阶段的可控分发系统,包括与多个开发终端连接的开 发管理平台和与所述开发管理平台连接的多个审核终端;
所述开发管理平台,用于开发管理平台从开发终端发送的开发软件包中分解出开 发签名文件和应用程序后,根据开发者证书和开发管理平台证书,对所述开发签名文件进 行验证;在所述开发签名文件验证通过后,根据所述开发签名文件验证所述应用程序;
所述开发管理平台,还用于在所述应用程序验证通过后,将所述应用程序以及根 据审核者证书和所述开发管理平台证书生成的审核签名文件,组合成审核软件包,并将所 述审核软件包和根据所述审核者证书生成的审核授权许可文件发送给审核终端;
所述审核终端,用于根据审核者证书对所述审核授权许可文件和所述审核签名文 件进行验证,在验证通过后,安装并审核所述审核软件包中的应用程序。
本发明软件审核阶段的可控分发方法及系统,开发终端将开发软件包提交到开发 管理平台进入后续的软件审核阶段后,开发管理平台根据开发者证书和开发管理平台证 书,对开发软件包中所述开发签名文件进行验证,以确定该开发软件包是否来自于受信任 的开发终端,从而使开发管理平台向审核终端下发受信任的开发软件包。开发软件包通过 开发管理平台的验证后,将根据审核者证书和所述开发管理平台证书生成的审核签名文件 和应用程序组合成审核软件包,向审核终端下发审核软件包和根据所述审核者证书生成的 审核授权许可文件。审核终端根据审核软件包中审核签名文件对所述审核授权许可文件进 行验证,从而确定该审核软件包是否为经开发管理平台授权许可的审核软件包。由于,开发 管理平台对开发终端提交的开发软件包具有验证机制,审核终端对开发管理平台下发的审 核软件包也具有相应的验证机制,实现了软件分发在审核阶段的安全性。


为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术 描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一 些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这 些附图获得其他的附图。
图1为本发明提供的软件审核阶段的可控分发方法实施例一流程图2为本发明提供的软件审核阶段的可控分发方法实施例二证书获取流程图3为本发明提供的软件审核阶段的可控分发方法实施例三开发终端生成开发 软件包的流程图4为本发明提供的软件审核阶段的可控分发方法实施例四中开发管理平台验 证开发软件包的流程图5A为本发明提供的软件审核阶段的可控分发方法实施例五中开发管理平台生 成审核软件包和审核授权许可文件的流程图5B为图5A中步骤51生成审核签名文件的流程图6为本发明提供的软件审核阶段的可控分发方法实施例五中审核终端处理审 核软件包和审核授权许可文件的流程图7为本发明提供的软件审核阶段的可控分发系统实施例一结构示意图8为本发明提供的软件审核阶段的可控分发系统实施例二结构示意图9为本发明提供的软件审核阶段的可控分发系统实施例三结构示意图10为本发明提供的软件审核阶段的可控分发系统实施例四结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本 发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的软件审核阶段的可控分发方法实施例一流程图。本发明软件 审核阶段的可控分发方法中,开发管理平台管理多个开发终端和多个审核终端。开发终端 将开发的应用程序打包成开发软件包提交给开发管理平台,开发软件包通过开发管理平台 的验证通过后,生成审核软件包和审核授权许可文件下发给审核终端。审核授权许可文件 通过审核终端的验证后,审核终端安装审核软件包并进行审核。在开发管理平台与开发终 端,审核终端与开发管理平台的交互中实现了应用程序的可控分发。如图1所示,本实施例 包括
步骤11 开发管理平台从开发终端发送的开发软件包中分解出开发签名文件和 应用程序后,根据开发者证书和开发管理平台证书,对开发签名文件进行验证;在开发签名 文件通过验证后,根据开发签名文件验证应用程序。
开发终端开发并测试应用程序后,将测试通过的应用程序打包成开发软件包发送 给开发管理平台。开发软件包的生成过程如下开发终端对应用程序进行摘要运算生成应 用程序摘要。再对应用程序摘要进行摘要运算生成开发签名文件摘要。之后,开发终端根 据上述开发签名文件摘要和开发者证书以及开发管理平台证书生成开发签名文件,再将开 发签名文件和应用程序组合成软件开发包。开发签名文件的签名证书为开发者证书,开发 签名文件的信任证书为开发管理平台证书。由于开发签名文件中包括开发管理平台证书和 开发者证书,因此开发管理平台可通过开发签名文件验证开发软件包是否来自信任的开发 终端。
其中,每个开发者证书(或审核者证书)对应一个公钥和一个密钥,开发者证书 (或审核者证书)公钥存储在开发者证书(或审核者证书)中。开发者证书(或审核者证 书)对应的私钥存储在开发终端(或审核终端)的安全存储地点,并以加密的方式存储。开 发终端(或审核终端)提供安全存储和访问开发者证书对应的私钥的方法。公钥和密钥可 由专门提供签名服务的签名服务系统生成并下发给开发终端(或审核终端)和开发管理平 台。
开发管理平台接收到开发终端提交的开发软件包后,从开发软件包中分解出开发 签名文件和应用程序,应用程序可能被加密。根据开发者证书和开发管理平台证书,对开发 签名文件进行验证。在开发签名文件通过开发管理平台的验证后,表明该开发软件包来自 于可信任的开发终端。在开发签名文件验证通过后,从开发软件包中提取出应用程序并进 行摘要运算,根据从开发签名文件提取的签名文件摘要,对提取出的并经摘要运算的应用 程序进行验证。
步骤12 在应用程序通过验证后,开发管理平台将应用程序以及根据审核者证书 和开发管理平台证书生成的审核签名文件组合成审核软件包,并将审核软件包和根据审核 者证书生成的审核授权许可文件发送给审核终端。
开发管理平台对应用程序摘要进行摘要运算生成审核签名文件摘要后,根据审核 签名文件摘要和审核者证书以及开发管理平台证书生成审核签名文件。其中,审核者证书 为审核签名文件的签名证书。
另外,开发管理平台还需根据审核者证书生成审核授权许可文件,将审核授权许 可文件和审核软件包打包下发给审核终端。由于审核授权许可文件中包括审核者证书,审 核软件包中的审核签名文件中也包括审核者证书,通过审核者证书可验证审核软件包和审核授权许可文件是否经过开发管理平台的授权。
步骤13 审核终端根据审核者证书对审核授权许可文件和审核签名文件进行验 证,在验证通过后安装并审核审核软件包中的应用程序。
审核终端从审核签名文件中提取出签名证书,根据审核者证书验证审核签名文件 中签名证书;在审核签名文件中签名证书通过验证后,根据审核者证书验证审核授权许可 文件中签名证书;在审核授权许可文件中签名证书通过验证后,根据审核终端标识,验证签 名证书中的设备标识。在签名证书中的设备标识通过验证后,审核终端从审核软件包提取 出的应用程序进行安装并进行审核。
本发明软件审核阶段的可控分发方法,开发终端将开发软件包提交到开发管理平 台进入后续的软件审核阶段后,开发管理平台根据开发者证书和开发管理平台证书,对开 发软件包中开发签名文件进行验证,以确定该开发软件包是否来自于受信任的开发终端, 从而使开发管理平台向审核终端下发受信任的开发软件包。开发软件包通过开发管理平台 的验证后,将根据审核者证书和开发管理平台证书生成的审核签名文件和应用程序组合成 审核软件包,向审核终端下发审核软件包和根据审核者证书生成的审核授权许可文件。审 核终端根据审核软件包中审核签名文件对审核授权许可文件进行验证,从而确定该审核软 件包是否为经开发管理平台授权许可的审核软件包。由于,开发管理平台对开发终端提交 的开发软件包具有验证机制,审核终端对开发管理平台下发的审核软件包也具有相应的验 证机制,实现了软件分发在审核阶段的安全性。
图2为本发明提供的软件审核阶段的可控分发方法实施例二中证书获取流程图。 开发终端获取开发者证书和审核终端获取审核者证书的过程相同,开发者证书和审核者证 书包括的内容也相似。本实施例以审核终端获取审核者证书过程为例进行说明。如图2所 示,审核终端获取审核者证书的步骤包括
步骤21 审核终端组织注册请求。
审核终端的注册请求包括审核者名称、审核者描述、审核终端的设备标识等。审 核终端的设备标识,可以是审核终端的CPU序列号、硬盘序列号、网络设备号、用户身份卡 设备号等,也可以是由这些硬件设备号生成的摘要等。审核终端的设备标识,用于在审核终 端审核应用程序时,应用安装引擎识别被审核应用程序是否可以安装到开发终端的依据。 因此,审核终端与开发终端的应用安装引擎需使用相同的算法生成设备标识。
步骤22 审核终端向开发管理平台发送注册请求。
步骤23 开发管理平台根据注册请求,生成审核者证书。
开发管理平台先根据审核终端的请求,决定是否接受审核终端的注册请求,如果 不接受,则直接向审核终端返回不接受注册请求的处理结果。如果接受,开发管理平台再检 查审核终端是否已注册,如果已注册并已有审核者证书,则向审核终端返回已申请过审核 者证书的处理结果。如果该审核终端还没有审核者证书,开发管理平台则根据审核终端的 注册请求后生成审核者证书。
其中,审核者证书的内容至少包括1)证书格式;证书可以采用X. 509格式。2)证 书编码方法;证书编码可以使用BASE64。3)签名算法;签名算法可以使用WAPI ECC算法。 4)摘要算法。摘要算法可以采用缩微图算法(SHA-I)。5)证书序列号;证书序列号可由签 名服务系统生成,可以是随机数。6)证书主题;证书主题可以包括国家标识、审核者类型、审核终端的设备标识(审核者证书中可以包括多个审核终端的设备标识)、审核者的安全 级别等。7)审核者证书的签名机构标识;签名机构标识为开发管理平台的标识。8)审核者 证书摘要;审核者证书摘要用于检测审核者证书。
步骤M 开发管理平台向签名服务系统发送包括审核者证书的审核签名请求。
开发管理平台请求签名服务系统为审核者证书进行签名。
步骤25 签名服务系统根据包括审核者证书的审核签名请求,生成审核者证书对 应的公钥和私钥,并根据开发管理平台证书对审核者证书进行签名。
另外,审核者证书对应的公钥与私钥,也可以由审核终端按约定的加密算法生成, 也可以由开发管理平台生成,开发管理平台、审核终端和开发终端以及签名服务所采用的 加密算法均相同。由审核终端生成审核者证书对应的公钥与私钥时,在注册阶段,审核终端 可将审核者证书对应的公钥携带在注册请求中发送给开发管理平台,以使开发管理平台保 存。
步骤沈签名服务系统将签名后的审核者证书和审核者证书的公钥和私钥反馈 给开发管理平台。
步骤27 开发管理平台保存审核者证书的公钥。
步骤观开发管理平台向审核终端反馈审核者证书及其公钥和私钥。
步骤四审核终端保存签名后的审核者证书及其对应的公钥和私钥。
其中,步骤25具体包括
1,签名服务系统从开发管理平台提供的信息中提取出审核者证书A。
2,签名服务系统把审核者证书A的内容作为输入源,按约定的摘要算法(例如, SHA-I算法),计算审核者证书的摘要,得到摘要A。
3,签名服务系统使用开发管理平台证书对应的私钥,按约定的摘要签名算法(例 如,ECC算法),加密摘要A得到摘要B。
开发管理平台证书可由开发管理平台生成,并由签名服务系统根据根证书(根证 书为签名服务系统证书)对开发管理平台进行签名。开发管理平台对应的公钥和私钥可由 开发管理平台生成,也可由签名服务系统生成后与开发管理平台证书一起反馈给开发管理 平台保存。
4,签名服务系统把摘要B加入到审核者证书A的约定的地方,得到审核者证书B。 审核者证书B即是签名后的审核者证书。
以上是审核终端获取审核者证书以及审核者证书对应的公钥和私钥的过程,对于 开发终端来说,获取开发者证书以及开发者证书对应公钥和私钥的过程类似。首先,开发终 端将注册请求发送给所属的开发管理平台,由开发管理平台生成开发者证书后,转发给签 名服务系统,由签名服务系统对开发者证书签名,签名服务系统将签名后的开发者证书下 发给开发管理平台保存,再由开发管理平台转发给开发终端。开发者证书对应的公钥和私 钥可由签名服务系统生成后与开发者证书一起下发给开发管理平台保存。另外,开发者证 书对应的公钥与私钥,也可以由开发终端按约定的加密算法生成,也可以由开发管理平台 生成。由开发终端生成开发者证书对应的公钥与私钥时,在注册阶段,开发终端可将开发者 证书对应的公钥携带在注册请求中发送给开发管理平台,以使开发管理平台保存。
图3为本发明提供的软件审核阶段的可控分发方法实施例三中开发终端生成开10发软件包的流程图。如图3所示,开发终端生成软件开发包的具体步骤包括
步骤31 开发终端用开发管理平台证书对应的公钥加密应用程序。
步骤31为可选步骤,可以不加密应用程序。
步骤32 开发终端根据约定的规则、加密后的应用程序、和开发者证书以及开发 者证书对应的私钥,生成开发签名文件。
具体地,将应用程序摘要作为输入源,按约定的摘要算法,生成开发签名文件摘 要。如果应用程序被开发管理平台对应的公钥加密,则可以加密后的应用程序作为计算摘 要的输入源。按约定的加密算法,使用开发者证书对应的私钥加密开发签名文件摘要,生成 加密的开发签名文件摘要。
生成开发签名文件摘要的主要目的是后续开发管理平台验证开发软件包中应用 程序的完整性。采用开发者证书私钥加密开发签名文件摘要的主要目的是,后续开发管理 平台验证开发软件包是否由合法的开发终端提供。
步骤33 开发终端将应用程序和开发签名文件,按约定的规则组合成开发软件 包。
开发终端生成开发软件包后提交给开发管理平台,开发管理平台接收到开发软件 包后对开发软件包进行验证。
需要说明的是,开发签名文件中至少包括以下内容
1)开发者证书相关的内容,包括开发者证书的类型、开发证书的编码方式、开发者 证书内容,开发者证书作为签名证书。2)开发管理平台证书相关的内容,包括开发管理平台 证书的类型、开发管理平台证书的编码方式和开发管理平台证书内容,开发管理平台证书 作为信任证书。3)应用程序摘要相关的内容,包括应用程序摘要的编码方式、标识与摘要内 容。4)摘要算法相关的内容,包括摘要算法标识,签名文件中使用的摘要算法。5)开发签 名文件摘要相关的内容,包括开发签名文件摘要的编码方式和摘要内容。6)开发软件包标 识。
图4为本发明提供的软件审核阶段的可控分发方法实施例四中开发管理平台验 证开发软件包的流程图。如图4所示,开发管理平台验证开发终端提交的开发软件包的具 体过程包括
步骤40 开发管理平台将开发软件包分解成应用程序和开发签名文件。
步骤41 开发管理平台验证开发签名文件中的信任证书是否为开发管理平台证 书。如果验证通过,执行步骤42,否则执行步骤46。
开发签名文件中包含信任证书,如果该信任证书与开发管理平台证书相同,则认 为开发终端所属开发管理平台即为当前的开发管理平台。如果当前开发管理平台证书与签 名文件中的信任证书不同,则开发管理平台拒绝为开发终端提供软件审核服务。
步骤42 开发管理平台验证开发签名文件中的签名证书是否为开发者证书。
如果开发签名文件中包含的签名证书为开发者证书,执行步骤43,否则执行步骤 46。
步骤43 开发管理平台从开发签名文件中提取开发签名文件签名摘要A和应用程 序摘要B,根据开发签名文件摘要A验证开发签名文件是否完整、有效和合法。
开发管理平台使用开发者证书对应的公钥及约定的摘要加密算法(例如,ECC)解密开发签名文件摘要A,得到解密后的开发签名文件摘要A。通过开发签名文件摘要A验证 开发签名文件的完整性、有效性和合法性。在开发签名文件的完整、有效和合法时,执行步 骤44,否则开发管理平台拒绝为开发终端提供软件审核服务,执行步骤46。
开发终端使用开发者证书对应的私钥加密签名摘要;对应地,开发管理平台使用 开发者证书对应的公钥解密签名摘要。
步骤44 开发管理平台通过开发签名文件摘要验证开发软件包是否合格。
开发管理平台根据全部或部分应用程序数据,使用约定的摘要算法(例如, SHA-1)和应用程序,计算应用程序摘要Bi。开发管理平台可以使用加密后的应用程序,也 可以使用未加密的应用程序计算应用程序摘要。开发管理平台和开发终端使用应用程序的 数据相同,计算摘要的算法也相同。
如果开发管理平台计算出的应用程序摘要Bl与从开发软件包提取的应用程序摘 要B不同,则认为开发软件包中应用程序被修改,并认为开发软件包不合格,开发管理平台 拒绝为开发终端提供软件审核服务,执行步骤46。
如果开发管理平台计算出的应用程序摘要Bl与从开发软件包提取的应用程序摘 要B相同,开发管理平台根据应用程序摘要Bl按约定组织方法,以及约定的摘要算法(例 如,SHA-1),计算开发签名文件摘要Al。如果开发管理平台计算出的签名文件摘要Al与从 开发软件包提取的签名文件摘要A不相同,则认为开发软件包中开发签名文件被修改,开 发管理平台拒绝为开发终端提供软件审核服务,执行步骤46。如果开发管理平台计算出的 签名文件摘要Al与从开发软件包提取的签名文件摘要A相同,则执行步骤45。开发管理平 台与开发终端组织应用程序摘要的方法相同,计算摘要的算法也相同。
步骤45 开发管理平台输出为开发软件包提供审核服务的结果信息。
步骤46 开发管理平台输出拒绝提供审核服务的结果信息。
另外,开发管理平台还可在步骤46中输出的结果信息中给出拒绝提供审核服务 的原因。
图5A为本发明提供的软件审核阶段的可控分发方法实施例五中开发管理平台生 成审核软件包和审核授权许可文件的流程图。如图5A所示,包括
步骤51 开发管理平台根据约定的规则,将应用程序文件、开发管理平台证书和 审核者证书对应公钥等信息,生成审核签名文件。
步骤51的具体过程见图5B所示。
步骤52 开发管理平台将应用程序和审核签名文件按约定的规则组合成为审核 软件包。
步骤53 开发管理平台根据审核者证书生成审核授权许可文件。
具体地,开发管理平台先生成审核信息。根据审核信息的部分或全部内容作为输 入源,按约定的摘要算法生成审核信息摘要,然后,按约定的摘要加密算法,使用开发管理 平台证书的私钥加密审核信息摘要,并把加密后的审核信息摘要作为审核信息摘要。之后, 按约定的规则生成审核授权许可文件。审核授权许可文件的签名证书为审核者证书。审核 授权许可文件的内容至少包括1)审核者证书相关的内容,包括审核者证书的类型、审核 者证书的编码方式、审核者证书内容,审核者证书作为签名证书。2)审核信息的摘要签名相 关的内容,包括审核信息摘要的编码方式、标识与摘要内容。3)摘要算法相关的内容,包括摘要算法标识和审核签名文件中使用的摘要算法。4)审核软件包标识,可基于开发软件包 标识生成审核软件包。
步骤M 开发管理平台将生成的审核软件包和审核授权许可文件发送给审核终端。
如图5B所示,步骤51生成审核签名文件的具体过程包括
步骤511 开发管理平台将应用程序文件的内容作为输入源,按约定的摘要算法, 生成应用程序摘要。
开发管理平台可将整个应用程序或部分应用程序作为输入源生成应用程序摘要。
步骤512 开发管理平台将应用程序摘要作为输入源,按约定的摘要算法,生成审 核签名文件摘要。
然后,还可按约定的加密算法,使用审核者证书对应的公钥加密审核签名文件摘 要,并把加密后的审核签名文件摘要作为新的审核签名文件摘要。
步骤513 开发管理平台按约定的规则生成审核签名文件。
审核签名文件的签名证书为审核者证书。审核签名文件的内容至少包括1)审核 者证书相关的内容,包括审核者证书的类型、审核证书的编码方式、审核者证书内容,其中 审核者证书作为签名证书;2)开发管理平台证书相关的内容,包括开发管理平台证书的类 型、开发管理平台证书的编码方式、开发管理平台证书内容,其中开发管理平台证书作为信 任证书;幻应用程序摘要相关的内容,包括应用程序摘要的编码方式、标识与应用程序摘 要内容;4)摘要算法相关的内容,包括摘要算法标识;5)审核签名文件摘要相关的内容,包 括审核签名文件摘要的编码方式。
图6为本发明提供的软件审核阶段的可控分发方法实施例五中审核终端处理审 核软件包和审核授权许可文件的流程图。如图6所示,审核终端的处理流程包括
步骤61 审核终端检查审核软件包,从审核软件包中分离出应用程序和审核签名 文件,并找到审核软件包标识。
开发终端生成开发软件包标识,开发软件包标识可以采用全局用户标识(⑶I)方 式生成,以保证开发软件包标识的唯一性。在开发管理平台生成审核软件包时,可基于开发 软件包标识生成审核软件包标识。
步骤62 审核终端根据审核软件包标识,查找对应的审核授权许可文件。
另外,查找审核授权许可文件方法可以有多种,本发明不作限定。例如,审核软件 包和审核授权许可文件可以放在同一个目录,并使用相同的文件名,不相同的扩展名。在查 找授权许可文件时,可以直接在审核软件包所在的目录中查找相同名字的审核授权许可文 件。
步骤63 审核终端验证审核签名文件中签名证书否为审核者证书。如果审核签名 文件中签名证书的类型是审核者证书,执行步骤64,否则转至步骤69执行。
步骤64 审核终端分析审核授权许可文件是否完整和合法。如果审核授权许可文 件完整和合法,执行步骤65,否则转到步骤69执行。
审核终端分析审核授权许可文件是否包括审核者证书的内容、审核信息的摘要签 名相关的内容和摘要算法相关的内容等,以确定审核授权许可文件的完整性和合法性。
步骤65 审核终端分离审核授权许可文件中签名证书的设备标识A。
步骤66 审核终端获取审核终端的设备标识B。
步骤67 审核终端判断设备标识A是否与设备标识B相同,如果设备标识A与设 备标识B不相同,则认为审核软件包不能在审核终端中安装,转至步骤69执行,否则执行步 骤68。
步骤68 审核终端安装应用程序并显示安装成功的结果信息。
审核终端生成设备标识B,设备标识B可以是审核终端的CPU序列号、硬盘序列号、 网络设备号、用户身份卡设备号等,也可以是由这些硬件设备号生成的摘要等。由审核终端 生成审核者证书时,审核终端生成设备标识B的方法与审核终端在生成审核者证书过程中 生成设备标识A的方法相同。由开发管理平台生成审核者证书时,审核终端生成设备标识 B的方法与开发管理平台在生成审核者证书过程中生成设备标识A的方法相同。
步骤69 审核终端输出安装过程失败的结果信息。
另外,审核终端还可在步骤69中给出安装过程失败的具体原因。
本实施例中,审核终端安装审核软件包中应用程序前,通过审核者证书验证审核 签名文件中签名证书,以确定审核软件包的合法性。并通过验证审核授权许可文件的合法 性和审核授权许可文件中签名证书的设备标识。确定审核授权许可文件是否为该审核软件 包的授权许可文件。
图7为本发明提供的软件审核阶段的可控分发系统实施例一结构示意图。如图7 所示,本实施例包括与多个开发终端71连接的开发管理平台72和与开发管理平台72连 接的多个审核终端73.
开发管理平台72,用于从开发终端发送的开发软件包中分解出开发签名文件和应 用程序后,根据开发者证书和开发管理平台证书,对开发签名文件进行验证;在开发签名文 件验证通过后,根据开发签名文件验证应用程序。
开发管理平台72,还用于在应用程序验证通过后,将应用程序和根据审核者证书 和开发管理平台证书生成的审核签名文件,组合成审核软件包,并将审核软件包和根据审 核者证书生成的审核授权许可文件发送给审核终端。
审核终端73,用于根据审核者证书对审核授权许可文件和审核签名文件进行验 证,在验证通过后,安装并审核审核软件包中的应用程序。
进一步,开发终端71,用于对应用程序进行摘要运算,生成开发签名文件摘要;根 据开发签名文件摘要和开发者证书以及开发管理平台证书,生成开发签名文件摘要;根据 开发签名文件摘要和开发者证书以及开发管理平台证书,生成开发签名文件;将开发签名 文件和应用程序组合成软件开发包;开发者证书为开发签名文件的签名证书,开发管理平 台证书为开发签名文件的信任证书。
本实施例,开发终端将开发软件包提交到开发管理平台进入后续的软件审核阶段 后,开发管理平台根据开发者证书和开发管理平台证书,对开发软件包中开发签名文件进 行验证,以确定该开发软件包是否来自于受信任的开发终端,从而使开发管理平台向审核 终端下发受信任的开发软件包。开发软件包通过开发管理平台的验证后,将根据审核者证 书和开发管理平台证书生成的审核签名文件和应用程序组合成审核软件包,向审核终端下 发审核软件包和根据审核者证书生成的审核授权许可文件。审核终端根据审核软件包中审 核签名文件对审核授权许可文件进行验证,从而确定该审核软件包是否为经开发管理平台授权许可的审核软件包。由于,开发管理平台对开发终端提交的开发软件包具有验证机制, 审核终端对开发管理平台下发的审核软件包也具有相应的验证机制,实现了软件分发在审 核阶段的安全性。
图8为本发明提供的软件审核阶段的可控分发系统实施例二结构示意图。如图8 所示,在图7基础上还包括与多个开发管理平台72连接的签名服务系统74。
开发管理平台72,还用于在接收到审核终端的注册请求后生成审核者证书,并向 签名服务系统发送审核签名请求;审核者证书中包括审核终端的设备标识。
签名服务系统74,用于根据开发管理平台的审核签名请求,生成审核者证书对应 的公钥和私钥,并根据开发管理平台证书对审核者证书进行签名;将签名后的审核者证书 以及审核者证书的公钥和私钥反馈给开发管理平台。
开发管理平台72,还用于保存审核者证书的公钥,并向审核终端73反馈签名后的 审核者证书和审核者证书对应的私钥。
通过上述模块的处理,审核终端73获取签名后的审核者证书,以及审核者证书对 应的公钥和私钥。同样,开发终端71还可通过上述模块获取签名后的开发者证书,以及开 发者证书对应的公钥和私钥。
开发管理平台72,还用于在接收到开发终端的注册请求后生成开发者证书,并向 签名服务系统发送开发签名请求;开发者证书中包括开发终端的设备标识。
签名服务系统74,还用于根据开发管理平台的开发签名请求,生成开发者证书对 应的公钥和私钥,并根据开发管理平台证书对开发者证书进行签名;将签名后的开发者证 书以及开发者证书的公钥和私钥反馈给开发管理平台。
开发管理平台72,还用于保存开发者证书的公钥,并向开发终端71反馈签名后的 开发者证书和开发者证书对应的私钥。
签名服务系统74,还用于根据签名服务系统证书对开发管理平台72证书签名,生 成开发管理平台证书的公钥和私钥,并反馈给开发管理平台保存。
另外,本实施例中,审核者证对应的公钥和私钥,也可由审核终端生成后通过安全 路径将审核者证对应的公钥上传给开发管理平台。同样,开发者证书对应公钥和私钥,也可 由开发终端生成后通过安全路径将审核者证对应的公钥上传给开发管理平台。
图9为本发明提供的软件审核阶段的可控分发系统实施例三结构示意图。如图 9所示,图7或图8中开发管理平台72包括开发软件包分解模块721、信任证书验证模块 722、签名证书验证模块723、摘要证书验证模块724、审核签名摘要生成模块725、审核签名 文件生成模块7 和组合发送模块727。
开发管理平台接收到开发软件包后,通过以下模块处理开发软件包开发软件包 分解模块721、信任证书验证模块722、签名证书验证模块723和摘要证书验证模块724。
开发软件包分解模块721,用于从开发终端发送的开发软件包中分解出开发签名 文件和应用程序。信任证书验证模块722,用于根据开发管理平台证书,验证从开发签名文 件中提取出的信任证书。签名证书验证模块723,用于在信任证书验证通过后,根据开发者 证书验证从开发签名文件中提取出的签名证书。摘要证书验证模块724,用于根据从开发签 名文件提取的签名文件摘要,对从开发软件包中提取出的、并经摘要运算的应用程序进行 验证。
开发管理平台通过以下模块生成审核软件包审核签名摘要生成模块725、审核 签名文件生成模块7 和组合发送模块727。
审核签名摘要生成模块725,用于对应用程序摘要进行摘要运算生成审核签名文 件摘要。审核签名文件生成模块726,用于根据审核签名文件摘要和审核者证书以及开发 管理平台证书生成审核签名文件;审核者证书为审核签名文件的签名证书。组合发送模块 727,用于将应用程序和审核签名文件,组合成审核软件包,并将审核软件包和根据审核者 证书生成的审核授权许可文件发送给审核终端。
图10为本发明提供的软件审核阶段的可控分发系统实施例四结构示意图。如图 10所示,图7或图8中审核终端73包括审核签名验证模块731、审核授权验证模块732和 设备标识验证模块733。
审核签名验证模块731,用于根据审核者证书验证审核签名文件中签名证书。审核 授权验证模块732,用于在审核签名文件中签名证书通过审核签名验证模块731验证后,根 据审核者证书验证审核授权许可文件中签名证书。设备标识验证模块733,用于在审核签名 文件中签名证书通过审核授权验证模块732验证后,根据审核终端标识验证签名证书中的 设备标识。
在软件审核阶段,审核终端73通过以上模块处理开发管理平台推送的审核软件 包,提高了软件审核阶段的安全性。
本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。1权利要求
1.一种软件审核阶段的可控分发方法,其特征在于,包括开发管理平台从开发终端发送的开发软件包中分解出开发签名文件和应用程序后,根 据开发者证书和开发管理平台证书,对所述开发签名文件进行验证;在所述开发签名文件 通过验证后,根据所述开发签名文件验证所述应用程序;在所述应用程序通过验证后,所述开发管理平台将所述应用程序以及根据审核者证书 和所述开发管理平台证书生成的审核签名文件,组合成审核软件包,并将所述审核软件包 和根据所述审核者证书生成的审核授权许可文件发送给审核终端;所述审核终端根据审核者证书对所述审核授权许可文件和所述审核签名文件进行验 证,在验证通过后安装并审核所述审核软件包中的应用程序。
2.根据权利要求1所述软件审核阶段的可控分发方法,其特征在于,还包括 所述开发终端对应用程序进行摘要运算,生成开发签名文件摘要;所述开发终端根据所述开发签名文件摘要和开发者证书以及开发管理平台证书,生成 开发签名文件;所述开发者证书为所述开发签名文件的签名证书,所述开发管理平台证书 为开发签名文件的信任证书;所述开发终端将所述开发签名文件和所述应用程序组合成所述软件开发包,并发送给 所述开发管理平台。
3.根据权利要求2所述软件审核阶段的可控分发方法,其特征在于,所述根据开发者 证书和开发管理平台证书,对所述开发签名文件进行验证包括所述开发管理平台根据所述开发管理平台证书,验证从所述开发签名文件中提取出的 信任证书;所述开发管理平台在所述信任证书验证通过后,根据所述开发者证书验证从所述开发 签名文件中提取出的签名证书。
4.根据权利要求2所述软件审核阶段的可控分发方法,其特征在于,根据所述开发签 名文件验证所述应用程序,包括所述开发管理平台根据从所述开发签名文件提取的签名文件摘要,对从所述开发软件 包中提取出的、并经摘要运算的应用程序进行验证。
5.根据权利要求1所述软件审核阶段的可控分发方法,其特征在于,在所述开发管理 平台将所述应用程序以及根据审核者证书和所述开发管理平台证书生成的审核签名文件, 组合成审核软件包之前,还包括所述开发管理平台对所述应用程序进行摘要运算生成审核签名文件摘要; 所述开发管理平台根据所述审核签名文件摘要和所述审核者证书以及开发管理平台 证书生成审核签名文件;所述审核者证书为所述审核签名文件的签名证书。
6.根据权利要求5所述软件审核阶段的可控分发方法,其特征在于,所述根据审核者 证书对所述审核授权许可文件和所述审核签名文件进行验证,包括所述审核终端根据审核者证书验证所述审核签名文件中签名证书; 在所述审核签名文件中签名证书通过验证后,所述审核终端根据审核者证书验证所述 审核授权许可文件中签名证书;在所述审核授权许可文件中签名证书通过验证后,所述审核终端根据审核终端的设备 标识,验证所述签名证书中的设备标识。
7.根据权利要求1至6任一项所述软件审核阶段的可控分发方法,其特征在于,所述方 法还包括所述开发管理平台接收所述审核终端发送的注册请求后,生成所述审核者证书并向所 述签名服务系统发送包括所述审核者证书的审核签名请求;所述审核者证书中包括审核终 端的设备标识;所述签名服务系统根据所述审核签名请求生成所述审核者证书对应的公钥和私钥,并 根据所述开发管理平台证书对所述审核者证书进行签名;所述签名服务系统将签名后的审核者证书以及所述审核者证书的公钥和私钥反馈给 所述开发管理平台;所述开发管理平台向所述审核终端反馈签名后的审核者证书和所述审核者证书对应 的私钥。
8.根据权利要求1至6任一项所述软件审核阶段的可控分发方法,其特征在于,所述方 法还包括所述开发管理平台接收所述开发终端发送的注册请求后,生成所述开发者证书并向所 述签名服务系统发送包括所述开发者证书的开发签名请求;所述开发者证书中包括开发终 端的设备标识;所述签名服务系统根据所述开发签名请求生成所述开发者证书对应的公钥和私钥,并 根据所述开发管理平台证书对所述开发者证书进行签名;所述签名服务系统将签名后的开发者证书以及所述开发者证书的公钥和私钥反馈给 所述开发管理平台;所述开发管理平台向所述开发终端反馈签名后的开发者证书和所述开发者证书对应 的私钥。
9.根据权利要求1至6任一项所述软件审核阶段的可控分发方法,其特征在于,所述方 法还包括所述开发管理平台将生成的开发管理平台证书发送给所述签名服务系统;所述签名服务系统根据签名服务系统证书对所述开发管理平台证书进行签名。
10.一种软件审核阶段的可控分发系统,其特征在于,包括与多个开发终端连接的开 发管理平台和与所述开发管理平台连接的多个审核终端;所述开发管理平台,用于从开发终端发送的开发软件包中分解出开发签名文件和应用 程序后,根据开发者证书和开发管理平台证书,对所述开发签名文件进行验证;在所述开发 签名文件验证通过后,根据所述开发签名文件验证所述应用程序;所述开发管理平台,还用于在所述应用程序验证通过后,将所述应用程序以及根据审 核者证书和所述开发管理平台证书生成的审核签名文件,组合成审核软件包,并将所述审 核软件包和根据所述审核者证书生成的审核授权许可文件发送给审核终端;所述审核终端,用于根据审核者证书对所述审核授权许可文件和所述审核签名文件进 行验证,在验证通过后,安装并审核所述审核软件包中的应用程序。
11.根据权利要求10所述软件审核阶段的可控分发系统,其特征在于,还包括与多个 所述开发管理平台连接的签名服务系统;所述开发管理平台,还用于在接收到所述审核终端的注册请求后生成所述审核者证书,并向所述签名服务系统发送审核签名请求;所述审核者证书中包括审核终端的设备标 识;所述签名服务系统,用于根据开发管理平台的审核签名请求,生成所述审核者证书对 应的公钥和私钥,并根据所述开发管理平台证书对所述审核者证书进行签名;将签名后的 审核者证书以及所述审核者证书的公钥和私钥反馈给所述开发管理平台;所述开发管理平台,还用于保存所述审核者证书的公钥并向所述审核终端反馈签名后 的审核者证书和所述审核者证书对应的私钥;所述签名服务系统,还用于根据签名服务系统证书对开发管理平台证书签名,生成开 发管理平台证书的公钥和私钥,并反馈给所述开发管理平台;所述开发管理平台,还用于在接收到所述开发终端的注册请求后生成所述开发者证 书,并向所述签名服务系统发送开发签名请求;所述开发者证书中包括开发终端的设备标 识;所述签名服务系统,还用于根据开发管理平台的开发签名请求,生成所述开发者证书 对应的公钥和私钥,并根据所述开发管理平台证书对所述开发者证书进行签名;将签名后 的开发者证书以及所述开发者证书的公钥和私钥反馈给所述开发管理平台;所述开发管理平台,还用于保存所述开发者证书的公钥并向所述开发终端反馈签名后 的开发者证书和所述开发者证书对应的私钥。
12.根据权利要求10所述软件审核阶段的可控分发系统,其特征在于,所述开发终端, 用于对应用程序进行摘要运算,生成开发签名文件摘要;根据所述开发签名文件摘要和开 发者证书以及开发管理平台证书,生成开发签名文件;将所述开发签名文件和所述应用程 序组合成所述软件开发包;所述开发者证书为所述开发签名文件的签名证书,所述开发管 理平台证书为开发签名文件的信任证书。
13.根据权利要求12所述软件审核阶段的可控分发系统,其特征在于,所述开发管理 平台包括开发软件包分解模块,用于从开发终端发送的开发软件包中分解出开发签名文件和应 用程序;信任证书验证模块,用于根据所述开发管理平台证书,验证从所述开发签名文件中提 取出的信任证书;签名证书验证模块,用于在所述信任证书验证通过后,根据所述开发者证书验证从所 述开发签名文件中提取出的签名证书;摘要证书验证模块,用于根据从所述开发签名文件提取的签名文件摘要,对从所述开 发软件包中提取出的、并经摘要运算的应用程序进行验证;审核签名摘要生成模块,用于对所述应用程序进行摘要运算生成审核签名文件摘要; 审核签名文件生成模块,用于根据所述审核签名文件摘要和所述审核者证书以及开发 管理平台证书生成审核签名文件;所述审核者证书为所述审核签名文件的签名证书;组合发送模块,用于将所述应用程序和审核签名文件,组合成审核软件包,并将所述审 核软件包和根据所述审核者证书生成的审核授权许可文件发送给审核终端。
14.根据权利要求10至13任一项所述软件审核阶段的可控分发系统,其特征在于,所 述审核终端包括审核签名验证模块,用于根据审核者证书验证所述审核签名文件中签名证书; 审核授权验证模块,用于在所述审核签名文件中签名证书通过验证后,根据审核者证 书验证所述审核授权许可文件中签名证书;设备标识验证模块,用于在所述审核签名文件中签名证书通过验证后,根据审核终端 的设备标识,验证所述签名证书中的设备标识。
全文摘要
本发明提供一种软件审核阶段的可控分发方法及系统。该方法包括开发管理平台从开发终端发送的开发软件包中分解出开发签名文件和应用程序后,根据开发者证书和开发管理平台证书,对开发签名文件进行验证;在开发签名文件通过验证后,根据开发签名文件验证应用程序;在应用程序通过验证后,开发管理平台将应用程序以及根据审核者证书和开发管理平台证书生成的审核签名文件,组合成审核软件包,并将审核软件包和根据审核者证书生成的审核授权许可文件发送给审核终端;审核终端根据审核者证书对审核授权许可文件和审核签名文件进行验证,在验证通过后安装并审核审核软件包中的应用程序。
文档编号H04L9/32GK102035653SQ201010574479
公开日2011年4月27日 申请日期2010年11月30日 优先权日2010年11月30日
发明者加雄伟 申请人:中国联合网络通信集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1