获取可信文件数字签名的方法和装置及系统的制作方法

文档序号:6380493阅读:217来源:国知局

专利名称::获取可信文件数字签名的方法和装置及系统的制作方法
技术领域
:本发明涉及计算机安全
技术领域
,具体涉及一种获取可信文件数字签名的方法和装置及系统。
背景技术
:随着计算机技术在社会生活中各个领域的广泛运用,恶意程序(是指任何故意创建用来执行未经授权并通常是有害行为的软件程序)也如同其附属品一样接踵而来。由于这些恶意程序所具有的感染性、复制性及破坏性,其已成为困扰计算机使用的一个重大问题。因此,在网络威胁飙升的今天,更新病毒特征码成为企业及网民每天必备的工作,从每周一次到每天一次,直至时刻更新。而传统杀毒软件是将病毒库放在本地客户端,在客户端进行文件的分析工作,在扫描过程中会反复在本地病毒库中进行比对,占用大量系统资源,并且随着病毒库的不断升级,病毒库的容量越来越大,分析文件时所耗费的时间也越来越长,让客户端计算机越用越慢,因此,反病毒行业必须寻找新的技术突破。“云安全(CloudSecurity)”计划即是网络时代信息安全的最新体现,它融合了并行处理、网格计算、未知病毒行为判断等新兴技术概念,将“云计算”的理念应用到了安全领域。“云安全”计划的实现是与其样本数据库的构建息息相关的,因此,如何有效的组织并维护样本数据库,成为业界亟待解决的问题。对于安全公司来说,收集可信任的可执行文件样本是一个非常重要的工作。现有技术是通过样本的数字签名来确定样本是否为可信任的样本,如果某一可执行文件样本的数字签名为可信文件数字签名,那么就确定该可执行文件样本为可信任的。因此,如何从大量的数字签名中获取可信文件数字签名就成为完成上述工作的一个非常重要的步骤。现有技术获取可信文件数字签名的方法主要有以下两种(一)人工审核方法;这种方法的优点是准确率高,但是审核速度慢、成本很高,召回率难以保证。尤其是当数字签名库越来越大的时候,人工审核变得越发的难以操作。(二)通过编辑距离算法计算得到字符串相似度,与已知可信文件数字签名的字符串相似度较高的数字签名可以确定为可信文件数字签名。这种方法很好的解决了当数字签名库很大时,人工操作难的问题。但是仍然存在这样的问题对于同一公司或机构的数字签名,通过编辑距离算法计算的字符串相似度往往很低,例如,“PoweriseDigitalTechnologiesCo.Ltd/PoweriseDigitalTechnologiesCo.Ltd.”和“Powerise”属于同一公司或机构的数字签名,通过编辑距离算法得到的字符串相似度就很低,尽管已知“PoweriseDigitalTechnologiesCo.Ltd/PoweriseDigitalTechnologiesCo.Ltd.”为可信文件数字签名,也不能确定“Powerise”也是可信文件数字签名。在这种情况下,获取可信文件数字签名的准确率会降低。
发明内容4鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的获取可信文件数字签名的方法和相应的获取可信文件数字签名的装置以及系统。根据本发明的一个方面,提供了一种获取可信文件数字签名的方法,包括获取可执行文件样本的数字签名;将数字签名进行分词操作处理,得到数字签名集合,数字签名集合包含至少一个单词;统计数字签名集合中每个单词的词频;根据数字签名集合中单词的词频和字符串长度,获取数字签名集合与已知的可信文件数字签名集合的字符串相似度;根据数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定数字签名是否为可信文件数字签名。根据本发明的另一方面,提供了一种获取可信文件数字签名的装置,包括签名获取模块,用于获取可执行文件样本的数字签名;分词处理模块,用于将数字签名进行分词操作处理,得到数字签名集合,数字签名集合包含至少一个单词;词频统计模块,用于统计数字签名集合中每个单词的词频;相似度获取模块,用于根据数字签名集合中单词的词频和字符串长度,获取数字签名集合与已知的可信文件数字签名集合的字符串相似度;可信文件数字签名获取模块,用于根据数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定数字签名是否为可信文件数字签名。根据本发明的再一方面,提供了获取可信文件数字签名的系统,其包括上面提及的任一种获取可信文件数字签名的装置。根据本发明的提供的获取可信文件数字签名的方法和装置及系统,将数字签名进行分词操作处理得到数字签名集合,根据数字签名集合中单词的词频和字符串长度,获取两个集合之间字符串相似度,根据字符串相似度来确定数字签名是否为可信文件数字签名。本发明提供的方案在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,与现有技术中单纯依赖编辑距离算法计算字符串相似度相比,利用本发明计算得到的两个集合的字符串相似度更能反映两个集合的相关程度,由此提高了获取可信文件数字签名的准确率。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图图;以及图意图。图4示出了根据本发明另一个实施例的获取可信文件数字签名的装置的结构示具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。PE(PortableExecute,可移植的执行体)文件是微软Windows操作系统上的程序文件,它是是可执行文件的一种,常见的后缀为EXE、DLL、OCX、SYS、COM的文件都是PE文件。在以下实施例中,以PE文件作为例子,详细介绍可信文件数字签名的获取方法。但需要注意的是,本发明中可执行文件不仅限于是PE文件。图I示出了根据本发明一个实施例的可信文件数字签名的获取方法100的流程图。如图I所示,方法100始于步骤S101,其中收集多个PE文件样本的数字签名。根据系统处理能力,尽可能多的收集PE文件样本的数字签名,如收集3万多数字签名,其中有一部分数字签名为已知可信文件数字签名。所谓已知可信文件数字签名是指已经获知为可信任PE文件签名的数字签名。随后,方法100进入步骤S102,在步骤SlOl中收集到多个数字签名之后,在步骤S102中将多个数字签名分别进行分词操作处理,得到多个数字签名集合,其中每个数字签名集合包含至少一个单词。可选地,对于其中一个数字签名,首先去除该数字签名中的字符和标点符号;其次将数字签名的格式进行统一处理,例如将全半角的数字签名统一转化为半角,将大小写混合的数字签名统一转化为小写或大写;将多个空格制表符按一个来处理;对于中文,进行繁简体统一转换或编码统一转换等操作;最后,对于英文数字签名,以空格为分隔进行分词处理,对于中文数字签名,以单词为分隔进行分词处理。举例来说,“成都梦工厂公司”可分为“成都”、“梦工厂”和“公司”,这三个单词组成一个数字签名集合{成都,梦工厂,公司}TEKTRONIX,Inc.”可分为“tektronix”和“inc”,这两个单词组成一个数字签名集合{tektronix,inc}”;TektronixUKLtd.”可分为“tektronix”、“uk”和“ltd”,这三个单词组成一个数字签名集合{tektronix,uk,ltd}。随后方法100进入步骤S103,其中根据同义词对应表,将以不同形式出现的同义单词做归一化处理,这里是对步骤SIOI收集的3万多数字签名对应的数字签名集合中的单词统一进行归一化处理。该同义词对应表通过人工标注预先获得的。在数字签名中,存在一些固定的简写规则,例如corp和co.都是corporation的简写,ltd是limited的简写。需要将这些具有相同意义的单词之前的对应关系建立起来,这里使用人工标注或者机器标注的方法,预先建立同义词对应表,该同义词对应表中记录了同义单词之间的对应关系以及同义单词中哪个单词为归一化的单词。根据同义词对应表,将步骤S102中得到的每个数字签名集合中的单词做归一化处理。例如,数字签名集合{tektronix,uk,ltd}经过归一化处理后成为{tektronix,uk,limited}。应当注意的是,步骤S103是本方法的可选步骤。随后方法100进入步骤S104,在步骤S104中统计每个数字签名集合中每个单词的词频。所谓词频是指单词在所有数字签名集合中出现的频次。明显地,单词“limited”在所有数字签名集合中出现的频次会远高于单词“tektronix”。随后方法100进入获取多个数字签名集合两两之间的字符串相似度的步骤,该步骤包括如下步骤S105、步骤S106和步骤S107。在步骤S105中,对于多个数字签名集合中任意两个数字签名集合A和B,获取A和B的交集C。设A=Ia1,a2,···,aj,B=Od1,b2,···,bj,A与B的交集C=Ic1,c2,···,cj。例如,若A={tektronix,inc},B={tektronix,uk,limited},则A与B的交集C={tektronix}。在步骤S106中,根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子。设A中的单词%的词频为Freq(),字符串长度为Length(Bi),B中的单词匕的词频为Freq,字符串长度为Length(印,那么A的长度因子为mlacior_1.,englh(A)=^Lcnglitiai)^(I/))(I)/二IB的长度因子为ηlacior_Lengih(B)=I,eng!h{h)*(I/l:req(b))(2Ji二I应当注意的是,步骤S105和S106之间没有前后顺序关系,两个步骤可以同时执行、先执行步骤S106然后再执行步骤S105等,所有这些都在本发明的保护范围之内。在步骤S107中,根据A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。设C中的单词Ci的词频为Freq(Ci),字符串长度为Length(Ci),那么A和B的字符串相似度为SimAB=(V人。类)+少—二人以类))Z2⑴I'actor—IAiiiglh、A),:1'actor—LenglhiB)',其中,Factor_Length(Ci)=Length(Ci)*(1/Freq(Ci))(4)由上述公式(I)-(4)可以看出,集合A和B中每个单词对SimAB的权重影响取决于该单词的词频和字符串长度。单词的词频越低,字符串长度越高,该单词对SimAB的权重影响越大;单词的词频越高,字符串长度越低,该单词对SimAB的权重影响越小。如果A和B的交集C中包含对SimAB权重影响越大的单词,那么最终计算得到的SimAB就越高。以单词“limited”和“tektronix”为例,“limited”的词频高于“tektronix”,但“limited”的字符串长度低于“tektronix”,那么“tektronix”对SimAB的权重影响高于“limited”。如果A和B的交集C中包含“tektronix”,则计算得到的SimAB就较高;如果A和B的交集C中包含“limited”而不包含“tektronix”,则计算得到的SimAB就较低。在步骤S107中计算得到多个数字签名集合两两之间的字符串相似度之后,方法100进入步骤S108,其中将字符串相似度高于设定阈值的数字签名集合聚为一类。设定阈值是人工确定的,可选地,设定阈值可以为0.85,如果A和B的字符串相似度高于0.85,那么A和B可聚为一类。随后方法100进入步骤S109,其中根据同一类中已知可信文件数字签名的数量,确定该类中所有数字签名是否为可信文件数字签名。由于在步骤SlOl中收集的数字签名中有一部分为已知可信文件数字签名,所以在每个聚类中都有可能存在一定数量的已知可信文件数字签名,如果某一类中已知可信文件数字签名的数量比较多,例如已知可信文件数字签名的数量过半,则可认为这一类的数字签名均为可信文件数字签名。可选地,预先设定已知可信文件数字签名占所有数字签名的比例阈值,如果在某一聚类中,已知可信文件数字签名占所有数字签名的比例高于该比例阈值,则确定这个聚类中所有的数字签名都为可信文件数字签名。本实施例提供了一种在收集到多个数字签名且已知其中一部分数字签名为可信文件数字签名的情况下,如何确定剩余另一部分数字签名是否为可信文件数字签名,从而建立可信文件数字签名数据库的方法。具体地,首先对多个数字签名分别进行分词操作处理,得到多个数字签名集合;根据单词的词频和字符串长度计算两两集合之间的字符串相似度。其中,两个集合中每个单词对最终计算得到的字符串相似度的权重影响取决于该单词的词频和字符串长度。将字符串相似度高于设定阈值的数字签名集合聚为一类,根据同一类中已知可信文件数字签名的数量,确定该类中所有数字签名是否为可信文件数字签名。由此可见,本方法在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,与现有技术中单纯依赖编辑距离算法计算字符串相似度相比,利用本方法计算得到的两个集合的字符串相似度更能反映两个集合的相关程度,由此提高了聚类的准确率,进一步提高了获取可信文件数字签名的准确率。以同一公司或机构的两个数字签名为例,公司名称对两个集合的字符串相似度的权重影响较大,显然同一公司或机构的两个数字签名集合的交集都会包含公司名称,那么利用本方法同一公司或机构的两个数字签名会被聚为一类。图2示出了根据本发明另一个实施例的获取可信文件数字签名的方法200的流程图。如图2所示,方法200始于步骤S201,其中获取某一PE文件样本的数字签名,该数字签名为待确认的数字签名。随后,方法200进入步骤S202,在步骤S201中获取待确认的数字签名之后,在步骤S202中将该数字签名进行分词操作处理,得到数字签名集合,其中该数字签名集合包含至少一个单词。可选地,首先去除该数字签名中的字符和标点符号;其次将数字签名的格式进行统一处理,例如将全半角的数字签名统一转化为半角,将大小写混合的数字签名统一转化为小写或大写;将多个空格制表符按一个来处理;对于中文,进行繁简体统一转换或编码统一转换等操作;最后,对于英文数字签名,以空格为分隔进行分词处理,对于中文数字签名,以单词为分隔进行分词处理。举例来说,“成都梦工厂公司”可分为“成都”、“梦工厂”和“公司”,这三个单词组成一个数字签名集合{成都,梦工厂,公司}TEKTRONIX,Inc.”可分为“tektronix”和“inc”,这两个单词组成一个数字签名集合{tektronix,inc}”;TektronixUKLtd.”可分为“tektronix”、“uk”和“ltd”,这三个单词组成一个数字签名集合{tektronix,uk,ltd}。随后方法200进入步骤S203,其中根据同义词对应表,将以不同形式出现的同义单词做归一化处理,这里是对步骤S201获取的待确认的数字签名对应的数字签名集合中的单词进行归一化处理。该同义词对应表通过人工标注或者机器标注预先获得的。在数字签名中,存在一些固定的简写规则,例如corp和co.都是corporation的简写,ltd是limited的简写。需要将这些具有相同意义的单词之前的对应关系建立起来,这里使用人工标注的方法,预先建立同义词对应表,该同义词对应表中记录了同义单词之间的对应关系以及同义单词中哪个单词为归一化的单词。根据同义词对应表,将步骤S202中得到的数字签名集合中的单词做归一化处理。例如,数字签名集合{tektronix,uk,ltd}经过归一化处理后成为{tektronix,uk,limited}。应当注意的是,步骤S203是本方法的可选步骤。随后方法200进入步骤S204,在步骤S204中统计数字签名集合中每个单词的词8频。所谓词频是指单词在所有已知的可信文件数字签名集合中出现的频次。随后方法200进入获取数字签名集合与已知的可信文件数字签名集合的字符串相似度的步骤,该步骤包括如下步骤S205、步骤S206和步骤S207。在步骤S205中,对于数字签名集合A和已知的可信文件数字签名集合B,获取A和B的交集C。设A=Ia1,a2,···,aj,B=Od1,b2,···,bj,A与B的交集C=Ic1,c2,···,cj。例如,若A={tektronix,inc},B={tektronix,uk,limited},则A与B的交集C={tektronix}。在步骤S206中,根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子。设A中的单词%的词频为Freq(),字符串长度为Length(Bi),B中的单词匕的词频为Freq,字符串长度为Length(印,那么A的长度因子为mIrOCfOr_Lcngih(A)=[LefI^lh(a,)*(/!^reqiai))(5)/=1B的长度因子为ηFactor_Leng!h(B)=^l.ength(h)*{]/J-'recf{b.))(6)I=I应当注意的是,步骤S205和S206之间没有前后顺序关系,两个步骤可以同时执行、先执行步骤S206然后再执行步骤S205等,所有这些都在本发明的保护范围之内。在步骤S207中,根据A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。设C中的单词Ci的词频为Freq(Ci),字符串长度为Length(Ci),那么A和B的字符串相似度为■仙辦⑷+幺抑伽―1)k(7)/=1Factor—Length(A)f=1Factor一Length(B)/其中,Factor_Length(Ci)=Length(Ci)*(1/Freq(Ci))(8)由上述公式(5)-(8)可以看出,集合A和B中每个单词对SimAB的权重影响取决于该单词的词频和字符串长度。单词的词频越低,字符串长度越高,该单词对SimAB的权重影响越大;单词的词频越高,字符串长度越低,该单词对SimAB的权重影响越小。如果A和B的交集C中包含对SimAB权重影响越大的单词,那么最终计算得到的SimAB就越高。以单词“limited”和“tektronix”为例,“limited”的词频高于“tektronix”,但“limited”的字符串长度低于“tektronix”,那么“tektronix”对SimAB的权重影响高于“limited”。如果A和B的交集C中包含“tektronix”,则计算得到的SimAB就较高;如果A和B的交集C中包含“limited”而不包含“tektronix”,则计算得到的SimAB就较低。在步骤S207中计算得到数字签名集合与已知的可信文件数字签名集合之间的字符串相似度之后,方法200进入步骤S208,其中根据数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定数字签名是否为可信文件数字签名。如果A和B的字符串相似度SimAB高于设定阈值,那么则可以确定数字签名是可信文件数字签名。本实施例提供了一种在已知一些数字签名为可信文件数字签名的情况下,即已经构建了可信文件数字签名数据库的情况下,如何确定新收集的某个数字签名是否为可信文件数字签名的方法。具体地,首先对待确认的数字签名进行分词操作处理,得到数字签名集合;根据单词的词频和字符串长度计算数字签名集合和已知的可信文件数字签名集合之间的字符串相似度。其中,两个集合中每个单词对最终计算得到的字符串相似度的权重影响取决于该单词的词频和字符串长度。如果字符串相似度高于设定阈值,那么确定该数字签名为可信文件数字签名。由此可见,本方法在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,与现有技术中单纯依赖编辑距离算法计算字符串相似度相比,利用本方法计算得到的两个集合的字符串相似度更能反映两个集合的相关程度,由此提高了获取可信文件数字签名的准确率。以同一公司或机构的两个数字签名为例,公司名称对两个集合的字符串相似度的权重影响较大,显然同一公司或机构的两个数字签名集合的交集都会包含公司名称,因此如果已知其中一个数字签名为可信文件数字签名,那么利用本方法可以准确地获知另一个数字签名也是可信文件数字签名。图3示出了根据本发明一个实施例的可信文件数字签名的获取装置的结构示意图。如图3所示,该可信文件数字签名获取装置300包括收集模块310、分词处理模块320、词频统计模块330、相似度获取模块340、聚类模块350和可信文件数字签名获取模块360。其中,收集模块310用于收集多个可执行文件样本的数字签名。根据系统处理能力,收集模块210尽可能多的收集可执行文件样本的数字签名,如收集3万多数字签名,其中有一部分数字签名为已知可信文件数字签名。所谓已知可信文件数字签名是指已经获知为可信任的可执行文件的数字签名。分词处理模块320用于将多个数字签名分别进行分词操作处理,得到多个数字签名集合,其中每个数字签名集合包含至少一个单词。可选地,分词处理模块320包括去除单元321、格式处理单元322和分词处理单元323,其中,去除单元321用于去除数字签名中的字符和标点符号;格式处理单元322用于将数字签名的格式进行统一处理,例如将全半角的数字签名统一转化为半角,将大小写混合的数字签名统一转化为小写或大写;将多个空格制表符按一个来处理;对于中文,进行繁简体统一转换或编码统一转换等操作;分词处理单元323用于对于英文数字签名,以空格为分隔进行分词处理;对于中文数字签名,以单词为分隔进行分词处理。词频统计模块330用于统计每个数字签名集合中每个单词的词频。所谓词频是指单词在所有数字签名集合中出现的频次。相似度获取模块340用于根据数字签名集合中单词的词频和字符串长度,获取多个数字签名集合两两之间的字符串相似度。多个数字签名集合中任意两个数字签名集合中每个单词对这两个数字签名集合的字符串相似度的权重影响取决于该单词的词频和字符串长度。可选地,相似度获取模块340包括第一获取单元341、第二获取单元342和第三获取单元343。其中,第一获取单元341用于对于多个数字签名集合中任意两个数字签名集合A和B,获取A和B的交集C;第二获取单元342,用于根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子;第三获取单元343,用于根据A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。第一获取单元341、第二获取单元342和第三获取单元343的功能可以参见方法100实施例的相应描述,在此不再赘述。聚类模块350用于将字符串相似度高于设定阈值的数字签名集合聚为一类。可信文件数字签名获取模块360用于根据同一类中已知可信文件数字签名的数量,确定该类中所有的数字签名是否为可信文件数字签名。由于收集模块310收集的数字签名中有一部分为已知可信文件数字签名,所以在每个聚类中都有可能存在一定数量的已知可信文件数字签名,如果某一类中已知可信文件数字签名的数量比较多,例如已知可信文件数字签名的数量过半,则可认为这一类的数字签名均为可信文件数字签名。可选地,预先设定已知可信文件数字签名占所有数字签名的比例阈值,如果在某一聚类中,已知可信文件数字签名占所有数字签名的比例高于该比例阈值,则确定这个聚类中所有的数字签名都为可信文件数字签名。可选地,可信文件数字签名获取装置300还可以包括归一化处理模块370,用于根据同义词对应表,将以不同形式出现的同义单词做归一化处理。该同义词对应表通过人工标注预先获得的。在数字签名中,存在一些固定的简写规则,例如corp和co.都是corporation的简写,ltd是limited的简写。需要将这些具有相同意义的单词之前的对应关系建立起来,这里使用人工标注或机器标注的方法,预先建立同义词对应表,该同义词对应表中记录了同义单词之间的对应关系以及同义单词中哪个单词为归一化的单词。根据同义词对应表,将分词处理模块320得到的每个数字签名集合中的单词做归一化处理。本实施例提供了一种在收集到多个数字签名且已知其中一部分数字签名为可信文件数字签名的情况下,如何确定剩余另一部分数字签名是否为可信文件数字签名的装置。具体地,首先对多个数字签名分别进行分词操作处理,得到多个数字签名集合;根据单词的词频和字符串长度计算两两集合之间的字符串相似度。其中,两个集合中每个单词对最终计算得到的字符串相似度的权重影响取决于该单词的词频和字符串长度。将字符串相似度高于设定阈值的数字签名集合聚为一类,根据同一类中已知可信文件数字签名的数量,确定该类中所有数字签名是否为可信文件数字签名。由此可见,本装置在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,与现有技术中单纯依赖编辑距离算法计算字符串相似度相比,利用本装置计算得到的两个集合的字符串相似度更能反映两个集合的相关程度,由此提高了聚类的准确率,进一步提高了获取可信文件数字签名的准确率。以同一公司或机构的两个数字签名为例,公司名称对两个集合的字符串相似度的权重影响较大,显然同一公司或机构的两个数字签名集合的交集都会包含公司名称,那么利用本装置同一公司或机构的两个数字签名会被聚为一类。本发明还提供了一种服务端设备,包括上述一个实施例提供的可信文件数字签名的获取装置。该服务端设备主要运行在后台系统中,用于建立可信文件数字签名数据库。图4示出了根据本发明另一个实施例的获取可信文件数字签名的装置的结构示意图。如图4所示,该可信文件数字签名获取装置400包括签名获取模块410、分词处理模块420、词频统计模块430、相似度获取模块440和可信文件数字签名获取模块450。其中,签名获取模块410用于获取可执行文件样本的数字签名,该数字签名为待确认的数字签名。分词处理模块420用于将数字签名进行分词操作处理,得到数字签名集合,数字签名集合包含至少一个单词。可选地,分词处理模块420可以包括去除单元421、格式处理单元422和分词处理单元423。其中,去除单元421用于去除数字签名中的字符和标点符号;格式处理单元422用于将数字签名的格式进行统一处理,例如将全半角的数字签名统一转化为半角,将大小写混合的数字签名统一转化为小写或大写;将多个空格制表符按一个来处理;对于中文,进行繁简体统一转换或编码统一转换等操作;分词处理单元423用于对于英文数字签名,以空格为分隔进行分词处理;对于中文数字签名,以单词为分隔进行分词处理。词频统计模块430用于统计数字签名集合中每个单词的词频。所谓词频是指单词在所有已知的可信文件数字签名集合中出现的频次。相似度获取模块440用于根据数字签名集合中单词的词频和字符串长度,获取数字签名集合与已知的可信文件数字签名集合的字符串相似度。数字签名集合和已知的可信文件数字签名集合中每个单词对这两个集合的字符串相似度的权重影响取决于该单词的词频和字符串长度。可选地,相似度获取模块440包括第一获取单元441、第二获取单元442和第三获取单元443。其中,第一获取单元441用于获取数字签名集合A和已知的可信文件数字签名集合B的交集C;第二获取单元442用于根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子;第三获取单元443用于根据A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。第一获取单元441、第二获取单元442和第三获取单元443的功能可以参见方法200实施例的相关描述,在此不再赘述。可信文件数字签名获取模块450用于根据数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定数字签名是否为可信文件数字签名。如果数字签名集合与已知的可信文件数字签名集合的字符串相似度高于设定阈值,那么则可以确定数字签名是可信文件数字签名。可选地,该可信文件数字签名获取装置400还可以包括归一化处理模块460,用于根据同义词对应表,将以不同形式出现的同义单词做归一化处理。该同义词对应表通过人工标注预先获得的。在数字签名中,存在一些固定的简写规则,例如corp和co.都是corporation的简写,ltd是limited的简写。需要将这些具有相同意义的单词之前的对应关系建立起来,这里使用人工标注的方法,预先建立同义词对应表,该同义词对应表中记录了同义单词之间的对应关系以及同义单词中哪个单词为归一化的单词。根据同义词对应表,将分词处理模块420得到的数字签名集合中的单词做归一化处理。本实施例提供了一种在已知一些数字签名为可信文件数字签名的情况下,如何确定某个数字签名是否为可信文件数字签名的装置。具体地,首先对待确认的数字签名进行分词操作处理,得到数字签名集合;根据单词的词频和字符串长度计算数字签名集合和已知的可信文件数字签名集合之间的字符串相似度。其中,两个集合中每个单词对最终计算得到的字符串相似度的权重影响取决于该单词的词频和字符串长度。如果字符串相似度高于设定阈值,那么确定该数字签名为可信文件数字签名。由此可见,本装置在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,与现有技术中单纯依赖编辑距离算法计算字符串相似度相比,利用本装置计算得到的两个集合的字符串相似度更能反映两个集合的相关程度,由此提高了获取可信文件数字签名的准确率。以同一公司或机构的两个数字签名为例,公司名称对两个集合的字符串相似度的权重影响较大,显然同一公司或机构的两个数字签名集合的交集都会包含公司名称,因此如果已知其中一个数字签名为可信文件数字签名,那么利用本装置可以准确地获知另一个数字签名也是可信文件数字签名。本发明还提供了一种服务端设备,包括上述另一个实施例提供的可信文件数字签名的获取装置。该服务端设备主要运行在后台系统中,用于对已构建的可信文件数字签名数据库自动增加可信文件数字签名。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的可信文件数字签名的获取装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。权利要求1.一种获取可信文件数字签名的方法,包括获取可执行文件样本的数字签名;将数字签名进行分词操作处理,得到数字签名集合,所述数字签名集合包含至少ー个单词;统计数字签名集合中每个单词的词频;根据数字签名集合中单词的词频和字符串长度,获取所述数字签名集合与已知的可信文件数字签名集合的字符串相似度;根据所述数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定所述数字签名是否为可信文件数字签名。2.根据权利要求I所述的方法,所述单词的词频是该单词在所有已知的可信文件数字签名集合中出现的频次。3.根据权利要求I或8所述的方法,所述数字签名集合和已知的可信文件数字签名集合中每个单词对这两个集合的所述字符串相似度的权重影响取决于该单词的词频和字符串长度。4.根据权利要求I至3任一项所述的方法,所述获取所述数字签名集合与已知的可信文件数字签名集合的字符串相似度包括获取所述数字签名集合A和已知的可信文件数字签名集合B的交集C;根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子;根据所述A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。5.根据权利要求I至4任一项所述的方法,在所述统计数字签名集合中每个单词的词频之前还包括根据同义词对应表,将以不同形式出现的同义单词做归ー化处理。6.根据权利要求I至5任一项所述的方法,所述将数字签名进行分词操作处理,得到数字签名集合包括去除数字签名中的字符和标点符号;将数字签名的格式进行统ー处理;对于英文数字签名,以空格为分隔进行分词处理;对于中文数字签名,以单词为分隔进行分词处理。7.一种获取可信文件数字签名的装置,包括签名获取模块,用于获取可执行文件样本的数字签名;分词处理模块,用于将数字签名进行分词操作处理,得到数字签名集合,所述数字签名集合包含至少ー个单词;词频统计模块,用于统计数字签名集合中每个单词的词频;相似度获取模块,用于根据数字签名集合中单词的词频和字符串长度,获取所述数字签名集合与已知的可信文件数字签名集合的字符串相似度;可信文件数字签名获取模块,用于根据所述数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定所述数字签名是否为可信文件数字签名。8.根据权利要求7所述的装置,所述单词的词频是该单词在所有已知的可信文件数字签名集合中出现的频次。9.根据权利要求7或8所述的装置,所述数字签名集合和已知的可信文件数字签名集合中每个单词对这两个集合的所述字符串相似度的权重影响取决于该单词的词频和字符串长度。10.根据权利要求7至9任一项所述的装置,所述相似度获取模块包括第一获取单元,用于获取所述数字签名集合A和已知的可信文件数字签名集合B的交集C;第二获取单元,用于根据A中每个单词的词频和字符串长度以及B中每个单词的词频和字符串长度,分别获取A的长度因子和B的长度因子;第三获取单元,用于根据所述A的长度因子、B的长度因子以及C中每个单词的词频和字符串长度,获取A和B的字符串相似度。11.根据权利要求7至10任一项所述的装置,还包括归ー化处理模块,用于根据同义词对应表,将以不同形式出现的同义单词做归ー化处理。12.根据权利要求7至11任一项所述的装置,所述分词处理模块包括去除単元,用于去除数字签名中的字符和标点符号;格式处理单元,用于将数字签名的格式进行统ー处理;分词处理単元,用于对于英文数字签名,以空格为分隔进行分词处理;对于中文数字签名,以单词为分隔进行分词处理。13.—种包括上述权利要求7至12任一项所述的获取可信文件数字签名的装置的系统。全文摘要本发明公开了一种获取可信文件数字签名的方法和装置及系统。其中所述装置包括签名获取模块;分词处理模块;词频统计模块,用于统计数字签名集合中每个单词的词频;相似度获取模块,用于根据数字签名集合中单词的词频和字符串长度,获取所述数字签名集合与已知的可信文件数字签名集合的字符串相似度;可信文件数字签名获取模块,用于根据所述数字签名集合与已知的可信文件数字签名集合的字符串相似度,确定所述数字签名是否为可信文件数字签名。本发明提供的方案在计算两个集合的字符串相似度的时候考虑到单词的词频和字符串长度的影响,因此更能反映两个集合的相关程度,由此提高了获取可信文件数字签名的准确率。文档编号G06F21/64GK102982292SQ20121043633公开日2013年3月20日申请日期2012年11月5日优先权日2012年11月5日发明者张超旭,于春功申请人:北京奇虎科技有限公司,奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1