首页> 中国专利> 基于数字证书的信任等级来反病毒检查文件的系统和方法

基于数字证书的信任等级来反病毒检查文件的系统和方法

摘要

本发明公开了基于数字证书的信任等级来反病毒检查文件的系统和方法。一种示例性方法包括:获得所述文件的数字签名的数字证书;确定所获得的数字证书的有效性;基于所确定的所述文件的所述数字证书的有效性或无效性,将信任等级分配至所述数字证书;基于所分配的所述文件的所述数字证书的信任等级,确定对所述文件执行何种反病毒检查方法;以及对所述文件执行所确定的反病毒检查方法。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-16

    授权

    授权

  • 2016-07-06

    实质审查的生效 IPC(主分类):G06F21/56 申请日:20151202

    实质审查的生效

  • 2016-06-08

    公开

    公开

说明书

技术领域

本发明总体涉及计算机安全领域,尤其涉及基于文件的数字证书的信任等级来反病毒检查文件。

背景技术

计算机和网络技术的普及在过去二十年得到了迅速地发展;然而,它一直伴随有网络犯罪的稳步增长,网络犯罪的范围从相对无害的情况(例如未经请求的电子邮件(通常称为垃圾邮件)的散布)到更严重的网络犯罪情况(例如拒绝服务攻击、偷窃机密财务信息、甚至网络战和网络恐怖行动)。已变得明显的是,严厉打击网络犯罪是当务之急。并且,用于保护计算机免受网络攻击的最常用的手段之一是反病毒软件。然而,目前这一代的反病毒软件解决方案还有不足之处。

典型的反病毒应用可以执行数个不同的恶意软件检测方法,通常范围从相对快速的签名匹配到更复杂的启发式分析和仿真。近来的反病毒检查方法通常是资源密集的,这些方法对运行它们的计算机的生产率产生有害影响,尤其是在频繁且复杂的反病毒任务的执行过程中。这种任务的示例是检查用于恶意软件的硬盘,该恶意软件大量地载入计算机的硬盘系统。由反病毒应用处理资源的消耗尤其影响个人计算机、笔记本和具有有限的处理能力的其它类型的计算机。

因此,需要提高反病毒软件的运行效率。

发明内容

公开了用于基于文件的数字证书的信任等级来反病毒检查文件的系统、方法和计算机程序产品。在一个方面中,一种用于执行文件的反病毒检查的示例性方法包括:获得所述文件的数字签名的数字证书;通过硬件处理器确定所获得的数字证书的有效性;基于所确定的所述文件的所述数字证书的有效性或无效性,将信任等级分配至所述数字证书;基于所分配的所述文件的所述数字证书的信任等级,确定对所述文件执行何种反病毒检查方法;以及对所述文件执行所确定的反病毒检查方法。

在一个示例性方面中,该方法还可以包括:将低信任等级分配至无效的数字证书或已知的恶意文件的数字证书;以及执行启发式分析、仿真、手动检查、以及阻止执行具有低信任等级的数字证书的文件中的一者或多者。

在一个示例性方面中,该方法还可以包括:将中信任等级分配至有效的数字证书;以及对具有中信任等级的数字证书的文件执行签名匹配。

在一个示例性方面中,该方法还可以包括:将高信任等级分配至由信任的认证机构发行的数字证书;以及对具有高信任等级的数字证书的文件不执行反病毒检查。

在一个示例性方面中,确定所述数字证书的有效性可以包括:构建与所述文件的所述证书相关的证书链;以及遍历所述证书链并校验所述证书链中的每个证书。

在一个示例性方面中,该方法还可以包括:将低信任等级分配至在恶意文件的证书链中发现的证书链中的中间证书。

在一个示例性方面中,当满足以下条件中的一者或多者时,确定数字证书是否有效:认证机构的数字签名是正确的;所述证书的有效期当前还没有到期;以及所述证书还未被取消。

在另一个方面中,一种用于执行文件的反病毒检查的示例性系统包括:硬件处理器,所述硬件处理器被配置成:获得所述文件的数字签名的数字证书;确定所获得的所述文件的数字证书的有效性;基于所确定的所述文件的所述数字证书的有效性或无效性,将信任等级分配至所述数字证书;基于所分配的所述文件的所述数字证书的信任等级,确定对所述文件执行何种反病毒检查方法;以及对所述文件执行所确定的反病毒检查方法。

