CN104811435A - 用于隐藏使用中继穿越网络地址转换连接的方法和系统 - Google Patents

用于隐藏使用中继穿越网络地址转换连接的方法和系统 Download PDF

Info

Publication number
CN104811435A
CN104811435A CN201510039254.9A CN201510039254A CN104811435A CN 104811435 A CN104811435 A CN 104811435A CN 201510039254 A CN201510039254 A CN 201510039254A CN 104811435 A CN104811435 A CN 104811435A
Authority
CN
China
Prior art keywords
turn
server
client
relay transmission
address
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.)
Granted
Application number
CN201510039254.9A
Other languages
English (en)
Other versions
CN104811435B (zh
Inventor
A·B·约翰斯顿
J·H·约亚库姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avaya Technology LLC
Original Assignee
Avaya Technology LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Avaya Technology LLC filed Critical Avaya Technology LLC
Publication of CN104811435A publication Critical patent/CN104811435A/zh
Application granted granted Critical
Publication of CN104811435B publication Critical patent/CN104811435B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2539Hiding addresses; Keeping addresses anonymous
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本文中公开了通过隐藏使用中继穿越网络地址转换(TURN)连接来增强隐私、以及相关的方法、系统和计算机可读介质。在一个实施例中,方法包括由TURN客户端获得一个或多个候选地址,所述一个或多个候选地址包括TURN服务器的TURN中继传输地址。该方法进一步包括:基于候选地址产生伪装的候选列表,在该伪装的候选列表中,TURN中继传输地址被隐藏;产生包括伪装的候选列表的连接设置消息;以及将连接设置消息发送到在计算设备上运行的TURN对等端。在另一实施例中,方法包括由TURN服务器从要连接到TURN对等端的TURN客户端接收对于提供第一TURN服务的请求。该方法进一步包括:对于TURN对等端掩饰TURN服务器的存在,以及基于所述掩饰中继通信。

Description

用于隐藏使用中继穿越网络地址转换连接的方法和系统
技术领域
本公开的技术一般涉及使用中继穿越网络地址转换(TURN)连接,并且特别地,涉及增强TURN客户端与TURN服务器之间的TURN连接的隐私。
背景技术
位于网络地址转换(NAT)设备或系统后面的主机(例如,连接到网络的计算设备)可能希望与其它主机通信,该其它主机中的一些也可能位于NAT的后面。为了做到这一点,主机可以使用“打孔”技术,尝试发现通过介入NAT和/或路由器将一个计算设备连接到另一个、但是不穿越任何中继的直接通信路径。然而,如果一个或两个主机位于被配置有与直接通信路径不兼容的映射行为的NAT的后面,则打孔技术可能失败。作为非限制性示例,例如,被配置有“地址依赖映射”或“地址和端口依赖映射”的映射行为的NAT可能阻碍主机之间的直接通信路径。
当不能找到直接通信路径时,可能必须利用中间主机来在两个主机之间中继通信。互联网工程任务组(IETF)请求注解(RFC)5766(在例如http://tools.ietf.org/search/rfc5766可在线获得)中所描述的用于中继通信的一种协议被称之为使用中继穿越NAT(TURN)。该TURN协议允许主机(在本文中称为“TURN客户端”)请求TURN服务器充当用于中继到其它主机(称为“TURN对等端(peer)”)和来自该其它主机的通信的中间主机。为了实现这一点,TURN客户端从TURN服务器获得TURN中继传输地址。该TURN中继传输地址包括网络通信通过其可以在TURN客户端与TURN对等端之间被 传递的TURN服务器上的互联网协议(IP)地址和端口。例如,TURN对等端发送到TURN中继传输地址的通信被TURN服务器发送到TURN客户端。TURN客户端发送到TURN中继传输地址的通信通过使用TURN中继传输地址作为源地址被TURN服务器发送到TURN对等端。
然而,TURN服务器的使用可能引起关于TURN客户端的隐私的担心。尽管TURN服务器的使用隐蔽了TURN客户端连接的网络的拓扑,但是可能潜在地损害TURN客户端的隐私的信息可能在TURN连接的设置期间和/或因TURN客户端与TURN服务器之间的TURN连接的特性泄漏。例如,TURN对等端可以能够基于在连接设置期间从TURN客户端接收的候选地址来确定TURN服务器正被使用,并因此确定TURN客户端可能正试图隐蔽或混淆(obfuscate)其地址。类似地,如果TURN对等端可检测到TURN服务器被用于多个通信会话,则TURN对等端可以能够确定该多个通信会话与同一个TURN客户端相关联。
发明内容
具体实施方式中所公开的实施例提供了通过隐藏使用中继穿越网络地址转换(TURN)连接来增强隐私。还公开了相关的方法、系统和计算机可读介质。在这方面,在一个实施例中,提供了用于隐藏TURN连接的方法。所述方法包括由在第一计算设备上运行的TURN客户端获得与所述TURN客户端相关联的一个或多个候选地址,所述一个或多个候选地址包括TURN服务器提供的TURN中继传输地址。所述方法进一步包括基于所述一个或多个候选地址产生伪装的候选列表,在所述伪装的候选列表中,所述TURN中继传输地址被隐藏。所述方法还包括产生连接设置消息以及将所述连接设置消息发送到第二计算设备,所述连接设置消息包括所述伪装的候选列表并且被定向到在所述第二计算设备上运行的TURN对等端。
在另一实施例中,提供了用于隐藏TURN连接的方法。所述方法 包括由在计算设备上运行的TURN服务器从TURN客户端接收对于提供第一TURN服务的请求以连接到TURN对等端。所述方法进一步包括由所述TURN服务器对于所述TURN对等端掩饰所述TURN服务器的存在。所述方法还包括由所述TURN服务器基于所述掩饰在所述TURN客户端与所述TURN对等端之间中继通信。
在另一实施例中,提供了用于隐藏TURN连接的系统。所述系统包括在第一计算设备上运行的TURN客户端。所述TURN客户端通信地耦合到TURN服务器,并且被配置为获得与所述TURN客户端相关联的一个或多个候选地址,所述一个或多个候选地址包括所述TURN服务器提供的TURN中继传输地址。所述TURN客户端被进一步配置为基于所述一个或多个候选地址产生伪装的候选列表,在所述伪装的候选列表中,所述TURN中继传输地址被隐藏。所述TURN客户端还被配置为产生连接设置消息并且将所述连接设置消息发送到第二计算设备,所述连接设置消息包括所述伪装的候选列表并且被定向到TURN对等端。
在另一实施例中,提供了用于隐藏TURN连接的系统。所述系统包括在第一计算设备上运行的TURN服务器。所述TURN服务器通信地耦合到TURN客户端,并且被配置为从所述TURN客户端接收对于提供第一TURN服务的请求以连接到TURN对等端。所述TURN服务器被进一步配置为对于所述TURN对等端掩饰所述TURN服务器的存在。所述TURN服务器还被配置为基于所述掩饰在所述TURN客户端与所述TURN对等端之间中继通信。
在另一实施例中,提供了具有存储在其上的计算机可执行指令的非暂态计算机可读介质,所述计算机可执行指令使处理器实现用于隐藏TURN连接的方法。所述计算机可执行指令所实现的方法包括由在第一计算设备上运行的TURN客户端获得与所述TURN客户端相关联的一个或多个候选地址,所述一个或多个候选地址包括TURN服务器提供的TURN中继传输地址。所述计算机可执行指令所实现的方法进一步包括基于所述一个或多个候选地址产生伪装的候选列表,在所 述伪装的候选列表中,所述TURN中继传输地址被隐藏。所述计算机可执行指令所实现的方法还包括产生连接设置消息以及将所述连接设置消息发送到第二计算设备,所述连接设置消息包括所述伪装的候选列表并且被定向到在所述第二计算设备上运行的TURN对等端。
在另一实施例中,提供了具有存储在其上的计算机可执行指令的非暂态计算机可读介质,所述计算机可执行指令使处理器实现用于隐藏TURN连接的方法。所述计算机可执行指令所实现的方法包括由在计算设备上运行的TURN服务器从TURN客户端接收对于提供第一TURN服务的请求以连接到TURN对等端。所述计算机可执行指令所实现的方法进一步包括由所述TURN服务器对于所述TURN对等端掩饰所述TURN服务器的存在。所述计算机可执行指令所实现的方法还包括由所述TURN服务器基于所述掩饰在所述TURN客户端与所述TURN对等端之间中继通信。
附图说明
合并在本说明书中并且形成本说明书的一部分的附图示出了本公开的数个方面,并且与描述一起用于解释本公开的原理。
图1是示出用于通过隐藏TURN连接来增强隐私的包括TURN客户端和TURN服务器的交互使用中继穿越网络地址转换(TURN)系统的概念图;
图2是示出可以由图1的TURN客户端产生以混淆伪装的候选列表中的TURN中继传输地址的示例性的伪装的候选列表的示图;
图3是示出用于隐藏TURN连接的图1的TURN客户端的示例性操作的流程图;
图4是示出用于产生伪装的候选列表的图1的TURN客户端的进一步示例性操作的流程图;
图5是示出用于隐藏TURN连接的图1的TURN服务器的示例性操作的流程图;
图6是示出用于对于TURN对等端掩饰TURN服务器的存在的 图1的TURN服务器的进一步示例性操作的流程图;
图7是示出用于通过基于第一TURN中继传输地址选择第二TURN中继传输地址来隐藏随后的TURN连接的图1的TURN服务器的进一步示例性操作的流程图;和
图8是可以包括图1的TURN客户端和/或TURN服务器的示例性的基于处理器的系统的框图。
具体实施方式
现在参照附图,描述本公开的若干示例性实施例。词语“示例性”在本文中被用于意指“用作示例、实例或说明”。本文中被描述为“示例性”的任何实施例不一定要被理解为相对于其它实施例优选的或者有利的。
具体实施方式中所公开的实施例提供通过隐藏使用中继穿越网络地址转换(TURN)连接来增强隐私。还公开了相关的方法、系统和计算机可读介质。在这方面,在一个实施例中,提供了用于隐藏TURN连接的方法。该方法包括由在第一计算设备上运行的TURN客户端获得与该TURN客户端相关联的一个或多个候选地址,所述一个或多个候选地址包括TURN服务器提供的TURN中继传输地址。该方法进一步包括基于所述一个或多个候选地址产生伪装的候选列表,在该伪装的候选列表中,TURN中继传输地址被隐藏。该方法还包括产生连接设置消息并且将该连接设置消息发送到第二计算设备,该连接设置消息包括伪装的候选列表并且被定向到在第二计算设备上运行的TURN对等端。
在另一实施例中,提供了用于隐藏TURN连接的方法。该方法包括由在计算设备上运行的TURN服务器从要连接到TURN对等端的TURN客户端接收对于提供第一TURN服务的请求。该方法进一步包括由TURN服务器对于TURN对等端掩饰该TURN服务器的存在。该方法还包括由TURN服务器将第一TURN服务提供给TURN客户端。
图1示出了如本文中所公开的通过隐藏TURN连接来提供增强的隐私的示例性TURN交互系统10。特别地,示例性TURN交互系统10提供TURN客户端12和TURN服务器16,该TURN客户端12在计算设备14上运行,该TURN服务器16在计算设备18上运行。TURN服务器16可以在TURN客户端12与在计算设备22上运行的TURN对等端20之间中继通信。以这种方式,可以通过使用TURN服务器16提供的TURN服务来穿越可能阻碍TURN客户端12与TURN对等端20之间的直接通信路径的诸如网络地址转换(NAT)系统或设备(未示出)的障碍。
要理解,计算设备14、18和22可以全都位于同一个公共或私有网络内,或者可以位于单独的、通信地耦合的公共或私有网络内。图1的TURN交互系统10的一些实施例可以提供计算设备14、18和22中的每一个可以是具有网络通信能力的任何计算设备,作为非限制性示例,诸如智能电话、平板计算机、专用web装置、媒体服务器、桌面或服务器计算机、或为特定目的构建的通信设备。在一些实施例中,计算设备14、18和22的元素可以分布在多于一个的计算设备14、18和22上。
在讨论用于增强隐私的TURN服务器16和TURN客户端12的操作之前,描述传统的TURN交互系统中的通信的建立。TURN客户端12首先将对于提供TURN服务的请求24(作为非限制性示例,诸如对于TURN分配的请求)发送到TURN服务器16。响应于该请求24,TURN服务器16将TURN中继传输地址26提供给TURN客户端12。该TURN中继传输地址26是通信通过其可以在TURN客户端12与TURN对等端20之间被中继的TURN服务器16提供的互联网协议(IP)地址和端口。
TURN客户端12然后与TURN对等端20交换连接设置消息(未示出),其中,每个连接设置消息包含候选地址,通过该候选地址,TURN客户端12和TURN对等端20每一个可以被另一个到达(reach)。作为非限制性示例,每个候选地址可以包括诸如IP地址 和端口、协议、优先权重和/或候选地址类型的信息。接着,执行称之为“打孔”的处理以基于交换的候选地址确定TURN客户端12与TURN对等端20之间的最适合的通信路径。打孔技术可以基于如IETF RFC 5245(在例如http://tools.ietf.org/search/rfc5245可在线获得)中所描述的交互连接建立(ICE)方法。由于TURN连接的高带宽要求,打孔技术通常将有利于通过经由TURN服务器16的连接的TURN客户端12与TURN对等端20之间的直接连接,如果可能的话。
然而,传统的TURN交互系统的使用可能引起关于TURN客户端12的隐私的担心。尽管TURN服务器16的使用隐蔽了TURN客户端12连接的网络的拓扑,但是潜在地损害TURN客户端12的隐私的信息仍然可能在TURN连接的设置期间和/或因TURN连接的特性泄漏。例如,TURN对等端20可以能够基于在连接设置期间从TURN客户端12接收的候选地址来确定TURN服务器16正被使用,并因此确定TURN客户端12可能正试图隐蔽或混淆其地址。类似地,如果TURN对等端20可检测到TURN服务器16被用于多个通信会话,则TURN对等端20可以能够确定该多个通信会话与同一个TURN客户端12相关联。
在这方面,提供TURN客户端12和TURN服务器16以通过隐藏TURN交互系统10内的TURN连接来增强隐私。在TURN交互系统10的一些实施例中,TURN客户端12被配置为通过在提供给TURN对等端20的候选列表内掩盖TURN服务器16分配的TURN中继传输地址26来隐藏TURN连接。TURN客户端12从获得一个或多个候选地址28开始,该候选地址28与TURN客户端12相关联,并且包括TURN对等端20可以尝试通过其连接到TURN客户端12的IP地址和端口。获得所述一个或多个候选地址28可以包括:将对于提供TURN服务的请求24(作为非限制性示例,诸如对于TURN分配的请求)发送到TURN服务器16,并且从TURN服务器16接收TURN中继传输地址26。
基于所述一个或多个候选地址28,TURN客户端12然后产生包 括在发送到TURN对等端20的连接设置消息32中的伪装的候选列表30。如本文中所使用的,该“伪装的候选列表”指的是包括TURN中继传输地址26的候选地址的列表,在该列表中,TURN中继传输地址26被隐藏(即,不容易识别为TURN中继传输地址26)。在一些实施例中,TURN客户端12可以产生伪装的候选列表30以通过将TURN中继传输地址26识别为服务器反射候选地址(作为非限制性示例,与中继候选地址或主机候选地址相对)来隐藏TURN中继传输地址26。如本领域所已知的,服务器反射候选地址通常可以与NAT相关联,而中继候选地址一般可以与TURN服务器相关联,并且主机候选地址一般可以与TURN客户端相关联。通过在伪装的候选列表30中将TURN中继传输地址26识别为服务器反射候选地址,TURN客户端12可以使TURN中继传输地址26的存在不那么明显。
一些实施例可以提供TURN客户端12产生伪装的候选列表30以通过在该伪装的候选列表30中提供不真实的TURN中继传输地址来隐藏TURN中继传输地址26。TURN客户端12可以进一步在伪装的候选列表30中将该不真实的TURN中继传输地址指定为具有比TURN中继传输地址26高的优先权。以这种方式,TURN客户端12可以使得TURN对等端20更难以识别伪装的候选列表30中的TURN中继传输地址26,同时仍然保持使用TURN中继传输地址26建立TURN连接的能力。例如,在打孔处理期间,经由较高的优先权、但是不真实的TURN中继传输地址的连接可能被尝试,但是将失败。打孔协议然后可以回退到TURN中继传输地址26来建立TURN连接。
根据本文中的一些实施例,TURN客户端12可以产生伪装的候选列表30以通过在该伪装的候选列表30中提供不真实的私有地址(即,与TURN客户端12不相关联的私有地址)来隐藏TURN中继传输地址26。作为非限制性示例,TURN客户端12可以提供来自包含IP地址10.0.0.0至10.255.255.255的私有地址空间和/或包含IP地址192.168.0.0至192.168.255.255的私有地址空间的不真实的私有地址。在这样做时,TURN客户端12可以混淆可以与TURN客户端12相关 联的实际的私有地址,同时还避免如果在伪装的候选列表30中没有提供私有地址可能引起的嫌疑。
TURN交互系统10的一些实施例可以提供TURN服务器16被配置为通过对于TURN对等端20掩饰TURN服务器16的存在来隐藏TURN连接。TURN服务器16可以从要连接到TURN对等端20的TURN客户端12接收对于提供TURN服务的请求24(作为非限制性示例,请求TURN分配)。TURN服务器16然后可以在基于掩饰在TURN客户端12与TURN对等端20之间中继通信34之前执行操作以对于TURN对等端20掩饰TURN服务器16的存在。
在一些实施例中,TURN服务器16可以被配置为通过对于TURN信令和TURN中继操作利用不同的地址来掩饰TURN服务器16的存在。因此,TURN服务器16可以分配用于在TURN服务器16与TURN客户端12之间传送TURN消息38的TURN信令地址36。TURN服务器16进一步可以分配与TURN信令地址36不同的、用于在TURN客户端12与TURN对等端20之间中继通信34的TURN中继传输地址26。在一些实施例中,TURN信令地址36和TURN中继传输地址26可以驻留在不同的子网和/或不同的地址块中。以这种方式,可以最小化用于与诸如TURN对等端20的观测者的TURN中继业务量(traffic)相关联的信令的TURN消息的可能性。
一些实施例可以提供TURN服务器16被配置为通过利用TURN服务器16确保从TURN对等端20接收的不真实的通道数据消息40不产生错误响应来掩饰TURN服务器16的存在。该通道数据消息是在TURN对等端20与TURN服务器16之间发送以经由TURN中继传输地址26发送和接收数据的消息。如果TURN服务器16利用错误消息对不真实的通道数据消息40进行响应,则TURN服务器16的存在可以被揭示。相反,TURN服务器16可以默默地丢弃不真实的通道数据消息40。
根据本文中所公开的一些实施例,TURN服务器16可以被配置为通过分配不隶属于企业服务器群(未示出)的TURN中继传输地址26 来掩饰TURN服务器16的存在。表现为隶属于企业服务器群的TURN中继传输地址26可以被认为更有可能与TURN服务器16相关联并且不太可能为终端用户的实际IP地址。作为结果,对TURN中继传输地址26的反向IP查询可以向诸如TURN对等端20的外部观测者指示TURN服务器16的存在。通过分配不隶属于企业服务器群的TURN中继传输地址26,TURN服务器16可以进一步对于TURN对等端20掩饰其存在。
在一些实施例中,TURN服务器16可以被配置为通过基于以前的通信会话中所使用的第一TURN中继传输地址26(1)选择用于TURN通信会话的第二TURN中继传输地址26(2)来掩饰TURN服务器16的存在。例如,TURN服务器16可以利用选择与第一TURN中继传输地址26(1)不同的第二TURN中继传输地址26(2)的一致性策略。以这种方式,通信42(2)可以在TURN对等端20不能够将单个TURN中继传输地址26与TURN客户端12相关联的情况下被中继到TURN客户端12。在一些实施例中,TURN服务器16可以使第二TURN中继传输地址26(2)的选择基于对于提供TURN服务的请求44是否是从与请求24相同的TURN客户端12接收的。如果是,则TURN服务器16可以选择与第一TURN中继传输地址26(1)相同的第二TURN中继传输地址26(2)。通信42(1)可以在不引起关于在通信会话之间改变TURN中继传输地址26的嫌疑的情况下被中继到TURN客户端12。
为了示出可以由图1的TURN客户端12产生以隐藏TURN连接的示例性的伪装的候选列表46,提供了图2。如在图2中所看到的,伪装的候选列表46包括候选地址48。该候选地址48包括识别协议50、优先权重52、IP地址54、端口号56和候选地址48的地址类型58的列或域。用于候选地址48的协议50除了其它协议之外还可以包括,例如,用户数据报协议(UDP)和传输控制协议(TCP)。优先权重52可以被打孔协议使用以确定候选地址48之间的优选。例如,优先权重52的较高的值可以指示更优选的候选地址48。IP地址54和端口号56一起指示与候选地址48相关联的网络地址,而地址类型58指示 候选地址48是否是,作为非限制性示例,服务器反射候选地址、中继候选地址或主机候选地址。
在图2的示例中,伪装的候选列表46显示了与TURN服务器相关联的候选地址48可以如何被混淆。该伪装的候选列表46包括不真实的TURN中继传输地址60、TURN中继传输地址62(例如,图1的TURN中继传输地址26)、与图1的TURN客户端12相关联的私有地址64、以及不真实的私有地址66。不真实的TURN中继传输地址60被识别为中继候选地址(通常与TURN服务器相关联),并且被分配最高的优先权重52。然而,实际上,该不真实的TURN中继传输地址60不是有效的TURN服务器IP地址。相反,TURN中继传输地址62是真实的,并且被分配比不真实的TURN中继传输地址60低的优先权重52。TURN中继传输地址62还被识别为具有通常与NAT设备、而不是TURN服务器相关联的类型“服务器反射”。因此,TURN中继传输地址62被识别为真正的TURN服务器地址的可能性降低。类似地,与TURN客户端12相关联的私有地址64和不真实的私有地址66二者都在伪装的候选列表46中被提供,从而削弱了观测者确定哪个是真正的能力。
如以上所讨论的,图1的TURN客户端12可以被配置为通过隐藏TURN连接来增强隐私。在这方面,提供了图3以示出用于隐藏TURN连接的图1的TURN客户端12的示例性操作。为了清楚起见,在描述图3时参照图1的元素。在图3中,操作以TURN客户端12获得与TURN客户端12相关联的一个或多个候选地址28(方框68)开始。所述一个或多个候选地址28包括TURN服务器16提供的TURN中继传输地址26。
TURN客户端12然后基于所述一个或多个候选地址28产生伪装的候选列表30,在该伪装的候选列表30中,TURN中继传输地址26被隐藏(方框70)。如以上所讨论的,可以通过在伪装的候选列表30中将TURN中继传输地址26识别为服务器反射候选地址、通过将不真实的TURN中继传输地址包括在伪装的候选列表30中、和/或通过 将不真实的私有地址包括在伪装的候选列表30中来隐藏TURN中继传输地址26。TURN客户端12接着产生连接设置消息32,该连接设置消息32包括伪装的候选列表30,并且被定向到在计算设备22上运行的TURN对等端20(方框72)。TURN客户端12然后将连接设置消息32发送到计算设备22(方框74)。
图4是示出用于产生图2的伪装的候选列表46的图1的TURN客户端12的进一步示例性操作的流程图。为了在描述图4时清楚起见,参照图1和图2的元素。在图4中,方框76表示基于所述一个或多个候选地址28产生伪装的候选列表46的操作,在该伪装的候选列表46中,TURN中继传输地址62被隐藏。要理解,图4的方框76的操作对应于图3的方框70的操作。
在一些实施例中,用于产生伪装的候选列表46的图4中的方框76的操作可以包括TURN客户端12在伪装的候选列表46中将TURN中继传输地址62识别为服务器反射候选地址(方框78)。如以上所讨论的,服务器反射候选地址通常与NAT、而不是TURN服务器相关联。因此,通过将TURN中继传输地址62识别为服务器反射候选地址,可以使伪装的候选列表46中的TURN中继传输地址62的存在不那么明显。
一些实施例可以提供用于产生伪装的候选列表46的方框76的操作包括TURN客户端12在伪装的候选列表46中提供不真实的TURN中继传输地址60(方框80)。TURN客户端12然后可以在伪装的候选列表46中将不真实的TURN中继传输地址60指定为具有比TURN中继传输地址62高的优先权(方框82)。该不真实的TURN中继传输地址60因此可以通过表现为真正的TURN服务器地址来隐藏TURN中继传输地址62的存在。
根据本文中的一些实施例,用于产生伪装的候选列表46的方框76的操作可以包括TURN客户端12在伪装的候选列表46中提供不真实的私有地址66(方框84)。作为非限制性示例,例如,该不真实的私有地址66可以选自包含IP地址10.0.0.0至10.255.255.255的私有地 址空间和/或包含IP地址192.168.0.0至192.168.255.255的私有地址空间。以这种方式,可以与TURN客户端12相关联的实际的私有地址(诸如图2的私有地址64)可以在伪装的候选列表46中被隐藏。
如以上所提到的,还可以通过图1的TURN服务器16隐藏TURN连接来增强隐私。因此,提供了图5以示出用于TURN连接的隐藏的图1的TURN服务器16的示例性操作。为了清楚起见,在描述图5时参照图1的元素。在图5中,操作以TURN服务器16从要连接到TURN对等端20的TURN客户端12接收对于提供第一TURN服务的请求24(方框86)开始。该请求24可以例如是对于TURN服务器16的TURN分配的请求。
TURN服务器16接着对于TURN对等端20掩饰TURN服务器16的存在(方框88)。以下关于图6更详细地讨论用于对于TURN对等端20掩饰TURN服务器16的存在的示例性操作。TURN服务器16然后基于该掩饰在TURN客户端12与TURN对等端20之间中继通信34(方框90)。
图6是示出用于对于TURN对等端20掩饰TURN服务器16的存在的图1的TURN服务器16的进一步示例性操作的流程图。为了在描述图6时清楚起见,参照图1的元素。在图6中,方框92表示用于对于TURN对等端20掩饰TURN服务器16的存在的操作(方框92)。要理解,图6的方框92的操作对应于图5的方框88中所示的操作。
在一些实施例中,用于掩饰TURN服务器16的存在的方框92的操作可以包括TURN服务器16分配用于在TURN服务器16与TURN客户端12之间传送TURN消息38的TURN信令地址36(方框94)。该TURN服务器16还分配用于在TURN客户端12与TURN对等端20之间中继通信34的TURN中继传输地址26,其中,该TURN中继传输地址26不同于TURN信令地址36(方框96)。通过对于TURN信令和TURN中继利用不同的地址,TURN服务器16可以最小化用于与观测者的TURN中继业务量相关联的信令的TURN消息的几率。
一些实施例可以提供用于掩饰TURN服务器16的存在的方框92的操作可以包括TURN服务器16从TURN对等端20接收不真实的通道数据消息40(方框98)。该TURN服务器16然后默默地丢弃不真实的通道数据消息40(方框100)。通过默默地丢弃不真实的通道数据消息40,TURN服务器16避免了如同TURN服务器16将错误响应发送到TURN对等端20的情况那样确认其存在。
根据本文中所公开的一些实施例,用于掩饰TURN服务器16的存在的方框92的操作可以包括TURN服务器16分配不隶属于企业服务器群的TURN中继传输地址26(方框102)。如以上所提到的,表现为隶属于企业服务器群的TURN中继传输地址26可以向对TURN中继传输地址26进行反向IP查询的观测者指示TURN服务器16的存在。因此,通过分配不隶属于企业服务器群的TURN中继传输地址26,TURN服务器16可以进一步对于TURN对等端20掩饰其存在。
图7是示出用于通过基于第一TURN中继传输地址26(1)选择第二TURN中继传输地址26(2)来隐藏随后的TURN连接的图1的TURN服务器16的进一步示例性操作的流程图。为了清楚起见,在描述图7时参照图1的元素。图7中的操作以TURN服务器16使用第一TURN中继传输地址26(1)中继通信34(方框104)开始。要理解,图7的方框104的操作对应于图5的方框90中所示的操作。TURN服务器16然后可以接收对于提供第二TURN服务的请求44(方框106)。作为非限制性示例,该请求44可以是对于第二TURN分配的请求。
TURN服务器16基于第一TURN中继传输地址26(1)选择用于提供第二TURN服务的第二TURN中继传输地址26(2)(方框108)。在一些实施例中,用于选择第二TURN中继传输地址26(2)的方框108的操作可以包括TURN服务器16选择与第一TURN中继传输地址26(1)不同的第二TURN中继传输地址26(2)(方框110)。以这种方式,TURN服务器16可以在TURN对等端20不能够将单个TURN中继传输地址26与TURN客户端12相关联的情况下将通信42(2)中继到TURN客户端12。
一些实施例可以提供用于选择第二TURN中继传输地址26(2)的方框108的操作可以包括TURN服务器16首先确定请求44是否是从与对于提供第一TURN服务的请求24相同的TURN客户端12接收的(方框112)。如果TURN服务器16在方框112确定请求44和请求24是从同一TURN客户端12接收的,则TURN服务器16可以选择与第一TURN中继传输地址26(1)相同的第二TURN中继传输地址26(2)(方框114)。通信42(1)然后可以在不引起关于在通信会话之间改变TURN中继传输地址26的嫌疑的情况下被中继到TURN客户端12。否则,如果TURN服务器16在方框112确定请求44和请求24是从除了TURN客户端12之外的客户端接收的,则TURN服务器16可以依赖于TURN服务器16的实现来选择与第一TURN中继传输地址26(1)相同或不同的第二TURN中继传输地址26(2)(方框116)。
图8提供适于运行指令以执行本文中所描述的功能的的示例性计算机系统120的示例性形式的处理系统118的框图表示。在一些实施例中,处理系统118可以运行指令以执行图1的TURN客户端12和/或TURN服务器16的功能。在这方面,处理系统118可以包括计算机系统120,在该计算机系统120内,可以运行用于使处理系统118执行本文中所讨论的方法中的任何一种或多种的一组指令。处理系统118可以连接到(作为非限制性示例,联网到)局域网(LAN)、内联网、外联网或互联网中的其它机器。处理系统118可以在客户端-服务器网络环境中进行操作,或者在端对端(或分布式)网络环境中作为对等端机器进行操作。虽然仅示出了单个处理系统118,但是术语“控制器”和“服务器”还应被认为包括单独地或联合地运行一组(或多组)指令以执行本文中所讨论的方法中的任何一种或多种的任何批机器。处理系统118可以是服务器、个人计算机、桌面计算机、膝上型计算机、个人数字助理(PDA)、计算本、移动设备或任何其它设备,并且作为非限制性示例,可以表示服务器或用户的计算机。
示例性的计算机系统120包括处理设备或处理器122、主存储器124(作为非限制性示例,只读存储器(ROM)、闪存、诸如同步DRAM (SDRAM)的动态随机存取存储器(DRAM)等)、以及静态存储器126(作为非限制性示例,闪存、静态随机存取存储器(SRAM)等),这些设备可以经由总线128彼此进行通信。可替代地,处理设备122可以直接地或者经由一些其它连接手段连接到主存储器124和/或静态存储器126。
处理设备122表示一个或多个处理设备,诸如微处理器、中央处理单元(CPU)等等。更特别地,处理设备122可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其它指令集的处理器、或实现指令集的组合的处理器。处理设备122被配置为运行指令130和/或高速缓存指令132中的处理逻辑以执行本文中所讨论的操作和步骤。
计算机系统120可以进一步包括网络接口设备134的形式的通信接口。它还可以包括或者可以不包括当运行指令130、132时接收要传送到计算机系统120的输入和选择的输入136。它还可以包括或者可以不包括输出138,该输出138包括但不限于显示器140。该显示器140可以是视频显示单元(作为非限制性示例,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备(作为非限制性示例,键盘)、光标控制设备(作为非限制性示例,鼠标)、和/或触摸屏设备(作为非限制性示例,平板输入设备或屏幕)。
计算机系统120可以包括或者可以不包括数据存储设备142,该数据存储设备142包括使用驱动器144将本文中所描述的功能存储在计算机可读介质146中,在该计算机可读介质146上存储体现本文中所描述的方法或功能中的任何一种或多种的一组或多组指令148(例如,软件)。作为非限制性示例,该功能可包括处理系统118、参与用户设备和/或许可服务器的方法和/或其它功能。所述一组或多组指令148还可以在计算机系统120运行它期间完全地或者至少部分地驻留在主存储器124内和/或处理设备122内。该主存储器124和处理设备122还构成机器可访问的存储介质。指令130、132和/或148可以进一步经由网络接口设备134通过网络150被发送或接收。该网络150 可以是内部网络或网间网络。
虽然计算机可读介质146在示例性实施例中被示为单个介质,但是术语“机器可访问的存储介质”应被认为包括存储所述一组或多组指令148的单个介质或多个介质(作为非限制性示例,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。术语“机器可访问的存储介质”还应被认为包括能够存储、编码或携载供机器运行的一组指令并且使该机器执行本文中所公开的方法中的任何一种或多种的任何介质。术语“机器可访问的存储介质”因此应被认为包括,但不限于,固态存储器、光和磁介质、以及载波信号。
本文中所公开的实施例可以以硬件和存储在硬件中的指令来体现,并且作为非限制性示例,可以驻留在随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的计算机可读介质中。示例性的存储介质耦合到处理器,使得处理器可从存储介质读取信息以及将信息写入到存储介质。在替代方案中,存储介质可以集成到处理器。处理器和存储介质可以驻留在专用集成电路(ASIC)中。ASIC可以驻留在远程站中。在替代方案中,处理器和存储介质可以作为分立的组件驻留在远程站、基站或服务器中。
还指出,本文中的任一示例性实施例中所描述的操作步骤被描述以提供示例和讨论。所描述的操作可以以除了所示的顺序之外的许多不同的顺序执行。此外,单个操作步骤中所描述的操作实际上可以在若干个不同的步骤中执行。另外,在示例性实施例中所讨论的一个或多个操作步骤可以被组合。要理解,如本领域技术人员将容易明白的,流程图中所示的操作步骤可以经受许多不同的修改。本领域的技术人员还将理解,信息和信号可以使用各种各样的不同的工艺和技术中的任一种来表示。作为非限制性示例,在以上整个描述中可以参照的数据、指令、命令、信息、信号、比特、符号以及码片可以通过电压、电流、电磁波、磁场或粒子、光场或粒子、或其任何组合来表示。
本公开的前面的描述被提供以使得本领域的任何技术人员能够做出或使用本公开。对于本公开的各种修改对于本领域的技术人员将是容易明白的,并且在不脱离本公开的精神或范围的情况下,本文中所定义的通用原理可以被应用到其它变型。因此,本公开并非意图限于本文中所描述的示例和设计,而是要被赋予与本文中所公开的原理和新颖特征一致的最宽范围。

Claims (10)

1.一种用于隐藏使用中继穿越网络地址转换(TURN)连接的方法,包括:
由在第一计算设备上运行的TURN客户端获得与所述TURN客户端相关联的一个或多个候选地址,所述一个或多个候选地址包括TURN服务器提供的TURN中继传输地址;
基于所述一个或多个候选地址产生伪装的候选列表,在所述伪装的候选列表中,所述TURN中继传输地址被隐藏;
产生连接设置消息,所述连接设置消息包括所述伪装的候选列表并且被定向到在第二计算设备上运行的TURN对等端;以及
将所述连接设置消息发送到所述第二计算设备。
2.根据权利要求1所述的方法,其中,产生伪装的候选列表包括:
在所述伪装的候选列表中提供不真实的TURN中继传输地址;以及
在所述伪装的候选列表中将所述不真实的TURN中继传输地址指定为具有比所述TURN中继传输地址高的优先权。
3.根据权利要求1所述的方法,其中,产生伪装的候选列表包括在所述伪装的候选列表中提供不真实的私有地址。
4.一种用于隐藏使用中继穿越网络地址转换(TURN)连接的方法,包括:
由在计算设备上运行的TURN服务器从要连接到TURN对等端的TURN客户端接收对于提供第一TURN服务的请求;
由所述TURN服务器对于所述TURN对等端掩饰所述TURN服务器的存在;以及
由所述TURN服务器基于所述掩饰在所述TURN客户端与所述TURN对等端之间中继通信。
5.根据权利要求4所述的方法,其中,掩饰所述TURN服务器的存在包括:
分配用于在所述TURN服务器与所述TURN客户端之间传送TURN消息的TURN信令地址;以及
分配用于在所述TURN客户端与所述TURN对等端之间中继通信的TURN中继传输地址;
其中,所述TURN中继传输地址不同于所述TURN信令地址。
6.根据权利要求5所述的方法,其中,所述TURN信令地址和所述TURN中继传输地址驻留在不同的子网或者不同的地址块或者其组合中。
7.根据权利要求4所述的方法,其中,掩饰所述TURN服务器的存在包括:
由所述TURN服务器从所述TURN对等端接收不真实的通道数据消息;以及
响应于接收到所述不真实的通道数据消息,默默地丢弃所述不真实的通道数据消息。
8.根据权利要求4所述的方法,其中,基于所述掩饰在所述TURN客户端与所述TURN对等端之间中继通信包括使用第一TURN中继传输地址中继所述通信;
所述方法进一步包括:
由所述TURN服务器接收对于提供第二TURN服务的请求;
基于所述第一TURN中继传输地址选择用于提供所述第二TURN服务的第二TURN中继传输地址;以及
使用所述第二TURN中继传输地址中继与所述第二TURN服务相关联的通信。
9.一种用于隐藏使用中继穿越网络地址转换(TURN)连接的系统,包括:
在第一计算设备上运行的TURN客户端,所述TURN客户端通信地耦合到TURN服务器并且被配置为:
获得与所述TURN客户端相关联的一个或多个候选地址,所述一个或多个候选地址包括所述TURN服务器提供的TURN中继传输地址;
基于所述一个或多个候选地址产生伪装的候选列表,在所述伪装的候选列表中,所述TURN中继传输地址被隐藏;
产生连接设置消息,所述连接设置消息包括所述伪装的候选列表并且被定向到TURN对等端;以及
将所述连接设置消息发送到第二计算设备。
10.一种用于隐藏使用中继穿越网络地址转换(TURN)连接的系统,包括:
在第一计算设备上运行的TURN服务器,所述TURN服务器通信地耦合到TURN客户端并且被配置为:
从要连接到TURN对等端的所述TURN客户端接收对于提供第一TURN服务的请求;
对于所述TURN对等端掩饰所述TURN服务器的存在;以及
基于所述掩饰在所述TURN客户端与所述TURN对等端之间中继通信。
CN201510039254.9A 2014-01-27 2015-01-27 用于隐藏使用中继穿越网络地址转换连接的方法和系统 Active CN104811435B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/164,332 US9356915B2 (en) 2014-01-27 2014-01-27 Enhancing privacy by obscuring traversal using relays around network address translator (TURN) connections, and related methods, systems, and computer-readable media
US14/164,332 2014-01-27

Publications (2)

Publication Number Publication Date
CN104811435A true CN104811435A (zh) 2015-07-29
CN104811435B CN104811435B (zh) 2019-08-13

Family

ID=52673997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510039254.9A Active CN104811435B (zh) 2014-01-27 2015-01-27 用于隐藏使用中继穿越网络地址转换连接的方法和系统

Country Status (4)

Country Link
US (1) US9356915B2 (zh)
CN (1) CN104811435B (zh)
DE (1) DE102015100518B4 (zh)
GB (2) GB2589045B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075447B2 (en) * 2015-03-04 2018-09-11 Neone, Inc. Secure distributed device-to-device network
US10462101B2 (en) * 2015-11-13 2019-10-29 Nanning Fugui Precision Industrial Co., Ltd. Network communication method based on software-defined networking and server using the method
US9961014B2 (en) * 2015-11-13 2018-05-01 Nanning Fugui Precision Industrial Co., Ltd. Network communication method based on software-defined networking and server using the method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179581A (zh) * 2007-12-13 2008-05-14 北京邮电大学 一种采用ice中继候选地址进行媒体传输的方法
CN101252527A (zh) * 2008-04-09 2008-08-27 腾讯科技(深圳)有限公司 一种网络中转的方法、网络中转服务器和内核管理模块
CN101459689A (zh) * 2007-12-13 2009-06-17 阿尔卡特朗讯 建立连接的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853680B2 (en) * 2007-03-23 2010-12-14 Phatak Dhananjay S Spread identity communications architecture
EP2608488B1 (en) * 2011-12-22 2014-05-14 BlackBerry Limited Dialog establishment over a peer-to-peer architecture
EP2725765B1 (en) * 2012-10-29 2016-04-06 BlackBerry Limited Method and system for TCP turn operation behind a restrictive firewall
US9055032B2 (en) * 2013-04-12 2015-06-09 Blackberry Limited Secure network tunnel between a computing device and an endpoint

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179581A (zh) * 2007-12-13 2008-05-14 北京邮电大学 一种采用ice中继候选地址进行媒体传输的方法
CN101459689A (zh) * 2007-12-13 2009-06-17 阿尔卡特朗讯 建立连接的方法
CN101252527A (zh) * 2008-04-09 2008-08-27 腾讯科技(深圳)有限公司 一种网络中转的方法、网络中转服务器和内核管理模块

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MAHY等: ""Traversal Using Relays around NAT(TURN)"", 《RFC5766》 *

Also Published As

Publication number Publication date
DE102015100518A1 (de) 2015-07-30
GB2524628B (en) 2021-06-30
GB2589045B (en) 2021-08-11
GB2589045A (en) 2021-05-19
DE102015100518B4 (de) 2017-11-30
GB201501338D0 (en) 2015-03-11
US20150215290A1 (en) 2015-07-30
CN104811435B (zh) 2019-08-13
US9356915B2 (en) 2016-05-31
GB2524628A (en) 2015-09-30
GB202102747D0 (en) 2021-04-14

Similar Documents

Publication Publication Date Title
JP6306640B2 (ja) 管理されたコンピュータネットワークのための論理ネットワーキング機能の提供
CN101252509B (zh) 双-nat方法在动态虚拟专用网络(vpn)的数据包处理及路由中的应用
CN103916311B (zh) 一种信息传输控制方法,装置及系统
US9712485B2 (en) Dynamic DNS-based service discovery
US9973379B1 (en) Managing integration of external nodes into provided computer networks
US9356860B1 (en) Managing external communications for provided computer networks
CN103108089B (zh) 网络系统的连线建立管理方法及其相关系统
CN102598591A (zh) 采用用于保护跨网络的连接的覆盖
CN101515896B (zh) 安全套接字层协议报文转发方法、装置、系统及交换机
CN104811371A (zh) 一种全新的即时通信系统
EP3457640B1 (en) Route establishment and message sending
CN103118148A (zh) 一种arp缓存更新方法和设备
CN111698346B (zh) 一种专线网络地址转换方法、装置、专线网关及存储介质
CN108173928A (zh) Udp数据传输的方法、装置、存储介质及终端设备
CN104811435A (zh) 用于隐藏使用中继穿越网络地址转换连接的方法和系统
CN104601649A (zh) 提供关于web应用的起源洞察的方法和系统
CN106941527B (zh) 一种数据传输中转方法及其系统
CN102780701A (zh) 访问控制方法和设备
CN102656942B (zh) 用于3gpp网络中的地址转换器穿越的方法
CN102202103A (zh) 一种访问网络设备的方法、系统及装置
AU2013300091B2 (en) Method and apparatus for using rendezvous server to make connections to fire alarm panels
CN114598532B (zh) 连接建立方法、装置、电子设备和存储介质
JP2019050628A5 (zh)
CN105516121B (zh) 无线局域网中ac与ap通信的方法及系统
CN102480422B (zh) P2p终端在p2p叠加网中的通讯方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant