CN101437022A - 服务器发起的安全网络连接 - Google Patents

服务器发起的安全网络连接 Download PDF

Info

Publication number
CN101437022A
CN101437022A CN200810095095.4A CN200810095095A CN101437022A CN 101437022 A CN101437022 A CN 101437022A CN 200810095095 A CN200810095095 A CN 200810095095A CN 101437022 A CN101437022 A CN 101437022A
Authority
CN
China
Prior art keywords
management devices
tcp
ssh
message
rolereversal
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
CN200810095095.4A
Other languages
English (en)
Other versions
CN101437022B (zh
Inventor
肯特·A·沃森
西蒙·J·杰拉泰
保罗·弗雷利
菲利普·A·谢弗
达雷恩·汤姆
Original Assignee
Jungle Network
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 Jungle Network filed Critical Jungle Network
Publication of CN101437022A publication Critical patent/CN101437022A/zh
Application granted granted Critical
Publication of CN101437022B publication Critical patent/CN101437022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Abstract

本发明指出了用于与处于安全装置后面的装置建立安全连接的技术。根据这些技术,被管理装置发起传输控制协议(TCP)会话以建立与管理装置的TCP会话,从而使管理装置充当TCP服务器而被管理装置充当TCP客户端。一旦建立TCP会话,被管理装置会经由TCP会话发送用于指定被管理装置身份的角色颠倒消息。一旦接收到该角色颠倒消息,管理装置通过TCP会话根据安全协议发起安全连接,从而使管理装置充当安全协议客户端而被管理装置充当安全协议服务器。通过恰当地建立安全会话,每个装置都承担合适的角色并且管理员会更容易地配置这些装置。

Description

服务器发起的安全网络连接
技术领域
本发明涉及计算机网络,更具体地,涉及计算机网络中所使用的安全协议。
背景技术
由于对网络可访问计算机的越来越多的依赖,对于机构以及个人来说网络安全已成为主要的问题。为有助于确保计算机的安全性,机构和个人经常会在其专用网络和公共网络之间安装安全装置。这些安全装置的目标是避免来自公共网络的无用或恶意信息入侵专用网络中的装置。该安全装置可能还提供“网络地址转换”功能,其使专用网络在与公共网络进行通信时能够利用单个公共网际协议(IP)地址。网络地址转换(NAT)可通过将专用网络的内部结构对于公共网络进行遮蔽来提供来自公共网络的进一步的安全性,并减少与保持每个置于专用网络中的装置的公共IP地址相关的成本。
通常应用的安全装置的一个实例是防火墙。防火墙可通过重写包含于流过防火墙的数据包中的源和/或目的IP地址来执行NAT。一旦接受到来自公共网络所指定的这些专用装置之一的数据包,则防火墙,例如,利用单一的公共IP地址来重写分配给专用设备的专用IP源地址。一旦接收到响应于该装置的数据包的返回数据包,则防火墙利用适当的专用IP地址来重写该返回数据包的目的地址。这样,防火墙通过使之看起来像是只有一个装置(例如,防火墙通过单一公共IP地址来发送和接收数据)来遮蔽专用网络的内部结构。
尽管执行NAT的防火墙可以遮蔽专用网络的结构从而提供额外的安全性,但是防火墙还会防碍专用装置参与某些网络协议。例如,在NAT防火墙后的专用装置不会充当传输控制协议(TCP)服务器。即,由于专用装置本身的IP地址不为防火墙公共侧上的装置所知,因此该专用装置不能直接接收以及接受来自NAT防火墙的公共侧上的客户端的TCP会话请求。公共装置只知道由防火墙所使用的单一公共IP地址。因为TCP要求公共装置知道建立TCP会话所要使用的特定装置的IP地址,所以公共装置不能直接与在NAT防火墙后面的专用装置建立TCP会话。此外,TCP会话上执行的很多安全协议可能因为这些安全协议依赖于TCP会话而不会被应用。
发明内容
总的来说,本发明指出了用于与在安全装置后面的装置建立安全连接的技术。特别地,本发明的技术可以使该安全装置(其可实现端口映射)一侧上的管理装置能够与该安全装置另一侧上的被管理装置建立安全会话(例如,安全外壳(secure shell)(SSH)协议会话),从而在管理装置和被管理装置之间正确地分配安全会话的角色。即,当在用于支持安全协议会话的装置上呈现网络堆栈时,该技术被描述成用于允许管理装置和被管理装置动态地转换角色。例如,该技术允许被管理装置作为TCP客户端主动地发起与管理装置进行TCP会话,并且,一旦建立该TCP会话,就动态地转换角色,从而允许该管理装置充当对于任何运行于TCP上的安全通信协议的客户端。
这样,可将管理装置适当地配置成充当SSH客户端并且将被管理装置配置成充当SSH服务器。通过适当地从管理装置发起SSH安全会话,能够以在每个被管理和管理装置执行的角色方面都正确(从而易于被在其上执行的软件支持和集成)以及容易被多数网络管理员理解的形式来建立该安全SSH会话。因此,网络管理员可以更容易地配置被管理和管理装置,从而更能确保网络的性能和安全性。
例如,在NAT防火墙专用侧上的被管理装置发起传输控制协议(TCP)会话来建立与NAT防火墙公共侧上的管理装置的TCP会话,从而使管理装置作为TCP服务器接受TCP会话而被管理装置充当TCP客户端。这样,可避免由NAT防火墙所引入的限制或约束。在以这种方式建立了基础的TCP会话之后,被管理装置通过TCP会话向管理装置发送一个角色颠倒消息。该角色颠倒消息指定被管理装置的身份并将安全地发起安全会话的能力提供给管理装置,因而相对于来自基础TCP会话的角色的安全会话来颠倒客户端/服务器角色。
一旦接收到角色颠倒消息,管理装置按照安全协议通过TCP会话发起安全连接,以使管理装置充当安全协议客户端而被管理装置充当安全协议服务器。安全协议(如上述SSH协议)利用非对称验证方案在管理装置和被管理装置之间建立安全连接。非对称验证方案可包括借此安全协议客户端和服务器中的每一个所知晓的信息是不平衡(例如在使用了用户名和密码的方案中)的任何验证方案。
在一个实施例中,一种方法包括:通过管理装置接收由作为TCP客户端的被管理装置所输出的初始传输控制协议(TCP)同步(SYN)数据包,该数据包作为发起管理装置和被管理装置之间的TCP会话的请求,管理装置输出TCP同步确认(SYN-ACK)数据包以作为TCP服务器来接受TCP会话,而在建立TCP会话之后,用管理装置接收由被管理装置输出的角色颠倒消息,该角色颠倒消息指定被管理装置的身份。该方法还包括:一旦接收到角色颠倒消息,就根据安全外壳(SSH)协议利用管理装置通过TCP会话发起安全外壳(SSH)连接,以使管理装置充当SSH协议的客户端而被管理装置充当SSH协议的服务器。
在另一实施例中,一种装置管理至少一个远程装置且包括控制单元,该控制单元接收由多个远程被管理装置中的一个作为TCP客户端输出的初始传输控制协议(TCP)同步(SYN)数据包作为发起管理装置和被管理装置之间TCP会话的请求,向被管理装置输出TCP同步确认(SYN-ACK)数据包以将被管理装置作为TCP服务器来接受TCP会话,并在建立TCP会话之后,接收由被管理装置输出的用于指定被管理装置身份的角色颠倒消息。一旦接收到角色颠倒消息,该控制单元还根据安全外壳(SSH)协议通过TCP会话发起安全外壳(SSH)连接,从而使管理装置充当SSH协议的客户端,而被管理装置充当SSH协议的服务器。
在另一实施例中,计算机可读介质包括多个指令。这些指令使可编程处理器能够接收由作为TCP客户端的被管理装置所输出的初始传输控制协议(TCP)同步(SYN)数据包,该数据包作为发起管理装置和被管理装置之间的TCP会话的请求,输出来自管理装置的TCP同步确认(SYN-ACK)的数据包以将管理装置作为TCP服务器接受TCP会话,并且在建立TCP会话之后,接收由被管理装置输出的角色颠倒消息,该角色颠倒消息指定被管理装置的身份。当构造用于与被管理装置通信的网络堆栈时,基于角色颠倒消息,这些指令还使可编程处理器能够动态地颠倒管理装置的客户端/服务器角色;以及一旦接收到角色颠倒消息,就通过TCP会话根据安全外壳(SSH)协议发起安全外壳(SSH)连接,从而使管理装置充当SSH协议的客户端,而被管理装置充当SSH协议的服务器。
在另一实施例中,一种方法包括:利用第一装置发起传输控制协议(TCP)会话以建立与第二装置的(TCP)会话,以使第二装置作为TCP服务器接受TCP会话而第一装置充当TCP客户端,并且,在建立TCP会话之后,用第二装置接收用于指定第一装置身份的角色颠倒消息。该方法还包括:一旦接收角色颠倒消息,用第二装置通过TCP会话根据安全协议发起安全连接,以使第二装置充当安全协议客户端而第一装置充当安全协议服务器,其中,安全协议利用非对称验证方案来建立第一装置与第二装置之间的安全连接。
这样,被管理装置发起了TCP会话,但避免了由被管理装置发起SSH会话。如果改为由NAT防火墙后面的被管理装置来发起这种SSH会话,则由于管理装置(管理员以此交互)将被强制作为SSH服务器运行,因此SSH服务器和SSH客户端的角色会被颠倒,这既不正确又不方便。由于SSH服务器(其在此方案中为管理装置)现在必须验证SSH客户端(其为被管理装置),即使管理装置需要来自被管理装置的许可来改变为被管理装置,因此SSH会话是不方便的。网络管理员很可能会在实现SSH会话时由于本方案而变得迷惑,这会延迟并复杂化专用网络的配置,并最终损害性能与安全性。本文描述的技术避免了这种迷惑与不便。此外,该技术可允许企业利用在企业中已经由网络操作者配置的基础设施。例如,此技术可允许网络操作者利用已经配置的SSH主机密钥基础设施。
下面,将结合附图和描述来阐述本发明一个或多个实施例的细节。本发明的其他特征、目的和优点将通过描述、附图、以及权利要求而变得显而易见。
附图说明
图1是示出了示例性网络系统的框图,其中,一个管理装置和多个被管理装置根据本发明的原理建立安全连接。
图2是更具体地示出了图1的网络系统的框图。
图3是示出了根据本文描述的服务器发起的安全网络连接技术的示例性角色颠倒消息的视图。
图4是示出了根据本文描述的服务器发起的安全网络连接技术在建立安全连接过程中管理装置和被管理装置的示例性操作的流程图。
图5A-5B是示出了由用户界面模块呈现的示例性用户界面的屏幕截图,每个用户界面模块都在各自的根据本发明的原理运行的管理装置和被管理装置中执行。
具体实施方式
图1是示出了示例性网络系统10的框图,其中,一个管理装置12和多个被管理装置14A-14N根据本发明的原理建立安全连接。在图1的实例中,管理装置12经由公共网络18连接到防火墙16。管理装置12可以是任何能够访问网络的装置,如便携式电脑、台式计算机、工作站、便携式电话或可上网的个人数字助理(PDA)。被管理装置14A-14N(“被管理装置14”)各自可包含在网络系统10中运行且能够远程配置的任一网络装置。这些实例包括路由器、交换机、集线器、应用服务器、数据库服务器或其他网络装置。防火墙16仅仅是网络安全装置的代表,且尽管在图1中明确地作为防火墙16示出,但是防火墙16可以替换为任何其他类型的安全网络装置,其保护被管理装置12和其他装置不受公共网络18的入侵。特别地,防火墙16可执行安全操作,以将被管理装置14与源于防火墙16公共侧(例如,公共网络18)的攻击相隔离。例如公共网络18可以是因特网,其包括连接在一起的网络和计算装置(诸如上面描述的那些),从而它们可以通信数据包。防火墙16可以允许、拒绝或代理源自公共网络18的数据,并依靠关于协议、端口、可信的IP地址等等的防火墙规则来执行上述的每个动作。即,除非用防火墙16首先建立验证和安全信息(例如,通过虚拟专用网络(VPN)或其他由防火墙终止的安全会话),否则防火墙16例如会通过为许多协议和端口阻止引入的数据包来限制对被管理装置14的访问。防火墙16还可执行网络地址转换(NAT),在与公共网络18通信时,NAT为被管理装置14呈现单个公共网络协议(IP)地址。在某些情况中,防火墙16可以通过使用在此被称作“端口映射”的技术来实现NAT。
为通过端口映射的方式来执行NAT,防火墙16会将分配到每个被管理装置14的内部专用IP地址映射到不同的协议端口,其中每个被管理装置14都分别使用不同的协议端口来向外部或公共IP地址通信。一般地,IP地址和端口的配对被称为“元组”,因而该端口映射保持专用IP/端口元组到公共IP/端口元组之间的映射。一旦接收到来自被管理装置14中的一个的数据包,防火墙16会利用根据端口映射器被分配到防火墙16且由防火墙16保持的多个公共IP地址中的一个来重写数据包的源IP地址字段,该源IP地址字段原先指定分配到该被管理装置14的内部专用IP地址。防火墙16还可利用基于端口映射的公共端口中的一个来重写数据包的端口字段,该端口字段原先将与该被管理装置14连接的专用端口指定给防火墙16。在重写这些字段之后,防火墙16会转发此数据包,从而对于公共网络18来说似乎防火墙16是数据包的源,因而掩蔽被管理装置14及其彼此互连(例如,专用网络)。
一旦接收到对应于由该被管理装置14发送的数据包的响应数据包,防火墙16就通过响应数据包确定了此数据包指定的IP地址和端口。防火墙16使用来自该响应数据包的公共IP地址和公共端口作为密钥(即,公共IP/端口元组)访问端口映射,以确定该被管理装置14的内部专用IP地址/端口元组,并用端口映射中的所映射的那些重写响应数据包的IP目的地址和端口。再次,由公共网络18看来,就像是单个装置(例如,防火墙16)连接到公共网络18,而非多个装置14。因此防火墙16能掩蔽被管理装置14的内部构造,从而限制公共网络18所知的关于被管理装置14的内容,并因此提供了更多的安全性。
如图1所示,管理装置12执行管理应用程序20。典型地,管理应用程序(诸如管理应用程序20)被用来促进网络元件(例如,被管理装置14)的管理,特别是当大量被管理装置14处于单个机构或网络的管理下时。管理应用程序20实现本文描述的服务器发起的安全网络连接技术,以便安全地管理被管理装置14。特别地,管理程序20使管理装置12能够建立诸如安全外壳(SSH)协议会话这样的安全会话,从而在管理装置12和其中一个被管理装置14之间正确地分配SSH角色。即,即使在防火墙16方面上来看,不容易实现这种配置,管理装置12仍充当SSH客户端,而被管理装置14中的一个充当SSH服务器。
更确切地说,当网络堆栈在每个用于支持安全SSH会话的装置上均被呈现时,本文所描述的技术允许管理装置12和被管理装置14动态地交换角色。例如,本技术允许每个被管理装置14作为TCP客户端主动地发起到管理装置12的TCP会话,并且,一旦建立TCP会话,就动态地交换角色以允许管理装置12充当运行于TCP会话之上的SSH安全通信协议的SSH客户端。
例如,每个被管理装置14发起传输控制协议(TCP)会话来建立与管理装置12的TCP会话,以使管理装置12作为TCP服务器接受TCP会话而被管理装置14充当TCP客户端。在建立了它们各自的TCP会话后,被管理装置14发送而管理装置12接收角色颠倒消息,该消息指定了被管理装置14中一个的身份。角色颠倒消息将对于安全发起并在TCP会话上建立安全SSH会话所需的信息提供给管理装置12的管理应用程序20,因而相对于安全会话颠倒来自基础TCP会话的客户端/服务器角色。
一旦接收到角色颠倒消息,管理装置12的管理应用程序20根据安全协议(例如,SSH协议)通过TCP会话发起安全连接,从而管理装置12充当安全协议客户端而被管理装置14中的一个充当安全协议服务器。该安全协议(诸如上述SSH协议)利用非对称验证方案在管理装置和被管理装置之间建立安全连接。
非对称验证方案可包括借此各个安全协议客户端和服务器来说所知晓的信息是不平衡(例如在使用了用户名和密码的方案中)的任何验证方案。即,管理装置12具有用于进入每个被管理装置14的唯一的用户名和密码,而每个被管理装置14可具有SSH验证信息,管理装置12需要该信息来验证每个被管理装置14。因此,对于被管理装置14发起安全连接(即,充当SSH客户端)来说,很多信息必须要在管理装置12和被管理装置14之间交换,以促进建立这个非典型的安全连接,在这种非典型安全连接中将会颠倒安全角色(例如,管理装置12充当安全协议服务器而被管理装置14充当安全协议客户端)。因为此信息是“机密的”,或很可能是最保密的,故信息交换对于专用网或被管理装置14的安全变得十分危险。本文描述的用于在建立安全会话时动态地颠倒角色的技术避免了这种不方便且不正确的配置。
因此,管理专用网的管理员可以凭借SSH服务器发起的安全网络连接技术放弃这种可能损害安全性的配置。作为替换,管理员能够以简单明了的方式配置管理装置12和被管理装置14之间的安全会话。这种方式更为直接是因为,例如,服务器发起的安全网络连接技术允许管理装置12充当SSH客户端而被管理装置14根据惯例安全协议配置充当SSH服务器,而不考虑由防火墙16执行的可能的NAT功能。通过以从基本TCP会话的客户端/服务器角色颠倒的方式适当地建立关于安全会话的客户端/服务器角色,此安全会话在每个管理装置12和被管理装置14执行的角色方面都是正确的,且容易被多数网络管理员理解。因此,网络管理员会更容易地配置管理装置12和被管理装置14,从而更好地确保诸如可能由被管理装置14所形成的专用网络中的性能和安全性。
图2是更具体地示出了部分网络系统10的框图。如上所述,管理装置12和被管理装置14根据本文描述的服务器发起的安全网络连接技术运行。为了实例的目的,参照被管理装置14A来描述此技术,但一个或多个被管理装置14可根据此技术运行。因此,尽管参照与被管理装置14A所建立的单个安全连接来描述,但管理装置12可与两个或更多被管理装置14建立多个安全连接。此外,为了更方便说明,在下文中只详细论述被管理装置14A;然而,因为每个被管理装置14可包括用于执行本文描述的技术的相似组件,所以每个被管理装置14可基本上与被管理装置14A相似。因此,此技术不严格限制于下面描述的示例性实施例。
如图2所示,管理装置12包括上述管理应用程序20,其在图2中示为“主机管理应用程序20A”。管理装置12和被管理装置14A分别包含各自的控制单元22A、22B(“控制单元22”)。控制单元22A执行主机管理应用程序20A,而控制单元22B执行客户端管理应用程序20B。主机管理应用程序20A和客户端管理应用程序20B(“管理应用程序20”)分别包括各自的角色颠倒模块26A、26B(“角色颠倒模块26”)、TCP模块28A、28B(图2中示为“TCP 28A”和“TCP 28B”,这里是“TCP 28”)、SSH模块30A、30B(图2中示为“SSH 30A”和“SSH 30B”,这里是“SSH 30”)、以及用户界面模块32A、32B(“用户界面模块32”)。
如下文更详细的描述,角色颠倒模块26负责在构造网络堆栈期间动态地执行客户端/服务器角色颠倒,其中TCP服务器(即,接受TCP会话的装置)变为SSH客户端而TCP客户端(即,发起TCP会话的装置)变为SSH服务器。TCP28是用于根据TCP发起和维持TCP会话的典型模块。SSH30根据在TCP会话上的SSH协议发起和维持SSH会话。用户界面模块32呈现了必要的软件界面,该软件界面使用户能够配置各自的管理应用程序20,从而管理装置12可根据本发明的原理来远程地和安全地配置被管理装置14A,而不用考虑防火墙16。
管理装置12和被管理装置14A保持各自的数据库24A、24B(“数据库24”)来控制SSH安全连接和基本TCP会话的动态构造。数据库24可包括任何类型的平面或表格、分层、网络或关系数据库。示例性的关系数据库是结构化查询语言(SQL)数据库。
数据库24存储用于控制验证和安全网络连接构造的多种信息,包括:主机密钥34、密钥散列(keyed-hash)消息验证码(HMAC)36、HMAC密钥38、装置标识符40(图2中“装置ID40”)、以及SSH验证信息42(图2中“SSH验证信息42”)。
HMAC 36使用加密散列函数(cryptographic hash function)来为消息验证提供机制。例如,根据注解请求(Request for Comments)(RFC)2104(名为“HMAC:消息验证的密钥散列”,由互联网工程任务组的网络工作组(Network Working Group of the InternetEngineering Task Force)(IETF)于1997年2月制定,结合在此作为参考),计算对于主机密钥34的HMAC 36。装置ID 40代表分配到各自装置的唯一标识符,该标识符包括每个在管理装置12的管理下的被管理装置14的唯一一个标识符。SSH验证信息42向被管理装置14A提供用于验证管理装置12的必要信息。
虽然作为存储结构(例如,数据库)的特定类型而示出,但该技术可以适用于能够存储上述用于根据本发明的原理实现该技术的相关数据的各类存储介质,诸如任何形式的静态存储器(例如,硬盘驱动器、光盘驱动器和闪存)以及易失性存储器(例如,随机存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM))。此外,本技术可以通过存于计算机可读介质的指令来实现,该指令使可编程处理器(例如,控制单元22)能够执行下面会更为详细描述的服务器发起的安全网络连接技术。
首先,当在网络系统10中初始配置被管理装置14A时,用户(诸如,网络管理员)经由用户界面模块32A与管理装置12交互来配置主机管理应用程序20A。更特别地,管理员可指定HMAC密钥38和SSH验证信息42(例如,用户名和密码)。然后,主机管理应用程序20A会自动地生成装置ID40并将此装置ID40呈现给管理员,用于配置管理装置12。通过HMAC密钥38(在RFC 2104中被称为“秘密密钥”),主机管理应用程序20A会根据RFC 2104为产生对于主机密钥34的HMAC 36。主机管理应用程序20A将主机密钥34、HMAC 36、HMAC密钥38、装置ID 40以及SSH验证信息42存储到数据库24A,如图2所示。
然后,管理员配置客户端管理应用程序20B。再次,管理员会指定HMAC密钥38和SSH验证信息42,然而,管理员还需要指定装置ID40。如上文关于主机管理应用程序20A所述,基于HMAC密钥38(RFC 2104的“秘密密钥”)的客户端管理应用程序20B可以根据RFC 2104计算对于主机密钥34的HMAC 36。与主机管理应用程序20A相似,客户端管理应用程序20B会将主机密钥34、HMAC 36、HMAC密钥38、装置ID40、以及SSH验证信息42存储到数据库24B,如图2所示。
一旦在网络系统10中被配置并使用,被管理装置14A(更特别地为客户端管理应用程序20B)发起与管理装置12的TCP会话,以根据TCP28B建立TCP会话。在图2中示出的实例中,客户端管理应用程序20B发起TCP会话来克服由防火墙16执行的NAT操作。尽管本文描述了关于克服此NAT操作,但是服务器发起的安全网络连接技术可以同样在将装置配置为发起与主机管理应用程序20A连接的其他情况中应用。
此技术对于很多更喜欢在其本地管理数据中心(即,在管理装置12上而非在所有被管理装置14上配置)具有“开放”端口(如果使得通信端口能够用于接收入站连接请求时,则管理装置12上的端口被视作“开放”)的网络操作者来说可能是理想的。管理员可能由于很多原因而更喜欢将开放端口处于管理装置12上。第一,从安全观点出发,在管理装置12上保护单个开放端口要比在不同的(也许是地理分布的)装置上保护大量端口更容易,其为倘若需要多个被管理的装置14和/或中间防火墙来保持入站开放端口时的情况。第二,再次从安全观点出发,管理员会更喜欢这种配置,这是因为管理员可能不希望被管理装置14在网络上是“可检测的”。即,管理员可能不希望被迫按照使得装置在受保护的企业外部是可以检测到的方式来管理装置14。如果装置14被配置为保持开放端口并接听连接请求,则被管理装置会被暴露而被网络上的其他潜在恶意实体(诸如,执行恶意端口扫描软件的实体)检测。第三,从性能和可靠性的观点出发,管理员会更喜欢这种配置,这是因为这种配置保护装置14不受服务攻击(其经常以开放端口作为目标并且结束或使企业功能的性能降级)拒绝的影响。第四,再次从性能的观点出发,管理员会更喜欢此配置,这是因为此配置需要管理装置12处理SSH通信会话的构建和保持,因而减轻了装置14必须安装和拆除SSH连接的任务。因此,由于以上任何一个原因,管理员会更喜欢装置14而非管理装置12发起连接,并且本发明不应严格限制于本文描述的防火墙的实施例。
不考虑特别动机,客户端管理应用程序20B可通过使TCP 28B充当TCP客户端来发起TCP会话并向管理装置12发送TCP同步或“SYN”数据包。客户端管理应用程序20B可通过不同方法来确定发送此数据包的时间。
在一个实例中,客户端管理应用程序20B可能在上电或其他某个情况下尝试建立持久稳固的TCP会话。在另一实例中,客户端管理应用程序20B可能尝试以规律的时间间隔建立短期的或周期性TCP会话(这可能在管理装置12管理大量装置14且不能同时保持多个持久稳固的TCP会话时特别有用)。另一个也使管理装置12能够管理大量装置的实例提供了客户端管理应用程序20B只在需要联系管理装置12诸如来执行系统升级、上载错误消息、记录或备份数据、发布警告或其他原因时才尝试按需地建立TCP会话。
又例如,客户端管理应用程序20B首先会尝试建立持久稳固的TCP会话,然而一旦管理装置12结束了假设的持久稳固的TCP会话,则客户端管理应用程序20B会改为切换到周期性TCP会话,这是由于该结束的TCP会话可能指示管理装置12不再保持持久稳固的TCP会话。作为另一实例,客户端管理应用程序20B会被配置成仅在其需要联系管理装置12时(即,响应于内部事件)建立TCP会话,但如果对于某个时间量(如,30秒)没有要求联系,则客户端管理应用程序20B会继续建立周期性TCP会话。由此,客户管理应用程序20B可使用组合的周期性按需TCP会话。在任何事件中,客户管理应用程序20B会使TCP 28B向管理装置12传送SYN数据包。
防火墙16可执行关于由被管理装置14A产生的出站SYN数据包的NAT,由此防火墙16用多个分配到防火墙16的公共IP地址中的一个来替换SYN数据包中的源IP地址(即,分配给被管理装置14A的专用IP地址)。防火墙16会使用端口映射来确定哪个专用IP地址/端口元组与哪个公共IP地址/端口元组相联系,并会用在各自的SYN数据包的IP源地址和端口字段中的公共IP地址和端口来重写专用IP地址和端口。在完成NAT操作之后,防火墙16向公共网络18转发用于向管理装置12递送的SYN数据包。
管理装置12(更具体地,主机管理应用程序20A)接收SYN数据包。充当TCP服务器的TCP 28A通过以同步确认或“SYN-ACK”数据包的形式回复来响应SYN数据包,该同步确认或“SYN-ACK”数据包在公共网络18上通过防火墙16(在此处对其进行NAT操作)被传输,并由TCP 28B接收。TCP 28B作为TCP客户端通过利用确认或“ACK”数据包响应SYN-ACK数据包来继续TCP握手,于是由TCP 28A接收的ACK数据包正式地表示主机管理应用程序20A和客户端管理应用程序20B之间的TCP会话的建立。由于客户端管理应用程序20B发起TCP会话,因此客户端管理应用程序20B充当TCP客户端,而主机管理应用程序20A(因为其接受TCP会话)充当TCP服务器。
在建立TCP会话之后,客户端管理应用程序20B在为通信会话构造内部网络堆栈的时刻应用角色颠倒模块26B来动态地改变客户端/服务器角色。此外,关于通信会话,在建立TCP会话完成之后且在发起任何在TCP会话上的附加通信协议之前,管理装置12和被管理装置14A颠倒客户端/服务器角色。
特殊地,角色颠倒模块26B向角色颠倒模块26A发送角色颠倒消息来触发客户端/服务器的角色颠倒。再次,该消息会经上述由防火墙16执行的NAT操作并穿过公共网络18到达角色颠倒模块26A。参照图3更详细地描述了角色颠倒消息;然而,角色颠倒消息一般传送使SSH 30A能够验证客户端管理应用程序20B的必要信息,并从而允许主机管理应用程序20A充当SSH客户端而客户端管理应用程序20B充当SSH服务器。角色颠倒模块26通过使TCP客户端(即,客户端管理应用程序20B)能够成为SSH服务器并使TCP服务器(即,主机管理应用程序20A)能够成为SSH客户端而得到其标注的“角色颠倒”部分,因而从TCP客户端到SSH服务器并从TCP服务器到SSH客户端的颠倒角色与传统技术相反。
角色颠倒消息26A(其在本文中还可以被称作“装置-连接-信息(device-conn-info)”或“装置-连接-信息(device-connection-information)”消息)使SSH 30A基于装置ID在数据库24A中查询被管理装置14A的记录来验证被管理装置14A。如果从被管理装置14A接收到的主机密钥与在数据库24A中存储的主机密钥不同,则主机管理应用程序20A通过比较对于sha-1(主机密钥34,HMAC密钥38)所计算出的值和已通过的HMAC值来验证已通过的主机密钥。如果它们匹配,则主机管理应用程序20A将新主机密钥存入数据库24A。这样,角色颠倒模块26A会从多个被管理装置14(每个均包含来自角色颠倒消息的装置ID40、主机密钥34、HMAC 36和HMAC密钥38)中接收一个或多个消息。
基于此信息,角色颠倒模块26A会确定是否“信任”每个被管理装置14。即,角色颠倒消息会以主机密钥34的形式发送安全证书并以HMAC 36的形式发送数字签名。角色颠倒模块26A会使用数字签名(诸如,HMAC36)对安全证书(诸如,主机密钥34)“签名”。如果可以成功地对证书签名,则角色颠倒模块26A会因此信任每个已经发送了必要的安全证书和数字签名的被管理装置14。
假设角色颠倒消息允许角色颠倒模块26A信任被管理装置14A,例如,角色颠倒模块26A调用SSH 30A来触发SSH协议的发起。即,SSH 30A作为SSH客户端运行并通过TCP会话输出SSH传输连接消息来建立第一SSH层(即,SSH传输层)。SSH协议可作为三层协议来理解,其在建立第三层或称会话层之前需要两层。第一层且最底层被称为“传输”层且代表建立穿过公共网络18的加密通道(cryptographic tunnel)的层。此传输层处理最初的密钥交换,以及在TCP会话上的加密通道的建立。
一旦建立第一加密通道,则SSH 30B针对验证信息而提示SSH30A,从而SSH 30B可以验证管理装置12并建立第二SSH层。SSH30A可提供SSH验证信息42(例如,用户名和密码),SSH 30B将其与自身的SSH验证信息42相比较。假设SSH 30B接受SSH 30A的SSH验证信息42,则SSH 30A会建立第三并且最终连接或称会话层,在其上会进行安全通信。因为SSH 30A发起SSH安全连接,而SSH 30B接受安全连接,故尽管由防火墙16执行NAT的操作,管理装置12仍充当SSH客户端而被管理装置充当SSH服务器。因此,通过使被管理装置14发起TCP会话而TCP服务器(例如,管理装置12)发起SSH会话,防火墙16可能不会妨碍管理装置12和被管理装置14A的承担适当的安全协议角色。
因为管理员为被管理装置14A和管理装置12都配置了HMAC密钥38,HMAC密钥38通常地被设置为管理员容易记住的值,这是由于管理员可能不会接连地配置每一个,也不愿写下用于提供更保密的密钥的一长串随机数字。因此,HMAC密钥38可代表会被称作“首次连接一次性密码”的密码。即,HMAC密钥38会用于最初地配置穿过公共网络18的加密通道,但仅用于首次连接。在形成首次连接之后,主机管理应用程序20A和客户端管理应用程序20B会同意更为保密的HMAC密钥38,根据RFC 2104产生新主机密钥34和HMAC 36,并如上文所述将此信息存储到数据库24。为了连续连接,管理应用程序20B会应用更安全的HMAC密钥38。
图3是示出了根据本文描述的服务器发起的安全网络连接技术所生成的角色颠倒消息44的示例性格式的视图。在此实例中,角色颠倒消息44包括大量字段46A-46E。作为实线框示出的字段46A-46C指示这些可能在一个实施例中是需要的字段,其应该在每次生成角色颠倒消息44时被指定。作为虚线框示出的字段46D-46E指示这些是可选字段,其不需在每次产生角色颠倒消息44时被指定。
如上所述,包含于被管理装置(诸如,被管理装置14A)中的角色颠倒模块(诸如图2中的角色颠倒模块26B)会在被管理装置为与管理装置通信而建立网络堆栈时动态地产生角色颠倒消息44。角色颠倒模块26B会在消息ID字段46A中指定消息标识符(ID)。消息ID会指示序列号或其他某个标识符用于在角色颠倒消息的序列中确定角色颠倒消息44的各自顺序。角色颠倒模块26B还会在消息版本字段46B中指定消息版本。消息版本指示版本角色颠倒消息44,诸如消息44只包含强制字段46A-46C或包括强制字段以及可选字段46A-46E,或是否根据第一版本或第二新近版本来确定消息44。此外,角色颠倒模块26B会指定装置ID(诸如装置ID40)、装置ID字段46C。如上所述,装置ID 40会包括分配到每个装置(包括被管理装置14)的唯一标识符,其处于管理装置12的管理之下。
角色颠倒模块26B可选地在各自的主机密钥字段46D和HMAC字段46E中指定主机密钥(如主机密钥34)和HMAC(如HMAC36)。这些字段46D-46E可能是可选的,因为被管理装置14A在形成TCP会话之前可能未被配置有主机密钥34和HMAC 36,因此SSH会话最初会是不安全的。因此,角色颠倒模块26B仅当形成TCP会话之前管理员已配置HMAC密钥38而客户端管理应用程序20B已产生主机密钥34的情况下,会在各自的字段46D-46E指示主机密钥34和HMAC 36。由于主机密钥34和HMAC36可以在公共或不安全的连接(如TCP会话)上自由传输而不必担忧这些值被破坏,因此它们被都可以称为“公钥”。然而,HMAC密钥38可被称为“私钥”或“秘密密钥”,因此不能在公共或不安全的连接上自由交换,所以在示例性的角色颠倒模块44中不存在HMAC密钥字段。可经由某一其他更安全的方法配置HMAC密钥38,诸如通过管理员本地交互或经由与由一个或双方用户界面模块32表示的与用户界面的安全远程连接,因而保护了随后的SSH连接的安全性。
图4是示出了根据本文描述的服务器发起的安全网络连接技术在建立安全连接时的管理装置和被管理装置的示例性操作的流程图。图4中示出的流程图已经被分为五个截然不同的部分,其中每个都示出了不同的角色。左手部分示出了在执行其不同角色过程中管理装置执行的操作,出于说明的目的,将参照图2的管理装置12来描述。右手部分示出了在执行其不同角色时由被管理装置执行的操作,出于说明的目的,将参照图2的被管理装置14A来描述。此外,管理装置12和被管理装置14A的操作已经按照关于如下功能而被分开:(i)建立TCP会话,(ii)动态地颠倒客户端/服务器角色,(iii)在TCP会话上建立SSH会话。
更具体地,左上部分示出了管理装置12为了在接受TCP会话中承担TCP服务器角色所执行的操作。左中部分示出了验证和角色颠倒功能,而左下部分示出了管理装置12为了在SSH会话中承担SSH客户端角色所执行的操作。右上部分示出了被管理装置14A为了在TCP会话中承担TCP客户端角色所执行的操作。右中部分示出了被管理装置14A的角色颠倒操作,而右下部分示出了被管理装置14A为了承担SSH会话的SSH服务器角色所执行的操作。
最初,管理员、自动脚本或其他某种装置通过如上所述的在数据库24A中指定HMAC密钥38和SSH验证信息42来配置管理装置12。如果管理员或其他用户执行此配置,他们会经由被用户界面模块32A表示的用户界面执行此配置。管理装置12还通常生成装置ID40,例如管理员记录该装置ID,用于配置管理装置14A(48)。然后,管理员、自动脚本或其他某种装置通过如上所述的在数据库24B中指定装置ID40、HMAC密钥38和SSH验证信息42来配置被管理装置14A。再次,此配置可经由用户界面模块32B表示的用户界面而出现。
通过上述TCP发起技术中的一个(如,周期性TCP发起),客户端管理应用程序20B发起与主机管理应用程序20A(充当TCP服务器)的TCP会话(52)。TCP28A通过发送SYN-ACK消息和接收ACK消息而作为依照TCP的TCP服务器来接受TCP会话(54)。一旦成功建立TCP会话,客户端管理应用程序20B就应用角色颠倒模块26B将角色颠倒消息(如图3的角色颠倒消息44)传输到角色颠倒模块26A(56)。角色颠倒模块26A以两种方法中的任一种校验角色颠倒消息(58)。
在第一实例中,其中该角色颠倒消息是第一版本(例如,只包括字段46A-46C),角色颠倒模块26A只会接收存储于数据库24B上的装置ID 40并使其与存储于数据库24A上的装置ID 40相比较(60)。如果这两个装置ID 40不匹配(例如,存储于数据库24B上的装置ID 40还未被存储在数据库24A),则主机管理应用程序20A会结束TCP会话(62),因此避免了经由SSH 30A的进一步动作。在另一实例中,其中该角色颠倒消息是第二版本(例如,包括所有字段46A-46E),角色颠倒模块26A会将存储于数据库24B上的装置ID 40与存储于数据库24A上的装置ID 40相比较。如果它们不匹配(例如,存储于数据库24B上的装置ID 40还未被存储在数据库24A),则主机管理应用程序20A还是会结束TCP会话(62)。实例间的差别在每个已成功匹配了装置ID 40之后而显现。
在第一实例中,一旦成功匹配装置ID 40(60),角色颠倒模块26A就调用SSH 30A并指示SSH 30A通过TCP会话发起与客户端管理应用程序20B的SSH会话,客户端管理应用程序因此就充当SSH服务器。然而,在第二实例中,角色颠倒模块26A会根据上文结合的RFC 2104使用其存储于数据库24A的HMAC密钥38来分别验证经由主机密钥及HMAC字段46D、46E所发送的主机密钥和HMAC值。
如果主机管理应用程序20A管理多个被管理装置14,则数据库24A会存储使主机密钥34、HMAC36、HMAC密钥38、装置ID40和SSH验证信息42的每一个都彼此相关的数据库记录,且可能包括对于每个被管理装置14的相似记录。主机管理应用程序20A会使用由装置ID字段46C所发送的装置ID作为查询密钥来查询适当的HMAC密钥38。因为在数据库24A中装置ID和HMAC密钥相关联且装置ID是唯一标识符,所以该查询会保证返回适合的HMAC密钥38,主机管理应用程序20A可用它来分别校验在主机密钥字段46D和HMAC字段46E中所发送的主机密钥和HMAC。在任何情况下,如果SSH 30A不能根据RFC 2104校验这些值(60),则其可能结束TCP会话62。如果这些值可以被校验,则SSH 30A如上所述的通过TCP会话进行发起SSH会话(64)。
如上文的进一步描述,SSH 30B通过对于SSH验证信息42(例如,密码和用户名)而提示SSH 30A(例如,SSH客户端),来对SSH发起请求进行回复(66)。响应于此提示,SSH 30A向SSH 30B(其校验SSH验证信息42)传输SSH验证信息42(68、70)。SSH30B会通过将其与存储在数据库24B的SSH验证信息42相比较来校验接收到的SSH验证信息42(72)。再次,数据库24B会存储与数据库24A的关联相似的多个关联,但仅仅是这些关联可能是对于管理装置的而非对于被管理装置的。如果这些不匹配,则SSH 30B结束SSH会话(74)。然而,如果这些匹配,则SSH30B确认与充当SSH客户端的SSH 30A的SSH会话(76)。因此,可根据服务器发起的安全网络连接技术在管理装置和被管理装置之间建立安全连接而不考虑防火墙(诸如,防火墙16)。
尽管本文描述了关于克服实现NAT的防火墙的服务器发起的安全网络连接技术,而通过将TCP连接与SSH连接相分离的技术还在配置管理装置和各自的被管理装置之间的会话中实现了更多的灵活性。例如,管理装置12还可管理其他不处于NAT防火墙(如防火墙16)之后的装置。管理装置12可能不需要这些未阻挡装置来发起TCP会话,而是,管理装置12会发起TCP会话以及SSH会话。如上所述的,管理装置12还会需要被管理装置14来发起TCP会话;然而,通过使SSH角色独立于TCP角色,管理装置12将在大范围配置中管理装置的更大灵活性呈现给管理员。
当如果一些或全部被管理装置14从防火墙16后面被移动则管理员可能需要重新配置装置时,这是特别有用的。管理员不需交换存储在数据库24中的安全信息,而是会重新配置装置12、14来运行,从而使管理装置12与那些未处在防火墙16后面的被管理装置14建立TCP会话。管理装置12不需要对于SSH被重新配置;管理装置仍发起SSH会话以便使所有存于数据库24的信息都不需被交换。因此,服务器发起的安全网络连接技术会通过使重新配置不那么繁琐并且更安全,而使被管理装置14的这种重新配置更加便利。
图5A-5B是示出了由用户界面模块表示的示例性用户界面78A和78B的屏幕截图,每个用户界面模块都在各自的根据本发明的原理操作的管理装置和被管理装置中执行。图5A是示出了由在管理装置(如管理装置12)中执行的用户界面模块(如用户界面模块32A)呈现的用户界面78A的屏幕截图。图5B是示出了由在被管理装置(如被管理装置14A)中执行的用户界面模块(如用户界面模块32B)表示的用户界面78B的屏幕截图。管理员或其他某一用户可与每个用户界面78A、78B(“用户界面78”)交互来配置各自的管理装置12和被管理装置14A,从而使这些装置根据本文描述的技术运行。
如图5A所示,用户界面78A包括字段80A-80C和按钮82A、82B。装置ID字段80A(图5A中标注为“Unique External ID”)提供了一个显示字段或者可能的输入字段用来显示由主机管理应用程序20A产生的装置ID40或者还可能用来使管理员能够分别指定装置ID40。用户名输入字段80B(图5A中标注为“Admin UserName”)允许管理员输入用户名(其存储在数据库24A的SSH验证信息42中)。显示字段80C示出了一系列可以指导用户配置不仅是管理装置12也可以是被管理装置14A的指令。密码按钮82A(图5A中标注为“Admin User Password”)允许管理员(当被选择时)指定密码,该密码存储在数据库24A的SSH验证信息42中。密码按钮82B(标注为“First Connection One-Time-Password”)使管理员(当被选择时)能够指定数据库24A的首次连接一次性密码或HMAC密钥38。这样,管理员可以与用户界面78A交互来经由装置ID字段80A观看产生的装置ID 40并经由用户名输入80B、密码按钮82A和密码按钮82B指定SSH验证信息42和HMAC密钥38。
如图5B所示,用户界面78B包括字段80D、80E和按钮82C、82D。装置ID字段80D(图5B中标注为“app-id”)提供了用于指定由主机管理应用程序20A所产生的装置ID 40的输入字段。根据显示字段80C的指示,管理员将键入在装置ID字段80A中示出的装置ID到装置ID字段80D中。因此,图5B示出了键入到装置ID字段80D的该装置ID 40。用户名输入字段80E(图5B中标注为“Admin User Name”)允许管理员输入用户名,其存储在数据库24B的SSH验证信息42中,这与用户名输入字段80B相似。密码按钮82C(图5B中标注为“Admin User Password”)允许管理员(当被选择时)指定密码,该密码存储在数据库24B的SSH验证信息42中,这与密码按钮82A相似。密码按钮82D(标注为“First ConnectionOne-Time-Password”)使管理员(当被选择时)能够指定数据库24B的首次连接一次性密码或HMAC密钥38,这与密码按钮82B相似。这样,管理员可以与用户界面78B交互以经由装置ID字段80D、用户名输入80B、密码按钮82A和密码按钮82B来指定产生的装置ID40、SSH验证信息42和HMAC密钥38。
虽然用户界面78被示为包括大量不同字段80A-80E和按钮82A-82D,但是用户界面78可包括任何类型的字段、输入、按钮或能够使用户观看和/或输入HMAC密钥38、装置ID 40以及SSH验证信息42的其他用户界面组件。例如,用户界面78可包括单选类型的按钮,其允许用户选择多种用户名选择的任何一种。用户界面78还能示出输入字段来接受上述每个密码。该密码输入字段可以在键入字母的地方呈现星号以避免观看者损害由密码提供的安全性。因此,本文描述的用户界面78仅是实例而不应限制本文描述的服务器发起的安全网络连接技术的范围。
已经描述了本发明的多个实施例。这些或其他实施例都在所附权利要求书的保护范围内。

Claims (25)

1.一种方法,包括:
用管理装置接收初始传输控制协议(TCP)同步(SYN)数据包,所述初始传输控制协议同步数据包由作为TCP客户端的被管理装置输出,以作为发起所述管理装置和所述被管理装置之间的TCP会话的请求;
从所述管理装置输出TCP同步确认(SYN-ACK)的数据包,以使所述管理装置作为TCP服务器接受所述TCP会话;
在建立所述TCP会话之后,用所述管理装置接收由所述被管理装置输出的角色颠倒消息,所述角色颠倒消息指定所述被管理装置的身份;以及
一旦接收到所述角色颠倒消息,就用所述管理装置根据安全外壳(SSH)协议通过所述TCP会话发起安全外壳(SSH)连接,以便使所述管理装置充当所述SSH协议的客户端,而所述被管理装置充当所述SSH协议的所述服务器。
2.根据权利要求1所述的方法,其中,所述SSH协议应用非对称验证方案来建立所述管理装置与所述被管理装置之间的安全连接。
3.根据权利要求2所述的方法,其中,所述SSH协议通过要求充当所述SSH客户端的所述管理装置将用户名和密码验证信息提供给充当所述SSH服务器的所述被管理装置来应用非对称验证方案。
4.根据权利要求1所述的方法,其中,接收所述初始TCP SYN数据包包括:用所述管理装置从安全装置接收由所述被管理装置输出的所述初始TCP SYN数据包,所述安全装置将所述被管理装置与所述管理装置分离。
5.根据权利要求4所述的方法,其中,接收所述初始TCP SYN数据包还包括:用所述管理装置接收由所述被管理装置输出的初始TCP SYN数据包,且依据所述初始TCP SYN数据包,所述安全装置通过重写所述TCP SYN数据包的源网际协议(IP)地址字段来执行网络地址转换,以使所述源IP地址字段指定公共IP地址,而非被分配到所述被管理装置的专用IP地址。
6.根据权利要求4所述的方法,其中,接收所述角色颠倒消息包括:用所述管理装置从所述安全装置接收用于指定所述被管理装置身份的所述角色颠倒消息。
7.根据权利要求4所述的方法,其中,发起所述SSH连接包括:一旦接收到所述角色颠倒消息,就利用所述管理装置通过所述安全装置,来根据所述SSH协议通过所述TCP会话发起所述SSH连接,从而所述管理装置充当所述SSH协议的所述客户端而所述被管理装置充当所述SSH协议的所述服务器。
8.根据权利要求7所述的方法,还包括:用所述管理装置接收多个SSH消息,所述安全装置根据所述SSH消息执行网络地址转换,其中,所述安全装置通过重写所述SSH消息的源网际协议(IP)地址字段来执行网络地址转换,以使所述源IP地址字段指定公共IP地址,而非被分配到所述被管理装置的专用IP地址。
9.根据权利要求1所述的方法,
其中,接收所述初始TCP SYN数据包包括:接收由作为所述TCP客户端的被管理装置输出的所述初始TCP SYN数据包,以作为发起所述管理装置和所述被管理装置之间的持续TCP会话、周期TCP会话、以及按需TCP会话之一的请求,以及
其中,发起所述SSH连接包括:通过所述持续TCP会话、所述周期TCP会话、和所述按需TCP会话中的一个发起所述SSH连接。
10.根据权利要求1所述的方法,其中,接收所述角色颠倒消息包括:用所述管理装置接收用于指定消息标识符(ID)、消息版本、装置ID、主机密钥、以及键入散列(keyed-hash)消息验证码(HMAC)中的三个或更多个的角色颠倒消息。
11.根据权利要求1所述的方法,还包括:
经由所述管理装置的用户界面模块所呈现的第一用户界面接收来自用户的输入,以建立所述管理装置和所述被管理装置之间的安全连接,其中所述输入用于指定键入散列的消息验证码(HMAC)密钥和由所述SSH协议使用的安全协议验证信息;
生成用于配置所述被管理装置的装置标识符(ID);以及
经由所述用户界面向所述用户呈现所述装置ID。
12.一种管理至少一个远程装置的装置,所述装置包括:
控制单元,所述控制单元用于:
接收初始传输控制协议(TCP)同步(SYN)数据包,所述初始传输控制协议同步数据包由多个远程被管理装置中的一个作为TCP客户端输出,以作为发起所述管理装置和所述被管理装置之间的TCP会话的请求;
向所述被管理装置输出TCP同步确认(SYN-ACK)的数据包,以使所述被管理装置作为TCP服务器接受所述TCP会话;
在建立所述TCP会话之后,接收由所述被管理装置输出的角色颠倒消息,所述角色颠倒消息指定所述被管理装置的身份;以及
一旦接收到所述角色颠倒消息,就根据安全外壳(SSH)协议通过所述TCP会话发起安全外壳(SSH)连接,以使所述管理装置充当所述SSH协议的客户端而所述被管理装置充当所述SSH协议的所述服务器。
13.根据权利要求12所述的装置,其中,所述SSH协议利用非对称验证方案来建立所述管理装置和所述被管理装置之间的安全连接。
14.根据权利要求13所述的装置,其中,所述SSH协议通过要求充当所述SSH客户端的所述管理装置将用户名和密码验证信息提供给充当所述SSH服务器的所述被管理装置来应用非对称验证方案。
15.根据权利要求12所述的装置,其中,所述控制单元通过从安全装置接收由所述被管理装置输出的所述初始TCP SYN数据包来接收所述初始TCP SYN数据包,所述安全装置将所述被管理装置与所述管理装置分离。
16.根据权利要求15所述的装置,其中,所述控制单元还通过接收由所述被管理装置输出的初始TCP SYN数据包来接收所述初始TCP SYN数据包,且依靠所述初始TCP SYN数据包,所述安全装置通过重写所述TCP SYN数据包的源网际协议(IP)地址字段来执行网络地址转换,以使所述源IP地址字段指定公共IP地址,而非被分配到所述被管理装置的专用IP地址。
17.根据权利要求15所述的装置,其中,所述控制单元通过从所述安全装置接收用于指定所述被管理装置身份的角色颠倒消息来接收所述角色颠倒消息。
18.根据权利要求15所述的装置,其中,一旦接收到所述角色颠倒消息,所述控制单元通过根据所述SSH协议在所述TCP会话上发起通过所述安全装置的所述SSH安全连接来发起所述SSH连接,以使所述管理装置充当所述SSH协议的所述客户端而所述被管理装置充当所述SSH协议的所述服务器。
19.根据权利要求18所述的装置,其中,所述控制单元还从所述被管理装置接收多个SSH消息,所述安全装置根据所述SSH消息执行网络地址转换,其中,所述安全装置通过重写所述SSH消息的源网际协议(IP)地址字段来执行网络地址转换,以使所述源IP地址字段指定公共IP地址,而非被分配到所述被管理装置的专用IP地址
20.根据权利要求12所述的装置,
其中所述控制单元通过接收由作为所述TCP客户端的被管理装置所输出的所述初始TCP SYN数据包来接收所述初始TCP SYN数据包,所述初始TCP SYN数据包作为发起所述管理装置和所述被管理装置之间的持续TCP会话、周期TCP会话、以及按需TCP会话之一的请求,以及
其中,所述控制单元通过所述持续TCP会话、所述周期TCP会话、和所述按需TCP会话中的一个发起所述SSH连接来发起所述SSH连接。
21.根据权利要求12所述的装置,其中所述控制单元通过用所述管理装置接收用于指定消息标识符(ID)、消息版本、装置ID、主机密钥、以及键入散列的(keyed-hash)消息验证码(HMAC)中的三个或更多个的角色颠倒消息来接收所述角色颠倒消息。
22.根据权利要求12所述的装置,其中所述控制单元还:
(i)显示用户界面,
(ii)经由所述用户界面接收来自用户的输入,以建立所述管理装置和所述被管理装置之间的安全连接,其中所述用户界面指定键入散列的消息验证码(HMAC)密钥和由所述SSH协议使用的安全协议验证信息,
(iii)生成用于配置所述被管理装置的装置标识符(ID),以及
(iv)在所述用户界面中显示所述装置ID。
23.一种管理至少一个远程装置的装置,所述装置包括:
控制单元,所述控制单元用于:
接收初始传输控制协议(TCP)同步(SYN)数据包,所述初始传输控制协议同步数据包由所述多个远程被管理装置中的一个作为TCP客户端输出,以作为发起所述管理装置和所述被管理装置之间的TCP会话的请求;
向所述被管理装置输出TCP同步确认(SYN-ACK)数据包以使所述被管理装置作为TCP服务器接受所述TCP会话;
在建立所述TCP会话之后,接收由所述被管理装置输出的角色颠倒消息,所述角色颠倒消息指定所述被管理装置的身份;
当构造用于与所述被管理装置通信的网络堆栈时,基于所述角色颠倒消息,动态地颠倒所述管理装置的客户端/服务器角色;以及
一旦接收到所述角色颠倒消息,就根据安全外壳(SSH)协议通过所述TCP会话发起安全外壳(SSH)连接,以便使所述管理装置充当所述SSH协议的客户端而所述被管理装置充当所述SSH协议的所述服务器。
24.根据权利要求23所述的装置,其中,所述控制单元通过在建立所述TCP会话之后且在建立所述网络堆栈的SSH连接部分之前动态地将所述TCP服务器角色颠倒成所述SSH客户端角色,来动态地颠倒所述管理装置的客户端/服务器角色。
25.一种计算机可读介质,包括多个指令,所述指令用来使管理装置的可编程处理器进行以下处理:
接收初始传输控制协议(TCP)同步(SYN)数据包,所述初始传输控制协议同步数据包由作为TCP客户端的管理装置输出,以作为发起所述管理装置和所述被管理装置之间的TCP会话的请求;
从所述管理装置输出TCP同步确认(SYN-ACK)数据包以使所述管理装置作为TCP服务器接受所述TCP会话;
在建立所述TCP会话之后,接收由所述被管理装置输出的角色颠倒消息,所述角色颠倒消息指定所述被管理装置的身份;
当构造用于与所述被管理装置通信的网络堆栈时,基于所述角色颠倒消息,动态地颠倒所述管理装置的客户端/服务器角色;以及
一旦接收到所述角色颠倒消息,就通过所述TCP会话根据安全外壳(SSH)协议发起安全外壳(SSH)连接,以便使所述管理装置充当所述SSH协议的客户端,而所述被管理装置充当所述SSH协议的所述服务器。
CN200810095095.4A 2007-11-14 2008-05-05 服务器发起的安全网络连接 Active CN101437022B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/939,839 2007-11-14
US11/939,839 US8769129B2 (en) 2007-11-14 2007-11-14 Server initiated secure network connection

