一种基于软件产品库的分布式可信认证方法和系统的制作方法

文档序号:7681402阅读:120来源:国知局
专利名称:一种基于软件产品库的分布式可信认证方法和系统的制作方法
技术领域
本发明涉及计算机操作系统、应用软件和运行环境的安全认证方法,特别是一种基于软件产品库的分布式可信认证方法和系统。
背景技术
从计算机被广泛应用以来,计算机系统的安全问题就一直困绕着整个计算机行业和用户,在系统上的攻击与防御总是道高一尺、魔高一丈地发展着,因为技术没有革命性的突破,计算机终端用户只能习惯于下载、安装并升级庞大的杀毒软件,耗费大量的时间来扫描自己的计算机,以保证系统的稳定和工作环境的安全。但即使安全厂商全力跟踪和更新病毒库,研究开发各种主动防御技术,仍然无法保证覆盖的全面性和准确性,病毒制造者也在不断研究和发展各种变形、绕过、穿透及破坏安全软件的技术,随着信息技术的高速发展以及互连网应用的深入普及,安全软件所承受的负荷也越来越大(病毒库越来越大、漏洞越来越多),一旦病毒爆发,所带来的经济损失也相当巨大。而现有的安全产品仍然还在大量采用最原始的病毒特征识别技术,耗费大量的人力物力,只是尽可能跟上病毒的发展而已,这种技术模式本身就注定了采用该模式的安全软件其实并不安全,因为它采用的是治标不治本的安全技术。对于现在普遍采用的安全认证技术,主要存在下列缺陷一、黑名单技术被广泛应用在安全产品中(例如360杀毒软件等),但黑名单技术是一种滞后技术,只能实现相对的安全,病毒可以采用各种变形、绕过、隐身或抢占系统优先权的技术来对抗,而且随着时间的累积,黑名单将变得越来越大,效率越来越低,更重要的是,如果病毒迅猛增长,而安全软件不能即时跟上的话,计算机安全将受到严重威胁。二、虽然白名单技术没有以上这些弊病,但白名单技术存在三个最关键的问题① 如何建库?②如何取信?③如何应用?这三个问题解决不好,白名单技术则很难实用化。 原因如下①世界上可信任软件产品的总和在规模上远远大于病毒软件的规模,因此白名单技术所依赖的数据库在理论上远远超出黑名单的规模,实现一个可用的白名单安全产品的难度远大于黑名单;②如何保证白名单库中的软件真实安全可靠?即使是某些知名厂商的软件产品中也存在作弊的可能;③如此庞大的白名单库,如何在用户端应用,特别是在用户无法连接网络或者用户计算机已经无法正常工作的情况下。单纯的白名单技术在本质上与黑名单技术是相同的,都是通过以下步骤来实现 即建立数据库(信任的或不信任的)、本地认证或网络认证、按认证结果进行后续操作(允许或禁止);本发明并不是这种单纯的白名单技术,它的关键是①基于在线的或离线的软件产品厂商安装包,创建分布式的软件产品库,解决来源和建库问题;②该产品库不是简单的黑、白名单,而是通过技术手段得到的产品信誉度及产品全部数据信息,以匹配用户端的安全级别,用户可以在不同的安全级别上自主取信不同的软件产品,解决取信问题;③基于这种同时具有在线和离线特征的软件产品库,允许用户进行分布式的离线认证,即使用户无法连接网络,甚至没有可信任的软件安装包,也能使用基本产品库对自己的计算机系统进行认证,将系统切换到高级别的安全环境,从事一些安全操作,或者将系统切入低级别的工作环境,继续使用一些安全属性未知的软件产品。也就是说,现有安全产品主要依赖于黑名单技术(病毒库),即或也依赖于白名单技术,因为黑名单技术的滞后性和白名单技术的难以实施,很难实现一个具有广泛适应性 (适应于所有已知和未知的病毒)和具有高度灵活性(可运行所有未知软件并保证用户计算机和数据安全)的安全产品。那么针对现有技术的上述缺陷,则需要有一种全新的分布式认证方法来实现提高计算机系统的安全防御性。

