本申请涉及通信传输领域,尤其涉及一种通信连接的建立方法及装置、系统。
背景技术:
为了节省网络中的地址,可以在内部网络中使用私有地址,在内部网络中的终端需要与外网发生联系的情况下,将内部终端的私有地址转换为公网地址。通常,使用设置在局域网中的网络地址转换设备(Network Address Translation,NAT)进行私有地址和外网地址的转换。
现有的网络地址转换设备的工作原理,使得内网中的终端可以主动向外网中的终端发送消息,而外网中的终端无法主动向内网中的终端发送消息(外网终端发送的消息被网络地址转换设备丢弃),即外网中的终端无法“穿透”网络地址转换设备,为了实现外网终端对网络地址转换设备的“穿透”,现有技术中,通常将内网设备的私有地址与公网地址的映射关系直接映射在公网上,使得外网终端可以直接获取映射关系,向内网终端发送消息。但是,这种“穿透”技术,使得外网的任何终端均可以向内网设备发送消息,所以,大大降低了内网的安全性。
可见,如何在不降低内网安全性的情况下,实现外网终端与内网终端的通信连接,成为目前亟待解决的问题。
技术实现要素:
本申请提供了一种通信连接的建立方法及装置、系统,目的在于解决如何在不降低内网安全性的情况下,实现外网终端与内网终端的通信连接的问题。
为了实现上述目的,本申请提供了以下技术方案:
一种通信连接的建立方法,包括:
地址转换设备接收第一终端发送的第二终端的公网地址,所述第一终端及所述地址转换设备均位于第一局域网中,所述第二终端位于所述第一局域网之外且为所述第一终端欲连接的终端;
所述地址转换设备接收所述第一局域网之外的终端向指定地址发送的报文,所述报文携带验证地址,所述指定地址为所述第一终端的公网地址,所述验证地址为所述报文发送方的公网地址;
如果满足预设条件,则所述地址转换设备建立所述第一终端与所述第二终端间的通信连接,所述预设条件中至少包括所述验证地址与所述第二终端的公网地址相同。
可选地,在所述地址转换设备接收第一终端发送的第二终端的公网地址之前,还包括:
所述地址转换设备依据所述第一终端的注册请求,为所述第一终端分配公网地址;
所述为所述第一终端分配公网地址包括:在自身为锥形的情况下,所述地址转换设备为所述第一终端分配一种公网地址,所述公网地址用于所述第一终端连接到所述公网的服务器;在自身为对称形的情况下,所述地址转换设备为所述第一终端分配两种公网地址,其中,一种公网地址中用于所述第一终端连接到所述公网的服务器、另一种公网地址为准连接状态的公网地址。
可选地,在所述地址转换设备为锥形的情况下,所述指定地址为所述地址转换设备为所述第一终端分配的公网地址,在所述地址转换设备为对称形的情况下,所述指定地址为所述地址转换设备为所述第一终端分配的准连接状态的公网地址。
可选地,所述报文携带验证地址包括:
所述报文的属性值中包括所述指定地址;
所述如果满足预设条件,则所述地址转换设备建立所述第一终端与所述第二终端间的通信连接包括:
如果所述验证地址与所述第二终端的公网地址相同,则所述地址转换设备由所述指定地址,将所述报文的报头携带的地址发送至所述第二终端;
所述地址转换设备再次接收所述第二终端发送的报文,所述再次接收到的报文中包括消息认证码;
如果所述再次接收到的报文的属性值中包含的验证地址与所述第二终端的公网地址相同,且所述再次接收到的报文的属性值中包含的公网地址C与所述再次接收到的报文的头部携带的地址相同,则地址转换设备将所述再次接收到的报文发送到所述第一终端,以便于所述第一终端将所述再次接收到的报文发送到所述公网中,所述公网用于验证所述再次接收到的报文中的消息认证码是否合法;
接收所述第一终端转发的验证结果,如果所述验证结果表明所述再次接收到的报文中的消息认证码合法,则建立所述第一终端与所述第二终端间的通信连接。
一种通信连接的建立方法,包括:
第一终端获取指定地址以及第二终端的公网地址,所述第一终端位于第一局域网中,所述第二终端位于所述第一局域网之外且为所述第一终端欲连接的终端,所述指定地址为所述第一终端的公网地址;
所述第一终端向地址转换设备发送所述第二终端的公网地址,并且,通过所述公网向所述第二终端发送所述指定地址;
其中,所述地址转换设备位于所述第一局域网中,所述第二终端的公网地址用于与验证地址相比较,两者相同的比较结果作为所述地址转换设备建立所述第一终端与所述第二终端之间的通信连接的条件之一,所述验证地址由所述地址转换设备从在所述指定地址接收到的报文中获得,所述验证地址为所述报文的发送方的公网地址。
可选地,所述第一终端获取指定地址包括:
在所述地址转换设备为锥形的情况下,所述第一终端接收所述地址转换设备通过所述公网转发的公网地址,所述公网地址作为所述指定地址;
在所述地址转换设备为对称形的情况下,所述第一终端接收所述地址转换设备发送的准连接状态的公网地址,所述准连接状态的公网地址作为所述指定地址;
所述方法还包括:
所述第一终端接收所述地址转换设备发送的再次接收到的报文,所述再次接收到的报文为所述地址转换设备在从所述指定地址接收到所述第二终端发送的报文后,再次从所述指定地址接收到的所述第二终端发送的报文;
所述第一终端将所述再次接收到的报文发给所述公网,所述公网用于验证所述再次接收到的报文是否合法。
一种通信连接的建立方法,包括:
第二终端接收指定地址,所述指定地址由第一终端通过公网转发,所述第一终端位于第一局域网中,所述第二终端位于所述第一局域网所述第一局域网之外且为所述第一终端欲连接的终端,所述指定地址为所述第一终端的公网地址;
所述第二终端向所述指定地址发送报文,所述报文中携带验证地址,所述验证地址为所述第二终端的公网地址B,所述验证地址用于与所述第一局域网中的地址转换设备中存储的所述第二终端的公网地址相比较,两者相同的比较结果作为所述地址转换设备建立所述第一终端与所述第二终端之间的通信连接的条件之一。
可选地,所述报文的属性值为所述验证地址;
所述报文的报头携带所述第二终端的公网地址C;
在所述第二终端的地址转换设备为锥形的情况下,所述验证地址B与所述第二终端的公网地址C相同,在所述第二终端的地址转换设备为对称形的情况下,所述验证地址B与所述第二终端的公网地址C不同。
可选地,还包括:
所述第二终端从所述公网获取用户名和密码;
在所述第二终端向所述指定地址发送报文之后,还包括:
所述第二终端接收所述第一终端的地址转换设备发送的公网地址C;
所述第二终端再次向所述指定地址发送报文,再次发送的报文的属性值包括所述公网地址B、所述公网地址C、所述用户名以及消息认证码,所述消息认证码通过所述公网地址B、所述公网地址C、所述用户名以及所述密码进行预设类型的运算得到。
一种地址转换设备,包括:
第一接收模块,用于接收第一终端发送的第二终端的公网地址,所述第一终端及所述地址转换设备均位于第一局域网中,所述第二终端位于所述第一局域网之外且为所述第一终端欲连接的终端;
第二接收模块,用于接收所述第一局域网之外的终端向指定地址发送的报文,所述报文携带验证地址,所述指定地址为所述第一终端的公网地址,所述验证地址为所述报文发送方的公网地址;
连接建立模块,用于如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接,所述预设条件中至少包括所述验证地址与所述第二终端的公网地址相同。
可选地,还包括:
注册模块,用于在所述第一接收模块接收第一终端发送的第二终端的公网地址之前,依据所述第一终端的注册请求,为所述第一终端分配公网地址;所述为所述第一终端分配公网地址包括:在所述地址转换设备自身为锥形的情况下,为所述第一终端分配一种公网地址,所述公网地址用于所述第一终端连接到所述公网的服务器;在所述地址转换设备自身为对称形的情况下,为所述第一终端分配两种公网地址,其中,一种公网地址中用于所述第一终端连接到所述公网的服务器、另一种公网地址为准连接状态的公网地址。
可选地,所述第二接收模块用于接收所述第一局域网之外的终端向指定地址发送的报文包括:
所述第二接收模块具体用于,接收所述第一局域网之外的终端向指定地址发送的报文,在所述地址转换设备为锥形的情况下,所述指定地址为所述 地址转换设备为所述第一终端分配的公网地址,在所述地址转换设备为对称形的情况下,所述指定地址为所述地址转换设备为所述第一终端分配的准连接状态的公网地址。
可选地,所述第二接收模块用于接收所述第一局域网之外的终端向指定地址发送的报文,所述报文携带验证地址包括:
所述第二接收模块具体用于,接收所述第一局域网之外的终端向指定地址发送的报文,所述报文的属性值中包括所述指定地址;
所述连接建立模块用于如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接包括:
所述连接建立模块具体用于,如果所述验证地址与所述第二终端的公网地址相同,则由所述指定地址将所述报文的报头携带的地址发送至所述第二终端;再次接收所述第二终端发送的报文,所述再次接收到的报文中包括消息认证码;如果所述再次接收到的报文的属性值中包含的验证地址与所述第二终端的公网地址相同,且所述再次接收到的报文的属性值中包含的公网地址C与所述再次接收到的报文的头部携带的地址相同,则将所述再次接收到的报文发送到所述第一终端,以便于所述第一终端将所述再次接收到的报文发送到所述公网中,所述公网用于验证所述再次接收到的报文中的消息认证码是否合法;并接收所述第一终端转发的验证结果,如果所述验证结果表明所述再次接收到的报文中的消息认证码合法,则建立所述第一终端与所述第二终端间的通信连接。
一种终端,包括:
第一获取模块,用于获取指定地址以及第二终端的公网地址,所述第一终端位于第一局域网中,所述第二终端位于所述第一局域网之外且为所述第一终端欲连接的终端,所述指定地址为所述第一终端的公网地址;
第一发送模块,用于向地址转换设备发送所述第二终端的公网地址,并且,通过所述公网向所述第二终端发送所述指定地址;
其中,所述地址转换设备位于所述第一局域网中,所述第二终端的公网地址用于与验证地址相比较,两者相同的比较结果作为所述地址转换设备建立所述第一终端与所述第二终端之间的通信连接的条件之一,所述验证地址由所述地址转换设备从在所述指定地址接收到的报文中获得,所述验证地址为所述报文的发送方的公网地址。
可选地,所述第一获取模块用于获取指定地址包括:
所述第一获取模块具体用于,在所述地址转换设备为锥形的情况下,所述第一终端接收所述地址转换设备通过所述公网转发的公网地址,所述公网地址作为所述指定地址;在所述地址转换设备为对称形的情况下,所述第一终端接收所述地址转换设备发送的准连接状态的公网地址,所述准连接状态的公网地址作为所述指定地址;
所述终端还包括:
第三接收模块,用于接收所述地址转换设备发送的再次接收到的报文,所述再次接收到的报文为所述地址转换设备在从所述指定地址接收到所述第二终端发送的报文后,再次从所述指定地址接收到的所述第二终端发送的报文;
所述第一发送模块还用于:将所述再次接收到的报文发给所述公网,所述公网用于验证所述再次接收到的报文是否合法。
一种终端,包括:
第四接收模块,用于接收指定地址,所述指定地址由第一终端通过公网转发,所述第一终端位于第一局域网中,所述第二终端位于所述第一局域网所述第一局域网之外且为所述第一终端欲连接的终端,所述指定地址为所述第一终端的公网地址;
第二发送模块,用于向所述指定地址发送报文,所述报文中携带验证地址,所述验证地址为所述第二终端的公网地址B,所述验证地址用于与所述第一局域网中的地址转换设备中存储的所述第二终端的公网地址相比较,两 者相同的比较结果作为所述地址转换设备建立所述第一终端与所述第二终端之间的通信连接的条件之一。
可选地,所述第二发送模块用于向所述指定地址发送报文,所述报文中携带验证地址,所述验证地址为所述第二终端的公网地址B包括:
所述第二发送模块具体用于,向所述指定地址发送报文,所述报文的报头携带所述第二终端的公网地址C;在所述第二终端的地址转换设备为锥形的情况下,所述验证地址B与所述第二终端的公网地址C相同,在所述第二终端的地址转换设备为对称形的情况下,所述验证地址B与所述第二终端的公网地址C不同。
可选地,还包括:
第二获取模块,用于从所述公网获取用户名和密码;
所述第四接收模块还用于:在所述第二发送模块向所述指定地址发送报文之后,接收所述第一终端的地址转换设备发送的公网地址C;
所述第二发送模块还用于:再次向所述指定地址发送报文,再次发送的报文的属性值包括所述公网地址B、所述公网地址C、所述用户名以及消息认证码,所述消息认证码通过所述公网地址B、所述公网地址C、所述用户名以及所述密码进行预设类型的运算得到。
一种通信连接建立系统,包括:
位于第一局域网中的地址转换设备和第一终端,以及位于所述第一局域网之外的、所述第一终端欲连接的第二终端;
所述第一终端用于,获取指定地址以及第二终端的公网地址,向地址转换设备发送所述第二终端的公网地址,并且,通过所述公网向所述第二终端发送指定地址,所述指定地址为所述第一终端的公网地址,;
所述第二终端用于,接收所述指定地址,并向所述指定地址发送报文,所述报文中携带验证地址,所述验证地址为所述第二终端的公网地址B;
所述地址转换设备用于,接收所述第一终端发送的所述第二终端的公网地址以及所述第一局域网之外的终端向指定地址发送的报文,所述报文携带 验证地址,所述验证地址为所述报文发送方的公网地址;如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接,所述预设条件中至少包括所述验证地址与所述第二终端的公网地址B相同。
可选地,所述地址转换设备还用于:
在所述接收第一终端发送的第二终端的公网地址之前,依据所述第一终端的注册请求,为所述第一终端分配公网地址;所述为所述第一终端分配公网地址包括:在所述地址转换设备自身为锥形的情况下,为所述第一终端分配一种公网地址,所述公网地址用于所述第一终端连接到所述公网的服务器;在所述地址转换设备自身为对称形的情况下,为所述第一终端分配两种公网地址,其中,一种公网地址中用于所述第一终端连接到所述公网的服务器、另一种公网地址为准连接状态的公网地址。
可选地,所述地址转换设备用于如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接包括:
所述地址转换设备具体用于,如果所述验证地址与所述第二终端的公网地址相同,则所述地址转换设备由所述指定地址,将所述报文的报头携带的地址C发送至所述第二终端;
所述第二终端还用于:
从所述公网获取用户名和密码;在向所述指定地址发送报文之后,接收所述地址转换设备发送的公网地址C;再次向所述指定地址发送报文,再次发送的报文的属性值包括所述公网地址B、所述公网地址C、所述用户名以及消息认证码,所述消息认证码通过所述公网地址B、所述公网地址C、所述用户名以及所述密码进行预设类型的运算得到;
所述地址转换设备用于如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接,还包括:
所述地址转换设备具体用于,再次接收所述第二终端发送的报文,所述再次接收到的报文中包括所述消息认证码;如果所述再次接收到的报文的属性值中包含的验证地址与所述第二终端的公网地址B相同,且所述再次接收 到的报文的属性值中包含的公网地址C与所述再次接收到的报文的头部携带的地址D相同,则将所述再次接收到的报文发送到所述第一终端;
所述第一终端还用于:接收所述地址转换设备发送的再次接收到的报文;将所述再次接收到的报文发给所述公网,所述公网用于验证所述再次接收到的报文是否合法,并将验证结果发送给所述地址转换设备;
所述地址转换设备用于如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接,还包括:所述地址转换设备具体用于,如果所述验证结果表明所述再次接收到的报文中的消息认证码合法,则建立所述第一终端与所述第二终端间的通信连接。
本申请所述的通信连接的建立方法及装置、系统,第一局域网内的第一终端获取指定地址及第二终端的公网地址,并将第二终端的公网地址发送给地址转换设备,地址转换设备接收第一局域网之外的终端向指定地址发送的报文,报文中携带验证地址,验证地址为报文发送方的地址,并且,地址转换设备以验证地址与第二终端的地址相同作为建立第一终端与第二终端的通信连接条件之一,因为第二终端为第一终端欲连接的终端,可见,只有在报文发送方为第一终端欲连接的终端的情况下,报文发送方才能够与第一终端建立通信连接,从而避免内网终端向外网全部开放,所以,可以在不降低内网安全性的情况下,建立外网设备与内网设备间的通信连接。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为通信网络的结构图;
图2为本申请实施例公开的一种通信连接的建立方法的流程图;
图3为本申请实施例公开的又一种通信连接的建立方法的流程图;
图4为本申请实施例公开的一种报文的结构示意图;
图5为本申请实施例公开的又一种报文的结构示意图;
图6为本申请实施例公开的一种地址转换设备的结构示意图;
图7为本申请实施例公开的一种终端的结构示意图;
图8为本申请实施例公开的又一种终端的结构示意图。
具体实施方式
本申请实施例公开的通信连接的建立方法及网络地址转换设备、终端,用于实现局域网中的终端与此局域网外的终端建立通信连接。其中,局域网外的终端可以为公网中的终端,也可以为另一个局域网中的终端。
例如,如图1所示,第一终端位于第一局域网中,第二终端位于第二局域网中,第一终端和第二终端要与外网通信(例如第一终端与第二终端之间进行通信),需要通过各自连接的地址转换设备NAT将其私有地址转换为公网地址并通过公网服务器server获取公网地址后,才能向外发送消息。
以图1所示的场景为例,第一终端作为通信连接的发起端,通过与NAT1的交互,实现在与第二局域网中的终端建立通信连接的同时,保证局域网中的终端的安全性。本申请的实施例中,第二局域网侧的NAT2的功能均与现有技术相同。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开的一种通信连接的建立方法,如图2所示,包括以下步骤:
S201:第一终端通过NAT1向公网的服务器发送注册请求,所述注册请求用于第一终端向公网的服务器进行注册;
S202:NAT1接收到注册请求后,生成第一终端的公网地址,并将第一终端的公网地址携带在注册请求中发送给公网服务器;
具体地,如果NAT1为锥形,则NAT1只生成第一终端的一个公网地址(地址A),如果NAT1为对称形,与传统NAT不同的是,本实施例中,NAT1生成第一终端的两种公网地址(地址A1和A2),其中一个公网地址A1用于第一终端连接公网服务器,另一个公网地址A2为准连接状态的公网地址。其中准连接状态的公网地址可以为多个,可由第一终端向NAT1申请。在NAT1生成两种公网地址的情况下,NAT1只向公网的服务器发送A1。
本实施例中,公网地址可以包括公网IP地址及端口号。
S203:第一终端接收公网服务器发送的注册请求反馈,其中携带第一终端的公网地址(地址A或者地址A1);
以上为第一终端在公网服务器的注册过程。第二终端也可以完成在公网服务器的注册过程。本实施例中,NAT2的功能与现有技术相同,因此,NAT2只为第二终端生成一个公网地址,假设第二终端连接到公网服务器的公网地址为地址B。
S204:第一终端从公网获取第二终端的公网地址B;
具体地,第一终端可以向公网的服务器发送通信请求消息,请求与第二终端进行通信,通信请求消息中携带第一终端的公网地址,公网的服务器接收到通信请求消息后,向第一终端发送第二终端的公网地址B。
S205:第一终端向NAT1发送第二终端的公网地址B;
S206:在NAT1为对称形地址转换设备的情况下,NAT1将准连接状态的公网地址A2发送给第一终端。
S207:第一终端向公网的服务器发送通信请求消息,通信请求消息中携带指定地址,以便于公网的服务器将指定地址发送给第二终端;
其中,指定地址为第一终端的公网地址,如果第一终端的公网地址为地址A,则指定地址为地址A,如果第一终端的公网地址为地址A1和A2,则指定地址为准连接状态的公网地址A2。
S208:第二终端向指定地址发送报文。
其中,报文的内容格式遵循STUN协议的规范,报文的结构如图4所示:包括STUN报文头和报文属性,报文属性按照类型/长度/值(TLV Type/Length/Value,TLV)格式编码,属性值中包含第二终端连接至公网服务器的公网地址B。第二终端向外发送报文,需要经过第二局域网侧的NAT2,报文的头部携带有NAT2为第二终端生成的公网地址C,依据传统NAT的工作原理,如果NAT2为锥形NAT,则C与B相同,如果NAT2为对称形NAT,则C与B不同。
S209:NAT1从报文的属性值中得到地址,作为验证地址;
依据传统的NAT的工作原理,因为NAT1从未与第二终端连接过,所以,现有技术中,当NAT1接收到第二终端发送的报文时,会将所述报文丢弃,而本申请中,NAT1对接收到的第二终端的报文的属性值进行分析。
S210:NAT1判断验证地址与已存储的第二终端的公网地址B是否相同,如果相同,表示报文来自第一终端想要连接的第二终端,则执行S211,如果不相同,则执行S212;
S211:如果验证地址与所述第二终端的地址相同,NAT1建立所述第一终端与所述第二终端间的通信连接。
具体地,连接的建立方式可以为:保存指定地址与第二终端的公网地址C之间的映射关系。
S212:丢弃所述报文。
本实施例所述的通信连接建立方法,只有在第一终端想要连接第二终端的情况下,才会建立第二终端与第一终端之间的连接,否则,NAT1将第二终端发送的报文丢弃,因此,能够提供局域网的安全性。
并且,本实施例中所述的方法,只需要公网中的普通服务器即可建立两个不同的局域网中的终端间的通信连接,与现有的需要在公网中部署中继服务器的局域网间的通信方法相比,能够减小通信时延,并且节省网络建设的成本。
除了采用以上实施例所述的地址验证方式之外,还可以通过加密技术进一步提高局域网的安全性:
本申请实施例公开的又一种通信连接的建立方法如图3所示,本实施例所述的方法包括以下步骤:
S301:第一终端及第二终端分别获取公网地址;
具体过程如前所述,这里不再赘述。
S302:第二终端向公网的服务器发送共享密钥请求消息;
通常,共享密钥请求消息用于获取所述公网服务器为所述第二终端分配的用户名和密码。
S303:第二终端接收公网的服务器发送的用户名及密码;
S304:第一终端从公网获取第二终端的公网地址;
S305:第一终端向NAT1发送第二终端的公网地址B;
本实施例中,同样地,在NAT1为对称形地址转换设备的情况下,NAT1将准连接到公网的地址A2发送给第一终端。
S306:第一终端向公网的服务器发送通信请求消息,通信请求消息中携带指定地址,以便于公网的服务器将指定地址发送给第二终端;
指定地址的设定与上述实施例相同,这里不再赘述。
S307:第二终端向指定地址发送报文,报文的内容与格式与上述实施例相同,其中,报文的头部携带有NAT2为第二终端生成的公网地址C;
S308:NAT1从报文的属性的值中得到验证地址;
S309:如果验证地址与第二终端的公网地址B相同,则NAT1将第二终端的公网地址C由指定地址发送至第二终端;
具体地,NAT1可以将第二终端的公网地址C包含在报文中发送给第二终端。
S310:第二终端再次发送报文至指定地址;
其中,如图5所示,再次发送的报文的属性值中携带多项,具体包括:公网地址B、公网地址C、第二终端的用户名以及第二终端的消息认证码(例如哈希消息认证码),消息认证码通过将公网的服务器为第二终端分配的密码与公网地址B、公网地址C及第二终端的用户名进行预设类型的运算(例如哈希运算)得到。再次发送的报文的报头携带公网地址D(如果报文没有被篡改,则公网地址D与公网地址C相同)。
S311:NAT1比较第二终端再次发送的报文中携带的验证地址与第二终端的公网地址B是否相同,以及比较第二终端再次发送的报文中携带的公网地址C与再次发送的报文头部携带的公网地址D是否相同,如果都相同,NAT1将再次发送的报文发送给第一终端,如果不同,则结束流程;
其中,验证C与D是否相同,是为了防止报文被篡改,被篡改的报文地址C与报文头部地址不同。
S312:第一终端将再次发送的报文发给公网的服务器;
公网的服务器通过查询已分配的用户名及密码,验证第二报文是否合法。
具体的验证方法可以为:公网服务器使用再次发送的报文中携带的用户名查询出为此用户名分配的密码,使用此密码对再次发送的报文中的公网地址B、公网地址C及用户名与进行预设类型的运算(例如哈希运算),运算的结果与此再次发送报文中的消息认证码进行比较,相同则是合法的。
S313:第一终端接收公网的服务器发送的验证结果;
S314:第一终端将验证结果发送给NAT1;
S315:如果验证结果表明再次发送的报文合法,NAT1建立第一终端与第二终端之间的连接关系。
本实施例中所述的方法,除了进行地址的验证之外,还进行密码验证,与上述实施例相比,可以避免其它终端截获第一报文被后,更换公网地址伪装成第二终端与第一终端建立通信连接,从而进一步提高局域网的安全性。
与上述方法实施例相对应地,本申请实施例还公开了一种地址转换设备,如图6所示,包括:
第一接收模块601,用于接收第一终端发送的第二终端的公网地址,所述第一终端及所述地址转换设备均位于第一局域网中,所述第二终端位于所述第一局域网之外且为所述第一终端欲连接的终端;
第二接收模块602,用于接收所述第一局域网之外的终端向指定地址发送的报文,所述报文携带验证地址,所述指定地址为所述第一终端的公网地址,所述验证地址为所述报文发送方的公网地址;
连接建立模块603,用于如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接,所述预设条件中至少包括所述验证地址与所述第二终端的公网地址相同。
可选地,还可以包括:注册模块604,用于在所述第一接收模块接收第一终端发送的第二终端的公网地址之前,依据所述第一终端的注册请求,为所述第一终端分配公网地址;所述为所述第一终端分配公网地址包括:在所述地址转换设备自身为锥形的情况下,为所述第一终端分配一种公网地址,所述公网地址用于所述第一终端连接到所述公网的服务器;在所述地址转换设备自身为对称形的情况下,为所述第一终端分配两种公网地址,其中,一种公网地址中用于所述第一终端连接到所述公网的服务器、另一种公网地址为准连接状态的公网地址。
具体地,第二接收模块接收所述第一局域网之外的终端向指定地址发送的报文的具体实现方式可以为:接收所述第一局域网之外的终端向指定地址发送的报文,在所述地址转换设备为锥形的情况下,所述指定地址为所述地址转换设备为所述第一终端分配的公网地址,在所述地址转换设备为对称形的情况下,所述指定地址为所述地址转换设备为所述第一终端分配的准连接状态的公网地址。
第二接收模块接收所述第一局域网之外的终端向指定地址发送的报文,所述报文携带验证地址的具体实现方式可以为:接收所述第一局域网之外的终端向指定地址发送的报文,所述报文的属性值中包括所述指定地址。
连接建立模块如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接的具体实现方式可以为:如果所述验证地址与所述第二终端的公网地址相同,则由所述指定地址将所述报文的报头携带的地址发送至所述第二终端;再次接收所述第二终端发送的报文,所述再次接收到的报文中包括消息认证码;如果所述再次接收到的报文的属性值中包含的验证地址与所述第二终端的公网地址相同,且所述再次接收到的报文的属性值中包含的公网地址C与所述再次接收到的报文的头部携带的地址相同,则将所述再次接收到的报文发送到所述第一终端,以便于所述第一终端将所述再次接收到的报文发送到所述公网中,所述公网用于验证所述再次接收到的报文中的消息认证码是否合法;并接收所述第一终端转发的验证结果,如果所述验证结果表明所述再次接收到的报文中的消息认证码合法,则建立所述第一终端与所述第二终端间的通信连接。
本申请实施例还公开了一种终端,所述终端与上述实施例所述的地址转换设备位于同一局域网内,如图7所示,包括:
第一获取模块701,用于获取指定地址以及第二终端的公网地址,所述第一终端位于第一局域网中,所述第二终端位于所述第一局域网之外且为所述第一终端欲连接的终端,所述指定地址为所述第一终端的公网地址;
第一发送模块702,用于向地址转换设备发送所述第二终端的公网地址,并且,通过所述公网向所述第二终端发送所述指定地址;
其中,所述地址转换设备位于所述第一局域网中,所述第二终端的公网地址用于与验证地址相比较,两者相同的比较结果作为所述地址转换设备建立所述第一终端与所述第二终端之间的通信连接的条件之一,所述验证地址 由所述地址转换设备从在所述指定地址接收到的报文中获得,所述验证地址为所述报文的发送方的公网地址。
可选地,还可以包括:第三接收模块703,用于接收所述地址转换设备发送的再次接收到的报文,所述再次接收到的报文为所述地址转换设备在从所述指定地址接收到所述第二终端发送的报文后,再次从所述指定地址接收到的所述第二终端发送的报文。
具体地,第一获取模块获取指定地址的具体实现方式可以为:在所述地址转换设备为锥形的情况下,所述第一终端接收所述地址转换设备通过所述公网转发的公网地址,所述公网地址作为所述指定地址;在所述地址转换设备为对称形的情况下,所述第一终端接收所述地址转换设备发送的准连接状态的公网地址,所述准连接状态的公网地址作为所述指定地址。
进一步地,第一发送模块还可以用于:将所述再次接收到的报文发给所述公网,所述公网用于验证所述再次接收到的报文是否合法。
本申请实施例还公开了另一种终端,所述终端与上述实施例所述的终端位于不同的局域网中,如图8所示,包括:
第四接收模块801,用于接收指定地址,所述指定地址由第一终端通过公网转发,所述第一终端位于第一局域网中,所述第二终端位于所述第一局域网所述第一局域网之外且为所述第一终端欲连接的终端,所述指定地址为所述第一终端的公网地址;
第二发送模块802,用于向所述指定地址发送报文,所述报文中携带验证地址,所述验证地址为所述第二终端的公网地址B,所述验证地址用于与所述第一局域网中的地址转换设备中存储的所述第二终端的公网地址相比较,两者相同的比较结果作为所述地址转换设备建立所述第一终端与所述第二终端之间的通信连接的条件之一。
具体地,第二发送模块向所述指定地址发送报文,所述报文中携带验证地址,所述验证地址为所述第二终端的公网地址B的具体实现方式可以为: 向所述指定地址发送报文,所述报文的报头携带所述第二终端的公网地址C;在所述第二终端的地址转换设备为锥形的情况下,所述验证地址B与所述第二终端的公网地址C相同,在所述第二终端的地址转换设备为对称形的情况下,所述验证地址B与所述第二终端的公网地址C不同。
可选地,本实施例中所述的终端还可以包括:第二获取模块803,用于从所述公网获取用户名和密码。
可选地,第二发送模块还可以用于:再次向所述指定地址发送报文,再次发送的报文的属性值包括所述公网地址B、所述公网地址C、所述用户名以及消息认证码,所述消息认证码通过所述公网地址B、所述公网地址C、所述用户名以及所述密码进行预设类型的运算得到。
上述实施例所述的地址转换设备以及终端的具体工作过程可以参见方法实施例部分,这里不再赘述。通过三者的配合使用,能够提高局域网的安全性。
本申请实施例还公开了一种通信连接建立系统,包括如图1中所述的位于第一局域网中的地址转换设备NAT1和第一终端,以及位于所述第一局域网之外的、所述第一终端欲连接的第二终端。
其中,第一终端用于,获取指定地址以及第二终端的公网地址,向地址转换设备发送所述第二终端的公网地址,并且,通过所述公网向所述第二终端发送指定地址,所述指定地址为所述第一终端的公网地址。
第二终端用于,接收所述指定地址,并向所述指定地址发送报文,所述报文中携带验证地址,所述验证地址为所述第二终端的公网地址B;
地址转换设备用于,接收所述第一终端发送的所述第二终端的公网地址以及所述第一局域网之外的终端向指定地址发送的报文,所述报文携带验证地址,所述验证地址为所述报文发送方的公网地址;如果满足预设条件,则建立所述第一终端与所述第二终端间的通信连接,所述预设条件中至少包括所述验证地址与所述第二终端的公网地址B相同。
进一步地,地址转换设备还可以用于:在所述接收第一终端发送的第二终端的公网地址之前,依据所述第一终端的注册请求,为所述第一终端分配公网地址;所述为所述第一终端分配公网地址包括:在所述地址转换设备自身为锥形的情况下,为所述第一终端分配一种公网地址,所述公网地址用于所述第一终端连接到所述公网的服务器;在所述地址转换设备自身为对称形的情况下,为所述第一终端分配两种公网地址,其中,一种公网地址中用于所述第一终端连接到所述公网的服务器、另一种公网地址为准连接状态的公网地址。
再进一步地,地址转换设备在如果满足预设条件的情况下,建立所述第一终端与所述第二终端间的通信连接的具体实现方式可以为:如果所述验证地址与所述第二终端的公网地址相同,则所述地址转换设备由所述指定地址,将所述报文的报头携带的地址C发送至所述第二终端;
第二终端从所述公网获取用户名和密码;在向所述指定地址发送报文之后,接收所述地址转换设备发送的公网地址C;再次向所述指定地址发送报文,再次发送的报文的属性值包括所述公网地址B、所述公网地址C、所述用户名以及消息认证码,所述消息认证码通过所述公网地址B、所述公网地址C、所述用户名以及所述密码进行预设类型的运算得到。
地址转换设备在如果满足预设条件的情况下,建立所述第一终端与所述第二终端间的通信连接的具体实现方式中还可以包括:再次接收所述第二终端发送的报文,所述再次接收到的报文中包括所述消息认证码;如果所述再次接收到的报文的属性值中包含的验证地址与所述第二终端的公网地址B相同,且所述再次接收到的报文的属性值中包含的公网地址C与所述再次接收到的报文的头部携带的地址D相同,则将所述再次接收到的报文发送到所述第一终端。
第一终端还用于:接收所述地址转换设备发送的再次接收到的报文;将所述再次接收到的报文发给所述公网,所述公网用于验证所述再次接收到的报文是否合法,并将验证结果发送给所述地址转换设备。
地址转换设备在如果满足预设条件的情况下,建立所述第一终端与所述第二终端间的通信连接的具体实现方式中还可以包括:如果所述验证结果表明所述再次接收到的报文中的消息认证码合法,则建立所述第一终端与所述第二终端间的通信连接。
本实施例所述的系统,能够提高局域网的安全性。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。