一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

从客户端设备匿名收集与恶意软件相关的数据的系统和方法与流程

2022-03-31 07:57:03 来源:中国专利 TAG:


1.本发明总体涉及信息安全领域,更具体地涉及用于从客户端设备匿名收集与恶意软件相关的数据的系统和方法。


背景技术:

2.世界各地的法律变化正迫使信息安全专家寻求用于管理来自个人电子设备的数据的新方法。例如,在俄罗斯联邦中签署了一项法律,借此,被因特网服务使用的俄罗斯人的个人可识别信息必须被保管在俄罗斯的领域上;在瑞士,也要求银行不允许用户数据离开联邦政府的司法领域;以及在多个国家中,禁止个人可识别信息以开放形式来保管。正在开发的方案不应当使计算机系统的用户的工作更加困难并且这些方案应当在其操作中对用户尽可能透明。
3.随着通用数据保护条例(general data protection regulation,gdpr)的出现,保管在网络基础设施中的关于各种服务的部分的且从用户接收的个人数据的量趋向于最小化。需要提供对从用户获得的数据的分布式存储和处理,而不失去其独特性。
4.这些原理在企业和私营部门中采用云基础设施方面造成困难。需要将会解决这些困难的方案。


技术实现要素:

5.本发明的技术结果是使得能够在服务器处从客户端设备安全且匿名地收集与恶意软件相关的数据。
6.在一方面,一种用于从客户端设备匿名收集与恶意软件相关的数据的方法包括:由网络节点从客户端设备接收第一数据结构,其中第一数据结构包含客户端设备的标识符和加密数据,所述加密数据包括客户端设备的用户的标识符和/或用户的个人数据,并且加密数据由客户端设备使用客户端设备的公钥加密,其中,公钥由独立认证机构提供给客户端设备;由网络节点通过将客户端设备的标识符替换为匿名标识符而将接收到的第一数据结构进行变换,并将包含匿名标识符和加密数据的变换后的第一数据结构发送到服务器;由服务器从网络节点接收变换后的第一数据结构;由服务器从客户端设备接收第二数据结构,其中第二数据结构包含在客户端设备上获得的与恶意软件相关的数据;以及由服务器将变换后的第一数据结构与第二数据结构进行组合,并将组合后的数据结构存储在服务器上,而服务器无法访问和/或查看存储在组合后的数据结构中的(i)客户端设备的标识符和(ii)客户端设备的用户的标识符和/或用户的个人数据。
7.在一方面,匿名标识符包括客户端设备的加密标识符。
8.在一方面,客户端设备位于第一区域网络中,网络节点位于与第一区域网络不同的第二区域网络中,以及服务器位于与第一区域网络和第二区域网络不同的第三区域网络中。
9.在一方面,第一区域网络和第三区域网络位于不同的法律管辖区内。
10.在一方面,与恶意软件相关的数据包括恶意文件的散列。
11.在一方面,网络节点不位于与服务器和客户端设备相同的内联网中。
12.以上对示例性方面的简要概述用于提供对本发明的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的或主要的要素,也不旨在勾画本发明的任何方面或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述内容,本发明的一个或多个方面包括在权利要求中所描述的且示例性指出的特征。
附图说明
13.并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
14.图1示出了用于在客户端-服务器架构中进行数据路由的系统。
15.图1a示出了用于在客户端-服务器架构中进行数据路由的系统,该系统包括认证模块。
16.图2示出了在客户端-服务器架构中的数据路由的方法的变型,其中,数据结构被客户端划分为子结构。
17.图3示出了在客户端-服务器架构中的数据路由的方法在执行请求时的变型,其中,由匿名化模块识别数据结构中的子结构。
18.图4示出了在客户端-服务器架构中的数据路由的方法的变型,其中,由客户端识别数据结构中的子结构。
19.图5示出了在客户端-服务器架构中的数据路由的方法在执行请求时的变型,其中,由客户端将数据结构划分为子结构。
20.图6a示出了在客户端-服务器架构中的数据路由的方法在发送数据(为了统计信息的构建)时的示例性方面,其中,由客户端将数据结构划分为子结构。
21.图6b示出了在客户端-服务器架构中的数据路由的方法在基于由图6a的方法所采集的信息检测对客户端的定向攻击时的示例性方面。
22.图7示出了在客户端-服务器架构中的数据路由的方法在执行请求时的方面,其中,由匿名化模块识别数据结构中的子结构。
23.图8示出了在客户端-服务器架构中的数据路由的方法的一方面,其中,由客户端识别数据结构中的子结构。
24.图9示出了在客户端-服务器架构中的数据路由的方法在执行请求时的方面,其中,由客户端将数据结构划分为子结构。
25.图10示出了在客户端-服务器架构中的匿名数据交换系统。
26.图11示出了在客户端-服务器架构中的数据交换方法的变型,其用于从客户端获得数据用以在服务器侧构建统计信息。
27.图12示出了在执行客户端对服务器的请求时所使用的数据交换的变型方法。
28.图12a示出了在执行客户端对服务器的请求时所使用的且包括对子结构进行组合的数据交换方法的变型。
29.图13示出了在执行客户端对服务器的请求时的数据交换方法的示例性方面。
30.图13a示出了在异步模式下执行客户端对服务器的请求时的数据交换方法的示例性方面。
31.图14示出了在客户端-服务器架构中发送关键数据的变型方法。
32.图14a示出了在客户端-服务器架构中发送关键数据的方法的示例性方面。
33.图15示出了根据本发明的各方面的用于节制模块的示例性规则的表格。
34.图16示出了使用认证模块在客户端-服务器架构中发送关键数据的变型方法。
35.图16a示出了使用认证模块在客户端-服务器架构中发送关键数据的方法的示例性方面。
36.图17示出了根据示例性方面的其上可实施所公开的系统和方法的计算机系统的示例。
具体实施方式
37.本文中在用于从客户端设备匿名收集与恶意软件相关的数据的系统、方法和计算机程序产品的背景下描述示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是示例性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。
38.图1示出了用于在客户端-服务器架构中进行数据路由的系统100。该系统100包括客户端102、服务器104、和具有匿名化模块108的网络节点106。服务器104可以为云基础设施(在图中未示出)的一部分,而客户端可以为用户设备。具有匿名化模块108的节点106可以位于不同于服务器所处的区域网络(即,区域网络3)的区域网络107(即,区域网络2)中且不位于与服务器104或客户端102相同的内联网中。如在本文中所使用,区域网络107指的是地理上分散的网络,通过通信手段将处于不同点的计算机联合为一个整体,这组区域网络形成全球网109。在本发明的背景下,不同的区域网络107不仅在地理上分离,而且还位于不同的司法管辖区(即,可能受制于不同的法规)内,从而在本发明的背景下,不同的区域网络也可以包括将国家的节点联合在一起的网络(国家网络)。例如,在图1中,区域网络“1”为美国的网络、区域网络“2”为德国和/或欧盟的网络、以及区域网络“3”为俄罗斯联邦的网络。
39.图1的全球网109为所有的区域网络107的全体、或世界网、因特网。在gdpr的术语中,例如,服务器所在的rf的区域网络将被视为第三方的区域网络。
40.在具体实例中,具有匿名化模块108的节点106的区域网络107也不同于客户端102的区域网络。图1中的箭头被绘制成源自于网络而非源自于客户端,因为在一般情况下,外部ip地址是可见的,这是由于使用了内部地址隐藏技术,尤其是代理、网络地址转换(network address translation,nat)。
41.客户端102可以包括修改模块110,该修改模块110配置成将一个或多个数据结构(例如,创建该一个或多个数据结构,用以将来自客户端的数据分派到服务器)划分为子结构以及为获得的子结构选择路径。数据结构为由系统100的部件(包括客户端102和服务器104)生成且保持的数据值的集合。注意,在数据结构中的一些数据值可以为“个人数据”,因此受制于数据隐私政策和法规。子结构则为一种包含来自原始数据结构的数据值的子集的数据结构。举例来说,数据结构中的数据值可以包括数据提交、用户请求、数据查询和/或查
询结果、日志数据、应用程序的状态数据、(一个或多个)用户交易的记录、用户生成的内容、和适合于在客户端-服务器架构中交换的其它形式的数据。在一些示例中,数据结构可以为内存中的数据结构(例如,链表、散列表、树、阵列、数据库记录)或磁盘上的数据结构(例如,文件、二进制大对象)。在其它示例中,数据结构可以为配置成将本文中包含的数据值从客户端传输到服务器的一个或多个网络数据包。数据结构可以以文本格式、结构化格式(例如,可扩展标记语言或xml、javascript对象表示或json)、或用于信息交换的其它格式被序列化。
42.可以存在用于将数据结构划分为子结构的各种标准。一个这类标准可以为个人数据(个人识别信息)或个人数据(个人识别信息)的特殊类别(在gdpr的术语中)的存在,借此,数据结构被划分,使得一个子结构包含个人数据(在后文中称为pd或pii)或个人数据的特殊类别,另一个子结构包括不为个人数据的数据(即,该另一个子结构不包含pd)。将数据表征和分配为个人数据可以例如通过国家法律(换言之,根据数据源的位置)来指示,作为所描述的系统中的客户端的设备的用户位于该国家法律的管辖内。
43.用于将数据结构划分为子结构的另一标准为关键数据的存在。关键数据为法律或被授权实体对其采集、存储、访问、散布和处理加以约束的数据。关键数据通常对于透露、散布和泄露是敏感的,这是因为这些事件的发生将导致侵害受法律保护的用户的权利和依法保护的利益,并且针对违背规则来采集、存储、访问和处理这类数据的那些人追究责任。关键数据的特定情况为机密数据(敏感数据)或个人数据。机密数据指的是按照国家法规受保护的数据,作为所描述的系统中的客户端的设备的用户位于该国家法规的管辖内。机密数据在具体情况下包括个人数据(pd)和包含如下项的数据:商业机密、税务机密、银行机密、医疗机密、公证机密、律师机密、审计机密、通信机密、保险机密、遗嘱机密、收养机密、忏悔机密、临床试验机密、法庭审理机密、关于受保护人的信息、和国家机密。在一个方面,关键数据可以包括如在gdpr下指定的敏感的个人数据,这些个人数据可以为:揭示种族或民族起源、政治意见、宗教或哲学信仰、工会会员的任何数据,关于健康或性生活和性取向的数据,和基因数据或生物特征数据(例如为了唯一地识别自然人的目的)。
44.匿名化模块108配置成执行子结构的变换和逆变换,这些子结构的路径通过具有匿名化模块108的节点106。在一个方面,子结构的变换可以为子结构中包含的数据的变换。在具体实例中,子结构的数据的变换方法可以包括如下项中的一者或多者:量化、排序、合并(粘合)、分组、数据集配置、值的表替换、计算值、数据编码、加密和标准化(缩放)。
45.特定种类的变换可以不仅适用于子结构中的个人数据、而且还适用于作为整体的子结构,例如令牌化和/或加密。在具体实例中,进行变换,但除了节点的匿名化模块108以外,通过任何部件都不能进行逆变换。逆变换指的是还原变换的对象(数据、子结构)在变换之前的原始形式的变换。通常,变换可以为集合到其自身的任何映射(功能),或换言之,变换为将特定集合转换为另一集合的映射。
46.可以通过匿名化模块108利用相同方法或利用不同方法来变换来自同一客户端的子结构。如果利用相同方法进行变换,则来自同一客户端的变换后的子结构或子结构的数据将具有完全相同的外观;否则,它们将不同且将不可以为同一客户端构建统计信息(执行资料收集)。
47.服务器104可以包括组合模块112,该组合模块112配置成组合在客户端侧划分的
数据结构。组合模块112可以例如基于唯一标识符组合数据,这些唯一标识符在划分期间被分配给各个子结构且对于同一结构的子结构来说是完全相同的。组合模块112接收通过各种网络路径抵达服务器104的子结构并将其组合为一个结构。该结构显然将不同于在客户端侧被划分的原始结构,这是因为通过具有匿名化模块108的节点的子结构会被该匿名化模块108变换。形成的结构可以被保存在数据库(在图中未示出)中。
48.在具体实例中,匿名化模块108从客户端获得未被客户端的修改模块110划分为子结构的结构(例如,对于服务器的请求的结构),在该情况下,为了传输到服务器,匿名化模块108在获得的结构中识别包含pd的子结构并执行子结构的数据的变换;下文给出了示例。
49.所描述的系统100用于分派到服务器104的请求和对分派到客户端102的这些请求的响应的匿名化,且还用于从客户端102获得用于构建统计信息的数据。
50.图2为示出根据在客户端-服务器架构中路由数据的方法的示例性操作的框图,该方法在具体实例中用于从客户端获得用于构建统计信息的数据。在步骤200中,修改模块110(例如,在客户端102上执行)根据标准划分用于分派到服务器的结构201,一个这类标准可以为在该结构中存在pd,并且作为划分的结果,获得包含pd的子结构(例如在图2中,这是子结构1)和不包含pd的子结构(在图2中,这对应于子结构2)。在此及下文中,尽管在本技术的背景下在本发明的示例性方面中对于pd有效的标准对于关键数据或机密数据通常也是有效的,但是作为标准的示例,我们会使用pd的存在而非关键数据或机密数据的存在。在具体实例中,可以存在第一类型和第二类型的多于一个的子结构、以及执行划分所利用的多于一个的标准。
51.在步骤210中,修改模块110将获得的子结构分派(即,传输)到服务器104,该分派通过各种路径(路径a和路径b)发生,其中,路径之一(例如路径a)包括具有匿名化模块108的网络节点106。在一个方面,修改模块110可以基于在数据子结构之一中包含的个人数据确定用于分派至少两个数据子结构的至少两条路径。网络节点106位于不同于服务器104所处的网络的区域网络中且不在与服务器或客户端102相同的内联网中。当用于分派到服务器的子结构之一包含pd时,借助具有匿名化模块108的节点(路径a)将该子结构导向到服务器。
52.然后,在步骤220中,由匿名化模块108变换通过具有该匿名化模块108的节点106的子结构,然后将其以变换后的状况发送到服务器104(步骤221)。在一般情况下,在不同的时刻不同地变换来自同一客户端的子结构。例如,将具有在第一时间段发送的客户端标识符的子结构变换成包括匿名标识符(匿名id1),该匿名标识符不同于来自在第二时间发送的子结构的后续匿名标识符(匿名id2),即使该子结构来自同一客户端且具有同一客户端标识符(即,客户端id-》匿名id1≠匿名id2≠匿名id3,以此类推),并且这可以适用于所有示例。在具体情况下,当对于特定安全系统需要将信息聚集(将统计信息构建)在特定客户端上时,变换对于来自同一客户端的子结构来说将为完全相同的(例如,客户端id-》匿名id1=匿名id2=匿名id3,以此类推)。
53.最后,在步骤230中,将从客户端获得的子结构组合为一个结构231(结构’)。显然,形成的结构(结构’)不同于原始结构,这是因为至少一个子结构已被匿名化模块108变换。形成的结构231还将被服务器侧的基础设施用在数据库中。为了图示的清晰,从图中省略了基础设施和数据库。在其它图中指示了各个基础设施元件,诸如请求处理器302和攻击检测
模块602。采用这种方式进行由匿名化模块108对子结构和/或子结构的数据的变换,以便排除除了具有匿名化模块108的网络节点106的部件以外由任何部件对子结构和/或子结构的数据的逆变换的可能性。
54.图3示出了在具体实例中用于执行客户端相对于服务器的请求301的路由方法。在步骤300中,通过修改模块110将在客户端侧生成的请求从客户端102分派到服务器104,该路径包括具有匿名化模块108的网络节点106,所述节点106位于不同于服务器所处的网络的区域网络中且不在与服务器或客户端相同的内联网中。在具体实例中,可以在客户端侧通过修改模块110变换请求数据中的一些(不包含机密数据),并且可以进行该变换,使得匿名化模块108不能执行逆变换(在图4中的步骤311)以及仅服务器104可以执行逆变换(在图4中的步骤325)。举例来说,可以使用非对称加密技术执行变换和逆变换,其中,客户端102具有公钥且服务器104具有私钥。如在本文中所使用,除非另有指示,否则术语“变换”指的是正变换(forward transformation)。
55.接着,在步骤310中,匿名化模块108按照标准识别用于分派到服务器的请求的数据结构中的子结构,一个这类标准可以为pd的存在,并且作为识别的结果而获得包含pd的子结构(在图3中,通过与先前示例类比,这是子结构1)和不包含pd的子结构(在图3中,这是子结构2)。在步骤320中,使用匿名化模块108执行包含pd的数据子结构(和/或子结构中的数据)的变换(从原始到变换后的正变换),以及使用匿名化模块108将请求的所形成的具有包含pd的变换后的子结构的数据结构分派到服务器(步骤321)。
56.响应于接收的请求,在步骤330中,服务器使用请求处理器302生成响应323。关于在具体实例中可能已被客户端102变换的请求的数据,服务器104首先执行逆变换(图4中的步骤325,如后文所描述)。对请求的响应的数据结构323在利用pd的示例中将包含如下子结构:(1)包含被匿名化模块108变换的pd的至少一个子结构(从请求结构提取的子结构1’);和(2)不包含pd的至少一个子结构(子结构3,其包含对请求的响应的主体或响应的有效负荷)。
57.不包含pd的数据(子结构3)可以被变换(正变换)而不能由匿名化模块108逆变换(子结构3’),该变换在步骤340中进行。可以仅通过客户端的修改模块110执行该数据的逆变换(例如,非对称加密,其中,服务器具有公钥且客户端具有私钥),在步骤350中将形成的对请求的响应的数据结构324从服务器分派到具有匿名化模块108的网络节点。在步骤360中使用匿名化模块108执行对请求的响应的包含pd的数据子结构324(子结构1’)的逆变换。相对于在步骤320中变换的数据进行逆变换(从变换后的数据到最初包含在来自客户端的请求中的原始数据的逆变换)。将获得的数据结构重定向到客户端(步骤370),以及在步骤380中使用客户端的修改模块110执行在步骤340中被服务器变换的、对请求的响应的不包含pd的数据子结构的逆变换。因此,客户端102生成数据结构381,该数据结构381包含被服务器变换的、对请求的响应的不包含pd的数据子结构。
58.图4示出了在图3中示出的方法的变型,但是在该变型步骤310中,不通过匿名化模块108而通过客户端的修改模块110执行子结构的识别,随后是在步骤311中的子结构的变换。通过与图3中的变型类比,不包含pd的子结构(子结构2)经受变换。因此,在图4中的步骤300’不同于在图3中的方法的类似步骤300,在于,不是将请求的原始数据结构、而是在执行步骤310和步骤311之后的变换后的结构412发送到具有匿名化模块108的节点。因此,在该
变型中,在执行步骤330之前添加步骤325,在该步骤325中,首先执行在步骤311中变换后的子结构(在该示例中,不包含pd的子结构2’)的逆变换。
59.图5示出了在客户端-服务器架构中的数据路由的方法的变型,其中,步骤200至步骤230类似于图2中所示的方法的步骤,而步骤300至步骤380类似于图3中所示的方法的步骤。在具体情况中,通过与图4中的步骤311类比,在子结构2被直接分派到服务器之前可以首先进行变换,于是除了步骤311外,在该方法的图中还添加了步骤325。
60.在具体实例中,在图3至图5中所示的方法的全部方面中,在步骤370中被具有匿名化模块108的节点106分派到客户端102的数据结构不包含具有pd的数据子结构(在这些示例中,子结构1)。该子结构需要被保存直到该步骤370,以便确定响应的接收方;此后,在该具体实例中无需如此。
61.图6a示出了在图2中所示的方法的示例性操作。客户端102通信地连接到位于服务器侧的用于定向攻击的远程检测的系统,诸如攻击检测模块602。为了允许攻击检测模块602的完整操作,可能需要从客户端102获得关于在不同时间检测到的具有恶意代码的文件(恶意文件)的信息以及基于获得的信息构建统计信息(通常,按照关于个人数据的国家立法,这仍需要匿名地进行)。在基于从客户端接收的信息检测到多个这类恶意文件时,在服务器侧得出如下结论:在客户端上已检测到定向攻击。
62.为了将关于检测到的恶意文件的信息传输到服务器,客户端102生成数据结构601,该数据结构601包括客户端标识符(“客户端id”)和关于检测到的恶意文件的信息(“md5”)。在步骤200中,修改模块110将所生成的用于分派到服务器的结构601划分为子结构,作为划分的结果而获得包含客户端id的子结构和包含文件的md5的子结构。为了获知这些子结构属于哪个结构,为这些子结构分配标识符(在图中,该标识符被表示为结构id)。在步骤210中,客户端的修改模块110将获得的子结构传输到服务器104,该传输通过不同路径(路径a和路径b)发生,其中,路径之一(路径a)包括具有匿名化模块108的网络节点106,所述节点106位于不同于服务器所处的网络的区域网络中且不在与服务器或客户端相同的内联网中。通过具有匿名化模块108的节点106(路径a)将包含客户端id的子结构定向到服务器104。在步骤220中,匿名化模块108执行客户端id的变换,其中,将客户端id保存在节点处且在子结构中用令牌匿名id代替它(在具体实例中,客户端id可以被加密)。将获得的子结构分派到服务器(步骤221)。最后,在步骤230中,将从客户端接收的子结构组合为结构603。显然,形成的结构603不同于原始结构601,这是因为至少一个子结构已被匿名化模块108变换。形成的结构603被保存在服务器104处(或保存在服务器所属的基础设施的任何给定数据库中)且将被服务器用来聚集关于从其获得该结构的客户端102的信息(在图中被表示为统计信息(statistics))。在步骤240中,聚集的信息将被攻击检测模块602使用,以及如果攻击检测模块602检测到攻击,则在步骤250中,攻击检测模块602生成数据结构623,该数据结构623包含具有匿名id的子结构和包含关于攻击的信息(在图中被表示为攻击id)的子结构;获得的结构623将被寻址到客户端以给出攻击的通知。
63.在图6b中示出了分派方法的示例,步骤340至步骤380类似于图8中所示的示例的步骤。在具体实例中,关于攻击的信息可能不被变换,而是以开放形式被分派;在该情况下,该示例将缺少步骤340和步骤380。在图6b中以及在本发明的其它图中所示的方面中,可选的方面和可替选的方面用虚线轮廓或用浅色斜体字体描绘,诸如在步骤370中的获得的响
应中的客户端id区域。
64.图7示出了本发明的另一示例性操作。客户端设备102已检测到新文件,该新文件需要被服务器104扫描以确定是否存在恶意代码。为此,需要将关于文件的信息分派到服务器,在本示例中,该信息为文件的md5,为此,客户端生成请求数据结构701。出于该目的,为了告知服务器应该向谁分派响应,修改模块110(例如,在客户端102处执行)将客户端id插入请求数据结构701中,从而该请求数据结构701包括客户端id和文件的md5。在步骤300中,通过修改模块110将生成的请求分派到服务器,该路径包括具有匿名化模块108的网络节点106,所述节点位于不同于服务器所处的网络的区域网络中且不在与服务器或客户端相同的内联网中。接着,在步骤310中,匿名化模块108识别结构701中用于分派到服务器的子结构,作为识别的结果而获得包含客户端id的子结构和包含文件的md5的子结构。在步骤320中,匿名化模块108执行客户端id的变换,其中,将客户端id保存在节点106处且在子结构中用令牌匿名id代替它(在具体实例中,客户端id可以被加密)。将获得的请求的具有变换后的子结构的数据结构分派到服务器(步骤321)。在步骤330中通过服务器104的请求处理器302生成对接收的请求的响应723。请求处理器302从结构提取文件的md5且发出指示在客户端处被分析的文件为恶意(例如,“md5-bad(坏)”)的裁决。对请求的响应的数据结构723包含如下子结构:(1)包含令牌匿名id(或被匿名化模块108加密的客户端id)的至少一个子结构;和(2)包含对于文件的裁决(md5-bad)的至少一个子结构。
65.就这一点而言,在步骤340中通过服务器104变换裁决而不能被匿名化模块108逆变换(例如通过用公钥对裁决加密(变换后的裁决在图中被表示为加密裁决(encryptedver)),将私钥保管在客户端),并且仅可以由客户端的修改模块110执行逆变换。在步骤350中,将获得的对请求的响应的数据结构724从服务器分派到具有匿名化模块108的网络节点106。在步骤360中,匿名化模块108执行对请求的响应的包含令牌匿名id的数据子结构724的逆变换,其中,在令牌的情况下,该令牌被先前保存的客户端id替换,以及在加密客户端id的情况下,则对该客户端id解密。因此,对于在步骤320中变换后的数据执行该变换。将获得的数据结构重定向到客户端(步骤370),以及在步骤380中,客户端的修改模块110执行在步骤340中被服务器变换后的裁决的逆变换;在本示例中,借助私钥对该裁决加密。在具体实例中,匿名id用于同一客户端id,但是二者在不同传输中将是不同的。
66.图8示出了在图7中所示的示例的变型。在该变型中,在子结构的识别之后的步骤310不由匿名化模块108、而由客户端102的修改模块110来执行,其中,子结构的后续变换通过用公钥加密而保存关于文件的信息(文件的md5)(在图中,变换后的关于文件的信息被表示为加密md5);将私钥保管在服务器且仅可以在服务器处执行逆变换。因此,图8中的示例的步骤300’不同于在图7中的示例的类似步骤,在于,不是将请求的原始结构(例如801)、而是在执行步骤310和步骤311之后的变换后的结构(数据结构812)发送到具有匿名化模块108的节点。因此相应地,添加步骤325,其中,在执行步骤330之前,针对关于文件的加密信息,通过借助私钥对其解密而进行逆变换。
67.图9示出了在客户端-服务器架构中的数据路由的示例,其中,步骤200至步骤230类似于图6a中所示的示例的步骤,而步骤330至步骤380类似于图7中所示的示例的步骤。在具体实例中,通过与图8的示例中的步骤311类比,关于文件的信息在直接分派到服务器之前可以首先变换,因此除了步骤311外,在本示例中还添加步骤325。
68.客户端的修改模块110拦截用于分派到服务器的结构901,根据建立的规则划分这些结构,以及还按照规则为这些子结构选择路径。在具体实例中根据一个或多个信息技术策略建立修改模块110运作所依据的规则,上述一个或多个信息技术策略配置成符合客户端设备102(源)正运作的管辖内的现有的法规和法律。因此,为了应用规则,客户端的修改模块110确定设备(源)的位置、在形成的数据结构901中的数据的类型、数据结构的目的(例如,传输的类型:请求或统计信息,其中,将数据分派到服务器,用以在服务器侧编译统计信息)、数据接收方的位置。基于此,根据规则,修改模块110选择用于数据的路径、划分变型、和在客户端侧的变换方法。在图15中所见的表1中呈现了形式化的规则的一个变型,其中,“方法”列指示用于变换的相关方法,可以包括如下方法:“方法1”被表征为包括在客户端侧划分数据结构(参看图2);“方法2”被表征为包括在具有匿名化模块108的节点处识别数据结构(参看图3);“方法3”被表征为包括在客户端侧识别数据结构(参看图4)。
69.如上所述,这些规则可以按照法规/法律(诸如gdpr)的要求来指示,且正如任何给定法律规范那样包括假设和倾向,所以也在算法语言中具有相应的“如果-则(if

then)”结构。因此,提供的表1按如下格式形式化规则:
70.if[type,source,recipient,personal data(yes/no)],then[method,location of anonymization node,method of transformation for the data](如果[类型、源、接收方、个人数据(是/否)],则[方法、匿名化节点的位置、用于数据的变换方法])。
[0071]
列表1:示例规则格式
[0072]
考虑示例数据结构,其中,修改模块110确定:传输的类型为请求,源(客户端)为德国、接收方(服务器)为俄罗斯联邦,以及结构包含个人数据。按照规则,修改模块110在客户端侧识别具有pd的子结构(如图4的步骤310中——方法2)并经由usa分派该子结构,用公钥加密不具有pd的该子结构(如在图4的步骤311中),以及通过匿名化模块108利用加密变换个人可识别信息。
[0073]
图10示出了在客户端-服务器架构中的匿名数据交换的变型系统1000,类似于在图1中所示的系统,除了该系统1000包括具有存储模块1004的网络节点1002。存储模块1004可以包括一个或多个存储设备。具有存储模块1004的网络节点1002位于不同于服务器所处的区域网络的区域网络107中且不在与服务器或客户端相同的内联网中。在具体实例中,具有存储模块1004的网络节点1002可以在与具有匿名化模块108的网络节点106相同的区域网络(诸如在图10中被指示为“区域网络n”的网络)中。具有存储模块1004的网络节点1002的目的是向服务器104隐藏客户端102的外部ip地址且减轻匿名化模块108所在的节点106的负担,从而减少通过具有匿名化模块108的节点106的业务量。具有存储模块1004的网络节点1002为用于被客户端与服务器交换的数据的中间存储库。
[0074]
在图10中所示的系统1000用于客户端与服务器之间的数据的匿名交换,包括用于传输来自客户端的用于构建统计信息的数据、以及用于“请求-响应”类型的客户端-服务器交互。图11示出了在客户端与服务器之间的数据的匿名交换的方法,该方法在具体实例中用于从客户端获得数据,用以在服务器侧构建统计信息。步骤200、步骤221、步骤220、步骤230类似于在图2中所示的步骤。步骤210’不同于类似步骤且添加了步骤222。在图2中,路径b直接从客户端走向服务器,但是在图11中所描述的方面中,该路径被分解,且客户端不将子结构2分派到服务器、而是分派到具有存储模块1004的节点。然后,在步骤222中,将由服
务器接收该子结构。在步骤222中将该子结构传输到服务器的发起方可以为具有存储模块1004的节点1002、或服务器104,该服务器在经由路径a接收到子结构1’时按需利用子结构2的标识符下载子结构2,该子结构2的标识符被具有存储模块1004的网络节点1002保存。
[0075]
图12示出了在具体实例中用于执行客户端对服务器的请求的数据交换的方法。步骤200、步骤221、步骤220、步骤230类似于在图2中所示的步骤,步骤210’、步骤222类似于在图11中所示的步骤,步骤330类似于在图3中的该同一步骤。因此,将请求分派到服务器类似于将数据分派到服务器,用以构建统计信息,如图11所示;与上文所描述的全部内容的区别包括:如何分派在步骤330中准备的响应。在步骤331中将在步骤330中生成的对请求的响应的结构分解为至少两个子结构:(1)被匿名化模块108变换的包含pd的至少一个子结构(例如,从请求结构提取的子结构1’);和(2)不包含pd的至少一个子结构(子结构3,其包含对请求的响应的主体或响应的有效负荷)。
[0076]
在步骤350a中,将包含pd的子结构从服务器104分派到具有匿名化模块108的节点106,其中,在步骤360中将执行变换,该变换为在步骤220中执行的变换的逆变换。在步骤350b中将不包含pd的子结构(在图12中,子结构3)分派到具有存储模块1004的网络节点1002。接着,在步骤371中将不包含pd的子结构发送到客户端。借此,客户端在步骤371中接收子结构的变型可以为不同的。如果进行步骤350a,则在步骤360中的变换之后,在步骤370a中,具有匿名化模块108的节点将响应准备就绪的通知(消息)分派到客户端;此后,客户端访问具有存储模块1004的节点且从具有存储模块1004的节点接收不包含pd的子结构。在步骤370a中的通知可以例如包含在步骤331中对请求的响应的结构进行划分的过程中分配给子结构3的唯一标识符,由客户端向具有存储模块1004的网络节点1002请求具有该标识符的子结构。在具体实例中,可以不执行步骤350a、步骤360、步骤370a。在该情况下,在步骤200中的划分过程中分配给子结构的标识符将类似于在步骤331中分配的标识符,以及在步骤371中,客户端将通过关于具有相应标识符的子结构的抵达具有存储模块1004的节点而周期性地轮询该具有存储模块1004的节点来获得子结构3。如果不执行步骤350a、步骤360、步骤370a,则对请求的响应的结构与被分配唯一标识符的不包含pd的子结构(子结构3)相同。在另一具体实例中,在步骤371中,具有存储模块1004的节点独立地将子结构3分派到客户端;在该情况下,使用会话标识符,该会话标识符被建立在客户端与具有存储模块1004的节点之间以执行步骤210;在给定情况下,在步骤200和步骤331中分配给子结构的唯一标识符为等同的且它们等同于会话标识符。在该情况下,当在步骤350b中节点接收子结构3时,该节点将读取子结构3的标识符并将其转发到客户端,该客户端的会话具有相同标识符;用于该变型的执行的主要条件是在执行请求和分派响应时保持客户端与具有存储模块1004的节点之间的会话,直到客户端与服务器之间的数据交换结束。
[0077]
在具体实例中,在图12中描述的方案可以在异步模式下操作;在该情况下,进行步骤330而不执行步骤230,使用子结构2的数据,以及省略步骤331,将获得的子结构3分派到具有存储模块1004的节点(步骤350b)。步骤230将独立于步骤330来执行。这类模式提高了服务器的反应速度且在如下情况下被使用:仅需要不包含cd的子结构中包含的数据来处理请求。在这种情况下仅需要子结构的组合(步骤230)以构建统计信息,如同在图12a中所示的示例中那样。
[0078]
图13示出了在图12中所示的方法的使用的示例,以便从服务器获得针对在客户端
侧检测到的文件的裁决(危险的/恶意的或安全的)。为了将关于检测到的文件的信息(在本示例中,关于文件的信息为文件的md5)传输到服务器,生成包括客户端id和检测到的文件的md5的数据结构。在步骤200中,修改模块110将生成的用于传输到服务器的结构划分为子结构,作为划分的结果而获得包含客户端id的子结构和包含文件的md5的子结构;为了知道这些子结构所属的结构,为这些子结构分配标识符(在图中,该标识符被表示为结构id)。在步骤210中,客户端的修改模块110分派获得的子结构。该分派通过去往不同接收方的不同路径(路径a和路径b)来进行。通过路径a将子结构分派到服务器,路径a包括具有匿名化模块108的网络节点,所述节点位于不同于服务器所处的网络的区域网络中且不在与服务器或客户端相同的内联网中。借助具有匿名化模块108的节点将包含客户端id的子结构发送到服务器(路径a)。通过路径b将子结构分派到具有存储模块1004的网络节点1002,所述节点1002位于不同于服务器所处的网络的区域网络中且不在与服务器或客户端相同的内联网中。将包含文件的md5的子结构发送到具有存储模块1004的网络节点1002(路径b)。在步骤220中,使用匿名化模块108执行客户端id的变换,其中,将客户端id保存在节点处且在子结构中用令牌匿名id代替它(在具体实例中,客户端id可以被加密)。将获得的子结构分派到服务器(步骤221)。在步骤222中,将由服务器接收具有文件的md5的子结构。如果在同步模式下执行方法,则在步骤230中,将组合在步骤221和步骤222中由服务器获得的子结构,以及在步骤330中,将处理响应。在本示例中,将通过恶意文件和安全文件的数据库扫描md5,且扫描结果将产生裁决并生成对请求的响应(在给定示例中,该文件被证明为恶意的——md5-bad)。在步骤331中将生成的对请求的响应划分为两个子结构,作为划分的结果而获得包含客户端id的子结构和包含裁决(md5)的子结构,为了知道这些子结构所属的结构,为这些子结构分配标识符(在图中被表示为结构id);在具体实例中,该标识符可以与在步骤200中分配给子结构的标识符相同。在步骤350b中,将具有裁决的子结构分派到具有存储模块1004的网络节点1002,在步骤371中,该网络节点1002将该子结构转发到客户端(如果结构id对应于在步骤210中建立的节点与客户端之间的会话id),或保存该子结构直到被需要。在作为步骤350a、步骤360和步骤370a的执行结果,从具有接收的匿名化模块108的节点接收客户端的通知的情况下,该子结构可能被客户端需要。在另一方面,客户端可以关于在节点处是否存在响应子结构不断地轮询具有存储模块1004的网络节点1002(在该情况下,在步骤200和步骤331中分配给子结构的结构id应当为完全相同的)。在步骤372中,客户端处理响应。如果在异步模式下执行方法(图13a),则独立地执行步骤230和步骤330。在步骤330中的结构id不改变且与在步骤200中的结构id相同,且在具体实例中等同于步骤210的在客户端与具有存储模块1004的节点之间的会话id,在该背景下,子结构的传输也将发生在步骤371中。
[0079]
本发明的各方面使得能够分散来自客户端的数据,这为用户提供了匿名性,该用户的设备为客户端;在访问服务器时,由客户端与服务器交换的数据无法与客户端相关联。一些数据仅服务器知晓,一些数据仅具有匿名化模块108的网络节点知晓,并且在不同时访问这些系统部件的情况下无法对数据去匿名化,同时通过在不同区域网络上分布系统部件来保证不能对部件同时访问(包括被政府结构访问),不同区域网络在地理方面和属地管辖方面上均不同。当利用具有存储模块1004的节点时,本发明的各方面还允许客户端的外部ip地址对服务器隐藏(服务器不直接从客户端、而是借助具有存储模块1004的节点挑选子
结构),并且也减轻了具有匿名化模块108的节点上的负担。
[0080]
在某些情况下,在已将数据结构划分为两个数据子结构(其中之一包含机密数据)之后,需要进一步划分给定的子结构。在一个具体实例中,当数据只有在一起时才是关键的时候这样做,例如,ip地址和时间戳在一起为个人数据;已经将发现这种关联的子结构划分为具有ip地址的子结构和具有时间戳的子结构,该数据失去其个人属性且可以被不具有组合这些结构的能力的节点处理,同时对关键数据(在给定情况下,个人数据)的处理不施加法律约束。但是在这种情况下,将数据发送到服务器的机制更为复杂。
[0081]
图14示出了在客户端-服务器架构中传输关键数据的方法,该方法在具体实例中用于从客户端获得用于构建统计信息的数据。应理解,仅为了清楚起见,从图14省略了其它图中指示的某些个体基础设施元件(例如请求处理器、攻击检测模块、数据库)。
[0082]
在步骤200中,(例如,在客户端102上执行的)修改模块110根据标准划分用于传输到服务器104的结构,一个这类标准可以为在该结构中存在关键数据(例如,机密数据、个人数据)。作为划分的结果,获得包含关键数据的第一数据子结构(例如在图14中,这是子结构1)和不包含这类数据的第二数据子结构(在图14中,这对应地为子结构2)。在步骤201中,修改模块110另外将包含关键数据的子结构划分为至少两个子结构(例如在图14中,这是子结构3和子结构4)。在步骤210中,修改模块110通过路径b将子结构2发送到服务器。在步骤211中,通过不同于路径b的另一路径连续发送在划分包含关键数据的子结构期间获得的子结构,其中,替选路径(在图14的示例中,这是路径a)包括具有变换模块的网络节点,并且该网络节点在具体实例中位于不同于服务器所处的网络的区域网络中且不在与服务器或客户端相同的内联网中。
[0083]
接着,在步骤220中,通过具有变换模块的节点106的子结构利用该模块进行变换,并以变换后的状态向前发送到服务器(步骤223)。在一般情况下,可以在不同时刻不同地变换来自同一客户端的子结构(例如,客户端id-》匿名id1≠匿名id2≠匿名id3,以此类推)。这适用于所有示例,但是在具体实例中,当对于特定安全系统来说需要针对来自特定客户端的子结构采集关于该同一客户端的信息(构建统计信息)时,变换将是完全相同的(例如,客户端id-》匿名id1=匿名id2=匿名id3,以此类推)。最后,在步骤230中,将从客户端获得的子结构组合为一个数据结构(结构’)。最终的数据结构(结构’)显然不同于原始的数据结构,这是因为至少两个子结构已被匿名化模块108进行了变换。数据库中的最终结构也将被服务器侧的基础设施模块用来例如构建配置文件。通过变换模块对子结构和/或子结构的数据的变换通过如下方法来进行,该方法排除除了具有变换模块的网络节点的模块以外由任何模块对子结构和/或子结构的数据进行逆变换的可能性。
[0084]
图14a示出了发送关键数据的方法的实现的示例。在客户端侧,生成用于发送到服务器的结构,该结构包含客户端的ip地址、时间戳(timestamp)和特定文件的md5。在步骤200中,修改模块110划分该用于发送到服务器的结构,作为划分结果,获得:包含ip地址和时间戳的子结构、和包含文件的md5的子结构。在步骤201中,修改模块110还将包含ip地址和时间戳的子结构划分为两个子结构(在图14中,这为具有ip地址的子结构和具有时间戳的子结构)。为了知道哪个包含md5的子结构与ip子结构和时间戳子结构相关,为ip子结构和时间戳子结构分配标识符(在图中,标识符被表示为结构id1、结构id2)并将这些相同的标识符放在md5子结构中。在步骤210中,修改模块通过路径b将具有md5的子结构发送到服
务器,以及在步骤211中,修改模块通过不同于路径b的另一路径连续发送具有ip地址的子结构和具有时间戳的子结构,其中,替选路径(在图14a的示例中,这是路径a)包括具有变换模块108的网络节点106,其中,具有变换模块的该节点在具体实例中位于不同于服务器所处的网络的区域网络中且不在与服务器或客户端相同的内联网中。然后,在步骤220中,具有ip地址的子结构和具有时间戳的子结构被变换,并被以变换后的形式向前发送到服务器(步骤223)。在接收到子结构时进行该变换。最后,在步骤230中,将从客户端接收的多个子结构组合为一个包含变换后的ip地址、变换后的时间戳、和md5的结构。
[0085]
图1示出了用于在客户端-服务器架构中进行数据路由的系统。图1a示出了相同的系统,只是在该系统中存在具有认证模块116的附加网络节点114。在该系统中,以及在图10的系统中,可以存在存储模块。认证模块116可以用于生成用于多个客户端102上的机密数据的一次变换的加密密钥。在一方面,如果将非对称加密方案用于变换(在下面描述),则独立的可信认证模块116用于为每个客户端102创建密钥对,该密钥对包括公钥和私钥。在一方面,认证模块116被配置为将公钥传送到客户端102,并且被配置为保管私钥。所公开的匿名化方法利用了使用由可信认证模块116生成的公钥对由用户的设备(客户端)102发送的标识符进行的加密。该过程保证了在具有匿名化模块108的节点和服务器104上没有人能够找到客户端102的用户的真实标识符。没有密钥的私钥部分则不能访问真实的用户标识符,密钥的私钥部分由认证模块116保管并且没有向任何人公开。在一方面,承载认证模块116的网络节点114可以位于与客户端102、服务器104和匿名化模块108不同的内联网上。在特定情况下,该节点114位于与服务器104的区域网络、和/或具有匿名化模块108的节点106和/或客户端102的区域网络不同的区域网络中。在又一方面,网络节点114和/或其认证模块116可以由独立且可信的认证机构来操作,该认证机构不是匿名化模块108和/或服务器104的运营商的一部分,也不在其控制之下。
[0086]
图16示出了用于使用认证模块116在客户端-服务器架构中传送关键数据的一示例性方法。在步骤410(图中未示出)中,由认证模块116生成加密密钥。接下来,在步骤420中,认证模块116将加密公钥发送到客户端102。进一步,客户端102使用接收到的密钥进行初始数据加密。例如,客户端可以加密从客户端102发送的机密数据,例如但不限于标识符、ip地址、电子邮件地址、到社交网络配置文件的链接、时间戳、电话号码等。在步骤200中,客户端的修改模块110根据预定标准分离旨在发送到服务器104的结构。一种这样的标准可以是结构中关键数据的存在。关键数据的一特定情况为机密数据(敏感数据)或个人数据。作为该修改的结果,原始结构可以被分为包含关键数据的子结构(例如,图16中的子结构1)和不包含此类数据的子结构(图16中的子结构2)。在可选的步骤201中,修改模块110可以进一步将包含关键数据的子结构划分为至少两个包含不同类型的关键数据的子结构(例如,在图16中,这些是子结构3和子结构4)。在步骤202中,修改模块110使用接收到的公钥来加密子结构3和子结构4,以获得子结构3’和子结构4’。
[0087]
在步骤210中,修改模块110通过路径b将子结构2发送到服务器104。在步骤211中,通过使用一次变换和加密对包含关键数据的子结构进行拆分而获得的子结构3’和子结构4’沿着与路径b不同的替选路径被顺序地发送。在一方面,该替选路径包括具有匿名化模块108的网络节点106(图16的示例中的路径a)。在一方面,该替选路径位于与承载服务器104的网络不同的区域网络中,和/或不在与服务器104或客户端102相同的内联网中。接下来,
在步骤220中,经过具有匿名化模块108的节点106的子结构被匿名化模块108再次变换(在图16的示例中,变换为子结构3”和子结构4”)。匿名化模块108将接收到的子结构以变换后的形式进一步发送到服务器104(步骤223)。
[0088]
通常,来自同一客户端102的子结构可以在不同的时间点进行不同的变换。例如,将具有在第一时间段发送的客户端标识符的子结构变换为包括一匿名标识符(匿名id1),该匿名标识符不同于来自在第二时间发送的子结构的后续匿名标识符(匿名id2),即使该子结构来自同一客户端102且具有同一客户端标识符(即,客户端id
’-
》匿名id1≠匿名id2≠匿名id3,等等),并且这可以适用于所有示例。在特定情况下,当对于特定安全系统需要将信息聚集(将统计信息构建)在特定客户端上时,变换将对于来自同一客户端102的子结构来说为完全相同的(例如,客户端id
’-
》匿名id1=匿名id2=匿名id3,以此类推)。最后,在步骤230中,由服务器104将从客户端102接收的子结构组合为一个结构(结构’)。
[0089]
最终数据结构(结构’)显然与原始数据结构不同,这是因为已经由匿名化模块108变换了至少两个子结构。数据库中的最终结构也将由服务器侧上的基础设施模块使用,例如以构建配置文件。匿名化模块108对子结构和/或子结构的数据的变换可以通过一方法来执行,该方法排除除了由以下模块之外的任何模块对子结构和/或子结构的数据进行逆变换的可能性:具有匿名化模块108的网络节点106。可以通过排除除了由具有匿名化模块108的网络节点106这一模块(或者在一个方面,由客户端102)之外的任何模块对子结构和/或子结构的数据进行逆变换的可能性的方法来执行通过匿名化模块108使用来自认证模块116的加密密钥对子结构和/或子结构的数据的变换。在另一方面,不能通过任何手段进行逆变换。
[0090]
图16a示出了用于使用认证模块在客户端-服务器架构中传输关键数据的方法的另一示例。在步骤410中,认证模块116生成多个公钥和私钥对。在步骤411中,认证模块116从生成的密钥组中选择用于特定客户端102的一公钥和私钥对。在步骤420中,认证模块116将公钥发送到客户端102并存储私钥。客户端102生成旨在发送到服务器104的结构。所生成的结构可以包含客户端的ip地址、时间戳和检测到的恶意文件的md5。在步骤200中,修改模块110划分旨在发送到服务器104的结构,作为划分结果,获得了:包含ip地址和时间戳的子结构、以及包含文件的md5的子结构。在步骤201中,修改模块110进一步将包含ip地址和时间戳的子结构划分为两个子结构(在图16a中,这是具有ip地址的子结构和具有时间戳的子结构)。为了知道包含ip地址的子结构和包含时间戳的子结构所属的结构,它们被分配了标识符(在图16a中,该标识符表示为结构id)。
[0091]
在步骤202中,修改模块110使用从认证模块116获得的公钥对包含ip地址的子结构的数据和具有时间戳的子结构的数据进行加密。在步骤210中,修改模块110通过路径b将具有md5的子结构发送到服务器104。在步骤211中,修改模块110通过与路径b不同的替选路径连续发送具有ip地址的子结构和具有时间戳的子结构,其中,该替选路径包括具有匿名化模块108的网络节点106(在图16a的示例中,这是路径а),其中具有匿名化模块108的节点106在特定实例中位于与服务器104所位于的网络不同的区域网络中,并且不在与服务器104或客户端102相同的内联网中。然后,在步骤220中,具有加密ip地址的子结构和具有加密时间戳的子结构被变换(例如,匿名化)并以变换后的形式向前发送到服务器104(步骤223)。当接收到子结构时进行变换。最后,在步骤230中,将从客户端102接收的子结构组合
为包含变换后的加密ip地址、变换后的加密时间戳和md5的结构。
[0092]
认证模块、修改模块、匿名化模块、组合模块、请求处理器、攻击检测模块、和存储模块在本发明中指的是真实的设备、系统、部件、部件组,这些设备、系统、部件、部件组利用硬件(诸如集成微电路(专用集成电路(application-specific integrated circuit,asic))或现场可编程门阵列(field-programmable gate array,fpga))或例如以软件和硬件的组合(诸如微处理器系统和一组程序指令)的形式、以及也基于神经形态芯片(神经突触芯片)来实现。所述部件的功能可以仅仅通过硬件、而且还可以以组合的形式来实现,其中,一些功能通过软件来实现,以及一些功能通过硬件来实现。在特定变型方面中,可以在计算机(诸如在图17中所示的计算机)的处理器上执行模块。数据库可以通过每个可行方法来实现且可以被包含在单一物理介质上或不同物理介质上,上述物理介质为本地的和远程的。
[0093]
图17为示出其上可实施用于从客户端设备匿名收集与恶意软件相关的数据的系统和方法的各方面的计算机系统20的框图。应当注意,计算机系统20可以对应于例如先前所描述的客户端102、服务器104、网络节点106和网络节点1002。计算机系统20可以为多个计算设备的形式、或单一计算设备的形式,例如:台式电脑、笔记本电脑、手提电脑、移动计算设备、智能手机、平板电脑、服务器、大型机、嵌入式设备和其它形式的计算设备。
[0094]
如图所示,计算机系统20包括中央处理单元(central processing unit,cpu)21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。总线的示例可以包括pci、isa、串行总线(pci-express)、超传输
tm
(hypertransport
tm
)、无限带宽
tm
(infiniband
tm
)、串行ata、i2c、和其它合适的互连。中央处理单元21(也称为处理器)可以包括单组或多组具有单核或多核的处理器。处理器21可以执行实现本发明的技术的一种或多种计算机可执行代码。系统存储器22可以为用于存储本文中所使用的数据和/或由处理器21可执行的计算机程序的任何存储器。系统存储器22可以包括易失性存储器(诸如随机存取存储器(random access memory,ram)25)和非易失性存储器(诸如只读存储器(read-only memory,rom)24、闪存等)或其任意组合。基本输入/输出系统(basic input/output system,bios)26可以存储用于在计算机系统20的元件之间传输信息的基本程序,例如在使用rom 24加载操作系统时的那些基本程序。
[0095]
计算机系统20可以包括一个或多个存储设备,诸如一个或多个可移除存储设备27、一个或多个不可移除存储设备28、或其组合。一个或多个可移除存储设备27和一个或多个不可移除存储设备28借助存储器接口32连接到系统总线23。在一个方面中,存储设备和相应的计算机可读存储介质为用于存储计算机系统20的计算机指令、数据结构、程序模块、和其它数据的电源独立的模块。系统存储器22、可移除存储设备27和不可移除存储设备28可以使用各种各样的计算机可读存储介质。计算机可读存储介质的示例包括:机器存储器,诸如缓存、静态随机存取存储器(static random access memory,sram)、动态随机存取存储器(dynamic random access memory,dram)、零电容ram、双晶体管ram、增强型动态随机存取存储器(enhanced dynamic random access memory,edram)、扩展数据输出随机存取存储器(extended data output random access memory,edo ram)、双数据速率随机存取
存储器(double data rate random access memory,ddr ram)、电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、纳米管随机存取存储器(nanotube random access memory,nram)、电阻式随机存取存储器(resistive random access memory,rram)、基于氧化硅-氮氧化硅(silicon-oxide-nitride-silicon,sonos)的存储器、相变随机存取存储器(phase-change random access memory,pram);闪存或其它存储技术,诸如在固态驱动器(solid state drive,ssd)或闪盘驱动器中;磁带盒、磁带、和磁盘存储器,诸如在硬盘驱动器或软盘驱动器中;光学存储器,诸如在光盘(cd-rom)或数字通用光盘(digital versatile disk,dvd)中;以及可用于存储期望数据且可被计算机系统20访问的任何其它介质。
[0096]
计算机系统20的系统存储器22、可移除存储设备27和不可移除存储设备28可以用于存储操作系统35、附加应用程序37、其它程序模块38和程序数据39。计算机系统20可以包括用于传送来自输入设备40的数据的外围接口46,该输入设备40诸如键盘、鼠标、触针、游戏控制器、语音输入设备、触点输入设备、或其它外围设备,诸如借助一个或多个i/o端口的打印机或扫描仪,该一个或多个i/o端口诸如串行端口、并行端口、通用串行总线(universal serial bus,usb)、或其它外围接口。显示设备47(诸如一个或多个监控器、投影仪或集成显示器)也可以通过输出接口48(诸如视频适配器)连接到系统总线23。除了显示设备47之外,计算机系统20还可以装配有其它外围输出设备(未示出),诸如扬声器和其它视听设备。
[0097]
计算机系统20可以使用与一个或多个远程计算机49的网络连接而工作在网络环境中。所述一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括前面在描述计算机系统20的性质时所述的元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。计算机系统20可以包括用于借助一个或多个网络而与远程计算机49通信的一个或多个网络接口51或网络适配器,该一个或多个网络诸如局域计算机网络(local-area computer network,lan)50、广域计算机网络(wide-area computer network,wan)、内联网、和因特网。网络接口51的示例可以包括以太网接口、帧中继接口、sonet接口、和无线接口。
[0098]
本发明的方面可以为系统、方法和/或计算机程序产品。计算机程序产品可以包括一个或多个计算机可读存储介质,其上具有用于使处理器执行本发明的各方面的计算机可读程序指令。
[0099]
计算机可读存储介质可以为有形设备,该有形设备可以保持且存储指令或数据结构的形式的程序代码,该程序代码可以被计算设备(诸如计算系统20)的处理器访问。计算机可读存储介质可以为电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备、或其任何合适组合。通过示例方式,这类计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、eeprom、便携式光盘只读存储器(cd-rom)、数字通用光盘(dvd)、闪存、硬盘、便携式电脑磁盘、记忆棒、软盘、或甚至机械编码设备,诸如在其上记录有指令的凹槽中的打孔卡或凸起结构。如在本文中所使用,计算机可读存储介质不应被视为短暂信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或传输介质传播的电磁波、或通过电线传输的电信号。
[0100]
可以将本文中所描述的计算机可读程序指令从计算机可读存储介质下载到各个
计算设备、或借助网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输电缆、光学传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。在每个计算设备中的网络接口从网络接收计算机可读程序指令并转发该计算机可读程序指令,用以存储在各个计算设备内的计算机可读存储介质中。
[0101]
用于执行本发明的操作的计算机可读程序指令可以为汇编指令、指令集架构(instruction-set-architecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言和传统程序化编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以(作为独立的软件包)完全地在用户的计算机上、部分地在用户的计算机上、部分地在用户的计算机上且部分地在远程计算机上、或完全地在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包括lan或wan)连接到用户的计算机,或可以进行与外部计算机的连接(例如通过因特网)。在一些实施方式中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)、或可编程门阵列(programmable logic array,pla))可以通过利用计算机可读程序指令的状态信息而执行计算机可读程序指令,以使该电子电路个性化,从而执行本发明的各方面。
[0102]
在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。如本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(application specific integrated circuit,asic)或现场可编程门阵列(field-programmable gate array,fpga))实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以在计算机系统(例如上文在图17中更详细描述的计算机系统)的处理器上运行。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
[0103]
为了清楚起见,本文中没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
[0104]
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
[0105]
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献