发明内容
本发明提出了一种基于软件产品库的分布式可信认证方法和系统,不同于黑白名单技术,该方法彻底抛弃了黑名单技术,并彻底解决了软件可信认证在实用性上的难题,可广泛应用于计算机数据安全、网络安全和系统无损还原等领域,为计算机应用安全提供基准信息、基础服务和基本功能;该方法通过在线和离线二种途径建立一套全面可行的软件可信认证机制,为用户实现多种安全级别的可信认证,来保障用户计算机的应用安全和网络安全,并允许用户在不同的安全级别上无障碍运行任意软件产品,即使该产品中包含危险代码,亦无法破坏用户计算机的数据安全与系统稳固。实现本发明的具体技术方案如下一种基于软件产品库的分布式可信认证系统,其特征在于包括认证服务器,用于创建认证所需的基础产品库和基础样本库,并根据客户端在线用户的认证请求按需执行软件产品的本地认证或者分布式远程认证,最后返回认证结果;认证终端,用于客户端的在线用户发起认证请求,或者用于客户端的离线用户认证软件产品可信度,并根据认证结果或用户选择,通过不同安全级别的切换来保护用户的数据安全、信息安全并保障用户计算机系统稳固。一种基于软件产品库的分布式可信认证方法,其特征在于包括用于创建认证所需的基础产品库和基础样本库,并根据认证请求提供给在线用户按需执行软件产品认证或者分布式认证用户软件产品的可信度,最后返回认证结果的步骤;用于客户端的在线用户发起认证请求,认证软件产品的可信度,或者用于离线用户认证软件产品可信度,并根据认证结果或用户选择,通过不同安全级别的切换来保护用户的数据安全和信息安全的步骤。所述在线是指运行在客户端用户计算机上的认证终端已通过互连网连接到认证服务器。所述离线是指运行在客户端用户计算机上的认证终端未能连接到或无法与认证服务器连接的情况。所述创建认证所需的基础产品库和基础样本库的过程是通过分布式存在于世界各地的认证服务器,根据该地域的国家、民族和应用相匹配的软件产品注册清单,自动下载并收集软件厂商发布的所有品种和版本的软件产品安装包,在后台提取该软件产品安装包的产品信息并加入到基础产品库和基础样本库,在提取时,智能分析软件产品信誉度,并配合认证服务器本地或联网的最新版本杀毒引擎对软件产品安装包中提取的可执行文件和脚本文件进行扫描,以获得该软件产品的文件可信度和综合信誉度指标。所述软件产品是指由软件厂商、或各种赢利、非赢利组织、以及个人开发的可应用于特定领域的可执行文件、执行代码和数据的集合。所述软件产品安装包是指该软件产品原始发行的所有文档、数据和代码的集合, 如安装程序,安装包、压缩包、或目录树下的所有文件。所述基础样本库包括软件产品安装包的所有压缩或非压缩的文件数据、安装信息及索引信息;用于在客户端文件被破坏、替换或被删除的情况下,向客户端发送原始文件数据用来恢复被破坏、替换或被删除的客户端文件。所述基础产品库包括从软件产品安装包提取、智能分析所得到的所有文档和代码的静态特征信息、行为特征信息、核心数据、和认证信息,基础产品库分布在世界各地的认证服务器上,每台认证服务器的基础产品库只收录本地域相关的软件产品。基础产品库中的软件产品包含可信任的产品,也包含不可信的产品。认证时使用基础产品库的数据对用户提交的认证请求进行认证匹配,并返回认证结果,认证结果包括用户请求认证的软件产品每个文件的可信度及综合信誉度,如果用户文件被感染,还包括该文件的修复信息 (静态特征信息和核心数据),用于修复感染的文件。所述软件产品库,包括所有认证服务器上为分布式在线认证所创建的基础产品库和基础样本库、随认证终端发布的基本产品库,以及所有用户计算机上建立的临时产品库和用户产品库。所述基本产品库是指包含在认证终端内、随认证终端一起发布和安装的精简版本且完全可信的软件产品认证数据库,基本产品库从基础产品库中提取,收录认证终端发行区域最常使用且完全可信的软件产品的产品信息和认证信息,用于认证终端离线认证。所述用户产品库是指由认证终端生成的、包括用户计算机上安装的操作系统和所有其它软件产品的产品信息和认证信息的用户本地认证数据库;所述用户计算机上安装的操作系统产品的产品信息具体包括磁盘主引导记录、分区引导记录、分区表、文件系统核心数据、注册表、注册表备份、所有系统文件,以上信息用于修复或还原用户计算机系统。基础产品库和基础样本库收录所有已注册的软件产品的认证信息和数据信息 (包括可信的和不可信的);基本产品库为基础产品库的一个可信任子集,用于为离线用户提供可信认证;临时产品库用于离线用户对基本产品库进行临时扩展,其作用与基本产品库相同,但包含用户自行取信的软件产品,如果用户在线,临时产品库将被认证且移动到用户产品库;用户产品库包含用户计算机上的所有已认证(在线认证或离线认证)的软件产品(包括可信的和不可信的),用户产品库可包括基础产品库未登记的软件产品,该软件产品未公开发行或来源未知,其认证信息则由认证终端智能分析自动生成,用户可自行调整用户产品库中所有软件产品的信誉度。所述智能分析基本范围包括来源信誉度、代码信息规范度、代码结构规范度、代码行为危险度,其中,来源信誉度、代码行为危险度可能配合一定的人工分析。所述后台提取采用直接解析安装包文件结构,在内存中解压缩安装包文件数据或资源数据,然后提取每个文件的有效信息,所述有效信息包括厂商信息、版本信息、时间信息、数字签名、文件数据校验值、代码结构信息、模块依赖关系、函数调用信息、代码加壳、加密信息、核心数据,这些信息用于智能分析可执行文件的信誉度,生成基础产品库相关的代码静态特征信息、行为特征信息、核心数据、和认证信息,也用于修复用户计算机上被感染的文件;或者,在无法解析安装包文件结构的情况下,后台提取还可以通过虚拟机或启动重定向服务运行安装程序,还原出所有安装文件,再进行提取;在重定向机制下,安装程序所执行的所有文件操作和注册表操作都将被映射到重定向磁盘或重定向目录,因此对当前操作系统不会产生任何影响。所述根据认证请求提供给客户端的在线用户按需执行软件产品认证的过程如下 如果客户端在线用户安装或运行未知的软件产品,认证终端(该认证终端通过网络下载, 或通过产品发行介质,安装在用户计算机上)将发送所述未知软件产品的认证请求给认证服务器,如果待认证的未知软件产品未加入认证服务网络(所有认证服务器基础产品库的集合),认证服务器则根据待认证的未知软件产品的产品信息(产品信息包含软件产品名称、厂商、版本、数字签名、文件列表,以及每个文件的大小、时间戳、版本、代码静态特征和文件数据校验值),自动或通过人工的方式将该产品加入认证服务器软件产品注册清单 (所述软件产品注册清单包括已登记的所有软件产品的列表信息、及其在认证服务器基础产品库和基础样本库的索引信息,软件产品注册清单包括两种类型本地注册清单和远程注册清单;软件产品注册清单中的软件产品包括四种状态已入库、正在入库、等待入库、 未能入库),该软件产品注册清单通过自动和人工的方式进行维护,例如,如果未知软件产品的产品信息和厂商信息与已入库的某个软件产品相匹配,则自动使用已入库的软件产品的来源和来源信誉度作为未知软件产品的来源信息,如果未能找到匹配的软件产品,则通过人工方式搜索其官方网站和下载服务器,并确定其来源信誉度,然后认证服务器从最优来源下载待认证的软件产品安装包,通过智能分析获取软件的产品信息和信誉信息,并配合第三方杀毒引擎最终确定待认证的软件产品的文件可信度和综合信誉度,从而完成认证;对于认证服务器无法找到来源的待认证的未知软件产品,采用认证终端离线认证,用户自行取信的方式完成认证。客户端在线用户根据返回的认证结果自行决定后续操作,例如, 如果该产品的信誉很差,而用户决定安装或运行该软件,则认证终端将自动切换到较低的安全级别上运行该软件,以保障用户数据和信息的安全。按需认证具有较高的优先级,使认证服务器可以快速响应用户的实时请求。所述认证服务器执行按需认证时包括两种情况(一)对认证终端请求的软件产品进行综合认证,综合认证结果包括待认证软件产品中每一个文件的可信度,以及该软件产品的综合信誉度,认证结果返回给认证终端,综合信誉度与用户计算机上的某个安全级别相对应;(二)对认证终端请求的单个文件或执行代码进行认证,认证结果只返回所认证文件的可信度;此两种情况向认证终端返回的认证结果都可能包括以下附加信息当客户端文件被篡改(感染)时包含的文件修复信息、当客户端文件被替换时包含的文件原始数据。(基础产品库、基本产品库、临时产品库和用户产品库包含有软件产品的文件修复信息, 基础样本库和离线认证时用户指定的软件安装包则包含软件产品的原始文件数据。)所述分布式认证软件产品可信度的过程如下首先认证服务器采用分布式的方式部署在世界各地的网络节点上,认证服务器存储有本地域最新和最完善的基础产品库和基础样本库,一旦某个认证服务器的基础产品库有更新,该认证服务器即向其它网络节点的认证服务器发布最新的远程软件产品注册清单;当某个网络节点的认证服务器接收到用户认证请求后,首先查找认证服务器本地软件产品注册清单和本地基础产品库,若存在待认证的软件产品,则匹配待认证的软件产品的信誉度并将认证结果返回给认证终端,客户端的在线用户根据返回的认证结果执行后续操作;若本地认证服务器未记录待认证的软件产品,则查找远程软件产品注册清单,如果找到,则向对应的网络节点远程认证服务器发起远程认证请求,此时,发起远程认证请求的认证服务器相当于中继服务器,远程认证完成后, 直接向用户计算机认证终端返回远程认证结果;如果在远程软件产品注册清单中也未找到待认证的软件产品,则认证服务器执行基础产品库的创建过程,将待认证的软件产品登记到基础产品库和基础样本库中。认证终端利用认证服务器返回的认证信息,不仅可以向用户报告软件的综合信誉度以及每个文件的可信度信息,还可以直接修复或还原用户端的可疑文件,从而用户无需再次重新下载软件产品的安装包、重新安装操作系统或者应用软件。所述客户端的离线用户认证软件产品可信度的过程如下当客户端用户为离线状态时,认证终端自带一个与用户地域相一致的基本产品库 (基本产品库总是随认证终端一起发布),若用户所安装的操作系统和应用软件已全部被基本产品库所覆盖,那么用户无须在线即能认证自己的运行环境;若离线的用户计算机存在基本产品库未知的软件产品,且具备该软件产品安装包,用户可以启动认证终端临时认证,临时认证将智能分析该软件产品安装包所有文件的可信度和综合信誉度,如果安装包不可信,将提示用户,用户可放弃也可人工采信该软件产品,如果安装包可信或被用户人工采信,认证终端将自动提取该软件产品安装包产品信息,加入到临时产品库,临时产品库具有与基本产品库相同的信誉度(在离线状态下完全可信);认证终端使用基本产品库、临时产品库和用户产品库对用户计算机进行扫描,离线状态产生的临时产品库以及添加到用户产品库的所有软件将保持临时认证状态;直到离线用户变为在线状态,认证终端将请求认证服务器重新认证临时产品库和用户产品库状态为临时认证状态的软件产品(与按需执行软件产品认证的过程完全相同),经过认证的临时产品库自动转换为用户产品库,用户可以人工指定用户产品库软件的信誉度,或从用户指定信誉状态返回到标准信誉状态。也就是说,用户可以自行指定一个软件产品为完全可信任,即使该产品包含真正的病毒代码,它也能在较高的安全级别上运行,但是,如果用户返回到标准信誉状态,这些代码都将从内存中清理出去、并被卸载,该产品的所有磁盘文件都将被隔离。如果用户既不能在线,也无法提供软件产品的安装包,那么,认证终端只能使用基本产品库对用户计算机系统进行认证, 相应的安全级别只有两种,一是安全,一是未知,用户可以在这两种级别之间切换,当然,如果用户切换到安全级别上,信誉未知的所有应用软件都将无法运行。所述用户产品库软件产品包含三种状态①标准信誉状态,②临时信誉状态,③用户指定信誉状态。所述标准信誉状态是指经过认证服务器认证返回的软件产品信誉度,相对于用户指定信誉状态而言,该状态是准确和可靠的。所述临时信誉状态是指经过离线的认证终端智能分析得到的软件产品信誉度, 相对于标准信誉状态而言,该状态可能存在一定的风险,不能被长期信赖,一旦用户在线, 该状态将自动升级为标准信誉状态。所述用户指定信誉状态是指用户忽略认证服务器返回的信誉状态,或者忽略认证终端离线时智能分析得到的信誉状态,人工指定用户产品库软件产品的信誉度,使得某些软件可以在较高安全级别或只能在较低安全级别上运行。用户指定信誉状态可以快速返回标准信誉状态或临时信誉状态。所述病毒是指包括木马等各种威胁计算机安全的可执行文件、脚本文件、模块、进程、线程和内核执行代码。所述通过不同安全级别的切换保护用户的数据安全和信息安全的过程如下用户选择将要切换到的安全级别,然后启动安全级别的切换,认证终端自动对用户计算机的运行环境和磁盘文件进行彻底扫描,并按照用户选择的安全级别对扫描结果进行认证,终止、 卸载并隔离所有未通过认证的进程、线程、模块、执行代码(包括内核驱动)、可执行文件和注册表项;如果从较高的安全级别切换到较低的安全级别,则加密所有较高安全级别的用户信息和关键数据(如用户帐户信息、cookie信息、用户指定的安全目录),并启动用户数据实时保护,反之则解密用户信息和关键数据,如果存在无法清除的代码,可能要求用户重新启动。所述认证终端对用户计算机的扫描,包括所有运行在计算机内存中的进程、线程、模块、执行代码(包括内核驱动),所有磁盘文件、引导记录,注册表项和注册表数据,用户信息和关键数据。认证终端从较低安全级别向较高安全级别切换时,对用户计算机系统的处理包括(1)终止所有未过认证的进程;( 终止所有未过认证的线程;C3)卸载所有未过认证的模块;(4)卸载所有未过认证的执行代码(包括内核驱动);( 隔离所有未过认证的可执行文件(包括脚本文件);(6)导出并删除所有与上述未过认证的可执行文件、进程映像、 模块文件、内核驱动相关联的注册表项和注册表数据;(7)扫描磁盘系统和文件系统,修复和还原所有被感染、替换的可执行文件,包括系统核心文件,如MBR(主引导记录)、分区表、 分区引导记录;(8)解密目标安全级别之下所有安全级别被加密的用户信息和关键数据; (9)如果存在不能彻底清除和卸载的可执行代码,可能要求用户重新启动;(10)保存上述切换日志。认证终端从较高安全级别向较低安全级别切换时,对用户计算机系统的处理包括(1)根据对应的低级别到高级别切换日志,还原所有(被隔离的)与目标安全级别相匹配的可执行文件、进程映像文件、模块文件和内核驱动文件;( 导入所有(被导出和删除的)与目标安全级别相匹配的注册表项和注册表数据;(3)加载所有被卸载的与目标安全级别相匹配的内核驱动;(4)加密目标安全级别之上的所有安全级别的用户信息和关键数据。所述认证终端即使不进行安全级别之间的切换,也具备对当前安全级别工作环境进行重新认证的机制,以检查动态侵入计算机系统的可疑代码和侵入计算机文件系统的可疑文件,保障系统的稳固和安全。对于操作系统存在漏洞或主动防御系统存在漏洞的用户计算机,该认证机制可以彻底保障系统的安全,并提示用户修复操作系统或主动防御可能存在的漏洞。所述认证终端工作在较低的安全级别时,可能因为运行某种恶意软件或危险程序,导致操作系统被破坏,或运行环境被破坏;但是认证终端具备修复操作系统和运行环境的能力,实现方案如下1)通过光盘、可移动存储介质上的D0S、LINUX或WINDOWS PE等小型操作系统引导计算机;(2)引导成功后,在上述小型操作系统中运行认证终端程序,选择较高的安全级别,对用户计算机系统和磁盘文件进行扫描,将用户计算机快速切换到较高安全级别的工作环境,同时隔离所有未能通过认证的可执行文件和脚本文件,删除其快捷方式;C3)修复和还原所有被感染、替换、或被破坏的可执行文件(包括被感染、替换、或被删除、破坏的系统文件);(4)如果存在目标安全级别的用户产品库,则还原用户计算机操作系统的主引导记录、分区表、分区引导记录、文件系统和注册表;(5)如果不存在目标安全级别的用户产品库,则修复用户计算机操作系统的主引导记录、分区引导记录和文件系统, 导出并删除所有与未通过认证的可执行文件、脚本文件相关的注册表项和注册表数据。本发明实现的安全分级的运行环境可以让用户最大程度无障碍地运行所有的软件,它在本质上不再关心软件或执行代码是否为病毒,或者是何种病毒,因此也无须对可疑代码进行定性分析,因为用户真正关心的不是病毒的名称,而是安全的结果。所述认证服务器还可配合第三方杀毒引擎进行可信度认证,是在软件产品安装包来源信誉度已知的情况下,为确保获得的软件产品发布版本绝对安全可靠,而采取的一种认证加强措施。基于本发明所述的技术,可以为用户提供具有以下特征的安全软件产品一、在客户端主要依据或完全依据本发明所述的可信认证技术进行扫描,采用该技术扫描用户计算机系统,可以1)彻底检测出用户计算机中存在的所有在线(已加载到内存中的)和离线(保存在磁盘等存储介质上的)的未经认证或认证不符合当前安全级别的可执行文件和可执行代码,幻终止、卸载并隔离所有1)中检测到的未过认证的可疑进程、线程、模块、执行代码和内核驱动,;3)直接修复所有被篡改(感染)的文件,幻还原所有被替换、破坏或被删除的文件,4)修复或还原磁盘主引导记录、分区引导记录、分区表、文件系统、注册表。二、支持在外部引导的小型操作系统上执行上述扫描和修复操作,外部引导包括软盘引导、光盘引导、USB(FDD、HDD、⑶ROM)引导、网络引导,小型操作系统包括=DOS, LINUX, WINDOWS PE 等。三、所述扫描无论用户是离线状态还是在线状态,都可以保证将用户计算机系统切换到一个被认证的、真正安全的状态上,为用户提供一个安全的应用环境;基于小型操作系统的离线扫描,主要应用在系统无法启动或不能正常工作的情况下,让用户无需重装系统就能将系统快速还原,基于本发明实现的系统还原是一种真正的无损还原,不会覆盖任何用户文件或造成用户数据的丢失。四、为用户提供不同安全级别的工作环境。这种不同安全级别的工作环境具有以下特征1)真正安全,不能通过认证的代码无法潜入用户计算机中运行,2)真正隔离,较低安全级的程序和代码无法进入较高安全级的工作环境,同时较低安全级的工作环境下也不能看到较高安全级别的用户隐私和敏感数据,3)安全级别的切换与操作系统的用户帐户切换并不相同,同一台计算机,用户在同一时刻只能工作在一种明确的安全级别上,不能同时创建多种安全级别的工作环境。五、为用户提供真正安全的系统环境和应用环境的同时,也允许用户无障碍地使用和体验任何软件产品,即使该产品包含恶意代码或危险程序。例如,用户在一个安全级别上安装或运行尚未认证的软件产品,会被提示进行认证,如果认证的信誉度较低,该产品将被禁止,但用户可以选择切换到较低的安全级别上正常使用该软件;或者,用户可以在当前安全级别上忽略认证服务器的标准信誉状态,为想要运行的软件指定用户信誉而使用之, 当用户返回标准信誉状态时,该软件产品的用户指定信誉即作废。六、具备用户数据实时保护能力。即使在较低的安全级别上运行不可信的软件或者在较高安全级别上运行用户指定信誉的软件,也能够保护用户数据不被破坏,其特征在于1)如果上述软件未通过用户人工操作,在后台自动打开、修改、删除计算机中的任何数据文件,都将被拦截并报告给用户,2)如果上述软件进行物理磁盘操作,也将被拦截并报告给用户。七、离线的情况下,允许用户临时把软件产品的安装包视为基准进行不完全认证 (用户可忽略信誉度智能分析的结果,人工采信该软件产品),认证终端将从用户指定的软件安装包提取产品信息并将结果保存在临时产品库,具有最高的信誉度。因此,只要用户具有可信的原始软件安装包或安装程序,同样可以获得与在线认证相同的认证效果。八、在线的情况下,临时产品库将在后台被提交认证,如果认证通过,自动转换为用户产品库,如果不能通过认证,则返回认证结果并提示用户。综上所述,基于本发明实现的安全产品具有以下基本特征一、主要基于或完全基于本发明所述的基于软件产品库的分布式可信认证技术对用户计算机系统进行认证。二、具备化整为零的离线认证技术,使用户在离线的状态下也能保证自己计算机系统的安全。三、一旦用户在线,离线认证可自动升级为在线认证,临时产品库转换为用户产品库,临时认证软件产品转换为标准认证软件产品。四、通过本发明所述的基于软件产品库的可信认证技术,能最大程度地保护用户计算机系统的稳固。即使系统被破坏,亦能在其它小型操作系统上运行基于该技术的认证终端加以修复并还原计算机系统,将系统返回到安全稳定的状态。五、允许用户进入不同安全级别的工作环境,这些安全级别在应用上完全隔离。最高安全级别的工作环境具有完全认证、受保护和可信任的特征,用户可在该级别完成一些重要的工作,如网络交易。在较低的安全级别,用户可尝试体验任何软件产品,而不用担心安全受到威胁。