Publications (2)

Publication Number Publication Date
CN101437022A true CN101437022A (zh) 2009-05-20
CN101437022B CN101437022B (zh) 2013-09-18

Family

ID=40383923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810095095.4A Active CN101437022B (zh) 2007-11-14 2008-05-05 服务器发起的安全网络连接

Country Status (3)

Country Link
US (1) US8769129B2 (zh)
EP (1) EP2061209B1 (zh)
CN (1) CN101437022B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101888383A (zh) * 2010-06-30 2010-11-17 北京交通大学 一种可扩展的可信ssh的实现方法
CN101741842B (zh) * 2009-12-07 2012-07-04 北京交通大学 一种基于可信计算实现可信ssh的方法
CN103227804A (zh) * 2012-01-30 2013-07-31 联发科技股份有限公司 使用帐户代理模块连接超级用户帐户命令解译器的方法
WO2013152718A1 (zh) * 2012-04-10 2013-10-17 中兴通讯股份有限公司 一种路径计算单元通信协议会话建立方法及装置
WO2014106486A1 (zh) * 2013-01-06 2014-07-10 联发科技(新加坡)私人有限公司 快速恢复方法及其装置

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720936B2 (en) 2007-03-12 2010-05-18 Citrix Systems, Inc. Systems and methods of freshening and prefreshening a DNS cache
US8504775B2 (en) * 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US7783757B2 (en) 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US8701010B2 (en) 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US8103783B2 (en) * 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US20090129301A1 (en) * 2007-11-15 2009-05-21 Nokia Corporation And Recordation Configuring a user device to remotely access a private network
US8868764B2 (en) * 2009-12-18 2014-10-21 Centurylink Intellectual Property Llc System and method for management of ethernet premise devices
US10051074B2 (en) * 2010-03-29 2018-08-14 Samsung Electronics Co, Ltd. Techniques for managing devices not directly accessible to device management server
US8683053B2 (en) * 2010-12-28 2014-03-25 Sonus Networks, Inc. Methods and apparatus for establishing secure communications between client computing devices that use transport and security protocols
US9104993B2 (en) * 2011-04-28 2015-08-11 Lantronix, Inc. Asset management via virtual tunnels
US8868913B1 (en) 2011-09-29 2014-10-21 Juniper Networks, Inc. Automatically authenticating a host key via a dynamically generated certificate using an embedded cryptographic processor
US9537899B2 (en) * 2012-02-29 2017-01-03 Microsoft Technology Licensing, Llc Dynamic selection of security protocol
CN104272625B (zh) * 2012-03-02 2020-07-14 Ls产电株式会社 通信设备及通信方法
EP2907341B1 (en) 2012-09-25 2020-07-15 Parallel Wireless Inc. Heterogeneous self-organizing network for access and backhaul
GB2514550A (en) 2013-05-28 2014-12-03 Ibm System and method for providing access to a resource for a computer from within a restricted network and storage medium storing same
US9882957B1 (en) * 2013-08-13 2018-01-30 Amazon Technologies, Inc. Client-side endpoint specification in a network service request
US9288272B2 (en) 2014-07-10 2016-03-15 Real Innovations International Llc System and method for secure real-time cloud services
US9100424B1 (en) * 2014-07-10 2015-08-04 Real Innovations International Llc System and method for secure real-time cloud services
US9628445B2 (en) * 2014-10-31 2017-04-18 Ncr Corporation Trusted device control messages
US10419497B2 (en) * 2015-03-31 2019-09-17 Bose Corporation Establishing communication between digital media servers and audio playback devices in audio systems
US10715535B1 (en) 2016-12-30 2020-07-14 Wells Fargo Bank, N.A. Distributed denial of service attack mitigation
US11115480B2 (en) * 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10909010B2 (en) * 2018-04-10 2021-02-02 Nutanix, Inc. Efficient data restoration
FR3081654A1 (fr) * 2018-06-22 2019-11-29 Orange Procede, dispositif et serveur de distribution securisee d'une configuration a un terminal
CN113169953B (zh) * 2018-11-23 2023-05-30 上海诺基亚贝尔股份有限公司 用于验证设备或用户的方法和装置
US11625505B2 (en) * 2019-08-19 2023-04-11 Microsoft Technology Licensing, Llc Processor with network stack domain and system domain using separate memory regions
US20210409403A1 (en) * 2020-06-25 2021-12-30 Microsoft Technology Licensing, Llc Service to service ssh with authentication and ssh session reauthentication
CN111800423A (zh) * 2020-07-06 2020-10-20 中国工商银行股份有限公司 Ip地址的处理方法、系统、计算设备和介质
TWI749892B (zh) * 2020-11-23 2021-12-11 中華電信股份有限公司 安全傳輸系統及其方法
CN113806447A (zh) * 2021-09-24 2021-12-17 深信服科技股份有限公司 一种数据同步方法、装置、设备及介质
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs
US11831715B1 (en) * 2022-10-19 2023-11-28 Dell Products L.P. Scalable ethernet bunch of flash (EBOF) storage system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072946B2 (en) * 2001-05-31 2006-07-04 Juniper Networks, Inc. Network router management interface with API invoked via login stream
US7403995B2 (en) 2003-01-08 2008-07-22 Outhink, Inc. Symmetrical bi-directional communication
CN1949765B (zh) * 2005-10-10 2010-10-13 华为技术有限公司 获得被管设备的ssh主机公开密钥的方法和系统
US20070180512A1 (en) 2005-10-21 2007-08-02 Hewlett-Packard Development Company, L.P. Methods of setting up and operating a reverse channel across a firewall

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741842B (zh) * 2009-12-07 2012-07-04 北京交通大学 一种基于可信计算实现可信ssh的方法
CN101888383A (zh) * 2010-06-30 2010-11-17 北京交通大学 一种可扩展的可信ssh的实现方法
CN101888383B (zh) * 2010-06-30 2013-07-31 北京交通大学 一种可扩展的可信ssh的实现方法
CN103227804A (zh) * 2012-01-30 2013-07-31 联发科技股份有限公司 使用帐户代理模块连接超级用户帐户命令解译器的方法
CN103227804B (zh) * 2012-01-30 2016-12-21 联发科技股份有限公司 使用帐户代理模块连接超级用户帐户命令解译器的方法
WO2013152718A1 (zh) * 2012-04-10 2013-10-17 中兴通讯股份有限公司 一种路径计算单元通信协议会话建立方法及装置
US9948722B2 (en) 2012-04-10 2018-04-17 Zte Corporation Path computation element communication protocol session establishment method and device
WO2014106486A1 (zh) * 2013-01-06 2014-07-10 联发科技(新加坡)私人有限公司 快速恢复方法及其装置
CN104904269A (zh) * 2013-01-06 2015-09-09 联发科技(新加坡)私人有限公司 快速恢复方法及其装置
US9936404B2 (en) 2013-01-06 2018-04-03 Mediatek Singapore Pte. Ltd. Methods and apparatuses for fast recovery
CN104904269B (zh) * 2013-01-06 2019-04-23 联发科技(新加坡)私人有限公司 快速恢复方法及其装置

