CN114301968B - 服务端的访问方法、系统、设备及存储介质 - Google Patents
服务端的访问方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN114301968B CN114301968B CN202111674422.3A CN202111674422A CN114301968B CN 114301968 B CN114301968 B CN 114301968B CN 202111674422 A CN202111674422 A CN 202111674422A CN 114301968 B CN114301968 B CN 114301968B
- Authority
- CN
- China
- Prior art keywords
- server
- client
- message
- tunnel
- protocol
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012795 verification Methods 0.000 claims abstract description 60
- 238000004891 communication Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims description 25
- 238000004088 simulation Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请属于通信的技术领域,具体尤其涉及一种服务端的访问方法、系统、设备及存储介质,包括:响应于客户端的第一报文,建立与客户端的连接;第一报文中携带有域名信息;基于域名信息生成第二报文,基于隧道建立协议向代理服务器发送第二报文,建立目标设备与服务端之间的隧道;在隧道建立成功后,转发传输的目标数据,以使客户端对服务端进行访问。可以解决程序开发时效率低的问题;基于握手校验协议建立目标设备与客户端的连接,并基于隧道建立协议建立目标设备与代理服务器的连接,代理服务器可以建立目标设备与服务端的隧道;这样,可以实现客户端至服务端的数据传输,对于未配置代理服务器端口的程序,也能实现对服务端的访问。
Description
【技术领域】
本发明涉及网络通信的技术领域,尤其涉及一种服务端的访问方法、系统、设备及存储介质。
【背景技术】
目前,客户端中的软件程序可以通过访问服务端获取服务端提供的数据。
传统的服务端访问方式,包括:客户端通过预先配置的代理服务器端口,向代理服务器发送CONNECT请求;代理服务器接收到CONNECT请求后与服务端建立HTTP连接;在HTTP连接建立成功后,客户端通过代理服务器与服务端进行握手校验,以使用握手校验得到的密钥与服务端之间进行数据传输,实现对服务端的访问。
然而,客户端需要预先配置代理服务器端口,随着客户端类型的增多,会降低客户端的开发效率。而对于未配置代理服务器端口的客户端,则无法实现对服务端的访问。
【发明内容】
本申请提供了服务端的访问方法、系统、设备及存储介质,可以解决客户端需要预先配置代理服务器的端口,从而导致软件程序开发时效率较低的问题;同时可以解决对于未配置代理服务器的端口的客户端无法访问服务端的问题。本申请提供如下技术方案:
第一方面,提供了一种服务端的访问方法,用于目标设备中,所述方法包括:
响应于接收到客户端发送的第一报文,建立与所述客户端之间的通信连接;所述第一报文是所述客户端与所述服务端进行握手校验时使用的握手校验协议中的第一条报文,所述第一报文中携带有域名信息;
基于所述域名信息生成第二报文,所述第二报文为所述目标设备与所述服务端建立隧道时使用的隧道建立协议中的第一条报文;
基于所述隧道建立协议向代理服务器发送所述第二报文,以使代理服务器基于所述隧道建立协议建立所述目标设备与所述服务端之间的隧道;
在所述隧道建立成功后,转发所述客户端与所述服务端之间传输的目标数据,以使所述客户端对所述服务端进行访问,所述目标数据包括所述第一报文。
可选地,所述响应于接收到客户端发送的第一报文,建立与所述客户端之间的通信连接,包括:
响应于接收到所述第一报文,创建所述客户端对应的连接实例,不同客户端对应不同的连接实例;
使用所述连接实例建立与所述客户端之间的通信连接。
可选地,所述基于所述域名信息生成第二报文之前,还包括:
获取所述客户端对应的模拟端口,所述模拟端口用于模拟所述客户端与所述代理服务器之间建立通信连接;不同客户端对应不同的模拟端口;
对所述第一报文进行解析,得到所述域名信。
可选地,所述在所述隧道建立成功后,转发所述客户端与所述服务端之间传输的目标数据,包括:
响应于接收到所述代理服务器发送的隧道建立成功应答,通过所述代理服务器立即向所述服务端发送所述第一报文,以与所述服务端之间进行握手校验;
在发送所述第一报文后,透明转发所述客户端与所述服务端之间其它的目标数据。
可选地,所述方法还包括:
在所述隧道未建立成功的情况下,断开与所述客户端之间的通信连接。
可选地,所述在所述隧道建立成功后,转发所述客户端与所述服务端之间传输的目标数据之后,还包括:
响应于接收到所述客户端发送的隧道终止请求,断开与所述代理服务器之间的通信连接,以销毁所述隧道。
可选地,所述隧道建立协议包括HTTP协议,所述握手校验协议包括SSL协议。
第二方面,提供了一种目标设备,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的服务端访问方法。
第三方面,提供了一种计算机可读存储介质,所述存储介质中存储有程序,所述程序被处理器执行时用于实现第一方面所述的服务端访问方法。
第四方面,提供了一种服务端的访问系统,所述系统包括:客户端、目标设备、代理服务器和服务端;
所述客户端,用于向所述目标设备发送第一报文,所述第一报文是所述客户端与所述服务端进行握手校验时使用的握手校验协议中的第一条报文,所述第一报文中携带有域名信息;
所述目标设备,用于响应于接收到客户端发送的第一报文,建立与所述客户端之间的通信连接;基于所述第一报文中的域名信息生成第二报文;并基于所述隧道建立协议向代理服务器发送所述第二报文,所述第二报文为所述目标设备与所述服务端建立隧道时使用的隧道建立协议中的第一条报文;
所述代理服务器,用于在接收到所述第二报文的情况下,基于所述隧道建立协议建立所述目标设备与所述服务端之间的隧道;
所述目标设备,还用于在所述隧道建立成功后,转发所述客户端与所述服务端之间传输的目标数据,以使所述客户端对所述服务端进行访问,所述目标数据包括所述第一报文。
本申请的有益效果在于,通过响应于接收到客户端发送的第一报文,建立与客户端之间的通信连接;第一报文是客户端与服务端进行握手校验时使用的握手校验协议中的第一条报文,第一报文中携带有域名信息;基于域名信息生成第二报文,第二报文为目标设备与服务端建立隧道时使用的隧道建立协议中的第一条报文;基于隧道建立协议向代理服务器发送第二报文,以使代理服务器基于隧道建立协议建立目标设备与服务端之间的隧道;在隧道建立成功后,转发客户端与服务端之间传输的目标数据,以使客户端对服务端进行访问,目标数据包括第一报文;可以解决客户端需要预先配置代理服务器的端口,从而导致软件程序开发时效率较低的问题,同时可以解决对于未配置代理服务器的端口的客户端无法访问服务端的问题;基于握手校验协议建立目标设备与客户端之间的连接,并基于隧道建立协议建立目标设备与代理服务器之间的连接,代理服务器可以基于隧道建立协议建立目标设备与服务端之间的隧道;这样,可以实现客户端至服务端之间的数据传输,对于未配置代理服务器端口的软件程序,也能实现对服务端的访问。
另外,由于打破了握手校验协议和隧道建立协议之间的原有执行顺序,通过先使用握手校验协议的第一条报文建立目标设备建立与客户端之间的通信连接;再通过隧道建立协议建立目标设备与服务端之间的隧道,之后继续使用握手校验协议进行客户端与服务端之间的握手校验,在实现对服务端的访问的同时,不需要对握手校验协议和隧道建立协议的协议内容进行修改,只需要对报文的传输顺序进行调整即可,可以简化客户端访问服务器的难度。
另外,由于客户端通过向目标设备发送握手校验协议的第一条报文,来触发目标设备建立与客户端之间的通信连接、以及目标设备与服务端之间的隧道,而该握手校验协议是客户端访问服务端时必然使用的协议,这样,在隧道建立成功后,目标设备不需要重新生成第一报文以进行客户端与目标设备之间的握手校验,可以节省通信资源。
另外,由于隧道建立成功后,目标数据可以透明地在隧道里转发数据,而没有通过目标设备进行改动,因此,本实施例提供的服务端的访问方法保持了原有数据在身份认证、数据保密、和完整性校验等方面的安全级别,可以降低人为攻击的风险。
另外,由于客户端与服务端之间的隧道建立成功后,需要使用握手校验协议进行握手校验。因此,本实施例中,在隧道建立成功后,通过代理服务器立即向服务端发送第一报文,可以保证握手校验的及时性,提高服务端访问的效率。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
【附图说明】
图1是本申请一个实施例提供的基于HTTPS协议的隧道建立的流程图;
图2是本申请一个实施例提供的服务端的访问系统的结构示意图;
图3是本申请一个实施例提供的服务端的访问方法的流程图;
图4是本申请一个实施例提供的服务端访问装置的框图;
图5是本申请一个实施例提供的目标设备的框图。
【具体实施方式】
下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在申请中,在未作相反说明的情况下,使用的方位词如“上、下、顶、底”通常是针对附图所示的方向而言的,或者是针对部件本身在竖直、垂直或重力方向上而言的;同样地,为便于理解和描述,“内、外”是指相对于各部件本身的轮廓的内、外,但上述方位词并不用于限制申请。
首先,对本申请实施例涉及的若干名词进行介绍。
超文本传输协议(HyperText Transfer Protocol,HTTP协议):是指一种无状态的、位于应用层的、且以请求/应答方式运行的协议。在访问服务端的过程中,客户端需要基于HTTP协议向代理服务器发送与服务端连接的请求,代理服务器接收到请求后,分析请求并向服务端转发,在接受到服务端的响应后,转发给客户端,以完成服务端的访问。在此过程中,代理服务器作为“中间人”的角色面向客户端和服务端。
HTTPS协议(Hyper Text Transfer Protocol over SecureSocket Layer,HTTPS):由于采用HTTP协议进行服务端的访问过程中,代理服务器作为“中间人”的角色,无法分别与客户端与服务端进行SSL协商,由此,HTTPS是在HTTP协议的基础上加入SSL协议,HTTPS协议是以安全为目标的HTTP通道。基于HTTPS协议的隧道建立流程如图1,该流程至少包括以下几个步骤:
步骤S1:客户端向代理服务器发送CONNECT请求;
其中,CONNECT请求基于HTTP协议产生。CONNECT请求中包括域名信息。CONNECT请求用于请求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信,主要使用安全套接层(Secure Sockets Layer,SSL)和传输层安全(Transport Layer Security,TLS)协议把通信内容加密后经网络隧道传输。
其中,CONNECT请求是指使用CONNECT方法生成的HTTP请求。CONNECT方法用于代理服务器,以通过代理服务器可以访问一些代理服务器才能访问的内容。相应地,代理服务器会监听某个端口,客户端通过传输控制协议(Transmission Control Protocol,TCP协议)与代理服务器建立连接,客户端再向代理服务器发送CONNECT请求,CONNECT请求的报文包括想要访问的服务器端(假设是A)的域名信息,在实际实现时,CONNECT请求还可以包括验证信息(账号,密码)。其中,验证信息用于供代理服务器验证客户端,如果代理服务器验证通过了,则返回通过信息给客户端,之后客户端就可以以一般的网页访问方式去服务端。
示意性地,CONNECT请求的起始行示例如下:
CONNECT server.example.com:443HTTP/1.1。其中,域名信息Host为:server.example.com:443。其中,域名信息包括服务端的域名和端口号。
步骤S2:代理服务器接收到CONNECT请求后向服务端发送创建到服务端的连接;
步骤S3:服务端返回代理服务器连接建立成功的应答;
步骤S4:代理服务器返回客户端“HTTP连接就绪”应答;
成功应答起始行示例如下:
HTTP/1.1 200Connection Established。
其中,CONNECT请求及应答报文采用明文传输。由于CONNECT请求中不包含完整统一资源定位系统(uniform resource locator,URL)及储存在用户本地终端上的数据Cookie等信息,并没有降低HTTPS的安全性。
步骤S5:客户端与服务端进行数据传输,在此过程中,客户端与服务端基于SSL协议协商安全数据(包括服务器数字证书和密钥协商数据)。
其中,安全数据是代理服务器透明转发的,服务端的数字证书能够到达客户端。客户端借助数字证书的认证机制,可以实现对服务端的身份认证,并且,客户端透过代理直接跟服务端进行SSL握手协商密钥。
SSL协议:是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。
TSL协议:是用于在两个通信应用程序之间提供保密性和数据完整性的协议。
传输控制协议(Transmission Control Protocol,TCP协议):是一种面向连接的、可靠的、基于字节流的传输层通信协议。
安全外壳协议(Secure Shell,SSH协议):是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。
传统的服务端访问方式中,客户端通过预先配置有代理服务器端口,基于HTTP协议向代理服务器发送CONNECT请求,代理服务器接收到CONNECT请求后与服务端建立HTTP连接,在HTTP连接成功后,客户端基于SSL协议或者TSL协议通过代理服务器与服务端进行握手校验,以使用握手校验得到的密钥与服务端之间进行数据传输,实现对服务端的访问。
然而,按照现有协议实现客户端对服务端的访问时,客户端需要预先配置代理服务器端口。以各种浏览器软件为例,不管windows还是Linux操作系统,在设置界面中都需要配置代理服务器端口。这样,各种应用软件的开发商,在其软件中亦实现代理服务器的配置及访问方法,不仅提高了软件的复杂度、增大了开发难度,也降低了可靠性、并延长了开发周期。另外,未实现代理服务器访问功能的软件,将无法通过代理上网。
基于此,本实施例提供一种服务端访问方法与系统,不需要预先对客户端进行代理服务器的相关配置,即可以实现对服务端的访问。下面对该服务端访问方法和系统分别进行介绍。
本实施例提供的一种服务端的访问系统的结构示意图,如图2所示。该系统包括:客户端210、目标设备220、代理服务器230和服务端240。
客户端210是指安装在用户终端上的应用程序,客户端210可以是浏览器、社交程序、或者某个应用程序中的功能模块等,用户终端可以为手机、计算机、平板电脑等电子设备,本实施例不对客户端210和用户终端的实现方式作限定。
本实施例中,客户端210可以不需要配置代理服务器230的端口信息。
具体地,客户端210用于:向目标设备220发送第一报文,该第一报文是客户端210与服务端240进行握手校验时使用的握手校验协议中的第一条报文,第一报文中携带有域名信息。域名信息为隧道建立协议中的第一条报文(即下文中的第二报文)所需使用的信息。
可选地,握手校验协议用于客户端210及服务端240之间确认彼此的身份的网络协议,握手校验协议包括但不限于:SSL协议、或者TLS协议等,本实施例不对握手校验协议的类型作限定。
以握手校验协议为SSL协议为例,第一报文包括Client Hello报文。
具体地,域名信息为客户端所访问服务端240的域名信息,域名信息用于指示服务端240。域名信息也可以称为主机名称,本实施例不对域名信息的名称作限定。比如:域名信息为:www.xxx.com。
由于客户端210可能无法获知需要向哪个设备发送第一报文,因此,在客户端210向目标设备220发送第一报文之前,客户端210需要与域名解析系统250进行交互,以获取目标设备220的设备地址。设备地址包括目标设备220的IP地址和端口号,或者,设备地址包括目标设备220的IP地址。
其中,域名解析系统250中具有域名信息与目标设备220的设备地址之间的映射关系。相应地,域名解析系统250用于基于映射关系确定域名信息对应的设备地址。
具体地,客户端210获取目标设备220的设备地址的过程,至少包括以下几个步骤:
步骤1,客户端210向域名解析系统250发送域名信息。
步骤2,域名解析系统250接收客户端210发送的域名信息,解析该域名信息,基于预先配置的映射关系得到该域名信息对应的目标设备220的设备地址。
步骤3,域名解析系统250将目标设备220的设备地址发送至客户端210。
比如:域名解析系统250中域名信息www.xxx.com对应的设备地址为2.2.2.2。客户端210向域名解析系统250发送域名信息www.xxx.com,域名解析系统250解析该域名信息得到目标设备220的设备地址为2.2.2.2,域名解析系统250将该设备地址发送至客户端210。相应地,客户端210获取目标设备的设备地址为2.2.2.2。
目标设备220是指独立于客户端210和代理服务器230的电子设备,目标设备220可以是服务器,服务器集群,或者是终端等,本实施例不对目标设备220的实现方式作限定。
可选地,每个目标设备220对应一个或者多个客户端210,图1中以目标设备220为一个为例进行说明,在实际实现时,目标设备220的数量也可以为至少两个,本实施例不对目标设备220的数量,以及每个目标设备220对应的客户端210的数量作限定。
本实施例中,在不同的协议中(包括握手校验协议和隧道建立协议),对于客户端210,目标设备220的作用等同于协议中的服务端;对于服务端240,目标设备220的作用等同于协议中的客户端。
具体地,目标设备220用于响应于接收到客户端210发送的第一报文,建立与客户端210之间的通信连接(此时目标设备220相当于服务端240);基于第一报文中的域名信息生成第二报文(此时目标设备220相当于客户端210);并基于隧道建立协议向代理服务器230发送第二报文(此时目标设备220相当于客户端210)。
其中,隧道建立协议用于创建目标设备220与服务端240之间的隧道协议,隧道建立协议包括但不限于:HTTP协议、TCP协议或者SSH协议等,本实施例不对隧道建立协议的类型作限定。
具体地,第二报文为目标设备220与服务端240建立隧道时使用的隧道建立协议中的第一条报文。第二报文包括域名信息。以隧道建立协议为HTTP协议为例,第二报文包括CONNECT请求,CONNECT请求中包括所访问服务端240的域名信息。
域名信息包括服务端240的域名和端口号。
其中,服务端240的端口号用于指示服务端240中客户端提供服务的端口。可选地,不同客户端210对应的服务端240的端口号的相同或不同。示意性地,当隧道建立协议为HTTP协议,则服务端240的端口号为443。
代理服务器230是指位于目标设备220与服务端240之间的独立设备,代理服务器230可以为服务器集群,电脑终端以及其他终端,本实施例不对代理服务器230的实现方式作限定。
具体地,代理服务器230,用于在接收到第二报文的情况下,基于隧道建立协议建立目标设备与服务端之间的隧道。
代理服务器230基于隧道建立协议建立目标设备220与服务端240之间的隧道,包括:代理服务器230接收到第二报文后,基于域名信息建立到服务端240的端口之间的连接,以建立目标设备220与服务端240之间的隧道;在该连接建立成功后,服务端240向代理服务器230返回隧道已建立的应答;代理服务器230接收到该应答后,向目标设备220发送隧道建立成功应答。
目标设备220,还用于在隧道建立成功后,转发客户端210与服务端240之间传输的目标数据,以使客户端210对服务端240进行访问,目标数据包括第一报文。
具体地,在隧道建立成功后,目标设备220透明转发客户端210与服务端240之间传输的目标数据。换言之,目标设备220不对目标数据进行处理,只对目标数据进行转发。
本实施例中,通过基于握手校验协议建立目标设备与客户端之间的连接,并基于隧道建立协议建立目标设备与代理服务器之间的连接,代理服务器可以基于隧道建立协议建立目标设备与服务端之间的隧道;这样,可以实现客户端至服务端之间的数据传输,可以解决客户端开发过程效率较低的问题;对于未配置代理服务器端口的软件程序,也能实现对服务端的访问。
同时,本实施例中,打破了握手校验协议和隧道建立协议之间的原有执行顺序,通过先使用握手校验协议的第一条报文建立目标设备建立与客户端之间的通信连接;再通过隧道建立协议建立目标设备与服务端之间的隧道,之后继续使用握手校验协议进行客户端与服务端之间的握手校验,在实现对服务端的访问的同时,不需要对握手校验协议和隧道建立协议的协议内容进行修改,只需要对报文的传输顺序进行调整即可,可以简化客户端访问服务器的难度。
另外,由于客户端通过向目标设备发送握手校验协议的第一条报文,来触发目标设备建立与客户端之间的通信连接、以及目标设备与服务端之间的隧道,而该握手校验协议是客户端访问服务端时必然使用的协议,这样,在隧道建立成功后,目标设备不需要重新生成第一报文以进行客户端与目标设备之间的握手校验,可以节省通信资源。
另外,由于隧道建立成功后,目标数据可以透明地在隧道里转发数据,而没有通过目标设备进行改动,因此,本实施例提供的服务端的访问方法保持了原有数据在身份认证、数据保密、和完整性校验等方面的安全级别,可以降低人为攻击的风险。
下面对本申请提供的服务端的访问方法进行详细介绍。
如图3所示,本申请的实施例提供的一个服务端的访问方法,本实施例以该方法用于图1所示的服务端的访问系统中为例进行说明,该方法至少包括以下几个步骤:
步骤301,客户端基于握手校验协议向目标设备发送第一报文,第一报文中携带有域名信息。
第一报文是客户端与服务端进行握手校验时使用的握手校验协议中的第一条报文。以握手校验协议为SSL协议为例,第一报文包括Client Hello报文,该第一报文携带有域名信息。
具体地,第一报文中会携带Server Name扩展。该扩展指出了所访问服务端的域名信息。
步骤302,目标设备响应于接收到客户端发送的第一报文,建立与客户端之间的通信连接。
本步骤中,对于客户端来说,目标设备相当于握手校验协议中的服务器。相应地,目标设备上设置有监听端口,该监听端口用于监听是否接收到第一报文。换言之,目标设备按照握手校验协议基于第一报文建立与客户端之间的通信连接。
具体地,目标设备响应于接收到客户端发送的第一报文,建立与客户端之间的通信连接,包括:响应于接收到第一报文,创建客户端对应的连接实例;使用连接实例建立与客户端之间的通信连接。
其中,不同客户端对应不同的连接实例。
目标设备接收第一报文后,会存储该第一报文,以在隧道建立成功后将该第一报文通过代理服务器转发至服务端,以供客户端和服务端之间进行握手校验。
步骤303,目标设备基于域名信息生成第二报文,第二报文为目标设备与服务端建立隧道时使用的隧道建立协议中的第一条报文。
本步骤中,对于代理服务器来说,目标设备相当于隧道建立协议中的客户端。换言之,目标设备按照隧道建立协议基于域名信息生成第二报文。
具体地,目标设备基于域名信息生成第二报文之前,还包括:获取客户端对应的模拟端口;对第一报文进行解析,得到域名信息。
其中,模拟端口用于供目标设备模拟客户端与代理服务器之间建立通信连接,不同客户端对应不同的模拟端口。
目标设备中预先配置有多个TCP端口。在一个示例中,获取客户端对应的模拟端口,包括:从预先配置的多个TCP端口中随机选择一个未使用的TCP端口。或者,按照TCP端口的端口号由小至大的顺序选择一个未使用的TCP端口,本实施例不对模拟端口的获取方式作限定。
基于域名信息生成第二报文,包括:按照隧道建立协议将域名信息携带在第二报文中。以隧道建立协议为HTTP协议为例,第二报文为CONNECT请求携带的报文,CONNECT请求的起始行示意如下:
CONNECT server.www.xxx.com:443HTTP/1.1。
其中,server.www.xxx.com:443为域名信息。域名信息包括服务端的域名和HTTPS协议的默认服务端的端口号443。
步骤304,目标设备基于隧道建立协议向代理服务器发送第二报文,以使代理服务器基于隧道建立协议建立目标设备与服务端之间的隧道。
目标设备确定出TCP端口后,使用该TCP端口模拟隧道建立协议中的客户端与代理服务器中的监听端口建立TCP连接;相应地,代理服务器通过监听端口监听到第二报文。
步骤305,代理服务器在接收到第二报文的情况下,基于隧道建立协议建立目标设备与服务端之间的隧道。
代理服务器在接收到第二报文的情况下,建立至域名信息指示的服务端的端口号的连接,以建立目标设备与服务端之间的隧道。
可选地,第二报文还可以包括验证信息,代理服务器在接收到第二报文的情况下,先对验证信息进行验证;在验证通过后建立至域名信息指示的服务端的端口号的连接。
步骤306,服务端建立与代理服务器的连接,并在连接成功后向代理服务器返回隧道已建立的应答。
步骤307,代理服务器在接收到隧道已建立的应答后,生成隧道建立成功应答,并返回至目标设备。
步骤308,目标设备在接收到代理服务器反馈的隧道建立成功应答后,即在隧道建立成功后,转发客户端与服务端之间传输的目标数据,以使客户端对服务端进行访问,该目标数据包括第一报文。
具体地,目标设备在接收到代理服务器发送的隧道建立成功应答后,通过代理服务器立即向服务端发送第一报文,以与服务端之间进行握手校验(此时,对于代理服务器来说,目标设备为握手校验协议中的客户端);在发送第一报文后,透明转发客户端与服务端之间其它的目标数据。
一般地,客户端与服务端之间的隧道建立成功后,需要使用握手校验协议进行握手校验。基于此,本实施例中,在隧道建立成功后,通过代理服务器立即向服务端发送第一报文,可以保证握手校验的及时性,提高服务端访问的效率。
其中,其它的目标数据包括但不限于:握手校验协议中除第一报文之外的其它报文,以及握手校验协议通过后客户端与服务端之间传输的业务数据。
可选地,在隧道未建立成功的情况下,目标设备还用于断开与客户端之间的通信连接。这样,目标设备与客户端之间不需要一直保持通信连接,节省通信资源。
具体地,目标设备可以在未接收到隧道建立成功应答或者接收到隧道建立失败应答的情况下,确定隧道未建立成功。
可选地,在客户端不需要访问服务端的情况下,还可以请求销毁隧道。具体地,在步骤308之后,客户端基于与目标设备之间的通信连接向目标设备发送隧道终止请求;相应地,目标设备响应于接收到客户端发送的隧道终止请求,断开与代理服务器之间的通信连接,以销毁隧道。
综上所述,本实施例提供的服务端的访问方法,通过响应于接收到客户端发送的第一报文,建立与客户端之间的通信连接;第一报文是客户端与服务端进行握手校验时使用的握手校验协议中的第一条报文,第一报文中携带有域名信息;基于域名信息生成第二报文,第二报文为目标设备与服务端建立隧道时使用的隧道建立协议中的第一条报文;基于隧道建立协议向代理服务器发送第二报文,以使代理服务器基于隧道建立协议建立目标设备与服务端之间的隧道;在隧道建立成功后,转发客户端与服务端之间传输的目标数据,以使客户端对服务端进行访问,目标数据包括第一报文;可以解决客户端需要预先配置代理服务器的端口,从而导致软件程序开发时效率较低的问题,同时可以解决对于未配置代理服务器的端口的客户端无法访问服务端的问题;基于握手校验协议建立目标设备与客户端之间的连接,并基于隧道建立协议建立目标设备与代理服务器之间的连接,代理服务器可以基于隧道建立协议建立目标设备与服务端之间的隧道;这样,可以实现客户端至服务端之间的数据传输,对于未配置代理服务器端口的软件程序,也能实现对服务端的访问。
同时,本实施例中,打破了握手校验协议和隧道建立协议之间的原有执行顺序,通过先使用握手校验协议的第一条报文建立目标设备建立与客户端之间的通信连接;再通过隧道建立协议建立目标设备与服务端之间的隧道,之后继续使用握手校验协议进行客户端与服务端之间的握手校验,在实现对服务端的访问的同时,不需要对握手校验协议和隧道建立协议的协议内容进行修改,只需要对报文的传输顺序进行调整即可,可以简化客户端访问服务器的难度。
另外,由于客户端通过向目标设备发送握手校验协议的第一条报文,来触发目标设备建立与客户端之间的通信连接、以及目标设备与服务端之间的隧道,而该握手校验协议是客户端访问服务端时必然使用的协议,这样,在隧道建立成功后,目标设备不需要重新生成第一报文以进行客户端与目标设备之间的握手校验,可以节省通信资源。
另外,由于隧道建立成功后,目标数据可以透明地在隧道里转发数据,而没有通过目标设备进行改动,因此,本实施例提供的服务端的访问方法保持了原有数据在身份认证、数据保密、和完整性校验等方面的安全级别,可以降低人为攻击的风险。
另外,由于客户端与服务端之间的隧道建立成功后,需要使用握手校验协议进行握手校验。因此,本实施例中,在隧道建立成功后,通过代理服务器立即向服务端发送第一报文,可以保证握手校验的及时性,提高服务端访问的效率。
可选地,步骤301可单独实现为客户端侧的方法实施例;步骤302-304、和步骤308可单独实现为目标设备侧的方法实施例;步骤305和307可单独实现为代理服务器侧的方法实施例;步骤306可以单独实现为服务端侧的实施例。
图4是本申请一个实施例提供的服务端访问装置的框图,本实施例以该装置应用于图2所示的服务端的访问系统中的目标设备210为例进行说明。该装置至少包括以下几个模块:连接建立模块410、报文生成模块420、报文发送模块430和数据传输模块440。
连接建立模块410,用于响应于接收到客户端发送的第一报文,建立与客户端之间的通信连接;第一报文是客户端与服务端进行握手校验时使用的握手校验协议中的第一条报文,第一报文中携带有域名信息。
报文生成模块420,用于基于域名信息生成第二报文,第二报文为目标设备与服务端建立隧道时使用的隧道建立协议中的第一条报文。
报文发送模块430,用于基于隧道建立协议向代理服务器发送第二报文,以使代理服务器基于隧道建立协议建立目标设备与服务端之间的隧道。
数据传输模块440,用于在隧道建立成功后,转发客户端与服务端之间传输的目标数据,以使客户端对服务端进行访问,目标数据包括第一报文。
相关细节参考上述实施例。
需要说明的是:上述实施例中提供的服务端访问装置在进行服务端访问时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务端访问装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务端访问装置与服务端的访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本实施例提供一种目标设备,如图5所示,该目标设备可以为图2中的目标设备。该目标设备至少包括处理器501和存储器502。
处理器501可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请中方法实施例提供的服务端的访问方法。
在一些实施例中,目标设备还可选包括有:外围设备接口和至少一个外围设备。处理器501、存储器502和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,目标设备还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的服务端的访问方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种服务端的访问方法,其特征在于,用于目标设备中,所述方法包括:
响应于接收到客户端发送的第一报文,建立与所述客户端之间的通信连接;所述第一报文是所述客户端与所述服务端进行握手校验时使用的握手校验协议中的第一条报文,所述第一报文中携带有域名信息;
基于所述域名信息生成第二报文,所述第二报文为所述目标设备与所述服务端建立隧道时使用的隧道建立协议中的第一条报文;
基于所述隧道建立协议向代理服务器发送所述第二报文,以使代理服务器基于所述隧道建立协议建立所述目标设备与所述服务端之间的隧道;
在所述隧道建立成功后,转发所述客户端与所述服务端之间传输的目标数据,以使所述客户端对所述服务端进行访问,所述目标数据包括所述第一报文。
2.根据权利要求1所述的方法,其特征在于,所述响应于接收到客户端发送的第一报文,建立与所述客户端之间的通信连接,包括:
响应于接收到所述第一报文,创建所述客户端对应的连接实例,不同客户端对应不同的连接实例;
使用所述连接实例建立与所述客户端之间的通信连接。
3.根据权利要求1所述的方法,其特征在于,所述基于所述域名信息生成第二报文之前,包括:
获取所述客户端对应的模拟端口,所述模拟端口用于模拟所述客户端与所述代理服务器之间建立通信连接;不同客户端对应不同的模拟端口;
对所述第一报文进行解析,得到所述域名信息。
4.根据权利要求1所述的方法,其特征在于,所述在所述隧道建立成功后,转发所述客户端与所述服务端之间传输的目标数据,包括:
响应于接收到所述代理服务器发送的隧道建立成功应答,通过所述代理服务器立即向所述服务端发送所述第一报文,以与所述服务端之间进行握手校验;
在发送所述第一报文后,透明转发所述客户端与所述服务端之间其它的目标数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述隧道未建立成功的情况下,断开与所述客户端之间的通信连接。
6.根据权利要求1所述的方法,其特征在于,所述在所述隧道建立成功后,转发所述客户端与所述服务端之间传输的目标数据之后,还包括:
响应于接收到所述客户端发送的隧道终止请求,断开与所述代理服务器之间的通信连接,以销毁所述隧道。
7.根据权利要求1至6任一所述的方法,其特征在于,所述隧道建立协议包括HTTP协议,所述握手校验协议包括SSL协议或者TSL协议。
8.一种目标设备,其特征在于,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的服务端访问方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至7任一项所述的服务端访问方法。
10.一种服务端的访问系统,其特征在于,所述系统包括:客户端、目标设备、代理服务器和服务端;
所述客户端,用于向所述目标设备发送第一报文,所述第一报文是所述客户端与所述服务端进行握手校验时使用的握手校验协议中的第一条报文,所述第一报文中携带有域名信息;
所述目标设备,用于响应于接收到客户端发送的第一报文,建立与所述客户端之间的通信连接;基于所述第一报文中的域名信息生成第二报文;并基于隧道建立协议向代理服务器发送所述第二报文,所述第二报文为所述目标设备与所述服务端建立隧道时使用的所述隧道建立协议中的第一条报文;
所述代理服务器,用于在接收到所述第二报文的情况下,基于所述隧道建立协议建立所述目标设备与所述服务端之间的隧道;
所述目标设备,还用于在所述隧道建立成功后,转发所述客户端与所述服务端之间传输的目标数据,以使所述客户端对所述服务端进行访问,所述目标数据包括所述第一报文。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111674422.3A CN114301968B (zh) | 2021-12-31 | 2021-12-31 | 服务端的访问方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111674422.3A CN114301968B (zh) | 2021-12-31 | 2021-12-31 | 服务端的访问方法、系统、设备及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114301968A CN114301968A (zh) | 2022-04-08 |
| CN114301968B true CN114301968B (zh) | 2024-03-08 |
Family
ID=80974895
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202111674422.3A Active CN114301968B (zh) | 2021-12-31 | 2021-12-31 | 服务端的访问方法、系统、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114301968B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115473941A (zh) * | 2022-08-10 | 2022-12-13 | 重庆帮企科技集团有限公司 | 一种app无法代理抓包的解决方法 |
| CN115733586B (zh) * | 2022-12-12 | 2025-10-14 | 阿里巴巴(中国)网络技术有限公司 | 隧道建立与数据传输处理方法、设备及存储介质 |
| CN116015954B (zh) * | 2023-01-03 | 2025-12-02 | 阿里巴巴(中国)有限公司 | 安全隧道的建立方法和电子设备 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1633100A (zh) * | 2003-12-24 | 2005-06-29 | 华为技术有限公司 | 多媒体业务网络地址转换穿越的方法及其系统 |
| CN1921438A (zh) * | 2006-09-15 | 2007-02-28 | 深圳市深信服电子科技有限公司 | 一种应用代理实现网间应用加速的方法 |
| CN101465844A (zh) * | 2007-12-18 | 2009-06-24 | 华为技术有限公司 | 一种防火墙穿越方法、系统和设备 |
| CN102984237A (zh) * | 2012-11-20 | 2013-03-20 | 北京思特奇信息技术股份有限公司 | 一种基于socket连接的数据传输系统及方法 |
| CN111988212A (zh) * | 2019-05-23 | 2020-11-24 | 华为技术有限公司 | 一种报文传输方法以及相关装置 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8117317B2 (en) * | 2008-12-31 | 2012-02-14 | Sap Ag | Systems and methods for integrating local systems with cloud computing resources |
| EP4407999A3 (en) * | 2014-12-08 | 2024-09-04 | Umbra Technologies Ltd. | System and method for content retrieval from remote network regions |
-
2021
- 2021-12-31 CN CN202111674422.3A patent/CN114301968B/zh active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1633100A (zh) * | 2003-12-24 | 2005-06-29 | 华为技术有限公司 | 多媒体业务网络地址转换穿越的方法及其系统 |
| CN1921438A (zh) * | 2006-09-15 | 2007-02-28 | 深圳市深信服电子科技有限公司 | 一种应用代理实现网间应用加速的方法 |
| CN101465844A (zh) * | 2007-12-18 | 2009-06-24 | 华为技术有限公司 | 一种防火墙穿越方法、系统和设备 |
| CN102984237A (zh) * | 2012-11-20 | 2013-03-20 | 北京思特奇信息技术股份有限公司 | 一种基于socket连接的数据传输系统及方法 |
| CN111988212A (zh) * | 2019-05-23 | 2020-11-24 | 华为技术有限公司 | 一种报文传输方法以及相关装置 |
Non-Patent Citations (1)
| Title |
|---|
| 基于SSL协议的访问控制体系的分析与设计;何宁 等;控制工程;20040331;第11卷(第2期);全文 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114301968A (zh) | 2022-04-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3300331B1 (en) | Response method, apparatus and system in virtual network computing authentication, and proxy server | |
| CN114301968B (zh) | 服务端的访问方法、系统、设备及存储介质 | |
| US12261843B1 (en) | Secure identity provider authentication for native application to access web service | |
| CN106790194A (zh) | 一种基于ssl协议的访问控制方法及装置 | |
| CN111050319A (zh) | 强制门户系统、方法和设备 | |
| CN103108037B (zh) | 一种通信方法,Web服务器及Web通信系统 | |
| CN111226418A (zh) | 针对跨网络周边防火墙的设备使能零接触引导 | |
| US20240056483A1 (en) | Server-initiated secure sessions | |
| HK1215335A1 (zh) | 针对受约束资源设备的密钥建立 | |
| CN112165480A (zh) | 信息获取方法、装置和电子设备 | |
| CN111212117A (zh) | 一种远程交互的方法和装置 | |
| CN113438256B (zh) | 一种基于双层ssl的数据传输方法、系统和代理服务器 | |
| CN113630447B (zh) | 一种基于web的云服务提供方法、系统及存储介质 | |
| US8676998B2 (en) | Reverse network authentication for nonstandard threat profiles | |
| CN116248268A (zh) | 国密握手请求的处理方法、设备及可读存储介质 | |
| CN119603339B (zh) | 物联网设备远程控制方法、平台、存储介质和程序产品 | |
| CN110266705B (zh) | 一种控制方法及系统 | |
| WO2008011253A2 (en) | Host posing network device and method thereof | |
| CN113691510A (zh) | 一种跨域访问控制方法、系统、存储介质及设备 | |
| US20250193169A1 (en) | Custom information injection for a server while establishing end-to-end secure communication with a client via tunneling service | |
| EP3580901B1 (en) | Connection apparatus for establishing a secured application-level communication connection | |
| CN119583622A (zh) | 内网设备的连接方法、系统、介质、电子设备及程序产品 | |
| CN121357232A (zh) | 网络设备远程访问方法、系统、设备、介质及程序产品 | |
| CN118158192A (zh) | 设备通信方法、装置、计算机设备及存储介质 | |
| CN119814352A (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 |