以上对示例性方面的简要概述用来提供对本发明的基本理解。该概述并不是对所有预期方面的广泛综述,并且既不旨在识别所有方面的关键要素或重要要素,也不旨在描绘本发明的任何方面或所有方面的范围。它的唯一目的是以简化形式提出一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述目的,本发明的一个或多个方面包括权利要求中所描述和特别指出的特征。

附图说明

并入本说明书并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。

图1示出根据一个示例性方面的基于文件的数字证书的信任等级来反病毒检查文件的示例性系统;

图2示出根据一个示例性方面的填充信任的证书的数据库的示例性方法;

图3示出根据一个示例性方面的基于文件的数字证书的信任等级来反病毒检查该文件的示例性方法;

图4示出根据一个示例性方面的遍历并校验证书链的示例性方法;

图5示出根据一个示例性方面的遍历并校验证书链的示例图;以及

图6示出根据一个示例性方面的适合于实现所公开的基于文件的数字证书的信任等级来反病毒检查文件的系统和方法的方面的通用计算机系统(例如个人计算机或服务器)的示例。

具体实施方式

本文描述了基于文件的数字证书的信任等级来反病毒检查文件的系统、方法和计算机程序产品的示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将是了解本发明的优点的本领域技术人员容易想到的。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。

图1示出了根据一个方面的基于文件的数字证书的信任等级来反病毒检查文件的示例性系统的总图。术语“数字证书”还通常被称为公钥证书或识别证书。系统100包括安装有应用101的用户计算机110。计算机110例如可以是个人计算机(personalcomputer,PC)、笔记本、平板电脑、智能电话或其它类型的计算设备。在一个示例性方面中,应用101可以为反病毒程序,其被配置成使用例如签名匹配、仿真、启发式分析和其它已知的恶意软件检查技术来执行对存储或下载在计算机110上的文件102的反病毒检查。在一个示例性方面中,反病毒应用101还可以检查文件的数字签名的公钥证书的有效性。如果满足以下条件中的一者或多者,则该证书可以被视为有效的:

·认证机构(certificationauthority,CA)的数字签名正确;

·证书的有效期当前还没有到期;以及

·证书还未被取消。

在一个示例性方面中,系统100还可以包括服务器120,该服务器120经由私人网络或公用网络连接至用户计算机110。服务器120包括验证模块103,该验证模块103连接至应用101并被设计成在执行证书的验证时从应用101获得终端证书。该终端证书可以是软件制造商的公钥证书,软件制造商的数字签名用来签署文件102。分配信任等级的模块104连接至验证模块103并用来在信任证书的数据库105的帮助下确定用于证书的信任等级。如本文所使用的信任等级指的是确定证书的有效性的参数(例如整数),并且信任等级用于文件102的反病毒检查。数据库105连接至分配信任等级的模块104,并且数据库105包含证书及其相应的信任等级和可用来唯一地确定各自的证书的标识符。例如,证书标识符可以是序列号、公钥、拇指指纹(来自证书的公钥的散列和)、发行者名称和主题名称等等。

在一个示例性方面中,用户计算机110还可以包括信任证书的本地数据库105a,该本地数据库105a连接服务器数据库105。本地数据库105a可以包含具有对应信任等级的证书的完整列表或局部列表。可以利用来自数据库105的信息周期地更新本地数据库105a。

在一个示例性方面中,分配信任等级的模块104被配置成向数据库105填充文件102的证书和适合于该证书的信任等级。在一个示例性方面中,数字证书的信任等级可以采用以下值:低、中和高。低信任等级可以表示证书的主体的数字签名是无效的。例如,低信任等级可以被分配到用来签署恶意文件的数字签名的证书。恶意文件及其证书的列表可以从恶意文件的数据库106获得。证书具有低信任等级的文件可能需要通过应用101进行的额外的反病毒检查。相较于使用签名匹配的常规的反病毒检查,额外的检查例如可以包括使用更复杂且资源密集的恶意软件检测技术(例如仿真和启发式分析)的反病毒分析。在一个示例性方面中,额外的检查可以包括人类软件专家对文件的手动分析。中信任等级可以被分配至标识符已经从用户得以接收的有效证书。中信任等级可以表示通过反病毒应用101进行的常规反病毒检查(例如签名匹配)可以是足够的。高信任等级可以被分配至其认证机构包含在信任的认证机构的列表上的证书。例如,信任的认证机构可以是最大的软件制造商的CA。在另一个示例中,信任的认证机构的列表可以存储在服务器120上。高信任等级可以表示文件是安全的,且对于这些文件无需额外的反病毒检查。

在一个示例性方面中,验证模块103被配置成,形成从终端证书到根证书的证书链。该证书链由需要认证由终端证书所标识的软件制造商的证书组组成。通常,证书链包含终端证书、中间证书组和根证书(在证书链中被各方所信任的根认证机构的证书)。在链中的每个中间CA包含由在该链中由较高等级上的认证机构所发行的证书。根CA为自己发行证书。此外,验证模块103用来确定以下中的一者:

·包含在数据库105中的证书链的第一个证书;

·证书链中的终端证书。

在一个示例性方面中,服务器120还可以包括恶意文件的数据库106,该恶意文件的数据库106对于每个已知的恶意文件包含它的散列和、数字签名的公钥证书及其标识符、恶意文件(例如病毒、根程序病毒包(rootkit)、蠕虫病毒、特洛伊木马病毒)的状态、初始文件和其它类型的可用于文件识别的信息。

在一个示例性方面中,应用101和文件102可以位于用户计算机110上,而模块103至模块106可以位于服务器120上。在另一个示例性方面中,数据库105可以位于用户计算机110上。

图2示出了根据一个示例性方面的填充信任的证书的数据库的示例性方法。当在计算机110上执行未知的文件102时,应用101可以向服务器120发送证书和文件的标识符(例如文件的散列和)用以校验。由于应用101可以安装在不同用户的计算机组上,因而服务器120可以从用户计算机110接收用于许多未知的文件102的证书的标识符。验证模块103可以使用所接收的标识符来使用数据库105验证相关的证书的有效性。如果在数据库105中没有找到用于所接收的标识符的证书,则验证模块103可以向应用101请求未知的文件102。可替选地,验证模块103可以直接从软件制造商获得该未知的文件102。

在一个示例性方面中,验证模块103可以周期性地(例如一天一次)根据用户(从其获得对应证书的标识符)的数量来布置证书。在步骤210中,验证模块103可以从所布置的证书的列表选择特定数量的最普及的证书,例如前10个证书。在另一个示例性方面中,验证模块103可以检查标识符已经从用户得以接收的所有的证书。

在步骤220中,验证模块103可以检查所选择的证书的有效性。当满足以下条件中的一者或多者时,可以发现证书是有效的:

·认证机构的数字签名正确;

·证书的有效期当前还没有到期;

·证书还未被取消。

此外,由于以下原因,可以发现证书是无效的:

·对于在证书链中的证书之一,有效期已经到期;

·在证书链中的证书的有效期可能不重叠;

·证书链是循环的(即,证书链中的证书之一由CA发行,该CA被正被检

查的证书的CA认证)。

应当注意的是,证书的有效性的检查不限于上面给定的条件,还可以包括其它的条件,例如用于公钥基础设施(publickeyinfrastructure,PKI)X.509的IUT-T标准中所识别的那些条件。

在一个示例性方面中,数字签名的检查可以通过系统资源来进行,例如在WindowsOS中通过签名工具程序来进行。在一个示例性方面中,数字签名的检查可以通过利用给定的数字签名的公钥证书中所包含的公钥将该数字签名解密,然后将该文件的散列函数的结果值与该文件的散列函数的计算值相比较来进行。

在一个示例性方面中,在步骤230中,分配信任等级的模块104可以将不同的信任等级分配至从用户计算机110所接收的未知文件的证书。例如,可以将中信任等级分配至标识符已经从用户得以接收的有效证书。在步骤240中,可以将低信任等级分配至标识符已经从用户得以接收的其余的无效证书。例如,可以将低信任等级分配至用来签署恶意文件的数字签名的证书。恶意文件及其证书的列表可以从恶意文件的数据库106获得。在步骤250中,可以将高信任等级分配至其认证机构包含在信任的认证机构的列表中的证书。在一个示例性方面中,信任的认证机构可以是最大的软件制造商的CA。在另一个示例性方面中,信任的认证机构的列表可以预先由服务器120拟定。

在一个示例性方面中,在步骤240中,可以将低信任等级分配至在某一组恶意文件中的证书链中发现的中间证书。例如,如果中间证书存在于10个证书链中从而由这些链的终端证书所签署的6个文件是恶意的,则低信任等级将被分配至该特定中间证书。同时,例如,如果结果是具有两个恶意文件,则该中间证书可以被分配中信任等级,这是由于不具有足够的基础推断出该中间证书已经不被信任。

因此,在步骤260中,分配信任等级的模块104将所获得的文件102的证书及其相应的信任等级添加到数据库105(如果数据库105刚刚才创建且因此是空的)或者利用所获得的文件102的证书及其相应的信任等级更新数据库105。

