CN105873030B - 一种对终端应用进行副署签名的方法 - Google Patents
一种对终端应用进行副署签名的方法 Download PDFInfo
- Publication number
- CN105873030B CN105873030B CN201510032950.7A CN201510032950A CN105873030B CN 105873030 B CN105873030 B CN 105873030B CN 201510032950 A CN201510032950 A CN 201510032950A CN 105873030 B CN105873030 B CN 105873030B
- Authority
- CN
- China
- Prior art keywords
- application
- terminal
- countersignature
- digital signature
- signature
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种对终端应用进行副署签名的方法,该方法对终端应用进行数字签名,还包括:于开发终端中对终端应用进行应用副署签名;通过开发终端验证应用副署签名;将终端应用发布至第三方应用***;通过第三方应用***验证应用副署签名;于第三方应用***中对终端应用进行发布渠道副署签名。实施本发明的有益效果是,通过副署签名应用于开发者、终端应用以及应用发布渠道,既可以充分追溯应用所有者的签名问题、也可以解决终端应用的安全问题、还可以保证应用发布渠道更加安全可靠。
Description
技术领域
本发明涉及数字签名技术领域,尤其涉及一种对终端应用进行副署签名的方法。
背景技术
随着移动智能终端的普及、移动互联网业务的发展,移动终端向智能化、开放化发展的同时,也面临越来越多的安全威胁,其中,Android平台成为手机恶意软件主要感染平台。造成上述问题的主要原因在于,应用程序只有原生签名,即安装过程中基于Android***检查的签名,对于应用程序的开发者,应用本身的安全、发布渠道的安全未做安全认证。
综上所述,现有技术中数字签名机制的主要不足在于:
1、Android平台的应用程序容易被破解并重新签署原生签名。目前Android应用程序主要使用Java编程语言开发,编译结果为类Java字节码,运行在Google自主定义的Dalvik虚拟机上,与C、C++程序编译得到的机器代码相比,Dalvik字节码包含丰富的对象类型信息,能够非常精确地反汇编得到虚拟机指令代码,甚至能较为准确地直接反编译为Java源代码。因此,Android应用中的图片、字符串等资源文件更容易被修改,使用WinZip等工具直接替换,再重新签名就可以生成新的纂改版应用。
2、参见图1,图1为现有Android签名机制下构造同名恶意代码文件的流程图,基于Android签名验证机制,对相同文件名的多个文件仅作一次数字签名验证,这样就可以给不法分子造成可乘之机,不法分子可以构造同名恶意代码文件,绕过Android的***验证,替换原有的正常文件。即单纯采用基于Android原生签名已无法满足应用程序的安全需求。
发明内容
有鉴于此,本发明的目的在于提供一种对终端应用进行副署签名的方法,旨在解决现有技术中终端应用仅作一次数字签名验证,容易的数字签名被纂改,基于数字签名认证的应用不安全的技术问题。
本发明的技术方案实现如下:
提供一种对终端应用进行副署签名的方法,该方法对终端应用进行数字签名,还包括:
于开发终端中对终端应用进行应用副署签名;
通过所述开发终端验证所述应用副署签名;
将所述终端应用发布至第三方应用***;
通过所述第三方应用***验证所述应用副署签名;
于所述第三方应用***中对所述终端应用进行发布渠道副署签名。
在本发明所述的方法中,在所述于开发终端中对终端应用进行应用副署签名的步骤中,包括以下子步骤:
S11、开发终端从证书授权中心申请个人用户身份证书;
S12、开发终端调用终端副署签名工具请求对所述终端应用进行应用副署签名;
S13、开发终端通过所述终端副署签名工具解析所述终端应用,验证所述终端应用中的数字签名;
S14、若验证成功,开发终端读取所安装的证书列表,并从所安装的证书列表中选择其中之一作为签名证书;
S15、开发终端通过所述签名证书对应的私钥对所述终端应用进行应用副署签名。
在本发明所述的方法中,所述步骤S13还包括,若验证失败,则提示所述数字签名验证失败,结束流程,若验证成功,则转至步骤S14。
在本发明所述的方法中,在所述于开发终端中对终端应用进行应用副署签名的步骤中,包括以下子步骤:
S21、开发终端请求验证所述终端应用的应用副署签名;
S22、开发终端通过所述终端副署签名工具解析所述终端应用,验证所述终端应用中的数字签名;
S23、若验证成功,开发终端读取并逐条验证所述应用副署签名;
S24、若每条副署签名均验证通过,则展示所述应用副署签名。
在本发明所述的方法中,所述步骤S22还包括,若验证失败,则提示所述数字签名验证失败,结束流程,若验证成功,则转至步骤S23。
在本发明所述的方法中,在所述通过所述第三方应用***验证所述应用副署签名的步骤中,包括以下子步骤:
S41、所述第三方应用***输入待验证的终端应用的路径信息,请求判断所述终端应用的数字签名是否正确;
S42、所述第三方应用***响应所述请求信息,调用服务器端副署签名工具包以解析所述终端应用,判断所述终端应用的数字签名是否正确;
S43、若所述数字签名正确,则判断所述终端应用是否存在应用副署签名;
S44、若存在,所述第三方应用***读取副署签名列表,从而逐条验证所述应用副署签名。
在本发明所述的方法中,所述步骤S42还包括,若所述数字签名错误,则返回错误信息,结束流程,若所述数字签名正确,则转至步骤S43。
在本发明所述的方法中,所述步骤S43还包括,若不存在所述应用副署签名,则结束流程,若存在所述应用副署签名,则转至步骤S44。
在本发明所述的方法中,于所述第三方应用***中对所述终端应用进行发布渠道副署签名的步骤中,包括以下子步骤:
S51、所述第三方应用***输入待验证的终端应用,请求对所述终端应用进行应用副署签名;
S52、所述第三方应用***调用服务器端副署签名工具包以解析所述终端应用,判断所述终端应用的数字签名是否正确;
S53、若所述数字签名正确,则读取所述数字签名对应的私钥以对所述终端应用进行发布渠道副署签名。
在本发明所述的方法中,所述步骤S52还包括,若所述数字签名不正确,则返回错误信息,结束流程,若所述数字签名正确,则转至步骤S53。
因此,本发明的有益效果是,通过副署签名应用于开发者、终端应用以及应用发布渠道,既可以充分追溯应用所有者的签名问题、也可以解决终端应用的安全问题、还可以保证应用发布渠道更加安全可靠。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为现有技术中构造同名恶意代码文件的流程图;
图2为本发明提供的一种对终端应用进行副署签名的方法流程图;
图3为本发明提供的客户端与服务器端的签名工具框图;
图4为本发明提供的开发终端对终端应用进行应用副署签名的流程图;
图5为本发明提供的开发终端验证应用副署签名的流程图;
图6为本发明提供的第三方应用***验证应用副署签名的流程图;
图7为本发明提供的第三方应用***对终端应用进行发布渠道副署签名的流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,以下将对照附图详细说明本发明的具体实施方式。应当理解,以下说明仅为本发明实施例的具体阐述,不应以此限制本发明的保护范围。
本发明提供一种对终端应用进行副署签名的方法,其目的在于,为了提高移动互联网应用安全,保证用户使用应用安全,避免钓鱼应用,同时保护应用提供商的合法权益,确保应用是合法的,由应用服务商提供的,提供一套基于数字签名认证,通过对开发者副署签名、应用副署签名、渠道副署签名确保应用的使用安全的终端应用安全保护方法。通过开发者副署签名,解决应用所有者的追溯问题;通过应用副署签名,解决应用安全问题;通过应用发布渠道副署签名,解决应用发布渠道安全可靠。
参见图2,图2为本发明提供的一种对终端应用进行副署签名的方法流程图,该方法对终端应用进行数字签名,还包括:
S1、于开发终端中对终端应用进行应用副署签名;优选地,开发终端为Android客户端的APP开发者所采用的PC端,参见图3,图3为本发明提供的客户端与服务器端的签名工具框图,Android应用副署签名工具分为PC端副署签名工具和服务器端副署签名工具包两部分。在PC端,开发者使用副署签名工具对APK(即终端应用)进行应用副署签名、副署签名验证。本发明旨在开发终端以及服务器端分别采用副署签名工具对APK分别进行副署签名,从而增强数字签名的安全问题。
参见图4,图4为本发明提供的开发终端对终端应用进行应用副署签名的流程图,该步骤包括以下子步骤:
S11、开发者通过开发终端从证书授权中心(即CA机构)申请个人用户身份证书。
S12、开发终端调用终端副署签名工具请求对所述终端应用进行应用副署签名;例如,开发者选择待签名的apk包,调用PC端副署签名工具,请求副署签名操作。
S13、开发终端通过所述终端副署签名工具解析所述终端应用,验证所述终端应用中的数字签名;若验证失败,则向开发者提示所述数字签名验证失败,结束流程,若验证成功,则转至步骤S14。例如,签名工具解析apk包,验证apk包原生签名(即“数字签名”,又称“原生代码签名”)。
S14、若验证成功,开发终端读取所安装的证书列表,并提示开发者从所安装的证书列表中选择其中之一作为签名证书。该证书列表终端额证书均为开发者所申请的证书。
S15、开发终端通过所述签名证书对应的私钥对所述终端应用进行应用副署签名,并向开发者返回副署签名操作结果。
S2、通过所述开发终端验证所述应用副署签名;
参见图5,图5为本发明提供的开发终端验证应用副署签名的流程图,该步骤包括以下子步骤:
S21、开发者通过开发终端请求验证所述终端应用的应用副署签名;例如,开发者选择待验证的apk包,请求副署签名验证。
S22、开发终端通过所述终端副署签名工具解析所述终端应用,验证所述终端应用中的数字签名;若验证失败,则提示所述数字签名验证失败,结束流程,若验证成功,则转至步骤S23。即验证APK的原生签名。
S23、若验证成功,开发终端读取并逐条验证所述应用副署签名;
S24、若每条副署签名均验证通过,则向开发者展示所述应用副署签名。
S3、将所述终端应用发布至第三方应用***;
S4、通过所述第三方应用***验证所述应用副署签名;
参见图6,图6为本发明提供的第三方应用***验证应用副署签名的流程图,该步骤包括以下子步骤:
S41、所述第三方应用***输入待验证的终端应用的路径信息,请求判断所述终端应用的数字签名是否正确;
S42、所述第三方应用***响应所述请求信息,调用服务器端副署签名工具包以解析所述终端应用,判断所述终端应用的数字签名(即原生代码签名)是否正确;若所述数字签名错误,则返回错误信息,结束流程,若所述数字签名正确,则转至步骤S43。
S43、若所述数字签名正确,则判断所述终端应用是否存在应用副署签名;若不存在所述应用副署签名,则结束流程,若存在所述应用副署签名,则转至步骤S44。
S44、若存在,输入待验证的APK包路径,请求验证副署签名,所述第三方应用***解析APK包以读取副署签名列表,从而逐条验证所述应用副署签名,并向第三方应用***返回副署签名验证结果。
S5、于所述第三方应用***中对所述终端应用进行发布渠道副署签名。参见图3,图3为本发明提供的客户端与服务器端的签名工具框图,该签名工具在服务器端,第三方应用***调用服务器端副署签名工具包,可进行副署签名验证、副署签名信息提取和应用副署签名等操作。
参见图7,图7为本发明提供的第三方应用***对终端应用进行发布渠道副署签名的流程图,该步骤包括以下子步骤:
S51、所述第三方应用***输入待验证的终端应用,请求对所述终端应用进行应用副署签名;该步骤基于第三方应用***验证该终端应用的副署签名,且该终端应用发布于该第三方应用***对应的商城。
S52、所述第三方应用***调用所述服务器端副署签名工具包以解析所述终端应用,判断所述终端应用的数字签名是否正确;若所述数字签名不正确,则返回错误信息,结束流程,若所述数字签名正确,则转至步骤S53。
S53、若所述数字签名正确,则读取所述数字签名对应的私钥以对所述终端应用进行发布渠道副署签名。该步骤的前提为第三方应用***为该应用申请数字证书并申请发布渠道证书,签名之后返回发布渠道副署签名后的终端应用。
如此,用户安装使用应用时,可对该应用包的副署签名逐一验证,从而保障了该应用开发者可追溯、应用包完整、发布渠道合法性。
本发明的对终端应用进行副署签名的方法具有以下有益效果:
1、通过开发者的副署签名,保证开发者可追溯,不可抵赖;
2、通过应用的副署签名,保证应用的完整性和防篡改,从而保护了应用使用者的安全;
3、通过应用发布渠道的副署签名,保证了第三方应用商城的发布渠道安全可靠,可追溯。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
Claims (10)
1.一种对终端应用进行副署签名的方法,该方法对终端应用进行数字签名,其特征在于,还包括:
于开发终端中对终端应用进行应用副署签名,具体包括:开发终端验证所述终端应用中的数字签名,若验证成功则从所安装的证书列表中选择其中之一作为签名证书,通过所述签名证书对应的私钥对所述终端应用进行应用副署签名;
通过所述开发终端验证所述应用副署签名,具体包括:开发终端验证所述终端应用中的数字签名,若验证成功则读取并逐条验证所述终端应用的应用副署签名;
将所述终端应用发布至第三方应用***;
通过所述第三方应用***验证所述应用副署签名,具体包括:所述第三方应用***解析所述终端应用并判断所述终端应用的数字签名是否正确,若所述数字签名正确则读取并逐条验证所述终端应用的应用副署签名;
于所述第三方应用***中对所述终端应用进行发布渠道副署签名,具体包括:所述第三方应用***解析所述终端应用并判断所述终端应用的数字签名是否正确,若所述数字签名正确则读取所述数字签名对应的私钥以对所述终端应用进行发布渠道副署签名。
2.根据权利要求1所述的方法,其特征在于,在所述于开发终端中对终端应用进行应用副署签名的步骤中,包括以下子步骤:
S11、开发终端从证书授权中心申请个人用户身份证书;
S12、开发终端调用终端副署签名工具请求对所述终端应用进行应用副署签名;
S13、开发终端通过所述终端副署签名工具解析所述终端应用,验证所述终端应用中的数字签名;
S14、若验证成功,开发终端读取所安装的证书列表,并从所安装的证书列表中选择其中之一作为签名证书;
S15、开发终端通过所述签名证书对应的私钥对所述终端应用进行应用副署签名。
3.根据权利要求2所述的方法,其特征在于,所述步骤S13还包括,若验证失败,则提示所述数字签名验证失败,结束流程,若验证成功,则转至步骤S14。
4.根据权利要求1所述的方法,其特征在于,在所述于开发终端中对终端应用进行应用副署签名的步骤中,包括以下子步骤:
S21、开发终端请求验证所述终端应用的应用副署签名;
S22、开发终端通过所述终端副署签名工具解析所述终端应用,验证所述终端应用中的数字签名;
S23、若验证成功,开发终端读取并逐条验证所述应用副署签名;
S24、若每条副署签名均验证通过,则展示所述应用副署签名。
5.根据权利要求4所述的方法,其特征在于,所述步骤S22还包括,若验证失败,则提示所述数字签名验证失败,结束流程,若验证成功,则转至步骤S23。
6.根据权利要求1所述的方法,其特征在于,在所述通过所述第三方应用***验证所述应用副署签名的步骤中,包括以下子步骤:
S41、所述第三方应用***输入待验证的终端应用的路径信息,请求判断所述终端应用的数字签名是否正确;
S42、所述第三方应用***响应所述请求信息,调用服务器端副署签名工具包以解析所述终端应用,判断所述终端应用的数字签名是否正确;
S43、若所述数字签名正确,则判断所述终端应用是否存在应用副署签名;
S44、若存在,所述第三方应用***读取副署签名列表,从而逐条验证所述应用副署签名。
7.根据权利要求6所述的方法,其特征在于,所述步骤S42还包括,若所述数字签名错误,则返回错误信息,结束流程,若所述数字签名正确,则转至步骤S43。
8.根据权利要求6所述的方法,其特征在于,所述步骤S43还包括,若不存在所述应用副署签名,则结束流程,若存在所述应用副署签名,则转至步骤S44。
9.根据权利要求1所述的方法,其特征在于,于所述第三方应用***中对所述终端应用进行发布渠道副署签名的步骤中,包括以下子步骤:
S51、所述第三方应用***输入待验证的终端应用,请求对所述终端应用进行应用副署签名;
S52、所述第三方应用***调用服务器端副署签名工具包以解析所述终端应用,判断所述终端应用的数字签名是否正确;
S53、若所述数字签名正确,则读取所述数字签名对应的私钥以对所述终端应用进行发布渠道副署签名。
10.根据权利要求9所述的方法,其特征在于,所述步骤S52还包括,若所述数字签名不正确,则返回错误信息,结束流程,若所述数字签名正确,则转至步骤S53。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510032950.7A CN105873030B (zh) | 2015-01-22 | 2015-01-22 | 一种对终端应用进行副署签名的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510032950.7A CN105873030B (zh) | 2015-01-22 | 2015-01-22 | 一种对终端应用进行副署签名的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105873030A CN105873030A (zh) | 2016-08-17 |
CN105873030B true CN105873030B (zh) | 2020-05-01 |
Family
ID=56624023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510032950.7A Active CN105873030B (zh) | 2015-01-22 | 2015-01-22 | 一种对终端应用进行副署签名的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105873030B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106888094B (zh) * | 2017-02-16 | 2019-06-14 | ***通信集团公司 | 一种签名方法及服务器 |
CN107301343B (zh) * | 2017-06-19 | 2021-03-26 | 大连中科创达软件有限公司 | 安全数据处理方法、装置及电子设备 |
CN112989435A (zh) * | 2021-03-26 | 2021-06-18 | 武汉深之度科技有限公司 | 一种数字签名方法及计算设备 |
CN113221072A (zh) * | 2021-04-16 | 2021-08-06 | 江苏先安科技有限公司 | 一种基于安卓***的第三方副署签名、验证方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2226966A1 (fr) * | 2009-03-03 | 2010-09-08 | Gemalto SA | Procédé d'établissement sécurisé d'un contrat multipartite virtuel matérialisable |
CN102024107A (zh) * | 2010-11-17 | 2011-04-20 | 中国联合网络通信集团有限公司 | 应用软件控制平台、开发者终端、分发***及方法 |
CN102546604B (zh) * | 2011-12-22 | 2014-12-24 | 四川长虹电器股份有限公司 | 智能电视应用程序安全控制方法 |
CN102546819B (zh) * | 2012-02-14 | 2014-09-10 | 中国民航信息网络股份有限公司 | 一种移动终端应用的跨平台***及其方法 |
CN103886260B (zh) * | 2014-04-16 | 2016-09-14 | 中国科学院信息工程研究所 | 一种基于二次签名验签技术的应用程序管控方法 |
-
2015
- 2015-01-22 CN CN201510032950.7A patent/CN105873030B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105873030A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101740256B1 (ko) | 모바일 앱 무결성 보증 장치 및 방법 | |
CN103744686B (zh) | 智能终端中应用安装的控制方法和*** | |
KR101723937B1 (ko) | 애플리케이션 보안 검증을 위한 클라우드 지원형 방법 및 서비스 | |
JP4727278B2 (ja) | アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム | |
CN111181977B (zh) | 一种登录方法、装置、电子设备及介质 | |
CN105873030B (zh) | 一种对终端应用进行副署签名的方法 | |
CN109495268B (zh) | 一种二维码认证方法、装置及计算机可读存储介质 | |
CN101969440B (zh) | 软件证书生成方法 | |
CN106897606B (zh) | 一种刷机防护方法和装置 | |
CN107220547B (zh) | 终端设备及其启动方法 | |
CN108259479B (zh) | 业务数据处理方法、客户端与计算机可读存储介质 | |
CN103679005A (zh) | 启用安全电子控制单元的开发模式的方法 | |
CN109660353A (zh) | 一种应用程序安装方法及装置 | |
CN110096849A (zh) | 一种License授权认证方法、装置、设备及可读存储介质 | |
CN108197469B (zh) | 校验应用程序的方法、装置和存储介质以及电子设备 | |
CN110135149A (zh) | 一种应用安装的方法及相关装置 | |
CN105873044B (zh) | 基于安卓平台的应用程序发布方法、开发者追溯方法和装置 | |
CN106709281B (zh) | 补丁发放和获取方法、装置 | |
CN113541966A (zh) | 权限管理方法、装置、电子设备及存储介质 | |
KR101324693B1 (ko) | 어플리케이션 보안 시스템 및 방법 | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 | |
CN116707758A (zh) | 可信计算设备的认证方法、设备和服务器 | |
CN114629658B (zh) | 一种应用签名方法、装置、设备及存储介质 | |
CN110581833B (zh) | 一种业务安全保护方法及装置 | |
KR20030052510A (ko) | 무선 인터넷을 통한 이동 단말용 응용프로그램 설치시스템 및 그 방법 |
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 |