CN109756992B - 创建网络连接的方法、装置和系统 - Google Patents
创建网络连接的方法、装置和系统 Download PDFInfo
- Publication number
- CN109756992B CN109756992B CN201710735701.3A CN201710735701A CN109756992B CN 109756992 B CN109756992 B CN 109756992B CN 201710735701 A CN201710735701 A CN 201710735701A CN 109756992 B CN109756992 B CN 109756992B
- Authority
- CN
- China
- Prior art keywords
- network
- network access
- access request
- function
- connection
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种创建网络连接的方法、装置和系统。其中,该方法应用于安全沙箱的网络连接中,具体包括:接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求;获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件;如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。本发明解决了现有的传输数据的方法无法使得不可信网络传输的请求安全地、无性能损耗地访问网络的技术问题。
Description
技术领域
本发明涉及网络安全领域,具体而言,涉及一种创建网络连接的方法、装置和系统。
背景技术
随着现代科学技术的快速发展,网络给人们的生活带来了极大的便利,人们通过网络可以与远方的亲人、朋友进行沟通,还可以通过远程办公与其他同事完成公司的任务,此外,人们还可以通过网络进行购物、观看娱乐节目等丰富日常生活。上述通过网络进行各项活动的过程,归根到底是通过网络传输数据的过程。然而,由于人们对网络越来越依赖,使用网络的用户越来越多,通过网络传输的数据也越来越多,人们越来越重视网络数据传输的安全性。
随着网络业务的发展,服务器需要处理以及传输的数据越来越多。对于不可信环境下的安全网络访问,目前的技术主要是采用VPN(虚拟专用网)。虚拟专用网的原理是对数据进行加密后传输,由此会给服务器带来额外的开销。在大数据计算场景(例如,GB-PB级)中,这样的开销是不可接受的,因此,需要一种无损的方式,通过网络将数据传输到服务器或用户终端的本地参与运算,同时还需要避免恶意用户通过网络进行恶意访问行为,即允许不可信环境下的不可信的用户程序安全地对网络进行访问。
针对上述现有的传输数据的方法无法使得不可信的用户程序安全地、无性能损耗地访问网络的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种创建网络连接的方法、装置和系统,以至少解决现有的传输数据的方法无法使得不可信网络传输的请求安全地、无性能损耗地访问网络的技术问题。
根据本发明实施例的一个方面,提供了一种创建网络连接的方法,该方法应用于安全沙箱的网络连接中,包括:接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求;获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件;如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
根据本发明实施例的另一方面,还提供了一种创建网络连接的装置,包括:接收模块,用于接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求;判断模块,用于获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件;执行模块,用于如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
根据本发明实施例的另一方面,还提供了一种创建网络连接的系统,包括:网络客户端,发起网络访问请求;服务器,与网络客户端连接,用于接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行创建网络连接的方法。
根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行创建网络连接的方法。
根据本发明实施例的另一方面,还提供了一种终端,包括:网络客户端,发起网络访问请求;服务器,与网络客户端连接,用于接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求;处理器,该处理器运行程序,其中,程序运行时对于从网络客户端和服务器输出的数据执行创建网络连接的方法。
根据本发明实施例的另一方面,还提供了一种终端,包括:网络客户端,发起网络访问请求;服务器,与网络客户端连接,用于接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求;存储介质,用于存储程序,其中,程序在运行时对于从网络客户端和服务器输出的数据执行创建网络连接的方法。
根据本发明实施例的另一方面,还提供了一种终端,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求;获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件;如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
在本发明实施例中,采用代理委托的方式,通过接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求,达到了在网络访问请求为不可信网络传输的请求的情况下,允许网络客户端访问外部连接的目的,从而实现了网络客户端无性能损耗、安全地访问外部网络连接的技术效果,进而解决了现有的传输数据的方法无法使得不可信网络传输的请求安全地、无性能损耗地访问网络的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种创建网络连接的系统结构示意图;
图2是根据本发明实施例的一种创建网络连接的方法的流程图;
图3是根据本发明实施例的一种可选的创建网络连接的系统的结构示意图;
图4是根据本发明实施例的一种可选的创建网络连接的方法流程图;
图5是根据本发明实施例的一种可选的创建网络套接字的方法流程图;
图6是根据本发明实施例的一种可选的建立外部网络连接的方法流程图;
图7是根据本发明实施例的一种可选的基于创建网络连接的方法交互图;
图8是根据本发明实施例的一种可选的基于创建网络连接的方法交互图;
图9是根据本发明实施例的一种可选的基于创建网络连接的方法交互图;
图10是根据本发明实施例的一种创建网络连接的装置结构示意图;以及
图11是根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
(1)安全沙箱:可以为但不限于金山隔离沙箱、腾讯安全沙箱、360隔离沙箱以及百度杀毒沙箱等,是一种根据安全策略限制程序行为的执行环境,用于执行不可信程序。
(2)不可信程序:指用户编写的程序,该程序中可能包含有恶意行为(例如,通过链接访问外部不可信网络)。其中,不可信程序需要通过安全沙箱来限制用户的行为(例如,访问网络的行为)。
(3)无损:在本申请中,指在对数据进行封装加密时需要产生额外的性能开销,而通过本申请的技术方案,在对数据进行传输以及处理时不会产生额外的性能开销。
(4)VPN:Virtual Private Network,即虚拟专用网络,用于在共用网络上建立专用网络,进行加密通讯。
实施例1
在描述本申请的各实施例的进一步细节之前,将参考图1来描述可用于实现本申请的原理的一个合适的创建网络连接的系统。
本申请实施例1所提供的创建网络连接的系统可以广泛的应用到网络安全方面。
随着现代科学技术的快速发展,网络给人们的生活带来了极大的便利,人们通过网络可以与远方的亲人、朋友进行沟通,还可以通过远程办公与其他同事完成公司的任务,此外,人们还可以通过网络进行购物、观看娱乐节目等丰富日常生活。上述通过网络进行各项活动的过程,归根到底是通过网络传输数据的过程。然而,由于人们对网络越来越依赖,使用网络的用户越来越多,通过网络传输的数据也越来越多,人们越来越重视网络数据传输的安全性。
随着网络业务的发展,服务器需要处理以及传输的数据越来越多。对于不可信环境下的安全网络访问,目前的技术主要是采用VPN(虚拟专用网)。虚拟专用网的原理是对数据进行加密后传输,由此会给服务器带来额外的开销。在大数据计算场景(例如,GB-PB级)中,这样的开销是不可接受的,因此,需要一种无损的方式,通过网络将数据传输到服务器或用户终端的本地参与运算,同时还需要避免恶意用户通过网络进行恶意访问行为,即允许不可信环境下的不可信的用户程序安全地对网络进行访问。
而在现有技术中通过如下方法来完成对网络的访问:
(1)服务器的后台程序通过调用socket()函数创建网络套接字;
(2)服务器的后台程序通过调用connect()函数将网络套接字连接到外部网络;
(3)在客户端与服务器的外部网络建立连接之后,服务器通过调用send()/recv()函数对数据进行发送/接收。
由于上述方法需要根据发送和接收数据的数据量的大小来多次执行send()/recv()函数,因此,造成了对服务器性能上的影响。
基于上述问题,本申请只对socket()函数和connect()函数的执行过程进行处理,因此本申请的方案可以使得服务器做到性能上的无损。
此外,本申请的不可信进程位于沙箱中,不可信进程关于网络访问相关的调用在Linux内核层被禁用。如果无代理或拦截,则网络客户端在调用socket()函数和connect()函数时会被Linux内核拒绝。当服务器使用dagger类库对网络访问请求进行拦截时,网络客户端发起的socket/connect请求会被发送到消息转发器中,消息转发器处于可信进程中,当服务器接收到网络客户端发起的网络访问请求时,服务器对该网络访问请求进行权限检查,并在网络访问请求满足网络访问条件的情况下,调用用于建立外部网络连接的函数来创建与外部网络的连接。通过本申请所提出的方案可以使不可信的用户程序安全地、无性能损耗地访问网络。
根据本申请实施例,提供了一种创建网络连接的系统,该系统可应用于安全沙箱的网络连接中,如图1所示的创建网络连接的系统结构示意图,该系统包括:网络客户端10和服务器30。
其中,网络客户端10,发起网络访问请求;服务器30,与网络客户端连接,用于接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求。
需要说明的是,上述网络客户端为能够通过发出网络请求信息的客户端,可以为但不限于智能手机、平板、笔记本电脑等移动终端以及台式电脑等固定终端设备。上述网络客户端发起的网络访问请求为不可信网络传输的请求,服务器可接收上述客户端发起的网络访问请求,其中,该服务器上安装有安全沙箱,以对客户端发起的网络访问请求进行处理,上述安全沙箱可以为但不限于金山隔离沙箱、腾讯安全沙箱、360隔离沙箱以及百度杀毒沙箱等。
在一种可选的实施例中,用户通过网络客户端编写程序来访问网络,由于用户可能会在该程序中写入恶意的代码,例如,该代码用于产生钓鱼链接或者窃取网络信息,因此,该程序为不可信网络程序。网络客户端通过编写好的程序向服务器发起网络访问请求,服务器接收到网络客户端发起的网络访问请求,并将该请求置于安装在服务器上的安全沙箱中,并对该网络请求进行进一步的判断和处理。
在另一种可选的实施例中,如图3所示的一种可选的创建网络连接的系统的结构示意图,由图3可知,该系统由外部网络、可信进程和不可信进程组成,其中,不可信进程位于安全沙箱环境中,不可信进程关于网络访问相关的调用(例如,对socket()函数和connect()函数的调用)在Linux内核层便被禁止。如果该系统中没有代理(即broker)或拦截函数(即dagger),则当网络客户端通过调用socket()函数和connect()函数访问外部网络时会被Linux内核拒绝。具体的,安全沙箱拦截socket()函数和connect()函数,并判断网络客户端发送的网络访问请求是否满足网络访问条件。其中,用于建立外部网络连接的函数至少包括socket()函数和connect()函数,此外,可信进程可通过查询网络访问策略来判断网络访问请求是否满足网络访问条件。在判断网络访问请求满足访问条件的情况下,服务器建立网络客户端与外部网络的连接关系,此时,网络客户端便可快速、安全的访问外部网络。
需要说明的是,可信进程通过查询网络访问策略来判断网络访问请求是否满足网络访问条件。其中,上述网络访问策略中包含了允许网络客户端访问外部网络的请求条件或者禁止网络客户端访问外部网络的请求条件。即在网络访问策略中包含允许网络客户端访问外部网络的请求条件的情况下,当可信进程查询到当前网络客户端发送的网络访问请求在网络访问策略中时,则判定网络访问请求满足网络访问条件。在网络访问策略中包含禁止网络客户端访问外部网络的请求条件的情况下,当可信进程查询到当前网络客户端发送的网络访问请求在网络访问策略中时,则判定网络访问请求不满足网络访问条件。在网络访问策略既包含允许网络客户端访问外部网络的请求条件又包含禁止网络客户端访问外部网络的请求条件的情况下,采用匹配的方法来确定网络访问请求是否满足网络访问条件。
由上可知,网络客户端发起网络访问请求,与网络客户端连接的服务器接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求。
容易注意到的是,由于服务器仅需要对创建用于建立外部网络连接的函数的过程进行处理,不需要对数据的发送以及接收过程进行加密或解密处理,因而,网络客户端的程序无性能损耗的对外部网络进行访问。
由此,本申请提供的上述实施例1的方案达到了在网络访问请求为不可信网络传输的请求的情况下,允许网络客户端访问外部连接的目的,从而实现了网络客户端无性能损耗、安全地访问外部网络链接的技术效果,进而解决了现有的传输数据的方法无法使得不可信网络传输的请求安全地、无性能损耗地访问网络的技术问题。
需要说明的是,在由不可信进程接收网络访问请求的情况下,禁止不可信进程调用用于建立外部网络连接的函数,并将网络访问请求发送至可信进程中。
在另一种可选的实施例中,服务器还可以通过获取不可信进程调用用于建立外部网络连接的函数,并将网络访问请求发送至可信进程中。
具体的,服务器通过不可信进程中的类库dagger来执行禁止调用用于建立外部网络连接的函数,不可信进行将网络访问请求发送至消息转发器broker中。
需要说明的是,用于获取网络客户端发起的网络访问请求的类库dagger位于不可信进程中,该类库用于禁止服务器调用用于建立外部网络连接的函数(例如,socket()函数和connect()函数)。
此外,还需要说明的是,用于建立外部网络连接的函数至少包括:用于创建网络套接字的第一函数和用于将网络套接字连接到外部网络的第二函数。其中,上述第一函数用于创建网络套接字,可以为但不限于socket()函数,上述第二函数用于将网络套接字连接到外部网络,可以为但不限于connect()函数。
在一种可选的实施例中,服务器还用于调用用于建立外部网络连接的网络套接字来创建与外部网络的连接。
具体的,网络客户端通过调用socket()函数建立网络套接字,并将网络访问请求发送至服务器,服务器在接收到网络访问请求之后,位于安全沙箱环境中的不可信进程中的类库dagger将socket()函数拦截,并将网络访问请求发送至消息转发器broker,消息转发器broker通过查询网络访问策略来判断网络访问请求是否满足网络访问条件,在网络访问请求满足网络访问条件的情况下,服务器中的消息转发器broker调用第一函数(例如,socket()函数)创建网络套接字,并将创建成功的网络套接字发送至不可信进程中的类库dagger,最后位于不可信进程中的类库dagger将网络套接字反馈给网络客户端。如果网络访问请求不满足网络访问条件,则服务器中的消息转发器broker拒绝调用第一函数创建网络套接字,并将第一拒绝信息发送给不可信进程中的类库dagger,由不可信进程中的类库dagger将第一拒绝信息反馈给网络客户端。其中,上述第一拒绝信息为在创建网络套接字时,网络访问请求不满足网络访问条件时所产生的信息。
在另一种可选的实施例中,服务器还用于调用用于建立外部网络连接的函数来创建与外部网络的连接。
具体的,网络客户端通过调用connect()函数建立与外部网络的连接关系,并将网络访问请求发送至服务器,服务器在接收到网络访问请求之后,位于安全沙箱环境中的不可信进程中的类库dagger将connect()函数拦截,并将网络访问请求发送至消息转发器broker,消息转发器broker通过查询网络访问策略来判断网络访问请求是否满足网络访问条件,在网络访问请求满足网络访问条件的情况下,服务器中的消息转发器broker调用第二函数将网络套接字连接外部网络,并将连接外部网络成功的网络套接字发送至不可信进程中的类库dagger,最后,不可信进程中的类库dagger将连接外部网络成功的网络套接字反馈给网络客户端。
如果网络访问请求不满足网络访问条件,消息转发器broker拒绝调用第二函数将网络套接字连接外部网络,并将第二拒绝信息发送给不可信进程中的类库dagger,最后由不可信进程中的类库dagger将第二拒绝信息反馈给网络客户端。
需要说明的是,上述第二拒绝信息为在创建外部网络连接时,网络访问请求不满足网络访问条件时所产生的信息。
实施例2
根据本发明实施例,还提供了一种创建网络连接的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请提供了如图2所示的创建网络连接的方法。图2是根据本发明实施例二的一种创建网络连接的方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求。
需要说明的是,上述网络客户端为能够通过发出网络请求信息的客户端,可以为但不限于智能手机、平板、笔记本电脑等移动终端以及台式电脑等固定终端设备。上述网络客户端发起的网络访问请求为不可信网络传输的请求,服务器可接收上述客户端发起的网络访问请求,并在安全沙箱环境下对客户端发起的网络访问请求进行处理。
在一种可选的实施例中,用户通过网络客户端编写程序来访问网络,由于用户可能会在该程序中写入恶意的代码,例如,该代码用于产生钓鱼链接或者窃取网络信息,因此,该程序为不可信程序。网络客户端通过编写好的程序向服务器发起网络访问请求(即不可信网络传输的请求),服务器接收到网络客户端发起的网络访问请求,并将该请求置于安装在服务器上的安全沙箱中,并对该网络请求进行进一步的判断和处理。
需要说明的是,上述安全沙箱可以为但不限于金山隔离沙箱、腾讯安全沙箱、360隔离沙箱以及百度杀毒沙箱等。
此外,还需要说明的是,通过步骤S202可以获取到网络客户端发起的不可信网络传输的请求,进而服务器根据接收到的不可信网络传输的请求进行处理,从而保障网络访问的安全性。
步骤S204,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件。
需要说明的是,现有技术中进行网络访问的步骤如下:
步骤S2040,服务器的后台程序通过调用socket()函数创建网络套接字;
步骤S2042,服务器的后台程序通过调用connect()函数将网络套接字连接到外部网络;
步骤S2044,在客户端与服务器的外部网络建立连接之后,服务器通过调用send()/recv()函数对数据进行发送/接收。
其中,通过调用socket()函数来创建套接字的过程仅需执行一次,通过调用connect()函数来将网络套接字连接到外部网络的过程也仅需执行一次,而调用send()/recv()函数的次数需要根据访问数据量的大小来确定。此外,在VPN(即虚拟专用网络)中,需要对在调用send()/recv()函数的过程中所产生的数据进行加密/解密,由此,造成了对服务器性能的损耗。
在一种可选的实施例中,如图3所示的一种可选的创建网络连接的系统的结构示意图,由图3可知,该系统由外部网络、可信进程和不可信进程组成,其中,不可信进程位于安全沙箱环境中,不可信进程关于网络访问相关的调用(例如,对socket()函数和connect()函数的调用)在Linux内核层便被禁止。如果该系统中没有代理函数(即broker)或拦截函数(即dagger),则当网络客户端通过调用socket()函数和connect()函数访问外部网络时会被Linux内核拒绝。具体的,安全沙箱拦截socket()函数和connect()函数,并判断网络客户端发送的网络访问请求是否满足网络访问条件。其中,用于建立外部网络连接的函数至少包括socket()函数和connect()函数,此外,可信进程可通过查询网络访问策略来判断网络访问请求是否满足网络访问条件。
在另一种可选的实施例中,如果网络访问请求中包含有疑似恶意网页链接(例如,钓鱼网页链接)以及其他信息可疑信息(例如,疑似盗取号码或密码的信息),则判断上述疑似恶意网页链接或可疑信息是否在网络访问策略中,如果存在,则判定上述网络访问请求为可信网络访问请求,否则为不可信网络访问请求。
需要说明的是,上述网络访问策略中包含了可访问网络的条件。
由上述内容可知,在安全沙箱环境中对网络访问请求进行处理时,没有对调用send()/recv()函数的过程中所产生的数据进行加密/解密处理,而只是对调用socket()函数和connect()函数的过程进行处理。并且,在调用socket()函数和connect()函数之前,首先拦截socket()函数和connect()函数,并判断网络客户端发送的网络访问请求是否满足网络访问条件,只有在网络访问请求满足网络访问条件的情况下,才进一步对建立网络连接,进而传输数据,避免了对数据进行加密和解密过程中服务器性能的损耗,达到了使服务器无性能损耗的目的。
此外,还需要说明的是,通过步骤S204可以有效的获取不可信的网络访问请求,并针对可信的网络访问请求使得网络客户端与外部网络连接,进而使网络客户端访问外部网络。
步骤S206,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
需要说明的是,上述用于建立外部网络连接的函数至少包括:socket()函数和connect()函数。
具体的,服务器判断接收到的网络访问请求是否满足网络访问条件,在接收到的网络访问请求满足网络访问条件的情况下,调用socket()函数创建网络套接字,并在创建socket()函数创建网络套接字之后,再调用connect()函数将网络套接字连接到外部网络,进而完成网络客户端与外部网络之间的连接关系。
还需要说明的是,通过上述步骤S206可以实现网络客户端安全地访问外部网络链接的技术效果。
基于本实施例上述步骤S202至步骤S206所限定的方案,可以获知,通过接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求。
容易注意到的是,由于服务器仅需要对创建用于建立外部网络连接的函数的过程进行处理,不需要对数据的发送以及接收过程进行加密或解密处理,因而,网络客户端的程序无性能损耗的对外部网络进行访问。
由此,本申请提供的上述实施例二的方案达到了在网络访问请求为不可信网络传输的请求的情况下,允许网络客户端访问外部连接的目的,从而实现了网络客户端无性能损耗、安全地访问外部网络链接的技术效果,进而解决了现有的传输数据的方法无法使得不可信网络传输的请求安全地、无性能损耗地访问网络的技术问题。
需要说明的是,在由不可信进程接收网络访问请求的情况下,禁止不可信进程调用用于建立外部网络连接的函数,并将网络访问请求发送至可信进程中。
在一种可选的实施例中,如图3所示,当在不可信进程中使用dagger()函数时,dagger()函数会拦截用于建立外部网络连接的函数,由网络客户端发起的网络访问请求连接函数(即socket()函数和connect()函数)会被发送到代理(即broker())中,而broker()函数处于安全进程(即可信进程)中,当服务器接收到网络客户端发起的请求时,对网络访问请求进行权限检查。
具体的,根据图4所示的一种可选的创建网络连接的方法流程图可知,获取不可信进程调用用于建立外部网络连接的函数,并将网络访问请求发送至可信进程中,具体包括如下步骤:
步骤S402,通过不可信进程中的类库dagger来执行禁止调用用于建立外部网络连接的函数,其中,类库dagger为用于执行依赖注入的类库;
步骤S404,不可信进程中将网络访问请求发送至消息转发器broker,其中,消息转发器broker处于可信进程中。
需要说明的是,用于拦截网络客户端发起的网络访问请求的类库dagger位于不可信进程中,该类库用于禁止服务器调用用于建立外部网络连接的函数(例如,socket()函数和connect()函数)。
在一种可选的实施例中,在图3中,不可信进程至少包括:用户代码、类库(例如,dagger类库)以及c运行库(或glibc运行库)。不可信进程通过使用dagger类库来禁止服务器调用用于建立外部网络连接的函数(例如,socket()函数和connect()函数),并将网络客户端发送的网络访问请求发送至可信进程中。位于可信进程中的消息转发器接收到网络客户端发起的网络访问请求之后,对该网络访问请求进行权限检查,并在检查到网络访问请求满足网络访问条件的情况下,建立网络客户端与外部网络的连接关系。
需要说明的是,可信进程通过查询网络访问策略来判断网络访问请求是否满足网络访问条件。其中,上述网络访问策略中包含了允许网络客户端访问外部网络的请求条件或者禁止网络客户端访问外部网络的请求条件。即在网络访问策略中包含允许网络客户端访问外部网络的请求条件的情况下,当可信进程查询到当前网络客户端发送的网络访问请求在网络访问策略中,则判定网络访问请求满足网络访问条件。在网络访问策略中包含禁止网络客户端访问外部网络的请求条件的情况下,当可信进程查询到当前网络客户端发送的网络访问请求在网络访问策略中,则判定网络访问请求不满足网络访问条件。在网络访问策略既包含允许网络客户端访问外部网络的请求条件又包含禁止网络客户端访问外部网络的请求条件的情况下,采用匹配的方法来确定网络访问请求是否满足网络访问条件。
在一种可选的实施例中,位于可信进程中的消息转发器获取请求访问外部网络的网络客户端的信息来判断该网络客户端发起的网络访问请求是否满足网络访问条件,例如,网络访问请求中包含网络客户端的信息(例如,网络客户端的IP地址),消息转发器根据IP地址的字段来判断该网络客户端是否为安全的、合法的用户,如果检测到该网络客户端为合法用户,则可信进程再创建网络客户端与外部网络的连接。
需要说明的是,除根据网络客户端的IP地址的字段来判断网络客户端发起的网络访问请求是否满足网络访问条件外,还可根据网络访问请求中的其他信息(例如,网络客户端的访问权限等)来确定其是否符合网络访问条件。
可选的,用于建立外部网络连接的函数至少包括:用于创建网络套接字的第一函数和用于将网络套接字连接到外部网络的第二函数。在一种可选的实施例中,图5示出了一种可选的创建网络套接字的方法流程图,如图5所示,网络客户端通过调用socket()函数建立网络套接字,并将网络访问请求发送至服务器,服务器在接收到网络访问请求之后,位于安全沙箱环境中的不可信进程中的类库dagger将socket()函数拦截,并将网络访问请求发送至消息转发器broker,消息转发器broker通过查询网络访问策略来判断网络访问请求是否满足网络访问条件,其中,在网络访问请求满足网络访问条件的情况下,执行如下步骤:
步骤S502,消息转发器broker调用第一函数创建网络套接字;
步骤S504,消息转发器broker将创建成功的网络套接字发送至不可信进程中的类库dagger;
步骤S506,不可信进程中的类库dagger将网络套接字反馈给网络客户端。
如果网络访问请求不满足网络访问条件,消息转发器broker执行如下步骤:
步骤S602,消息转发器broker拒绝调用第一函数创建网络套接字;
步骤S604,消息转发器broker将第一拒绝信息发送给不可信进程中的类库dagger;
步骤S606,由不可信进程中的类库dagger将第一拒绝信息反馈给网络客户端。
需要说明的是,上述第一函数用于创建网络套接字,可以为但不限于socket()函数,上述第二函数用于将网络套接字连接到外部网络,可以为但不限于connect()函数。
此外,上述第一拒绝信息为在创建网络套接字时,网络访问请求不满足网络访问条件时所产生的信息。
在另一种可选的实施例中,图6示出了一种可选的建立外部网络连接的方法流程图,如图6所示,网络客户端通过调用connect()函数建立与外部网络的连接关系,并将网络访问请求发送至服务器,服务器在接收到网络访问请求之后,位于安全沙箱环境中的不可信进程中的类库dagger将connect()函数拦截,并将网络访问请求发送至消息转发器broker,消息转发器broker通过查询网络访问策略来判断网络访问请求是否满足网络访问条件,其中,在网络访问请求满足网络访问条件的情况下,调用用于建立外部网络连接的函数来创建与外部网络的连接,包括如下步骤:
步骤S7020,消息转发器broker调用第二函数将网络套接字连接外部网络;
步骤S7040,消息转发器broker将连接外部网络成功的网络套接字发送至不可信进程中的类库dagger;
步骤S7060,不可信进程中的类库dagger将连接外部网络成功的网络套接字反馈给网络客户端。
此外,如果网络访问请求不满足网络访问条件,消息转发器broker执行如下步骤:
步骤S8020,消息转发器broker拒绝调用第二函数将网络套接字连接外部网络;
步骤S8040,消息转发器broker将第二拒绝信息发送给不可信进程中的类库dagger;
步骤S8060,由不可信进程中的类库dagger将第二拒绝信息反馈给网络客户端。
需要说明的是,上述第二拒绝信息为在创建外部网络连接时,网络访问请求不满足网络访问条件时所产生的信息。
在一种可选的应用场景中,图7示出了一种可选的基于创建网络连接的方法交互图,如图7所示,该方法可以包括如下步骤S701至步骤S713:
步骤S701,网络客户端向服务器发送网络访问请求,该网络访问请求首先到达代理客户端;
步骤S702,代理客户端将该网络访问请求转发给消息转发器;
步骤S703,消息转发器根据接收到的网络访问请求查询相应的服务器,得到服务器的地址;
步骤S704,消息转发器将查询到的服务器的地址返回给代理客户端;
步骤S705,代理客户端对网络访问请求进行封装处理;
步骤S706,代理客户端将封装处理后的网络访问请求发送给代理服务器;
步骤S707,代理服务器对封装后的网络访问请求进行解析处理,得到解析结果;
步骤S708,代理服务器根据解析后的结果调用给服务器;
步骤S709,服务器对网络访问请求消息进行处理,并将处理后的结果返回给代理服务器;
步骤S710,代理服务器接收服务器对请求消息的处理结果,并对处理结果进行封装;
步骤S711,代理服务器将封装后的信息发送给代理客户端;
步骤S712,代理客户端对接收到的信息进行解析处理,得到解析结果;
步骤S713,代理客户端将解析后的结果返回给客户端,至此,便完成了网络客户端与服务器之间传输数据的过程。
需要说明的是,上述代理客户端可用于封装数据,上述代理服务器用于接收请求,并对收到的封装数据进行解析处理。
在另一种可选的应用场景中,图8示出了一种可选的基于创建网络连接的方法交互图,如图8所示,该方法可以包括如下步骤S801至步骤S814:
步骤S801,网络客户端向服务器发送网络访问请求,该网络访问请求首先到达代理客户端;
步骤S802,代理服务器对网络访问请求进行封装处理;
步骤S803,代理服务器将封装后的网络访问请求发送至消息转发器;
步骤S804,消息转发器根据接收到的网络访问请求查询相应的服务器;
步骤S805,消息转发器将封装后的网络访问请求发送至代理服务器;
步骤S806,代理客户端对封装处理后的网络访问请求进行解析处理,得到解析结果;
步骤S807,代理服务器根据解析后的结果调用给服务器;
步骤S808,服务器对网络访问请求消息进行处理,并将处理后的结果返回给代理服务器;
步骤S809,代理服务器接收服务器对请求消息的处理结果,并对处理结果进行封装;
步骤S810,代理服务器将封装后的信息发送给消息转换器;
步骤S811,消息转换器根据接收到的信息查找到与其对应的网络客户端;
步骤S812,消息转换器将得到的消息发送给代理客户端;
步骤S813,代理客户端对接收到的信息进行解析处理;
步骤S814,代理客户端将解析后的结果返回给客户端,至此,便完成了网络客户端与服务器之间传输数据的过程。
在另一种可选的应用场景中,图9示出了一种可选的基于创建网络连接的方法交互图,如图9所示,该方法可以包括如下步骤S901至步骤S918:
步骤S901,网络客户端向服务器发送网络访问请求,该网络访问请求首先到达代理客户端;
步骤S902,代理客户端将该网络访问请求转发给消息转发器;
步骤S903,消息转发器根据接收到的网络访问请求查询相应的服务器;
步骤S904,消息转发器将封装后的网络访问请求发送至连接桥A;
步骤S905,连接桥A查询连接桥;
步骤S906,连接桥A将封装后的网络访问请求发送至连接桥B;
步骤S907,连接桥B查询服务器;
步骤S908,连接桥B将封装后的网络访问请求发送至代理服务器;
步骤S909,代理服务器对封装处理后的网络访问请求进行解析处理,得到解析结果;
步骤S910,代理服务器根据解析后的结果调用给服务器;
步骤S911,服务器对网络访问请求消息进行处理,并将处理后的结果返回给代理服务器;
步骤S912,代理服务器接收服务器对请求消息的处理结果,并对处理结果进行封装;
步骤S913,代理服务器将封装后的处理结果发送至连接桥B;
步骤S914,连接桥B将封装后的信息发送给连接桥A;
步骤S915,连接桥A将封装后的信息发送给消息转换器;
步骤S916,消息转换器将封装后的信息发送给代理客户端;
步骤S916,代理客户端对接收到的信息进行解析处理;
步骤S918,代理客户端将解析后的结果返回给客户端,至此,便完成了网络客户端与服务器之间传输数据的过程。
需要说明的是,上述连接桥A和连接桥B为可选的组件,在系统比较负载的网络组成中,可能需要使用连接桥组件。其中,连接桥用于封装特定的网络特定。
此外,还需要说明的是,在根据上述内容调用用于建立外部网络连接的函数来创建与外部网络的连接之后,即可对网络客户端所请求的数据进行传输,其中,数据传输的方法具体包括如下步骤:
步骤S920,根据网络访问请求获取请求数据;
步骤S922,发送请求数据至网络客户端,其中,请求数据为未经过加密处理的数据。
具体的,在建立与外部网络客户端的网络连接之后,服务器确认网络客户端发起的网络请求为合法的网络访问请求。此时,服务器对该网络访问请求进行解析处理,得到网络客户端所要请求访问的请求数据的相关信息,并根据相关信息查找到相应的请求数据。由于在建立网络连接之前,已确认该网络访问请求合法,即确定了网络访问请求的安全性,此时,服务器允许网络客户端直接访问服务器上的数据,并网络客户端所要访问的请求数据直接发送给网络客户端,而不对请求数据进行加密。同样的,网络客户端在接收到请求数据之后,也不需要对请求数据进行解密处理。由于服务器仅需要对创建用于建立外部网络连接的函数的过程进行处理,不需要对数据的发送以及接收过程进行加密或解密处理、因而,网络客户端的程序无性能损耗的对外部网络进行访问,即达到了网络客户端无性能损耗、安全地访问外部网络链接的技术效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述创建网络连接的方法的装置,如图10所示的创建网络连接的装置结构示意图,该装置包括:接收模块1001、判断模块1003以及执行模块1005。
接收模块1001,用于接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求。
需要说明的是,上述网络客户端为能够通过发出网络请求信息的客户端,可以为但不限于智能手机、平板、笔记本电脑等移动终端以及台式电脑等固定终端设备。上述网络客户端发起的网络访问请求为不可信网络传输的请求,服务器可接收上述客户端发起的网络访问请求,其中,该服务器上安装有安全沙箱,以对客户端发起的网络访问请求进行处理。
在一种可选的实施例中,用户通过网络客户端编写程序来访问网络,由于用户可能会在该程序中写入恶意的代码,例如,该代码用于产生钓鱼链接或者窃取网络信息,因此,该程序为不可信网络程序。网络客户端通过编写好的程序向服务器发起网络访问请求,服务器接收到网络客户端发起的网络访问请求,并将该请求置于安装在服务器上的安全沙箱中,并对该网络请求进行进一步的判断和处理。
需要说明的是,上述安全沙箱可以为但不限于金山隔离沙箱、腾讯安全沙箱、360隔离沙箱以及百度杀毒沙箱等。
此外,还需要说明的是,通过接收模块1001可以获取到网络客户端发起的不可信网络传输的请求,进而服务器根据接收到的不可信网络传输的请求进行处理,从而保障网络访问的安全性。
判断模块1003,用于获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件。
在一种可选的实施例中,如图3所示的一种可选的创建网络连接的系统的结构示意图,由图3可知,该系统由外部网络、可信进程和不可信进程组成,其中,不可信进程位于安全沙箱环境中,不可信进程关于网络访问相关的调用(例如,对socket()函数和connect()函数的调用)在Linux内核层便被禁止。如果该系统中没有代理(即broker)或拦截函数(即dagger),则当网络客户端通过调用socket()函数和connect()函数访问外部网络时会被Linux内核拒绝。具体的,安全沙箱拦截socket()函数和connect()函数,并判断网络客户端发送的网络访问请求是否满足网络访问条件。其中,用于建立外部网络连接的函数至少包括socket()函数和connect()函数,此外,可信进程可通过查询网络访问策略来判断网络访问请求是否满足网络访问条件。
在另一种可选的实施例中,如果网络访问请求中包含有疑似恶意网页链接(例如,钓鱼网页链接)以及其他信息可疑信息(例如,疑似盗取号码或密码的信息),则判断上述疑似恶意网页链接或可疑信息是否在网络访问策略中,如果存在,则判定上述网络访问请求为可信网络访问请求,否则为不可信网络访问请求。
需要说明的是,上述网络访问策略中包含了可访问网络的条件。
此外,还需要说明的是,通过判断模块1003可以有效的拦截不可信的网络访问请求,并针对可信的网络访问请求使得网络客户端与外部网络连接,进而使网络客户端访问外部网络。
执行模块1005,用于如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
需要说明的是,上述用于建立外部网络连接的函数至少包括:socket()函数和connect()函数。
具体的,服务器判断接收到的网络访问请求是否满足网络访问条件,在接收到的网络访问请求满足网络访问条件的情况下,调用socket()函数创建网络套接字,并在创建socket()函数创建网络套接字之后,再调用connect()函数将网络套接字连接到外部网络,进而完成网络客户端与外部网络之间的连接关系。
还需要说明的是,通过上述步骤S206可以实现网络客户端安全地访问外部网络链接的技术效果。
由上可知,通过接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求。
容易注意到的是,由于服务器仅需要对创建用于建立外部网络连接的函数的过程进行处理,不需要对数据的发送以及接收过程进行加密或解密处理,因而,网络客户端的程序无性能损耗的对外部网络进行访问。
由此,本申请提供的上述方案达到了在网络访问请求为不可信网络传输的请求的情况下,允许网络客户端访问外部连接的目的,从而实现了网络客户端无性能损耗、安全地访问外部网络链接的技术效果,进而解决了现有的传输数据的方法无法使得不可信网络传输的请求安全地、无性能损耗地访问网络的技术问题。
需要说明的是,在由不可信进程接收网络访问请求的情况下,禁止不可信进程调用用于建立外部网络连接的函数,并将网络访问请求发送至可信进程中。
此处还需要说明的是,上述接收模块1001、判断模块1003以及执行模块1005对应于实施例2中的步骤S202至步骤S206,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。
可选的,创建网络连接的装置还包括:禁止模块,用于在由不可信进程接收网络访问请求的情况下,禁止不可信进程调用用于建立外部网络连接的函数,并将网络访问请求发送至可信进程中。
可选的,禁止模块包括:第一执行模块以及第一发送模块。其中,第一执行模块,用于通过不可信进程中的类库dagger来执行禁止调用用于建立外部网络连接的函数,其中,类库dagger为用于执行依赖注入的类库;第一发送模块,用于不可信进程将网络访问请求发送至消息转发器broker,其中,消息转发器broker处于可信进程中。
此处需要说明的是,上述第一执行模块以及第一发送模块对应于实施例2中的步骤S402至步骤S404,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。
可选的,可信进程通过查询网络访问策略来判断网络访问请求是否满足网络访问条件。
可选的,用于建立外部网络连接的函数至少包括:用于创建网络套接字的第一函数和用于将网络套接字连接到外部网络的第二函数,其中,执行模块包括:第一调用模块、第二发送模块以及第一反馈模块。其中,第一调用模块,用于消息转发器broker调用第一函数创建网络套接字;第二发送模块,用于消息转发器broker将创建成功的网络套接字发送至不可信进程中的类库dagger;第一反馈模块,用于不可信进程中的类库dagger将网络套接字反馈给网络客户端。
此处需要说明的是,上述第一调用模块、第二发送模块以及第一反馈模块对应于实施例2中的步骤S502至步骤S506,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。
可选的,执行模块还包括:第二执行模块,用于如果网络访问请求不满足网络访问条件,消息转发器broker拒绝调用第一函数创建网络套接字,并将第一拒绝信息发送给不可信进程中的类库dagger,由不可信进程中的类库dagger将第一拒绝信息反馈给网络客户端。
此处需要说明的是,上述第二执行模块对应于实施例2中的步骤S602至步骤S606,该模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。
可选的,用于建立外部网络连接的函数至少包括:用于创建网络套接字的第一函数和用于将网络套接字连接到外部网络的第二函数,其中,执行模块包括:第二调用模块、第三发送模块以及第二反馈模块。其中,第二调用模块,用于消息转发器broker调用第二函数将网络套接字连接外部网络;第三发送模块,用于消息转发器broker将连接外部网络成功的网络套接字发送至不可信进程中的类库dagger;第二反馈模块,用于不可信进程中的类库dagger将连接外部网络成功的网络套接字反馈给网络客户端。
此处需要说明的是,上述第二调用模块、第三发送模块以及第二反馈模块对应于实施例2中的步骤S7020至步骤S7060,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。
可选的,执行模块还包括:第三执行模块,用于如果网络访问请求不满足网络访问条件,消息转发器broker拒绝调用第二函数将网络套接字连接外部网络,并将第二拒绝信息发送给不可信进程中的类库dagger,由不可信进程中的类库dagger将第二拒绝信息反馈给网络客户端。
此处需要说明的是,上述第三执行模块对应于实施例2中的步骤S8020至步骤S8060,该模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。
可选的,创建网络连接的装置还包括:获取模块以及第四发送模块。其中,获取模块,用于根据网络访问请求获取请求数据;第四发送模块,用于发送请求数据至网络客户端,其中,请求数据为未经过加密处理的数据。
此处需要说明的是,上述获取模块以及第四发送模块对应于实施例2中的步骤S920至步骤S922,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例二所公开的内容。
实施例4
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行创建网络连接的方法中以下步骤的程序代码:接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求;获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件;如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
可选的,图11是根据本发明实施例的一种计算机终端的结构框图。如图11所示,该计算机终端11可以包括一个或多个(图中采用111a、111b,……,111n来示出)处理器111(处理器111可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器113、以及用于通信功能的传输模块115。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端11还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
应当注意到的是上述一个或多个处理器111和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端11(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器113可用于存储应用软件的软件程序以及模块,如本发明实施例中的界面内容的显示方法对应的程序指令/数据存储装置,处理器111通过运行存储在存储器113内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述创建网络连接的方法。存储器113可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器113可进一步包括相对于处理器111远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端11。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置115用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端11的通信供应商提供的无线网络。在一个实例中,传输装置115包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置115可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端11(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图11所示的计算机终端11可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图11仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端中的部件的类型。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求;获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件;如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
可选的,上述处理器还可以执行如下步骤的程序代码:在由不可信进程接收网络访问请求的情况下,禁止不可信进程调用用于建立外部网络连接的函数,并将网络访问请求发送至可信进程中。
可选的,上述处理器还可以执行如下步骤的程序代码:通过不可信进程中的类库dagger来执行禁止调用用于建立外部网络连接的函数,其中,类库dagger为用于执行依赖注入的类库;不可信进程将网络访问请求发送至消息转发器broker,其中,消息转发器broker处于可信进程中。
可选的,上述处理器还可以执行如下步骤的程序代码:消息转发器broker调用第一函数创建网络套接字;消息转发器broker将创建成功的网络套接字发送至不可信进程中的类库dagger;不可信进程中的类库dagger将网络套接字反馈给网络客户端。
可选的,上述处理器还可以执行如下步骤的程序代码:如果网络访问请求不满足网络访问条件,消息转发器broker拒绝调用第一函数创建网络套接字,并将第一拒绝信息发送给不可信进程中的类库dagger,由不可信进程中的类库dagger将第一拒绝信息反馈给网络客户端。
可选的,上述处理器还可以执行如下步骤的程序代码:消息转发器broker调用第二函数将网络套接字连接外部网络;消息转发器broker将连接外部网络成功的网络套接字发送至不可信进程中的类库dagger;不可信进程中的类库dagger将连接外部网络成功的网络套接字反馈给网络客户端。
可选的,上述处理器还可以执行如下步骤的程序代码:如果网络访问请求不满足网络访问条件,消息转发器broker拒绝调用第二函数将网络套接字连接外部网络,并将第二拒绝信息发送给不可信进程中的类库dagger,由不可信进程中的类库dagger将第二拒绝信息反馈给网络客户端。
本领域普通技术人员可以理解,图11所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,计算机终端11还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
此外,本发明的实施例还提供了一种终端。
在一种可选的实施例中,该终端包括:网络客户端、服务器以及处理器。
其中,网络客户端,发起网络访问请求;与网络客户端连接,用于接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求;
处理器,处理器运行程序,其中,程序运行时对于从网络客户端和服务器输出的数据执行实施2中的创建网络连接的方法。
此外,本发明的实施例还提供了一种系统。
在一种可选的实施例中,该系统包括:处理器以及存储器。
其中,处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:
接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求;
获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件;
如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
实施例5
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存创建网络连接的方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收网络访问请求,其中,网络访问请求包括不可信网络传输的请求;获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件;如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接。
可选地,在本实施例中,存储介质被设置为存储还用于执行以下步骤的程序代码:在由不可信进程接收网络访问请求的情况下,禁止不可信进程调用用于建立外部网络连接的函数,并将网络访问请求发送至可信进程中。
可选地,在本实施例中,存储介质被设置为存储还用于执行以下步骤的程序代码:通过不可信进程中的类库dagger来执行禁止调用用于建立外部网络连接的函数,其中,类库dagger为用于执行依赖注入的类库;不可信进程将网络访问请求发送至消息转发器broker,其中,消息转发器broker处于可信进程中。
可选地,在本实施例中,存储介质被设置为存储还用于执行以下步骤的程序代码:消息转发器broker调用第一函数创建网络套接字;消息转发器broker将创建成功的网络套接字发送至不可信进程中的类库dagger;不可信进程中的类库dagger将网络套接字反馈给网络客户端。
可选地,在本实施例中,存储介质被设置为存储还用于执行以下步骤的程序代码:如果网络访问请求不满足网络访问条件,消息转发器broker拒绝调用第一函数创建网络套接字,并将第一拒绝信息发送给不可信进程中的类库dagger,由不可信进程中的类库dagger将第一拒绝信息反馈给网络客户端。
可选地,在本实施例中,存储介质被设置为存储还用于执行以下步骤的程序代码:消息转发器broker调用第二函数将网络套接字连接外部网络;消息转发器broker将连接外部网络成功的网络套接字发送至不可信进程中的类库dagger;不可信进程中的类库dagger将连接外部网络成功的网络套接字反馈给网络客户端。
可选地,在本实施例中,存储介质被设置为存储还用于执行以下步骤的程序代码:如果网络访问请求不满足网络访问条件,消息转发器broker拒绝调用第二函数将网络套接字连接外部网络,并将第二拒绝信息发送给不可信进程中的类库dagger,由不可信进程中的类库dagger将第二拒绝信息反馈给网络客户端。
此外,本发明的实施例还提供了一种终端。
在一种可选的实施例中,该终端包括:网络客户端、服务器以及存储介质。
其中,网络客户端,发起网络访问请求;服务器,与网络客户端连接,用于接收网络访问请求,获取用于建立外部网络连接的函数,并判断网络访问请求是否满足网络访问条件,如果网络访问请求满足网络访问条件,则调用用于建立外部网络连接的函数来创建与外部网络的连接,其中,网络访问请求包括不可信网络传输的请求;存储介质,用于存储程序,其中,程序在运行时对于从网络客户端和服务器输出的数据执行实施2中的创建网络连接的方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种创建网络连接的系统,其特征在于,包括:
网络客户端,发起网络访问请求;
服务器,与所述网络客户端连接,用于接收所述网络访问请求,获取用于建立外部网络连接的函数,并判断所述网络访问请求是否满足网络访问条件,如果所述网络访问请求满足所述网络访问条件,则调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接,其中,所述网络访问请求包括不可信网络传输的请求;
其中,在由不可信进程接收所述网络访问请求的情况下,禁止所述不可信进程调用所述用于建立所述外部网络连接的函数,并将所述网络访问请求发送至可信进程中。
2.一种创建网络连接的方法,应用于安全沙箱的网络连接中,其特征在于,包括:
接收网络访问请求,其中,所述网络访问请求包括不可信网络传输的请求;
获取用于建立外部网络连接的函数,并判断所述网络访问请求是否满足网络访问条件;
如果所述网络访问请求满足所述网络访问条件,则调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接;
其中,在由不可信进程接收所述网络访问请求的情况下,禁止所述不可信进程调用所述用于建立所述外部网络连接的函数,并将所述网络访问请求发送至可信进程中。
3.根据权利要求2所述的方法,其特征在于,获取所述不可信进程调用所述用于建立外部网络连接的函数,并将所述网络访问请求发送至可信进程中,包括:
通过所述不可信进程中的类库来执行禁止调用所述用于建立所述外部网络连接的函数,其中,所述类库为用于执行依赖注入的类库;
所述不可信进程将所述网络访问请求发送至消息转发器,其中,所述消息转发器处于所述可信进程中。
4.根据权利要求2或3所述的方法,其特征在于,所述可信进程通过查询网络访问策略来判断所述网络访问请求是否满足网络访问条件。
5.根据权利要求3所述的方法,其特征在于,所述用于建立外部网络连接的函数至少包括:用于创建网络套接字的第一函数和用于将所述网络套接字连接到所述外部网络的第二函数,其中,调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接,包括:
所述消息转发器调用所述第一函数创建所述网络套接字;
所述消息转发器将创建成功的所述网络套接字发送至所述不可信进程中的类库;
所述不可信进程中的类库将所述网络套接字反馈给网络客户端。
6.根据权利要求5所述的方法,其特征在于,如果所述网络访问请求不满足所述网络访问条件,所述消息转发器拒绝调用所述第一函数创建所述网络套接字,并将第一拒绝信息发送给所述不可信进程中的类库,由所述不可信进程中的类库将所述第一拒绝信息反馈给所述网络客户端。
7.根据权利要求5所述的方法,其特征在于,所述用于建立外部网络连接的函数至少包括:用于创建网络套接字的第一函数和用于将所述网络套接字连接到所述外部网络的第二函数,其中,调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接,包括:
所述消息转发器调用所述第二函数将所述网络套接字连接所述外部网络;
所述消息转发器将连接所述外部网络成功的所述网络套接字发送至所述不可信进程中的类库;
所述不可信进程中的类库将所述连接所述外部网络成功的所述网络套接字反馈给所述网络客户端。
8.根据权利要求7所述的方法,其特征在于,如果所述网络访问请求不满足所述网络访问条件,所述消息转发器拒绝调用所述第二函数将所述网络套接字连接所述外部网络,并将第二拒绝信息发送给所述不可信进程中的类库,由所述不可信进程中的类库将所述第二拒绝信息反馈给所述网络客户端。
9.根据权利要求8所述的方法,其特征在于,在调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接之后,所述方法还包括:
根据所述网络访问请求获取请求数据;
发送所述请求数据至所述网络客户端,其中,所述请求数据为未经过加密处理的数据。
10.一种创建网络连接的装置,其特征在于,包括:
接收模块,用于接收网络访问请求,其中,所述网络访问请求包括不可信网络传输的请求;
判断模块,用于获取用于建立外部网络连接的函数,并判断所述网络访问请求是否满足网络访问条件;
执行模块,用于如果所述网络访问请求满足所述网络访问条件,则调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接;
其中,所述装置还用于在由不可信进程接收所述网络访问请求的情况下,禁止所述不可信进程调用所述用于建立所述外部网络连接的函数,并将所述网络访问请求发送至可信进程中。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求2至9中任意一项所述的创建网络连接的方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求2至9中任意一项所述的创建网络连接的方法。
13.一种终端,其特征在于,包括:
网络客户端,发起网络访问请求;
服务器,与所述网络客户端连接,用于接收所述网络访问请求,获取用于建立外部网络连接的函数,并判断所述网络访问请求是否满足网络访问条件,如果所述网络访问请求满足所述网络访问条件,则调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接,其中,所述网络访问请求包括不可信网络传输的请求;
其中,所述终端还用于在由不可信进程接收所述网络访问请求的情况下,禁止所述不可信进程调用所述用于建立所述外部网络连接的函数,并将所述网络访问请求发送至可信进程中;
处理器,所述处理器运行程序,其中,所述程序运行时对于从所述网络客户端和所述服务器输出的数据执行权利要求2至9中任意一项所述的创建网络连接的方法。
14.一种终端,其特征在于,包括:
网络客户端,发起网络访问请求;
服务器,与所述网络客户端连接,用于接收所述网络访问请求,获取用于建立外部网络连接的函数,并判断所述网络访问请求是否满足网络访问条件,如果所述网络访问请求满足所述网络访问条件,则调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接,其中,所述网络访问请求包括不可信网络传输的请求;
其中,所述终端还用于在由不可信进程接收所述网络访问请求的情况下,禁止所述不可信进程调用所述用于建立所述外部网络连接的函数,并将所述网络访问请求发送至可信进程中;
存储介质,用于存储程序,其中,所述程序在运行时对于从所述网络客户端和所述服务器输出的数据执行权利要求2至9中任意一项所述的创建网络连接的方法。
15.一种系统,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
接收网络访问请求,其中,所述网络访问请求包括不可信网络传输的请求;
获取用于建立外部网络连接的函数,并判断所述网络访问请求是否满足网络访问条件;
如果所述网络访问请求满足所述网络访问条件,则调用所述用于建立所述外部网络连接的函数来创建与所述外部网络的连接;
其中,所述系统还用于在由不可信进程接收所述网络访问请求的情况下,禁止所述不可信进程调用所述用于建立所述外部网络连接的函数,并将所述网络访问请求发送至可信进程中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710735701.3A CN109756992B (zh) | 2017-08-24 | 2017-08-24 | 创建网络连接的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710735701.3A CN109756992B (zh) | 2017-08-24 | 2017-08-24 | 创建网络连接的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109756992A CN109756992A (zh) | 2019-05-14 |
CN109756992B true CN109756992B (zh) | 2022-08-30 |
Family
ID=66397563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710735701.3A Active CN109756992B (zh) | 2017-08-24 | 2017-08-24 | 创建网络连接的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109756992B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505272B (zh) * | 2019-07-12 | 2022-04-29 | 杭州海康威视数字技术股份有限公司 | 一种网络连接建立方法、装置、接收方设备及发送方设备 |
CN112671843A (zh) * | 2020-12-08 | 2021-04-16 | 车智互联(北京)科技有限公司 | 数据请求方法、系统及计算设备 |
CN112565284B (zh) * | 2020-12-14 | 2022-10-21 | 北京梆梆安全科技有限公司 | 对应用程序内组件的访问控制方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516681A (zh) * | 2012-06-26 | 2014-01-15 | 华为技术有限公司 | 网络访问控制方法以及装置 |
CN105635178A (zh) * | 2016-02-26 | 2016-06-01 | 北京奇虎科技有限公司 | 保证安全的阻塞式网络访问方法及装置 |
CN105812338A (zh) * | 2014-12-31 | 2016-07-27 | 中国移动通信集团公司 | 一种数据访问管控方法及网络管理设备 |
CN106789909A (zh) * | 2016-11-22 | 2017-05-31 | 北京奇虎科技有限公司 | 应用程序的网络数据传输方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050120204A1 (en) * | 2003-12-01 | 2005-06-02 | Gary Kiwimagi | Secure network connection |
US9819653B2 (en) * | 2015-09-25 | 2017-11-14 | International Business Machines Corporation | Protecting access to resources through use of a secure processor |
-
2017
- 2017-08-24 CN CN201710735701.3A patent/CN109756992B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516681A (zh) * | 2012-06-26 | 2014-01-15 | 华为技术有限公司 | 网络访问控制方法以及装置 |
CN105812338A (zh) * | 2014-12-31 | 2016-07-27 | 中国移动通信集团公司 | 一种数据访问管控方法及网络管理设备 |
CN105635178A (zh) * | 2016-02-26 | 2016-06-01 | 北京奇虎科技有限公司 | 保证安全的阻塞式网络访问方法及装置 |
CN106789909A (zh) * | 2016-11-22 | 2017-05-31 | 北京奇虎科技有限公司 | 应用程序的网络数据传输方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109756992A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10880097B2 (en) | Flexible provisioning of attestation keys in secure enclaves | |
US8997208B2 (en) | Gateway device for terminating a large volume of VPN connections | |
US8984621B2 (en) | Techniques for secure access management in virtual environments | |
JP6612322B2 (ja) | データ処理方法およびデータ処理装置 | |
US9674173B2 (en) | Automatic certificate enrollment in a special-purpose appliance | |
US9386120B2 (en) | Single sign-on access in an orchestration framework for connected devices | |
US8990920B2 (en) | Creating a virtual private network (VPN) for a single app on an internet-enabled device or system | |
EP2425370B1 (en) | Method and apparatus to create a secure web browsing environment with privilege signing | |
US9473298B2 (en) | Simplifying IKE process in a gateway to enable datapath scaling using a two tier cache configuration | |
CN110971398A (zh) | 数据处理方法、装置及系统 | |
CN109756992B (zh) | 创建网络连接的方法、装置和系统 | |
CN113034154A (zh) | 身份认证方法、实现免登授权组件的方法及各自装置 | |
CN116346341A (zh) | 私钥保护和服务端访问方法、系统、设备及存储介质 | |
CN111181831B (zh) | 通信数据处理方法和装置、存储介质及电子装置 | |
CN108322464B (zh) | 一种密钥验证方法及设备 | |
CN114979069A (zh) | 域名解析请求的处理方法、存储介质及电子设备 | |
KR20230041746A (ko) | 블루투스 노드 페어링 방법 및 관련 장치 | |
Dumka et al. | Security and Challenges in Mobile Cloud Computing | |
CN117061115B (zh) | 密钥协商方法、装置、计算机设备和计算机可读存储介质 | |
US20220070144A1 (en) | Systems, devices, and methods for providing a secure client | |
EP3662640B1 (en) | Data communication with devices having no direct access or only restricted access to communication networks | |
CN110297687B (zh) | 基于虚拟主机的数据交互方法、装置及系统 | |
CN113726519A (zh) | 数字身份管理方法、装置、电子设备及存储介质 | |
CN113626777A (zh) | 身份认证方法、存储介质和电子设备 | |
Majumdar | Cloud Computing and Its Security |
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 |