图3示出了根据一个示例性方面的利用关于文件的数字证书的信任等级来反病毒检查文件的示例性方法。在第一步骤310中,验证模块103接收正由应用101检查的文件的数字签名的公钥的终端证书的标识符。接着,在步骤320中,验证模块103构建从终端证书到根证书的证书链。利用数据库105,证书可以从其标识符而唯一地被定义。证书链的构建利用计算机安全领域中的普通技术人员所已知的方法来进行。例如,对于终端证书,确定发行该证书的第一CA。对于第一CA的证书,确定已经发行第一CA的证书的第二CA,以此类推,直到确定根CA。

在步骤330中,验证模块103连续地遍历该证书链,针对该链的各证书连续地在数据库105中执行搜索。终端证书的信任等级将根据该链中所有的证书的校验结果得以更新。以下将参照图4更详细地讨论遍历且校验证书链的方法。

因此,在步骤340中,利用数据库105确定用于该终端证书的信任等级。最后,在步骤350中,计算机110上的应用101基于文件102的终端证书的信任等级确定是否针对文件102执行反病毒检查以及执行何种反病毒检查方法。这种依赖性由验证规则来指定,这将在本文以下的表1中进行描述。在一个示例性方面中,反病毒检查方法可以取决于数字证书的字段的内容,例如:有效期、证书发行国家等等。

图4示出了根据一个示例性方面的遍历且校验证书链的示例性方法。该证书的检查可以顺序地进行,从终端证书开始,结束于根证书。在步骤410中,关于终端证书是否包含在数据库105中进行检查。如果在数据库105中发现该证书,则不需要进一步遍历证书链。否则,在步骤420中,将从链中的下一个证书开始继续遍历该证书链,直到确定出具有低信任等级的特定中间证书包含在数据库105中(步骤430),或者直到达到根证书(步骤440)。如果具有高信任等级或中信任等级的中间证书包含在数据库105中,则将继续遍历该链。

如果中间证书包含在数据库105中且该中间证书具有低信任等级,则终端证书将同样地被分配低信任等级。当证书链中的中间证书之一具有低信任等级时,该步骤使得确定恶意文件,即使该证书链中的其它证书由于某些原因(例如,中间证书由于CA的妥协而被取消,而上层CA没有妥协)而具有中信任等级或高信任等级。

根据一个示例性方面,如果已经达到根证书且具有中信任等级或高信任等级的中间证书中的至少一者包含在数据库105中,则该文件的终端证书可以被分配中信任等级。

此外,在步骤440中,可以进行检查,以确定具有高信任等级的中间证书是否存在于证书链中。如果是,则终端证书还将被分配高信任等级。

遍历且校验该证书链的最后可能的结果是:链中没有一个证书包含在数据库105中。在该情况下,终端证书可以被分配低信任等级。此外,在一个示例性方面中,可以将终端证书的标识符发送至验证模块103,验证模块103将根据图2中所示的方法分析该证书。在另一个示例性方面中,还可以将文件的标识符(例如散列和)发送至验证模块103。

用于在完成证书链的遍历之后的反病毒检查的验证规则的示例如下表1所示。

表1

例如,根据第一条规则,如果通过图4中所示的方法已经发现了证书且该证书为具有高信任等级的终端证书,则认为该文件是正当的,并且可以无需进一步反病毒检查。但是根据第二条规则,将执行进一步反病毒检查。例如,这种检查可以是启发式分析、云服务的使用、仿真或其它复杂的且资源密集的方法。

根据表1的第三条规则,如果文件未被数字签署或者数字签名不正确,则将执行额外的反病毒检查。在该情况下,将执行能够较大可能地发现恶意文件的最仔细的反病毒检查或复杂的检查。例如,可以使用资源更密集的启发式分析、行为算法等。在一个示例性方面中,如果证书具有低信任等级,则应用101可以阻止相应的文件的执行。

图5示出了根据图4中所示的方法的遍历且校验证书链的一个示例。在该示例中,文件已经由终端证书501签署。证书链包括证书501至证书506。也就是说,终端证书501由CA4签署,CA4的证书502由CA3签署,以此类推。

在步骤410中,验证模块103顺序地遍历证书链的证书,以根证书开始。存在于数据库105中的第一个证书为证书502,证书502根据数据库105具有高信任等级。由于证书502不是根证书,因此根据图4中所示的方法,证书链的遍历将继续(步骤440)。证书503未包含在数据库105中。具有低信任等级的下一个证书504包含在数据库中。尽管两个未检查的证书仍然保留在证书链中,但是由于已经发现了不足信任的中间证书504,因而不需要继续遍历该证书链(步骤450)。根据表1的规则3,应当执行对文件的最彻底的额外的反病毒检查。

