CN114629678A - 一种基于tls的内网穿透方法及装置 - Google Patents

一种基于tls的内网穿透方法及装置 Download PDF

Info

Publication number
CN114629678A
CN114629678A CN202111671733.4A CN202111671733A CN114629678A CN 114629678 A CN114629678 A CN 114629678A CN 202111671733 A CN202111671733 A CN 202111671733A CN 114629678 A CN114629678 A CN 114629678A
Authority
CN
China
Prior art keywords
intranet
tls
client
reverse tunnel
server
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
CN202111671733.4A
Other languages
English (en)
Other versions
CN114629678B (zh
Inventor
陈方义
梁文鹏
薛玲
刘晓霞
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.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
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 Nsfocus Technologies Inc, Nsfocus Technologies Group Co Ltd filed Critical Nsfocus Technologies Inc
Priority to CN202111671733.4A priority Critical patent/CN114629678B/zh
Publication of CN114629678A publication Critical patent/CN114629678A/zh
Application granted granted Critical
Publication of CN114629678B publication Critical patent/CN114629678B/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
    • 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
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

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

本申请涉及网络安全技术领域,尤其涉及一种基于TLS的内网穿透方法及装置。用于解决已有技术下传统内网穿透方案存在部署成本高昂、安全性低下的问题,该方法为:外网服务端接收内网客户端发送的TLS反向隧道创建请求,并基于TLS反向隧道创建请求,建立TLS反向隧道,然后,通过TLS反向隧道将内网访问请求对应的内网访问数据发送至内网客户端,以及通过TLS反向隧道接收内网客户端发送的内网访问数据对应的待访问内网应用的响应数据,将待访问内网应用的响应数据转发至目标终端;这样,在不增加内网应用的资源暴露面的前提下,实现外网服务端侧的外网用户访问内网客户端的内网应用的效果,实现内网穿透,增强网络安全。

Description

一种基于TLS的内网穿透方法及装置
技术领域
本申请涉及网络安全技术领域,尤其涉及一种基于TLS的内网穿透方法及装置。
背景技术
随着网络服务的崛起,人们对内部网络的访问需求逐渐增加。传统的内网穿透方案是使用专线、虚拟专用网络(Virtual Private Network,VPN)和安全外壳协议(SecureShell,SSH),通过隧道连接来实现从外网访问内部网络。
然而,已有技术下,采用专线、VPN进行内外网访问,存在部署成本高、后续需要专人进行账号密码管理、网络管理等相关维护操作;而采用SSH进行内外网访问,因为完整的SSH包括反向隧道、命令执行功能和正向隧道等内容,当某个客户端使用的秘钥泄露,整个服务端即会被攻陷,这样,导致所有客户端存在被暴露的风险。
综上,需要设计一种新的方法,以解决上述问题。
发明内容
本申请实施例提供一种基于TLS的内网穿透方法及装置,用以解决已有技术下传统内网穿透方案存在部署成本高昂、维护复杂、安全性低下的问题。
本申请实施例提供的具体技术方案如下:
第一方面,本申请实施例提供一种基于传输层安全性协议TLS的内网穿透方法,应用于外网服务端,所述方法包括:
接收内网客户端发送的TLS反向隧道创建请求,并基于所述TLS反向隧道创建请求,在所述外网服务端和所述内网客户端之间建立TLS反向隧道,以及将所述TLS反向隧道创建成功消息发送至所述内网客户端;
通过所述TLS反向隧道将内网访问请求对应的内网访问数据发送至所述内网客户端,以及通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端;
其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的所述待访问内网应用部署在所述内网客户端中。
上述方法,由于仅保留了TLS标准中定义的反向隧道和身份认证功能,这样,即使外网服务端的任意一个外网用户的用户信息对应的密钥信息被攻击者窃取,攻击者也只能将自身的服务映射到外网服务端,但由于没有标准SSH中的正向隧道、命令执行通道等内容,攻击者也不能对外网服务端以及其他的外网用户对应的外网客户端造成安全威胁,从而在不增加内网应用的资源暴露面的前提下,实现外网服务端侧的外网用户访问内网客户端的内网应用的效果,实现内网穿透,提高了网络安全性,降低了密钥泄露对外网客户端带来的安全风险。
在一些实施例中,在接收内网客户端发送的TLS反向隧道创建请求之前,还包括:
接收所述内网客户端发送的TLS连接请求,并基于所述预设位数的随机数,对所述TLS连接请求包含的所述密钥信息进行解密,以及基于所述秘钥对解密后的所述密钥信息进行身份验证;
在确定通过身份验证后,在所述外网服务端和所述内网客户端之间建立TLS连接,以及将所述TLS连接创建成功消息发送至所述内网客户端。
上述方法,采用TLS标准中定义的身份验证(即,预设位数的随机数(口令)+秘钥)对TLS连接请求进行身份验证,从而提高密钥信息的安全性。
在一些实施例中,通过执行如下操作,在所述外网服务端和所述内网客户端之间建立TLS连接:
基于所述TLS反向隧道创建请求分配所述待访问内网应用对应的第一内网端口,并基于所述第一内网端口,在本地部署所述内网客户端的传输控制协议TCP客户映射端;
基于所述第一内网端口,以及所述TLS反向隧道创建请求包含的第二内网端口,在所述TCP客户映射端和所述内网客户端的TCP服务映射端之间建立所述TLS反向隧道;
其中,所述TCP服务映射端是所述内网客户端基于配置信息在本地部署的,所述配置信息是所述内网用户基于所述密钥信息设置的。
上述方法,外网服务端基于TLS协议,统一为外网用户分配第一内网端口,并通过将TLS反向隧道与外网用户的用户信息进行绑定,使得基于TLS的内网穿透系统在后续通过网关模块基于映射关系集合进行比对时,变得方便简洁,更使得上层系统使用方便。
在一些实施例中,所述通过所述TLS反向隧道将所述内网访问请求对应的内网访问数据发送至所述内网客户端,包括:
通过所述TCP客户映射端将所述内网访问请求对应的所述内网访问数据发送至所述内网客户端的所述TCP服务映射端;
所述通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的所述待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端,包括:
通过所述TCP客户映射端接收所述内网服务端的所述TCP服务映射端发送的所述内网访问数据对应的所述待访问内网应用的响应数据,并通过所述TCP客户映射端将所述待访问内网应用的响应数据转发至所述目标终端。
上述方法,在外网服务端和内网客户端之间建立TLS反向隧道后,在外网服务端中部署TCP客户映射端,相应的,在内网客户端中部署TCP服务映射端,通过控制TCP客户映射端将数据原样转发到TCP服务映射端,就会出现如下效果:访问TLS服务端模块207上的TCP客户映射端,等同于访问TLS客户端模块107上的TCP服务映射端,从而实现了内网穿透。
在一些实施例中,在所述将所述待访问内网应用的响应数据转发至目标终端之后,还包括:
接收所述内网服务端发送的断开TLS连接指令,并基于所述断开TLS连接指令,断开所述TLS连接请求对应的TLS连接,所述断开TLS连接指令是所述内网客户端基于所述内网用户的点击操作生成的;
接收外网用户发出的吊销密钥信息指令,基于所述吊销密钥信息指令,断开所述TLS反向隧道,回收所述TLS反向隧道对应的第一内网端口,并生成断开TLS反向隧道指令,以及将所述断开TLS反向隧道指令发送至所述内网客户端。
上述方法,若没有人工介入,在外网服务端和内网客户端之间的TLS连接、TLS反向隧道将一直可以用于通信,因此,为了提高网络资源利用率,将不使用或一段时间不使用的TLS连接、TLS方向隧道断开,可以及时释放网络资源,降低网络运行负荷,提高网络性能。
在一些实施例中,所述外网服务端还包括网关模块,所述网关模块配置有公网地址,所述方法包括:
基于所述公网地址与所述内网服务端进行TLS会话的数据传输,其中,所述TLS会话包括所述TLS连接请求、所述TLS反向隧道创建请求和通过所述TLS反向隧道传输的每个数据中的任意一个,每个TLS会话均携带所述密钥信息。
上述方法,通过网关模块的路由功能,实现在符合路由规则的情况下,内网客户端的TLS客户端模块与外网服务端的TLS服务端模块之间的TLS会话的转发,在不增加内网应用的资源暴露面的前提下,实现内网穿透。
在一些实施例中,所述基于所述公网地址与所述内网服务端进行TLS会话的数据传输,包括:
通过所述网关模块采用预设特征提取算法,提取所述TLS会话携带的所述密钥信息的特征,并将映射关系集合和所述密钥信息的特征进行比对,基于比对结果判断所述密钥信息的特征是否包含在所述映射关系集合中;
若通过所述网关模块判定所述密钥信息的特征不包含在所述映射关系集合中,则将所述TLS会话路由至所述外网服务端的新分配的第一内网端口;
或者,
若通过所述网关模块判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端未处于存活状态,则将所述TLS会话路由至所述外网服务端的新的分配的第一内网端口;
或者,
若通过所述网关模块判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端处于存活状态,则将所述TLS会话路由至所述外网服务端的历史记录的第一内网端口;
其中,所述映射关系集合包括至少一个映射关系,每个映射关系包括相应的外网用户的用户信息、所述相应的外网用户对应的密钥信息的特征,以及所述相应的外网用户关联的第一内网端口和第二内网端口,所述第一内网端口是所述外网服务端为所述相应的外网用户分配的端口,所述第二内网端口是所述内网客户端基于所述相应的外网用户对应的密钥信息,为所述相应的外网用户设置的端口。
上述方法,由于设置了上述特定的路由规则,因此,通过简易的路由机制,使网关模块及时将需要建立TLS连接和/或TLS反向隧道的socket链接请求路由至外网服务端,从而及时建立TLS连接和/或TLS反向隧道,进而顺利实现外网服务端和内网客户端的数据传输。
进一步地,本方案中仅将网关模块配置公网地址,从而实现基于该公网地址与内网客户端进行TLS会话的数据传输,这样,在不必增加内网应用在公网上的资源暴露面的前提下,实现内网穿透功能,也提高了上述基于TLS的内网穿透系统的外网服务端的横向扩容能力。
在一些实施例中,所述方法还包括:
通过所述网关模块判断所述心跳信息对应的TLS反向隧道的状态信息,并基于所述状态信息向所述内网客户端反馈所述心跳信息的回复信息。
上述方法,由于网关模块与外网服务端的TLS服务端共享数据,这样,当网关模块接收到心跳信息后,可以通过预设的路由协议,由网关模块基于本地存储的映射关系集合,准确判断该心跳信息对应的TLS反向隧道的状态信息,从而及时反馈内网客户端关联的TLS反向隧道的状态信息,即,该TLS反向隧道是否处于连接状态等。
第二方面,本申请实施例提供一种基于传输层安全协议TLS的内网穿透方法,应用于内网客户端,所述方法包括:
向外网服务端发送TLS反向隧道创建请求,其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的待访问内网应用部署在所述内网客户端中;
接收所述外网服务端发送的TLS反向隧道创建成功消息后,通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,以使所述外网服务端将所述待访问内网应用的响应数据转发至目标终端。
在一些实施例中,在所述向外网服务端发送TLS反向隧道创建请求之前,还包括:
向所述外网服务端发送TLS连接请求,并接收所述外网服务端发送的TLS连接创建成功消息。
在一些实施例中,在所述接收所述外网服务端发送的TLS反向隧道创建成功消息后,在通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据之前,还包括:
基于配置信息,在本地部署所述外网服务端的传输控制协议TCP服务映射端,其中,所述配置信息是所述内网用户基于所述密钥信息设置的;
所述通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,包括:
通过所述TCP服务映射端接收所述外网服务端的TCP客户映射端发送的所述内网访问请求对应的内网访问数据,并基于所述内网访问数据,获取所述内网访问数据对应的所述待访问内网应用的响应数据;
通过所述TCP服务映射端将获取到的所述待访问内网应用的响应数据转发至所述外网服务端。
在一些实施例中,所述方法还包括:
向所述外网服务端发送心跳信息,以使所述外网服务端反馈所述心跳信息对应的回复信息,所述回复信息是所述外网服务端通过网关模块判断所述心跳信息对应的TLS反向隧道的状态信息后确定的。
在一些实施例中,在所述通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端之后,还包括:
响应所述内网用户的点击操作,断开所述TLS连接请求对应的TLS连接,并生成断开TLS连接指令,以及将所述断开TLS连接指令发送至所述外网服务端;
接收所述外网服务端发送的断开TLS反向隧道指令,其中,所述断开TLS反向隧道指令是所述外网服务端接收到外网用户的吊销密钥信息指令后发送的;
基于所述断开TLS反向隧道指令,对所述TLS反向隧道执行断开操作,并基于配置信息包含的第二内网端口,回收所述TLS反向隧道对应的所述第二内网端口,所述配置信息是所述内网用户基于所述密钥信息设置的。
第三方面,本申请实施例提供一种基于传输层安全性协议TLS的内网穿透装置,应用于外网服务端,所述装置包括:
隧道建立模块,用于接收内网客户端发送的TLS反向隧道创建请求,并基于所述TLS反向隧道创建请求,在所述外网服务端和所述内网客户端之间建立TLS反向隧道,以及将所述TLS反向隧道创建成功消息发送至所述内网客户端;
转发模块,用于通过所述TLS反向隧道将内网访问请求对应的内网访问数据发送至所述内网客户端,以及通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端;
其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的所述待访问内网应用部署在所述内网客户端中。
在一些实施例中,在所述接收内网客户端发送的TLS反向隧道创建请求之前,所述隧道建立模块还用于:
接收所述内网客户端发送的TLS连接请求,并基于所述预设位数的随机数,对所述TLS连接请求包含的所述密钥信息进行解密,以及基于所述秘钥对解密后的所述密钥信息进行身份验证;
在确定通过身份验证后,在所述外网服务端和所述内网客户端之间建立TLS连接,以及将所述TLS连接创建成功消息发送至所述内网客户端。
在一些实施例中,通过执行如下操作,在所述外网服务端和所述内网客户端之间建立TLS连接:
基于所述TLS反向隧道创建请求分配所述待访问内网应用对应的第一内网端口,并基于所述第一内网端口,在本地部署所述内网客户端的传输控制协议TCP客户映射端;
基于所述第一内网端口,以及所述TLS反向隧道创建请求包含的第二内网端口,在所述TCP客户映射端和所述内网客户端的TCP服务映射端之间建立所述TLS反向隧道;
其中,所述TCP服务映射端是所述内网客户端基于配置信息在本地部署的,所述配置信息是所述内网用户基于所述密钥信息设置的。
在一些实施例中,所述通过所述TLS反向隧道将内网访问请求对应的内网访问数据发送至所述内网客户端,所述转发模块用于:
通过所述TCP客户映射端将所述内网访问请求对应的所述内网访问数据发送至所述内网客户端的所述TCP服务映射端;
所述通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的所述待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端,所述转发模块用于:
通过所述TCP客户映射端接收所述内网服务端的所述TCP服务映射端发送的所述内网访问数据对应的所述待访问内网应用的响应数据,并通过所述TCP客户映射端将所述待访问内网应用的响应数据转发至所述目标终端。
在一些实施例中,在所述将所述待访问内网应用的响应数据转发至目标终端之后,所述转发模块还用于:
接收所述内网服务端发送的断开TLS连接指令,并基于所述断开TLS连接指令,断开所述TLS连接请求对应的TLS连接,所述断开TLS连接指令是所述内网客户端基于所述内网用户的点击操作生成的;
接收外网用户发出的吊销密钥信息指令,基于所述吊销密钥信息指令,断开所述TLS反向隧道,回收所述TLS反向隧道对应的第一内网端口,并生成断开TLS反向隧道指令,以及将所述断开TLS反向隧道指令发送至所述内网客户端。
在一些实施例中,所述装置还包括网关模块,所述网关模块配置有公网地址,所述网关模块用于:
基于所述公网地址与所述内网服务端进行TLS会话的数据传输,其中,所述TLS会话数据包括所述TLS连接请求、所述TLS反向隧道创建请求和通过所述TLS反向隧道传输的每个数据中的任意一个,每个TLS会话均携带所述密钥信息。
在一些实施例中,所述基于所述公网地址与所述内网服务端进行TLS会话的数据传输,所述网关模块用于:
采用预设特征提取算法,提取所述TLS会话携带的所述密钥信息的特征,并将映射关系集合和所述密钥信息的特征进行比对,基于比对结果判断所述密钥信息的特征是否包含在所述映射关系集合中;
若判定所述密钥信息的特征不包含在所述映射关系集合中,则将所述TLS会话路由至所述外网服务端的新分配的第一内网端口;
或者,
若判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端未处于存活状态,则将所述TLS会话路由至所述外网服务端的新分配的第一内网端口;
或者,
若判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端处于存活状态,则将所述TLS会话路由至所述外网服务端的历史记录的第一内网端口;
其中,所述映射关系集合包括至少一个映射关系,每个映射关系包括相应的外网用户的用户信息、所述相应的外网用户对应的密钥信息的特征,以及所述相应的外网用户关联的第一内网端口和第二内网端口,所述第一内网端口是所述外网服务端为所述相应的外网用户分配的端口,所述第二内网端口是所述内网客户端基于所述相应的外网用户对应的密钥信息,为所述相应的外网用户设置的端口。
在一些实施例中,所述网关模块还用于:
判断所述心跳信息对应的TLS反向隧道的状态信息,并基于所述状态信息向所述内网客户端反馈所述心跳信息的回复信息。
第四方面,本申请实施例提供一种基于传输层安全协议TLS的内网穿透装置,应用于内网客户端,所述装置包括:
发送模块,用于向外网服务端发送TLS反向隧道创建请求,其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的待访问内网应用部署在所述内网客户端中;
转发模块,用于接收所述外网服务端发送的TLS反向隧道创建成功消息后,通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,以使所述外网服务端将所述待访问内网应用的响应数据转发至目标终端。
在一些实施例中,在所述向外网服务端发送TLS反向隧道创建请求之前,所述发送模块还用于:
向所述外网服务端发送TLS连接请求,并接收所述外网服务端发送的TLS连接创建成功消息。
在一些实施例中,在所述接收所述外网服务端发送的TLS反向隧道创建成功消息后,在通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据之前,所述转发模块还用于:
基于配置信息,在本地部署所述外网服务端的传输控制协议TCP服务映射端,所述配置信息是所述内网用户基于所述密钥信息设置的;
所述通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,所述转发模块用于:
通过所述TCP服务映射端接收所述外网服务端的TCP客户映射端发送的所述内网访问请求对应的内网访问数据,并基于所述内网访问数据,获取所述内网访问数据对应的所述待访问内网应用的响应数据;
通过所述TCP服务映射端将获取到的所述待访问内网应用的响应数据转发至所述外网服务端。
在一些实施例中,所述发送模块还用于:
向所述外网服务端发送心跳信息,以使所述外网服务端反馈所述心跳信息对应的回复信息,所述回复信息是所述外网服务端通过网关模块判断所述心跳信息对应的TLS反向隧道的状态信息后确定的。
在一些实施例中,在所述通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端之后,所述转发模块还用于:
响应所述内网用户的点击操作,断开所述TLS连接请求对应的TLS连接,并生成断开TLS连接指令,以及将所述断开TLS连接指令发送至所述外网服务端;
接收所述外网服务端发送的断开TLS反向隧道指令,其中,所述断开TLS反向隧道指令是所述外网服务端接收到外网用户的吊销密钥信息指令后发送的;
基于所述断开TLS反向隧道指令,对所述TLS反向隧道执行断开操作,并基于配置信息包含的第二内网端口,回收所述TLS反向隧道对应的所述第二内网端口,所述配置信息是所述内网用户基于所述密钥信息设置的。
第五方面,本申请实施例提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面和第二方面中任一项的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第一方面和第二方面中任一项所述的方法。
另外,第二方面至第六方面中任一一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例中一种基于TLS的内网穿透系统的系统架构示意图;
图2为本申请实施例中一种基于TLS的内网穿透方案的技术原理示意图;
图3为本申请实施例中一种网关模块的路由功能的逻辑示意图;
图4为本申请实施例中一种基于TLS的内网穿透方法的交互流程示意图;
图5为本申请实施例中一种基于TLS的内网穿透方法的流程示意图;
图6为本申请实施例中一种基于TLS的内网穿透方法的流程示意图;
图7为本申请实施例中一种内网穿透装置的逻辑架构示意图;
图8为本申请实施例中一种内网穿透装置的逻辑架构示意图;
图9为本申请实施例中一种电子设备的实体架构示意图;
图10为本申请实施例中一种电子设备的实体架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够在除了这里图示或描述的那些以外的顺序实施。
为了解决已有技术下传统内网穿透方案存在部署成本高昂、维护复杂、安全性低下的问题,本申请实施例中,外网服务端接收内网客户端发送的TLS反向隧道创建请求,并基于TLS反向隧道创建请求,在外网服务端和内网客户端之间建立TLS反向隧道,然后,通过TLS反向隧道将内网访问请求对应的内网访问数据发送至内网客户端,以及通过TLS反向隧道接收内网客户端发送的内网访问数据对应的待访问内网应用的响应数据,从而将待访问内网应用的响应数据转发至目标终端,其中,该TLS反向隧道创建请求是在外网服务端和内网客户端之间建立TLS连接后发送的,该TLS连接是在接收到内网客户端发送的TLS连接请求后建立的,这样,在不增加内网应用的资源暴露面的前提下,实现内网穿透,以增强网络安全,降低密钥泄露对内网客户端带来的安全风险。
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
(2)本申请实施例中术语“VPN”,为虚拟专用网络(Virtual Private Network,VPN)。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。
(3)本申请实施例中术语“SSH”,为安全外壳协议(Secure Shell,SSH),为建立在应用层基础上的安全协议。SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
(4)本申请实施例中术语“TLS”,为传输层安全性协议(Transport LayerSecurity,TLS),及其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
(5)本申请实施例中术语“TCP”,为传输控制协议(Transmission ControlProtocol,TCP),是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
下面结合附图对本申请优选的实施方式做出进一步详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例及实施例中的特征可以相互组合。
图1示出了本申请实施例提供的一种基于TLS的内网穿透系统的系统架构示意图。参阅图1所示,本申请实施例中,该系统包括内网客户端100和外网服务端200,内网客户端100和外网服务端200通过公共网络相连接。
本申请实施例中,内网客户端100包括配置管理模块101、隧道管理模块102、日志管理模块103、数据转发模块104、存储模块105、进程调度模块106、TLS客户端107等,其中,
配置管理模块101,用于存储内网客户端侧的内网用户导入的密钥信息,以及基于密钥信息配置TCP服务映射端的通信地址和第二内网端口,配置密钥信息对应的待访问内网应用的响应数据所在的终端和端口;还用于配置外网服务端的通信地址和端口;
隧道管理模块102,用于创建、终止、暂停、恢复相应的隧道;
日志管理模块103,用于对内网客户端100运行中的隧道的访问信息做记录(如,时间、流量)等;
数据转发模块104,用于TCP转发和Socks5转发等;
存储模块105,用于存储内网客户端100的审计信息等,该模块兼容文件数据库和关系型数据库,可以基于不同的应用场景,进行灵活选择相适应的数据库;
进程调度模块106,用于基于配置信息,调度进程创建隧道链接、数据转发等任务;还用于监控任务状态,以及当某个任务出现异常退出情况后,重新拉起该任务;
TLS客户端107,用于向外网服务端200的TLS服务端207发起TLS会话请求,触发相应端口数据转发。
本申请实施例中,外网服务端200包括项目管理模块201、用户管理模块202、日志管理模块203、权限管理204、密钥管理模块205、隧道管理模块206、TLS服务端(包含身份校验模块)207、网关模块(包含数据路由/心跳模块)208(配置有公网地址,可实现外网服务端200基于该公网地址与内网客户端100进行TLS会话的数据传输),其中,
项目管理模块201,用于录入外网用户2的基础服务信息,提供删除、更新、查找等功能;
用户管理模块202,用于提供外网用户2的用户账号的增、删、查、改等功能;
日志管理模块203,用于对外网服务端200运行中的隧道的访问信息做记录(时间、流量)等;
权限管理模块204,用于控制外网服务端200对服务端数据的可见范围和操作权限;
密钥管理模块205,用于提供TLS通信密钥信息的增、删、查、改功能,外网服务端200的外网用户1可下载密钥信息、分发给内网客户端100;
隧道管理模块206,用于基于外网用户1的点击操作,终止、恢复相应的隧道链接等;
TLS服务端模块207,用于接收到TLS客户端模块107发起的TLS连接请求,并对TLS会话携带的密钥信息进行口令和秘钥校验;具体实施中,基于预设位数的随机数对TLS会话携带的密钥信息进行解密,并基于秘钥对解密后的密钥信息进行身份验证;在确定身份验证非法(即,未通过身份验证)时,将不予处理;在确定身份验证合法(即,通过身份验证)时,与TLS客户端模块107建立TLS连接,以及向内网客户端100发送TLS连接创建成功消息,并在接收到内网客户端100发送的TLS反向隧道创建请求后,在外网服务端200和内网客户端100之间建立TLS反向隧道创建请求,以及为该内网客户端100分配第一内网端口,然后,基于外网用户2的内网访问请求启动该第一内网端口的数据转发任务;
网关模块208,用于接收TLS客户端107发送的心跳信息和TLS会话数据的处理。
图2示出了本申请实施例中提供的一种基于TLS的内网穿透方案的技术原理示意图。参阅图2所示,从协议栈来看,在TLS协议中,再次封装一层TCP协议报文(记为TCP2)。
那么,本申请实施例中,在TLS服务端模块207和TLS客户端模块107之间的TLS连接建立成功后,即在TLS服务端模块207和TLS客户端模块107之间建立了一条虚拟网络通道,记为加密隧道;基于该虚拟网络通道,在TLS客户端模块107上搭建TCP服务映射端,在TLS服务端模块207上搭建TCP客户映射端,这样,通过TLS服务端模块207上的TCP客户映射端来访问TLS客户端模块107上的TCP服务映射端;控制TCP客户映射端将数据原样转发到TCP服务映射端,就会出现如下效果:访问TLS服务端模块207上的TCP客户映射端,等同于访问TLS客户端模块107上的TCP服务映射端,从而实现了内网穿透。
图3示出了本申请实施例中网关模块的路由功能的逻辑示意图。参阅图3所示,本申请实施例中,网关模块部署与外网服务端内部,主要负责接收内网客户端/内网客户端的TLS客户端模块发出的心跳信息/TLS会话,并基于路由规则进行路由。
本申请实施例中,参阅图3所示,网关模块与外网服务端的TLS服务端共享数据。若网关模块收到的是心跳信息,则判断心跳信息对应的TLS反向隧道的状态信息,并基于该状态信息向内网服务端反馈该心跳信息对应的回复信息;若网关模块收到的是TLS会话,其中,TLS会话至少包括TLS连接请求、TLS反向隧道创建请求和通过TLS反向隧道传输的每个数据中的任意一个,每个TLS会话均携带所述密钥信息,则采用预设特征提取算法,提取该TLS会话携带的密钥信息的特征,并将映射关系集合和密钥信息的特征进行比对,基于比对结果判断该密钥信息的特征是否包含在上述映射关系集合中。
本申请实施例中,根据不同的比对结果,相应的路由规则包含但不限于如下三种情况:
情况一,若判定密钥信息的特征不包含在映射关系集合中,则将所述TLS会话路由至所述外网服务端的新分配的第一内网端口,其中,该新分配的第一内网端口是外网服务端基于TLS会话携带的密钥信息,对该TLS会话进行身份验证,并在通过身份验证后,建立TLS连接,以及建立相应的TLS反向隧道时分配的。
情况二,若判定密钥信息的特征包含在映射关系集合中,且确定密钥信息的特征对应的TLS反向隧道的状态信息表征TLS反向隧道对应的TLS服务端未处于存活状态,则将TLS会话路由至外网服务端的新分配的第一内网端口;其中,该新分配的第一内网端口是外网服务端基于TLS会话携带的密钥信息,对该TLS会话进行身份验证,并在通过身份验证后,建立TLS连接,以及建立相应的TLS反向隧道时分配的。
情况三,若判定密钥信息的特征包含在映射关系集合中,且确定密钥信息的特征对应的TLS反向隧道的状态信息表征该TLS反向隧道对应的TLS服务端处于存活状态,则将TLS会话路由至外网服务端的历史记录的第一内网端口。
本申请实施例中,在判定该TLS会话的密钥信息的特征包含在映射关系集合中时,需进一步查询密钥信息的特征对应的TLS反向隧道的状态信息,以确定该密钥信息的特征对应的TLS反向隧道对应的TLS服务端的存活状态,并基于该TLS反向隧道对应的TLS服务端的存活状态,匹配相应的路由规则。
需要说明的是,本申请实施例中,该网关模块配置有公网地址,具体实施中,外网服务端基于公网地址与内网服务端进行TLS会话的数据传输,其中,TLS会话包括TLS连接请求、TLS反向隧道创建请求和通过TLS反向隧道传输的每个数据中的任意一个。由于网关模块被配置为公网可见模式,这样,通过网关模块的路由功能,实现在符合路由规则的情况下,内网客户端的TLS客户端模块与外网服务端的TLS服务端模块之间的TLS会话转发,在不增加内网应用的资源暴露面的前提下,实现内网穿透,扩展了外网服务端的横向扩展能力,解决了由于标准SSH中的正向隧道、命令执行通道等,带来的密钥泄露导致攻击者对外网服务端和其他外网客户端带来的安全风险。
本申请实施例中,由于设置了上述特定的路由规则,因此,通过简易的路由机制,可以便于上述基于TLS的内网穿透系统的外网服务端侧的横向扩容。进一步地,外网服务端基于TLS协议,可以统一分配第一内网端口,具体实施中,将TLS反向隧道与发起内网访问请求的外网用户的用户信息进行绑定,可以使基于TLS的内网穿透系统后续基于映射关系集合进行比对,变得方便简洁。
本申请实施例中,将外网服务端的隧道内部Socket的监听地址改成0.0.0.0,这样,即使在外网服务端的外部,也可以访问映射后的反向隧道,从而便于其他业务系统集成本方案时,不必与外网服务端强行耦合在一个环境中。
下面对本申请实施例提供的一种基于TLS的内网穿透方法的具体实施方式进行介绍。
参阅图4所示,本申请实施例中,提供了一种基于TLS的内网穿透方法,该方法具体流程如下:
步骤400:外网用户1向外网服务端发送内网访问请求。
步骤401:外网服务端接收外网用户1发送的内网访问请求,并基于内网访问请求包含的外网用户1的用户信息,生成相应的秘钥,以及基于预设位数的随机数(即,口令)对秘钥进行加密,生成密钥信息。
步骤402:外网服务端向内网客户端侧的内网用户发送密钥信息。
步骤403:内网用户接收外网服务端发送的密钥信息,将该密钥信息导入内网客户端,并基于该密钥信息设置相应的配置信息,以及启动内网客户端与密钥信息对应的待访问内网应用的终端之间的隧道连接;其中,配置信息包括与密钥信息对应的TCP服务映射端信息,以及该密钥信息对应的待访问内网应用的第二内网端口。
步骤404:内网客户端向外网服务端发送TLS连接请求,其中,该TLS连接请求包含密钥信息。
步骤405:外网服务端接收内网客户端发送的TLS连接请求,对TLS连接请求包含的密钥信息进行身份验证,基于身份验证结果,生成相应的TLS连接创建响应消息。
本申请实施例中,上述身份验证结果包含但不限于如下两种情况:
情况一,当身份验证结果表征通过身份验证时,在外网服务端和内网客户端之间建立TLS连接,并对应生成TLS连接创建成功消息,以及将该TLS连接创建成功消息发送至内网客户端。
情况二,当身份验证结果表征未通过身份验证时,对应生成TLS连接创建失败消息,并将该TLS连接创建失败消息发送至内网客户端。
步骤406:外网服务端将该TLS连接创建响应消息发送至内网客户端。
步骤407:内网客户端接收外网服务端发送的TLS连接创建响应消息,当该TLS连接创建响应消息是TLS连接创建成功消息时,执行步骤408;否则,当TLS连接创建响应消息是TLS连接创建失败消息时,执行步骤409。
步骤408:内网客户端向外网服务端发送TLS反向隧道创建请求。
步骤409:内网客户端向内网用户反馈TLS连接创建失败消息,结束流程。
步骤410:外网服务端接收内网客户端发送的TLS反向隧道创建请求,并基于TLS反向隧道创建请求,分配待访问内网应用对应的第一内网端口,以及基于第一内网端口,在本地部署内网客户端的TCP客户映射端。
步骤411:外网服务端基于第一内网端口,以及TLS反向隧道创建请求包含的第二内网端口,在TCP客户映射端和内网客户端的TCP服务映射端之间建立TLS反向隧道;生成TLS反向隧道创建成功消息;其中,TCP服务映射端是内网客户端基于配置信息在本地部署的,配置信息是内网用户基于密钥信息设置的。
本申请实施例中,外网服务端在基于TLS反向隧道创建请求建立TLS反向隧道时,也可能出现TLS反向隧道建立不成功的情况,此时外网服务端将TLS反向隧道创建失败消息同样发送至内网客户端,结束流程。
需要说明的是,本申请实施例中,为了对内网穿透方案的流程进行完整描述,仅以外网服务器向内网客户端发送TLS反向隧道创建成功消息为例进行介绍,在此不在赘述。
步骤412:外网服务端将TLS反向隧道创建成功消息发送至内网客户端。
步骤413:内网客户端接收外网服务端发送的TLS反向隧道创建成功消息,并基于配置信息,在本地部署外网服务端的TCP服务映射端,该配置信息是内网用户基于密钥信息设置的。
步骤414:外网服务端通过TCP客户映射端将内网访问请求对应的内网访问数据发送至内网客户端。
步骤415:内网客户端通过TCP服务映射端接收外网服务端的TCP客户映射端发送的内网访问请求对应的内网访问数据,并基于内网访问数据,获取内网访问数据对应的待访问内网应用的响应数据。
本申请实施例中,在执行步骤415时,内网客户端通过TCP服务映射端将内网访问数据转发至待访问内网应用的终端,终端将内网访问数据对应的响应数据转发至TCP服务映射端。
步骤416:内网客户端通过TCP服务映射端将获取到的待访问内网应用的响应数据转发至外网服务端。
步骤417:外网服务端通过TCP客户映射端接收内网服务端的TCP服务映射端发送的内网访问数据对应的待访问内网应用的响应数据,并将待访问内网应用的响应数据转发至目标终端。
步骤418:内网客户端响应内网用户的点击操作,断开TLS连接,并生成断开TLS连接指令,以及将断开TLS连接指令发送至外网服务端。
本申请实施例中,在内网客户端断开TLS连接之后,记录对应的审计信息,并回收相应的端口,然后,生成断开TLS连接指令,并将该断开TLS指令发送至外网服务端,以使外网服务端断开对应的TLS连接。
步骤419:外网服务端接收内网客户端发送的断开TLS连接指令,并基于断开TLS连接指令,断开TLS连接请求对应的TLS连接,以及回收相应的端口。
本申请实施例中,在外网服务端接收到断开TLS连接指令之后,断开该TLS连接,并记录对应的审计信息,以及回收相应的端口。
步骤420:外网服务端接收外网用户2发出的吊销密钥信息指令。
步骤421:外网服务端基于吊销密钥信息指令,生成断开TLS反向隧道指令,以及将断开TLS反向隧道指令发送至内网客户端。
本申请实施例中,在外网服务端接收到吊销密钥信息指令后,断开TLS反向隧道,回收TLS反向隧道对应的第一内网端口,并生成断开TLS反向隧道指令,以及将断开TLS反向隧道指令发送至内网客户端。
步骤422:内网客户端接收外网服务端发送的断开TLS反向隧道指令,基于断开TLS反向隧道指令,对TLS反向隧道执行断开操作,回收TLS反向隧道对应的第二内网端口。
本申请实施例中,图4中为了便于描述一种基于TLS的内网穿透方法,将网关模型对内网客户端与外网服务端之间传输的TLS会话的过滤路由内容省略,需要说明的是,上述内网客户端与外网服务端之间传输的TLS会话,均通过外网服务端的网关模块,按照预设的路由规则进行路由,具体实施中,网关模块在每次接收到TLS会话后,通过执行如下操作,实现对交互中信令或数据的路由功能:
操作1、外网服务端通过网关模块接收内网客户端的TLS客户端发送的TLS会话,采用预设特征提取算法,提取该TLS会话携带的密钥信息的特征,并将该密钥信息的特征与映射关系集合进行比对,得到比对结果。
操作2、外网服务端通过网关模块基于比对结果判断密钥信息的特征是否包含在映射关系集合中,其中,映射关系集合包括至少一个映射关系,每个映射关系包括相应的外网用户的用户信息、相应的外网用户对应的密钥信息的特征,以及相应的外网用户关联的第一内网端口和第二内网端口,该第一内网端口是外网服务端为相应的外网用户分配的端口,第二内网端口是内网客户端基于相应的外网用户对应的密钥信息,为相应的外网用户设置的端口。
操作3、若外网服务端通过网关模块判定密钥信息的特征不包含在映射关系集合中,则将TLS会话路由至外网服务端的新分配的第一内网端口;
或者,若外网服务端通过网关模块判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端未处于存活状态,则将TLS会话路由至外网服务端的新分配的第一内网端口;
或者,
若外网服务端通过网关模块判定密钥信息的特征包含在映射关系集合中,且确定密钥信息的特征对应的TLS反向隧道的状态信息表征TLS反向隧道对应的TLS服务端处于存活状态,则将TLS会话路由至外网服务端的历史记录的第一内网端口。
本申请实施例中,若外网服务端通过网关模块接收到内网客户端发送的心跳信息,则外网服务端判断该心跳信息对应的TLS反向隧道的状态信息,并基于状态信息向内网客户端反馈心跳信息的回复信息。
参阅图5所示,本申请实施例中提供的一种基于TLS的内网穿透方法,应用于外网服务端,该方法的具体流程如下:
步骤500:接收内网客户端发送的TLS反向隧道创建请求,并基于TLS反向隧道创建请求,在外网服务端和内网客户端之间建立TLS反向隧道,以及将TLS反向隧道创建成功消息发送至内网客户端;其中,TLS反向隧道创建请求是在内网客户端接收到外网服务端返回的TLS连接创建成功消息后发送的,TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,TLS连接请求是由内网客户端发送至外网服务端的,TLS连接请求包括密钥信息,密钥信息是由内网用户导入到内网客户端的,密钥信息是基于预设位数的随机数对秘钥进行加密得到的,秘钥是外网服务端基于发起内网访问请求的外网用户的用户信息生成的,并由外网服务端发送给内网用户的,内网访问请求包含的待访问内网应用部署在内网客户端所在网络中。
本申请实施例中,在执行步骤500之前,首先,接收内网客户端发送的TLS连接请求,并基于预设位数的随机数,对TLS连接请求包含的密钥信息进行解密,以及基于秘钥对解密后的所述密钥信息进行身份验证;然后,在确定通过身份验证后,在外网服务端和内网客户端之间建立TLS连接,以及将TLS连接创建成功消息发送至内网客户端。
本申请实施例中在,在外网服务端和内网客户端之间建立TLS连接之后,在执行步骤500时,可以通过执行如下操作,在外网服务端和内网客户端之间建立TLS反向隧道:
操作一,基于TLS反向隧道创建请求分配待访问内网应用对应的第一内网端口,并基于第一内网端口,在本地部署内网客户端的传输控制协议TCP客户映射端。
操作二,基于第一内网端口,以及TLS反向隧道创建请求包含的第二内网端口,在TCP客户映射端和内网客户端的TCP服务映射端之间建立TLS反向隧道;其中,TCP服务映射端是内网客户端基于配置信息在本地部署的,配置信息是内网用户基于密钥信息设置的。
步骤510:通过TLS反向隧道将内网访问请求对应的内网访问数据发送至内网客户端,以及通过TLS反向隧道接收内网客户端发送的内网访问数据对应的待访问内网应用的响应数据,将待访问内网应用的响应数据转发至目标终端。
本申请实施例中,在执行步骤510时,具体通过执行如下操作:
操作一,通过TCP客户映射端将内网访问请求对应的内网访问数据发送至内网客户端的所述TCP服务映射端。
操作二,通过TCP客户映射端接收内网服务端的TCP服务映射端发送的内网访问数据对应的待访问内网应用的响应数据,并通过TCP客户映射端将待访问内网应用的响应数据转发至目标终端。
本申请实施例中,在将待访问内网应用的响应数据转发至目标终端之后,还可以接收内网服务端发送的断开TLS连接指令,并基于断开TLS连接指令,断开TLS连接请求对应的TLS连接,断开TLS连接指令是内网客户端基于内网用户的点击操作生成的,从而释放网络资源,提高网络运行效率。
相应的,本申请实施例中,在接收到外网用户发出的吊销密钥信息指令时,基于吊销密钥信息指令,断开TLS反向隧道,回收TLS反向隧道对应的第一内网端口,并生成断开TLS反向隧道指令,以及将断开TLS反向隧道指令发送至内网客户端。
需要说明的是,本申请实施例中,若没有人工介入,在外网服务端和内网客户端之间的TLS连接、TLS反向隧道将一直可以用于通信,在通信过程中,通过日志管理模块记录相应的状态、流量信息。
参阅图6所示,本申请实施例中,提供的一种基于TLS的内网穿透方法,应用于内网客户端,该方法的具体流程如下:
步骤600:向外网服务端发送TLS反向隧道创建请求,其中,TLS反向隧道创建请求是在内网客户端接收到外网服务端返回的TLS连接创建成功消息后发送的,TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,TLS连接请求是由内网客户端发送至外网服务端的,TLS连接请求包括密钥信息,密钥信息是由内网用户导入到内网客户端的,密钥信息是基于预设位数的随机数对秘钥进行加密得到的,秘钥是外网服务端基于发起内网访问请求的外网用户的用户信息生成的,并由外网服务端发送给内网用户的,内网访问请求包含的待访问内网应用部署在内网客户端所在网络中。
步骤610:接收外网服务端发送的TLS反向隧道创建成功消息后,通过TLS反向隧道接收外网服务端发送的内网访问请求对应的内网访问数据,以及通过TLS反向隧道将内网访问数据对应的待访问内网应用的响应数据转发至外网服务端,以使外网服务端将待访问内网应用的响应数据转发至目标终端。
本申请实施例中,接收外网服务端发送的TLS反向隧道创建成功消息后,在执行步骤610中的数据转发之前,首先,基于配置信息,在本地部署外网服务端的传输控制协议TCP服务映射端,配置信息是内网用户基于密钥信息设置的。
然后,执行步骤610中的数据转发流程,具体实施中,通过TCP服务映射端接收外网服务端的TCP客户映射端发送的内网访问请求对应的内网访问数据,并基于内网访问数据,获取内网访问数据对应的待访问内网应用的响应数据;并通过TCP服务映射端将获取到的待访问内网应用的响应数据转发至外网服务端。
本申请实施例中,在通过TLS反向隧道将内网访问数据对应的待访问内网应用的响应数据转发至所述外网服务端之后,还可以响应内网用户的点击操作,断开TLS连接请求对应的TLS连接,并生成断开TLS连接指令,以及将断开TLS连接指令发送至外网服务端,以使外网服务端断开相应的TLS连接,回收相应的端口,并记录相应的审计信息,从而释放网络资源。
相应的,本申请实施例中,还可以接收外网服务端发送的断开TLS反向隧道指令,其中,断开TLS反向隧道指令是所述外网服务端接收到外网用户的吊销密钥信息指令后发送的;并基于断开TLS反向隧道指令,对TLS反向隧道执行断开操作,以及基于配置信息包含的第二内网端口,回收TLS反向隧道对应的第二内网端口,配置信息是所述内网用户基于密钥信息设置的,这样,可以释放网络资源,降低网络运行负荷。
需要说明的是,本申请实施例中,若没有人工介入,在外网服务端和内网客户端之间的TLS连接、TLS反向隧道将一直可以用于通信,在通信过程中,通过日志管理模块记录相应的状态、流量信息。
基于同一发明构思,参阅图7所示,本申请实施例中提供一种基于传输层安全性协议TLS的内网穿透装置,应用于外网服务端,所述装置包括:
隧道建立模块710,用于接收内网客户端发送的TLS反向隧道创建请求,并基于所述TLS反向隧道创建请求,在所述外网服务端和所述内网客户端之间建立TLS反向隧道,以及将所述TLS反向隧道创建成功消息发送至所述内网客户端;
转发模块720,用于通过所述TLS反向隧道将内网访问请求对应的内网访问数据发送至所述内网客户端,以及通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端;
其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的所述待访问内网应用部署在所述内网客户端中。
在一些实施例中,在所述接收内网客户端发送的TLS反向隧道创建请求之前,所述隧道建立模块710还用于:
接收所述内网客户端发送的TLS连接请求,并基于所述预设位数的随机数,对所述TLS连接请求包含的所述密钥信息进行解密,以及基于所述秘钥对解密后的所述密钥信息进行身份验证;
在确定通过身份验证后,在所述外网服务端和所述内网客户端之间建立TLS连接,以及将所述TLS连接创建成功消息发送至所述内网客户端。
在一些实施例中,通过执行如下操作,在所述外网服务端和所述内网客户端之间建立TLS连接:
基于所述TLS反向隧道创建请求分配所述待访问内网应用对应的第一内网端口,并基于所述第一内网端口,在本地部署所述内网客户端的传输控制协议TCP客户映射端;
基于所述第一内网端口,以及所述TLS反向隧道创建请求包含的第二内网端口,在所述TCP客户映射端和所述内网客户端的TCP服务映射端之间建立所述TLS反向隧道;
其中,所述TCP服务映射端是所述内网客户端基于配置信息在本地部署的,所述配置信息是所述内网用户基于所述密钥信息设置的。
在一些实施例中,所述通过所述TLS反向隧道将所述内网访问请求对应的内网访问数据发送至所述内网客户端,所述转发模块720用于:
通过所述TCP客户映射端将所述内网访问请求对应的所述内网访问数据发送至所述内网客户端的所述TCP服务映射端;
所述通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的所述待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端,所述转发模块720用于:
通过所述TCP客户映射端接收所述内网服务端的所述TCP服务映射端发送的所述内网访问数据对应的所述待访问内网应用的响应数据,并通过所述TCP客户映射端将所述待访问内网应用的响应数据转发至所述目标终端。
在一些实施例中,在所述将所述待访问内网应用的响应数据转发至目标终端之后,所述转发模块720还用于:
接收所述内网服务端发送的断开TLS连接指令,并基于所述断开TLS连接指令,断开所述TLS连接请求对应的TLS连接,所述断开TLS连接指令是所述内网客户端基于所述内网用户的点击操作生成的;
接收外网用户发出的吊销密钥信息指令,基于所述吊销密钥信息指令,断开所述TLS反向隧道,回收所述TLS反向隧道对应的第一内网端口,并生成断开TLS反向隧道指令,以及将所述断开TLS反向隧道指令发送至所述内网客户端。
在一些实施例中,所述装置还包括网关模块730,所述网关模块730配置有公网地址,所述网关模块730用于:
基于所述公网地址与所述内网服务端进行TLS会话的数据传输,其中,所述TLS会话数据包括所述TLS连接请求、所述TLS反向隧道创建请求和通过所述TLS反向隧道传输的每个数据中的任意一个,每个TLS会话均携带所述密钥信息。
在一些实施例中,所述基于所述公网地址与所述内网服务端进行TLS会话的数据传输,所述网关模块730用于:
采用预设特征提取算法,提取所述TLS会话携带的所述密钥信息的特征,并将映射关系集合和所述密钥信息的特征进行比对,基于比对结果判断所述密钥信息的特征是否包含在所述映射关系集合中;
若判定所述密钥信息的特征不包含在所述映射关系集合中,则将所述TLS会话路由至所述外网服务端的新分配的第一内网端口;
或者,
若判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端未处于存活状态,则将所述TLS会话路由至所述外网服务端的新分配的第一内网端口;
或者,
若判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端处于存活状态,则将所述TLS会话路由至所述外网服务端的历史记录的第一内网端口;
其中,所述映射关系集合包括至少一个映射关系,每个映射关系包括相应的外网用户的用户信息、所述相应的外网用户对应的密钥信息的特征,以及所述相应的外网用户关联的第一内网端口和第二内网端口,所述第一内网端口是所述外网服务端为所述相应的外网用户分配的端口,所述第二内网端口是所述内网客户端基于所述相应的外网用户对应的密钥信息,为所述相应的外网用户设置的端口。
在一些实施例中,所述网关模块730还用于:
判断所述心跳信息对应的TLS反向隧道的状态信息,并基于所述状态信息向所述内网客户端反馈所述心跳信息的回复信息。
基于同一发明构思,参阅图8所示,本申请实施例中提供一种基于传输层安全协议TLS的内网穿透装置,应用于内网客户端,所述装置包括:
发送模块810,用于向外网服务端发送TLS反向隧道创建请求,其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的待访问内网应用部署在所述内网客户端中;
转发模块820,用于接收所述外网服务端发送的TLS反向隧道创建成功消息后,通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,以使所述外网服务端将所述待访问内网应用的响应数据转发至目标终端。
在一些实施例中,在所述向外网服务端发送TLS反向隧道创建请求之前,所述发送模块810还用于:
向所述外网服务端发送TLS连接请求,并接收所述外网服务端发送的TLS连接创建成功消息。
在一些实施例中,在所述接收所述外网服务端发送的TLS反向隧道创建成功消息后,在通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据之前,所述转发模块820还用于:
基于配置信息,在本地部署所述外网服务端的传输控制协议TCP服务映射端,所述配置信息是所述内网用户基于所述密钥信息设置的;
所述通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,所述转发模块用于:
通过所述TCP服务映射端接收所述外网服务端的TCP客户映射端发送的所述内网访问请求对应的内网访问数据,并基于所述内网访问数据,获取所述内网访问数据对应的所述待访问内网应用的响应数据;
通过所述TCP服务映射端将获取到的所述待访问内网应用的响应数据转发至所述外网服务端。
在一些实施例中,所述发送模块810还用于:
向所述外网服务端发送心跳信息,以使所述外网服务端反馈所述心跳信息对应的回复信息,所述回复信息是所述外网服务端通过网关模块判断所述心跳信息对应的TLS反向隧道的状态信息后确定的。
在一些实施例中,在所述通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端之后,所述转发模块820还用于:
响应所述内网用户的点击操作,断开所述TLS连接请求对应的TLS连接,并生成断开TLS连接指令,以及将所述断开TLS连接指令发送至所述外网服务端;
接收所述外网服务端发送的断开TLS反向隧道指令,其中,所述断开TLS反向隧道指令是所述外网服务端接收到外网用户的吊销密钥信息指令后发送的;
基于所述断开TLS反向隧道指令,对所述TLS反向隧道执行断开操作,并基于配置信息包含的内网端口,回收所述TLS反向隧道对应的所述内网端口,所述配置信息是所述内网用户基于所述密钥信息设置的。
参阅图9所示,本申请实施例中提供一种电子设备,包括:处理器91、通信接口92、存储器93和通信总线94,其中,处理器91,通信接口92,存储器93通过通信总线94完成相互间的通信;
所述存储器93中存储有计算机程序,当所述程序被所述处理器91执行如上述各个实施例中一种基于TLS的内网穿透装置(如,外网服务端)执行的任意一种方法。
参阅图10所示,本申请实施例中提供一种电子设备,包括:处理器101、通信接口102、存储器103和通信总线104,其中,处理器101,通信接口102,存储器103通过通信总线104完成相互间的通信;
所述存储器103中存储有计算机程序,当所述程序被所述处理器101执行如上述各个实施例中一种基于传输层安全协议TLS的内网穿透装置(如,内网客户端)执行的任意一种方法。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述各个实施例中基于传输层安全协议TLS的内网穿透装置执行的任意一种方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图中的一个流程或多个流程和/或方框图中的一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图中的一个流程或多个流程和/或方框图中的一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图中的一个流程或多个流程和/或方框图中的一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (17)

1.一种基于传输层安全性协议TLS的内网穿透方法,其特征在于,应用于外网服务端,所述方法包括:
接收内网客户端发送的TLS反向隧道创建请求,并基于所述TLS反向隧道创建请求,在所述外网服务端和所述内网客户端之间建立TLS反向隧道,以及将所述TLS反向隧道创建成功消息发送至所述内网客户端;
通过所述TLS反向隧道将内网访问请求对应的内网访问数据发送至所述内网客户端,以及通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端;
其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的所述待访问内网应用部署在所述内网客户端所在网络中。
2.如权利要求1所述的方法,其特征在于,在接收内网客户端发送的TLS反向隧道创建请求之前,还包括:
接收所述内网客户端发送的TLS连接请求,并基于所述预设位数的随机数,对所述TLS连接请求包含的所述密钥信息进行解密,以及基于所述秘钥对解密后的所述密钥信息进行身份验证;
在确定通过身份验证后,在所述外网服务端和所述内网客户端之间建立TLS连接,以及将所述TLS连接创建成功消息发送至所述内网客户端。
3.如权利要求2所述的方法,其特征在于,通过执行如下操作,在所述外网服务端和所述内网客户端之间建立TLS连接:
基于所述TLS反向隧道创建请求分配所述待访问内网应用对应的第一内网端口,并基于所述第一内网端口,在本地部署所述内网客户端的传输控制协议TCP客户映射端;
基于所述第一内网端口,以及所述TLS反向隧道创建请求包含的第二内网端口,在所述TCP客户映射端和所述内网客户端的TCP服务映射端之间建立所述TLS反向隧道;
其中,所述TCP服务映射端是所述内网客户端基于配置信息在本地部署的,所述配置信息是所述内网用户基于所述密钥信息设置的。
4.如权利要求3所述的方法,其特征在于,所述通过所述TLS反向隧道将内网访问请求对应的内网访问数据发送至所述内网客户端,包括:
通过所述TCP客户映射端将所述内网访问请求对应的所述内网访问数据发送至所述内网客户端的所述TCP服务映射端;
所述通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端,包括:
通过所述TCP客户映射端接收所述内网服务端的所述TCP服务映射端发送的,所述内网访问数据对应的所述待访问内网应用的响应数据,并通过所述TCP客户映射端将所述待访问内网应用的响应数据转发至所述目标终端。
5.如权利要求1-4任一项所述的方法,其特征在于,在所述将所述待访问内网应用的响应数据转发至目标终端之后,还包括:
接收所述内网服务端发送的断开TLS连接指令,并基于所述断开TLS连接指令,断开所述TLS连接请求对应的TLS连接,所述断开TLS连接指令是所述内网客户端基于所述内网用户的点击操作生成的;
接收外网用户发出的吊销密钥信息指令,基于所述吊销密钥信息指令,断开所述TLS反向隧道,回收所述TLS反向隧道对应的第一内网端口,并生成断开TLS反向隧道指令,以及将所述断开TLS反向隧道指令发送至所述内网客户端。
6.如权利要求5所述的方法,其特征在于,所述外网服务端还包括网关模块,所述网关模块配置有公网地址,所述方法包括:
基于所述公网地址与所述内网服务端进行TLS会话的数据传输,其中,所述TLS会话包括所述TLS连接请求、所述TLS反向隧道创建请求和通过所述TLS反向隧道传输的每个数据中的任意一个,每个TLS会话均携带所述密钥信息。
7.如权利要求6所述的方法,其特征在于,所述基于所述公网地址与所述内网服务端进行TLS会话的数据传输,包括:
通过所述网关模块采用预设特征提取算法,提取所述TLS会话携带的所述密钥信息的特征,并将映射关系集合和所述密钥信息的特征进行比对,基于比对结果判断所述密钥信息的特征是否包含在所述映射关系集合中;
若通过所述网关模块判定所述密钥信息的特征不包含在所述映射关系集合中,则将所述TLS会话路由至所述外网服务端的新分配的第一内网端口;
或者,
若通过所述网关模块判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端未处于存活状态,则将所述TLS会话路由至所述外网服务端的新分配的第一内网端口;
或者,
若通过所述网关模块判定所述密钥信息的特征包含在所述映射关系集合中,且确定所述密钥信息的特征对应的TLS反向隧道的状态信息表征所述TLS反向隧道对应的TLS服务端处于存活状态,则将所述TLS会话路由至所述外网服务端的历史记录的第一内网端口;
其中,所述映射关系集合包括至少一个映射关系,每个映射关系包括相应的外网用户的用户信息、所述相应的外网用户对应的密钥信息的特征,以及所述相应的外网用户关联的第一内网端口和第二内网端口,所述第一内网端口是所述外网服务端为所述相应的外网用户分配的端口,所述第二内网端口是所述内网客户端基于所述相应的外网用户对应的密钥信息,为所述相应的外网用户设置的端口。
8.如权利要求6所述的方法,其特征在于,所述方法还包括:
通过所述网关模块判断所述心跳信息对应的TLS反向隧道的状态信息,并基于所述状态信息向所述内网客户端反馈所述心跳信息的回复信息。
9.一种基于传输层安全协议TLS的内网穿透方法,其特征在于,应用于内网客户端,所述方法包括:
向外网服务端发送TLS反向隧道创建请求,其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的待访问内网应用部署在所述内网客户端所在的网络中;
接收所述外网服务端发送的TLS反向隧道创建成功消息后,通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,以使所述外网服务端将所述待访问内网应用的响应数据转发至目标终端。
10.如权利要求9所述的方法,其特征在于,在所述向外网服务端发送TLS反向隧道创建请求之前,还包括:
向所述外网服务端发送TLS连接请求,并接收所述外网服务端发送的TLS连接创建成功消息。
11.如权利要求9所述的方法,其特征在于,在所述接收所述外网服务端发送的TLS反向隧道创建成功消息后,在通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据之前,还包括:
基于配置信息,在本地部署所述外网服务端的传输控制协议TCP服务映射端,其中,所述配置信息是所述内网用户基于所述密钥信息设置的;
所述通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,包括:
通过所述TCP服务映射端接收所述外网服务端的TCP客户映射端发送的所述内网访问请求对应的内网访问数据,并基于所述内网访问数据,获取所述内网访问数据对应的所述待访问内网应用的响应数据;
通过所述TCP服务映射端将获取到的所述待访问内网应用的响应数据转发至所述外网服务端。
12.如权利要求9所述的方法,其特征在于,所述方法还包括:
向所述外网服务端发送心跳信息,以使所述外网服务端反馈所述心跳信息对应的回复信息,所述回复信息是所述外网服务端通过网关模块判断所述心跳信息对应的TLS反向隧道的状态信息后确定的。
13.如权利要求9所述的方法,其特征在于,在所述通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端之后,还包括:
响应所述内网用户的点击操作,断开所述TLS连接请求对应的TLS连接,并生成断开TLS连接指令,以及将所述断开TLS连接指令发送至所述外网服务端;
接收所述外网服务端发送的断开TLS反向隧道指令,其中,所述断开TLS反向隧道指令是所述外网服务端接收到外网用户的吊销密钥信息指令后发送的;
基于所述断开TLS反向隧道指令,对所述TLS反向隧道执行断开操作,并基于配置信息包含的第二内网端口,回收所述TLS反向隧道对应的所述第二内网端口,所述配置信息是所述内网用户基于所述密钥信息设置的。
14.一种基于传输层安全性协议TLS的内网穿透装置,其特征在于,应用于外网服务端,所述装置包括:
隧道建立模块,用于接收内网客户端发送的TLS反向隧道创建请求,并基于所述TLS反向隧道创建请求,在所述外网服务端和所述内网客户端之间建立TLS反向隧道,以及将所述TLS反向隧道创建成功消息发送至所述内网客户端;
转发模块,用于通过所述TLS反向隧道将内网访问请求对应的内网访问数据发送至所述内网客户端,以及通过所述TLS反向隧道接收所述内网客户端发送的所述内网访问数据对应的待访问内网应用的响应数据,将所述待访问内网应用的响应数据转发至目标终端;
其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的所述待访问内网应用部署在所述内网客户端中。
15.一种基于传输层安全协议TLS的内网穿透装置,其特征在于,应用于内网客户端,所述装置包括:
发送模块,用于向外网服务端发送TLS反向隧道创建请求,其中,所述TLS反向隧道创建请求是在所述内网客户端接收到所述外网服务端返回的TLS连接创建成功消息后发送的,所述TLS连接创建成功消息是在确定TLS连接请求通过身份验证后发送的,所述TLS连接请求是由所述内网客户端发送至所述外网服务端的,所述TLS连接请求包括密钥信息,所述密钥信息是由内网用户导入到所述内网客户端的,所述密钥信息是所述外网服务端基于预设位数的随机数对秘钥进行加密得到的,所述秘钥是所述外网服务端基于发起内网访问请求的外网用户的用户信息生成,并由所述外网服务端发送给所述内网用户的,所述内网访问请求包含的待访问内网应用部署在所述内网客户端中;
转发模块,用于接收所述外网服务端发送的TLS反向隧道创建成功消息后,通过所述TLS反向隧道接收所述外网服务端发送的所述内网访问请求对应的内网访问数据,以及通过所述TLS反向隧道将所述内网访问数据对应的所述待访问内网应用的响应数据转发至所述外网服务端,以使所述外网服务端将所述待访问内网应用的响应数据转发至目标终端。
16.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1-8和9-13任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1-8和9-13任一项所述的方法。
CN202111671733.4A 2021-12-31 2021-12-31 一种基于tls的内网穿透方法及装置 Active CN114629678B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111671733.4A CN114629678B (zh) 2021-12-31 2021-12-31 一种基于tls的内网穿透方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111671733.4A CN114629678B (zh) 2021-12-31 2021-12-31 一种基于tls的内网穿透方法及装置

Publications (2)

Publication Number Publication Date
CN114629678A true CN114629678A (zh) 2022-06-14
CN114629678B CN114629678B (zh) 2023-09-19

Family

ID=81898198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111671733.4A Active CN114629678B (zh) 2021-12-31 2021-12-31 一种基于tls的内网穿透方法及装置

Country Status (1)

Country Link
CN (1) CN114629678B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220046024A1 (en) * 2019-01-18 2022-02-10 Vmware, Inc. Tls policy enforcement at a tunnel gateway
CN115442416A (zh) * 2022-08-31 2022-12-06 上海奇夜语网络科技有限公司 跨网络通讯方法、装置及通讯网络

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030224758A1 (en) * 2002-04-15 2003-12-04 O'neill Alan Methods and apparatus for the utilization of multiple uplinks in reverse tunneling
US20050262357A1 (en) * 2004-03-11 2005-11-24 Aep Networks Network access using reverse proxy
US20070127420A1 (en) * 2005-12-05 2007-06-07 Paula Tjandra Method, system and apparatus for creating a reverse tunnel
US20130014263A1 (en) * 2011-07-08 2013-01-10 Rapid Focus Security, Llc System and method for remotely conducting a security assessment and analysis of a network
CN104012027A (zh) * 2011-12-29 2014-08-27 迈可菲公司 用于网络环境中的计算机脆弱性的基于云的扫描的系统和方法
US20170104621A1 (en) * 2015-10-12 2017-04-13 Vmware, Inc. Network Management As A Service (MaaS) Using Reverse Session-Origination (RSO) Tunnel
CN107888582A (zh) * 2017-11-07 2018-04-06 湖南中车时代通信信号有限公司 一种app软件穿透铁路内网的系统和方法
CN108600204A (zh) * 2018-04-11 2018-09-28 浙江大学 一种基于反向连接和应用层隧道的企业内网访问方法
US10645172B1 (en) * 2017-03-30 2020-05-05 Amazon Technologies, Inc. Socket tunneling connections in a service provider environment
US20200236114A1 (en) * 2019-01-18 2020-07-23 Vmware, Inc. Tls policy enforcement at a tunnel gateway
CN111865939A (zh) * 2020-07-02 2020-10-30 上海缔安科技股份有限公司 一种点对点国密隧道建立方法及装置
CN113347206A (zh) * 2021-06-30 2021-09-03 建信金融科技有限责任公司 一种网络访问方法和装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030224758A1 (en) * 2002-04-15 2003-12-04 O'neill Alan Methods and apparatus for the utilization of multiple uplinks in reverse tunneling
US20050262357A1 (en) * 2004-03-11 2005-11-24 Aep Networks Network access using reverse proxy
US20070127420A1 (en) * 2005-12-05 2007-06-07 Paula Tjandra Method, system and apparatus for creating a reverse tunnel
US20130014263A1 (en) * 2011-07-08 2013-01-10 Rapid Focus Security, Llc System and method for remotely conducting a security assessment and analysis of a network
CN104012027A (zh) * 2011-12-29 2014-08-27 迈可菲公司 用于网络环境中的计算机脆弱性的基于云的扫描的系统和方法
US20170104621A1 (en) * 2015-10-12 2017-04-13 Vmware, Inc. Network Management As A Service (MaaS) Using Reverse Session-Origination (RSO) Tunnel
US10645172B1 (en) * 2017-03-30 2020-05-05 Amazon Technologies, Inc. Socket tunneling connections in a service provider environment
CN107888582A (zh) * 2017-11-07 2018-04-06 湖南中车时代通信信号有限公司 一种app软件穿透铁路内网的系统和方法
CN108600204A (zh) * 2018-04-11 2018-09-28 浙江大学 一种基于反向连接和应用层隧道的企业内网访问方法
US20200236114A1 (en) * 2019-01-18 2020-07-23 Vmware, Inc. Tls policy enforcement at a tunnel gateway
CN111865939A (zh) * 2020-07-02 2020-10-30 上海缔安科技股份有限公司 一种点对点国密隧道建立方法及装置
CN113347206A (zh) * 2021-06-30 2021-09-03 建信金融科技有限责任公司 一种网络访问方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈建华;何彬彬;崔莹;: "一种安全隧道网关的设计与实现", 微电子学与计算机, no. 04 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220046024A1 (en) * 2019-01-18 2022-02-10 Vmware, Inc. Tls policy enforcement at a tunnel gateway
US11792202B2 (en) * 2019-01-18 2023-10-17 Vmware, Inc. TLS policy enforcement at a tunnel gateway
US20230421565A1 (en) * 2019-01-18 2023-12-28 Vmware, Inc. Tls policy enforcement at a tunnel gateway
CN115442416A (zh) * 2022-08-31 2022-12-06 上海奇夜语网络科技有限公司 跨网络通讯方法、装置及通讯网络

Also Published As

Publication number Publication date
CN114629678B (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
CN107018134B (zh) 一种配电终端安全接入平台及其实现方法
CN105027493B (zh) 安全移动应用连接总线
CN101437022B (zh) 服务器发起的安全网络连接
US11621945B2 (en) Method and system for secure communications
US10454890B2 (en) Negotiation of security protocols and protocol attributes in secure communications environment
CN110572460B (zh) 基于区块链系统的数据传输方法、装置及计算机设备
US9137212B2 (en) Communication method and apparatus using changing destination and return destination ID's
KR101992976B1 (ko) Ssh 인증키를 보안 관리하는 ssh 프로토콜 기반 서버 원격 접근 시스템
CN114629678B (zh) 一种基于tls的内网穿透方法及装置
CN106169952B (zh) 一种英特网密钥管理协议重协商的认证方法及装置
CN108964880A (zh) 一种数据传输方法及装置
CN115022101B (zh) 账户数据的更改方法、装置、计算机设备和存储介质
US20140122876A1 (en) System and method for providing a secure book device using cryptographically secure communications across secure networks
CN109005179A (zh) 基于端口控制的网络安全隧道建立方法
CN110752921A (zh) 一种通信链路安全加固方法
CN111541776A (zh) 一种基于物联网设备的安全通信装置及系统
CN114844730A (zh) 一种基于可信隧道技术构建的网络系统
US20130219172A1 (en) System and method for providing a secure book device using cryptographically secure communications across secure networks
CN104426864B (zh) 跨域远程命令的实现方法及系统
CN103731410A (zh) 虚拟网络构建系统、方法、小型终端及认证服务器
CN108924157B (zh) 一种基于IPSec VPN的报文转发方法及装置
CN111901301B (zh) 一种基于网络多媒体设备数据传输的安全防护方法
US20230108261A1 (en) Management, diagnostics, and security for network communications
CN107135226B (zh) 基于socks5的传输层代理通信方法
CN115664738A (zh) 通信方法、装置、电子设备及计算机存储介质

Legal Events

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