图1为本发明的架构2为本发明认证服务器创建基础产品库的流程3为本发明认证终服务器按需执行软件产品认证流程4为本发明认证终端离线认证流程5为本发明认证终端安全级别的切换流程图
具体实施例方式下面结合附图1-5对本发明的实施方式作出进一步说明。本发明提供了一种基于软件产品库的分布式可信认证方法和系统,能够对任意计算机用户的文件系统、应用软件和运行环境进行快速扫描,按照用户要求的安全级别,终止并卸载所有不符合当前安全级别的可执行代码,隔离所有不符合当前安全级别的可执行文件,保护较高安全级别的用户信息和关键数据,禁止运行所有不符合当前安全级别的可执行代码,配合主动防御和网络防火墙技术,便能消除用户计算机上的所有安全隐患,为用户实现一个不同安全级别之间相互隔离、真正安全可靠的、可无障碍运行任何软件产品的操作系统环境。该系统包括认证服务器,用于创建认证所需的基础产品库和基础样本库,并根据客户端在线用户的认证请求按需执行软件产品的本地认证或者分布式远程认证,最后返回认证结果;认证终端,用于客户端的在线用户发起认证请求,或者用于客户端的离线用户认证软件产品可信度,并根据认证结果或用户选择,通过不同安全级别的切换来保护用户的数据安全、信息安全并保障用户计算机系统稳固。该方法包括用于创建认证所需的基础产品库和基础样本库,并根据认证请求提供给在线用户按需执行软件产品认证或者分布式认证用户软件产品的可信度,最后返回认证结果的步骤;用于在线用户发起认证请求,认证软件产品的可信度,或者用于离线用户认证软件产品可信度,并根据认证结果或用户选择,通过不同安全级别的切换来保护用户的数据安全和信息安全的步骤。如图2所示,认证服务器创建基础产品库的过程该过程用于创建认证所需的基础产品库和基础样本库,基础产品库用于对客户端的用户请求进行认证,基础样本库用于从中提取原始文件,还原客户端被替换、破坏或被删除的文件。基础产品库包含了用于认证、修复客户端文件的所有信息,以及该软件产品每个文件的可信度及综合信誉度。如图3所示,认证服务器按需执行软件产品本地认证和分布式认证的过程用户请求认证的软件产品可能包含以下几种情况①待认证软件产品已加入本地认证服务器基础产品库,认证服务器只需对用户提交的认证请求进行精确匹配认证,并生成认证结果返回给客户端的在线用户认证终端,如果用户待认证的软件产品已被感染(篡改)、替换、破坏或被删除,认证结果则包含用于修复、还原该软件产品文件的修复信息或原始文件压缩数据;②待认证软件产品未加入本地认证服务器基础产品库,但已加入远程认证服务器基础产品库,此时,本地认证服务器相当于中继服务器,简单地将用户请求转发到匹配的远程认证服务器,并等待认证完成,最后将认证结果返回给客户端的在线用户认证终端;③待认证软件产品未加入认证服务网络(本地的和所有远程的认证服务器基础产品库的集合), 则启动本地认证服务器基础产品库的创建流程,该过程可能配合一定的人工搜索以确定该软件产品安装包的最优来源,如果未能找到该软件产品来源,则返回失败,这时,在线用户认证终端启动软件产品信誉度智能分析,以智能分析的结果作为临时认证结果,并提示用户根据该临时结果自行决定如何采信待认证的软件产品;一旦该软件产品加入认证服务网络,认证服务器将主动要求该客户端在线用户升级认证结果。如图4所示,认证终端离线认证的过程认证终端的离线认证可以从当前操作系统启动,也可以从其它小型操作系统启动。目的在于清除并隔离所有安全级别低于用户要求的执行代码、映像文件及注册表项,保证用户当前的工作环境确实符合要求的安全级别。 离线认证具有修复并还原用户计算机系统的能力。如图5所示,认证终端安全级别的切换过程认证终端从较低的安全级别向较高安全级别切换的过程与离线认证过程相同,切换完成后,所有不能通过较高安全级别认证的可执行代码都将被终止,并从内存中清理出去,所有不能通过认证的可执行文件都将被隔离,所有与这些可执行文件相关联的注册表项都将被导出并被删除,切换完成后,配合第三方主动防御模块和防火墙模块,其它来源的(如网络下载的或通过网页浏览器启动的或通过漏洞入侵的)任何可执行代码或文件也将被检查,如果不能通过当前安全级别的认证,也将不能运行,因此,在较高的安全级别上,用户的数据安全和应用安全将得到保障。本发明通过与分布在世界各地的软件产品厂商服务器、可信任下载服务器及病毒扫描服务器互连,建立认证服务网络,实现全自动和分布式的软件可信认证,特别是,通过本发明所述的安全认证,在用户计算机上实现分安全级别的、可无障碍运行任何软件产品的工作环境。基于本发明提出的这种具有在线和离线特征的软件产品库,对用户计算机进行分布式可信认证,为用户建立不同安全级别的工作环境,允许用户自主取信任意软件产品,便无需将软件严格地划分为安全与危险,而是用不同的安全级别来运行不同的软件,即使该软件包含病毒代码,也可以运行在较低安全级别的工作环境中,因为本发明创建的安全级别,具有相互完全隔离、用户数据实时保护的特性。本发明之所以能够建立这种具有在线和离线特征的软件产品库,并应用到可能在线也可能离线的用户计算机上,是因为具体到世界上任何一台计算机终端,在其上运行的操作系统和应用软件都是非常有限的,因此本发明所提出的这种基于软件产品库的分布式认证的方法,能解决计算机安全认证在建库、取信和应用方面的所有问题。本发明所提出的不同安全级别的工作环境,用户可在这些环境中运行任意软件产品而不破坏计算机系统的安全性,与虚拟机技术存在根本区别。应用在安全领域的虚拟机技术包括①在当前操作系统中,通过虚拟机软件构建一个虚拟的硬件环境,在该环境中加载一个完整的或小型的操作系统,然后在这个操作系统中运行用户的软件,无论该软件执行了什么操作,都无法影响真实的操作系统,②接管当前操作系统底层,将系统的所有操作都导向到一个临时的区域,因此系统重启后一切操作都将作废,以保护真实的操作系统。本发明所提出的技术都是直接工作在当前操作系统环境中,用户的所有操作和操作结果都会被保存下来,如果切换了安全级别,低级别操作结果会彻底消失,但切换回去时,低级别的操作结果将重新回来。例如软件A完全可信,而软件B是一种常规意义下的病毒程序,用户在最高安全级别的工作环境中运行软件A,软件A因为能够通过该级别的可信认证而正常运行,在该安全级别下,如果用户运行软件B (或者软件B因为入侵成功要求运行),认证终端将对软件B进行实时的在线或离线认证,因为软件B无法通过该级别的可信认证,认证终端将提示用户放弃运行软件B,如果用户选择继续运行软件B,则认证终端将自动切换到与软件B相应的安全级别上,这时,软件B安全级别之上的所有安全级别对应的用户信息和关键数据都将被加密,用户数据实时保护功能开启,软件B运行过程中的所有文件操作和注册表操作都将被记录;当用户重新切换回最高安全级别时,认证终端将重新扫描系统和磁盘文件,软件B相关的所有进程、线程、模块、驱动都将被终止和卸载,软件B创建的所有可执行文件被隔离,软件B所篡改的所有文件被修复或还原,软件B所修改的注册表项被还原、添加的注册表项被导出和删除,这时,软件B相当于彻底从系统中彻底消失;另外,软件 B安全级别之上的所有安全级别对应的用户信息和关键数据被解密,系统重新回复到最高安全级别对应的工作环境。
权利要求
1.一种基于软件产品库的分布式可信认证方法,其特征在于包括用于创建认证所需的基础产品库和基础样本库,并根据认证请求提供给在线用户按需执行软件产品认证或者分布式认证用户软件产品的可信度,最后返回认证结果的步骤;用于在线用户发起认证请求,认证软件产品的可信度,或者用于离线用户认证软件产品可信度,并根据认证结果或用户选择,通过不同安全级别的切换来保护用户的数据安全和信息安全的步骤。
2.根据权利要求1所述的方法,其特征在于包括所述创建认证所需的基础产品库和基础样本库的过程是通过分布式存在于世界各地的认证服务器,根据该地域国家、民族和应用相匹配的软件产品注册清单,自动下载并收集软件厂商发布的所有品种和版本的软件产品安装包,在后台提取该软件产品安装包的产品信息并加入到基础产品库和基础样本库,在提取时,智能分析软件产品信誉度,并配合认证服务器本地的或联网的杀毒引擎对软件产品安装包中提取的可执行文件和脚本文件进行扫描,以获得该软件产品的文件可信度和综合信誉度指标;所述软件产品信誉度智能分析的基本范围包括来源信誉度、代码信息规范度、代码结构规范度、代码行为危险度。
3.根据权利要求1或2所述的方法,其特征在于所述基础样本库包括软件产品安装包的所有压缩或非压缩的文件数据、安装信息及索引信息;用于在客户端文件被破坏、替换或被删除的情况下,向客户端发送原始文件数据用来恢复被被破坏、替换或被删除的客户端文件;所述基础产品库包括从软件产品安装包提取、智能分析所得到的所有文档和代码的静态特征信息、行为特征信息、核心数据、和认证信息,基础产品库分布在世界各地的认证服务器上,每台认证服务器的基础产品库只收录本地域相关的软件产品;所述软件产品库,包括所有认证服务器上为分布式在线认证所创建的基础产品库和基础样本库、随认证终端发布的基本产品库,以及所有用户计算机上建立的临时产品库和用户产品库;所述基本产品库是指包含在认证终端内、随认证终端一起发布和安装的精简版本且完全可信的软件产品认证数据库,基本产品库从基础产品库中提取,收录认证终端发行区域最常使用且完全可信的软件产品的产品信息和认证信息,用于认证终端离线认证;所述用户产品库是指由认证终端生成的、包括用户计算机上安装的操作系统和所有其它软件产品的产品信息和认证信息的用户本地认证数据库;所述用户计算机上安装的操作系统产品的产品信息具体包括磁盘主引导记录、分区引导记录、分区表、文件系统核心数据、注册表、注册表备份、所有系统文件,以上信息用于修复或还原用户计算机系统;基础产品库和基础样本库收录所有已注册的软件产品的认证信息和数据信息;基本产品库为基础产品库的一个可信任子集,用于为离线用户提供可信认证;临时产品库用于离线用户对基本产品库进行临时扩展,也用于为离线用户提供可信认证,包含用户自行取信的软件产品,如果用户在线,临时产品库将被认证且移动到用户产品库;用户产品库包含用户计算机上的所有已认证的软件产品;若用户产品库中存在基础产品库未登记的软件产品,该软件产品未公开发行或来源未知时,认证信息则由认证终端智能分析自动生成,用户可自行调整用户产品库中所有软件产品的信誉度。
4.根据权利要求1所述的方法,其特征在于所述后台提取软件产品安装包产品信息, 采用直接解析安装包文件结构,在内存中解压缩安装包文件数据或资源数据,然后提取每个文件的有效信息,包括厂商信息、版本信息、时间信息、数字签名、文件数据校验值、代码结构信息、模块依赖关系、函数调用信息、代码加壳、加密信息、核心数据,这些信息用于自动分析可执行文件的信誉度,也用于修复用户计算机上被感染的文件;在无法解析安装包文件结构的情况下,所述软件产品安装包产品信息,通过虚拟机或重定向服务运行安装程序,还原出所有安装文件,再进行提取;在重定向机制下,安装程序所执行的所有文件操作和注册表操作都将被映射到重定向磁盘或重定向目录,因此对当前操作系统不会产生任何影响。
5.根据权利要求1所述的方法,其特征在于所述根据认证请求提供给客户端在线用户按需执行软件产品认证的过程如下如果客户端在线用户安装或运行未知软件产品,认证终端将发送一个未知软件产品的认证请求给认证服务器,如果待认证的未知软件产品未加入所有认证服务器基础产品库集合,认证服务器则根据待认证的未知软件的产品信息, 从认证服务器上已建立的软件产品注册清单查找该软件产品的最优来源,认证服务器从最优来源下载该软件产品安装包,通过信誉度智能分析技术,并配合第三方杀毒引擎最终确定该软件产品的文件可信度和综合信誉度,对于认证服务器无法找到来源的软件产品,采用认证终端离线认证,用户自行取信的方式完成认证;所述产品信息包括软件产品名称、厂商、版本、数字签名、文件列表,以及每个文件的大小、时间戳、版本、代码静态特征和文件数据校验值。
6.根据权利要求5所述的方法,其特征在于所述认证服务器执行按需认证时包括两种情况第一种,对认证终端请求的待认证软件产品安装包进行综合认证,综合认证对请求认证的软件产品安装包的所有文件进行认证,认证结果包括每个文件的可信度及综合信誉度,综合信誉度与用户计算机上的某个安全级别相对应;第二种,对认证终端请求的单个文件或执行代码进行认证,认证结果只包含所认证文件的可信度;当客户端文件被篡改、或被替换、破坏和删除时,无论是在线认证还是认证终端离线认证,生成的认证结果都包括文件的修复信息,原始文件的压缩数据。
7.一种基于软件产品库的分布式可信认证系统,其特征在于包括认证服务器,用于创建认证所需的基础产品库和基础样本库,并根据客户端在线用户的认证请求按需执行软件产品的认证或者分布式远程认证,最后返回认证结果;认证终端,用于客户端的在线用户发起认证请求,或者用于客户端的离线用户认证软件产品可信度,并根据认证结果或用户选择,通过不同安全级别的切换来保护用户的数据安全、信息安全并保障用户计算机系统稳固。
8.根据权利要求7所述的系统,其特征在于首先认证服务器采用分布式的方式部署在世界各地的网络节点上,认证服务器存储有本地域最新和最完善的基础产品库和基础样本库,一旦某个认证服务器的基础产品库有更新,该认证服务器即向其它网络节点的认证服务器发布最新的远程软件产品注册清单;当某个网络节点的认证服务器接收到用户认证请求后,首先查找认证服务器本地产品注册清单和本地基础产品库,若存在待认证的软件产品,则匹配该软件产品的产品信息和信誉度并将认证结果返回给认证终端,客户端的在线用户根据返回的认证结果执行后续操作;若本地认证服务器未记录待认证的软件产品,则查找远程软件产品注册清单,如果找到,则向对应的网络节点远程认证服务器发起远程认证请求,远程认证完成后,直接向用户计算机认证终端返回远程认证结果;如果在远程产品注册清单也未找到待认证的软件产品,则认证服务器执行基础产品库的创建过程,将待认证的软件产品登记到基础产品库和基础样本库中。
9.根据权利要求7所述的系统,其特征在于当客户端用户为离线状态时,认证终端自带一个与用户地域相一致的基本产品库,若用户所安装的操作系统和应用软件已全部被基本产品库所覆盖,那么用户无须在线即能认证自己的运行环境;若离线的用户计算机存在基本产品库未知的软件产品,且具备该软件产品安装包,用户启动认证终端临时认证,临时认证将智能分析该软件产品安装包所有文件的可信度和综合信誉度,如果安装包不可信, 将提示用户,用户自行选择放弃或者人工采信该软件产品,如果安装包可信或被用户人工采信,认证终端将自动提取该软件产品安装包的产品信息,加入到临时产品库,临时产品库具有与基本产品库相同的信誉度;认证终端使用基本产品库、临时产品库和用户产品库对用户计算机进行扫描,离线状态产生的临时产品库以及添加到用户产品库的所有软件将保持临时认证状态;直到离线用户变为在线状态,认证终端将请求认证服务器重新认证临时产品库和用户产品库状态为临时认证状态的软件产品,经过认证的临时产品库自动转换为用户产品库,用户自行指定用户产品库软件产品的信誉度,或将其信誉状态从用户指定信誉状态返回到标准信誉状态。
10.根据权利要求9所述的系统,其特征在于所述用户产品库软件产品的信誉状态包含三种状态标准信誉状态,临时信誉状态和用户指定信誉状态;所述标准信誉状态是指经过认证服务器认证返回的软件产品信誉度,相对于用户指定信誉状态而言,该状态是准确和可靠的;所述临时信誉状态是指经过离线的认证终端智能分析得到的软件产品信誉度,相对于标准信誉状态而言,该状态存在一定风险,不能被长期信赖,一旦用户在线,该状态将自动升级为标准信誉状态;所述用户指定信誉状态是指用户忽略认证服务器返回的信誉状态,或者忽略认证终端离线时智能分析得到的信誉状态,人工指定用户产品库软件产品的信誉度,使得某些软件在较高安全级别或只能在较低安全级别上运行。
11.根据权利要求7所述的系统,其特征在于用户选择将要切换到的安全级别,启动安全级别的切换时,认证终端自动对用户计算机的运行环境和磁盘文件进行彻底扫描,并按照用户选择的安全级别对扫描结果进行认证,终止、卸载并隔离所有未通过认证的进程、 线程、模块、执行代码、可执行文件和注册表项;如果从较高的安全级别切换到较低的安全级别,则加密所有较高安全级别的用户信息和关键数据,并启动用户数据实时保护;如果从较低的安全级别切换到较高的安全级别,则解密目标安全级别之下所有安全级别的用户信息和关键数据;当存在无法清除的代码时,提示用户重新启动;所述认证终端对用户计算机的扫描,包括以下内容所有运行在计算机内存中的进程、 线程、模块、执行代码,所有磁盘文件、引导记录,注册表项和注册表数据,用户信息和关键数据。
12.根据权利要求11所述的系统,其特征在于认证终端从较低安全级别向较高安全级别切换时,对用户计算机系统的处理包括终止所有未过认证的进程;终止所有未过认证的线程;卸载所有未过认证的模块;卸载所有未过认证的执行代码;隔离所有未过认证的可执行文件;导出并删除所有与上述未过认证的可执行文件、进程映像、模块文件、内核驱动相关联的注册表项和注册表数据;扫描磁盘系统和文件系统,修复和还原所有被感染、 被替换的可执行文件,包括系统核心文件;解密目标安全级别之下所有安全级别被加密的用户信息和关键数据;如果存在不能彻底清除和卸载的可执行代码,要求用户重新启动; 保存上述切换日志;认证终端从较高安全级别向较低安全级别切换时对用户计算机系统的处理包括根据对应的低级别到高级别切换日志,还原所有与目标安全级别相匹配的可执行文件、进程映像文件、模块文件和内核驱动文件;导入所有与目标安全级别相匹配的注册表项和注册表数据;加载所有被卸载的与目标安全级别相匹配的内核驱动;加密目标安全级别之上的所有安全级别的用户信息和关键数据。
13.根据权利要求7所述的系统,其特征在于所述认证终端运行在其它小型操作系统下,修复被破坏的用户计算机系统,其过程如下A、通过光盘、可移动存储介质上的DOS、 LINUX或WINDOWS PE小型操作系统引导计算机;B、引导成功后,在步骤A中所述的小型操作系统中运行认证终端程序,选择较高的安全级别,对用户计算机系统和磁盘文件进行扫描, 将用户计算机快速切换到较高安全级别的工作环境,同时隔离所有未能通过认证的可执行文件和脚本文件,删除其快捷方式;C、修复和还原所有被感染、替换、或被破坏的可执行文件;D、如果存在目标安全级别的用户产品库,则还原用户计算机操作系统的主引导记录、分区表、分区引导记录、文件系统和注册表;E、如果不存在目标安全级别的用户产品库,则修复用户计算机操作系统的主引导记录、分区引导记录和文件系统,导出并删除所有与未通过认证的可执行文件、脚本文件相关的注册表项和注册表数据。
14.根据权利要求7所述的系统,其特征在于所述认证服务器还配合第三方杀毒引擎进行可信度认证。
全文摘要
本发明涉及安全认证技术,特别是一种基于软件产品库的分布式可信认证方法和系统,在线用户通过认证终端向认证服务器发起认证请求,认证服务器根据认证请求提供给在线用户按需执行软件产品认证或者分布式认证用户软件产品的可信度,最后返回认证结果;离线用户通过认证终端直接认证软件产品可信度,根据认证结果或用户选择,通过不同安全级别的切换来保护用户的数据安全和信息安全;本发明通过在线和离线二种途径建立的软件可信认证机制,为用户实现多种安全级别的可信认证,来保障用户计算机的应用安全和信息安全,并允许用户在不同的安全级别上无障碍运行任意软件产品,即使该产品中包含真正的病毒代码,亦无法破坏用户计算机的数据安全与系统稳固。
文档编号H04L9/32GK102195987SQ201110143788
公开日2011年9月21日 申请日期2011年5月31日 优先权日2011年5月31日
发明者张宁军, 龙祥玲 申请人:成都七巧软件有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1