专利名称:点对点通信的监测和控制的制作方法
技术领域:
本发明涉及检测在数据通信网络上的点对点通信的领域,更具体地, 涉及跨越内联网/互联网边界检测点对点通信。
背景技术:
互联网是由多个互连的数据网络形成的广域数据通信网络。在运行中, 互联网方便了在远程定位的数据处理系统的范围之间的数据通信。典型地, 与互联网连接的最终用户数据处理系统称为客户端数据处理系统或客户
端。类似地,托管由最终用户经由互联网进行访问的web站点和服务的数 据处理系统称为服务器数据处理系统或服务器。在最终用户数据处理系统 和主机数据处理系统之间存在经由互联网实现的客户端-服务器关系。
互联网已经成为在消费者、零售商和服务提供商之间便于电子相关的 商业合作的重要通信网络。典型地,经由互联网服务提供商(ISP)向这些 实体提供对互联网的访问。典型地,每个ISP经营客户端所订购的开放网 络。在网络上对每个客户端提供唯一的互联网协议(IP)地址。类似地, 对网络上的每个服务器提供唯一的IP地址。由ISP经营的网络经由通常称 为路由器的专用数据处理系统与互联网连接。在经营中,路由器从互联网 向网络上的指定IP地址导向进入通信流。类似地,路由器从网络以互联网 上的指定IP地址的方向导向输出通信流。
术语"点对点"应用于在网络中客户端或对等点(peer)彼此直接建 立通信会话的一大类应用和协议。相比之下,客户端-服务器应用假设客户 端仅与已知的服务器通信。因此,点对点应用的特征在于角色对称。
尽管在客户端-服务器构架中可向服务器发起通信的仅有客户端,然而
在点对点构架中,可由任意对等点发起通信。
文件共享应用(例如KaZaA和BitTorrent)是点对点应用的实例。它 们包括在进行实际文件传输之前使用的发现资源和对等点地址解析的机 制。应注意,这些应用对于某些功能(例如,初始化)依赖于服务器,但 是它们对于资源发现和数据传输最终使用点对点通信。其他类型的点对点 应用包括例如使用RTP、实时传输协议的交互式游戏或电视会议。
在多数互联网应用的客户端-服务器应用中的角色不对称不利于暗示 网络的构成方式。例如,假设客户端尝试联系外部服务器,当在内部,即 在内联网中发起通信时,典型地更多地打开用于保护内联网的防火墙。同 样,典型地用于保护内联网的防火墙阻止外部发起的所有通信流,除非是 由于出现异常而导向服务器的情况。使用网络地址转换,即NAT机制在 内联网中的客户端之间共享外部IP地址。NAT机制符合与防火墙类似的 规范,即,必须从内联网中发起通信,从而可在具有内部地址的内部客户 端和具有外部地址的外部客户端之间建立映射。作为这种构架的结果,跨 越内联网/互联网边界的点对点通信不够直接。虽然能够配置特定规则和端 口映射以允许这种点对点通信,但是由外部客户端发起的点对点通信仍旧 被防火墙和NAT阻止。
近来对于家庭用户宽带互联网连接的广泛使用增加了中间盒的住宅用 途。中间盒通常是防火墙和NAT功能的組合。在对等点位于中间盒后方 的情况下,将它们的私有地址映射到公共地址。点对点软件开发商已经提 出在不需要由用户手动配置中间盒的情况下建立用以穿越中间盒的数据通 信信道的技术。 一般地,为了建立这种数据通信信道,第一步是确定用于 点对点通信的传输地址,第二步是穿越中间盒。
本领域已知的是,通过依靠对已知服务器的初始连接来执行第一步。 对等点可通过例如使用在即时消息服务器中的标识符(例如域名)来找到 彼此。然后,期望建立点对点通信的两个对等点连接至已知服务器,并发 送它们当前的传输地址。服务器的应答包含其他对等点的地址信息。应注 意,在这种交流中的地址信息一般包括私有地址和/>共地址。由于一些
NAT不提供"回环转换(loopback translation )",所以包括私有地址, 从而可在两个对等点处于相同地址空间中的情况下建立对等通信。
一般地,使用例如2005年4月10-15日的USENIX年度技术^i义的 B.Ford 、 P.Srisuresh和D.Kegel的 "Peer-to-Peer communication across Network Address Translators"所述的例如用户数据才艮协议、UDP、打洞 (hole punching )技术等技术执行第二步骤。UDP打洞技术按以下方式运 行。当第一对等点和第二对等点"同时,,相互发送会话建立UDP包时,它 们继续发送该包,直到接收到响应包为止。使用私有地址和公共地址进行 该处理。如果两个对等点位于相同地址空间中,则立即接受向私有地址发 送的包,发送响应,并且对等点可按照对应用专用的协议开始通信。如果 第一对等点位于中间盒后方,则由第二对等点向第一对等点的私有地址发
送的包没有意义(并且甚至可能没有分配路由)。然而,由于第一对等点 曾经向第二对等点的公共地址发送过具有所设定目的地址的包,所以中间 盒假设从第二对等点的进入包是内部建立的点对点通信的一部分。因此, 接受由第二对等点向第一对等点的公共地址发送的包,应注意,重新发送 会话建立包,以考虑到在第一包到达时端点没有打开的情况。对于第二对 等点进行相同的处理。
上述的UDP打洞技术仅作用于对不同调用重新使用端口绑定的NAT, 以及在使用相同的端点向外部对等点发送包时打开UDP端点以接收该对 等点的包的NAT/防火墙。
应注意,由于中间盒操作的多样性,UDP打洞技术不会总成功。尽管 在许多情况下,甚至在两个对等点位于中间盒后方时,允许建立对等^。
在企业网络中不恰当的使用点对点应用会出现多种负面结果的问题。 首先,这些应用引入可影响企业网络资源的性能和可用性的新通信模式。 明显地,这些模式表现出法律风险和潜在的安全性暴露。前者是由于与文 件共享相关的可能的侵权引起的;后者是由于机密信息被误配置的/恶意的 点对点软件无意地公开的危险,以及可能引入在共享文件中包含的病毒引 起的。
解决该问题的已知方式是基于在网络边界进行流量统计的分析, 一般
地,取决于已知的点对点UDP和传输层协议、TCP、端口的使用。然而, 由于点对点网络的动态特征以及穿越控制(例如防火墙)的逐渐增加的复 杂技术,所以这些应用没有精确检测和控制点对点软件。
本发明的目的在于提供一种系统,用于跨越内联网/互联网边界检测和 控制点对点通信。另一目的在于提供本地问题的本地报告。此外,可实现 对于内部和外部对等点透明的检测。
发明内容
根据本发明的第一方面,提供一种检测在数据通信网络上的点对点通 信的方法,所述点对点通信在内部地址空间中的内部客户端机器和外部客 户端机器之间,该方法包括以下步骤将从外部客户端机器寻址到内部客 户端机器的所有消息路由到分析设备;识别指定特征的消息;识别由所述 指定特征的消息所寻址的内部客户端机器。术语"指定特征"理解为表示 该消息具有特定属性或属于预定类型。术语"内部"理解为表示内联网的 实体或内联网中的实体,术语"外部"理解为表示内联网外部的实体。
所述指定特征的消息与在所述内部客户端机器和所述外部客户端机器 之间建立点对点通信相关。
通过位于所述内部地址空间外部的分析设备执行所述识别指定特征的 消息和识别内部客户端机器的步骤。此外,将所述内部客户端机器的地址 空间路由到所述分析设备;然后所述分析设备欺骗与所述外部客户端机器 的交流。
本发明的第一方面还限定,如果所述点对点通信的建立违反预定义的 内部网络规则,则终止与所述外部客户端机器的连接。
根据本发明的第二方面,提供一种检测在数据通信网络上的点对点通 信的装置,所述点对点通信在内部地址空间中的内部客户端机器和外部客 户端机器之间,该装置包括路由器,将从外部客户端机器寻址到内部客 户端机器的所有消息路由到分析设备;所述分析设备包括协议处理程序,
用于识别指定特征的消息;和分析组件,用于识别由所述指定特征的消息 所寻址的内部客户端机器。
所述分析设备还包括策略数据库,用于确定对于所识别的内部客户 端机器是否允许所述点对点通信,以及如果所述点对点通信的建立违反预 定义的内部网络规则,则终止与所述外部客户端才几器的连接。
根据本发明的第三方面,提供一种包括计算机程序代码装置的计算机 程序元件,在将所述计算才几程序代码装置加载到数据处理系统的处理器中 时,其配置所述处理器以执行包括以下步骤的方法,包括将从外部客户 端机器寻址到内部客户端机器的所有消息路由到分析设备;识别指定特征 的消息;识别由所述指定特征的消息所寻址的内部客户端机器。
根据本发明的第四方面,提供一种配备客户端系统的方法,所^Jl户 端系统具有内部地址空间(105),以防备在内部地址空间中的内部客户端 机器和外部客户端机器之间的点对点通信,该方法包括以下步骤将分析 设备连接至路由器;将从外部客户端机器寻址到内部客户端机器的所有消 息路由到分析设备;识别指定特征的消息;识别由所述指定特征的消息所 寻址的内部客户端机器。
现在,参照附图,仅通过实例描述本发明的实施例,其中
图l是数据处理系统的框图2是根据本发明的数据处理网络的框图3是才艮据本发明的分析设备的框图4是根据本发明的检测方法的流程图。
M实施方式
首先,参照图1,数据处理系统包括中央处理单元(CPU) 10、输 入/输出(I/O)子系统20和存储器子系统40,所有部分均通过总线子系统 30互连。存储器子系统40可包括随4踏取存储器(RAM)、只读存储器
(ROM)和一个或多个数据存^i殳备,例如硬盘驱动器、光盘驱动器等。 1/O子系统20可包括显示器、打印机、键盘、定点设备(例如鼠标、轨 迹球等)、以及允许经由数据通信网络在数据处理系统和一个或多个类似 系统和/或外围设备之间的通信的一个或多个网络连接。通过这种网络互连 的这种系统和设备的组合本身可形成分布式数据处理系统。这种分布式系 统本身可通过额外的数据通信网络互连。
在存储器子系统40中存储数据60和可由CPU 10执行的计算机程序 代码50。程序代码50包括操作系统软件卯和应用软件80。操作系统软件 卯在由CPU10执行时,提供执行应用软件80的平台。
图2示出在本发明的优选实施例中提供第一数据通信网络100和第二 数据通信网络130,其中第一数据通信网络100具有所分配的IP地址120 的客户端数据处理系统(还称为内部客户端机器)110,第二数据通信网络 130具有向多个数据处理系统150分配的多个IP地址140。第一网络100 可以是企业中的内联网,即具有内部地址空间105的内联网。第二网络130 可以是具有互联网服务设置的外部网络的形式。每一个客户端数据处理系 统110、 150可以是如参照图l在先前所述的翁:据处理系统。网络IOO、 130 均经由至少一个路由器170、 180连接至互联网160。
路由器170、 180可通过如参照图1在先前所述的数据处理系统的形式 实现,通过对任务适当编程而专用以在与路由器170、 180连接的互联网 160和网络100、 130之间以数据包的形式基于在数据包中指定的IP地址 数据对通信流量分配路由。
第一防火墙190位于内联网100和第一路由器170之间。点对点通信 分析设备200连接至第一路由器170。第二防火墙210位于外部网络130 和第二路由器180之间。
当外部客户端数据处理系统(还称为外部对等点或外部客户端机器) 和内部客户端数据处理系统(还称为内部对等点或外部客户端机器)期望 建立点对点通信时,它们初始经由外部机构(例如服务器)彼此联系。在 所述初始联系期间,内部对等点和外部对等点以会话建立点对点协议交流
地址。通常,由于防火墙190,外部客户端数据处理系统不知道内部客户 端数据处理系统的地址。
以外部方式将内部对等点100的地址120路由到分析设备200。对于 该事件的触发尝试从第二网络130到客户端数据处理系统110的联系,而 这是防火墙190的当前状态所不允许的。可经由防火墙l卯分配路由,在 这种情况下可考虑将其用作路由器,尽管可选择地可经由第一路由器170 分配路由。此外,第一路由器170可选择地位于防火墙190和内部对等点 110之间。
接下来,外部对等点150尝试经由互联网建立与内部对等点110的直 接联系。因为对于从外部对等点到内部对等点的所有消息分配到点对点通 信分析设备200的路径,所以在第一路由器170将该联系尝试重新路由到 点对点通信分析设备200 (还称为分析设备200)。
点对点通信分析设备200通过提出一个或多个查询以建立从外部对等 点接收的通信特征(还称为特定特征的消息)来经由互联网响应外部对等 点150。外部对等点150计算出这些查询由内部对等点110发送,而并非 由点对点通信分析设备200发送。优选地,可通过实现各种点对点协议进 行通信。 一旦实现这些协议,则它们提供关于点对点通信的语义层信息。
此外,点对点通信分析设备200在内联网100中通信,以识别期望加 入点对点通信的内部对等点。在所述识别过程中,点对点通信分析i殳备200 根据会话建立点对点协议提取内部地址120,以及将其与点对点通信分析 设备200中保存的企业数据库地址,或动态地址匹配。企业数据库还表示 企业策略,还称为预定内部网络规则,其覆盖特定内部对等点110,因此 描述内部地址120的客户端数据处理系统110有权执行的哪种通信类型, 即它是否可执行点对点通信。也可以使用语义层信息来确定地址UO有权 执行哪种类型通信。
在图2中,通过分析设备实施例示出互联网构架的实例性选择。在该 实例性构架中,示出两个数据通信网络IOO、 200。应该理解,这是实例性 构架,也可以提供许多不同形式的数据通信网络。
在图3中更详细示出分析设备的示例性内部构架。分析设备200通过 在一个或多个完全不能到达的IP地址120欺骗机器和服务的存在来运行。 由于那些IP地址120不应该被联系,所以定向到这些地址的通信流最先怀 疑。分析设备200欺骗点对点通信,而并不是仅记录所尝试的连接,以确 定在通信背后的目的。点对点通信的欺骗通过可配置的协议处理程序 300-320进行,其中每个句柄用于要检测的每个点对点通信的应用。
在除了限制登录之外不提供实际服务的强化安全型机器的上方建立分 析设备200。分析设备200包括网络虛拟化结构330,它允许多个单独的协 议处理程序300-310好像它们在单独的主机上运行的方式操作。各个的协 议处理程序300-310均连接到单独的分析组件340,其随后与企业策略数据 库350连接。企业策略数据库350使得分析组件340根据企业策略确定对 于特定地址是否允许进入点对点通信。在不允许的情况下,分析设备发起 连接的终止。
分析^殳备200可建立为检测一个或多个预定义的点对点通信应用。这 种应用的实例包括"bittorrent" 、 "kazza,,和"edonkey"。可通过各个 协议处理程序300-310来实现预定义点对点通信应用的协议。
图4示出分析设备200的操作400的处理流程图。处理400包括将 从外部客户端机器寻址到内部客户端机器的所有消息路由410到分析设备 200,识别420指定特征的消息,以及识别430由指定特征的消息寻址到的 内部客户端才/L器。
因此,本发明的系统和方法直接解决了跨越内联网/互联网边界的点对 点通信的检测和控制问题。通过将分析设备定位在与企业内联网邻近的路 由器位置,可实现本地点对点通信尝试的本地报告。由于未授权的点对点 通信的检测对于内部和外部对等点更加透明,所以在本系统中可发现其它 优点。
典型地,作为计算4几程序产品实现该方法,所述计算积4呈序产品包括 用于控制计算机或类似设备的一组程序指令。可提供这些指令,以预载到 系统中或记录在例如CD-ROM的存储介质上,或可用于在例如互联网或
移动电话网的网络上下载。
也可以通过对^Jl务实体(还称为客户端系统)提供服务的服务实体
实现本系统和方法。所述服务可包括以下内容中的一个或多个,包括根 据在被服务实体的环境中或用于该环境的本发明对设备或系统的设置;可 用于在其上执行的设施的配置,具体地,计算设施的配置或整合,包括将 计算机可读代码整合到计算系统中,其中与计算系统組合的代码能够执行 根据本发明的方法。在本发明的上下文中,服务实体可跨越内联网/互联网
边界配备客户端系统,以防备未授权的点对点通信。从而,服务实体可提 供内部对等点尝试加入未授权的点对点通信的更有效检测,以及可停止在
内部和外部对等点之间的连接。
该配备方法可包括以下步骤将分析设备连接至路由器,将从外部客 户端机器寻址到内部客户端机器的所有消息路由到分析设备,识别指定特 征的消息,以及识别由指定特征的消息所寻址的内部客户端机器。
分析设备200可配备为由服务实体所有或租有。服务实体可同时使用 用于多个^Ji艮务实体的分析设备200,因此共享该资源。这具有这样的优 点,即在分析设备上相对于点对点可检测的性能所执行的更新影响到所有 连接的,W良务实体。
在该服务中的其它优点可以对,W艮务实体更清楚的实现。
可对于上文进行改进和修改,而不脱离本发明的范围。
权利要求
1. 一种检测在数据通信网络上的点对点通信的方法,所述点对点通信在内部地址空间(105)中的内部客户端机器(110)和外部客户端机器(150)之间,该方法包括以下步骤将从外部客户端机器寻址到内部客户端机器的所有消息路由到(410)分析设备(200);识别(420)指定特征的消息;识别(430)由所述指定特征的消息所寻址的内部客户端机器。
2. 如权利要求1所述的方法,其中所述指定特征的消息与在所述内 部客户端^iL器(110)和所述外部客户端机器(150)之间建立点对点通信 相关。
3. 如权利要求1或权利要求2所述的方法,其中通过位于所述内部 地址空间外部的分析设备(200)执行所述识别(420)指定特征的消息和 识别(430)内部客户端机器的步骤。
4. 如权利要求3所述的方法,还包括将所述内部客户端机器的地址空间(120)路由到所述分析设备;和 所述分析设备(200)欺骗与所述外部客户端机器(150)的交流。
5. 如权利要求4所述的方法,还包括如果所述点对点通信的建立违反预定义的内部网络规则,则终止与所 述外部客户端机器(150)的连接。
6. —种检测在数据通信网络上的点对点通信的装置,所述点对点通 信在内部地址空间(105)中的内部客户端机器(110)和外部客户端机器(150)之间,该装置包括路由器(170),将从外部客户端机器寻址到内部客户端机器的所有消 息路由到(410)分析设备(200); 所述分析设备(200 )包括协议处理程序(300-320),用于识别(420)指定特征的消息;和分析组件(340),用于识别(430)由所述指定特征的消息所寻 址的内部客户端机器。
7. 如权利要求6所述的装置,其中所述指定特征的消息与在所述内 部客户端机器(110)和所述外部客户端机器(150)之间建立点对点通信 相关。
8. 如权利要求6或权利要求7所述的装置,其中所述分析设备(200 ) 位于所述内部地址空间(105)的外部。
9. 如权利要求8所述的装置,其中路由器(170, 190)将所识别的内 部客户端机器(110)的地址空间(120)路由到所述分析设备(200);和所述分析i殳备(200)欺骗与所述外部客户端机器(150)的交流。
10. 如权利要求7至9中任一个所述的装置,其中所述分析设拟200 ) 还包括策略数据库(350),用于确定对于所识别的内部客户端机器(IIO) 是否允许所述点对点通信,以及如果所述点对点通信的建立违反预定义的 内部网络规则,则终止与所述外部客户端机器(150)的连接。
11. 一种包括计算机程序代码装置的计算机程序元件,在将所述计算 机程序代码装置加载到数据处理系统的处理器中时,其配置所述处理器以 执行包括以下步骤的方法,包括将从外部客户端机器寻址到内部客户端机器的所有消息路由到(410 ) 分析设备(200 );识别(420)指定特征的消息;识别(430)由所述指定特征的消息所寻址的内部客户端机器。
12. 如权利要求11所述的计算机程序元件,其中所述指定特征的消 息与在所述内部客户端机器(110)和所述外部客户端机器(150)之间建 立点对点通信相关。
13. 如权利要求12所述的计算机程序元件,其中所述方法包括将 所述内部客户端机器(110 )的地址空间(120 )路由到所述分析设备(200 ); 和所述分析设备(200)欺骗与所述外部客户端4几器(150)的交流。
14. 一种配备客户端系统的方法,所i^j:户端系统具有内部地址空间 (105),以防备在内部地址空间(105)中的内部客户端机器(110)和外 部客户端^li器(150)之间的点对点通信,该方法包括以下步骤 将分析设备(200)连接至路由器;将从外部客户端机器寻址到内部客户端机器的所有消息路由(410 )到 分析设备(200 );识别(420)指定特征的消息;识别(430)由所述指定特征的消息所寻址的内部客户端机器。
全文摘要
提供一种检测在数据通信网络上的点对点通信的方法和装置,所述点对点通信在内部地址空间中的内部客户端机器和外部客户端机器之间。该方法包括将从外部客户端机器寻址到内部客户端机器的所有消息路由到分析设备。该分析设备识别与点对点通信相关的消息,和识别由所述指定特征的消息所寻址的内部客户端机器。如果所述点对点通信的建立违反预定义的内部网络规则,则终止与所述外部客户端机器的连接。
文档编号H04L29/06GK101390369SQ200780006949
公开日2009年3月18日 申请日期2007年2月27日 优先权日2006年2月28日
发明者D·M·赞波尼, D·博格斯瓦德格, D·阿莱桑德里, J·F·赖尔登 申请人:国际商业机器公司