CN108737101B - 一种应用程序的验证方法、装置及云端服务器 - Google Patents

一种应用程序的验证方法、装置及云端服务器 Download PDF

Info

Publication number
CN108737101B
CN108737101B CN201710277630.7A CN201710277630A CN108737101B CN 108737101 B CN108737101 B CN 108737101B CN 201710277630 A CN201710277630 A CN 201710277630A CN 108737101 B CN108737101 B CN 108737101B
Authority
CN
China
Prior art keywords
information
application
mobile terminal
application program
current application
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
Application number
CN201710277630.7A
Other languages
English (en)
Other versions
CN108737101A (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 Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
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 Mobile Communications Group Co Ltd, China Mobile Communications Ltd Research Institute filed Critical China Mobile Communications Group Co Ltd
Priority to CN201710277630.7A priority Critical patent/CN108737101B/zh
Publication of CN108737101A publication Critical patent/CN108737101A/zh
Application granted granted Critical
Publication of CN108737101B publication Critical patent/CN108737101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/103Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for protecting copy right
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Abstract

本发明提供了一种应用程序的验证方法、装置及云端服务器,其中方法包括:获取移动终端通过云端服务器公钥加密的应用程序验证请求,其中应用程序验证请求中包括移动终端的身份信息和当前所安装应用程序的当前应用程序信息;其中当前应用程序信息为经移动终端私钥进行签章的信息;通过云端服务器私钥解密应用程序验证请求,获得移动终端的身份信息和当前应用程序信息;根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与移动终端的身份信息相对应的移动终端公钥和预装应用信息;根据移动终端公钥和预装应用信息,对当前应用程序信息进行合法性验证。解决了现有的恶意应用程序导致移动终端设备运行不稳定的问题。

Description

一种应用程序的验证方法、装置及云端服务器
技术领域
本发明涉及移动终端领域,尤其涉及一种应用程序的验证方法、装置及云端服务器。
背景技术
目前,渠道刷机已形成一条黑色产业链,从业人员从移动终端厂商或者分销商得到移动终端货源后,对移动终端进行渠道刷机,然后再将移动终端投入市场。其中,渠道刷机为在移动终端中刷入大量的恶意应用程序,使用恶意应用程序替换移动终端中预置应用程序,这样在进行渠道刷机后,从业人员可以通过恶意应用程序来实现恶意收费,从而谋取暴利。但是,经过渠道刷机的移动终端,恶意应用程序会占用移动终端的大量存储空间,从而导致移动终端设备运行不稳定,用户体验较差,甚至造成用户经济损失。
发明内容
本发明的目的是提供一种应用程序的验证方法、装置及云端服务器,以解决现有的恶意应用程序占用移动终端的大量存储空间导致的移动终端设备运行不稳定、用户体验较差以及造成用户经济损失的问题。
第一方面,本发明实施例提供一种应用程序的验证方法,应用于云端服务器,所述验证方法包括:
获取移动终端通过云端服务器公钥加密的应用程序验证请求,其中所述应用程序验证请求中包括所述移动终端的身份信息和当前所安装应用程序的当前应用程序信息;其中所述当前应用程序信息为经移动终端私钥进行签章的信息;
通过云端服务器私钥解密所述应用程序验证请求,获得所述移动终端的身份信息和所述当前应用程序信息;
根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息;
根据所述移动终端公钥和所述预装应用信息,对所述当前应用程序信息进行合法性验证。
可选地,所述应用程序验证请求中还包括用于指示所述应用程序验证请求发送时间的时间戳信息;所述通过云端服务器私钥解密所述应用程序验证请求的步骤之后,所述验证方法还包括:获取所述时间戳信息;判断所述时间戳信息的有效性;当所述时间戳信息为有效信息时,进入所述根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息的步骤;当所述时间戳信息为无效信息时,生成一应用程序信息验证失败的第一响应信息,并将所述第一响应信息发送至所述移动终端。
可选地,所述根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息的步骤之前,所述验证方法还包括:获取所述移动终端初始化时所上传、通过云端服务器公钥加密的预置信息;其中所述预置信息中包括移动终端的身份信息和预装应用信息;所述预装应用信息为经移动终端私钥进行签章的信息;通过云端服务器私钥解密所述预置信息,获得所述移动终端的身份信息和所述预装应用信息;查找与所述移动终端的身份信息相对应的移动终端公钥,并建立移动终端的身份信息、预装应用信息和所查找到的移动终端公钥之间的对应关系。
可选地,所述根据所述移动终端公钥和所述预装应用信息,对所述当前应用程序信息进行合法性验证的步骤,包括:利用所述移动终端公钥对所述当前应用程序信息进行验章,得到验章结果;当所述验章结果为验章成功时,将所述当前应用程序信息与所述预装应用信息进行比较,得到比较结果;根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果。
可选地,所述当前应用程序信息包括移动终端上当前安装的所有应用程序对应的当前应用记录项,所述预装应用信息包括移动终端上所有预装应用程序的预装应用记录项;其中,每一所述当前应用记录项和每一所述预装应用记录项均包括:应用程序的应用包名、应用安装时间、应用版本号和应用消息摘要算法第五版MD5值。
可选地,所述将所述当前应用程序信息与所述预装应用信息进行比较,得到比较结果的步骤,包括:将所述当前应用程序信息中的每一当前应用记录项与所述预装应用信息中的预装应用记录项进行比较,得到比较结果。
可选地,所述根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果的步骤,包括:当根据所述比较结果,确定所述当前应用程序信息中的当前应用记录项与所述预装应用信息中的预装应用记录项一一对应时,则得到验证所述当前应用程序信息为合法信息的第一验证结果;当根据所述比较结果,确定所述当前应用程序信息为所述预装应用信息的子集时,则得到验证所述当前应用程序信息为合法信息的第二验证结果;当根据所述比较结果,确定所述当前应用程序信息中的至少一个第一当前应用记录项未记录于所述预装应用信息中时,则得到验证所述当前应用程序信息为不合法信息的第三验证结果;当根据所述比较结果,确定所述当前应用程序信息中存在一第二当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号相同、MD5值不同时,则得到验证所述当前应用程序信息为不合法信息的第四验证结果;当根据所述比较结果,确定所述当前应用程序信息中存在一第三当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号不同、MD5值不同时,获取与所述第三当前应用记录项中的应用版本号相对应的官方MD5值;其中,若所述第三当前应用记录项中的MD5值与所述官方MD5值相同、且除所述第三当前应用记录项之外的剩余当前应用记录项均在所述预装应用信息中存在对应预装应用记录项时,则得到验证所述当前应用程序信息为合法信息的第五验证结果;若所述第三当前应用记录项中的MD5值与所述官方MD5值不同,则得到验证所述当前应用程序信息为不合法信息的第六验证结果。
可选地,所述根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果的步骤之后,所述验证方法还包括:根据所述验证结果,生成响应信息,并将所述响应信息发送至所述移动终端。
可选地,所述根据所述验证结果,生成响应信息的步骤,包括:当验证结果为所述第一验证结果时,生成当前应用程序信息验证成功的响应信息;当验证结果为所述第二验证结果时,生成当前应用程序信息验证成功、并确认已卸载所述预装应用信息中剩余预装应用记录项对应的应用程序的响应信息;其中,所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;当验证结果为所述第三验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述至少一个第一当前应用记录项对应的应用程序的响应信息;当验证结果为所述第四验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第二当前应用记录项对应的应用程序的响应信息;当验证结果为所述第五验证结果时,生成当前应用程序信息验证成功、并确认已升级所述第三当前应用记录项对应的应用程序的响应信息;当验证结果为所述第六验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第三当前应用记录项对应的应用程序的响应信息。
可选地,所述根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果的步骤之后,所述验证方法还包括:当验证结果为所述第二验证结果时,删除所述预装应用信息中的剩余预装应用记录项;其中所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;当验证结果为所述第五验证结果时,将所述预装应用信息中与所述第三当前应用记录项所对应的预装应用记录项中的应用版本号和MD5值,更改为所述第三当前应用记录项中的应用版本号和MD5值。
第二方面,本发明实施例还提供一种应用程序的验证装置,应用于云端服务器,所述验证装置包括:
第一获取模块,用于获取移动终端通过云端服务器公钥加密的应用程序验证请求,其中所述应用程序验证请求中包括所述移动终端的身份信息和当前所安装应用程序的当前应用程序信息;其中所述当前应用程序信息为经移动终端私钥进行签章的信息;
第二获取模块,用于通过云端服务器私钥解密所述应用程序验证请求,获得所述移动终端的身份信息和所述当前应用程序信息;
第三获取模块,用于根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息;
验证模块,用于根据所述移动终端公钥和所述预装应用信息,对所述当前应用程序信息进行合法性验证。
可选地,所述应用程序验证请求中还包括用于指示所述应用程序验证请求发送时间的时间戳信息;所述验证装置还包括:第四获取模块,用于获取所述时间戳信息;判断模块,用于判断所述时间戳信息的有效性;处理模块,用于当所述时间戳信息为有效信息时,触发所述第三获取模块;第一生成及发送模块,用于当所述时间戳信息为无效信息时,生成一应用程序信息验证失败的第一响应信息,并将所述第一响应信息发送至所述移动终端。
可选地,所述验证装置还包括:第五获取模块,用于获取所述移动终端初始化时所上传、通过云端服务器公钥加密的预置信息;其中所述预置信息中包括移动终端的身份信息和预装应用信息;所述预装应用信息为经移动终端私钥进行签章的信息;第六获取模块,用于通过云端服务器私钥解密所述预置信息,获得所述移动终端的身份信息和所述预装应用信息;关系建立模块,用于查找与所述移动终端的身份信息相对应的移动终端公钥,并建立移动终端的身份信息、预装应用信息和所查找到的移动终端公钥之间的对应关系。
可选地,所述验证模块包括:验章单元,用于利用所述移动终端公钥对所述当前应用程序信息进行验章,得到验章结果;比较单元,用于当所述验章结果为验章成功时,将所述当前应用程序信息与所述预装应用信息进行比较,得到比较结果;验证单元,用于根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果。
可选地,所述当前应用程序信息包括移动终端上当前安装的所有应用程序对应的当前应用记录项,所述预装应用信息包括移动终端上所有预装应用程序的预装应用记录项;其中,每一所述当前应用记录项和每一所述预装应用记录项均包括:应用程序的应用包名、应用安装时间、应用版本号和应用消息摘要算法第五版MD5值。
可选地,所述比较单元用于,将所述当前应用程序信息中的每一当前应用记录项与所述预装应用信息中的预装应用记录项进行比较,得到比较结果。
可选地,所述验证单元包括:第一验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中的当前应用记录项与所述预装应用信息中的预装应用记录项一一对应时,则得到验证所述当前应用程序信息为合法信息的第一验证结果;第二验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息为所述预装应用信息的子集时,则得到验证所述当前应用程序信息为合法信息的第二验证结果;第三验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中的至少一个第一当前应用记录项未记录于所述预装应用信息中时,则得到验证所述当前应用程序信息为不合法信息的第三验证结果;第四验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中存在一第二当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号相同、MD5值不同时,则得到验证所述当前应用程序信息为不合法信息的第四验证结果;第五验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中存在一第三当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号不同、MD5值不同时,获取与所述第三当前应用记录项中的应用版本号相对应的官方MD5值;其中,若所述第三当前应用记录项中的MD5值与所述官方MD5值相同、且除所述第三当前应用记录项之外的剩余当前应用记录项均在所述预装应用信息中存在对应预装应用记录项时,则得到验证所述当前应用程序信息为合法信息的第五验证结果;若所述第三当前应用记录项中的MD5值与所述官方MD5值不同,则得到验证所述当前应用程序信息为不合法信息的第六验证结果。
可选地,所述验证装置还包括:第二生成及发送模块,用于根据所述验证结果,生成响应信息,并将所述响应信息发送至所述移动终端。
可选地,所述第二生成及发送模块包括:第一生成单元,用于当验证结果为所述第一验证结果时,生成当前应用程序信息验证成功的响应信息;第二生成单元,用于当验证结果为所述第二验证结果时,生成当前应用程序信息验证成功、并确认已卸载所述预装应用信息中剩余预装应用记录项对应的应用程序的响应信息;其中,所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;第三生成单元,用于当验证结果为所述第三验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述至少一个第一当前应用记录项对应的应用程序的响应信息;第四生成单元,用于当验证结果为所述第四验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第二当前应用记录项对应的应用程序的响应信息;第五生成单元,用于当验证结果为所述第五验证结果时,生成当前应用程序信息验证成功、并确认已升级所述第三当前应用记录项对应的应用程序的响应信息;第六生成单元,用于当验证结果为所述第六验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第三当前应用记录项对应的应用程序的响应信息。
可选地,所述验证装置还包括:删除模块,用于当验证结果为所述第二验证结果时,删除所述预装应用信息中的剩余预装应用记录项;其中所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;更改模块,用于当验证结果为所述第五验证结果时,将所述预装应用信息中与所述第三当前应用记录项所对应的预装应用记录项中的应用版本号和MD5值,更改为所述第三当前应用记录项中的应用版本号和MD5值。
第三方面,本发明实施例还提供一种云端服务器,所述云端服务器包括第二方面中任一项的应用程序的验证装置,所述验证装置被配置在所述云端服务器的处理器中。
本发明的有益效果是:
本发明实施例预先存储移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,然后在获取到移动终端通过云端服务器公钥加密的应用程序验证请求时,通过云端服务器私钥解密该应用程序验证请求,从而获取应用程序验证请求中的移动终端的身份信息和移动终端上当前安装的应用程序的当前应用程序信息,最后通过预装应用信息对当前应用程序信息进行合法性验证,实现了移动终端上当前安装的应用程序的快速合法验证,解决了现有的恶意应用程序占用移动终端的大量存储空间时导致移动终端设备运行不稳定、用户体验较差以及造成用户经济损失的问题。
附图说明
图1表示本发明的实施例中应用程序的验证方法的步骤流程图;
图2表示本发明的实施例中应用程序的验证方法的详细步骤流程图;
图3表示本发明的实施例中应用程序的验证装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,为本发明的实施例中应用程序的验证方法的步骤流程图,该验证方法应用于云端服务器,包括:
步骤101,获取移动终端通过云端服务器公钥加密的应用程序验证请求。
在本步骤中,具体的,云端服务器在获取应用程序验证请求时,可以接收移动终端发送的、通过云端服务器公钥加密的应用程序验证请求。
此外,应用程序验证请求中包括移动终端的身份信息和当前所安装的应用程序的当前应用程序信息。此外,该当前应用程序信息为经移动终端私钥进行签章的信息。
另外,优选的,移动终端的身份信息可以为移动终端的国际移动设备身份码(IMEI)。
这样,通过云端服务器公钥对应用程序验证请求进行加密,则使得只有云端服务器私钥才能够解密得到该应用程序验证请求,提高了应用程序验证请求发送过程中的安全性。此外,通过移动终端私钥对当前应用程序信息进行签章,则只有在移动终端私钥正确的情况下,云端服务器才能够使用移动终端公钥对当前应用程序信息进行成功验章,使得云端服务器明确了该当前应用程序信息为移动终端的当前应用程序信息,而不是其他移动终端的当前应用程序信息,保证了云端服务器能够安全的获取到移动终端的正确的当前应用程序信息。
步骤102,通过云端服务器私钥解密应用程序验证请求,获得移动终端的身份信息和当前应用程序信息。
在本步骤中,具体的,由于应用程序验证请求通过云端服务器公钥进行加密,则云端服务器可以通过云端服务器私钥解密应用程序验证请求,从而获得应用程序验证请求中包括的移动终端的身份信息和当前应用程序信息。
步骤103,根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与移动终端的身份信息相对应的移动终端公钥和预装应用信息。
在本步骤中,具体的,在获取到移动终端的身份信息和当前应用程序信息之后,可以根据移动终端的身份信息和云端服务器预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与移动终端的身份信息相对应的移动终端公钥和预装应用信息。
其中,具体的,预装应用信息为移动终端初始化时安装的应用程序的应用信息。例如,在移动终端出厂前或者恢复出厂设置后,移动终端上的应用程序的应用信息。
步骤104,根据移动终端公钥和预装应用信息,对当前应用程序信息进行合法性验证。
在本步骤中,具体的,在得到移动终端公钥和预装应用信息时,可以根据移动终端公钥和预装应用信息,对当前应用程序信息进行合法性验证。
具体的,由于当前应用程序信息为经移动终端私钥进行签章的信息,则需要先对当前应用程序信息进行验章,以证明该当前应用程序信息的有效性,当然,只有在当前应用程序信息有效的前提下,才能够根据预装应用信息对当前应用程序信息进行合法性验证。
这样,本实施例中的移动终端和云端服务器之间的通信基于非对称加密的方式进行加密,提高了云端服务器获取的应用程序验证请求以及应用程序验证请求中当前应用程序信息的安全性和有效性;此外,云端服务器预先存储移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,然后在获取到移动终端的身份信息和当前应用程序信息之后,基于移动终端的身份信息,获取到与移动终端的身份信息相对应的移动终端公钥和预装应用信息,最后根据预装应用信息对当前应用程序信息进行合法性验证,这样在基于当前应用程序信息的有效性的前提下,提高了当前应用程序信息合法性验证的有效性,解决了现有的恶意应用程序占用移动终端的大量存储空间时导致移动终端设备运行不稳定、用户体验较差以及造成用户经济损失的问题。
此外,进一步地,为了防止重放攻击,应用程序验证请求中还包括用于指示应用程序验证请求发送时间的时间戳信息。这样,在通过云端服务器私钥解密应用程序验证请求之后,还可以获取该时间戳信息,并判断该时间戳信息的有效性。其中,当时间戳信息为有效信息时,则可以进入根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息的步骤;当时间戳信息为无效信息时,则可以生成一应用程序信息验证失败的第一响应信息,并将第一响应信息发送至移动终端。
这样,在云端服务器验证到时间戳信息为无效信息时,则移动终端可能遭遇到重放攻击,此时云端服务器可以直接生成一应用程序信息验证失败的第一响应信息,并将第一响应信息发送至移动终端,以使移动终端在收到该第一响应信息时,可以显示提示用户移动终端存在风险,建议用户恢复出厂设置或者进行系统升级的显示信息。当然,在云端服务器验证到时间戳信息为有效信息时,则可以根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与移动终端的身份信息相对应的移动终端公钥和预装应用信息,从而为当前应用程序信息的合法性验证提供依据。
另外,进一步地,在根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与移动终端的身份信息相对应的移动终端公钥和预装应用信息之前,云端服务器需要先获取并建立移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系。
具体的,云端服务器在获取并建立移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系时,可以先获取移动终端初始化时所上传、通过云端服务器公钥加密的预置信息,其中该预置信息中包括移动终端的身份信息和预装应用信息,且预装应用信息为经移动终端私钥进行签章的信息;然后通过云端服务器私钥解密预置信息,获得移动终端的身份信息和预装应用信息,最后查找与移动终端的身份信息相对应的移动终端公钥,并建立移动终端的身份信息、预装应用信息和所查找到的移动终端公钥之间的对应关系。
具体的,移动终端私钥与移动终端的身份信息一一对应,且移动终端在初始化时通过移动终端私钥对预置信息中的预装应用信息进行签章运算。此外,在移动终端完成初始化时,移动终端使用云端服务器公钥将预置信息上传至云端服务器,云端服务器接收到该预置信息时,先通过云端服务器私钥解密该预置信息,从而获取到移动终端的身份信息和预装应用信息。此时,由于预装应用信息为经过移动终端私钥签章的信息,因此云端服务器需要先在预存的移动终端的身份信息和移动终端公钥的对应关系中,查找到与移动终端的身份信息相对应的移动终端公钥,然后通过移动终端公钥对预装应用信息进行验章,当然只有当对预装应用信息验章成功时,才能够证明预装应用信息的有效性,此时建立移动终端的身份信息、预装应用信息和所查找到的移动终端公钥之间的对应关系。
此外,具体的,预装应用信息包括移动终端上所有预装应用程序的预装应用记录项。其中,每一预装应用记录项均包括:应用程序的应用包名、应用安装时间、应用版本号和应用消息摘要算法第五版(MD5)值。优选的,预装应用记录项中的各项的排列顺序可以依次为应用包名、应用安装时间、应用版本号和MD5值。
这样,通过非对称加密的方式获取到移动终端的预置信息和预装应用信息,保证了预置信息和预装应用信息的安全性和有效性,进而保证了云端服务器建立的移动终端的身份信息、预装应用信息和所查找到的移动终端公钥之间的对应关系的安全性和有效性,使得当前应用程序信息的合法性验证具有了有效的验证基础。
另外,进一步地,如图2所示,为本发明的实施例中应用程序的验证方法的具体步骤流程图,该验证方法的具体步骤包括:
步骤201,获取移动终端通过云端服务器公钥加密的应用程序验证请求;
在本步骤中,具体的,云端服务器在获取应用程序验证请求时,可以接收移动终端发送的、通过云端服务器公钥加密的应用程序验证请求。
此外,应用程序验证请求中包括移动终端的身份信息和当前所安装的应用程序的当前应用程序信息。此外,该当前应用程序信息为经移动终端私钥进行签章的信息。
另外,优选的,移动终端的身份信息可以为移动终端的IMEI。
步骤202,通过云端服务器私钥解密应用程序验证请求,获得移动终端的身份信息和当前应用程序信息;
在本步骤中,具体的,由于应用程序验证请求通过云端服务器公钥进行加密,则云端服务器可以通过云端服务器私钥解密应用程序验证请求,从而获得应用程序验证请求中包括的移动终端的身份信息和当前应用程序信息。
此外,具体的,当前应用程序信息包括移动终端上当前安装的所有应用程序对应的当前应用记录项,且其中每一当前应用记录项均包括应用程序的应用包名、应用安装时间、应用版本号和MD5值。优选的,当前应用记录项中的各项的排列顺序可以依次为应用包名、应用安装时间、应用版本号和MD5值。
步骤203,根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与移动终端的身份信息相对应的移动终端公钥和预装应用信息;
在本步骤中,具体的,在获取到移动终端的身份信息和当前应用程序信息之后,可以根据移动终端的身份信息和云端服务器预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与移动终端的身份信息相对应的移动终端公钥和预装应用信息。
具体的,预装应用信息包括移动终端上所有预装应用程序的预装应用记录项。其中,每一预装应用记录项均包括:应用程序的应用包名、应用安装时间、应用版本号和MD5值。优选的,预装应用记录项中的各项的排列顺序可以依次为应用包名、应用安装时间、应用版本号和MD5值。
步骤204,利用移动终端公钥对当前应用程序信息进行验章,得到验章结果;
在本步骤中,具体的,在根据移动终端公钥和预装应用信息,对当前应用程序信息进行合法性验证时,由于当前应用程序信息为经移动终端私钥进行签章的信息,则云端服务器首先需要利用获取到的与移动终端的身份信息相对应的移动终端公钥对当前应用程序信息进行验章,从而得到验章结果。
步骤205,当验章结果为验章成功时,将当前应用程序信息与预装应用信息进行比较,得到比较结果;
在本步骤中,具体的,当验章结果为验章失败时,则证明当前应用程序信息为无效信息,此时移动终端私钥或者验证机制有可能已经被破坏,则可以直接生成一应用程序信息验证失败的第二响应信息,并将该第二响应信息发送至移动终端,以使移动终端在收到该第二响应信息时,可以显示提示用户移动终端存在风险,建议用户恢复出厂设置或者进行系统升级的显示信息。
当验章结果为验章成功时,则证明当前应用程序信息为有效信息,此时可以将当前应用程序信息与预装应用信息进行比较。
具体的,在将当前应用程序信息与预装应用信息进行比较,得到比较结果时,可以将当前应用程序信息中的每一当前应用记录项与预装应用信息中的预装应用记录项进行比较,得到比较结果。
步骤206,根据比较结果,获得对当前应用程序信息进行合法性验证的验证结果;
在本步骤中,在根据比较结果,获得对当前应用程序信息进行合法性验证的验证结果时,可以包括如下几种情况:
其一,当根据比较结果,确定当前应用程序信息中的当前应用记录项与预装应用信息中的预装应用记录项一一对应时,则得到验证当前应用程序信息为合法信息的第一验证结果。
例如,预装应用信息a中包括预装应用记录项a1、a2、a3和a4,当前应用程序信息A中包括当前应用记录项A1、A2、A3和A4。
其中,在预装应用信息a中,
a1=packagename1|201701171805|1.0.1|73947912|;
a2=packagename2|201701171905|2.0.3|65599761|;
a 3=packagename3|201701171915|1.6.1|88654466|;
a 4=packagename4|201701171916|3.4.5|27394729|。
在当前应用程序信息A中,
A1=packagename1|201701171805|1.0.1|73947912|;
A2=packagename2|201701171905|2.0.3|65599761|;
A3=packagename3|201701171915|1.6.1|88654466|;
A4=packagename4|201701171916|3.4.5|27394729|。
由上可以看出,在将当前应用程序信息A中的当前应用记录项与预装应用信息a中的预装应用记录项相比较时,当前应用记录项与预装应用记录项一一相对应,说明移动终端当前安装的所有应用程序均为预装应用程序,此时可以得到验证当前应用程序信息为合法信息的第一验证结果。
其二,当根据比较结果,确定当前应用程序信息为预装应用信息的子集时,则得到验证当前应用程序信息为合法信息的第二验证结果。
例如,预装应用信息a中包括预装应用记录项a1、a2、a3和a4,当前应用程序信息A中包括当前应用记录项A1、A3和A4。
其中,在预装应用信息a中,
a1=packagename1|201701171805|1.0.1|73947912|;
a2=packagename2|201701171905|2.0.3|65599761|;
a 3=packagename3|201701171915|1.6.1|88654466|;
a 4=packagename4|201701171916|3.4.5|27394729|。
在当前应用程序信息A中,
A1=packagename1|201701171805|1.0.1|73947912|;
A3=packagename3|201701171915|1.6.1|88654466|;
A4=packagename4|201701171916|3.4.5|27394729|。
由上可以看出,在将当前应用程序信息A中的当前应用记录项与预装应用信息a中的预装应用记录项相比较时,当前应用程序信息A为预装应用信息的子集,此时说明移动终端进行了预装应用程序的卸载操作,而并未进行其他的新增或更改,因此可以得到验证当前应用程序信息为合法信息的第二验证结果。
其三,当根据比较结果,确定当前应用程序信息中的至少一个第一当前应用记录项未记录于预装应用信息中时,则得到验证当前应用程序信息为不合法信息的第三验证结果。
例如,预装应用信息a中包括预装应用记录项a1、a2、a3和a4,当前应用程序信息A中包括当前应用记录项A1、A2、A3、A4和A5。
其中,在预装应用信息a中,
a1=packagename1|201701171805|1.0.1|73947912|;
a2=packagename2|201701171905|2.0.3|65599761|;
a 3=packagename3|201701171915|1.6.1|88654466|;
a 4=packagename4|201701171916|3.4.5|27394729|。
在当前应用程序信息A中,
A1=packagename1|201701171805|1.0.1|73947912|;
A2=packagename2|201701171905|2.0.3|65599761|;
A3=packagename3|201701171915|1.6.1|88654466|;
A4=packagename4|201701171916|3.4.5|27394729|;
A5=packagenameM|201701181905|2.2.2|62341261|。
由上可以看出,在将当前应用程序信息A中的当前应用记录项与预装应用信息a中的预装应用记录项相比较时,当前应用程序信息A中的A5未记录于预装应用信息a中(预装应用信息a中不包括A5的应用包名),此时说明移动终端可能进行了渠道刷机,在移动终端上安装了其他应用伪装为预装应用,此时可以得到验证当前应用程序信息为不合法信息的第三验证结果。
其四,当根据比较结果,确定当前应用程序信息中存在一第二当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号相同、MD5值不同时,则得到验证当前应用程序信息为不合法信息的第四验证结果。
例如,预装应用信息a中包括预装应用记录项a1、a2、a3和a4,当前应用程序信息A中包括当前应用记录项A1、A2、A3和A4。
其中,在预装应用信息a中,
a1=packagename1|201701171805|1.0.1|73947912|;
a2=packagename2|201701171905|2.0.3|65599761|;
a 3=packagename3|201701171915|1.6.1|88654466|;
a 4=packagename4|201701171916|3.4.5|27394729|。
在当前应用程序信息A中,
A1=packagename1|201701171805|1.0.1|73947912|;
A2=packagename2|201701181905|2.0.3|62341261|;
A3=packagename3|201701171915|1.6.1|88654466|;
A4=packagename4|201701171916|3.4.5|27394729|。
由上可以看出,在将当前应用程序信息A中的当前应用记录项与预装应用信息a中的预装应用记录项相比较时,A2的MD5值与a2的MD5值不同,此时说明移动终端可能进行了渠道刷机,a2对应的预装应用可能被山寨或者恶意应用所替换,此时可以得到验证当前应用程序信息为不合法信息的第四验证结果。
其五,当根据比较结果,确定当前应用程序信息中存在一第三当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号不同、MD5值不同时,获取与第三当前应用记录项中的应用版本号相对应的官方MD5值;其中,若第三当前应用记录项中的MD5值与官方MD5值相同、且当前应用程序信息中除第三当前应用记录项之外的剩余当前应用记录项均在预装应用信息中存在对应预装应用记录项,则得到验证当前应用程序信息为合法信息的第五验证结果;若第三当前应用记录项中的MD5值与官方MD5值不同,则得到验证当前应用程序信息为不合法信息的第六验证结果。
例如,预装应用信息a中包括预装应用记录项a1、a2、a3和a4,当前应用程序信息A中包括当前应用记录项A1、A2、A3和A4。
其中,在预装应用信息a中,
a1=packagename1|201701171805|1.0.1|73947912|;
a2=packagename2|201701171905|2.0.3|65599761|;
a 3=packagename3|201701171915|1.6.1|88654466|;
a 4=packagename4|201701171916|3.4.5|27394729|。
在当前应用程序信息A中,
A1=packagename1|201701171805|1.0.1|73947912|;
A2=packagename2|201701181905|2.0.3|62341261|;
A3=packagename3|201701171915|1.6.1|88654466|;
A4=packagename4|201701171916|3.4.5|27394729|。
由上可以看出,在将当前应用程序信息A中的当前应用记录项与预装应用信息a中的预装应用记录项相比较时,A2的应用版本号与a2的应用版本号不同,且A2的MD5值与a2的MD5值也不相同,此时移动终端可能对A2进行了升级操作。为了判断是否对A2进行了升级操作,可以获取与A2的应用版本号相对应的官方MD5值。
相应地,若此时A2的官方MD5值为62341261,则说明对A2进行了合法升级,此时又由于当前应用程序信息A中除A2之外的剩余当前应用记录项均在预装应用信息a中存在对应预装应用记录项,则可以得到验证当前应用程序信息为合法信息的第五验证结果;
此外,若A2的官方MD5值不是62341261,则说明移动终端可能进行了渠道刷机,a2对应的预装应用可能被山寨或者恶意应用所替换,此时可以得到验证当前应用程序信息为不合法信息的第六验证结果。
步骤207,根据验证结果,生成响应信息,并将响应信息发送至移动终端。
在本步骤中,具体的,在根据验证结果,生成响应信息,并将响应信息发送至移动终端时,可以根据不同的验证结果,生成不同的响应信息,具体如下:
其一,当验证结果为第一验证结果时,可以生成当前应用程序信息验证成功的响应信息。
具体的,云端服务器将验证结果为第一验证结果时生成的响应信息发送至移动终端时,移动终端不针对该响应信息作出反应。
其二,当验证结果为第二验证结果时,可以生成当前应用程序信息验证成功、并确认已卸载预装应用信息中剩余预装应用记录项对应的应用程序的响应信息;其中,剩余预装应用记录项为预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项。
具体的,云端服务器在将验证结果为第二验证结果时生成的响应信息发送至移动终端时,移动终端不针对该响应信息作出反应。
此外,具体的,在当验证结果为第二验证结果时,云端服务器可以删除预装应用信息中的剩余预装应用记录项;其中剩余预装应用记录项为预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项。这样,可以使得云端服务器中存储的预装应用信息为实时更新后的预装应用信息。
其三,当验证结果为第三验证结果时,生成当前应用程序信息验证失败、并提醒移动终端卸载至少一个第一当前应用记录项对应的应用程序的响应信息。
具体的,云端服务器在将验证结果为第三验证结果时生成的响应信息发送至移动终端时,移动终端可以根据该响应信息显示提醒用户卸载该至少一个第一当前应用记录项对应的应用程序的信息,或者移动终端可以根据该响应信息直接卸载该至少一个第一当前应用记录项对应的应用程序。
其四,当验证结果为第四验证结果时,生成当前应用程序信息验证失败、并提醒移动终端卸载第二当前应用记录项对应的应用程序的响应信息。
具体的,云端服务器在将验证结果为第四验证结果时生成的响应信息发送至移动终端时,移动终端可以根据该响应信息显示提醒用户卸载该第二当前应用记录项对应的应用程序的信息,或者移动终端可以根据该响应信息直接卸载该第二当前应用记录项对应的应用程序。
其五,当验证结果为第五验证结果时,生成当前应用程序信息验证成功、并确认已升级第三当前应用记录项对应的应用程序的响应信息。
具体的,云端服务器在将验证结果为第五验证结果时生成的响应信息发送至移动终端时,移动终端不针对该响应信息作出反应。
此外,具体的,当验证结果为第五验证结果时,可以将预装应用信息中与第三当前应用记录项所对应的预装应用记录项中的应用版本号和MD5值,更改为第三当前应用记录项中的应用版本号和MD5值。这样,可以使得云端服务器中存储的预装应用信息为实时更新后的预装应用信息。
其六,当验证结果为第六验证结果时,生成当前应用程序信息验证失败、并提醒移动终端卸载第三当前应用记录项对应的应用程序的响应信息。
具体的,云端服务器在将验证结果为第六验证结果时生成的响应信息发送至移动终端时,移动终端可以根据该响应信息显示提醒用户卸载该第三当前应用记录项对应的应用程序的信息,或者移动终端可以根据该响应信息直接卸载该第三当前应用记录项对应的应用程序。
这样,本发明实施例中的云端服务器预先存储移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,然后在获取到移动终端通过云端服务器公钥加密的应用程序验证请求时,通过云端服务器私钥解密该应用程序验证请求,从而获取应用程序验证请求中的移动终端的身份信息和移动终端上当前安装的应用程序的当前应用程序信息,并采用移动终端公钥对当前应用程序信息进行验章,这样通过采用非对称加密的方式进行加密,提高了云端服务器获取的应用程序验证请求以及应用程序验证请求中当前应用程序信息的安全性和有效性。最后通过当前应用程序信息与预装应用信息之间的比较,对当前应用程序信息进行合法性验证,这样在基于当前应用程序信息的有效性的前提下,提高了当前应用程序信息合法性验证的有效性,解决了现有的恶意应用程序占用移动终端的大量存储空间时导致移动终端设备运行不稳定、用户体验较差以及造成用户经济损失的问题。
如图3所示,为本发明的实施例中应用程序的验证装置的结构框图,该验证装置应用于云端服务器,包括:
第一获取模块301,用于获取移动终端通过云端服务器公钥加密的应用程序验证请求,其中所述应用程序验证请求中包括所述移动终端的身份信息和当前所安装应用程序的当前应用程序信息;其中所述当前应用程序信息为经移动终端私钥进行签章的信息;
第二获取模块302,用于通过云端服务器私钥解密所述应用程序验证请求,获得所述移动终端的身份信息和所述当前应用程序信息;
第三获取模块303,用于根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息;
验证模块304,用于根据所述移动终端公钥和所述预装应用信息,对所述当前应用程序信息进行合法性验证。
可选地,所述应用程序验证请求中还包括用于指示所述应用程序验证请求发送时间的时间戳信息;所述验证装置还包括:第四获取模块,用于获取所述时间戳信息;判断模块,用于判断所述时间戳信息的有效性;处理模块,用于当所述时间戳信息为有效信息时,触发所述第三获取模块;第一生成及发送模块,用于当所述时间戳信息为无效信息时,生成一应用程序信息验证失败的第一响应信息,并将所述第一响应信息发送至所述移动终端。
可选地,所述验证装置还包括:第五获取模块,用于获取所述移动终端初始化时所上传、通过云端服务器公钥加密的预置信息;其中所述预置信息中包括移动终端的身份信息和预装应用信息;所述预装应用信息为经移动终端私钥进行签章的信息;第六获取模块,用于通过云端服务器私钥解密所述预置信息,获得所述移动终端的身份信息和所述预装应用信息;关系建立模块,用于查找与所述移动终端的身份信息相对应的移动终端公钥,并建立移动终端的身份信息、预装应用信息和所查找到的移动终端公钥之间的对应关系。
可选地,所述验证模块包括:验章单元,用于利用所述移动终端公钥对所述当前应用程序信息进行验章,得到验章结果;比较单元,用于当所述验章结果为验章成功时,将所述当前应用程序信息与所述预装应用信息进行比较,得到比较结果;验证单元,用于根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果。
可选地,所述当前应用程序信息包括移动终端上当前安装的所有应用程序对应的当前应用记录项,所述预装应用信息包括移动终端上所有预装应用程序的预装应用记录项;其中,每一所述当前应用记录项和每一所述预装应用记录项均包括:应用程序的应用包名、应用安装时间、应用版本号和应用消息摘要算法第五版MD5值。
可选地,所述比较单元用于,将所述当前应用程序信息中的每一当前应用记录项与所述预装应用信息中的预装应用记录项进行比较,得到比较结果。
可选地,所述验证单元包括:第一验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中的当前应用记录项与所述预装应用信息中的预装应用记录项一一对应时,则得到验证所述当前应用程序信息为合法信息的第一验证结果;第二验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息为所述预装应用信息的子集时,则得到验证所述当前应用程序信息为合法信息的第二验证结果;第三验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中的至少一个第一当前应用记录项未记录于所述预装应用信息中时,则得到验证所述当前应用程序信息为不合法信息的第三验证结果;第四验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中存在一第二当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号相同、MD5值不同时,则得到验证所述当前应用程序信息为不合法信息的第四验证结果;第五验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中存在一第三当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号不同、MD5值不同时,获取与所述第三当前应用记录项中的应用版本号相对应的官方MD5值;其中,若所述第三当前应用记录项中的MD5值与所述官方MD5值相同、且除所述第三当前应用记录项之外的剩余当前应用记录项均在所述预装应用信息中存在对应预装应用记录项时,则得到验证所述当前应用程序信息为合法信息的第五验证结果;若所述第三当前应用记录项中的MD5值与所述官方MD5值不同,则得到验证所述当前应用程序信息为不合法信息的第六验证结果。
可选地,所述验证装置还包括:第二生成及发送模块,用于根据所述验证结果,生成响应信息,并将所述响应信息发送至所述移动终端。
可选地,所述第二生成及发送模块包括:第一生成单元,用于当验证结果为所述第一验证结果时,生成当前应用程序信息验证成功的响应信息;第二生成单元,用于当验证结果为所述第二验证结果时,生成当前应用程序信息验证成功、并确认已卸载所述预装应用信息中剩余预装应用记录项对应的应用程序的响应信息;其中,所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;第三生成单元,用于当验证结果为所述第三验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述至少一个第一当前应用记录项对应的应用程序的响应信息;第四生成单元,用于当验证结果为所述第四验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第二当前应用记录项对应的应用程序的响应信息;第五生成单元,用于当验证结果为所述第五验证结果时,生成当前应用程序信息验证成功、并确认已升级所述第三当前应用记录项对应的应用程序的响应信息;第六生成单元,用于当验证结果为所述第六验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第三当前应用记录项对应的应用程序的响应信息。
可选地,所述验证装置还包括:删除模块,用于当验证结果为所述第二验证结果时,删除所述预装应用信息中的剩余预装应用记录项;其中所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;更改模块,用于当验证结果为所述第五验证结果时,将所述预装应用信息中与所述第三当前应用记录项所对应的预装应用记录项中的应用版本号和MD5值,更改为所述第三当前应用记录项中的应用版本号和MD5值。
这样,本发明实施例中的云端服务器预先存储移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,然后在获取到移动终端通过云端服务器公钥加密的应用程序验证请求时,通过云端服务器私钥解密该应用程序验证请求,从而获取应用程序验证请求中的移动终端的身份信息和移动终端上当前安装的应用程序的当前应用程序信息,并采用移动终端公钥对当前应用程序信息进行验章,这样通过采用非对称加密的方式进行加密,提高了云端服务器获取的应用程序验证请求以及应用程序验证请求中当前应用程序信息的安全性和有效性。最后通过当前应用程序信息与预装应用信息之间的比较,对当前应用程序信息进行合法性验证,这样在基于当前应用程序信息的有效性的前提下,提高了当前应用程序信息合法性验证的有效性,解决了现有的恶意应用程序占用移动终端的大量存储空间时导致移动终端设备运行不稳定、用户体验较差以及造成用户经济损失的问题。
在本发明的另一个实施例中,还提供了一种云端服务器,该云端服务器包括上述实施例中的应用程序的验证装置,所述验证装置被配置在所述云端服务器的处理器中。该云端服务器还可以包括存储器等,该存储器用于存储处理器处理过程中所涉及到的数据等。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。

Claims (21)

1.一种应用程序的验证方法,应用于云端服务器,其特征在于,所述验证方法包括:
获取移动终端通过云端服务器公钥加密的应用程序验证请求,其中所述应用程序验证请求中包括所述移动终端的身份信息和当前所安装应用程序的当前应用程序信息;其中所述当前应用程序信息为经移动终端私钥进行签章的信息;
通过云端服务器私钥解密所述应用程序验证请求,获得所述移动终端的身份信息和所述当前应用程序信息;
根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息;其中,所述预装应用信息为移动终端初始化时安装的应用程序的应用信息;
根据所述移动终端公钥和所述预装应用信息,对所述当前应用程序信息进行合法性验证。
2.根据权利要求1所述的验证方法,其特征在于,
所述应用程序验证请求中还包括用于指示所述应用程序验证请求发送时间的时间戳信息;
所述通过云端服务器私钥解密所述应用程序验证请求的步骤之后,所述验证方法还包括:
获取所述时间戳信息;
判断所述时间戳信息的有效性;
当所述时间戳信息为有效信息时,进入所述根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息的步骤;
当所述时间戳信息为无效信息时,生成一应用程序信息验证失败的第一响应信息,并将所述第一响应信息发送至所述移动终端。
3.根据权利要求1所述的验证方法,其特征在于,所述根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息的步骤之前,所述验证方法还包括:
获取所述移动终端初始化时所上传、通过云端服务器公钥加密的预置信息;其中所述预置信息中包括移动终端的身份信息和预装应用信息;所述预装应用信息为经移动终端私钥进行签章的信息;
通过云端服务器私钥解密所述预置信息,获得所述移动终端的身份信息和所述预装应用信息;
查找与所述移动终端的身份信息相对应的移动终端公钥,并建立移动终端的身份信息、预装应用信息和所查找到的移动终端公钥之间的对应关系。
4.根据权利要求1所述的验证方法,其特征在于,所述根据所述移动终端公钥和所述预装应用信息,对所述当前应用程序信息进行合法性验证的步骤,包括:
利用所述移动终端公钥对所述当前应用程序信息进行验章,得到验章结果;
当所述验章结果为验章成功时,将所述当前应用程序信息与所述预装应用信息进行比较,得到比较结果;
根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果。
5.根据权利要求4所述的验证方法,其特征在于,所述当前应用程序信息包括移动终端上当前安装的所有应用程序对应的当前应用记录项,所述预装应用信息包括移动终端上所有预装应用程序的预装应用记录项;其中,
每一所述当前应用记录项和每一所述预装应用记录项均包括:应用程序的应用包名、应用安装时间、应用版本号和应用消息摘要算法第五版MD5值。
6.根据权利要求5所述的验证方法,其特征在于,所述将所述当前应用程序信息与所述预装应用信息进行比较,得到比较结果的步骤,包括:
将所述当前应用程序信息中的每一当前应用记录项与所述预装应用信息中的预装应用记录项进行比较,得到比较结果。
7.根据权利要求5或6所述的验证方法,其特征在于,所述根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果的步骤,包括:
当根据所述比较结果,确定所述当前应用程序信息中的当前应用记录项与所述预装应用信息中的预装应用记录项一一对应时,则得到验证所述当前应用程序信息为合法信息的第一验证结果;
当根据所述比较结果,确定所述当前应用程序信息为所述预装应用信息的子集时,则得到验证所述当前应用程序信息为合法信息的第二验证结果;
当根据所述比较结果,确定所述当前应用程序信息中的至少一个第一当前应用记录项未记录于所述预装应用信息中时,则得到验证所述当前应用程序信息为不合法信息的第三验证结果;
当根据所述比较结果,确定所述当前应用程序信息中存在一第二当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号相同、MD5值不同时,则得到验证所述当前应用程序信息为不合法信息的第四验证结果;
当根据所述比较结果,确定所述当前应用程序信息中存在一第三当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号不同、MD5值不同时,获取与所述第三当前应用记录项中的应用版本号相对应的官方MD5值;其中,
若所述第三当前应用记录项中的MD5值与所述官方MD5值相同、且除所述第三当前应用记录项之外的剩余当前应用记录项均在所述预装应用信息中存在对应预装应用记录项时,则得到验证所述当前应用程序信息为合法信息的第五验证结果;
若所述第三当前应用记录项中的MD5值与所述官方MD5值不同,则得到验证所述当前应用程序信息为不合法信息的第六验证结果。
8.根据权利要求7所述的验证方法,其特征在于,所述根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果的步骤之后,所述验证方法还包括:
根据所述验证结果,生成响应信息,并将所述响应信息发送至所述移动终端。
9.根据权利要求8所述的验证方法,其特征在于,所述根据所述验证结果,生成响应信息的步骤,包括:
当验证结果为所述第一验证结果时,生成当前应用程序信息验证成功的响应信息;
当验证结果为所述第二验证结果时,生成当前应用程序信息验证成功、并确认已卸载所述预装应用信息中剩余预装应用记录项对应的应用程序的响应信息;其中,所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;
当验证结果为所述第三验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述至少一个第一当前应用记录项对应的应用程序的响应信息;
当验证结果为所述第四验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第二当前应用记录项对应的应用程序的响应信息;
当验证结果为所述第五验证结果时,生成当前应用程序信息验证成功、并确认已升级所述第三当前应用记录项对应的应用程序的响应信息;
当验证结果为所述第六验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第三当前应用记录项对应的应用程序的响应信息。
10.根据权利要求7所述的验证方法,其特征在于,所述根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果的步骤之后,所述验证方法还包括:
当验证结果为所述第二验证结果时,删除所述预装应用信息中的剩余预装应用记录项;其中所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;
当验证结果为所述第五验证结果时,将所述预装应用信息中与所述第三当前应用记录项所对应的预装应用记录项中的应用版本号和MD5值,更改为所述第三当前应用记录项中的应用版本号和MD5值。
11.一种应用程序的验证装置,应用于云端服务器,其特征在于,所述验证装置包括:
第一获取模块,用于获取移动终端通过云端服务器公钥加密的应用程序验证请求,其中所述应用程序验证请求中包括所述移动终端的身份信息和当前所安装应用程序的当前应用程序信息;其中所述当前应用程序信息为经移动终端私钥进行签章的信息;
第二获取模块,用于通过云端服务器私钥解密所述应用程序验证请求,获得所述移动终端的身份信息和所述当前应用程序信息;
第三获取模块,用于根据预先存储的移动终端公钥、移动终端的身份信息和预装应用信息之间的对应关系,获取与所述移动终端的身份信息相对应的移动终端公钥和预装应用信息;其中,所述预装应用信息为移动终端初始化时安装的应用程序的应用信息;
验证模块,用于根据所述移动终端公钥和所述预装应用信息,对所述当前应用程序信息进行合法性验证。
12.根据权利要求11所述的验证装置,其特征在于,
所述应用程序验证请求中还包括用于指示所述应用程序验证请求发送时间的时间戳信息;所述验证装置还包括:
第四获取模块,用于获取所述时间戳信息;
判断模块,用于判断所述时间戳信息的有效性;
处理模块,用于当所述时间戳信息为有效信息时,触发所述第三获取模块;
第一生成及发送模块,用于当所述时间戳信息为无效信息时,生成一应用程序信息验证失败的第一响应信息,并将所述第一响应信息发送至所述移动终端。
13.根据权利要求11所述的验证装置,其特征在于,所述验证装置还包括:
第五获取模块,用于获取所述移动终端初始化时所上传、通过云端服务器公钥加密的预置信息;其中所述预置信息中包括移动终端的身份信息和预装应用信息;所述预装应用信息为经移动终端私钥进行签章的信息;
第六获取模块,用于通过云端服务器私钥解密所述预置信息,获得所述移动终端的身份信息和所述预装应用信息;
关系建立模块,用于查找与所述移动终端的身份信息相对应的移动终端公钥,并建立移动终端的身份信息、预装应用信息和所查找到的移动终端公钥之间的对应关系。
14.根据权利要求11所述的验证装置,其特征在于,所述验证模块包括:
验章单元,用于利用所述移动终端公钥对所述当前应用程序信息进行验章,得到验章结果;
比较单元,用于当所述验章结果为验章成功时,将所述当前应用程序信息与所述预装应用信息进行比较,得到比较结果;
验证单元,用于根据所述比较结果,获得对所述当前应用程序信息进行合法性验证的验证结果。
15.根据权利要求14所述的验证装置,其特征在于,所述当前应用程序信息包括移动终端上当前安装的所有应用程序对应的当前应用记录项,所述预装应用信息包括移动终端上所有预装应用程序的预装应用记录项;
其中,每一所述当前应用记录项和每一所述预装应用记录项均包括:应用程序的应用包名、应用安装时间、应用版本号和应用消息摘要算法第五版MD5值。
16.根据权利要求15所述的验证装置,其特征在于,所述比较单元用于,将所述当前应用程序信息中的每一当前应用记录项与所述预装应用信息中的预装应用记录项进行比较,得到比较结果。
17.根据权利要求15或16所述的验证装置,其特征在于,所述验证单元包括:
第一验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中的当前应用记录项与所述预装应用信息中的预装应用记录项一一对应时,则得到验证所述当前应用程序信息为合法信息的第一验证结果;
第二验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息为所述预装应用信息的子集时,则得到验证所述当前应用程序信息为合法信息的第二验证结果;
第三验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中的至少一个第一当前应用记录项未记录于所述预装应用信息中时,则得到验证所述当前应用程序信息为不合法信息的第三验证结果;
第四验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中存在一第二当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号相同、MD5值不同时,则得到验证所述当前应用程序信息为不合法信息的第四验证结果;
第五验证子单元,用于当根据所述比较结果,确定所述当前应用程序信息中存在一第三当前应用记录项与预装应用信息中对应预装应用记录项的应用版本号不同、MD5值不同时,获取与所述第三当前应用记录项中的应用版本号相对应的官方MD5值;其中,
若所述第三当前应用记录项中的MD5值与所述官方MD5值相同、且除所述第三当前应用记录项之外的剩余当前应用记录项均在所述预装应用信息中存在对应预装应用记录项时,则得到验证所述当前应用程序信息为合法信息的第五验证结果;
若所述第三当前应用记录项中的MD5值与所述官方MD5值不同,则得到验证所述当前应用程序信息为不合法信息的第六验证结果。
18.根据权利要求17所述的验证装置,其特征在于,所述验证装置还包括:
第二生成及发送模块,用于根据所述验证结果,生成响应信息,并将所述响应信息发送至所述移动终端。
19.根据权利要求18所述的验证装置,其特征在于,所述第二生成及发送模块包括:
第一生成单元,用于当验证结果为所述第一验证结果时,生成当前应用程序信息验证成功的响应信息;
第二生成单元,用于当验证结果为所述第二验证结果时,生成当前应用程序信息验证成功、并确认已卸载所述预装应用信息中剩余预装应用记录项对应的应用程序的响应信息;其中,所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;
第三生成单元,用于当验证结果为所述第三验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述至少一个第一当前应用记录项对应的应用程序的响应信息;
第四生成单元,用于当验证结果为所述第四验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第二当前应用记录项对应的应用程序的响应信息;
第五生成单元,用于当验证结果为所述第五验证结果时,生成当前应用程序信息验证成功、并确认已升级所述第三当前应用记录项对应的应用程序的响应信息;
第六生成单元,用于当验证结果为所述第六验证结果时,生成当前应用程序信息验证失败、并提醒所述移动终端卸载所述第三当前应用记录项对应的应用程序的响应信息。
20.根据权利要求17所述的验证装置,其特征在于,所述验证装置还包括:
删除模块,用于当验证结果为所述第二验证结果时,删除所述预装应用信息中的剩余预装应用记录项;其中所述剩余预装应用记录项为所述预装应用信息中除与当前应用程序信息相对应的之外的预装应用记录项;
更改模块,用于当验证结果为所述第五验证结果时,将所述预装应用信息中与所述第三当前应用记录项所对应的预装应用记录项中的应用版本号和MD5值,更改为所述第三当前应用记录项中的应用版本号和MD5值。
21.一种云端服务器,其特征在于,所述云端服务器包括如权利要求11至20任意一项所述的应用程序的验证装置,所述验证装置被配置在所述云端服务器的处理器中。
CN201710277630.7A 2017-04-25 2017-04-25 一种应用程序的验证方法、装置及云端服务器 Active CN108737101B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710277630.7A CN108737101B (zh) 2017-04-25 2017-04-25 一种应用程序的验证方法、装置及云端服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710277630.7A CN108737101B (zh) 2017-04-25 2017-04-25 一种应用程序的验证方法、装置及云端服务器

Publications (2)

Publication Number Publication Date
CN108737101A CN108737101A (zh) 2018-11-02
CN108737101B true CN108737101B (zh) 2021-06-29

Family

ID=63934814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710277630.7A Active CN108737101B (zh) 2017-04-25 2017-04-25 一种应用程序的验证方法、装置及云端服务器

Country Status (1)

Country Link
CN (1) CN108737101B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144594B (zh) * 2018-11-07 2022-03-01 上海商米科技集团股份有限公司 检测及警示未经许可的刷机的方法和系统
CN110058871A (zh) * 2019-04-23 2019-07-26 湖南快乐阳光互动娱乐传媒有限公司 检测程序非法反编译和更新正式版本的方法及系统
CN113766487B (zh) * 2021-09-01 2023-11-14 北京百度网讯科技有限公司 云手机信息获取方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685122A (zh) * 2012-05-06 2012-09-19 北京深思洛克软件技术股份有限公司 基于云端服务器的软件保护的方法
CN103164260A (zh) * 2011-12-15 2013-06-19 中国银联股份有限公司 用于移动终端的应用程序管理系统及方法
CN103188221A (zh) * 2011-12-28 2013-07-03 腾讯科技(深圳)有限公司 应用程序登录方法、装置和移动终端
CN106998551A (zh) * 2016-01-25 2017-08-01 中兴通讯股份有限公司 一种应用接入鉴权的方法、系统、装置及终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141802B2 (en) * 2012-09-25 2015-09-22 Intel Corporation Computing device boot software authentication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164260A (zh) * 2011-12-15 2013-06-19 中国银联股份有限公司 用于移动终端的应用程序管理系统及方法
CN103188221A (zh) * 2011-12-28 2013-07-03 腾讯科技(深圳)有限公司 应用程序登录方法、装置和移动终端
CN102685122A (zh) * 2012-05-06 2012-09-19 北京深思洛克软件技术股份有限公司 基于云端服务器的软件保护的方法
CN106998551A (zh) * 2016-01-25 2017-08-01 中兴通讯股份有限公司 一种应用接入鉴权的方法、系统、装置及终端

Also Published As

Publication number Publication date
CN108737101A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN110597538B (zh) 一种基于ota升级系统的软件升级方法和ota升级系统
CN110225063B (zh) 汽车车载系统的升级方法、升级系统、服务器及车载终端
JP6332970B2 (ja) 安全なソフトウェアの更新のためのシステム及び方法
US7506381B2 (en) Method for securing an electronic device, a security system and an electronic device
EP1712992A1 (en) Updating of data instructions
CN110414248B (zh) 一种调试微处理器的方法及微处理器
CN108595198B (zh) 一种安全的固件更新方法
CN106850311B (zh) 用于固件升级的数据安全传输系统及方法
CN109862099B (zh) 一种升级校验方法、装置、终端及系统
CN108737101B (zh) 一种应用程序的验证方法、装置及云端服务器
MX2012009025A (es) Autorizacion de funciones de software a traves de agentes delegados.
CN109144552A (zh) 一种引导固件刷新方法和装置
CN110784466B (zh) 信息认证方法、装置和设备
WO2007030180A2 (en) Application revocation using an application revocation list in a portable electronic device
CN110795126A (zh) 一种固件安全升级系统
CN112104672B (zh) 一种通过微信小程序下载蓝牙设备证书的实现方法及系统
CN110688660A (zh) 一种终端安全启动的方法及装置、存储介质
CN114637987A (zh) 基于平台验证的安全芯片固件下载方法及系统
CN110069266B (zh) 应用升级方法、装置、计算机设备以及存储介质
CN108599959B (zh) 授权证书校验方法、装置及可读存储介质、应用设备
CN110837643B (zh) 一种可信执行环境的激活方法和装置
CN107908962A (zh) 应用于Android智能终端的自检方法
CN111064723B (zh) 一种基于备份系统的空中下载升级方法及系统
CN110086623B (zh) 一种基于安全元件的固件防伪方法及安全元件
CN107704756B (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