CN101111832B - 用于向服务器提供客户机标识信息的系统和方法 - Google Patents
用于向服务器提供客户机标识信息的系统和方法 Download PDFInfo
- Publication number
- CN101111832B CN101111832B CN2005800383775A CN200580038377A CN101111832B CN 101111832 B CN101111832 B CN 101111832B CN 2005800383775 A CN2005800383775 A CN 2005800383775A CN 200580038377 A CN200580038377 A CN 200580038377A CN 101111832 B CN101111832 B CN 101111832B
- Authority
- CN
- China
- Prior art keywords
- identifying information
- server
- client identifying
- source
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
一种用于提供客户机标识信息给服务器的系统包括智能中间设备上被配置用来创建至少一个要发送给服务器的包含客户机标识信息的带标记分组的标记器,以及服务器上被配置用来从该至少一个带标记分组获取客户机标识信息并将该客户机标识信息提供给应用程序的拦截器。在一种实施例中,该标记器被配置用来将客户机标识信息插入到该至少一个带标记分组的数据部分中。在另一实施例中,该标记器被配置用来将客户机标识信息插入该至少一个带标记分组的协议报头中。
Description
技术领域
本发明一般涉及电子网络,准确地说涉及用于向服务器提供客户机标识信息(client identifying information)的系统和方法。
背景技术
在很多客户机-服务器网络中,客户机和服务器不直接通信,而是通过各种中间设备通信。这些设备中的有些(如web代理)终止来自客户机的连接并打开一到服务器的新连接。当中间设备建立与服务器的连接以代表客户机请求内容时,服务器也许不能以没有中间设备时获取请求来源的属性的相同方式来确定请求的初始来源或者来源的其它属性,如它的网际协议(IP)地址。通常,服务器只看到请求的直接来源是该中间设备。
有些情况下服务器应该知道内容请求的初始来源(通常是客户机)的IP地址。例如,服务器可能想基于客户机的IP地址执行授权过程,或者服务器上的应用程序想用客户机IP地址作为唯一的访问者标识符来估计市场工作的效力。又如,服务器可能想根据客户机的位置改变发送给客户机的内容。这种情况下,服务器需要知道客户机的IP地址以向它发送适当的内容。
服务器还可以使用客户机的IP地址用于安全目的。例如,服务器可以被配置为只向特定的可信客户机发送特定数据,或者可以被编程为不响应来自特定地区或国家的客户机的请求。但是,为使这些安全措施生效,服务器需要知道作为初始请求者的客户机的IP地址。
有些中间设备用来向服务器通知客户机的IP地址的一种已知技术是使用HTTP协议中的X-Forwarded-For报头行,或者别的具有相同目的的报头。这个报头行包含初始来源的IP地址,还可以包含在初始来源和这个中间设备之间存在的其它中间设备的地址。在这个技术中,服务器软件被配置成为了各种目的使用这个IP地址列表。这项技术的一个缺点是它只能应用在诸如HTTP的几个协议中,而不能用于FTP等其它协议。第二个缺点是对于加密安全连接(如使用SSL技术的连接),代理将只看到加密的HTTP-级数据并且将不能修改合适的报头行。第三个缺点是报头能够被未经授权的客户机假造。第四个缺点是缺乏透明性:服务器软件很多都需要被重新配置或重新编程以解释并使用新的报头,而对服务器的这些改变可能是代价很高或不可行。
另一种用于向服务器提供客户机IP地址的已知技术是请求-响应服务,它主动地向中间设备查询其所知道的客户机的知识。在这项技术中,服务器软件被配置用来连接到中间设备并请求客户机的IP地址。这项技术的一个缺点是请求-回复周期占用时间并且可能产生延迟,尤其是在服务器在为客户机准备内容之前应该知道客户机的IP地址的情况更是如此。这项技术的另一缺点是缺乏透明性:必须对服务器编程以启动这些查询,并对服务器进行设计以处理延迟直到应答到来。
另一用于向服务器提供客户机IP地址的已知技术是将地址信息从中间设备离线传输到服务器。这项技术要求中间设备保存客户机连接的日志。这项技术可能对市场研究目的有用,但它不允许服务器使用客户机的IP地址用于授权目的或者为客户机定制内容。这项技术的一个缺点是缺乏关于服务器数据管理过程的透明性。
发明内容
本发明公开一种用于向服务器提供客户机标识信息的系统,包括:
具有输入和输出的智能中间设备,
该智能中间设备的输入能够接收客户机消息,其中该客户机消息包括客户机标识信息,
该智能中间设备的输出能够发送服务器消息,
该智能中间设备包括标记器,该标记器能够接收客户机标识信息并产生能够被包括在服务器消息中的带标记的数据流,该带标记的数据流包括可获取的客户机标识信息;和
拦截器,被配置成用来从服务器消息中的带标记的数据流获取客户机标识信息并将该客户机标识信息提供给服务器上的应用程序;
其中,该拦截器通过下列步骤将客户机标识信息提供给应用程序:
拦截从应用程序到该服务器的操作系统的调用,该调用包括对服务器消息的来源的身份标识的请求,以及
用包括客户机标识信息而不是服务器消息来源的身份标识的响应来回复所拦截的调用。
本发明公开一种来源-标识服务器,包括:
操作系统,被配置成用来接收来自智能中间设备的服务器消息,该服务器消息包括至少一个包含客户标识信息的带标记的分组;
应用程序,被配置成用来接收来自服务器消息的数据;以及
拦截器,被配置成用来从带标记的分组获取客户机标识信息,
该拦截器还被配置用来:
拦截从应用程序到操作系统的调用,该调用请求服务器消息的来源的标识信息,以及
用包括代替服务器消息来源的标识信息的客户机标识信息的响应来回复所拦截的调用。
本发明公开一种用于向服务器提供客户机标识信息的方法,包括:
创建至少一个包含客户机标识信息的带标记的分组作为要发送到服务器的消息的分组;
将该消息发送到服务器;
识别出该消息中的至少一个带标记的分组;
从该至少一个带标记的分组来获取该客户机标识信息;以及
将该客户机标识信息提供给服务器上的应用程序;
其中,将客户机标识信息提供给应用程序的步骤包括:
拦截从服务器的应用程序到操作系统的调用,该调用包括对该消息的来源的身份标识的请求,以及
用包括该客户机标识信息而不是该消息来源的身份标识的响应来回复所拦截的调用。
用于向服务器提供客户机标识信息的一种系统包括智能中间设备上的标记器(tagger),它创建至少一个带标记分组(tagged packet)以包括在服务器消息(server communication)中。服务器优选地包括拦截器(interceptor),从该至少一个带标记分组获取客户机标识信息并将该客户机标识信息提供给服务器上的应用程序。在一种实施例中,该拦截器通过拦截从应用程序到服务器的操作系统的请求消息来源的身份标识(identity)的调用,而向该应用程序提供客户机标识信息,并用包括客户机标识信息代替消息源的身份标识的响应进行回复。该拦截器还被配置用来向该应用程序提供初始的消息数据。
在一种实施例中,该标记器被配置用来将客户机标识信息和消息数据连接在一起并将产生的数据分组化,产生至少一个在数据段包括客户机标识信息的带标记分组。在另一种实施例中,标记器被配置用来通过将客户机标识信息包括在至少一个带标记分组的协议报头中而创建至少一个带标记分组。
用于向服务器提供客户机标识信息的一种方法包括,创建至少一个包括客户机标识信息的带报头分组作为要包括在消息中的分组,将该带标记分组作为消息的一部分发送到服务器,在消息中识别该至少一个带标记分组,从该至少一个带标记分组获取客户机标识信息,并将客户机标识信息提供给应用程序。将客户机标识信息提供给应用程序优选地包括拦截从应用程序到服务器的操作系统的请求消息源的身份标识的调用,并用包括客户机标识信息代替消息源的身份标识的响应回复所拦截的调用。该方法还包括将初始的消息数据提供给服务器上的应用程序。
附图说明
图1A是依照本发明的电子网络的一个实施例的结构图;
图1B是依照本发明的电子网络的另一实施例的结构图;
图2是依照本发明的图1A中的智能中间设备的一个实施例的结构图;
图3A是依照本发明的优选实施例的带标记分组的图;
图3B是依照本发明的带标记分组的另一实施例的图;
图4是依照本发明的图1A的来源-标识服务器的一种实施例的结构图;
图5是依照本发明的一个实施例的用于获取客户机标识信息的方法步骤的流程图。
具体实施方式
图1A是依照本发明的电子网络100的一种实施例的结构图。网络100包括但不限于客户机110、网络112、智能中间设备114、网络116以及来源-标识服务器118。客户机110通过网络112向智能中间设备114发送一客户机消息(clientc ommunication),其通常包含对内容的请求。智能中间设备114终止来自客户机110的连接,然后在另一个连接上通过网络116向来源-标识服务器118发送一服务器消息,其通常包含对内容的请求。来源-标识服务器118根据该请求产生内容,然后将产生的内容发送到智能中间设备114,智能中间设备114随后将该内容发送给客户机110。在图1A的实施例中,客户机110、智能中间设备114以及来源-标识服务器118根据在传输和网络层上包括TCP/IP(网际协议之上的传输控制协议)的协议栈通信。智能中间设备114可以是在客户机和服务器之间建立单独连接的任意类型的联网设备,例如代理、任意类型的代理服务器、服务器负载均衡装置以及安全套接字协议层(Secure Socket Layer,SSL)网关。美国专利申请09/534,321号,题为“Method for High-Performance Delivery of Web Content”中说明了这种中间设备的其它例子,在此通过全文参考引入该申请的公开。
智能中间设备114可以修改发送到来源-标识服务器118的服务器消息以包括客户机110的标识信息。智能中间设备114可以修改初始消息数据以包括客户机标识信息,或者修改服务器消息的协议报头以包括客户机标识信息,或者修改这些数据的一些组合。下面结合图2说明优选的智能中间设备114的内容和功能。优选的来源-标识服务器118从服务器消息获取客户机110的标识信息并将它提供给适当的应用程序。下面结合图4说明来源-标识服务器118的内容和功能。
图1B是依照本发明的电子网络120的另一实施例的结构图。网络120包括但不限于客户机122、客户机124、客户机126、网络128、智能中间设备114、网络130、服务器132、服务器134以及来源-标识服务器118。在图1B的实施例中,智能中间设备114能够通过网络128从客户机122、124和126中的任意一个接收客户机消息。对于每个客户机消息,智能中间设备114确定服务器132、服务器134或来源-标识服务器118中的哪一个应该接收信息(如代表客户机的对内容的请求),然后确定服务器消息是否应该包括客户机标识信息。对于打算发送给来源-标识服务器118的信息,智能中间设备114准备包括客户机标识信息的服务器消息。对于打算发送给服务器132或134的信息,智能中间设备114准备不包括客户机标识信息的服务器消息,因为服务器132和服务器134不是来源-标识服务器。
图2是依照本发明的图1A的智能中间设备114的一个实施例的结构图。智能中间设备114包括但不限于代理210、标记器212和OS(操作系统)内核214。代理212充当来源-标识服务器118的代理,代表来源-标识服务器118接收并响应对内容的请求。对于没有被缓存在智能中间设备114的内容或者必须从来源-标识服务器118获取的内容,代理210建立到来源-标识服务器118的连接以请求想要的内容。
客户机110建立与智能中间设备114的连接并将对内容的请求发送到智能中间设备114。在建立连接中,客户机110传递标识信息(它可能包括IP地址)给智能中间设备114。只要在一个端点(如客户机110)和另一端点(如中间设备114)之间有直接连接,IP协议的一个内置属性是每个端点都能够知道对方的IP地址。但是,实现这个所用的特定机制(IP报头中的一个标准的专用字段)不能也用来记录该连接中没有作为直接端点涉及的其它主机的身份标识。代理210终止来自客户机110的连接,并准备要发送给来源-标识服务器118的包括内容请求的服务器消息。标记器212修改该服务器消息以包括客户机110的标识信息,产生带标记数据,该带标记数据随后被OS内核214分组化以产生带标记数据流。下面结合图3A和图3B说明用于产生带标记数据流(包含客户机标识信息)的技术。标记器212可以实现为硬件、软件、固件或者它们的组合。在标记器212的包括软件的实现中,该软件可以被实现在OS内核214中,在系统的网络栈软件中,在非内核应用程序中,或者它们的组合中。在智能中间设备114的另一实施例中,标记器212的功能被并入到了代理210中。
图3A是依照本发明的优选实施例的带标记分组310的图。带标记分组310是带标记数据流中的第一个数据携带(data-bearing)分组。在这个实施例中,标记器212将客户机标识信息连接到初始服务器消息数据前面,然后将产生的带标记数据转发到OS内核214,OS内核214将带标记数据分组化以形成带标记数据流。带标记分组310包括但不限于数据链路报头312、包括IP选项字段(未示出)的IP报头314、包括TCP选项字段(未示出)的TCP报头316以及数据字段318。包括客户机IP地址320、识别模式322和校验和324的客户机标识信息位于带标记分组310的数据字段318中。客户机IP地址320是以来源-标识服务器118被配置用来识别(如)数字或名字的方式格式化的客户机110的IP地址。格式化方式包括识别模式322和校验和324,还可以包括其它字段(未示出)。认别模式322帮助来源-标识服务器118将带标记分组310识别为是带标记数据流的一部分的分组。校验和324帮助来源-标识服务器118验证客户机标识信息未被破坏。
在另一实施例中,可以用加密签名来代替或补充识别模式322和校验和324,加密签名允许来源-标识服务器118识别带标记分组310所属数据流已经被加标记,从而预防破坏,并进一步验证客户机标识信息是由授权过的或可信的实体插入的。在这个实施例中,可以使用公共密钥加密方法和数字签名技术。
在另一实施例中,忽略了识别模式322和校验和324之一或全部。例如,当认为破坏机率非常低时,可以忽略校验和324。当来源-标识服务器118能够确定数据流已经被加上标记以包括客户机标识信息时可以忽略识别模式322。如果识别模式322和校验和324都被忽略,来源-标识服务器118可以被配置为根据智能中间设备114的IP地址识别智能中间设备114,并假定来自智能中间设备114的数据流总是包括客户机标识信息。来源-标识服务器118还可以被配置为在与来自其它设备的未加标记的数据流不同的TCP/IP端口上从智能中间设备114接收带标记数据流。
回到图3A,客户机IP地址320和它用于识别模式322和校验和324的相关数据字段被示为带标记数据流的第一数据携带带标记分组310中的初始数据。认识到TCP/IP分解(fragmentation)和分组化的标准过程可能导致客户机标识信息被分散到带标记数据流的前面若干个数据携带分组上,尤其是在客户机标识信息超出单个分组的容量时。例如,带标记分组310可以通过网络116中的IP路由器传递,该IP路由器可以将带标记分组310分解成两个更小的分组,每个包含带标记分组310中的客户机标识信息的一部分。或者,数据字段318可以包括客户机标识信息和一部分初始消息数据,取决于带标记分组310的大小。
当包含客户机标识信息的服务器消息被根据图3A分组化以产生带标记数据流时,来源-标识服务器118为成功获取客户机标识信息不必需对它的操作系统内核的改动。标记器212能够简单地将客户机标识信息直接写入数据流作为初始消息数据之前的附加消息数据。初始消息数据的内容和格式无关紧要,因而其可以被加密。
图3B是依照本发明的带标记分组1310的另一实施例的图。在这个实施例中,标记器212修改分组化的服务器消息的协议报头以产生带标记数据流。带标记分组1310包括但不限于数据链路报头1312、包括IP选项字段1330的IP报头1313、包括TCP选项字段1332的TCP报头1316和数据字段1318。在这个实施例中,客户机110的标识信息被插入IP选项字段1330或TCP选项字段1332。在这个实施例中,来源-标识服务器118的操作系统内核必须配置为从合适的报头选项字段标识和去除客户机标识信息。在这个实施例中,插入到IP选项字段1330或TCP选项字段1332的客户机标识信息可以如图3A所示被格式化为带识别模式和校验和的客户机IP地址。在其它实施例中,可以忽略识别模式和校验和之一或全部,可以使用加密签名或其它辅助数据帮助来源-标识服务器118稳定安全地获取所提供的客户机标识信息。
在带标记分组1310的另一实施例中,可以将客户机标识信息和相关辅助数据的一些或全部编码到IP报头1313中的固定字段而不是IP选项字段1330中,或者编码到TCP报头1316中的固定字段而不是TCP选项字段1332中。例如,可以使用TCP″urgent″标志(TCP报头1316中的一位)和″urgent″指针(TCP报头1316中的另外16位)表示这个分组属于一包括客户机标识信息的带标记数据流,并且编码客户机标识信息或辅助数据的某部分。当来源-标识服务器118不可能错解它们且不正确地处理带标记数据流时可以用这种方式使用分组报头中的固定字段。例如,web服务器通常不会被设计为期望或处理TCP紧急数据(urgent),因此使用urgent位和urgent指针用于非标准目的(例如编码客户机标识信息)在不同web环境中是可以接受的。
尽管只示出了一个带标记分组1310,但可以根据IP选项字段1330、TCP选项字段1332的大小、智能中间设备114和网络116之间的连接或者网络116中的结点和连接的能力将客户机标识信息分解到若干带标记分组上。
图4是依照本发明的图1A的来源-标识服务器118的一个实施例的结构图。来源-标识服务器118包括但不限于应用程序412、拦截器414和操作系统(OS)内核416。尽管图4将应用程序412和拦截器414示为完全和OS内核416分开,但在其它实施例中应用程序412和/或拦截器414可以被部分和OS内核416集成在一起。然而,应用程序412通常不是内核组件,但通过系统调用和中断等机制利用内核服务。应用程序412被配置用来向智能中间设备114等远程设备提供内容。应用程序412的示范实现包括HTTP程序、SMTP应用程序或FTP应用程序。拦截器414被配置用来拦截从智能中间设备114接收到的消息并确定任意数据流是否已被标记器212处理过以包括客户机标识信息。在来源-标识服务器118的这个实施例中,拦截器414被配置用来识别由标记器212根据图3A中的实施例产生的带标记数据流。当拦截器414识别出带标记数据流时,它从带标记数据流获取客户机标识信息。拦截器414然后将客户机标识信息提供到应用程序412或为应用程序412提供查询客户机标识信息的方法。拦截器414还重新构造出在由标记器212处理之前数据流的初始消息数据。例如,拦截器414重新构造出在标记器212处理之前代理210准备的初始请求消息。拦截器然后将重新构造出的初始消息数据发送给应用程序412。
在一个实施例中,拦截器414只在来自可信来源的连接上查找带标记数据流。例如,智能中间设备114可以是来源-标识服务器118的已知代理并且是可信来源。其它网络设备(未示出)可以打开与来源-标识服务器118的连接,如果那些设备不是可信来源,拦截器414将不查看在那些连接上到来的分组。
在典型的服务器中,应用程序调用OS内核以从OS内核中的新连接队列取得下一个可用连接。例如,应用程序可以激活″accept″系统调用,它是用于向应用程序提供新连接的最常见的接口。OS内核用连接的身份标识(如套接字号)回复accept系统调用,随后应用程序可以用该连接身份标识调用其它系统调用(例如″read″)以从该连接获取数据进行处理。应用程序还可以在该连接上向远程设备(例如智能中间设备114)发送数据。
通常,当OS内核用新连接回复accept调用时,它还提供了所连接的远程设备的身份标识,例如IP地址。或者,应用程序可以使用明确的查询系统调用向OS内核请求该连接的属性,例如所连接的远程设备的身份标识。像accept这样的系统调用或者查询连接属性的系统调用通常包括OS内核应该写入所连接的远程设备的标识信息的缓冲区的地址。通常,OS内核响应该调用并将所连接的远程设备的标识信息写入该缓冲区。对OS内核的调用的特定格式取决于OS内核的特定实现。accept调用尽管被广泛使用,但只是应用程序可以用来访问并利用网络连接的接口的一个例子。
在来源-标识服务器118中,应用程序412调用OS内核416以从OS内核416中的新连接队列取得下一个可用的连接。拦截器414拦截到这个调用,并将它自己的调用发送到内核416以获取下一可用连接。如果有任何可用的连接,OS内核416用一个这样的连接的连接身份标识以及所连接的远程设备的IP地址响应。拦截器414还可以有一个内部存储的″pending″连接队列,该队列记录了连接身份标识和所连接的远程设备的IP地址。未决(pending)的连接是先前由OS内核416传递给拦截器414但还没有报告给应用程序412的连接。对于新报告的新连接或未决的连接,拦截器414对OS内核416进行另一系统调用以从该新连接读取到来的数据。拦截器414查看该连接上到来的数据以确定该数据流是否已经用客户机标识信息加上了标记。在这个实施例中,拦截器414使用″PEEK″形式的read系统调用,该系统调用检查内核缓冲区中连接上的未决数据但不会将该数据从内核缓冲区去除。
如果拦截器414确定该数据流没有被用客户机标识信息加上标记,例如没有在数据中的正确位置上看到正确的识别模式,拦截器414将新连接身份标识和所连接的远程设备的IP地址转发到应用程序412,就象从OS内核416接收到它们一样。如果拦截器414在到来的数据中识别出适当的识别模式或其它标记并看到编码的客户机标识信息完整地位于到来的数据中,拦截器414再次用read系统调用的非-PEEK版本重新从到来的数据读取客户机标识信息以使客户机标识信息被从OS内核416的未决数据队列去除。拦截器414然后将新连接身份标识转发到应用程序412,并用获取的客户机标识信息而不是由OS内核416报告的所连接的远程设备的地址来填充应用程序412所提供的缓冲区。拦截器414还在内部存储装置中存储了连接身份标识和获取的客户机标识信息之间的关联,并且将这个记录标记为非-未决的。
如果在拦截器414从OS内核416接收到一个新连接时,在OS内核416的缓冲区中对这个连接没有足够的未决数据来确定这个数据流是否已经被加上标记,或者虽然该数据流已经被加上标记但客户机标识信息不完整,则拦截器414不返回该新连接身份标识给应用程序412,而是将该连接身份标识以及所连接的远程设备的地址记录在内部存储装置中,并且标记该记录为未决的。
应用程序412还可以调用OS内核416以请求在该连接另一端的远程设备的身份标识。这可以是像″accept″中对下一可用连接的初始调用的一部分,或者是一个单独的调用,取决于OS内核416的实现。拦截器414截住该调用,该调用包括用于远程设备身份标识的缓冲区地址。拦截器414在它的内部存储装置中查找匹配所提供的连接身份标识和相关客户机标识信息的记录。如果找到这样的记录,拦截器414用所存储的获取到的客户机标识信息填充该缓冲区并将这返回给应用程序412。如果没有找到这样的记录,拦截器414将该调用转发到OS内核416以获得远程设备的身份标识,并且OS内核通过将智能中间设备114的身份标识(identity)写入该缓冲区而响应。在这个实施例中,拦截器414透明地将客户机标识信息提供给应用程序412,因为应用程序412不知道它接收到的对它的调用的响应已经被拦截器修改过。
拦截器414的其它实施例可以包括不同的实现细节。根据OS系统调用API的细节以及需要完全透明的支持的程度,可能有很多系统调用都必须被拦截器414截住。例如,如果拦截器414被配置用来缓冲它接收到的不带标记的数据供应用程序412以后取用,拦截器414可以使用非-PEEK系统读取未决数据。拦截器414的其它实施例可能还需要同样被拦截的与数据读取有关的系统调用,这样拦截器414就有机会在必要的时从内部存储装置返回数据。
应用程序412可以接着使用缓冲区中的客户机110的标识信息用于任何目的。例如,应用程序412可以使用客户机110的身份标识确定对请求的响应中的适当内容,或者可以确定客户机110是否被授权接收所请求的内容。应用程序412还可以将客户机110的身份标识添加到唯一访问者的日志中。
在一个实施例中,拦截器414是在应用程序412的启动序列中预先装载的共享库,使得所选择的系统调用被该库代码所拦截。可能需要配置拦截器414的特定实现以和应用程序412(如HTTP web服务器或SMTP邮件服务器)和OS内核416(如Windows或Linux)的各个特定实现对接。例如,OS内核416的各个特定实现适应唯一格式化的调用。配置拦截器414以和应用程序412和OS内核416的特定实现对接的技术在本领域中是众所周知的。
在来源-标识服务器118的该实施例中,不需要对应用程序412或OS内核416有任何变化以将客户机110的身份标识提供给应用程序412。这样能够轻松配置来源-标识服务器118以包括拦截器414。另外,来源-标识服务器118接收到的加密安全数据不受拦截器414的功能影响。在另一实施例中,可以通过对应用程序412的代码的直接修改实现拦截器414的功能。
为了处理如图3B中的带标记分组1310这样的带标记分组(其中客户机标识信息被嵌入在了低级别分组报头中),来源-标识服务器118的实施例通常需要一些内核-级的访问。拦截器414的一种可选实施例是被配置用来从应用程序412直接接收系统调用然后或将初始系统调用转发给OS内核416或如上所述修改它们的可装载内核模块。在另一实施例中,OS内核416被直接修改从而更新系统调用的初始实现以具有拦截器414的功能。
图5是依照本发明的一个实施例用于获取客户机标识信息的方法步骤的流程图。在步骤512中,来源-标识服务器118建立与智能中间设备114的连接。在步骤514,来源-标识服务器118开始在该连接上接收数据流的分组。在步骤516,拦截器414查看前几个分组中的数据以确定这些分组是否是带标记分组。如果拦截器414没有识别出任何带标记分组,该方法继续到步骤518,在那里拦截器414不做任何修改地将来自该连接上的分组的所有数据传递给应用程序412。
如果拦截器414识别出至少一个带标记分组,在步骤520中拦截器414将客户机标识信息从带标记分组去除直到所有客户机标识信息都被读取为止。在步骤522中,拦截器414将来自该连接的分组的剩余数据传递给应用程序412。
上面已经参考具体的实施例阐述了本发明。但是,显然在不偏离所附权利要求中阐明的本发明的广义精神和范围的前提下可以对其进行各种修改和变化。因此,前面的说明和图将被看作是说明性而非限制性目的。
Claims (26)
1.一种用于向服务器提供客户机标识信息的系统,包括:
具有输入和输出的智能中间设备,
该智能中间设备的输入能够接收客户机消息,其中该客户机消息包括客户机标识信息,
该智能中间设备的输出能够发送服务器消息,
该智能中间设备包括标记器,该标记器能够接收客户机标识信息并产生能够被包括在服务器消息中的带标记的数据流,该带标记的数据流包括可获取的客户机标识信息;和
拦截器,被配置成用来从服务器消息中的带标记的数据流获取客户机标识信息并将该客户机标识信息提供给服务器上的应用程序;
其中,该拦截器通过下列步骤将客户机标识信息提供给应用程序:
拦截从应用程序到该服务器的操作系统的调用,该调用包括对服务器消息的来源的身份标识的请求,以及
用包括客户机标识信息而不是服务器消息来源的身份标识的响应来回复所拦截的调用。
2.权利要求1的系统,其中,该标记器被配置成用来将客户机标识信息插入到至少一个带标记的分组的数据字段中。
3.权利要求1的系统,其中,该标记器被配置成用来将客户机标识信息连接到消息数据以产生带标记的数据流。
4.权利要求1的系统,其中,该标记器被配置成用来将客户机标识信息插入到至少一个带标记的分组的协议报头中。
5.权利要求4的系统,其中,该标记器还被配置成用来将客户机标识信息插入到至少一个带标记的分组的TCP报头中。
6.权利要求4的系统,其中,该标记器还被配置成用来将客户机标识信息插入到至少一个带标记的分组的IP报头中。
7.权利要求1的系统,其中,该客户机标识信息包括客户机IP地址。
8.权利要求1的系统,其中,该拦截器还被配置成用来将服务器消息中的消息数据提供给应用程序。
9.一种来源-标识服务器,包括:
操作系统,配置成用来接收来自智能中间设备的服务器消息,该服务器消息包括至少一个包含客户标识信息的带标记的分组;
应用程序,配置成用来接收来自服务器消息的数据;以及
拦截器,配置成用来从带标记的分组获取客户机标识信息;
该拦截器还被配置成用来:
拦截从应用程序到操作系统的调用,该调用请求服务器消息的来源的标识信息,以及
用包括代替服务器消息来源的标识信息的客户机标识信息的响应来回复所拦截的调用。
10.权利要求9的来源-标识服务器,其中,该应用程序是网络服务器。
11.权利要求9的来源-标识服务器,其中,该应用程序是电子邮件服务器。
12.权利要求9的来源-标识服务器,其中,该客户机标识信息包括客户机IP地址。
13.权利要求9的来源-标识服务器,其中,来自智能中间设备的服务器消息包括加密安全数据。
14.权利要求9的来源-标识服务器,其中,所述客户机标识信息包含在数据字段中。
15.权利要求9的来源-标识服务器,其中,所述客户机标识信息包含在协议报头中。
16.权利要求15的来源-标识服务器,其中,所述客户机标识信息包含在TCP报头中。
17.权利要求15的来源-标识服务器,其中,所述客户机标识信息包含在IP报头中。
18.权利要求9的来源-标识服务器,其中,该拦截器安装在应用程序处理环境中以覆盖至少一个标准库函数。
19.权利要求9的来源-标识服务器,其中,该拦截器被安装作为操作系统中的可装载模块。
20.一种用于向服务器提供客户机标识信息的方法,包括:
创建至少一个包含客户机标识信息的带标记的分组作为要发送到服务器的消息的分组;
将该消息发送到服务器;
识别出该消息中的至少一个带标记的分组;
从该至少一个带标记的分组来获取该客户机标识信息;以及
将该客户机标识信息提供给服务器上的应用程序;
其中,将客户机标识信息提供给应用程序的步骤包括:
拦截从服务器的应用程序到操作系统的调用,该调用包括对该消息的来源的身份标识的请求,以及
用包括该客户机标识信息而不是该消息来源的身份标识的响应来回复所拦截的调用。
21.权利要求20的方法,其中,创建至少一个带标记的分组的步骤包括将客户机标识信息插入到该至少一个带标记的分组的数据字段中。
22.权利要求20的方法,其中,创建至少一个带标记的分组的步骤包括将客户机标识信息连接到消息数据并将所得到的数据分组,以使客户机标识信息被插入到该至少一个带标记的分组的数据字段中。
23.权利要求20的方法,其中,创建至少一个带标记的分组的步骤包括将客户机标识信息插入到该至少一个带标记的分组的协议报头中。
24.权利要求23的方法,其中,创建至少一个带标记的分组的步骤包括将客户机标识信息插入到该至少一个带标记的分组的TCP报头中。
25.权利要求23的方法,其中,创建至少一个带标记的分组的步骤包括将客户机标识信息插入到该至少一个带标记分组的IP报头中。
26.权利要求20的方法,还包括将初始消息数据提供给应用程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/984,348 | 2004-11-09 | ||
US10/984,348 US20060098645A1 (en) | 2004-11-09 | 2004-11-09 | System and method for providing client identifying information to a server |
PCT/US2005/040719 WO2006053117A2 (en) | 2004-11-09 | 2005-11-09 | System and method for providing client identifying information to a server |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101111832A CN101111832A (zh) | 2008-01-23 |
CN101111832B true CN101111832B (zh) | 2010-09-29 |
Family
ID=36316241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800383775A Expired - Fee Related CN101111832B (zh) | 2004-11-09 | 2005-11-09 | 用于向服务器提供客户机标识信息的系统和方法 |
Country Status (11)
Country | Link |
---|---|
US (1) | US20060098645A1 (zh) |
EP (1) | EP1875360A4 (zh) |
JP (1) | JP5031574B2 (zh) |
KR (1) | KR20080002741A (zh) |
CN (1) | CN101111832B (zh) |
AU (2) | AU2005304469A1 (zh) |
BR (1) | BRPI0517638A (zh) |
CA (1) | CA2587500A1 (zh) |
SG (1) | SG159534A1 (zh) |
WO (1) | WO2006053117A2 (zh) |
ZA (1) | ZA200704419B (zh) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8145908B1 (en) * | 2004-10-29 | 2012-03-27 | Akamai Technologies, Inc. | Web content defacement protection system |
US8135741B2 (en) * | 2005-09-20 | 2012-03-13 | Microsoft Corporation | Modifying service provider context information to facilitate locating interceptor context information |
US9189640B2 (en) * | 2005-10-31 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for re-provisioning a server of a data center |
US7675854B2 (en) | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US8447802B2 (en) | 2006-03-08 | 2013-05-21 | Riverbed Technology, Inc. | Address manipulation to provide for the use of network tools even when transaction acceleration is in use over a network |
US8312507B2 (en) | 2006-10-17 | 2012-11-13 | A10 Networks, Inc. | System and method to apply network traffic policy to an application session |
US8584199B1 (en) | 2006-10-17 | 2013-11-12 | A10 Networks, Inc. | System and method to apply a packet routing policy to an application session |
US8553554B2 (en) * | 2008-05-16 | 2013-10-08 | Alcatel Lucent | Method and apparatus for providing congestion control in radio access networks |
US20090296613A1 (en) * | 2008-06-03 | 2009-12-03 | Colin Kahn | Method and apparatus for providing quality-of-service in radio access networks |
US8027255B2 (en) * | 2008-09-30 | 2011-09-27 | Alcatel Lucent | Method and apparatus for prioritizing packets for use in managing packets in radio access networks |
US8503432B2 (en) * | 2008-09-30 | 2013-08-06 | Alcatel Lucent | Method and apparatus for signaling proprietary information between network elements of a core network in a wireless communication network |
US8615655B2 (en) * | 2009-01-22 | 2013-12-24 | Check Point Software Technologies, Ltd. | Methods and devices for packet tagging using IP indexing via dynamic-length prefix code |
US9553907B2 (en) * | 2009-07-14 | 2017-01-24 | Saguna Networks Ltd. | Methods circuits devices systems and associated computer executable code for conveying information between network elements over an open dataflow |
US9960967B2 (en) | 2009-10-21 | 2018-05-01 | A10 Networks, Inc. | Determining an application delivery server based on geo-location information |
US8973125B2 (en) | 2010-05-28 | 2015-03-03 | Alcatel Lucent | Application layer authentication in packet networks |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
US9609052B2 (en) | 2010-12-02 | 2017-03-28 | A10 Networks, Inc. | Distributing application traffic to servers based on dynamic service response time |
US20120207041A1 (en) * | 2011-02-13 | 2012-08-16 | Openwave Systems Inc. | System and method for tagging client/network information in headers of data packets |
US20130093776A1 (en) * | 2011-10-14 | 2013-04-18 | Microsoft Corporation | Delivering a Single End User Experience to a Client from Multiple Servers |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
US9386088B2 (en) | 2011-11-29 | 2016-07-05 | A10 Networks, Inc. | Accelerating service processing using fast path TCP |
US9094364B2 (en) | 2011-12-23 | 2015-07-28 | A10 Networks, Inc. | Methods to manage services over a service gateway |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US9118618B2 (en) | 2012-03-29 | 2015-08-25 | A10 Networks, Inc. | Hardware-based packet editor |
US8782221B2 (en) | 2012-07-05 | 2014-07-15 | A10 Networks, Inc. | Method to allocate buffer for TCP proxy session based on dynamic network conditions |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
US9106561B2 (en) | 2012-12-06 | 2015-08-11 | A10 Networks, Inc. | Configuration of a virtual service network |
CN108027805B (zh) | 2012-09-25 | 2021-12-21 | A10网络股份有限公司 | 数据网络中的负载分发 |
US9843484B2 (en) | 2012-09-25 | 2017-12-12 | A10 Networks, Inc. | Graceful scaling in software driven networks |
US10002141B2 (en) | 2012-09-25 | 2018-06-19 | A10 Networks, Inc. | Distributed database in software driven networks |
US9338225B2 (en) | 2012-12-06 | 2016-05-10 | A10 Networks, Inc. | Forwarding policies on a virtual service network |
US9531846B2 (en) | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US9900252B2 (en) | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
US10164989B2 (en) | 2013-03-15 | 2018-12-25 | Nominum, Inc. | Distinguishing human-driven DNS queries from machine-to-machine DNS queries |
US9992107B2 (en) | 2013-03-15 | 2018-06-05 | A10 Networks, Inc. | Processing data packets using a policy based network path |
US10027761B2 (en) | 2013-05-03 | 2018-07-17 | A10 Networks, Inc. | Facilitating a secure 3 party network session by a network device |
US10038693B2 (en) | 2013-05-03 | 2018-07-31 | A10 Networks, Inc. | Facilitating secure network traffic by an application delivery controller |
US10230770B2 (en) | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
US9467461B2 (en) | 2013-12-21 | 2016-10-11 | Akamai Technologies Inc. | Countering security threats with the domain name system |
US9942152B2 (en) | 2014-03-25 | 2018-04-10 | A10 Networks, Inc. | Forwarding data packets using a service-based forwarding policy |
US9942162B2 (en) | 2014-03-31 | 2018-04-10 | A10 Networks, Inc. | Active application response delay time |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US9992229B2 (en) | 2014-06-03 | 2018-06-05 | A10 Networks, Inc. | Programming a data network device using user defined scripts with licenses |
US9986061B2 (en) | 2014-06-03 | 2018-05-29 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
US10129122B2 (en) | 2014-06-03 | 2018-11-13 | A10 Networks, Inc. | User defined objects for network devices |
US10268467B2 (en) | 2014-11-11 | 2019-04-23 | A10 Networks, Inc. | Policy-driven management of application traffic for providing services to cloud-based applications |
US10693724B1 (en) * | 2015-02-25 | 2020-06-23 | Amazon Technologies, Inc. | Context-sensitive techniques for optimizing network connectivity |
US20170032004A1 (en) * | 2015-07-29 | 2017-02-02 | Sap Se | Core data services based cross-system analytics |
US10581976B2 (en) | 2015-08-12 | 2020-03-03 | A10 Networks, Inc. | Transmission control of protocol state exchange for dynamic stateful service insertion |
US10243791B2 (en) | 2015-08-13 | 2019-03-26 | A10 Networks, Inc. | Automated adjustment of subscriber policies |
US10681001B2 (en) | 2018-03-29 | 2020-06-09 | Akamai Technologies, Inc. | High precision mapping with intermediary DNS filtering |
US10834138B2 (en) | 2018-08-13 | 2020-11-10 | Akamai Technologies, Inc. | Device discovery for cloud-based network security gateways |
US10951589B2 (en) | 2018-12-06 | 2021-03-16 | Akamai Technologies, Inc. | Proxy auto-configuration for directing client traffic to a cloud proxy |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5566170A (en) * | 1994-12-29 | 1996-10-15 | Storage Technology Corporation | Method and apparatus for accelerated packet forwarding |
CN1330827A (zh) * | 1998-10-13 | 2002-01-09 | 诺基亚移动电话有限公司 | 访问服务器计算机 |
CN1422468A (zh) * | 2000-02-07 | 2003-06-04 | 内特里公司 | 用于高性能传递万维网内容的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748420B1 (en) * | 1999-11-23 | 2004-06-08 | Cisco Technology, Inc. | Methods and apparatus for providing shared access to an application |
US6510464B1 (en) * | 1999-12-14 | 2003-01-21 | Verizon Corporate Services Group Inc. | Secure gateway having routing feature |
WO2002067545A2 (en) * | 2001-02-17 | 2002-08-29 | Inktomi Corporation | Content based billing |
US7266609B2 (en) * | 2001-04-30 | 2007-09-04 | Aol Llc | Generating multiple data streams from a single data source |
-
2004
- 2004-11-09 US US10/984,348 patent/US20060098645A1/en not_active Abandoned
-
2005
- 2005-11-09 KR KR1020077013009A patent/KR20080002741A/ko not_active Application Discontinuation
- 2005-11-09 WO PCT/US2005/040719 patent/WO2006053117A2/en active Application Filing
- 2005-11-09 JP JP2007540207A patent/JP5031574B2/ja not_active Expired - Fee Related
- 2005-11-09 AU AU2005304469A patent/AU2005304469A1/en not_active Abandoned
- 2005-11-09 SG SG201000888-6A patent/SG159534A1/en unknown
- 2005-11-09 BR BRPI0517638-7A patent/BRPI0517638A/pt not_active IP Right Cessation
- 2005-11-09 EP EP05848833A patent/EP1875360A4/en not_active Withdrawn
- 2005-11-09 CA CA002587500A patent/CA2587500A1/en not_active Abandoned
- 2005-11-09 ZA ZA200704419A patent/ZA200704419B/xx unknown
- 2005-11-09 CN CN2005800383775A patent/CN101111832B/zh not_active Expired - Fee Related
-
2011
- 2011-02-14 AU AU2011200604A patent/AU2011200604A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5566170A (en) * | 1994-12-29 | 1996-10-15 | Storage Technology Corporation | Method and apparatus for accelerated packet forwarding |
CN1330827A (zh) * | 1998-10-13 | 2002-01-09 | 诺基亚移动电话有限公司 | 访问服务器计算机 |
CN1422468A (zh) * | 2000-02-07 | 2003-06-04 | 内特里公司 | 用于高性能传递万维网内容的方法 |
Non-Patent Citations (2)
Title |
---|
CN 1330827 A,全文. |
全文. |
Also Published As
Publication number | Publication date |
---|---|
WO2006053117A2 (en) | 2006-05-18 |
JP5031574B2 (ja) | 2012-09-19 |
BRPI0517638A (pt) | 2008-10-14 |
EP1875360A4 (en) | 2011-10-12 |
SG159534A1 (en) | 2010-03-30 |
CA2587500A1 (en) | 2006-05-18 |
ZA200704419B (en) | 2010-03-31 |
AU2005304469A1 (en) | 2006-05-18 |
EP1875360A2 (en) | 2008-01-09 |
WO2006053117A3 (en) | 2007-08-02 |
CN101111832A (zh) | 2008-01-23 |
JP2008521076A (ja) | 2008-06-19 |
AU2011200604A1 (en) | 2011-03-03 |
KR20080002741A (ko) | 2008-01-04 |
US20060098645A1 (en) | 2006-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101111832B (zh) | 用于向服务器提供客户机标识信息的系统和方法 | |
US7209953B2 (en) | E-mail system using attachment identifier generated at issuer device for retrieving appropriate file version from e-mail's issuer | |
US7386733B2 (en) | Alert transmission apparatus and method for policy-based intrusion detection and response | |
US5826269A (en) | Electronic mail interface for a network server | |
US7650500B2 (en) | Encryption communication system | |
CN101371237B (zh) | 在网络元件中代表应用执行消息有效载荷处理功能 | |
US8739182B2 (en) | Data transfer across a network | |
US6940870B2 (en) | System and method for communicating data | |
US8943088B2 (en) | System and method for processing database queries | |
US6717943B1 (en) | System and method for routing and processing data packets | |
KR20010062065A (ko) | 순간 메시징을 위한 프로토콜 | |
CN101854351A (zh) | 用于基于标准的消息传输的系统和/或方法 | |
CN111240862A (zh) | 一种通用接口平台以及数据转换方法 | |
CN109548022B (zh) | 一种移动终端用户远程接入本地网络的方法 | |
CN100517355C (zh) | Web服务中的保密数据通信方法 | |
CN113056759A (zh) | 供网络设备用来获得分布式账本技术网络的状态的可信状态表示的方法和系统 | |
US20200351102A1 (en) | Secure data transmission method | |
KR20180028648A (ko) | 단방향 데이터 송신 장치, 단방향 데이터 수신 장치 및 이를 이용한 단방향 데이터 전송 방법 | |
US8060568B2 (en) | Real time messaging framework hub to intercept and retransmit messages for a messaging facility | |
CN107508739B (zh) | 一种通过vpn隧道传输数据的鉴权方法 | |
CN113114643B (zh) | 一种运维审计系统的运维接入方法及系统 | |
CN104753774A (zh) | 一种分布式企业综合接入网关 | |
US20050004975A1 (en) | Adaptive connection for data transmission | |
New et al. | RFC3195: Reliable Delivery for syslog | |
CN115550322B (zh) | 基于网络安全协议的用户注册方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100929 Termination date: 20211109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |