发明内容
本发明实施例提供了一种传输层连接建立方法和装置,在兼容不具备注册协商能力的终端的前提下减少系统资源消耗,同时可以防止服务器受到攻击。
本发明一方面提供了一种传输层建立连接的方法,包括:
通过预置的与传输层安全TLS对应的传输控制协议TCP监听端口监听来自终端的TCP连接请求;
确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中,若是,则建立与所述终端的TCP连接,并与所述终端建立TLS连接;若否,则拒绝与所述终端建立TCP连接。
可选地,所述确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中之前还包括:
确定所述IP地址信息表是否完整,若完整,则执行:确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中;
若不完整,则执行:建立与所述终端的TCP连接,并接收所述终端发起的TLS连接请求以及注册信息,根据注册信息判断所述终端是否为授权终端;若是,则与所述终端建立TLS连接,并将所述终端的IP信息存储到所述IP地址信息表中;若否,则拆除所述终端的TCP连接,并拒绝与所述终端建立TLS连接。
可选地,所述确定发起TCP连接请求的终端的IP地址不在TLS功能授权用户的终端的IP地址信息表中之后,以及拒绝与所述终端建立TCP连接之前还包括:
确定所述IP地址信息表是否完整,若完整,则执行:拒绝与所述终端建立TCP连接;
若不完整,则执行:建立与所述终端的TCP连接,并接收所述终端发起的TLS连接请求以及注册信息,根据注册信息判断所述终端是否为授权终端;若是,则与所述终端建立TLS连接,并将所述终端的IP信息存储到所述IP地址信息表中;若否,则拆除所述终端的TCP连接,并拒绝与所述终端建立TLS连接。
可选地,确定所述IP地址信息表是否完整包括:确定所述IP地址信息表中的IP地址项是否等于预置的授权用户数。
进一步地,在确定所述IP地址信息表是否完整之前还包括:
接收用户设置的授权用户数;或者,获取许可证中的授权用户数。
可选地,所述预置的与TLS对应的传输控制协议TCP监听端口包括:
预置的专用于TLS的TCP监听端口。
本发明另一方面还提供了一种传输层建立连接的装置,包括:
监听单元,用于通过预置的与传输层安全TLS对应的传输控制协议TCP监听端口监听来自终端的TCP连接请求;
第一授权确定单元,用于确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中;
连接控制单元,用于若第一授权确定单元确定结果为是,则建立与所述终端的TCP连接,并与所述终端建立TLS连接;若第一授权确定单元确定结果为否,则拒绝与所述终端建立TCP连接。
进一步地,所述装置还包括:
第一完整性确定单元,用于确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中之前,确定所述IP地址信息表是否完整;
所述连接控制单元,具体用于若IP地址信息表完整,则执行:确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中;还用于若IP地址信息表不完整,则执行:建立与所述终端的TCP连接,接收来自终端的注册信息,根据终端发送的注册信息根据注册信息判断所述终端是否为授权终端;若是授权终端,则与所述终端建立TLS连接,并将所述终端的IP信息存储到所述IP地址信息表中;若不是授权终端,则拆除所述终端的TCP连接,并拒绝与所述终端建立TLS连接。
进一步地,所述装置还包括:
第二完整性确定单元,用于在确定发起TCP连接请求的终端的IP地址不在TLS功能授权用户的终端的IP地址信息表中之后,在拒绝与所述终端建立TCP连接之前,确定所述IP地址信息表是否完整;
所述连接控制单元,具体用于若IP地址信息表完整,则执行:则执行:拒绝与所述终端建立TCP连接;还用于若IP地址信息表不完整,则执行:建立与所述终端的TCP连接,接收来自终端的注册信息,根据终端发送的注册信息根据注册信息判断所述终端是否为授权终端;若是授权终端,则与所述终端建立TLS连接,并将所述终端的IP信息存储到所述IP地址信息表中;若不是授权终端,则拆除所述终端的TCP连接,并拒绝与所述终端建立TLS连接。
可选地,所述第一完整性确定单元或第二完整性确定单元包括:
完整性确定子单元,用于确定所述IP地址信息表中的IP地址项是否等于预置的授权用户数。
进一步地,所述装置还包括:
授权数确定单元,用于接收用户设置的授权用户数;或者,获取许可证中的授权用户数。
可选地,所述监听单元,具体用于在预置的专用于TLS的TCP监听端口上进行TCP连接监听;监听来自终端的TCP连接请求。
从以上技术方案可以看出,本发明实施例具有以下优点:不需要终端进行注册协商就能够兼容不具备注册协商能力的终端;在建立TCP连接前进行终端鉴权处理防止不必要的TLS连接的建立减少系统资源消耗,同时可以防止服务器受到攻击。
具体实施方式
本发明实施例提供了一种传输层建立连接的方法,如图1所示,包括:
101:通过预置的与传输层安全TLS对应的传输控制协议TCP监听端口监听来自终端的TCP连接请求。
具体的,在执行本步骤之前,需要启动传输层连接TLS的功能,在预置的与TLS对应的传输控制协议TCP监听端口上进行TCP连接监听。其中,预置的与TLS对应的传输控制协议TCP监听端口包括:预置的专用于TLS的TCP监听端口。更具体地,这个端口可以采用5061号端口;当然采用其它端口也是可以的,具体的端口号本发明实施例不予限定。
102:确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中;若是,则建立与上述终端的TCP连接,并与上述终端建立TLS连接;若否,则拒绝与上述终端建立TCP连接。
需要说明的是,可能预置的IP地址信息表并不完整,即:IP地址信息表中的IP地址少于TLS功能授权用户数,那么通过这个不完整的IP地址信息表直接判断终端是否属于授权用户,会造成授权用户被误判的情况,因此本发明实施例提供解决方案如下:
方案一:在监听到来自终端的TCP连接请求之后,确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中之前图1对应的方案还包括:
确定上述IP地址信息表是否完整,若完整,则执行:确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中;
若上述IP地址信息表不完整,则执行:建立与上述终端的TCP连接,并接收上述终端发起的TLS连接请求以及注册信息,根据注册信息判断上述终端是否为授权终端;若是,则与上述终端建立TLS连接,并将上述终端的IP信息存储到上述IP地址信息表中;若否,则拆除上述终端的TCP连接,并拒绝与上述终端建立TLS连接。具体的,拒绝与终端建立TLS连接可以是向终端发送拒绝TLS连接的响应,也可以是通过折除终端的TCP连接以拒绝与终端建立TLS连接。
方案二:在确定发起TCP连接请求的终端的IP地址不在TLS功能授权用户的终端的IP地址信息表中之后,在拒绝与上述终端建立TCP连接之前还包括:
确定上述IP地址信息表是否完整,若上述IP地址信息表完整,则执行:拒绝与上述终端建立TCP连接;
若上述IP地址信息表不完整,则执行:建立与上述终端的TCP连接,并接收上述终端发起的TLS连接请求以及注册信息,根据注册信息判断上述终端是否为授权终端;若是,则与上述终端建立TLS连接,并将上述终端的IP信息存储到上述IP地址信息表中;若否,则拆除上述终端的TCP连接,并拒绝与上述终端建立TLS连接。
在以上实施例中,确定上述IP地址信息表是否完整包括:
确定上述IP地址信息表中的IP地址项是否等于预置的授权用户数。授权用户数可以由手工输入;也可以通过许可证的形式定义,对此本发明实施例不予限定。当然可以理解的是,IP地址项应该是不会大于授权用户数的,如果IP地址项等于授权用户数那么IP地址信息表是完整的,如果IP地址项小于授权用户数那么IP地址信息表是不完整的。另外IP地址信息表可以存储在执行确定终端是否为授权用户的终端的服务器中,也可以由其他设备发送给上述服务器。
图1所示的本发明实施例方案,不需要终端进行注册协商能够兼容不具备注册协商能力的终端;在建立TCP连接前进行终端鉴权处理防止不必要的TLS连接的建立减少系统资源消耗,同时可以防止服务器受到攻击。后续实施例中提出了IP地址信息表完整和不完整时候的处理方案,对图1所示的方案进行了补充,可以不用手工输入TLS功能授权用户的终端的IP地址,由服务器学习得到IP地址,减少手工输入提高效率。
以下实施例分别就预置的IP信息表完整和不完整的场景进行说明,其中网络一侧的服务器以SIP Sever为例进行说明。
一、预置的IP地址信息表完整的场景下
在本应用场景下,系统预先开启TLS对应的监听端口,该端口承载在TLS上,比如5061。服务器若通过该端口收到终端发送的TCP连接请求,可认为是终端随后将要发起TLS连接请求。此时服务器可以根据在服务器中预先保存的IP地址信息表来鉴权,上述IP地址信息表中存储了TLS功能授权用户的终端的IP地址,通过这些TLS功能授权用户的终端的IP地址可以判断出发起TCP连接请求的终端是否为TLS功能的授权用户的终端,从而确定是否建立与该终端间的TCP连接。如果在IP地址信息表中包含发起TCP连接请求的终端的IP地址,就确定可以建立与该终端的TCP连接以及随后的TLS连接;否则,就确定未授权,拒绝建立与该终端的TCP连接。系统中的IP地址信息表,即:包含TLS功能授权用户的终端的IP地址的信息表,可以通过业务发放平台在服务器配置得到,这个配置的过程可以是人工输入授权用户终端的IP地址然后发送给SIP Sever;另外,IP地址信息表也可以是通过后续的学习方案得到。
在本应用的场景下,为了能通过IP来判断终端的权限,终端的IP地址需要固定。终端的IP地址固定分配时本方案可行性高,若终端的IP地址是通过动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)由SIP Sever自动获取的,则终端的IP地址有可能会变化。因此,在终端的IP通过DHCP获取场景中,需要进行配置,使终端的MAC与IP地址绑定,防止老化后,IP地址的变化。这样就能够固定终端的IP地址。上述老化是指:DHCP分配给设备的IP地址会有一段有效时间,过有效时间后该IP地址有可能会分配给其他终端使用。
终端与SIP Sever的信息交互流程如图2所示,包括:
在交互流程执行前,SIP Sever中保存了IP地址信息表,IP地址信息表中存储了授权用户的终端的IP地址。其中保存的IP地址信息表通过配置得到的,另外在还可以同时配置与TLS对应的TCP监听端口(port),该TCP监听端口的端口号也可以不用配置,直接使用预置的专用于TLS的TCP监听端口。
201:SIP Sever启动TLS功能,并在配置的TCP监听端口上进行TCP连接监听。
202:终端发起了TCP连接请求。
203:SIP Sever通过TCP监听端口收到上述TCP连接请求后,根据发起TCP连接请求的终端的IP地址,查询IP地址信息表。
204:如果IP地址信息表中不包含发起TCP连接请求的终端的IP地址,则确定发起TCP连接请求的终端属于未授权用户的终端,则拒绝与终端建立TCP连接。至此本流程结束。
205:如果IP地址信息表中包含发起TCP连接请求的终端的IP地址,则确定发起TCP连接请求的终端是授权用户的终端,SIP Server建立与终端间的TCP连接,向终端发送响应TCP连接的消息,进入206。
206:SIP Sever接收到来自终端的TLS连接请求;
207:建立与该终端间的TLS连接,并向终端发送TLS连接响应的消息。
208:终端后续的信令承载在TLS上。
基于以上流程,在SIP Sever一侧的处理逻辑如图3所示,包括:
301:流程开始,启动TCP监听端口,该TCP监听端口由TLS承载,接收终端发起的TCP连接请求;
302:若接收到TCP连接请求,进入303;
303:查询IP地址信息表;
304:判断IP地址信息表中是否含发起TCP连接请求的终端的IP地址;若是,进入305,若否,进入306;
305:建立与上述终端间的TCP连接以及TLS连接。
306:拒绝建立与终端间的TCP连接。
本发明实施例方案,不需要终端进行注册协商,因此能够兼容不具备注册协商能力的终端发起TCP连接请求并建立TLS连接;在建立TCP连接前进行终端鉴权处理防止不必要的TLS连接的建立减少系统资源消耗,同时可以防止服务器受到攻击。
二、预置的IP地址信息表的IP信息不完整的场景下。
在本应用场景下,系统中的TLS功能授权用户的终端的IP地址信息表,通过SIP Sever学习得到。本应用场景下,SIP Sever在进行初始化时配置了授权TLS功能的用户数为N个,但IP地址信息表为空。SIP Sever无法根据该表信息准确判断是否建立与终端间的TCP连接以及TLS连接,因此,SIP Sever在初始化时,SIP Sever监听TCP连接请求,在接收到来自终端的TCP连接请求后,可以先接建立与该终端间的TCP连接,然后接收该终端随后发送的TLS连接请求和注册消息,SIP Sever根据注册消息中的用户信息进行权限判断,如果终端为授权终端则建立与该终端间的TLS连接,并将该终端的IP地址记入到IP地址信息表中;否则拆除TCP连接并拒绝建立TLS连接。当IP地址信息表中记录的终端IP地址的数量达到授权TLS功能用户数N时,使用预置IP地址信息表完整的场景下的方案进行处理。在SIP Sever一侧的处理逻辑如图4所示:
401:流程开始,启动TCP监听端口,该TCP监听端口由TLS承载,接收终端发起的TCP连接请求;
402:若接收到TCP连接请求,进入403;
403:判断IP地址信息表是否完整,即:IP地址信息表中的IP地址数量是否等于TLS功能授权用户的数量;若是则进入404,若否,则进入408;
本步骤也可以放在405和407之间。
404:查询IP地址信息表;
405:判断TLS功能授权用户的终端的IP地址信息表中是否包含发起TCP连接请求的终端的IP地址;若是,进入406,若否,进入407;
406:建立与上述终端间的TCP连接以及TLS连接;然后结束本流程。
407:拒绝建立与上述终端间的TCP连接;然后结束本流程。
408:建立与上述终端间的TCP连接,接收上述终端随后发起的TLS连接请求以及注册信息,进入409;
409:SIP Sever根据上述注册信息判断终端是否为授权用户的终端,若是,进入410,若否,进入411;
410:将上述终端的IP地址记录到IP地址信息表中。由于SIP Sever确定了该终端为授权用户的终端,则可以建立与该终端间的TLS连接。可以理解的是通过本流程,如果授权用户的终端都执行一次本流程以后,IP地址信息表就完整了。
411:拆除与该终端的TCP连接,并拒绝与上述终端建立TLS连接。
若上述403放在405和407之间,403判断结果为是执行407,判断结果为否执行408~411。
终端与SIP Sever的信息交互流程如图5所示,包括:
501:终端向SIP Sever发送TCP连接请求;
502:SIP Sever向终端发送TCP连接响应的消息,并建立与终端间的TCP连接;
503:终端向SIP Sever发送TLS连接请求以及注册消息;该注册消息可以采用注册信令信息来发送,并且该注册信令信息携带了用户信息;
504:SIP Sever根据注册消息中携带的用户信息判断终端是否是授权用户的终端。
505:如果504中判断结果为是,则将该终端的IP地址记录到IP地址信息表中,由于SIP Sever确定了该终端为授权用户的终端,则可以建立与该终端间的TLS连接,否则拆除TCP连接,并拒绝与该终端建立TLS连接。需要说明的是,上述501~505是一个学习过程,等授权用户都执行一次注册后,在SIP Sever中将记录全所有授权用户的终端的IP地址,后续可以根据学到的IP地址执行IP地址信息表完整场景下的方案。
本发明实施例还提供了一种传输层建立连接的装置,如图6所示,包括:
监听单元601,用于通过预置的与传输层安全TLS对应的传输控制协议TCP监听端口监听来自终端的TCP连接请求;
第一授权确定单元602,用于确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中;
连接控制单元603,用于若第一授权确定单元602确定结果为是,则建立与上述终端的TCP连接,并与上述终端建立TLS连接;若第一授权确定单元602确定结果为否,则拒绝与上述终端建立TCP连接。
进一步地,如图7所示,上述装置还包括:
第一完整性确定单元701,用于监听到来自终端的TCP连接请求之后,确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中之前,确定上述IP地址信息表是否完整;
上述连接控制单元603,具体用于若IP地址信息表完整,则执行:确定发起TCP连接请求的终端的IP地址是否在TLS功能授权用户的终端的IP地址信息表中;还用于若IP地址信息表不完整,则执行:建立与上述终端的TCP连接,接收来自终端的注册信息,根据终端发送的注册信息根据注册信息判断所述终端是否为授权终端;若是授权终端,则与上述终端建立TLS连接,并将上述终端的IP信息存储到上述IP地址信息表中;若不是授权终端,则拆除上述终端的TCP连接,并拒绝与上述终端建立TLS连接。
进一步地,如图8所示,上述装置还包括:
第二完整性确定单元801,用于在确定发起TCP连接请求的终端的IP地址不在TLS功能授权用户的终端的IP地址信息表中之后,在拒绝与上述终端建立TCP连接之前,确定上述IP地址信息表是否完整;
上述连接控制单元603,具体用于若IP地址信息表完整,则执行:则执行:拒绝与上述终端建立TCP连接;还用于若IP地址信息表不完整,则执行:建立与上述终端的TCP连接,接收来自终端的注册信息,根据终端发送的注册信息根据注册信息判断所述终端是否为授权终端;若是授权终端,则与上述终端建立TLS连接,并将上述终端的IP信息存储到上述IP地址信息表中;若不是授权终端,则拆除上述终端的TCP连接,并拒绝与上述终端建立TLS连接。
可选地,如图9所示,上述第一完整性确定单元701或第二完整性确定单元801包括:
完整性确定子单元901,用于确定上述IP地址信息表中的IP地址项是否等于预置的授权用户数。
进一步地,如图10所示,上述装置还包括:
授权数确定单元1001,用于接收用户设置的授权用户数;或者,获取许可证中的授权用户数。
可选地,上述监听单元601,具体用于启动传输层连接TLS的功能后,在预置的专用于TLS的TCP监听端口上进行TCP连接监听;监听来自终端的TCP连接请求。
本发明实施例方案,不需要终端进行注册协商能够兼容不具备注册协商能力的终端;在建立TCP连接前进行终端鉴权处理防止不必要的TLS连接的建立减少系统资源消耗,同时可以防止服务器受到攻击。
以上实施例中,传输层建立连接的装置或SIP服务器或服务器可以为计算机等硬件设备,而执行上述功能的方法可以为计算机的处理器,上述的功能模块也可以为运行为计算机的处理器中的模块。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,上述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种传输层连接建立方法和装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。