Also Published As

Publication number Publication date
EP2061209A1 (en) 2009-05-20
US20090125633A1 (en) 2009-05-14
EP2061209B1 (en) 2018-08-15
US8769129B2 (en) 2014-07-01
CN101437022B (zh) 2013-09-18

Similar Documents

Publication Publication Date Title
CN101437022B (zh) 服务器发起的安全网络连接
US11936786B2 (en) Secure enrolment of security device for communication with security server
US7853983B2 (en) Communicating data from a data producer to a data receiver
CN109120620B (zh) 一种服务器管理方法及系统
US20030140223A1 (en) Automatic configuration of devices for secure network communication
MX2012015175A (es) Sistema y metodo para mensajeria segura en una red hibrida entre iguales.
CN106257888A (zh) 用于私有通信架构的私有云端路由服务器连接机制
US20230037520A1 (en) Blockchain schema for secure data transmission
JP2010532126A (ja) トラストセンターリンクキーを初期化するネットワーク及び方法
CN102714653B (zh) 用于访问私人数字内容的系统和方法
US20230328047A1 (en) Platform and Method for Automated Moving Target Defense
US11870899B2 (en) Secure device access recovery based on validating encrypted target password from secure recovery container in trusted recovery device
CN114629678A (zh) 一种基于tls的内网穿透方法及装置
JP7433620B1 (ja) 通信方法、通信装置及びコンピュータプログラム
EP4057588A1 (en) Secure key management device, authentication system, wide area network and method for generating session keys
US20230283593A1 (en) Systems and methods for providing access to applications and services running on a private network
Ajayi et al. Fostering a Secure Framework for National Research and Education Network
Skendaj et al. Secure File Sharing in JXTA Using Digital Signatures
CA2316428A1 (en) System and method for provisioning a virtual private network

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
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Juniper Networks, Inc.

Address before: California, USA

Patentee before: Jungle network

CP01 Change in the name or title of a patent holder