本发明涉及根据特定规则监控和过滤网络业务的领域,更具体地涉及阻断网络连接的系统和方法。
背景技术:
目前,提供数据安全性的需求日益增长。当建立用于将数据发送到第三方的网络连接时,密码协议的使用使防止数据公开成为可能。但是像任何技术一样,在实现安全交换机制时使用的技术具有缺点。此外,根据使用的方法,缺点可以为技术或组织本性的漏洞。例如,当一起使用安全套接层(ssl)协议和超文本传输协议(http)时,黑客可以通过利用技术的弱点来进行中间人攻击;借助响应码http302重定向到https的http操作可以允许黑客进行中间人攻击或相似攻击。黑客已创建了用以在从不受保护的通信信道到受保护的通信信道的转换点处进行攻击的特殊工具,诸如用于使用http剥离(即sslstrip)提取证书的程序。当黑客使用这些类型的工具时,攻击过程如下:
·拦截客户端和网络服务器之间的业务;
·检测httpsurl地址且用地址httpurl替换该httpsurl地址;
·假借客户端之名将证书提供给网络服务器;
·在受保护的信道上接收来自网络服务器的业务并将该业务重定向到其客户端。
当客户端将数据发送到网络服务器时以及当网络服务器将数据发送到客户端时,由于攻击,因此黑客获得对数据的访问权。
一种规避中间人和相似攻击的方法是利用时间延迟验证(timedelayverification)、分析网络业务以及分析证书。另一种方法是采用可信证书的策略,仅允许连接到在白名单上呈现的资源且仅使用可信证书。然而,使用可信证书的策略致使保护系统缺乏灵活性:首先,来自同一下发方的证书可能会被更改且连接将失效(因为通过指纹进行比较,且每个证书都是唯一的);其次,权限策略显著地限制了网络资源的可用性,将资源限制为仅供受信任的组使用。由于没有及时地更新可信证书数据库,因此潜在的可信证书也可能在给定时间对于保护机构来说是未知的。
此外,也可能出于非法目的而采用受保护的连接,以隐藏传输的含有非法性质信息的信息。为了反击这类活动,在计算机网络中阻断资源的唯一网络地址,该计算机网络在这类信息或其资源的传输中为中间人。然而,实践表明,这不是一种有效方法,因为资源所在的地址可能改变。
因此,需要解决上述缺点并提高数据安全性。
技术实现要素:
本发明的各个方面涉及计算机安全领域,更具体地涉及阻断网络连接,从而过滤网络业务的系统和方法。
在一个示例性方面中,在包括硬件处理器的计算机中实现一种用于阻断网络连接的方法,所述方法包括:当在服务器和客户端之间建立受保护的连接时,拦截来自所述服务器的证书;确定拦截的所述证书是否类似于一个或多个禁用证书,所述确定拦截的所述证书是否类似于一个或多个禁用证书包括根据确定证书之间的相似性的方法和将禁用证书保存在禁用证书数据库中的方法来转换拦截的所述证书;以及当拦截的所述证书类似于所述一个或多个禁用证书时,阻断所述连接。
根据本发明的一个方面,提供一种用于阻断网络连接的系统,所述系统包括硬件处理器,所述硬件处理器配置成:当在服务器和客户端之间建立受保护的连接时,拦截来自所述服务器的证书;确定拦截的所述证书是否类似于一个或多个禁用证书,所述确定拦截的所述证书是否类似于一个或多个禁用证书包括根据确定证书之间的相似性的方法和将禁用证书保存在禁用证书数据库中的方法来转换拦截的所述证书;以及当拦截的所述证书类似于所述一个或多个禁用证书时,阻断所述连接。
在一个示例性方面中,提供一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有用于阻断网络连接的一组指令,其中,该组指令包括用于如下操作的指令:当在服务器和客户端之间建立受保护的连接时,拦截来自所述服务器的证书;确定拦截的所述证书是否类似于一个或多个禁用证书,所述确定拦截的所述证书是否类似于一个或多个禁用证书包括根据确定证书之间的相似性的方法和将禁用证书保存在禁用证书数据库中的方法来转换拦截的所述证书;以及当拦截的所述证书类似于所述一个或多个禁用证书时,阻断所述连接。
在一个方面中,所述确定证书之间的相似性的方法包括:从拦截的所述证书获得属性;以正则表达式的形式表达规则,其中,所述规则由所述一个或多个禁用证书的公共属性形成,所述公共属性由于聚类一组所述一个或多个禁用证书而产生;以及将所述规则应用于拦截的所述证书的字符串,其中,当发现相似性时,满足所述规则。
在一个方面中,所述确定证书之间的相似性的方法包括:从拦截的所述证书获得属性;基于获得的所述属性构造n维矢量;以及将构造的所述n维矢量与所述禁用证书数据库中的簇相比较。
在一个方面中,在如下情况时认为拦截的所述证书类似于所述一个或多个禁用证书中的禁用证书:所构造的拦截的所述证书的所述n维矢量与所述数据库中的至少一个簇的中心之间的距离小于所述至少一个簇的半径;或构造的所述n维矢量与所述至少一个簇的所述中心之间的邻近度的测量值小于阈值。
在一个方面中,当基于获得的所述属性构造所述n维矢量时,针对各个属性使用不同权重来计算各个属性的坐标。
在一个方面中,给定属性的所述坐标基于所述给定属性的出现频率。
在一个方面中,给定证书的所述属性包括如下项中的一者或多者:所述给定证书的有效期的开始日期和时间及结束日期和时间、具有签名密钥的所述给定证书的所有者、公钥、认证中心的名称和详细资料、加密算法的指定、关于签名的受限使用的信息、下发所述给定证书的国家的象征、所述给定证书的符号的频率特性、以及在所述给定证书中的行偏移及各个行偏移的长度。
根据本发明的教导的网络连接的阻断通过实现监控和过滤网络业务来提高计算机安全性。该提高通过如下操作来实现:当在服务器和客户端之间建立受保护的连接时,拦截来自所述服务器的证书;确定拦截的所述证书是否类似于一个或多个禁用证书,所述确定拦截的所述证书是否类似于一个或多个禁用证书包括根据确定证书之间的相似性的方法和将禁用证书保存在禁用证书数据库中的方法来转换拦截的所述证书;以及当拦截的所述证书类似于所述一个或多个禁用证书时,阻断所述连接。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
图1为示出根据本发明的各方面的用于阻断网络连接的示例性系统的框图。
图2为根据本发明的可用于转换关于证书内容的信息的二维空间的示例。
图3为示出根据本发明的各方面的用于分类证书的示例性系统的框图。
图4为示出用于阻断网络连接的示例性方法的流程图。
图5a为示出用于通过形成禁用证书的列表来阻断网络连接的方法的流程图。
图5b为示出用于基于网络资源的类别来阻断网络连接的方法的流程图。
图6示出了其上可实现本发明的各方面的通用计算机系统的示例。
具体实施方式
本文中在用于阻断网络连接以改善数据安全性的系统、方法和计算机程序的背景下描述示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是示例性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。
图1为示出根据本发明的各方面的用于阻断网络连接的示例性系统100的框图。
系统100至少包括拦截器101、比较器102、和禁用证书数据库103。系统100可以以分布形式或以集中形式来实现。在分布形式实现的情况下,拦截器101和客户端(例如网络浏览器)可以位于同一设备(平板电脑、移动手机、个人计算机)上,且比较器102和禁用证书数据库103可以位于内部发现具有客户端的设备的局域网或企业网络的另一设备上(例如,如在106中所示)。在集中实现的情况下,系统100完全位于具有客户端的设备上或位于另一设备(诸如代理服务器)上,通过该另一设备将网络业务从服务器发送到具有客户端的设备。系统100的拦截器101拦截从服务器(诸如网络服务器)到客户端(诸如网络浏览器)的业务并提取从服务器发送到客户端的证书。如果在受保护的隧道中发送证书,则拦截可以通过中间人(maninthemiddle,mitm)方案且利用业务的https的解包而发生。将拦截的证书从拦截器101发送到比较器102。
比较器102用于确定拦截的证书是否类似于禁用证书,为此,系统100的比较器102使用规则(包括正则表达式)、矢量和簇(下文进一步描述)。作为单独的事项,必须注意,相似性的确定意味着所确定的事物是相似性而非证书的身份,这将本发明的方法与其它方案显著区分,其它方案将获得的证书与已知的证书相比较以确定身份,例如通过比较证书的指纹来确定身份。换言之,本发明描述了一种方法,其中,如果可以将拦截的证书映射到一组禁用证书上,则认为拦截的证书是相似的。在一个方面中,由于正在确定拦截的证书与禁用证书的相似性,因此使用模糊方法确定映射,该模糊方法诸如正则表达式和邻近度测量。因此,即使拦截的证书与来自该组禁用证书的证书相同,作为比较结果,比较器102也将认为这些证书仅为相似的——不是相同的。
将禁用证书和/或禁用证书的属性、簇和规则保持在禁用证书数据库103中。既可以单独地(不相关地)保持证书,又可以以列表保持证书,其中,该列表由特定属性(诸如证书的所有者、认证中心)组织整理为一组证书。列表的特定实例为簇,这些簇不保存证书本身,而是保存其映射——n维矢量。因此,禁用证书数据库103可以保存:禁用证书本身;列表上的禁用证书;禁用证书的映射,例如以连接公共属性的规则的形式或以n维矢量的形式;或禁用证书在簇中的映射。如果数据库将禁用证书的映射保存在n维矢量和/或簇中,则应理解,数据库将保存禁用证书的n维空间的模型。
证书的n维矢量可以为一组有序的n个实数,其中,这些数为该矢量的坐标。矢量的坐标的数量被称为矢量的维度。坐标决定了相应证书或同一资源类型(诸如tor网络)的一组证书在n维空间中的位置。图2为根据本发明的可用于转换关于证书内容的信息的二维空间的示例。通过转换关于该证书或该组证书的内容的信息来产生矢量。矢量映射关于该证书或该组证书的内容的特定信息。在一个方面中,每个坐标映射证书的特性之一,例如,一个坐标表征认证中心,另一个坐标表征证书的所有者。这些数也可以映射证书的字符串参数的编辑次序或证书的不同元素的字符串参数之间的莱文斯坦(levenshtein)距离。例如,图2示出矢量、尤其具有坐标(1666,1889)和坐标(1686,1789)的二维矢量的示例。
簇为证书的一组n维矢量。如果从拦截的证书的n维矢量到特定簇的中心的距离小于该特定簇在n维矢量的方向上的半径,则将拦截的证书指定到该特定簇。图2示出了簇在二维空间中的示例。在一个方面中,如果从证书的n维矢量到特定簇的证书的最近的n维矢量的距离的值(在图2中的“d’”)小于可允许的最大值(该距离的阈值[d’])或者如果从证书的n维矢量到该特定簇的中心的距离的值(在图2中的“d”)小于该特定簇的半径,则将证书指定到该特定簇。例如,从矢量(1666,1889)到簇的中心的距离小于簇的半径,因此其内容由该矢量映射的证书或一组证书将属于该簇;否则,如果从矢量(1686,1789)到簇的中心的距离大于簇的半径且到最近n维矢量的距离大于阈值,则其内容由该n维矢量映射的证书或一组证书不属于该簇。用于评估邻近度的距离的示例为:
·线性距离;
·欧几里德(euclidean)距离;
·欧几里德距离的平方;
·闵可夫斯基(minkowski)的广义幂距离;
·切比雪夫(chebyshev)距离;以及
·曼哈坦(manhattan)距离。
邻近度(相似度、相似性的系数)的测量值为用于确定证书的相似性的无量纲参数。距离的类型和邻近度的测量值为距离度量。为了确定邻近度的测量值,使用如下测量:
·ohaai;
·jacquard;
·sokal-sneath;
·kulczinsky;或
·对称dyce。
簇的中心(形心)为n维空间中的n维矢量的平均几何轨迹。对于由单个矢量组成的簇,该矢量为簇的中心。
簇的半径(图2中的r)为组成簇的n维矢量距该簇的中心的最大距离。
另外,可以在用于阻断网络连接的系统100中使用聚类模块104和规则生成器105来处理禁用证书,即:
·将这些禁用证书组合为列表/簇;以及
·基于组合为列表/簇的证书的公共属性创建规则。
使用各种已知的算法和方法来聚类证书,包括分层的(凝聚和分割)和不分层的算法和方法。聚类同样也用于通过公共属性对证书分组。因此,在聚类之后,将其矢量最终在同一簇中的证书分组为单一列表,且通过规则生成器105基于证书公共的属性(通过该公共的属性,这些证书最终在同一簇中)来制定规则。当用字符串表达公共属性时,可以以正则表达式的形式表达该规则。
可以远程地进行由聚类模块104和规则生成器105对禁用证书的处理,仅将生成的规则下载到本地禁用证书数据库103。在一个方面中,比较器102本地地将拦截的证书转换为n维属性矢量,同时将用于比较生成的矢量的簇保持在远程数据库中。
可以下载禁用证书,以供具有客户端的设备的用户,供企业网络的管理员,供提供业务的监控、派遣、和路由的网络资源的管理员(诸如供应方)在系统100中进行处理。在一般情况下,由管理员或用户将证书指定为禁用证书不取决于与该证书相关联的网络资源的有害性。是否将特定证书指定为禁用证书由公司政策、终端用户偏好、家长控制设置、地方立法和执行机构的要求、以及证书本身的状态(吊销的证书、自签发的证书等)来决定。
还可以通过用于分类证书的系统辅助用于阻断网络连接的系统100的工作。图3为示出了根据本发明的各方面的用于分类证书的示例性系统300的框图。例如在家长控制系统中(当需要限制未成年人阅读不良内容时)、企业管理系统中(当需要阻止员工使用娱乐资源时),使用分类。可以有不同的分类技术,从而可以识别如下类别的资源,特别地:
·成年人内容;
·软件、音频、视频;
·酒精、烟草、麻醉剂和精神药物;
·暴力;
·武器、爆炸物、烟火;
·亵渎的言行;
·赌博、彩票、抽奖;
·因特网通信媒体;
·电子商务;
·职位搜索(招聘);
·http查询重定向;
·计算机游戏;
·宗教、宗教组织;以及
·新闻媒体。
在图3中所示的用于分类证书的系统300被设计成建立证书和资源类别之间的对应关系,从而系统300包含类别数据库,该类别数据库包括网络资源的地址和这些资源的类别。在一个方面中,提前制定数据库并按原样使用。系统300也包含证书数据库,其中,当建立与客户端的连接时,每种网络资源与使用该资源的证书相匹配。系统300的证书数据库例如通过阻断系统100来填充。在另一方面中,可以使用微软证书数据库,且也可以将这些方法与其它可能的方法以不同组合来一起使用。系统300的证书数据库和类别数据库连接到分类模块301,该分类模块301被设计成基于在网络资源地址处的交叉而建立网络资源的类别和证书之间的对应关系。由于建立对应关系,因此分类模块301用类别填充证书数据库。基于获得的具有类别的证书数据库,聚类模块104和规则生成器105填充禁用证书数据库103。禁用证书数据库103将包含属于一类网络资源的那些证书或其映射(矢量、规则、簇),通过政策、法律、行政权等禁止具有客户端的设备对这类网络资源的访问。禁用证书数据库103之后将由用于阻断网络连接的系统100来使用。在另一方面中,聚类模块104和规则生成器105可以用于填充可信证书数据库302。可信证书数据库302将包含属于一类网络资源的那些证书或其映射(矢量、规则、簇),通过政策、法律、行政权等允许具有客户端的设备对这类网络资源的访问。用于分类证书的系统300和用于阻断网络连接的系统100的使用显著地提高了计算机网络管理和家长控制系统的功能的有效性(减少第二种错误)。实现了提高的效用,这是因为在通过禁用资源改变网络地址或网络证书的情况下,将仍基于拦截的证书与来自禁用证书数据库103的证书的相似性来阻断与该资源的连接。
图4为示出用于阻断网络连接的示例性方法400的流程图。使用用于阻断网络连接的系统100来执行阻断网络连接的方法400。
在步骤410中,当在服务器和客户端之间建立受保护的连接时,方法400通过拦截器101拦截来自服务器的证书。
在步骤420中,方法400确定拦截的证书是否类似于一个或多个禁用证书。在一个方面中,确定拦截的证书是否类似于一个或多个禁用证书包括:根据确定相似性的方法和将禁用证书保存在禁用证书数据库103中的方法来转换拦截的证书。
在一个方面中,该确定相似性的方法包括:从证书获得属性以构造n维矢量,并将构造的n维矢量与禁用证书数据库103中的簇相比较。
在一个方面中,给定证书的属性包括如下项中的一者或多者:
·给定证书的有效期的开始日期和时间及结束日期和时间;
·具有签名密钥的给定证书的所有者;
·公钥;
·认证中心的名称和详细资料;
·加密算法的指定;
·关于签名的受限使用的信息;
·下发给定证书的国家的象征;
·给定证书的符号的频率特性;
·在给定证书中的行偏移及各个行偏移的长度,等等。
在一个方面中,当在n维空间中构造证书的n维矢量时,针对各个属性使用不同权重来计算各个属性的坐标,例如通过证书中的给定属性的出现频率来确定坐标(频率越低,权重越大)。可以借助神经网络,例如通过使用反向误差传播方法连同梯度下降方法来计算这些权重。
(通过确定例如获得的矢量与簇中心之间的相互距离)将构造的n维矢量与禁用证书的簇相比较;在一个方面中,该簇可以由仅一个禁用证书的n维矢量形成。
在一个方面中,基于比较,在如下情况时认为拦截的证书类似于禁用证书:
-证书的n维矢量与数据库中的至少一个簇在n维空间中的中心之间的距离小于该簇的半径;或
-元素的n维矢量与至少一个簇在n维空间中的中心之间的邻近度的测量值小于阈值。
在一个方面中,代替构造的n维矢量,使用规则进行比较。当代替构造的n维矢量而使用规则(诸如正则表达式的形式的规则)进行比较时,将规则应用于证书的字符串。例如,对于tor连接,规则将如下所示:
o=,l=,s=,c=,cn=www\.[0-9a-za-z]+\.net.
然后,当满足规则时,认为拦截的证书类似于禁用证书。
如果拦截的证书类似于禁用证书,则在步骤430中,通过系统100的拦截器101阻断连接。可以通过数据安全领域的普通技术人员已知的任何方法进行给定网络连接的阻断。
回到图1和图3,使用用于分类证书的系统300和用于阻断网络连接的系统100执行阻断与被指定到禁用资源类别的资源的网络连接的方法。
图5a为示出用于通过形成禁用证书的列表来阻断网络连接的方法的流程图。在步骤510中,获得禁用资源类别的列表,其中,每个类别包含指定到该禁用资源类别的网络资源的地址。在步骤520中,获得证书及其相应的网络资源的地址的列表。接着在步骤530中,基于禁用资源类别的列表形成禁用证书的列表,其中,指定到禁用资源类别的网络资源的地址所对应的证书被指定为禁用证书。在步骤540中,在建立受保护的连接时拦截证书,以及在步骤550中,确定拦截的证书与禁用证书的相似性;如果作为相似性的确定结果而发现拦截的证书类似于禁用证书,则在步骤560中,阻断正在建立的连接。
在本发明的各方面中,获得类别的列表而不将类别指定为禁用类别,这在灵活系统的情况下是必要的,在灵活系统中不可能提前或在用于阻断网络连接的模块正在服务多个应用不同网络政策的设备时确定禁用类别。
图5b为示出用于基于网络资源的类别来阻断网络连接的方法的流程图。在步骤510a中,获得资源类别的列表,每个类别包含指定到给定类别的网络资源的地址。在步骤520中,获得证书及其相应的网络资源的地址的列表。接着在步骤530a中,为来自获得的证书列表的证书指定给定证书所属于的网络资源类别所对应的类别。在步骤540中,在建立客户端与服务器的受保护的连接时拦截证书,以及在步骤541中,获得禁止与客户端连接的网络资源的类别。在步骤550中,确定拦截的证书与以下证书的相似性:指定到禁止连接的资源的类别的证书。如果作为相似性的确定结果而发现拦截的证书类似于那些证书,则在步骤560中,阻断正在建立的连接。
在另一方面中,在步骤550中,可以通过确定给定证书与已知证书(该已知证书的类别已被确定)的相似性来确定拦截的证书的类别,其中,为拦截的证书指定与其相似的已知证书的类别。在该情况下,如果确定的拦截的证书的类别与在步骤541中获得的禁用网络资源的类别相同,则阻断连接。
如上所述,在实时模式下执行本发明的用于基于数字证书的比较来阻断网络连接的方法,其中,在建立受保护的连接时通过确定拦截的证书与禁用证书的相似性而拦截证书,其中,如果可以将证书映射到一组禁用证书上,则认为该证书是相似的,其中,通过使用由禁用证书的公共属性形成的规则检查该映射,这些公共属性由于一组禁用证书的聚类而产生。
如果作为相似性的确定结果而发现拦截的证书类似于禁用证书,则阻断正在建立的连接。在一个方面中,额外地从拦截的证书提取属性。如果提取属性,则可以以正则表达式的形式表达规则。当阻断连接时,通过使用规则来确定拦截的证书与禁用证书的相似性,其中,如果发现相似性,则满足该规则。
在一个方面中,使用另一种用于建立相似性的方法来实时地阻断网络连接。在该方法中,在建立受保护的连接时拦截证书。然后,确定拦截的证书与禁用证书的相似性,其中,使用距离度量执行映射。然后,当可以将证书映射到一组禁用证书上时,认为该证书类似于禁用证书。如果作为相似性的确定结果而发现拦截的证书类似于禁用证书,则阻断正在建立的连接。
可以用包含禁用证书的属性的矢量的簇来表示禁用证书。在特定情况下,从拦截的证书提取属性并将该属性转换为n维矢量。在将证书的属性转换为n维矢量期间,通过确定拦截的证书的n维矢量与该簇之间的距离来进行相似性的确定,如果证书的n维矢量与簇在n维空间中的中心之间的距离小于该簇的半径或元素的n维矢量与该簇在n维空间中的中心之间的邻近度的测量值小于阈值,则认为拦截的证书是相似的。
本方法的拦截器101、比较器102、聚类模块104和规则生成器105包括真实的设备、系统、部件、部件组,这些设备、系统、部件、部件组利用硬件(诸如集成微电路(专用集成电路(applicationspecificintegratedcircuit,asic))或现场可编程门阵列(field-programmablegatearray,fpga))或例如以软件和硬件的组合(诸如微处理器系统和一组程序指令)的形式、以及也基于神经突触芯片来实现。所指示模块的功能可以仅仅通过硬件、而且还以组合的形式来实现,其中,一些功能通过软件来实现以及一些功能通过硬件来实现。
图6为示出根据示例性方面的其上可实施用于阻断网络连接的系统和方法的各方面的计算机系统20的框图。应当注意,计算机系统20可以对应于例如前文所描述的具有拦截器的设备。计算机系统20可以为多个计算设备的形式、或为单一计算设备的形式,例如:台式电脑、笔记本电脑、手提电脑、移动计算设备、智能手机、平板电脑、服务器、主机、嵌入式设备和其它形式的计算设备。
如图所示,计算机系统20包括中央处理单元(centralprocessingunit,cpu)21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。总线的示例可以包括pci、isa、串行总线(pci-express)、超传输tm(hypertransporttm)、无限带宽tm(infinibandtm)、串行ata、i2c、和其它合适的互连。中央处理单元21(也称为处理器)可以包括单组或多组具有单核或多核的处理器。处理器21可以执行实现本发明的技术的一种或多种计算机可执行代码。系统存储器22可以为用于存储本文中所使用的数据和/或由处理器21可执行的计算机程序的任何存储器。系统存储器22可以包括易失性存储器(诸如随机存取存储器(randomaccessmemory,ram)25)和非易失性存储器(诸如只读存储器(read-onlymemory,rom)24、闪存等)或其任何组合。基本输入/输出系统(basicinput/outputsystem,bios)26可以存储用于在计算机系统20的元件之间传输信息的基本程序,例如在使用rom24加载操作系统时的那些基本程序。
计算机系统20可以包括一个或多个存储设备,诸如一个或多个可移除存储设备27、一个或多个不可移除存储设备28、或其组合。所述一个或多个可移除存储设备27和一个或多个不可移除存储设备28借助存储器接口32连接到系统总线23。在一个方面中,存储设备和相应的计算机可读存储介质为用于存储计算机系统20的计算机指令、数据结构、程序模块、和其它数据的电源独立的模块。系统存储器22、可移除存储设备27和不可移除存储设备28可以使用各种各样的计算机可读存储介质。计算机可读存储介质的示例包括:机器存储器,诸如缓存、sram、dram、零电容ram、双晶体管ram、edram、edoram、ddrram、eeprom、nram、rram、sonos、pram;闪存或其它存储技术,诸如在固态驱动器(solidstatedrive,ssd)或闪盘驱动器中;磁带盒、磁带、和磁盘存储器,诸如在硬盘驱动器或软盘驱动器中;光学存储器,诸如在光盘(cd-rom)或数字通用光盘(digitalversatiledisk,dvd)中;以及可用于存储期望数据且可被计算机系统20访问的任何其它介质。
计算机系统20的系统存储器22、可移除存储设备27和不可移除存储设备28可以用于存储操作系统35、附加程序应用37、其它程序模块38和程序数据39。计算机系统20可以包括用于传送来自输入设备40的数据的外围接口46,该输入设备40诸如键盘、鼠标、针式打印机、游戏控制器、语音输入设备、触点输入设备、或其它外围设备,诸如借助一个或多个i/o端口的打印机或扫描仪,该一个或多个i/o端口诸如串行端口、并行端口、通用串行总线(universalserialbus,usb)、或其它外围接口。显示设备47(诸如一个或多个监控器、投影仪或集成显示器)也可以通过输出接口48(诸如视频适配器)连接到系统总线23。除了显示设备47之外,计算机系统20还可以装配有其它外围输出设备(未示出),诸如扬声器和其它视听设备。
计算机系统20可以使用与一个或多个远程计算机49的网络连接而工作在网络环境中。所述一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括前面在描述计算机系统20的性质时所述的元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。计算机系统20可以包括用于借助一个或多个网络而与远程计算机49通信的一个或多个网络接口51或网络适配器,该一个或多个网络诸如局域计算机网络(local-areacomputernetwork,lan)50、广域计算机网络(wide-areacomputernetwork,wan)、内联网、和因特网。网络接口51的示例可以包括以太网接口、帧中继接口、同步光纤网(sonet)接口、和无线接口。
本发明的各个方面可以为系统、方法和/或计算机程序产品。计算机程序产品可以包括一种或多种计算机可读存储介质,该计算机可读存储介质上具有用于使处理器执行本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以为有形设备,该有形设备可以保持且存储指令或数据结构的形式的程序代码,该程序代码可以被计算设备的处理器(诸如计算系统20)访问。计算机可读存储介质可以为电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备、或其任何合适组合。通过示例方式,这类计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、电可擦可编程只读存储器(eeprom)、便携式光盘只读存储器(cd-rom)、数字通用光盘(dvd)、闪存、硬盘、便携式电脑磁盘、记忆棒、软盘、或甚至机械编码设备,诸如在其上记录有指令的凹槽中的打孔卡或凸起结构。如在本文中所使用的,计算机可读存储介质不应被视为暂时性信号本身,暂时性信号诸如无线电波或其它自由传播的电磁波、通过波导或传输介质传播的电磁波、或通过电线传输的电信号。
可以将本文中所描述的计算机可读程序指令从计算机可读存储介质下载到各个计算设备、或借助网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输线缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。在每个计算设备中的网络接口从网络接收计算机可读程序指令并转发该计算机可读程序指令,用以存储在各个计算设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以为汇编指令、指令集架构(instruction-set-architecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言和传统程序化编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以作为独立的软件包完全地在用户的计算机上、部分地在用户的计算机上、部分地在用户的计算机上且部分地在远程计算机上、或完全地在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包括lan或wan)连接到用户的计算机,或可以(例如通过因特网)进行与外部计算机的连接。在本发明的一些方面中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)、或可编程门阵列(programmablelogicarray,pla))可以通过利用计算机可读程序指令的状态信息使该电子电路个性化而执行计算机可读程序指令,从而执行本发明的各个方面。
在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(asic)或fpga)实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以在计算机系统(诸如上文在图6中更详细描述的计算机系统)的处理器上运行。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。