CN105873044B - 基于安卓平台的应用程序发布方法、开发者追溯方法和装置 - Google Patents
基于安卓平台的应用程序发布方法、开发者追溯方法和装置 Download PDFInfo
- Publication number
- CN105873044B CN105873044B CN201510031080.1A CN201510031080A CN105873044B CN 105873044 B CN105873044 B CN 105873044B CN 201510031080 A CN201510031080 A CN 201510031080A CN 105873044 B CN105873044 B CN 105873044B
- Authority
- CN
- China
- Prior art keywords
- digital certificate
- key
- developer
- certificate
- apk
- 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.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及基于安卓平台的应用程序发布方法、开发者追溯方法和装置。所述基于安卓平台的应用程序发布方法包括如下步骤:获取应用程序开发者的用户身份信息;解析应用程序apk包,读取apk包的自签名数字证书,并提取自签名数字证书中的公钥;以用户身份信息和公钥向第三方认证服务中心申请同密钥数字证书;将由第三方认证服务中心审核并签发的同密钥数字证书重新打包进apk包;发布重新打包的apk包。本发明通过第三方签发的同密钥数字证书确保了开发者身份真实可信,同密钥数字证书重新打包到apk包中能实现对开发者的追溯,而且还兼容安卓***的安全认证机制,不影响应用程序正常升级。
Description
技术领域
本发明涉及移动互联网的信息安全技术,更具体地说,涉及一种基于安卓平台的应用程序发布方法、开发者追溯方法和装置。
背景技术
随着移动智能终端的普及、移动互联网业务的蓬勃发展,信息安全重心从互联网向移动互联网转移。移动智能终端引发的颠覆性变革揭开了移动互联网产业发展的序幕,智能终端改变了人们的工作生活方式。但是,在移动终端向智能化、开放化发展的同时,也面临越来越多的安全威胁。
谷歌的安卓(Android)操作***是开放平台,因而成为手机恶意软件主要感染平台。无法对安卓手机恶意软件的开发者身份进行有效溯源进而追究其法律责任,导致恶意软件开发者违法成本低下,是造成安卓平台手机恶意软件泛滥的主要原因之一。
目前,在安卓平台上主要通过代码签名技术来对开发者的身份进行追溯,即开发者使用数字证书对应用程序进行签名,通过读取应用程序中的数字签名信息,来确认应用程序开发者的身份。按照签名证书的种类可分为:
1、自签名证书签名,即使用自签名证书对安卓软件进行代码签名。
2、第三方可信证书签名,即使用向合法的第三方认证服务中心(CA)申请的证书对已发布的存量应用进行重新签名。
现有的这些安卓平台开发者追溯方法的不足之处在于:
1、大部分开发者在代码签名的时候,使用的是自签名证书,无法保证其身份真实可信。
2、对于已经发布的大量的存量应用,采用依法设立的第三方认证服务中心签发的数字证书对存量应用进行重新签名,这种方式会造成安卓应用程序的签名证书发生变化,导致安卓应用程序不能正常升级。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于安卓平台的应用程序发布方法和装置、以及通过该方法和装置发布的基于安卓平台的应用程序的开发者追溯方法和装置、以及一种安卓平台,能够确保开发者身份真实可信、可追溯同时不影响安卓应用程序正常升级。
本发明解决其技术问题所采用的技术方案是:提出一种基于安卓平台的应用程序发布方法,包括如下步骤:
获取应用程序开发者的用户身份信息;
解析应用程序apk包,读取所述apk包的自签名数字证书,并提取所述自签名数字证书中的公钥;
以所述用户身份信息和所述公钥向第三方认证服务中心申请同密钥数字证书;
将由所述第三方认证服务中心审核并签发的同密钥数字证书重新打包进所述apk包;
发布所述重新打包的apk包。
根据本发明所述的基于安卓平台的应用程序发布方法中,所述将同密钥数字证书重新打包进所述apk包进一步包括:将所述同密钥数字证书打包在apk包的META-INF目录中。
本发明为解决其技术问题还提出一种基于安卓平台的应用程序发布装置,包括:
用户身份获取模块,用于获取应用程序开发者的用户身份信息;
密钥获取模块,用于解析应用程序apk包,读取所述apk包的自签名数字证书,并提取所述自签名数字证书中的公钥;
证书获取模块,用于以所述用户身份信息和所述公钥向第三方认证服务中心申请同密钥数字证书;
应用打包模块,用于将由所述第三方认证服务中心审核并签发的同密钥数字证书重新打包进所述apk包;
应用发布模块,用于发布所述重新打包的apk包。
根据本发明所述的基于安卓平台的应用程序发布装置中,所述应用打包模块将所述同密钥数字证书打包在apk包的META-INF目录中。
本发明为解决其技术问题还提出一种采用如上所述的方法发布的基于安卓平台的应用程序的开发者追溯方法,包括如下步骤:
解析所述重新打包后发布的apk包;
获取所述apk包中的由第三方认证服务中心签发的同密钥数字证书;
提取所述同密钥数字证书中的用户身份信息。
本发明为解决其技术问题还提出一种采用如上所述的方法发布的基于安卓平台的应用程序的开发者追溯装置,包括:
解析模块,用于解析所述重新打包后发布的apk包;
第三方证书获取模块,用于获取所述apk包中的由第三方认证服务中心签发的同密钥数字证书;
证书信息提取模块,用于提取所述同密钥数字证书中的用户身份信息。
本发明为解决其技术问题还提出一种安卓应用软件***,包括如上所述的应用程序发布装置和如上所述的开发者追溯装置。
本发明通过给软件开发者签发第三方可信数字证书(该证书中的公钥与开发者自签名证书的公钥相同)确保了安卓应用程序开发者的身份真实可信;通过将同密钥数字证书打包到安卓应用程序的apk包中,读取同密钥数字证书中的开发者信息,便能实现对开发者的追溯;而且,将同密钥数字证书打包到安卓应用程序的apk包中,兼容安卓***的安全认证机制,不影响安卓应用程序正常升级。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明一个实施例的安卓应用软件***的***架构图;
图2是本发明一个实施例的基于安卓平台的应用程序发布方法的流程图;
图3是本发明一个实施例的基于安卓平台的应用程序的开发者追溯方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了加强应用监管,打击移动互联网恶意软件,对恶意软件的开发者进行追溯,本申请设计了一种安卓应用软件***,基于第三方可信数字证书进行安卓应用程序的发布和开发者追溯,通过给软件开发者签发第三方可信数字证书(且该证书中的公钥与开发者自签名证书的公钥相同),确保开发者身份真实可信,同时将同密钥数字证书打包到安卓应用程序的apk包(apk是AndroidPackage的缩写,即安卓安装包)中,通过读取同密钥数字证书中的开发者信息,实现对开发者的追溯,而且还不会影响安卓应用程序的正常升级。
图1示出了本发明一个实施例的安卓应用软件***100的***架构图。如图1所示,该安卓应用软件***100包括应用程序发布装置110和开发者追溯装置120两个部分。应用程序发布装置110用于获取用户身份信息和apk包的自签名数字证书中的签名公钥信息,然后向第三方认证服务(CA)中心申请同密钥数字证书,并将CA中心审核并签发的同密钥数字证书重新打包到apk包中,再将重新打包后的apk包发布。在需要追溯开发者身份时,开发者追溯装置120从apk包中读取同密钥数字证书,进而读取该同密钥数字证书中的开发者身份信息,达到追溯开发者的目的。
具体如图1所示,应用程序发布装置110包括用户身份获取模块111、密钥获取模块112、证书获取模块113、应用打包模块114和应用发布模块115。用户身份获取模块111用于获取应用程序开发者的用户身份信息。密钥获取模块112用于解析应用程序apk包,读取该apk包的自签名数字证书,并提取出该自签名数字证书中的公钥。证书获取模块113用于携带用户身份信息和自签名数字证书中的公钥向CA中心200申请同密钥数字证书。如图1所示,CA中心200由证书申请信息接口模块210、用户身份审核模块220、证书签发模块230和证书信息发送模块240组成。证书申请信息接收模块210接收证书获取模块113发出的申请,获得用户身份信息和公钥信息。然后由用户身份审核模块220基于该用户身份信息审核开发者身份。审核通过则由证书签发模块230基于该用户身份信息和该公钥信息签发同密钥数字证书,然后由证书信息发送模块240将签发的同密钥数字证书返回给证书获取模块113。接着,应用打包模块114将证书获取模块113从CA中心200申请到的同密钥数字证书重新打包进apk包中。一个具体实施例中,应用打包模块114可以将该同密钥数字证书打包在apk包的META-INF目录中。应用发布模块115用于发布该经应用打包模块114重新打包的apk包。由于该重新打包发布的apk包具有第三方可信数字证书且该证书中的公钥与开发者自签名证书的公钥相同),确保开发者身份真实可信的同时还能实现对开发者的追溯,而且不会影响安卓应用程序的正常升级。
在需要追溯开发者身份时,开发者追溯装置120可基于追溯请求从由应用程序发布装置110发布的apk包中读取同密钥数字证书,进而读取该同密钥数字证书中的开发者身份信息,达到追溯开发者的目的。具体如图1所示,开发者追溯装置120包括解析模块121、第三方证书获取模块122和证书信息提取模块123。其中,解析模块121用于解析应用程序发布装置110发布的apk包,第三方证书获取模块122用于从经解析模块121解析的apk包信息中获取由第三方认证服务中心200签发的同密钥数字证书,证书信息提取模块123用于提取该同密钥数字证书中的用户身份信息。然后开发者追溯装置120可响应追溯请求,返回提取出的用户身份信息,实现开发者追溯。
基于以上所介绍的安卓应用软件***,本发明提出一种基于安卓平台的应用程序发布方法。图2示出了本发明一个实施例的基于安卓平台的应用程序发布方法300的流程图。如图2所示,该基于安卓平台的应用程序发布方法300包括如下步骤:
首先步骤S301中,获取应用程序开发者的用户身份信息。
随后步骤S302中,解析该应用程序apk包,读取该apk包的自签名数字证书,并提取出该自签名数字证书中的公钥。
随后步骤S303中,以获得的用户身份信息和自签名数字证书中的公钥向第三方认证服务中心申请同密钥数字证书。
随后步骤S304中,将由第三方认证服务中心基于该用户身份信息和公钥审核并签发的同密钥数字证书重新打包进应用程序apk包中。一个具体实施例中,该步骤中可以将第三方认证服务中心签发的同密钥数字证书重新打包在apk包的META-INF目录中。
随后步骤S305中,发布该重新打包的apk包。
基于以上所介绍的安卓应用软件***,本发明还提出一种基于安卓平台的应用程序的开发者追溯方法,用于对通过以上所介绍的应用程序发布方法所发布的安卓应用程序进行开发者追溯。图3示出了本发明一个实施例的基于安卓平台的应用程序的开发者追溯方法400的流程图。如图3所示,该基于安卓平台的应用程序的开发者追溯方法400包括如下步骤:
首先步骤S401中,解析该重新打包后发布的apk包。
随后步骤S402中,从解析后的apk包信息中获取由第三方认证服务中心签发的同密钥数字证书。
随后步骤S403中,提取该同密钥数字证书中的用户身份信息,实现开发者追溯。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于安卓平台的应用程序发布方法,其特征在于,包括如下步骤:
获取应用程序开发者的用户身份信息;
解析应用程序apk包,读取所述apk包的自签名数字证书,并提取所述自签名数字证书中的公钥;
以所述用户身份信息和所述公钥向第三方认证服务中心申请同密钥数字证书,所述同密钥数字证书中的公钥与开发者自签名证书的公钥相同;
将由所述第三方认证服务中心审核并签发的同密钥数字证书重新打包进所述apk包;
发布所述重新打包的apk包。
2.根据权利要求1所述的方法,其特征在于,所述将同密钥数字证书重新打包进所述apk包进一步包括:将所述同密钥数字证书打包在apk包的META-INF目录中。
3.一种基于安卓平台的应用程序发布装置,其特征在于,包括:
用户身份获取模块,用于获取应用程序开发者的用户身份信息;
密钥获取模块,用于解析应用程序apk包,读取所述apk包的自签名数字证书,并提取所述自签名数字证书中的公钥;
证书获取模块,用于以所述用户身份信息和所述公钥向第三方认证服务中心申请同密钥数字证书,所述同密钥数字证书中的公钥与开发者自签名证书的公钥相同;
应用打包模块,用于将由所述第三方认证服务中心审核并签发的同密钥数字证书重新打包进所述apk包;
应用发布模块,用于发布所述重新打包的apk包。
4.根据权利要求3所述的装置,其特征在于,所述应用打包模块将所述同密钥数字证书打包在apk包的META-INF目录中。
5.一种采用如权利要求1或2所述的方法发布的基于安卓平台的应用程序的开发者追溯方法,其特征在于,包括如下步骤:
解析所述重新打包后发布的apk包;
获取所述apk包中的由第三方认证服务中心签发的同密钥数字证书,所述同密钥数字证书中的公钥与开发者自签名证书的公钥相同;
提取所述同密钥数字证书中的用户身份信息。
6.一种采用如权利要求1或2所述的方法发布的基于安卓平台的应用程序的开发者追溯装置,其特征在于,包括:
解析模块,用于解析所述重新打包后发布的apk包;
第三方证书获取模块,用于获取所述apk包中的由第三方认证服务中心签发的同密钥数字证书,所述同密钥数字证书中的公钥与开发者自签名证书的公钥相同;
证书信息提取模块,用于提取所述同密钥数字证书中的用户身份信息。
7.一种安卓应用软件***,其特征在于,包括如权利要求3所述的应用程序发布装置和如权利要求6所述的开发者追溯装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510031080.1A CN105873044B (zh) | 2015-01-21 | 2015-01-21 | 基于安卓平台的应用程序发布方法、开发者追溯方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510031080.1A CN105873044B (zh) | 2015-01-21 | 2015-01-21 | 基于安卓平台的应用程序发布方法、开发者追溯方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105873044A CN105873044A (zh) | 2016-08-17 |
CN105873044B true CN105873044B (zh) | 2019-12-17 |
Family
ID=56623121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510031080.1A Active CN105873044B (zh) | 2015-01-21 | 2015-01-21 | 基于安卓平台的应用程序发布方法、开发者追溯方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105873044B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778086B (zh) * | 2016-11-28 | 2019-11-29 | 北京小米移动软件有限公司 | 主题包处理方法及装置 |
CN107463806B (zh) * | 2017-06-20 | 2020-08-14 | 国家计算机网络与信息安全管理中心 | 一种Android应用程序安装包的签名和验签方法 |
CN110287656A (zh) * | 2019-06-21 | 2019-09-27 | 深圳市趣创科技有限公司 | 基于电子版权认证签名的方法及装置 |
US11750732B1 (en) | 2023-02-20 | 2023-09-05 | 14788591 Canada Inc. | System for introducing features to an in-vehicle infotainment system and method of use thereof |
CN116070250B (zh) * | 2023-03-07 | 2023-06-23 | 卓望数码技术(深圳)有限公司 | 一种安卓***应用程序的密码算法测评方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101326896B1 (ko) * | 2011-08-24 | 2013-11-11 | 주식회사 팬택 | 단말기 및 이를 이용하는 어플리케이션의 위험도 제공 방법 |
CN104156638B (zh) * | 2014-06-06 | 2018-04-20 | 国家计算机网络与信息安全管理中心 | 一种面向安卓***软件的扩展签名的实现方法 |
-
2015
- 2015-01-21 CN CN201510031080.1A patent/CN105873044B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105873044A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10152594B2 (en) | Method and device for identifying virus APK | |
CN105873044B (zh) | 基于安卓平台的应用程序发布方法、开发者追溯方法和装置 | |
Jung et al. | Repackaging attack on android banking applications and its countermeasures | |
CN106209379B (zh) | 一种Android APK副署签名及验证方法 | |
KR101723937B1 (ko) | 애플리케이션 보안 검증을 위한 클라우드 지원형 방법 및 서비스 | |
US9600668B2 (en) | Method and device for extracting characteristic code of APK virus | |
WO2015169158A1 (zh) | 信息保护的方法和*** | |
CN107301343B (zh) | 安全数据处理方法、装置及电子设备 | |
US20160277194A1 (en) | Method for certifying android client application by local service unit | |
US20140150096A1 (en) | Method for assuring integrity of mobile applications and apparatus using the method | |
CN106656513B (zh) | 安卓平台上apk文件的二次打包签名验证方法 | |
JP2018503157A (ja) | アプリケーション整合性の検証を提供する方法及びデバイス | |
WO2016029595A1 (zh) | 开放平台的调用方法、装置、设备及非易失性计算机存储介质 | |
KR20140037994A (ko) | 위험도 계산을 통한 리패키지 애플리케이션의 분석시스템 및 분석방법 | |
CN109634615B (zh) | 应用安装包的发布方法、验证方法和装置 | |
US20160197950A1 (en) | Detection system and method for statically detecting applications | |
CN106295350B (zh) | 一种可信执行环境的身份验证方法、装置及终端 | |
CN104866739A (zh) | 安卓***中应用程序加密方法及*** | |
CN104933366A (zh) | 一种移动终端应用程序处理方法 | |
CN104102880A (zh) | 一种检测Android权限提升攻击的应用程序重写方法和*** | |
KR101498820B1 (ko) | 안드로이드 환경에서의 어플리케이션 리패키징 탐지 방법 | |
CN106709281B (zh) | 补丁发放和获取方法、装置 | |
CN109818972B (zh) | 一种工业控制***信息安全管理方法、装置及电子设备 | |
CN105873030B (zh) | 一种对终端应用进行副署签名的方法 | |
CN106888094B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |