技术领域
本发明一般地涉及一种用于侦听客户端和服务之间的通信的方法和数据 处理系统,并且具体涉及一种用于侦听客户端和服务之间的嫌疑人的通信的 方法和数据处理系统。
背景技术
在大多数国家中,法律强制通信或服务提供商使得能够为象特务机关、 刑事调查部
门以及国家和国际犯罪打击和犯罪防范组织的执法机构侦听顾客 的通信。因此,电信服务提供商必须提供电信和IT
基础设施,以便使执法部 门能够侦听语音和数据流量。基本上,必须确保以下主要原则:
1.该侦听对于其通信被侦听的人来说必须是不可见的和不可识别的。
2.该侦听对于服务提供商的职员来说必须是不可见的和不可识别的。
3.仅仅允许侦听合法确定的嫌疑人的通信。
然而,传统的语音通信基于
电路交换网络技术,并且在接入点处,侦听 相当容易实现,基于分组交换技术的IP数据流量暴露了关于上述原则的障碍。 通常使用的用于侦听数据流量的方法是在特定的侦听点记录若干用户会话的 所有IP流量,随后进行
过滤器分析,以便重新产生完整的用户会话。三个原 因主要地说明这一实践的低效:需要存储、管理和分析巨量数据。此外,记 录数据流量不一定记录到所有通信数据,因为分组交换网络可以使用不可预 测的路由和
节点。侦听不是实时的,并且可能影响法律问题,原因是存储比 所需的更多的用户数据。
因此,在互连交换机中,诸如公共交换电话网和公共陆地移动网络的电 话网络中进行侦听。所述交换机被互连到与执法机构相连接的传达设备。交 换机使用电话号码(ISDN/MSISDN)作为侦听依据。在交换机处侦听对于某个 电话号码的呼入或呼出通话。该交换机复制通信内容。除了呼叫者和被叫者 之间的传输之外,经由传达设备将数据传递给执法机构。
在基于TCP/IP的网络中,侦听与电话网络非常相似。交换机与连接到执 法机构的传达设备相连接。使用IP地址的源地址字段、IP地址的目的地地址 字段或者二者取代电话号码作为侦听依据。通常的实践是记录来自或去往给 定IP地址的所有连接数据(但不一定是全部内容)。存在若干种类型的信息源, 从该信息源中,例如从IP路由器日志文件、从HTTP
服务器日志文件、从网 络协议分析器或从动态流量过滤,可以提取通信数据记录。
已经知道一些
专利,其描述用于合法侦听分组无线网络的侦听方法和系 统。那些仅适用于网络运营商,原因是他们需要与其核心网络的交换基础设 施进行深入交互。最接近的5个专利列出如下:
美国专利
申请US220/0049913A1和US220/0051457A1--侦听系统和方 法--涉及一种用于在诸如通用分组无线服务(GPRS)或通用移动通信系统 (UMTS)的分组网络中进行合法侦听的侦听系统和方法。
名称为侦听方法和系统的美国专利申请US2002/0078384A1涉及一种侦 听方法和系统,用于在诸如通用分组无线服务(GPRS)或通用移动通信系统 (UMTS)的分组网络中进行合法侦听的侦听系统和方法。
美国专利申请US2002/0068582A1--用于向执法机构报告信息的方法、 系统和传达设备--涉及蜂窝对电信网络用户通信的监控,并且特别涉及一 种用于向执法机构报告所监控的信息的方法、系统和传达设备。
在名称为--用于使用基于实时内容的网络监控来检测和报告在线活动 的系统和方法的美国专利申请2002/0128925中描述了关于监控的更普通的方 法。其一般地涉及通过诸如因特网、
万维网或公司局域网(LAN)的公共或专 用网络报告在线活动的系统。该专利仅适用于基于URL的过滤,并且不进行 整个用户会话。它明确排除了对诸如图像的特定内容类型的侦听,因此不适 用于合法侦听。
基于IP的侦听使用定义的IP地址来侦听来自或去往特定IP地址的通信。 然而,如果用户不具有诸如由例如因特网接入提供商的第三方提供的动态分 配的IP地址的公知/固定IP地址,则基于IP地址的侦听并不够。要利用这样 的IP地址侦听的用户建立的应用程序会话将不会被记录到。基于IP的侦听 可以记录特定应用程序或整个基础设施的所有通信。然而,对于大量应用程 序/
网站来说,将记录的数据量是巨大的。这些数据的管理和处理需要大量的 努
力和例如以大量数据存储设备形式的资源。由于在此情况中将侦听所有应 用程序会话,因此隐私问题确实存在,并且法律方面确实适用。为了从所记 录的数据中获得所感兴趣的应用程序会话的内容,必须进行过滤。由于这涉 及大量数据,因此所述过滤是耗时和耗费资源的。
此外,可以使用传输层安全协议(TLS)或安全套接字层(SSL)来加密通过 IP地址侦听所记录的数据。对诸如HTTP网络服务器日志或应用程序日志的 标准应用程序和基础设施日志的分析不包含通信的全部内容。为了获得全部 应用程序会话内容,需要
修改应用程序以实现所需的日志记录。
因此,确实存在对于用于侦听数据流量的改进的方法和
数据处理系统的 需要。
发明内容
根据本发明的
实施例,提供了一种侦听客户端和服务之间的通信的方法, 其中,该方法包括执行所述客户端的用户的用户认证的步骤,以及由所述服 务从所述客户端的用户接收
请求的步骤。所述请求包括用户特有标记(token), 并且该用户特有标记包括唯一的用户标识符。由于所述用户认证,可以将该 用户特有标识符分配给用户的请求。如果该唯一用户标识符与一组唯一用户 标识符中的一个用户标识符相等,则存储该请求的副本,其中,将该唯一用 户标识符用作密钥。
将用户特有标记添加到从客户端发送给服务的所有请求。用户特有标记 包括唯一的用户标识符。通过使用该用户特有标记,可以识别该用户。检查 所述唯一的用户标识符是否等于包括在一组唯一用户标识符中的一个用户标 识符。如果是这种情况,则记录请求的副本,从而将用户标识符用作密钥以 便识别该用户。因此,通过将包括在标记中的用户标识符和一组唯一用户标 识符进行比较来窃听客户端和服务之间的通信。在这组唯一用户标识符中, 包含可疑的并且将被窃听的所有用户的用户标识符。
根据本发明的实施例,所述方法还包括将来自服务的响应发送给客户端 的步骤,其中,所述响应与包括用户特有标记的请求有关,所述用户特有标 记包括唯一的用户标识符。如果该唯一用户标识符等于一组唯一用户标识符 中的一个用户标识符,则在所述方法的另一步骤中,将所述响应的副本与作 为密钥的唯一用户标识符一起存储。
因此,不仅仅侦听从客户端发送到服务的请求。从服务发送给客户端的 响应也被侦听。如果响应与包括标记的请求有关、其中所述标记具有也包括 在该组唯一用户标识符中的唯一用户标识符,则存储该响应的副本。
当仅仅对于在该组唯一用户标识符中存储了其用户标识符的用户的请求 和响应进行侦听时,所述方法尤其有利。所有其它用户不受根据本发明的方 法影响。因此,根据本发明的方法满足仅仅允许侦听合法确定的人的通信的 法律要求。此外,被侦听的人不会觉察到他或她已经被侦听。
根据本发明的实施例,通过认证组件来执行用户认证,其中,认证组件 将用户特有标记添加到所述请求中,其中,侦听器
插件将唯一的用户标识符 与一组唯一用户标识符进行比较,其中,该侦听器插件被插入代理服务器, 其中,该代理服务器位于服务和客户端之间,其中,侦听器插件包括侦听控 制列表,其中,侦听控制列表包含该组唯一用户标识符,其中,侦听器插件 连接到侦听管理器,其中,将所述请求和响应存储在侦听管理器上。
典型为服务提供商的基础设施的第一组件并且从客户端接收消息的认证 组件对用户进行认证,并且将用户特有标记添加到所述请求中。如上所述, 用户特有标记包括唯一的用户标识符。所述请求还被传递给位于服务和客户 端之间的代理服务器。侦听器插件被插入包括侦听控制列表的代理服务器。 侦听控制列表保存该组唯一用户标识符。针对该组唯一用户标识符检查被包 括在消息的标记中的用户标识符。如果唯一用户标识符被包括在该组唯一用 户标识符中,则将响应副本存储在侦听管理器上。因为可以简单地将侦听器 插件插入代理服务器,所以使用侦听器插件识别是否从应该被侦听的用户发 送请求特别有利。然而,这要求服务提供商的基础设施包括代理服务器。还 有可能在另一组件中使用侦听器插件。例如,可以将侦听器插件集成到认证 组件中,此外,使用容留该侦听器插件的分离组件也是可行的。然后,将把 这一组件布置在认证组件和服务之间。
根据本发明的实施例,将所述请求和响应存储在消息队列中,其中,在 侦听器插件中比较该消息队列,或者其中,将所述请求和响应存储在侦听器 插件中,由此通过加密的端到端通信将所述请求和响应从消息队列或从侦听 器插件传递到侦听管理器。
根据本发明的实施例,将侦听控制列表永久存储在侦听管理器上,并且 在代理服务器启动之后将侦听器插件加载到代理服务器中,并且在该代理服 务器启动之后,将侦听控制列表从侦听管理器加载到侦听器插件中。
根据本发明的实施例,利用被加载到侦听器插件中的更新的侦听控制列 表来更新侦听控制列表,从而刷新所存储的侦听控制列表。
根据本发明的实施例,从服务或从代理服务器的高速缓冲
存储器接收所 述响应。
根据本发明的实施例,以加密的方式将所述请求和响应与对应的唯一用 户标识符一起存储。这确保了将不会向未被授权
访问被侦听的响应和请求的 任何人授予访问权。
根据本发明的实施例,侦听器插件和侦听管理器之间的连接是加密的端 到端通信。当将被侦听的响应和请求从侦听插件传递到侦听管理器时,这阻 止未被授权访问被侦听的请求和响应的任何人。
根据本发明的实施例,认证组件、代理服务器、侦听器插件、侦听管理 器和服务本身是网络宿主环境的组件或服务提供商的基础设施的组件。例如 但不唯一的是,所述服务与提供服务的服务器或者设备盒有关。
根据本发明的实施例,侦听管理器和侦听器插件采用加密方法来存储侦 听控制列表。以加密的方式存储被侦听的请求和响应以及侦听控制列表的优 点在于防止未被授权访问这些敏感数据中的任一个的任何人这么做。当法律 要求未被授权的任何人都不能访问这些敏感数据中的任一个时,这特别有利。 因此,根据本发明的方法满足法律所要求的必要条件。
根据本发明的实施例,侦听管理器通过安全线路连接到执法机构的网络, 其中,仅仅执法机构的职员被特许访问存储在侦听管理器上的侦听控制列表 以及被侦听的响应和请求,并且其中,仅仅准许服务提供商的被选中的职员 访问侦听控制列表。
在另一方面,本发明涉及一种
计算机程序产品,其包括用于执行根据本 发明的方法的计算机可执行指令。
在另一方面,本发明涉及一种侦听客户端和服务之间的通信的数据处理 系统,其中,所述数据处理系统包括用于执行客户端的用户的用户认证的部 件和用于在服务处从客户端的用户接收请求的部件,其中,所述请求包括用 户特有标记,其中该用户特有标记包括唯一的用户标识符,其中,由于所述 用户认证,可以将该用户特有标记分配给该用户。该数据处理系统还包括用 于如果所述唯一的用户标识符与一组唯一用户标识符中的一个用户标识符相 等则使用所述唯一的用户标识符作为密钥来存储所述请求和相关响应的副 本。
附图说明
下面,将仅仅参考附图、作为示例来更详细地描述本发明的优选实施例, 在附图中:
图1示出了连接到被适配为侦听通信的服务提供商的基础设施的客户端 系统的方
框图,
图2示出了图示由根据本发明的方法执行的基本步骤的
流程图,
图3在方框图中图示了用于侦听的组件如何扩展公共宿主环境以便侦听 客户端和服务之间的数据流量,
图4示出了侦听设施的可扩充(scalable)设置的方框图,
图5是示出在侦听器插件启动期间由各个组件处理的步骤的顺序图,
图6是图示当侦听通信时各个组件的交互的顺序图,以及
图7示出了图示当更新侦听控制列表时执行的步骤的顺序图。
具体实施方式
图1示出了连接到被适配为侦听通信的服务提供商106的基础设施的客 户端系统102的方框图100。服务提供商基础设施106包括认证组件108、代 理服务器110、侦听管理器114和服务124。用户104登录到客户端系统102 中。客户端系统102例如是诸如PC、
移动电话或PDA的、运行浏览器应用 程序的设备,其连接到服务提供商基础设施106。服务提供商知晓用户104, 因此服务提供商准许用户104访问服务提供商基础设施106。
认证组件108从客户端102接收请求116。在那里,将带有用户标识符 126的标记118添加到请求116中。可以通过用户标识符126来识别用户104。 请求116被发送给服务124。代理服务器110位于认证组件108和服务124 之间,使得请求116在它到达服务124之间通过代理服务器110。代理服务器 110包括侦听器插件112。在此示例中,侦听器插件112是被插入代理服务器 110中的插件。侦听器插件112保存列出一组用户标识符122的侦听控制列表 (ICL)120。侦听器插件112从请求116读取用户标识符126。如果用户标识符 126被包括在侦听控制列表120中,则将请求116的副本与用户标识符126 一起发送到侦听管理器114,在那里,将请求116的副本与用户标识符126 一起存储。
服务124接收请求116。服务124将响应128发送回客户端。当响应128 通过代理服务器110时,侦听器插件112检查该响应是否与被侦听的请求有 关。如果是这样,则将响应128的副本与用户标识符126一起存储在侦听管 理器114中。响应128被进一步发送给客户端系统102,使得用户最终接收 到根据其请求116的响应128。由此,用户不知道他可能已被侦听。
图2示出了图示由根据本发明的方法执行的基本步骤的流程图200。在 步骤202中,执行客户端系统的用户的用户认证。在步骤204中,在侦听器 插件处从客户端的用户接收请求,其中,该请求包括含有唯一用户标识符的 用户特定标记,其中,由于所述用户认证,可以将用户特有标记分配给该用 户的请求。在步骤206中,检查该唯一用户标识符是否被包括在一组唯一用 户标识符中。如果是这种情况,则根据本发明的方法继续进行步骤208,其 中,存储所述请求的副本。否则,根据本发明的方法继续进行步骤210,其 中,不进一步考虑动作。在步骤208或210的处理之后,在步骤212中,将 所述请求传递到所述服务,在那里它被处理。
图3在方框图300中图示了用于侦听的组件如何扩展公共宿主环境以便 侦听客户端312和服务提供商基础设施302之间的数据流量。概念服务提供 商基础设施是非常笼统的术语,并且它应当被理解为:在此文档的语境中, 它指的是在最广泛的意义上向用户提供通信服务的服务提供商的基础设施。 如先前所述,服务提供商只需要通过使用认证组件来识别该用户的方式。下 面,将专注于与通信服务提供商所提供的基础设施不同的服务提供商的基础 设施。通常,通信服务提供商通过使用分配给客户端的动态IP地址来授权用 户的访问,并且允许到IP网络的通信。另一方面,服务提供商具有固定IP 地址以及被用来获得服务的公知域名,所述服务例如可以是在线
银行服务或 者在更广的意义上为相同IP网络上的网络服务。
客户端312可以是具有浏览器应用程序的设备,所述设备经由网络310 连接到也被称为服务提供商所在地(premise)的服务提供商基础设施302。客户 端312也可以是使用包括语音浏览器(例如VoiceXML浏览器)的交互式语音响 应(IVR)系统的电话,其中,通过服务提供商基础设施302通过网络310向其 提供服务。语音浏览器应用网络技术,以便使用户能够经由言语和
双音多频 (DTMF)的组合而从电话访问服务。
网络310可以是由通信服务提供商提供的所有类型访问信道的代表实 体。如上所述,服务提供商和通信服务提供商通常不是相同的。这意味着服 务提供商不知道除了客户端的IP地址以外的用户细节。服务提供商不能在没 有通信服务提供商的帮助的情况下识别或认证用户。由于这一事实,诸如在 线银行的由服务提供商所提供的大多数网络应用要求用户在访问所述服务时 认证他们自己。
服务提供商基础设施302通常由3个组件组成,它们是HTTP服务器304、 应用程序服务器306和目录服务308。此外,服务提供商基础设施通常包括 所谓的边缘组件313,其包括认证组件314和代理服务器316。
客户端312经由连接318和320,通过网络310而连接到服务提供商基 础设施302。在认证组件314处接收来自客户端312的请求。认证组件314 经由连接330,针对目录服务308验证证书。认证组件314仅仅将可被证实 的请求经由连接322、324和326转发到代理服务器316、HTTP服务器304 或应用程序服务器306。
认证组件314还将用户特有标记添加到请求中。该用户特有标记包括可 用以唯一地识别用户的唯一的用户标识符。
将所述请求继续传递到代理服务器316。代理服务器316包括侦听器插 件332,其分析所述标记,并且针对在侦听控制列表中列出的一组用户标识 符来检查用户标识符。如果在侦听控制列表中列出了所述用户标识符,则将 该请求的副本存储在例如侦听器插件的
高速缓冲存储器中。
所述请求被进一步传递给HTTP服务器304和应用程序服务器306,由 此,将与目录服务308的连接328用于授权的目的和用户细节。从应用程序 服务器326产生响应,所述响应随后经由HTTP服务器304和边缘组件313 而被发送回客户端系统312。如果以前请求过所述请求,那么也可以直接由 代理服务器316部分或全部地产生所述请求。
代理服务器316的侦听器插件332还分析所述响应是否与带有标记的用 户标识符的请求有关,其中所述用户标识符也被包括在侦听控制列表中列出 的一组用户标识符中。如果在侦听控制列表中列出了所述用户标识符,则将 所述响应的副本存储在例如侦听器插件的存储器中。
通常,以加密的方式将被侦听的请求和响应存储在侦听器插件的存储器 中,使得服务提供商的未被授权的服务职员不能访问所述请求和响应。此外, 出于相同的原因,以加密的方式存储该侦听控制列表。
侦听管理器334经由连接338连接到代理服务器316,并且可以直接与 侦听器插件332通信。可以使用连接338来在侦听器插件332和侦听管理器 334之间建立加密的端到端通信。例如,可以周期性地建立连接338,然后, 可以将存储在侦听器插件332的存储器中的请求和响应从侦听器插件332传 递到侦听管理器334。
或者,可以永久地建立连接338,并且可以将被侦听的响应和请求从侦 听器插件332直接传送到侦听管理器334,在侦听管理器334中,它们将以 加密的方式而被永久存储。侦听控制列表也以加密的方式被存储在那里。
此外,在侦听器插件和侦听管理器组件之间可以使用消息队列,以便提 高可用性和适用性。在这么做的时候,实现了侦听器插件332和侦听管理器 334之间的有保证的传送,并且在服务中断的情况下避免了数据丢失。
侦听管理器334经由连接342与网络340通信。连接342最好也是永久 或临时建立的加密的端到端连接。网络340由执法机构控制。可以将被侦听 地响应和请求从侦听管理器传递到网络340,以便由执法机构的授权职员作 进一步分析。
如之前已经提到的那样,将用户特有标记添加到从客户端接收的所有请 求中,在该客户端上该用户特定标记所涉及的用户访问服务提供商所在地。 利用被包括在该侦听控制列表中的用户标识符来检查该用户特有标记。服务 提供商知道该用户标识符。因此,执法机构必须向帮助建立侦听控制列表的 服务提供商的职员中的几个人授权,因为这些人必须提供用户特有标识符。
图4示出了侦听设施的可扩充设置的方框图400。该设置基本上与如图3 所述的相同,并且根据本发明的用于侦听用户请求和响应的方法也是相同的。 将
水平扩充(scaling)技术应用于认证组件314、代理服务器316和对应的侦听 器插件332。消息队列402被置于侦听器插件332和侦听管理器334之间。 在侦听器插件332和侦听管理器组件334之间使用消息队列402,以便如上 所述提高可用性和适用性。
图5是示出在侦听器插件504启动期间由各个组件(即代理服务器502、 侦听器插件504和侦听管理器506)处理的步骤的顺序图500。在步骤508中, 启动代理服务器502。侦听器插件504被加载到代理服务器中。它被插入代 理服务器502。在步骤510中,侦听器插件将它自己初始化。它从侦听管理 器506请求侦听控制列表,所述侦听控制列表被加载到侦听器插件504的存 储器中。侦听器插件504将“准备工作”
信号发送回代理服务器502。在步 骤512中,完成代理服务器502的启动,并且该代理服务器将其状态设置为 “准备工作”。
图6是图示当侦听嫌疑用户的通信时各个组件(即客户端系统602、认证 组件604、代理服务器606、服务608、侦听器插件610、侦听管理器612和 执法机构(LEA)614)的交互的顺序图600。
在步骤630中,客户端602将请求发送给认证组件604。认证组件604 在步骤616中对用户进行认证,将带有用户标识符的用户特有标记添加到该 请求中,并且在步骤632中将该请求发送给代理服务器606。在步骤634中, 调用侦听器插件610。针对侦听控制列表检查用户标识符,并且如果它被保 存在侦听控制列表中,则在步骤618中侦听该请求。在步骤636中,将该请 求的副本发送到侦听器管理器612,所述侦听器管理器612在步骤620中存 储该请求。在步骤638中,它被进一步发送给执法机构614,或者更准确地 说,它被进一步发送给该机构的网络。在步骤640中,代理服务器606还将 所述请求转发给服务608,在那里,在步骤622中,执行该服务自身。在步 骤642中,将与所述请求有关的响应发送回代理服务器606。该代理服务器 在步骤644中调用侦听器插件。在步骤624中,如果所述响应与被侦听的请 求有关,那么它也被侦听。所述响应的副本被发送给侦听管理器612,在那 里,在步骤628中将其存储。在步骤648中,它被进一步发送给执法机构614。 代理服务器606还在步骤650中将所述响应转发到认证组件604,在步骤652 中,将所述响应发送给客户端。用户在不知道他可能已经被侦听的情况下接 收到该响应。
图7示出了图示被执行以便更新侦听控制列表(ICL)的步骤的顺序图 700。在步骤710中,授权的管理员702维护和更新存储在侦听管理器704上 的侦听控制列表(ICL)。在步骤712中,分发更新的侦听控制列表。在步骤718 中将该侦听控制列表发送到侦听器插件706。在步骤714中,更新的侦听控 制列表刷新所存储的侦听控制列表。在步骤720中,将向侦听管理器704通 知已经成功地进行了该更新的消息从侦听器插件706发送到侦听管理器704。 在步骤716中,将更新信息发送给执法机构(LEA)708。在步骤722中,向LEA 708通知允许对侦听控制列表(ICL)的改变。
参考标号列表
100 方框图 102 客户端系统 104 用户 106 服务提供商基础设施 108 认证组件 110 代理服务器 112 侦听器插件 114 侦听管理器 116 请求 118 标记 120 侦听控制列表 122 一组用户标识符 124 服务 126 用户标识符 128 响应 200 流程图 202 用户认证 204 在侦听器插件处接收用户的请求 206 检查是否设置了标记 208 存储请求的副本 210 无动作 212 处理服务 300 方框图 302 服务提供商基础设施 304 HTTP服务器 306 应用程序服务器 308 目录服务 310 网络 312 客户端
313 边缘组件 314 认证组件 316 代理服务器 318 连接 320 连接 322 连接 324 连接 326 连接 328 连接 330 连接 332 侦听器插件 334 侦听管理器 336 连接 338 连接 340 网络 342 连接 400 方框图 402 消息队列 500 顺序图 502 代理服务器 504 侦听器插件 506 侦听管理器 600 顺序图 602 客户端系统 604 认证组件 606 代理服务器 608 服务 610 侦听器插件 612 侦听管理器 614 执法机构
700 顺序图 702 管理员 704 侦听管理器 706 侦听器插件 708 执法机构