CN117077090B - 应用签名方法、装置、设备及存储介质 - Google Patents
应用签名方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117077090B CN117077090B CN202311347086.0A CN202311347086A CN117077090B CN 117077090 B CN117077090 B CN 117077090B CN 202311347086 A CN202311347086 A CN 202311347086A CN 117077090 B CN117077090 B CN 117077090B
- Authority
- CN
- China
- Prior art keywords
- key
- application
- signature
- installation package
- change
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000009434 installation Methods 0.000 claims abstract description 114
- 230000008859 change Effects 0.000 claims abstract description 99
- 238000013507 mapping Methods 0.000 claims description 14
- 238000012790 confirmation Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及一种应用签名方法、装置、设备及存储介质,该方法包括:将第一密钥和第二密钥配对;对所述第一密钥签名的一个应用的安装包用所述第二密钥进行第一次变更签名;向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新;将所述第二密钥和第三密钥配对;对所述应用的第一次变更签名后的安装包用所述第三密钥进行第二次变更签名;向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对所述应用进行再次更新。本公开通过设置共享密钥,并进行两次重签名,能够在不卸载旧应用的情况下,实现对应用签名的安全更新。
Description
技术领域
本公开涉及应用程序技术领域,尤其涉及一种应用签名方法、装置、设备及存储介质。
背景技术
终端设备搭载有很多预置的***应用,其中的一部分***应用是由终端厂商进行开发和维护的,另一部分***应用则外包给第三方供应商负责,但在出厂时,所有的***应用都会采用***签名,具有最高等级的***权限。为保证终端运行的安全性,对于第三方供应商负责的***应用,需要将***签名替换为第三方供应商签名以实现权限回收与控制,但由于终端厂商和第三方供应商各自所使用的签名密钥的保护等级很高,无法告知对方进而直接完成重签名,想要更改应用的签名只能先卸载使用***签名的旧版本应用,再安装使用第三方供应商签名的新版本应用,用户操作十分不便。因此,如何在不卸载旧应用的情况下,实现对应用签名的安全更新是需要解决的技术问题。
发明内容
为了解决上述技术问题,本公开提供了一种应用签名方法、装置、设备及存储介质。
本公开实施例的第一方面提供了一种应用签名方法,该方法适用于一种应用管理***,包括:
将第一密钥和第二密钥配对;
对所述第一密钥签名的一个应用的安装包用所述第二密钥进行第一次变更签名;
向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新;
将所述第二密钥和第三密钥配对;
对所述应用的第一次变更签名后的安装包用所述第三密钥进行第二次变更签名;
向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对所述应用进行再次更新。
可选的,所述将第一密钥和第二密钥配对,包括:
第一方基于所述第一密钥和所述第二密钥生成第一关系链;
所述将所述第二密钥和第三密钥配对,包括:
第二方基于所述第二密钥、所述第三密钥和所述第一关系链生成第二关系链。
可选的,所述第一关系链为用于存储所述第一密钥和所述第二密钥之间的映射关系的二进制文件,所述第二关系链为用于存储所述第二密钥和所述第三密钥之间的映射关系的二进制文件。
可选的,所述第一方基于所述第一密钥和所述第二密钥生成第一关系链,包括:
所述第一方根据签名轮换指令,基于所述第一密钥和所述第二密钥生成所述第一关系链;
所述第二方基于所述第二密钥、所述第三密钥和所述第一关系链生成第二关系链,包括:
所述第二方根据签名轮换指令,基于所述第二密钥、所述第三密钥和所述第一关系链生成所述第二关系链。
可选的,所述向用户设备推送所述应用的第一次变更签名后的安装包,包括:
确定接收到所述用户设备中所述应用反馈的确认更新指令;
向所述用户设备推送所述应用的第一次变更签名后的安装包;
和/或:
向所述用户设备中的应用安装程序推送所述应用的第一次变更签名后的安装包。
可选的,所述第一密钥为所述第一方拥有,所述第三密钥为所述第二方拥有,所述第二密钥为所述第一方和所述第二方共享。
可选的,所述第一方为终端厂商和应用供应商的其中之一,所述第二方为所述终端厂商和所述应用供应商中与所述第一方不同的一方。
本公开实施例的第二方面提供了一种应用签名装置,该装置适用于一种应用管理***,包括:
第一配对模块,用于将第一密钥和第二密钥配对;
第一重签名模块,用于对所述第一密钥签名的一个应用的安装包用所述第二密钥进行第一次变更签名;
第一推送模块,用于向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新;
第二配对模块,用于将所述第二密钥和第三密钥配对;
第二重签名模块,用于对所述应用的第一次变更签名后的安装包用所述第三密钥进行第二次变更签名;
第二推送模块,用于向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对所述应用进行再次更新。
本公开实施例的第三方面提供了一种计算机设备,包括存储器和处理器,以及计算机程序,其中,存储器中存储有计算机程序,当计算机程序被处理器执行时,实现如上述第一方面的应用签名方法。
本公开实施例的第四方面提供了一种计算机可读存储介质,存储介质中存储有计算机程序,当计算机程序被处理器执行时,实现如上述第一方面的应用签名方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
在本公开实施例提供的应用签名方法、装置、设备及存储介质中,通过将第一密钥和第二密钥配对,对所述第一密钥签名的一个应用的安装包用所述第二密钥进行第一次变更签名,向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新,将所述第二密钥和第三密钥配对,对所述应用的第一次变更签名后的安装包用所述第三密钥进行第二次变更签名,向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对所述应用进行再次更新,能够在需要将应用的签名从一个私有密钥更新为另一个私有密钥时,无需卸载旧应用即可对应用签名进行更新,使得用户操作更加便捷,同时也能够保留应用数据,改善了用户体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种应用签名方法的流程图;
图2是本公开实施例提供的另一种应用签名方法的流程图;
图3是本公开实施例提供的一种应用签名装置的结构示意图;
图4是本公开实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
图1是本公开实施例提供的一种应用签名方法的流程图,该方法适用于一种应用管理***,可以由一种应用签名装置执行。如图1所示,本实施例提供的应用签名方法包括如下步骤:
S101、将第一密钥和第二密钥配对。
本公开实施例中的密钥可以理解为对应用的安装包进行签名所使用的密钥,示例的,密钥的类型可以是jks格式、keystore格式、pem格式等,在此不做限定,第一密钥和第二密钥为不同的签名密钥,其中,第一密钥可以为应用的安装包原始使用的签名密钥,第二密钥可以为预先生成的第一次变更签名后使用的密钥。
本公开实施例中,应用签名装置可以对第一密钥和第二密钥进行配对处理,建立第一密钥与第二密钥之间的对应关系。
在本公开实施例的一种示例性的实施方式中,应用签名装置可以获取应用的安装包原始使用的签名密钥,将其确定为第一密钥,再生成第一次变更签名后使用的第二密钥,其中,第二密钥可以根据预先设定的密钥的信息项,比如算法类型、密钥有效期、密码、组织者名称、机构信息、城市等,依照密钥生成标准生成,生成工具可以为Android Studio、make_key、openssl等,在此不做限定,并在获得第一密钥、第二密钥后,将第一密钥与第二密钥进行配对处理。
在本公开实施例的另一种示例性的实施方式中,应用签名装置可以在获得第一密钥与第二密钥后,建立第一密钥与第二密钥之间的映射关系,并将该映射关系存储记录在文件中。
在本公开实施例的又一种示例性的实施方式中,应用签名装置可以在获得第一密钥与第二密钥后,采用apksigner工具将第一密钥与第二密钥进行配对。
S102、对所述第一密钥签名的一个应用的安装包用所述第二密钥进行第一次变更签名。
本公开实施例中,应用签名装置可以在完成第一密钥与第二密钥的配对后,基于第一密钥与第二密钥之间的映射关系,以及应用的安装包原始使用的第一密钥和目标使用的第二密钥,对应用的安装包进行第一次变更签名处理,以使应用的安装包所使用的签名密钥由第一密钥变更为第二密钥。
在本公开实施例的一种示例性的实施方式中,应用签名装置可以在完成第一密钥与第二密钥的配对后,采用apksigner工具对应用的安装包进行第一次变更签名,具体地,可以使用apksigner工具中的sign命令,基于第一密钥、第二密钥和配对后生成的第一密钥与第二密钥的映射关系,对使用第一密钥签名的安装包进行变更签名处理,得到使用第二密钥签名的安装包。
S103、向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新。
本公开实施例中的用户设备可以理解为安装有该需要变更签名的应用的用户设备,示例的,用户设备可以包括移动电话、电子计算机、智能手表、媒体播放器等,在此不做限定。
本公开实施例中,应用签名装置可以在对应用的安装包完成第一次变更签名处理后,对安装有该应用的用户设备推送第一次变更签名后的安装包,以使用户设备在接收到第一次变更签名后的安装包后,对相应的应用进行更新。
在本公开实施例的一种示例性的实施方式中,应用签名装置可以在对应用的安装包完成第一次变更签名处理后,将应用商店已上架的该应用的安装包替换为第一次变更签名后采用第二密钥签名的安装包,对于已安装该应用的用户设备,可以通过空中下载(OverThe Air,OTA)技术推送第一次变更签名后的安装包,以使用户设备在接收到第一次变更签名后的安装包后,对应用进行用户无感知的覆盖更新。
S104、将所述第二密钥和第三密钥配对。
本公开实施例中的第三密钥可以理解为应用的安装包最终要使用的签名密钥。
本公开实施例中,应用签名装置可以对第二密钥和第三密钥进行配对处理,建立第二密钥与第三密钥之间的映射关系,具体配对方法与S101类似,此处不再赘述。
在本公开实施例的一种示例性的实施方式中,应用签名装置可以生成第三密钥,具体生成方法与S101类似,此处不再赘述。
S105、对所述应用的第一次变更签名后的安装包用所述第三密钥进行第二次变更签名。
本公开实施例中,应用签名装置可以在完成第二密钥与第三密钥的配对后,基于第二密钥与第三密钥之间的映射关系,以及应用的安装包在第一次变更签名后使用的第二密钥和目标使用的第三密钥,对安装包进行第二次变更签名操作,以使应用的安装包所使用的签名密钥由第二密钥变更为第三密钥,具体的变更签名的方式与S102类似,此处不再赘述。
S106、向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对所述应用进行再次更新。
本公开实施例中,应用签名装置可以在对应用的安装包完成第二次变更签名处理后,对安装有该应用的用户设备推送第二次变更签名后的安装包,以使用户设备在接收到第二次变更签名后的安装包后,对应用进行再次更新,具体推送和更新方法与S103类似,此处不再赘述。
本公开实施例通过将第一密钥和第二密钥配对,对所述第一密钥签名的一个应用的安装包用所述第二密钥进行第一次变更签名,向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新,将所述第二密钥和第三密钥配对,对所述应用的第一次变更签名后的安装包用所述第三密钥进行第二次变更签名,向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对所述应用进行再次更新,能够在需要将应用的签名从一个私有密钥更新为另一个私有密钥时,无需卸载旧应用,也无需暴露私有密钥,即可安全的对应用签名进行变更,使得用户操作更加便捷,同时也能够保留应用数据,改善了用户体验。
在本公开一些实施例中,应用签名装置中的第一方基于所述第一密钥和所述第二密钥生成第一关系链,第二方基于所述第二密钥、所述第三密钥和所述第一关系链生成第二关系链。
具体地,应用签名装置中的第一方在将第一密钥和第二密钥进行配对处理时,可以根据第一密钥和第二密钥生成第一密钥到第二密钥的第一关系链,第二方在将第二密钥和第三密钥进行配对处理时,可以根据第二密钥、第三密钥以及第一关系链,生成第二密钥到第三密钥的第二关系链。
其中,第一关系链为用于存储第一密钥和第二密钥之间的映射关系的二进制文件,第二关系链为用于存储第二密钥和第三密钥之间的映射关系的二进制文件。
在本公开一些实施例中,应用签名装置中的所述第一方根据签名轮换指令,基于所述第一密钥和所述第二密钥生成所述第一关系链,所述第二方根据签名轮换指令,基于所述第二密钥、所述第三密钥和所述第一关系链生成所述第二关系链。
具体地,应用签名装置中的第一方可以在得到第一密钥和第二密钥后,使用apksigner工具中的rotate命令,执行apksigner rotate --out lineage1 --old-signer--ks key1.jks --new-signer --ks key2.jks命令,其中,lineage1为第一关系链,key1为第一密钥,key2为第二密钥,应用签名装置中的第一方可以在得到第二密钥、第三密钥和第一关系链后,使用apksigner工具中的rotate命令,执行apksigner rotate --in lineage1--out lineage2 --old-signer --ks key2.jks --new-signer --ks key3.jks命令,其中,lineage2为第二关系链,key3为第三密钥,从而由第一方生成第一关系链,由第二方生成第二关系链。
可选地,应用签名装置可以在生成第一关系链后,执行apksigner sign --kskey1.jks --next-signer --ks key2.jks --lineage lineage1 app.apk命令,其中,app为应用的安装包的原始名称,在生成第二关系链后,执行apksigner sign --ks key2.jks--next-signer --ks key3.jks --lineage lineage2 app1.apk命令,其中,app1为第一次变更签名后的安装包名称。
在一种实施方式中,所述第一密钥为所述第一方拥有,所述第三密钥为所述第二方拥有,所述第二密钥为所述第一方和所述第二方共享。
具体地,第一密钥为第一方拥有,只保存在第一方内部,且只有第一方有权限管控,第三密钥为第二方拥有,只保存在第二方内部,且只有第二方有权限管控,第一密钥和第二密钥均不能泄漏,第二密钥为第一方和第二方共享,可以由第一方或第二方中的任意一方生成,并在生成后发送给另一方。
可选地,由于第一密钥为第一方拥有,第三密钥为第二方拥有,将第一密钥与第二密钥进行配对,根据签名轮换指令生成第一关系链、以及对应用的安装包进行第一次变更签名的操作只能在第一方内部执行,将第二密钥与第三密钥进行配对,根据签名轮换指令生成第二关系链、以及对应用的安装包进行第二次变更签名的操作只能在第二方内部执行。
其中,第一方为终端厂商和应用供应商的其中之一,第二方为终端厂商和应用供应商中与第一方不同的一方,即,第一方为终端厂商,第二方为应用供应商,或第一方为应用供应商,第二方为终端厂商。
本公开实施例通过设置终端厂商和应用供应商共享的第二密钥,由两方各自生成其拥有的密钥与共享的第二密钥之间的关系链,并完成两次安装包的签名变更,能够在终端厂商和应用供应商都***露自身拥有的签名密钥的情况下,完成一方私有密钥到另一方私有密钥的签名变更,达到安全管控的目的,保障应用管理权限变更过程中的安全性。
在本公开一些实施例中,应用签名装置可以确定接收到所述用户设备中所述应用反馈的确认更新指令;向所述用户设备推送所述应用的第一次变更签名后的安装包;和/或:向所述用户设备中的应用安装程序推送所述应用的第一次变更签名后的安装包。
可选地,应用签名装置可以在向用户设备推送应用的第一次变更签名后的安装包时,首先确定接收到用户设备中该应用反馈的确认更新指令,该确认更新指令可以是应用在具有自动更新权限时,响应于应用签名装置发送的更新请求而反馈的确认更新指令,也可以是在应用在不具有自动更新权限时,将应用签名装置发送的更新请求推送给用户,并在用户同意更新后,向应用签名装置反馈的确认更新指令,应用签名装置在接收到确认更新指令后,向用户设备推送应用的第一次变更签名后的安装包,以使用户设备基于第一次变更签名后的安装包对应用进行更新。
可选地,应用签名装置可以向用户设备中的预设的应用安装程序推送第一次变更签名后的安装包,以使用户设备中的应用安装程序基于第一次变更签名后的安装包对应用进行更新。
可选地,应用签名装置可以根据应用权限确定采用哪种方式对应用进行更新,如果应用权限较高,则向用户设备中预设的应用安装程序推送第一次变更签名后的安装包,如果应用权限较低,则响应于用户设备中应用反馈的确认更新指令向用户设备推送第一次变更签名后的安装包。
示例的,向用户设备推送应用的第二次变更签名后的安装包的方式可以与推送第一次变更签名后的安装包的方式相同,也可以在推送第二次变更签名后的安装包时,直接采用向应用安装程序推送第二次变更签名后的安装包的方式,在此不做限定。
本公开实施例通过确定接收到用户设备中应用反馈的确认更新指令,向用户设备推送应用的第一次变更签名后的安装包,和/或:向用户设备中的应用安装程序推送应用的第一次变更签名后的安装包,能够实现对应用的静默更新,减少更新过程中用户需要完成的操作,进一步提升用户体验。
图2是本公开实施例提供的另一种应用签名方法的流程图,如图2所示,在上述实施例的基础上,可以通过如下方法进行应用签名。
如图2所示,第一方为终端厂商,第二方为应用供应商,用户设备上安装有应用的安装包apk1,终端厂商拥有第一密钥key1,第三方供应商拥有第三密钥key3,终端厂商和应用供应商共享第二密钥key2,key2可以是由终端厂商和应用供应商中的任意一方生成的,并在生成后将key2发送给另一方,以实现终端厂商和应用供应商对第二密钥key2的共享,终端厂商可以根据key1和key2生成第一关系链lineage1,使用key1、key2和lineage1对采用key1签名的应用的安装包apk1进行更改签名处理,得到第一次变更签名后采用key2签名的应用的安装包apk2,再向用户设备推送apk2,以使用户设备基于apk2对应用进行覆盖升级,应用供应商可以根据key2、key3和lineage1生成第二关系链lineage2,使用key2、key3和lineage2对采用key2签名的应用的安装包apk2进行更改签名处理,得到第二次变更签名后采用key3签名的应用的安装包apk3,再向用户设备推送apk3,以使用户设备基于apk3对应用进行覆盖升级,从而完成从终端厂商的私有密钥key1到应用供应商的私有密钥key3的签名更改。
图3是本公开实施例提供的一种应用签名装置的结构示意图。如图3所示,该应用签名装置300包括:第一配对模块310,第一重签名模块320,第一推送模块330,第二配对模块340,第二重签名模块350,第二推送模块360,其中,第一配对模块310,用于将第一密钥和第二密钥配对;第一重签名模块320,用于对所述第一密钥签名的一个应用的安装包用所述第二密钥进行第一次变更签名;第一推送模块330,用于向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新;第二配对模块340,用于将所述第二密钥和第三密钥配对;第二重签名模块350,用于对所述应用的第一次变更签名后的安装包用所述第三密钥进行第二次变更签名;第二推送模块360,用于向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对所述应用进行再次更新。
可选的,所述第一配对模块310,具体用于第一方基于所述第一密钥和所述第二密钥生成第一关系链;所述第二配对模块340,具体用于第二方基于所述第二密钥、所述第三密钥和所述第一关系链生成第二关系链。
可选的,所述第一关系链为用于存储所述第一密钥和所述第二密钥之间的映射关系的二进制文件,所述第二关系链为用于存储所述第二密钥和所述第三密钥之间的映射关系的二进制文件。
可选的,所述第一配对模块310,具体用于所述第一方根据签名轮换指令,基于所述第一密钥和所述第二密钥生成所述第一关系链;所述第二配对模块340,具体用于所述第二方根据签名轮换指令,基于所述第二密钥、所述第三密钥和所述第一关系链生成所述第二关系链。
可选的,所述第一推送模块330,包括:确定单元,用于确定接收到所述用户设备中所述应用反馈的确认更新指令;第一推送单元,用于向所述用户设备推送所述应用的第一次变更签名后的安装包;第二推送单元,用于向所述用户设备中的应用安装程序推送所述应用的第一次变更签名后的安装包。
可选的,所述第一密钥为所述第一方拥有,所述第三密钥为所述第二方拥有,所述第二密钥为所述第一方和所述第二方共享。
可选的,所述第一方为终端厂商和应用供应商的其中之一,所述第二方为所述终端厂商和所述应用供应商中与所述第一方不同的一方。
本实施例提供的应用签名装置能够执行上述任一实施例所述的方法,其执行方式和有益效果类似,在这里不再赘述。
图4是本公开实施例提供的一种计算机设备的结构示意图。
如图4所示,该计算机设备可以包括处理器410以及存储有计算机程序指令的存储器420。
具体地,上述处理器410可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器420可以包括用于信息或指令的大容量存储器。举例来说而非限制,存储器420可以包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个及其以上这些的组合。在合适的情况下,存储器420可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器420可在综合网关设备的内部或外部。在特定实施例中,存储器420是非易失性固态存储器。在特定实施例中,存储器420包括只读存储器(Read-Only Memory,ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Electrical Programmable ROM,EPROM)、电可擦除PROM(Electrically ErasableProgrammable ROM,EEPROM)、电可改写ROM(Electrically Alterable ROM,EAROM)或闪存,或者两个或及其以上这些的组合。
处理器410通过读取并执行存储器420中存储的计算机程序指令,以执行本公开实施例所提供的应用签名方法的步骤。
在一个示例中,该计算机设备还可包括收发器430和总线440。其中,如图4所示,处理器410、存储器420和收发器430通过总线440连接并完成相互间的通信。
总线440包括硬件、软件或两者。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(ExtendedIndustry Standard Architecture,EISA)总线、前端总线(Front Side BUS,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industrial Standard Architecture,ISA)总线、无限带宽互连、低引脚数(Low Pin Count,LPC)总线、存储器总线、微信道架构(MicroChannel Architecture,MCA)总线、***控件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)总线、视频电子标准协会局部(Video Electronics StandardsAssociation Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线440可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
本公开实施例还提供了一种非易失性计算机可读存储介质,该存储介质可以存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现本公开实施例所提供的应用签名方法。
上述的存储介质可以例如包括计算机程序指令的存储器420,上述指令可由应用签名设备的处理器410执行以完成本公开实施例所提供的应用签名方法。可选的,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、光盘只读存储器(Compact Disc ROM,CD-ROM)、磁带、软盘和光数据存储设备等。上述计算机程序可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种应用签名方法,其特征在于,所述方法适用于一种应用管理***,包括:
获取用于第一次变更签名的第二密钥;
将第一密钥和所述第二密钥配对产生第一配对信息,所述第一密钥是一个应用的安装包原始使用的签名密钥;
对所述应用的安装包用所述第二密钥和所述第一配对信息进行第一次变更签名;
向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新;
将所述第二密钥和第三密钥配对产生第二配对信息,所述第三密钥用于第二次变更签名;
对所述应用的第一次变更签名后的安装包用所述第三密钥和所述第二配对信息进行第二次变更签名;
向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对基于所述第一次变更签名后的安装包更新后的所述应用进行再次更新。
2.根据权利要求1所述的方法,其特征在于,所述将第一密钥和所述第二密钥配对产生第一配对信息,包括:
第一方基于所述第一密钥和所述第二密钥生成第一关系链;
所述将所述第二密钥和第三密钥配对产生第二配对信息,包括:
第二方基于所述第二密钥、所述第三密钥和所述第一关系链生成第二关系链。
3.根据权利要求2所述的方法,其特征在于,所述第一关系链为用于存储所述第一密钥和所述第二密钥之间的映射关系的二进制文件,所述第二关系链为用于存储所述第二密钥和所述第三密钥之间的映射关系的二进制文件。
4.根据权利要求2所述的方法,其特征在于,所述第一方基于所述第一密钥和所述第二密钥生成第一关系链,包括:
所述第一方根据签名轮换指令,基于所述第一密钥和所述第二密钥生成所述第一关系链;
所述第二方基于所述第二密钥、所述第三密钥和所述第一关系链生成第二关系链,包括:
所述第二方根据签名轮换指令,基于所述第二密钥、所述第三密钥和所述第一关系链生成所述第二关系链。
5.根据权利要求1所述的方法,其特征在于,所述向用户设备推送所述应用的第一次变更签名后的安装包,包括:
确定接收到所述用户设备中所述应用反馈的确认更新指令;
向所述用户设备推送所述应用的第一次变更签名后的安装包;
和/或:
向所述用户设备中的应用安装程序推送所述应用的第一次变更签名后的安装包。
6.根据权利要求2所述的方法,其特征在于,所述第一密钥为所述第一方拥有,所述第三密钥为所述第二方拥有,所述第二密钥为所述第一方和所述第二方共享。
7.根据权利要求6所述的方法,其特征在于,所述第一方为终端厂商和应用供应商的其中之一,所述第二方为所述终端厂商和所述应用供应商中与所述第一方不同的一方。
8.一种应用签名装置,其特征在于,所述装置适用于一种应用管理***,包括:
获取模块,用于获取用于第一次变更签名的第二密钥;
第一配对模块,用于将第一密钥和所述第二密钥配对产生第一配对信息,所述第一密钥是一个应用的安装包原始使用的签名密钥;
第一重签名模块,用于对所述应用的安装包用所述第二密钥和所述第一配对信息进行第一次变更签名;
第一推送模块,用于向用户设备推送所述应用的第一次变更签名后的安装包,以使所述用户设备基于所述第一次变更签名后的安装包对所述应用进行更新;
第二配对模块,用于将所述第二密钥和第三密钥配对产生第二配对信息,所述第三密钥用于第二次变更签名;
第二重签名模块,用于对所述应用的第一次变更签名后的安装包用所述第三密钥和所述第二配对信息进行第二次变更签名;
第二推送模块,用于向用户设备推送所述应用的第二次变更签名后的安装包,以使所述用户设备基于所述第二次变更签名后的安装包对基于所述第一次变更签名后的安装包更新后的所述应用进行再次更新。
9.一种计算机设备,其特征在于,包括:
处理器;
存储器,用于存储可执行指令;
其中,所述处理器用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现上述权利要求1-7中任一项所述的方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现上述权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311347086.0A CN117077090B (zh) | 2023-10-16 | 2023-10-16 | 应用签名方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311347086.0A CN117077090B (zh) | 2023-10-16 | 2023-10-16 | 应用签名方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117077090A CN117077090A (zh) | 2023-11-17 |
CN117077090B true CN117077090B (zh) | 2024-01-23 |
Family
ID=88715762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311347086.0A Active CN117077090B (zh) | 2023-10-16 | 2023-10-16 | 应用签名方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117077090B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130093847A (ko) * | 2012-01-27 | 2013-08-23 | 한국인터넷진흥원 | 어플리케이션 보안 시스템 및 방법 |
CN103595530A (zh) * | 2012-08-17 | 2014-02-19 | 华为技术有限公司 | 软件密钥更新方法和装置 |
CN106209377A (zh) * | 2016-07-01 | 2016-12-07 | 陕西师范大学 | 一种基于多变量的可抗合谋攻击的代理重签名方法 |
CN109740305A (zh) * | 2018-12-26 | 2019-05-10 | 深圳市优***科技股份有限公司 | 一种应用程序安装包签名方法、安装方法及电子设备 |
CN110414190A (zh) * | 2019-07-30 | 2019-11-05 | 宇龙计算机通信科技(深圳)有限公司 | 应用安装包的签名方法、相关装置、存储介质及电子设备 |
CN112364340A (zh) * | 2020-11-27 | 2021-02-12 | 深圳市慧为智能科技股份有限公司 | 权限管理方法、装置、设备及计算机可读存储介质 |
CN113541966A (zh) * | 2021-07-23 | 2021-10-22 | 湖北亿咖通科技有限公司 | 权限管理方法、装置、电子设备及存储介质 |
CN114329358A (zh) * | 2021-12-28 | 2022-04-12 | 深圳市兆珑科技有限公司 | 应用签名方法、***、交易终端及服务平台 |
CN114462101A (zh) * | 2022-01-29 | 2022-05-10 | 麒麟合盛网络技术股份有限公司 | 一种应用apk包的处理***、方法和装置 |
CN114969720A (zh) * | 2022-05-31 | 2022-08-30 | 东集技术股份有限公司 | 安卓应用的安装方法、装置、存储介质及计算机设备 |
WO2023058860A1 (ko) * | 2021-10-06 | 2023-04-13 | 삼성전자주식회사 | 멀티 서명된 apk 파일을 처리하는 전자 장치 및 그 동작 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070277038A1 (en) * | 2006-05-25 | 2007-11-29 | General Dynamics C4 Systems, Inc. | Method for authentication of software within a product |
KR20150084221A (ko) * | 2014-01-13 | 2015-07-22 | 삼성전자주식회사 | 어플리케이션 패키지의 재서명 장치, 방법 및 상기 어플리케이션 패키지를 실행하는 단말장치 |
-
2023
- 2023-10-16 CN CN202311347086.0A patent/CN117077090B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130093847A (ko) * | 2012-01-27 | 2013-08-23 | 한국인터넷진흥원 | 어플리케이션 보안 시스템 및 방법 |
CN103595530A (zh) * | 2012-08-17 | 2014-02-19 | 华为技术有限公司 | 软件密钥更新方法和装置 |
CN106209377A (zh) * | 2016-07-01 | 2016-12-07 | 陕西师范大学 | 一种基于多变量的可抗合谋攻击的代理重签名方法 |
CN109740305A (zh) * | 2018-12-26 | 2019-05-10 | 深圳市优***科技股份有限公司 | 一种应用程序安装包签名方法、安装方法及电子设备 |
CN110414190A (zh) * | 2019-07-30 | 2019-11-05 | 宇龙计算机通信科技(深圳)有限公司 | 应用安装包的签名方法、相关装置、存储介质及电子设备 |
CN112364340A (zh) * | 2020-11-27 | 2021-02-12 | 深圳市慧为智能科技股份有限公司 | 权限管理方法、装置、设备及计算机可读存储介质 |
CN113541966A (zh) * | 2021-07-23 | 2021-10-22 | 湖北亿咖通科技有限公司 | 权限管理方法、装置、电子设备及存储介质 |
WO2023058860A1 (ko) * | 2021-10-06 | 2023-04-13 | 삼성전자주식회사 | 멀티 서명된 apk 파일을 처리하는 전자 장치 및 그 동작 방법 |
CN114329358A (zh) * | 2021-12-28 | 2022-04-12 | 深圳市兆珑科技有限公司 | 应用签名方法、***、交易终端及服务平台 |
CN114462101A (zh) * | 2022-01-29 | 2022-05-10 | 麒麟合盛网络技术股份有限公司 | 一种应用apk包的处理***、方法和装置 |
CN114969720A (zh) * | 2022-05-31 | 2022-08-30 | 东集技术股份有限公司 | 安卓应用的安装方法、装置、存储介质及计算机设备 |
Non-Patent Citations (1)
Title |
---|
基于信任链传递的APK重签名算法设计;于成丽等;《电视技术》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117077090A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109314855B (zh) | 能够迁移订阅的方法 | |
KR101067615B1 (ko) | 전자 장치에의 데이터 로딩 | |
CN1653460B (zh) | 加载应用程序到设备中的方法,设备和设备中的智能卡 | |
JP5178341B2 (ja) | オプショナルなコンポーネントを伴うセキュアブートの方法 | |
CN101194461B (zh) | 用于证书翻转的方法及装置 | |
CN103858130A (zh) | 管理权限方法、装置及终端 | |
CN104751049A (zh) | 一种应用程序安装方法及移动终端 | |
JP2018533282A (ja) | コンピューティングデバイス上の証明書を管理するための技法 | |
CN103744686A (zh) | 智能终端中应用安装的控制方法和*** | |
JP6793667B2 (ja) | アプリケーションダウンロード方法及び装置 | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
CN107122212A (zh) | 固件加密方法 | |
US10582383B2 (en) | Method of managing a profile stored in a secure element, and corresponding secure element | |
CN108830113A (zh) | 一种Android设备唯一标识的获取方法 | |
CN105574414A (zh) | 将文件加载到电子装置中的随机存取存储器中的方法和相关联电子装置 | |
CN110688648A (zh) | 安全芯片固件更新方法及装置 | |
CN105700918A (zh) | 一种***升级方法及装置 | |
KR100660641B1 (ko) | 휴대 단말기의 부팅 보안 방법 및 그 휴대 단말기 | |
JP2023525576A (ja) | ソフトウェア更新のための認証キーの制御範囲 | |
CN108197469B (zh) | 校验应用程序的方法、装置和存储介质以及电子设备 | |
CN114880011A (zh) | Ota升级方法、装置、电子设备及可读存储介质 | |
CN117077090B (zh) | 应用签名方法、装置、设备及存储介质 | |
CN106576239B (zh) | 一种安全单元中内容管理的方法及装置 | |
CN107479923A (zh) | 应用程序升级方法、装置及显示终端 | |
CN111935302A (zh) | 钥匙管理装置、方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |