CN104035874B - 一种软件程序检测方法、装置及系统 - Google Patents
一种软件程序检测方法、装置及系统 Download PDFInfo
- Publication number
- CN104035874B CN104035874B CN201410306485.7A CN201410306485A CN104035874B CN 104035874 B CN104035874 B CN 104035874B CN 201410306485 A CN201410306485 A CN 201410306485A CN 104035874 B CN104035874 B CN 104035874B
- Authority
- CN
- China
- Prior art keywords
- software program
- testing result
- digital signature
- signature information
- testing
- 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
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种软件程序检测方法、装置及系统,本发明中将第三方检测中心的检测得到的检测结果集成至软件程序中,并对软件程序进行数字签名,防止软件程序在传输的过程中被篡改,从而使检测结果能够准确表示软件程序是否有恶意行为,保证了检测结果的准确性。由于现有技术中的检测结果以报告形式通知送检方,软件程序中不存在检测结果,本发明将检测结果集成至软件程序中,当智能终端从第三方市场上下载软件程序时,安装过程中能够显示检测结果至用户,以提示用户使用中存在的风险,从而能够减少甚至避免用户安装恶意软件,减少甚至避免恶意软件带来的恶意行为,提高系统的安全性。
Description
技术领域
本发明涉及软件安全领域,尤其涉及一种软件程序检测方法、装置及系统。
背景技术
现在智能终端越来越多,应用软件也越来越多,用户需要下载应用软件时,会在智能终端的第三方市场下载,在基于Android系统的终端设备上,都会内置官方市场GoogleMarket,但现在几乎所有国行智能终端都默认删除Google Market,而是将安智市场,木蚂蚁等第三方市场安装在智能终端中,这些第三方市场中应用程序的安全性检测存在漏洞,导致用户安装的应用程序存在恶意行为或安全风险。例如:在用户不知情的情况下,未经授权对外传送客户的隐私信息,消耗用户流量,自动链接广告等。
因此现在需要一种方法能够有效地避免用户安装恶意软件,减少恶意软件带来的恶意行为或安全风险,提高系统的安全性。
发明内容
本发明提供了一种软件程序检测方法、装置及系统,本发明能够有效地避免安装恶意软件,减少恶意软件带来的恶意行为或安全风险,提高系统的安全性。
为了实现上述目的,本发明提供了以下技术手段:
一种软件程序检测方法,应用于第三方检测中心包括:
接收送检方发送的软件程序;
对所述软件程序进行检测获得检测结果;
将所述检测结果集成至所述软件程序中;
对包含检测结果的软件程序进行数字签名,获得PKCS#7格式的数字签名信息;
将数字签名信息集成至软件程序中,将该软件程序反馈至送检方。
优选的,对包含检测结果的软件程序进行数字签名包括:
将包含检测结果的软件程序利用摘要算法获得摘要信息;
利用私钥对所述摘要信息进行加密,获得PKCS#7格式的数字签名信息,所述私钥由第三方检测中心生成并安全保存。
优选的,在对所述软件程序进行检测获得检测结果之后还包括:
对所述检测结果进行加密处理,获得加密后的检测结果。
优选的,将所述检测结果集成至所述软件程序包括:
将所述检测结果写入所述软件程序安装包的结束标记内。
一种软件程序检测方法,应用于第三方市场,包括:
接收应用开发者发送的软件程序;
当所述软件程序中包含检测结果,则对所述数字签名信息进行验证,同时获得检测机构信息;
当所述数字签名信息验证通过,则判断所述检测机构是否可信;
当数字签名信息验证通过且所述检测结构可信,则分析检测结果;
当所述检测结果表明存在恶意行为或安全风险时,则向所述应用开发者发送修改指令。
优选的,还包括:
当所述软件程序中不包含检测结果,则将所述软件程序发送给至少一个第三方检测中心,按软件程序检测方法进行检测,所述第三方检测中心为预先存储的可信检测机构。
优选的,对所述数字签名信息进行验证包括:
在数字签名信息中获取公钥、签名信息以及摘要算法;
利用公钥解密签名信息,获得第一摘要信息;
将所述软件程序,利用同样的摘要算法获得第二摘要信息;
将所述第一摘要信息和所述第二摘要信息进行对比,若一致则表明数字签名信息验证通过,若不一致则表明数字签名信息验证失败。
优选的,还包括:
当数字签名信息验证失败,则删除所述检测结果和数字签名信息,重新软件程序检测方法进行检测;
当所述软件程序中不包含检测结果,则软件程序检测方法进行检测。
优选的,判断所述检测机构是否可信包括:
判断预先存储的可信检测机构中是否包含所述检测机构;
当包含所述检测机构,则提取公钥与预先存储的可信检测机构公钥进行对比,若一致表明所述检测机构可信,否则检测机构不可信。
优选的,还包括:
当所述检测结构不可信,则将所述软件程序发送给至少一个第三方检测中心;
接收第三方检测中心反馈的包括至少一个检测结果当前的软件程序;所述当前的软件程序由至少一个第三方检测中心依次进行检测,并将各自的检测结果集成至软件程序后形成的,所述第三方检测中心为预先存储的可信检测机构。
优选的,还包括:
当所述检测结果表明未存在恶意行为或安全风险,则将所述应用程序上架供用户下载。
优选的,还包括:
将包括至少一个检测结果当前的软件程序上架,供用户下载。
一种软件程序检测方法,应用于智能终端,包括:
从第三方市场获得软件程序;
判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;
当所述软件程序中包括检测结果;
对所述数字签名信息进行验证,当所述数字签名信息通过,显示所述检测结果。
优选的,还包括:
当所述软件程序未包括检测结果时,则提示用户该软件程序未经检测存在风险;
当所述数字签名信息验证失败,则提示用户检测结果不可信。
优选的,还包括:
当所述软件程序中包括多个检测结果时,则对所述多个检测结果进行整合,将整合后的结果进行显示。
一种软件程序检测装置,应用于第三方检测中心,包括:
接收单元,用于接收送检方发送的软件程序;
检测单元,用于对所述软件程序进行检测获得检测结果;
集成单元,用于将所述检测结果集成至所述软件程序中;
验证单元,用于对包含检测结果的软件程序进行数字签名,获得PKCS#7格式的数字签名信息;
发送单元,用于将数字签名信息集成至软件程序中,将该软件程序反馈至送检方。
一种软件程序检测装置,应用于第三方市场,包括:
第二接收单元,用于接收应用开发者发送的软件程序;
第二验证单元,用于当所述软件程序中包含检测结果,则对所述数字签名信息进行验证,同时获得检测机构;
判断单元,当所述数字签名信息验证通过,则判断所述检测机构是否可信;
分析单元,用于当数字签名信息验证通过且所述检测结构可信,则分析检测结果;
通知单元,用于当所述检测结果表明存在恶意行为或安全风险,则向所述应用开发者发送修改指令。
一种软件程序检测装置,应用于智能终端,包括:
获取单元,用于从第三方市场获得软件程序;
第二判断单元,用于判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;
第三验证单元,用于对所述数字签名信息进行验证;
显示单元,用于当所述数字签名信息通过,显示所述检测结果。
一种软件程序检测系统,包括:
第三方检测中心,第三方市场和智能终端;
所述第三方检测中心,用于接收送检方发送的软件程序;对所述软件程序进行检测获得检测结果;将所述检测结果集成至所述软件程序中;对包含检测结果的软件程序进行数字签名,获得PKCS#7格式的数字签名信息;将数字签名信息集成至软件程序中,将该软件程序反馈至送检方;
所述第三方市场,用于接收应用开发者发送的软件程序;当所述软件程序中包含检测结果,则对所述数字签名信息进行验证,同时获得检测机构;当所述数字签名信息验证通过,则判断所述检测机构是否可信;当数字签名信息验证通过且所述检测结构可信,则分析检测结果;当所述检测结果表明存在恶意行为或安全风险,则向所述应用开发者发送修改指令;
所述智能终端,用于从第三方市场获得软件程序;判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;当所述软件程序中包括检测结果;对所述数字签名信息进行验证,当所述数字签名信息通过,显示所述检测结果。
一种软件程序检测方法,应用于第三方市场,包括:
接收送检方发送的软件程序;
判断所述软件程序中是否有检测结果;
当所述软件程序中包含检测结果且数字签名信息完整,获得已有的第一检测结果;
对所述软件程序进行检测获得第二检测结果;
将第二检测结果组成检测报告集成至所述软件程序中,获得当前的软件程序;
对所述当前的软件程序进行数字签名,获得PKCS#7格式数字签名信息;
将集成检测结果和PKCS#7格式数字签名信息的软件程序反馈至送检方;
当软件程序中未包括检测结果,则按权利要求1所述的方法获得第二检测结果,并将包括第二检测结果当前的软件程序反馈至送检方。
本发明提供了一种软件程序检测方法,本发明中将第三方检测中心的检测得到的检测结果集成至软件程序中,并对软件程序进行数字签名,防止软件程序在传输的过程中被篡改,从而使检测结果能够准确表示软件程序是否有恶意行为或安全风险,保证了检测结果的准确性。
由于现有技术中的检测结果以报告形式通知送检方,软件程序中不存在检测结果,本发明将检测结果集成至软件程序中,当智能终端从第三方市场上下载软件程序后,安装过程中能够显示所述检测结果至用户,以提示用户使用中存在的风险,从而能够有效地避免用户安装恶意软件,减少恶意软件带来的恶意行为或安全风险,提高系统的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种软件程序检测方法的流程图;
图2为本发明实施例公开的又一种软件程序检测方法的流程图;
图3为本发明实施例公开的又一种软件程序检测方法的流程图;
图4为本发明实施例公开的又一种软件程序检测方法的流程图;
图5为本发明实施例公开的又一种软件程序检测方法的流程图;
图6为本发明实施例公开的又一种软件程序检测方法的流程图;
图7为本发明实施例公开的一种软件程序检测装置的结构示意图;
图8为本发明实施例公开的又一种软件程序检测装置的结构示意图;
图9为本发明实施例公开的又一种软件程序检测装置的结构示意图;
图10为本发明实施例公开的一种软件程序检测系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种软件程序检测方法,该方法涉及基于Android系统的第三方检测中心,基于Android系统的第三方市场和基于Android系统的智能终端,下面针对各个部分的内容进行详细介绍:
首先介绍第三方检测中心,如图1所示,本发明提供了一种软件程序检测方法,应用于第三方检测中心包括:
第三方检测中心是指具有一定资质且口碑较高,具有一定行业信服力的检测机构,以便经过其检测后得到的检测结果能够被大部分用户接受。
步骤S101:接收送检方发送的软件程序,即接收应用开发者或第三方市场发送的软件程序;
应用开发者将软件程序编程完毕,在发送至第三方市场之前,可以在第三方检测中心进行检测,因此应用开发者可以先向第三方检测中心发送软件程序。
第三方市场接受应用开发者发布的应用程序,判断该应用程序没有包含任何检测机构的检测结果,或检测结果被篡改,或检测机构不被第三方市场信任,第三方市场可以向第三方检测中心发送软件程序。
步骤S102:对所述软件程序进行检测获得检测结果;
第三方检测中心获取软件程序后,便检测软件程序按已有的检测步骤对软件程序进行检测,进而获得检测结果,通过检测结果便可得知该软件程序是否为恶意软件。
步骤S103:将所述检测结果集成至所述软件程序中;
现有技术中仅仅为检测中心自己以及送检方得知检测结果,用户并不知晓检测结果,因此会造成用户下载恶意软件,因此本发明将检测结果集成至软件程序中,由于Android应用程序(.apk)文件的格式实际上为标准的zip格式,zip文件格式为二进制文件,按照zip文件格式规范,在文件结尾处有4个字节目录结束标记,这4个字节处可以添加任意内容标记作为文件注释,添加的内容并不影响文件的解压,同时也不会改变原文件系统的任何内容。
因此本发明将所述检测结果写入所述软件程序安装包的结束标记内,既不影响软件程序的内容,还能够将检测结果集成至软件程序中,一举两得。
步骤S104:对所述当前的软件程序进行数字签名,获得PKCS#7格式数字签名信息;
PKCS#7数字签名信息是一个固定的格式,其中包含公钥,摘要算法,签名信息等内容。为了防止软件程序或检测结果在传输过程中被篡改,本发明对包含检测结果的软件程序进行数字签名,获得PKCS#7格式数字签名信息,具体的如图2所示,包括:
步骤S201:将包含检测结果的软件程序利用摘要算法获得摘要信息;
将包含检测结果的软件程序利用摘要算法,进行计算获得摘要信息,摘要算法有多种,本发明并不限定采用哪一种算法。
步骤S202:利用私钥对所述摘要信息进行加密,获得PKCS#7格式的数字签名信息,所述私钥由第三方检测中心生成并安全保存。
第三方检测中心生成私钥和公钥,利用私钥对摘要信息进行加密,从而获得数字签名信息,采用数字签名的方式,能够保证在只要改动软件程序中的任意一位,重新计算出的摘要信息就会与原先摘要信息不相等,保证了软件程序的不可更改性。
步骤S105:将数字签名信息集成至软件程序中,将该软件程序反馈至送检方。
将包括检测结果和PKCS#7格式的数字签名信息的软件程序发送至应用开发者或第三方市场,以便第三方市场解析PKCS#7格式数字签名信息获得数字证书,进而获取数字证书的公钥,通过公钥即可解密PKCS#7格式数字签名中签名信息,进而获得摘要信息,以便后续对数字签名信息进行验证,即验证数字签名信息是否完整,验证摘要信息是否改变。
为了防止检测结果被篡改,优选的在步骤S102与步骤S103之间还包括:对所述检测结果进行加密处理,获得加密后的检测结果。这样便能够保证检测结果不会被轻易篡改。
本发明提供了一种软件程序检测方法,本发明中将第三方检测中心的检测得到的检测结果集成至软件程序中,并对软件程序进行数字签名,防止软件程序在传输的过程中被篡改,从而使检测结果能够准确表示软件程序是否有恶意行为或安全风险,保证了检测结果的准确性。
由于现有技术中的检测结果以报告形式通知送检方,软件程序中不存在检测结果,本发明将检测结果集成至软件程序中,当智能终端从第三方市场上下载软件程序时,安装过程中能够显示所述检测结果至用户,以提示用户使用中存在的风险,从而能够有效地避免用户安装恶意软件,减少恶意软件带来的恶意行为,提高系统的安全性。
下面介绍第三方市场是如何应用检测结果的,如图3所示,本发明还提供了一种软件程序检测方法,包括以下步骤:
步骤S301:接收应用开发者发送的软件程序;
第三方市场为了保证进驻至自身的软件程序的质量,即不上架具有恶意行为的恶意软件,需要检测应用程序的检测结果,进而分析检测结果。
步骤S302:判断所述软件程序中是否有检测结果,当含有检测结果则进入步骤S303;当不含有检测结果则进入步骤S308。
为了分析检测结果需要先判断软件程序是否有检测结果,即在软件程序安装包的结束标记内查找是否检测结果,当软件程序中不包含检测结果,则将软件程序发送给至少一个第三方检测中心按图1所示的步骤进行重新检测,从而获得检测结果,然后再进入步骤S301。
由于一个检测中心的检测结果具有片面性,所以可发送至多个检测中心,综合多个检测中心的检测结果,从而得出一个可靠检测结果。
步骤S303:当所述软件程序中包含检测结果,则对所述数字签名信息进行验证,同时获得检测机构信息;当验证通过则进入步骤S304,当验证失败则进入步骤S308。
在获取检测结果之前,需要验证数字签名的完整性,以防软件程序被恶意篡改,验证数字签名的完整性,即验证摘要信息的是否正确。如图4所示,具体包括:
步骤S401:在数字签名信息中获取公钥、签名信息以及摘要算法;
步骤S402:利用公钥解密签名信息,获得第一摘要信息;
步骤S403:将所述软件程序,利用同样的摘要算法获得第二摘要信息;
步骤S404:将所述第一摘要信息和所述第二摘要信息进行对比,若一致则进入步骤S405,若不一致则进入步骤S406。
步骤S405:若一致,则若一致则表明数字签名信息验证通过;
步骤S406:若不一致,则若不一致则表明数字签名信息验证失败。
因为只要软件程序发生变化,摘要信息则不一致,所以利用验证数字签名是否完整来判断软件程序是否被篡改,当数字签名完整才可进行后续过程。当数字签名信息验证失败,则删除所述检测结果和数字签名信息,重新按图1所述的方法进行检测;
当数字签名不完整,说明软件程序被篡改,此时的检测结果已经不能表示篡改后的软件程序是否为恶意软件,所以需要删除原有的检测结果和数字签名信息,重新发送至第三方检测中心,按图1所示的步骤重新进行检测获得检测结果,然后再进入步骤S301。
步骤S304:当所述数字签名信息验证通过,则判断所述检测机构是否可信;当检测机构可信进入步骤S305,否则进入步骤S308;
检测数字签名之后,还需要判断对软件程序进行检测的检测结构是否可信,由于一些检测机构不具备检测资质,因此其检测结果也是不可信的,为了保证检测结果的可信度,所以预先在第三方市场中预先存储有大众认可的、可信的检测机构信息。
第三方市场判断预先存储的可信检测机构中是否包含所述检测机构;当包含所述检测机构,则提取步骤S402的公钥与预先存储的可信检测机构公钥进行对比,若一致表明所述检测机构可信,否则检测机构不可信。即当公钥不一致、或可信检测机构中未包含所述检测机构,则表明所述检测机构不可信。
当所述检测机构不可信,则将所述软件程序发送给至少一个第三方检测中心;接收第三方检测中心反馈的包括至少一个检测结果当前的软件程序;所述当前的软件程序由至少一个第三方检测中心依次进行检测,并将各自的检测结果集成至软件程序后形成的,所述第三方检测中心为预先存储的可信检测机构。
当有多个第三方中心检测后,软件程序中包括至少一个检测结果,将包括至少一个检测结果当前的软件程序上架,供用户下载。
步骤S305:当数字签名信息验证通过且所述检测结构可信,则分析检测结果,即依据检测结果判断软件程序是否为恶意软件,当所述检测结果表明存在恶意行为,进入步骤S306,当所述检测结果表明未存在恶意行为,则进入步骤S307;
步骤S306:通知所述应用开发者进行修改。
步骤S307:将所述应用程序上架供用户下载。当所述检测结果表明未存在恶意行为,则将所述应用程序上架供用户下载。
步骤S308:发送至第三方检测中心重新检测。
第三方市场能够检测软件程序中是否有检测结果、检测结果是否可信、软件程序是否完整,然后仅仅将具有检测结果,且检测结果可信、检测结果中表明不为恶意软件的软件程序进行上架,从而保证软件程序的上架质量。
下面介绍智能终端是如何应用检测结果的,如图5所示,本发明还提供了一种软件程序检测方法,应用于Android终端,Android终端包括应用于Android系统的智能终端,机顶盒,平板电脑等终端等,本方法包括:
步骤S501:从第三方市场获得软件程序;
步骤S502:判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;当所述软件程序中包括检测结果和PKCS#7格式数字签名信息,进入步骤S503,否则进入步骤S506;
步骤S503:对所述数字签名信息进行验证;验证通过则进入步骤S504,当验证失败则进入步骤S505;
步骤S504:显示检测结果,并提示用户检测结果可信。
步骤S505:当所述数字签名信息验证失败,则提示用户检测结果不可信。
步骤S506:当所述软件程序未包括检测结果时,则提示用户该软件程序未经检测存在风险;
在Android终端在安装软件程序时,会提醒用户该软件程序的检测结果,避免用户安装恶意软件或提示用户存在的风险,提高系统的安全性。
当软件程序中包括多个检测结果时,则对所述多个检测结果进行整合,将整合后的结果进行显示。当有多个检测结果时,一般情况下会逐个提醒用户检测结果的内容,但是这样较为繁琐,因此将多个检测结果整合在一个页面上,让用户一并观看,提升了用户体验,避免了用户逐个关闭检测结果的界面的繁琐操作过程。
以上为本发明提供的软件检测方法的整体流程。
下面还提供了一种软件程序检测方法,应用于第三方检测中心,如图6所示,包括:
步骤S601:接收送检方发送的软件程序;
步骤S602:判断所述软件程序中是否有检测结果;
步骤S603:当所述软件程序中包含检测结果且数字签名信息完整,获得已有的第一检测结果;
步骤S604:对所述软件程序进行检测获得第二检测结果;
步骤S605:将第二检测结果组成检测报告集成至所述软件程序中,获得当前的软件程序;
步骤S606:对所述当前的软件程序进行数字签名,获得PKCS#7格式数字签名信息;
步骤S607:将集成检测结果和PKCS#7格式数字签名信息的软件程序反馈至送检方。
步骤S608:当软件程序中未包括检测结果,则图1所述的方法获得第二检测结果,并将包括第二检测结果当前的软件程序反馈至送检方。
如图7所示,本发明还提供了一种软件程序检测装置,应用于第三方检测中心,包括:
接收单元701,用于接收送检方发送的软件程序;
检测单元702,用于对所述软件程序进行检测获得检测结果;
集成单元703,用于将所述检测结果集成至所述软件程序中;
验证单元704,用于对包含检测结果的软件程序进行数字签名,获得PKCS#7格式的数字签名信息;
发送单元705,用于将数字签名信息集成至软件程序中,将该软件程序反馈至送检方。
如图8所示,本发明还提供了一种软件程序检测装置,应用于第三方市场包括:
第二接收单元801,用于接收应用开发者发送的软件程序;
第二验证单元802,用于当所述软件程序中包含检测结果,则对所述数字签名信息进行验证,同时获得检测机构;
判断单元803,当所述数字签名信息验证通过,则判断所述检测机构是否可信;
分析单元804,用于当数字签名信息验证通过且所述检测结构可信,则分析检测结果;
通知单元805,用于当所述检测结果表明存在恶意行为,则向所述应用开发者发送修改指令。
如图9所示,本发明还提供了一种软件程序检测装置,应用于智能终端包括:
获取单元901,用于从第三方市场获得软件程序;
第二判断单元902,用于判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;
第三验证单元903,用于当所述软件程序中包括检测结果,对所述数字签名信息进行验证;
显示单元904,用于显示所述检测结果。
如图10所示,本发明还提供了一种软件程序检测系统,包括:
第三方检测中心100,第三方市场200和智能终端300;三者之间采用无线网络A相连。
所述第三方检测中心100,用于接收送检方发送的软件程序;对所述软件程序进行检测获得检测结果;将所述检测结果集成至所述软件程序中;对包含检测结果的软件程序进行数字签名,获得PKCS#7格式的数字签名信息;将数字签名信息集成至软件程序中,将该软件程序反馈至送检方;
所述第三方市场200,用于接收应用开发者发送的软件程序;当所述软件程序中包含检测结果,则对所述数字签名信息进行验证,同时获得检测机构;当所述数字签名信息验证通过,则判断所述检测机构是否可信;当数字签名信息验证通过且所述检测结构可信,则分析检测结果;当所述检测结果表明存在恶意行为,则向所述应用开发者发送修改指令;
所述智能终端300,用于从第三方市场获得软件程序;判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;当所述软件程序中包括检测结果;对所述数字签名信息进行验证,当所述数字签名信息通过,显示所述检测结果。
本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种软件程序检测方法,其特征在于,应用于第三方市场,包括:
接收应用开发者发送的软件程序;
当所述软件程序中包含检测结果,则对数字签名信息进行验证,同时获得检测机构信息;其中,所述检测结果为检测机构对送检方发送的软件程序进行检测获得的,所述包含检测结果的软件程序为将检测结果集成至所述软件程序后形成的;所述数字签名信息为对包含检测结果的软件程序进行数字签名获得的;
当所述数字签名信息验证通过,则判断所述检测机构是否可信;
当数字签名信息验证通过且所述检测机构可信,则分析检测结果;
当所述检测结果表明存在恶意行为或安全风险时,则向所述应用开发者发送修改指令。
2.如权利要求1所述的方法,其特征在于,还包括:
当所述软件程序中不包含检测结果,则将所述软件程序发送给至少一个第三方检测中心,所述第三方检测中心为预先存储的可信检测机构;
其中,第三方检测中心接收送检方发送的软件程序;对所述软件程序进行检测获得检测结果;将所述检测结果集成至所述软件程序中;对包含检测结果的软件程序进行数字签名,获得PKCS#7格式的数字签名信息;将数字签名信息集成至软件程序中,并将该软件程序反馈至第三方市场。
3.如权利要求1所述的方法,其特征在于,对所述数字签名信息进行验证包括:
在数字签名信息中获取公钥、签名信息以及摘要算法;
利用公钥解密签名信息,获得第一摘要信息;
将所述软件程序,利用同样的摘要算法获得第二摘要信息;
将所述第一摘要信息和所述第二摘要信息进行对比,若一致则表明数字签名信息验证通过,若不一致则表明数字签名信息验证失败。
4.如权利要求3所述的方法,其特征在于,还包括:
当数字签名信息验证失败,则删除所述检测结果和数字签名信息,将所述软件程序发送给至少一个第三方检测中心;所述第三方检测中心为预先存储的可信检测机构;
其中,第三方检测中心接收送检方发送的软件程序;对所述软件程序进行检测获得检测结果;将所述检测结果集成至所述软件程序中;对包含检测结果的软件程序进行数字签名,获得PKCS#7格式的数字签名信息;将数字签名信息集成至软件程序中,并将该软件程序反馈至第三方市场。
5.如权利要求3所述的方法,其特征在于,判断所述检测机构是否可信包括:
判断预先存储的可信检测机构中是否包含所述检测机构;
当包含所述检测机构,则在数字签名信息中获取的公钥与预先存储的可信检测机构公钥进行对比,若一致表明所述检测机构可信,否则检测机构不可信。
6.如权利要求5所述的方法,其特征在于,还包括:
当所述检测机构不可信,则将所述软件程序发送给至少一个第三方检测中心;
接收第三方检测中心反馈的包括至少一个检测结果当前的软件程序;所述当前的软件程序由至少一个第三方检测中心依次进行检测,并将各自的检测结果集成至软件程序后形成的,所述第三方检测中心为预先存储的可信检测机构。
7.如权利要求1所述的方法,其特征在于,还包括:
当所述检测结果表明未存在恶意行为或安全风险,则将所述软件程序上架供用户下载。
8.如权利要求6所述的方法,其特征在于,还包括:
将包括至少一个检测结果当前的软件程序上架,供用户下载。
9.一种软件程序检测方法,其特征在于,应用于智能终端,包括:
从第三方市场获得软件程序;其中,所述软件程序由所述第三方市场采用如权利要求1-8任一项所述的软件程序检测方法检测;
判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;
当所述软件程序中包括检测结果,则对所述数字签名信息进行验证;
当所述数字签名信息通过,则显示所述检测结果。
10.如权利要求9所述的方法,其特征在于,还包括:
当所述软件程序未包括检测结果时,则提示用户该软件程序未经检测存在风险;
当所述数字签名信息验证失败,则提示用户检测结果不可信。
11.如权利要求9所述的方法,其特征在于,还包括:
当所述软件程序中包括多个检测结果时,则对所述多个检测结果进行整合,将整合后的结果进行显示。
12.一种软件程序检测装置,其特征在于,应用于第三方市场,包括:
第二接收单元,用于接收应用开发者发送的软件程序;
第二验证单元,用于当所述软件程序中包含检测结果,则对数字签名信息进行验证,同时获得检测机构;其中,所述检测结果为检测机构对送检方发送的软件程序进行检测获得的,所述包含检测结果的软件程序为将检测结果集成至所述软件程序后形成的;所述数字签名信息为对包含检测结果的软件程序进行数字签名获得的;
判断单元,当所述数字签名信息验证通过,则判断所述检测机构是否可信;
分析单元,用于当数字签名信息验证通过且所述检测机构可信,则分析检测结果;
通知单元,用于当所述检测结果表明存在恶意行为或安全风险,则向所述应用开发者发送修改指令。
13.一种软件程序检测装置,其特征在于,应用于智能终端,包括:
获取单元,用于从第三方市场获得软件程序;其中,所述软件程序由所述第三方市场采用如权利要求1所述的软件程序检测方法检测;
第二判断单元,用于当所述软件程序中包括检测结果,则判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;
第三验证单元,用于对所述数字签名信息进行验证;
显示单元,用于当所述数字签名信息通过,显示所述检测结果。
14.一种软件程序检测系统,其特征在于,包括:
第三方检测中心,第三方市场和智能终端;
所述第三方检测中心,用于接收送检方发送的软件程序;对所述软件程序进行检测获得检测结果;将所述检测结果集成至所述软件程序中;对包含检测结果的软件程序进行数字签名,获得PKCS#7格式的数字签名信息;将数字签名信息集成至软件程序中,将该软件程序反馈至送检方;
所述第三方市场,用于接收应用开发者发送的软件程序;当所述软件程序中包含检测结果,则对所述数字签名信息进行验证,同时获得检测机构;当所述数字签名信息验证通过,则判断所述检测机构是否可信;当数字签名信息验证通过且所述检测机构可信,则分析检测结果;当所述检测结果表明存在恶意行为或安全风险,则向所述应用开发者发送修改指令;
所述智能终端,用于从第三方市场获得软件程序;判断所述软件程序中是否有检测结果和PKCS#7格式数字签名信息;当所述软件程序中包括检测结果;对所述数字签名信息进行验证,当所述数字签名信息通过,显示所述检测结果。
15.一种软件程序检测方法,其特征在于,应用于第三方检测机构,包括:
接收送检方发送的软件程序;
判断所述软件程序中是否有检测结果;
当所述软件程序中包含检测结果且数字签名信息完整,获得已有的第一检测结果;
对所述软件程序进行检测获得第二检测结果;
将第二检测结果组成检测报告集成至所述软件程序中,获得当前的软件程序;
对所述当前的软件程序进行数字签名,获得PKCS#7格式数字签名信息;
将集成检测结果和PKCS#7格式数字签名信息的软件程序反馈至送检方;
当软件程序中未包括检测结果,则对所述软件程序进行检测获得第二检测结果;将第二检测结果组成检测报告集成至所述软件程序中,获得当前的软件程序;对所述当前的软件程序进行数字签名,获得PKCS#7格式数字签名信息;将集成检测结果和PKCS#7格式数字签名信息的软件程序反馈至送检方。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410306485.7A CN104035874B (zh) | 2014-06-30 | 2014-06-30 | 一种软件程序检测方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410306485.7A CN104035874B (zh) | 2014-06-30 | 2014-06-30 | 一种软件程序检测方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104035874A CN104035874A (zh) | 2014-09-10 |
CN104035874B true CN104035874B (zh) | 2017-11-07 |
Family
ID=51466647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410306485.7A Active CN104035874B (zh) | 2014-06-30 | 2014-06-30 | 一种软件程序检测方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104035874B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320545B (zh) * | 2015-11-27 | 2018-09-18 | 北京指掌易科技有限公司 | 一种支持应用软件检查第三方软件的证书的方法和装置 |
CN106875254B (zh) * | 2017-01-20 | 2021-03-19 | 暨南大学 | 一种基于区块链技术的Android恶意应用程序控制方法 |
CN112560064A (zh) * | 2020-12-23 | 2021-03-26 | Oppo广东移动通信有限公司 | 文件检测方法、装置、存储介质及用户终端 |
CN113541973B (zh) * | 2021-09-17 | 2021-12-21 | 杭州天谷信息科技有限公司 | 一种电子签名封装方法 |
CN114090450A (zh) * | 2021-11-24 | 2022-02-25 | 深圳市第三方检测技术有限公司 | 用于软件程序测试的第三方检测可信数据实现方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848129A (zh) * | 2005-04-05 | 2006-10-18 | 株式会社Ntt都科摩 | 应用程序验证系统、应用程序验证方法以及计算机程序 |
CN103501307A (zh) * | 2013-10-22 | 2014-01-08 | 中山大学 | 基于android操作系统的智能电视软件的安全认证方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8850526B2 (en) * | 2010-06-23 | 2014-09-30 | K7 Computing Private Limited | Online protection of information and resources |
CN103577206A (zh) * | 2012-07-27 | 2014-02-12 | 北京三星通信技术研究有限公司 | 一种应用软件的安装方法和装置 |
CN103778367A (zh) * | 2013-12-30 | 2014-05-07 | 网秦(北京)科技有限公司 | 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器 |
CN103886260B (zh) * | 2014-04-16 | 2016-09-14 | 中国科学院信息工程研究所 | 一种基于二次签名验签技术的应用程序管控方法 |
-
2014
- 2014-06-30 CN CN201410306485.7A patent/CN104035874B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848129A (zh) * | 2005-04-05 | 2006-10-18 | 株式会社Ntt都科摩 | 应用程序验证系统、应用程序验证方法以及计算机程序 |
CN103501307A (zh) * | 2013-10-22 | 2014-01-08 | 中山大学 | 基于android操作系统的智能电视软件的安全认证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104035874A (zh) | 2014-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104035874B (zh) | 一种软件程序检测方法、装置及系统 | |
CN112019332B (zh) | 基于微服务的加解密方法、api网关系统及设备 | |
US8332823B2 (en) | Application program verification system, application program verification method and computer program | |
CN107391298A (zh) | 数据存储状态检测方法、装置及计算机可读存储介质 | |
Fereidooni et al. | Breaking fitness records without moving: Reverse engineering and spoofing fitbit | |
CN106055936B (zh) | 可执行程序数据包加密/解密方法及装置 | |
CN104216830B (zh) | 设备软件的一致性检测方法及系统 | |
CN106055341A (zh) | 应用程序安装包的校验方法及装置 | |
CN110021291B (zh) | 一种语音合成文件的调用方法及装置 | |
CN109586920A (zh) | 一种可信验证方法及装置 | |
CN106027574A (zh) | 身份认证方法和装置 | |
CN110232021A (zh) | 页面测试的方法及装置 | |
CN116662941B (zh) | 信息加密方法、装置、计算机设备和存储介质 | |
CN106470103A (zh) | 一种客户端发送加密url请求的方法和系统 | |
JP4295684B2 (ja) | プログラム製作装置 | |
CN113591059A (zh) | 一种用户登录认证方法 | |
CN110489322B (zh) | Mock测试方法、装置、计算机设备及存储介质 | |
CN113452526A (zh) | 电子文件存证方法、验证方法及相应装置 | |
CN106685945A (zh) | 业务请求处理方法、业务办理号码的验证方法及其终端 | |
CN106888094B (zh) | 一种签名方法及服务器 | |
CN107341393A (zh) | 应用程序安装包的检测方法和装置 | |
CN106411964A (zh) | 可追溯的加密数据的传输方法及装置 | |
CN113992353A (zh) | 登录凭证的处理方法、装置、电子设备及存储介质 | |
CN112825093B (zh) | 安全基线检查方法、主机、服务器、电子设备及存储介质 | |
CN110049036B (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 |