图6示出了可用来实现本文所公开的基于文件的数字证书的信任等级来反病毒检查文件的系统和方法的通用计算机系统(其可以是个人计算机或服务器)20的示例。该计算机系统20包括中央处理单元21、系统存储器22和连接各种系统组件的系统总线23,各种系统组件包括与中央处理单元21相关的存储器。系统总线23像从现有技术已知的任何总线结构一样来实现,依次包括总线存储器或总线存储器控制器、外围总线和本地总线,系统总线23能够与任何其它的总线体系交互。系统存储器包括永久性存储器(ROM)24和随机存取存储器(random-accessmemory,RAM)25。基本输入/输出系统(basicinput/outputsystem,BIOS)26包括确保在计算机系统20的元件之间的信息传输的基本过程,例如在使用ROM24加载操作系统时的那些基本过程。

计算机系统20依次包括用于数据的读取和写入的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28以及用于在可移动光盘31(例如CD-ROM、DVD-ROM和其它的光学信息媒介)上读取和写入的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34而连接到系统总线23。驱动器和对应的计算机信息媒介为用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。

计算机系统20可以包括一个或多个硬盘驱动器27、可移动磁盘29和可移动光盘31,但是应当理解的是,可以采用能够以计算机可读的形式存储数据的其它类型的计算机信息媒介56(固态驱动器、闪存卡、数字盘、RAM等等),计算机信息媒介56经由控制器55连接到系统总线23。

计算机系统20具有存储有所记录的操作系统35的文件系统36,并且还具有额外的程序应用37、其它程序模块38和程序数据39。用户能够通过使用输入设备(键盘40、鼠标42)将命令和信息输入到计算机系统20中。可以使用其它的输入设备(未示出):麦克风、操纵杆、游戏控制器、扫描器等等。这种输入设备通常通过串行端口46插入到计算机系统20中,串行端口46又连接到系统总线,但是它们可以以其它的方式连接,例如在并行端口、游戏端口或通用串行总线(universalserialbus,USB)的帮助下得以连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以装备有其它的外围输出设备(未示出),例如扬声器、打印机等等。

计算机系统20能够在网络环境中工作,使用与一个或多个远程计算机49的网络连接。一个或多个远程计算机49还可以是个人计算机或服务器,其具有在描述计算机系统20的性质时的上述元件的大多数或全部。其它的设备也可以存在于计算机网络中,例如路由器、网络站、对等设备或其它的网络节点。

网络连接可以形成局域计算机网络(local-areacomputernetwork,LAN)50和广域计算机网络(wide-areacomputernetwork,WAN)。这种网络用在企业计算机网络和公司内部网络中,并且它们通常有权访问因特网。在LAN或WAN网络中,计算机系统20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机系统20可以采用调制解调器54或其它的用于提供与广域计算机网络(例如因特网)的通信的模块。调制解调器54是内部设备或外部设备,通过串行端口46连接到系统总线23。应当注意的是,网络连接仅仅是示例并且不需要描述网络的准确配置,即实际上具有通过技术通信模块建立一个计算机到另一个计算机的连接的其它方式。

在各个方面中,本文所描述的系统和方法可以在硬件、软件、固件或它们的任何组合中实施。如果在软件中实施,则上述方法可以作为一个或多个指令或代码而被存储在非易失性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其它类型的电存储介质、磁存储介质或光存储介质、或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。

在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文所使用的术语“模块”指的是现实世界的设备、组件、或使用硬件(例如通过专用集成电路(ASIC)或现场可编程门阵列(field-programmablegatearray,FPGA))实施的组件的布置、或硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令组,该指令组在被执行时将微处理器系统转换成专用设备。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分可以被执行在通用计算机(例如上文在图3中更详细描述的通用计算机)的处理器上,以及在某些情况下,模块的全部可以被执行在通用计算机的处理器上。因此,每一个模块可以以各种适合的配置来实现,而不应受限于本文所列举的任何特定的实现方式。

为了清楚起见,本文没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当领会的是,这种开发努力可能是复杂且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。

此外,应当理解的是,本文所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。

本文所公开的各个方面包括本文以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,许多比上面所提及的更多的修改是可行的,而不脱离本文所公开的发明构思。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号