一种通过签名鉴定文件来源的方法和装置制造方法

文档序号:6493527阅读:130来源:国知局
一种通过签名鉴定文件来源的方法和装置制造方法
【专利摘要】本发明公开了一种通过签名鉴定文件来源的方法和装置,所述方法包括提取所述安卓程序的数字签名和包名;根据数字签名与数据库中该包名对应的签名信息判断所述安卓程序是否为安全程序。通过包名在数据库中查找该报名对应的数字签名信息,比较对应的签名信息与提取的数字签名信息可以判断所述安卓程序是否是被改动的安卓程序,在未安装所述程序之前就能确定该安卓程序的来源,保护了用户的设备安全和使用安全。
【专利说明】一种通过签名鉴定文件来源的方法和装置
【技术领域】
[0001 ] 本发明涉及信息安全【技术领域】,尤其是一种通过签名鉴定安卓文件来源的方法和装置。
【背景技术】
[0002]由于安卓系统的开源性,其安全问题也伴随而来。近年来,使用安卓系统的设备越来越多,随之而来的安全性问题也越来越多。目前,市场上的安卓应用程序的监管还不到位,一些别有用心的制作者往往会修改官方的安卓程序,在其中加入一些恶意代码或者一些可以实现其目的的代码,然后再打包发布供使用者下载。由于监管缺失的问题,一些用户并不知道这些加入了不明代码的安装包,从一些不明渠道中下载这些被修改过的安装程序使用。这样就会造成信息安全、用户资费损失、电子设备不正常运行等问题。

【发明内容】

[0003]本发明的目的,就是克服现有技术的不足,提供一种通过签名鉴定安卓文件来源的方法和装置,本发明和装置可以判断安卓程序的来源,在安装前就可以得知安卓程序是否是来自官方的程序,并且有没有被修改。
[0004]为了达到上述目的,采用如下技术方案:
[0005]一种通过签名鉴定文件来源的方法,所述文件为安卓程序,包括以下步骤:提取所述安卓程序的数字签名和包名;根据数字签名与数据库中该包名对应的数字签名信息判断所述安卓程序是否为安全程序。
[0006]进一步地,所述方法具体包括以下步骤:提取所述安卓程序的包名和数字签名的哈希值;根据包名从哈希数据库中提取该包名对应的哈希值,所述安卓程序的哈希值与哈希数据库中对应的哈希值比较,若相同,判断所述安卓程序为安全程序。
[0007]进一步地,所述方法具体包括以下步骤:
[0008]提取所述安卓程序的包名,数字签名的哈希值、签名人姓名;
[0009]根据包名从哈希数据库中提取该包名对应的哈希值,从签名人数据库中提取该包名对应的签名人姓名;
[0010]所述安卓程序的数字签名的签名人姓名与签名人数据库中对应的签名人姓名比较,若相同,则进行下一步;若不同,则所述安卓程序为不可信程序;
[0011]所述安卓程序的数字签名的哈希值与哈希数据库中对应的哈希值比较,若相同,则所述安卓程序为安全程序。
[0012]一种通过签名鉴别文件来源的装置,所述文件为安卓程序,包括提取模块,用于提取所述安卓程序的数字签名和包名;判断模块,用于根据数字签名与数据库中该包名对应的签名信息判断所述安卓程序是否为安全程序。
[0013]进一步地,所述数据库包括哈希数据库,所述哈希数据库中预存与该包名对应的哈希值,所述哈希值与提取模块提取的数字签名的哈希值比较;若哈希数据库中对应的哈希值和提取模块提取的哈希值相同,判断模块判断所述安卓程序为安全程序。
[0014]进一步地,所述数据库包括哈希数据库和签名人数据库;所述哈希数据库中预存与包名对应的哈希值,所述哈希值用于与提取模块提取的数字签名的哈希值比较;所述签名人数据库中预存与包名对应的签名人姓名,所述签名人姓名用于与提取模块提取的数字签名的签名人姓名比较;若哈希数据库中对应的哈希值与提取模块提取的哈希值相同,且签名人姓名数据库中对应的签名人姓名与提取模块提取的签名人姓名相同,判断模块判断所述安卓程序为安全程序。
[0015]进一步地,所述判断模块先判断所述安卓程序的签名人姓名是否与哈希数据库中对应的签名人姓名相同,若相同,再判断所述安卓程序的哈希值是否与哈希数据库中对应的哈希值相同,若相同,则所述安卓程序为安全程序。
[0016]进一步地,所述签名人姓名为公司名。
[0017]与现有技术相比,本发明的有益效果在于:
[0018]通过判断安卓程序的数字签名中的哈希值确认所述安卓程序的来源。由于哈希值具有唯一性,因此通过与预设的从官方程序中提取的哈希值比较,可以判断所述安卓程序是否为未经改动的安卓程序,在未安装所述程序之前就能确定该安卓程序的合法性,保护了用户的设备安全和使用安全。
[0019]另外,结合签名人信息可以在一定程度上排查出非官方签名的安卓程序。
【专利附图】

【附图说明】
[0020]图1是本发明实施例一的通过签名鉴定文件来源的方法的步骤流程图;
[0021]图2是本发明实施例一的通过签名鉴定文件来源的装置的结构示意图;
[0022]图3是本发明实施例二的通过签名鉴定文件来源的方法的步骤流程图;
[0023]图4是本发明实施例二的通过签名鉴定文件来源的装置的结构示意图。
[0024]图示:1_提取模块;2_判断模块;3_哈希数据库;4_签名人数据库。
【具体实施方式】
[0025]下面将结合附图以及具体实施方法来详细说明本发明,在本发明的示意性实施及说明用来解释本发明,但并不作为对本发明的限定。
[0026]实施例一
[0027]请参阅图1,其为本实施例的通过签名鉴定文件来源的方法的步骤流程图。其主要包括以下步骤:
[0028]SlO:提取安卓程序的包名和数字签名的哈希值。
[0029]具体地,所有安装到安卓系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系。该数字证书即数字签名包含有签名人姓名和哈希信息。每一个安卓程序都必须有签名才能被安卓系统识别,才能获得安装权限。每一个数字签名中的哈希值是唯一的,类似于网卡中的MAC地址。提取安卓程序的哈希值可以通过一组公开的算法实现,在PC上的实现工具是“openssl”,该工具是源码开发的工具。安卓程序的包名由该安卓程序所有者设定。例如,腾讯微信的包名为“com.tencent.mm”。[0030]S20:判断所述安卓程序的哈希值与哈希数据库对应的哈希值是否相同,若相同,所述安卓程序为安全程序。
[0031]具体地,数据库包括哈希数据库。所述哈希数据库中预存哈希值。该哈希值是从安全渠道中获得的官方安卓程序中提取的哈希值,其对应于包名。由于哈希值具有全球唯一性,这些官方的哈希值用于与提取的数字签名的哈希值比较。若哈希数据库中与包名对应的官方哈希值与提取的哈希值相同,则所述安卓程序为官方的安全程序。若不同,说明该安卓程序被第三方篡改过,为不可信任程序。
[0032]请参阅图2,其为本发明实施例一的通过签名鉴定文件来源的装置的结构示意图。
[0033]本实施的通过签名鉴别安卓程序来源的装置,包括用于提取所述安卓程序的数字签名的提取模块I和用于根据数字签名与预设数据库中的签名信息判断所述安卓程序是否为安全程序的判断模块2。所述预设数据库包括哈希数据库3,所述哈希数据库3中预存哈希值。这些哈希值是从正规渠道(官方网站)提取,具有唯一性。其用于与提取模块I提取的数字签名的哈希值比较。若哈希数据库3中与所述安卓程序的包名对应的哈希值与提取模块I提取的哈希值相同,判断模块2判断所述安卓程序为安全程序。
[0034]本实施例从数字签名中提取哈希信息作为确认安卓程序的来源,利用哈希值的唯一的特点判断安卓程序是否为官方安全的程序。可以避免第三方改动官方程序后再发布到市场中供用户下载使用,用户无法识别该程序的来源,以及是否被改动过的问题。
[0035]实施例二
[0036]请参阅图3,其为本实施例的通过签名鉴定文件来源的方法的步骤流程图。其主要包括以下步骤:
[0037]SlO:提取所述安卓程序的包名,数字签名的哈希值、签名人姓名。
[0038]具体地,安卓程序中的数字签名除了包括哈希值外,还包括给这个程序签名的签名人姓名。利用openssl工具提取数字签名的哈希值和签名人姓名。优选地,所述签名人姓名为公司名。签名人姓名为公司名可以有效地判断安卓程序的来源。区别于个人签名的复杂多变性。公司名的签名具有相对稳定性,一般具有公司签名的安卓程序为可信任的安卓程序。安卓程序的包名由该安卓程序所有者设定。例如,腾讯微信的包名为“com.tencent.mm”。
[0039]S20:判断所述安卓程序的签名人姓名与签名人数据库中对应的签名人姓名是否相同,若不同,所述安卓程序为不可信任程序;若相同,进行下一步。
[0040]具体地,经过步骤SlO后,先判断安卓程序的数字签名的签名人姓名是否与签名人数据库中对应的签名人姓名相同。若相同,再进行步骤S30。若不同,该安卓程序肯定经过非官方修改,所述安卓程序不可信。签名人数据库中每一个签名人姓名对应一个以上包名。通过查找包名,可以找到包名对应的签名人姓名。例如包名为“com.tencent._”,其对应的签名人姓名为腾讯公司。
[0041]S30:判断所述安卓程序的数字签名的哈希值是否与哈希数据库中对应的哈希值相同,若同,所述安卓程序为安全程序;若不同,所述安卓程序为不可信任程序。
[0042]此处判断的方法和原理与判断签名人姓名的类似,在此不再赘述。
[0043]请参阅图4,其为本发明实施例二的通过签名鉴定文件来源的装置的结构示意图。
[0044]本实施例与实施例一的区别在于:提取模块I提取所述安卓程序的数字签名中的哈希值和签名人姓名,所述数据库还包括签名人数据库4。优选地,所述签名人姓名为公司名。判断模块2先判断提取模块I提取的数字签名的签名人姓名是否与签名人数据库4中对应的签名人姓名相同。若不同,所述安卓程序为不可信任程序。若相同,再判断提取模块I提取的数字签名的哈希值是否与哈希数据库3中对应的哈希值相同,若相同,则所述安卓程序为官方的安全程序。
[0045]本实施例先判断签名人姓名,可以排除一部分签名人姓名不同的安卓程序,节约后续的判断时间。再签名人姓名相同的情况下,通过哈希值的唯一性判断所述安卓程序是否为正常的官方程序,防止被第三方修改的官方程序安装入设备中造成破坏,造成用户的损失。
[0046]以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在【具体实施方式】以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种通过签名鉴定文件来源的方法,所述文件为安卓程序,其特征在于,包括以下步骤: 提取所述安卓程序的数字签名和包名; 根据数字签名与数据库中该包名对应的数字签名信息判断所述安卓程序是否为安全程序。
2.根据权利要求1所述的通过签名鉴定文件来源的方法,其特征在于,具体包括以下步骤:提取所述安卓程序的包名和数字签名的哈希值;根据包名从哈希数据库中提取该包名对应的哈希值,所述安卓程序的哈希值与哈希数据库中对应的哈希值比较,若相同,判断所述安卓程序为安全程序。
3.根据权利要求1所述的通过签名鉴定文件来源的方法,其特征在于,具体包括以下步骤: 提取所述安卓程序的包名,数字签名的哈希值、签名人姓名; 根据包名从哈希数据库中提取该包名对应的哈希值,从签名人数据库中提取该包名对应的签名人姓名; 所述安卓程序的数字签名的签名人姓名与签名人数据库中对应的签名人姓名比较,若相同,则进行下一步;若不同,则所述安卓程序为不可信程序; 所述安卓程序的数字签名的哈希值与哈希数据库中对应的哈希值比较,若相同,则所述安卓程序为安全程序。
4.一种通过签名鉴别文件来源的装置,所述文件为安卓程序,其特征在于:包括提取模块,用于提取所述安卓程序的数字签名和包名;判断模块,用于根据数字签名与数据库中该包名对应的签名信息判断所述安卓程序是否为安全程序。
5.根据权利要求4所述的通过签名鉴别文件来源的装置,其特征在于:所述数据库包括哈希数据库,所述哈希数据库中预存与该包名对应的哈希值,所述哈希值与提取模块提取的数字签名的哈希值比较;若哈希数据库中对应的哈希值和提取模块提取的哈希值相同,判断模块判断所述安卓程序为安全程序。
6.根据权利要求4所述的通过签名鉴定文件来源的装置,其特征在于:所述数据库包括哈希数据库和签名人数据库;所述哈希数据库中预存与包名对应的哈希值,所述哈希值用于与提取模块提取的数字签名的哈希值比较;所述签名人数据库中预存与包名对应的签名人姓名,所述签名人姓名用于与提取模块提取的数字签名的签名人姓名比较;若哈希数据库中对应的哈希值与提取模块提取的哈希值相同,且签名人姓名数据库中对应的签名人姓名与提取模块提取的签名人姓名相同,判断模块判断所述安卓程序为安全程序。
7.根据权利要求6所述的通过签名鉴定文件来源的装置,其特征在于:所述判断模块先判断所述安卓程序的签名人姓名是否与哈希数据库中对应的签名人姓名相同,若相同,再判断所述安卓程序的哈希值是否与哈希数据库中对应的哈希值相同,若相同,则所述安卓程序为安全程序。
8.根据权利要求5或6或7所述的通过签名鉴定文件来源的装置,其特征在于:所述签名人姓名为公司名。
【文档编号】G06F21/54GK103902887SQ201210568020
【公开日】2014年7月2日 申请日期:2012年12月24日 优先权日:2012年12月24日
【发明者】李敏怡, 林坚明, 陈勇 申请人:珠海市君天电子科技有限公司, 北京金山安全软件有限公司, 贝壳网际(北京)安全技术有限公司, 北京金山网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1