一种用于GTP隧道通信的系统与方法与流程

文档序号:12280168阅读:272来源:国知局
一种用于GTP隧道通信的系统与方法与流程
本发明涉及无线通信,尤其涉及基于GTP隧道的无线通信。
背景技术
:随着移动终端智能化以及4G的启用,分组数据作为重要的用户数据,其安全性受到用户的广泛关注。然而,在当前移动通信网中用户分组数据泄露的现象严重,越来越多的用户反映在订购或体验某些业务应用时其个人信息被第三方窃取。比如T-Mobile公司用户数据遭到窃取,美国千万信用卡泄密和国内明星电话在网络上被公布等事件。CNCERT数据显示,2014年我国移动互联网恶意代码数量达到17亿,比去年增加了2.5倍,在恶意代码的所造成恶意行为中,窃取用户隐私信息的比例高达39.8%。另外,在通信核心网中存在病毒、木马泛滥的现象,使得用户的数据安全遭受到严重威胁。在现有的通信方式中,最常用的通信协议是GPRS隧道协议(GPRSTunnellingProtocol,GTP)。GTP协议是一种建立在UDP和TCP数据传输协议基础上的隧道传输协议,其作为接入网与核心网之间的传输接口,使得可以在信令传输平面或者数据传输平面上采用GTP隧道来传输数据。然而,传统的GTP隧道传输协议在当前网络攻击泛滥的环境下并不安全。这是由于在当前2G、3G以及4G的通信中,GTP隧道采用TCP、UDP传输协议来传输数据,其数据传输结构、以及数据包结构相对固定,使得攻击者利用抓包的方式便可轻松地截取例如用户身份、位置等关键信息。可见,当前GTP隧道的通信架构为通信数据的传输带来了巨大的安全隐患。技术实现要素:因此,本发明的目的在于克服上述现有技术的缺陷,提供一种用于GTP隧道通信的系统,包括:设置在GTP隧道发送端的协议池单元、和泛在承载选择装置,以及设置在GTP隧道接收端的解协议伪装单元;其中,所述协议池,用于存储各种传输层协议;所述泛在承载选择装置,用于从所述各种传输层协议中选择至少一种传输层协议对需要通过所述GTP隧道传输的数据进行伪装;所述解协议伪装单元,用于解析通过所述GTP隧道传输的数据内容。优选地,根据所述系统,其中所述泛在承载选择装置还用于从所述各种传输层协议中选择至少一种传输层协议的数据包头和相应的标识字段来伪装所述需要通过所述GTP隧道传输的数据。优选地,根据所述系统,其中所述在GTP隧道的发送端和接收端共享所述传输层协议与所述标识的对应关系。优选地,根据所述系统,其中所述解协议伪装单元,还用于根据所述传输层协议与所述标识的对应关系以及来自GTP隧道发送端的数据包中的标识字段,确定所述数据包所采用的用于伪装的传输层协议。优选地,根据所述系统,其中所述协议池还用于在需要通过所述GTP隧道传输的数据包所采用的协议的格式未被存储时,存储所述数据包的数据包头。并且,本发明还提供一种用于GTP隧道通信的方法,包括:1)从预先设定的传输层协议中选择一种,采用所选择的传输层协议来伪装需要通过GTP隧道传输的数据;2)通过GTP隧道传输伪装后的数据;3)接收来自GTP隧道发送端的数据,还原数据内容。优选地,根据所述方法,其中,所述步骤1)包括:采用所选择的传输层协议和对应的标识来伪装需要通过GTP隧道传输的数据;所述步骤3)包括:根据预先设定的传输层协议和标识之间的对应关系,解析来自GTP隧道发送端的数据中的数据内容。优选地,根据所述方法,其中步骤1)包括:1-1)从预先设定的传输层协议中选择一种;1-2)根据预先设定的传输层协议和标识之间的对应关系,在需要通过GTP隧道传输的数据的前端,添加所选择的传输层协议的数据包头和对应的标识字段。优选地,根据所述方法,其中所述需要通过GTP隧道传输的数据为传输层数据包。优选地,根据所述方法,其中所述需要通过GTP隧道传输的数据为传输层数据包中的核心数据内容。优选地,根据所述方法,还包括:4)根据需要来更新所述传输层协议和所述标识之间的对应关系。与现有技术相比,本发明的优点在于:1.在传输层与GTP隧道之间增加了设置有各种协议类型的协议池,使得GTP隧道可以支持多种传输协议,并且,协议池还可以在发往GTP隧道的数据所采用的协议未被设置在该协议池中时,添加该数据所采用的协议。通过这种方式可以提高GTP数据传输层协议的扩展性与广泛性,加强了数据的安全性以及信息的复杂度、加强了信息安全的可靠性,使攻击者难以准确地捕获所传输信息的类型,从而提高数据传输的安全性。2.设置泛在承载选择装置对将通过GTP隧道发送的数据进行协议伪装,使得GTP隧道所采用的传输协议不再局限于TCP和UDP协议,可以改变数据原本所采用的协议,使得GTP隧道中数据的承载方式不再是一成不变的,确保攻击者难以准确获取数据包的重要信息。附图说明以下参照附图对本发明实施例作进一步说明,其中:图1是现有技术中GTP隧道在协议栈中传输数据的场景图;图2是现有技术中GTP隧道的网络结构示意图;图3是根据本发明的一个实施例的GTP隧道发送端将原传输层协议TCP伪装成SCTP的示意图;图4是根据本发明的一个实施例的用于GTP隧道通信的方法流程图。具体实施方式下面结合附图和具体实施方式对本发明作详细说明。如前文所述,目前通信领域中对于用户数据的保密性有着越来越高的要求,而GTP隧道传输协议作为接入网与核心网之间的传输节点,更要提高该协议的安全性。下面将通过图1和图2来介绍现有技术中采用GPRS隧道协议进行通信的方案。图1示出了现有技术中GTP隧道在协议栈中传输数据的场景图。在图1示出的场景中,用户将数据发往基站(eNodeB),由基站将数据发送至包含无线网络控制器(RNC)的通信核心网,通过该RNC向GTP隧道发送数据。GTP隧道标识隧道的端点,以在服务GPRS支持节点(SGSN)与网关GPRS支持节点(GGSN)之间传输数据。在图1示出的场景中,经过GGSN节点的数据通过防火墙被发送到内联网或互联网。通常,GTP隧道主要在网络应用层中负责数据的承载,通过对数据包进行封装和解封装来完成业务数据在SGSN和GGSN节点之间的负载传输。参考图2所示出的现有技术中GTP隧道的网络层级的示意图,其中L1到GTP分别处于网络中的物理层、数据链路层、网络层、传输层、会话层,GTP隧道处于会话层,其通过Gn或Gp接口在GSN节点之间建立。如图2所示,在传输层中,现有的GTP隧道的承载方式是以UDP、TCP作为传输层的承载协议,其传输承载结构较为单一,产生的数据包的结构比较固化,使得攻击者可以通过伪装GTP数据包的方式窃取用户的基本数据。发明人通过研究发现,在上述现有的例如2G、3G、LTE等通信系统中,在用户面的GTP隧道传输协议传是通过UDP/IP协议进行承载,而在控制平面则通过TCP/IP进行承载,这使得对于不同平面的传输方式相对固化,因而容易遭受攻击。另一方面,对于传输承载不是UDP或TCP的D其他环境而言,则无法使用GTP隧道协议。为此,本发明提出了一种用于GTP隧道通信的系统。图3示出了根据本发明的一个实施例的GTP隧道通信系统的发送端。如图3所示,在所述GTP隧道通信的系统的发送端包括:协议池单元、泛在承载选择装置。参考图3,在所述系统的发送端,协议池存储有多种不同的传输层协议;当需要通过GTP隧道传输的数据所采用的传输层协议尚未被协议池存储时,可以由协议池存储所述数据的传输层协议;泛在承载选择装置从协议池所存储的各种协议中选择一种,例如选择图3所示出的SCTP协议将原本TCP数据包中的核心数据伪装成SCTP数据包,以通过建立好的GTP隧道传输。在本发明的所述系统中,所述协议池被用于存储各种传输层协议的数据格式,例如各种协议的数据包头格式;以及,当通过解析确定需要通过所述GTP隧道传输的的数据包的传输层协议尚未被存储时,存储该传输层协议的数据包头。应当理解,根据本发明的协议池可以是仅具有存储功能的存储单元,用于存储各种传输层协议;也可以实现为同时具有存储单元以及解析功能的装置。利用协议池存储各种传输层协议,可以使得GTP隧道支持除TCP和UDP之外的其他传输协议。可以初始地在协议池中预先设置一些常用的传输协议,例如UDP、SCTP、SPX、TCP、ICMP、DCCP等;在接收到将用于GTP隧道传输的数据包后,对该数据包进行解析,如果接收到的数据包所采用的协议不存在于当前协议池中,则将该数据包的数据包头添加到协议池中;例如,对需要传输的数据包进行解析,采用贪婪算法将该数据包的数据包头与协议池中已存在的各种协议类型的数据包头进行比对,假如未找到相匹配的结果,则将该数据包的数据包头添加进协议池,并保留该数据包的数据内容部分留待后续步骤的处理;并且,还可以进一步对数据包的解析,来确定该数据包的核心数据(例如,数据包中涉及的数据内容部分),并将所述核心数据存储在协议池或存储单元中,以便随后利用泛在承载选择装置采用与原有协议不同或相同的协议对该核心数据进行封装。通过采用协议池的方式,可以增加GTP数据传输所支持的协议类型,使得所传输的数据类型不再单一化(即不再局限于传输TCP和UDP数据包),从而增加了网络攻击的难度。根据本发明的系统中的所述泛在承载选择装置,用于从所述协议池所支持的各种传输层协议中选择至少一种协议来伪装需要传输的数据,以增加GTP隧道数据传输的安全性。在对数据包进行伪装时,可以将伪装协议的数据包头添加到数据内容之前,并且在该伪装协议的数据包头中设置用于标识原传输协议和/或伪装协议的字段,以便在接收端解析传输的数据。下面以一个具体的实例来介绍采用泛在承载选择装置将TCP数据包伪装成SCTP数据包的过程。假设,在协议池中已存储有UDP、SCTP、SPX、TCP、ICMP、DCCP这几种协议格式,可以首先由泛在承载选择装置随机地对这几种协议进行编号标识,这里标识与协议的对应关系应当被GTP隧道接收端的解协议伪装单元所知晓。使得解协议伪装单元与泛在承载选择装置共享所述对应关系的方法可以采用任何已知的现有技术。为了进一步增加安全性,还可以每间隔一段时间对标识与协议的对应关系进行一次更新。下表为标识与协议的对应关系一个示例,例如,其中将TCP的编号设置为2,则以4位二进制将该编号“2”表示为标识“0010”。UDP10001TCP20010SPX30011SCTP40100ICMP50101DCCP60110这里,可以设置一个随机数产生器,根据所产生的随机数从当前协议池中选择与该随机数对应的一种协议的数据包头来封装接收到的原数据包。假设产生的随机数为4,则意味着需要将原有的传输层协议TCP伪装成SCTP。为了进行所述伪装,需要在原本的TCP数据包之前或在原本的TCP数据包的数据内容之前增加SCTP的数据头,并在该SCTP的数据头之前增加32位的标识字段00000000000000000000000001000010。这里的标识字段优选为32位或32的倍数,这是由于当前国际通用的协议格式采用的数据包头为32位或32的倍数位,为方便处理可以将增加在数据之前用于伪装的标识的位数设为32。在上述示出的32位的标识字段中,后4位“0010”用于标识伪装前的原传输协议为TCP,倒数5-8位“0100”用于标识伪装采用了SCTP协议,除上述标识以外的其余位数可以全部设置为0或采用随机数。在本实例中,采用的标识长度为4,在实际使用时,也可以根据存储在协议池中的协议类型的数目适当地设置标识的长度,例如8、16等。并且,本发明也不限制标识处于全部标识字段中的位置,例如也可以将标识字段设置为11110100001000010000101111100010,使得其中第9-12位的“0010”用于标识伪装前的原传输协议为TCP,第5-8位“0100”用于标识伪装协议为SCTP,其余位数可为随机数也可以用作标识其他需要被标识的信息。在增加了32位的标识字段后,为其增加包含源地址、目的地址的IP头,则所获得的IP包的字段内容为:IP头32位标识字段SCTP头原TCP数据包/数据内容在实际操作时,如果SCTP头后为数据内容,那么在32位标识字段中可以仅标识所采用的伪装协议为SCTP,以便接收端对伪装后的SCTP数据包进行解伪装,以确定数据内容;如果SCTP头后为原TCP数据包,则还需要在32位标识字段中标识原协议为TCP,以便接收端对解伪装后的内容(即原TCP数据包)进行解析,以确定数据内容。通过在协议伪装时增加标识字段,可以使得接收端获知发送端采用何种伪装协议,使得发送端和接收端能够采用更加灵活的方式来伪装需要传输的数据。在不采用标识字段的情况下,还可以采用其它方式使得接收端可以进行解伪装,例如在发送端和接收端之间共享伪装协议列表,并按照列表上各个传输层协议的顺序依次进行伪装。上述实例说明了根据本发明的泛在承载选择装置与协议池协同工作,以对原本的传输层协议进行伪装,从而使得GTP的数据结构不限于TCP和UDP,并且能够在数据的发送端和接收端(SGSN和GGSN节点)之间动态地改变数据结构,以为数据传输的安全性提供保障。前文通过图3介绍了根据本发明的系统在GTP隧道发送端的协议池和泛在承载选择装置,相应地,在GTP隧道的接收端包括用于解除传输层协议伪装的解协议伪装单元。与图3相对应地,在所述系统的接收端(未示出),由解协议伪装单元将传输层协议被伪装成SCTP的数据包还原为原本的TCP数据包。所述解协议伪装单元,处于系统的接收端,其与处于发送端的所述协议池和所述泛在承载选择装置共享如前文所述的在标识与传输层协议之间的对应关系;其用于根据所述对应关系,解析出来自发送端的数据内容,例如根据伪装的数据包头中的标识,确定伪装协议以及伪装前所采用的传输层协议。例如,接收端收到了前述实例中的32位标识字段为11110100001000010000101111100010的数据包,根据与发送端的共同约定,解协议伪装单元可以确定其中第9-12位的“0010”标识了原传输层协议为TCP,第5-8位的“0100”标识了伪装协议为SCTP。如前文所述,在本发明中,GTP隧道的发送端和接收端需要共享协议类型和标识的对应关系,以便还原伪装的数据。可以进一步地,定时修改协议类型和标识的对应关系,或者根据传输数据的流量来确定修改该对应关系的频率,例如在系统中设置定时器,以及流量监控装置,当系统传输的流量超过设定的阈值时,修改协议类型和标识的对应关系。应当理解,根据本发明的协议池单元和/或泛在承载选择装置和/或解协议伪装单元可以以设置新硬件的方式实现,也可以在现有的设备上以软件模块的方式实现。根据本发明的一个实施例,还提出了一种用于GTP隧道通信的方法。参考图4,该方法包括:S1:建立GTP隧道连接;这里可以利用已有的传输协议建立发送端和接收端之间的连接关系,例如通过TCP的“三次握手”建立连接;S2:确定需要通过GTP隧道传输的核心数据;通过对需要通过GTP隧道传输的数据进行解析,可以确定所述数据中的传输层协议以及核心数据,例如图3所示出的TCP数据包中的TCP包头和核心数据;确定核心数据的目的在于,可以在随后的步骤中仅对核心数据进行协议伪装,从而减少需要传输的数据量;在不需要限制传输的数据量的情况下,也可以跳过此步骤S2,而在随后的步骤中直接在原本的TCP数据包前增加用于协议伪装的字段;应理解,可以采用任何已知的方式截获或接收需要通过GTP隧道通信的数据包,以及可以采用任何现有技术来确定所述数据包中的数据内容;S3:如果发现出现了尚不支持的传输层协议时,存储该传输层协议的数据包头;例如,采用贪婪算法将该数据包头与所支持的各种传输层协议的数据包头进行比对;通过该步骤S3可以增加能够支持的传输层协议类型,在本发明的其他实施例中还可以不执行该步骤S3而直接继续随后的步骤;S4:从支持的多种传输层协议中选择其中一种,以将所确定的核心数据伪装成新的数据包;所选择的协议可以是与该接收到的数据包所采用的协议不相同的协议,也可以不作区分;进行协议伪装的方法可以采用如前文所述在原传输层数据包之前或在数据内容之前增加32位标识字段的方法,以生成如下的IP数据包:IP头32位标识字段SCTP头原TCP数据包/数据内容这里在标识与传输层协议之间的对应关系需要在GTP隧道的发送端和接收端共享,并且可以根据需要对所述对应关系进行修改,例如每隔一段时间修改一次;S5:从GTP隧道的发送端向GTP隧道的接收端发送伪装后的数据包;S6:在GTP隧道的接收端接收数据包,并根据在标识与传输层协议之间的对应关系,针对伪装的数据包解析出数据内容。在上述实施例,可以分别针对每个传输层数据包进行协议伪装,也可以对每多个传输层数据包进行一次协议伪装;在实际使用中,可以根据对复杂度和对安全性的需求进行选择。通过上述实施例可以看出,本发明在传输层与GTP隧道之间加入设置有各种协议类型的协议池,使得GTP隧道可以支持多种传输协议。当各种传输层协议的数据被发往GTP隧道时,均可以利用协议池来支持数据的接收、发送。并且,协议池还可以在发往GTP隧道的数据所采用的协议未被设置在该协议池中时,添加该数据所采用的协议。通过这种方式可以提高GTP数据传输层协议的扩展性与广泛性,加强了数据的安全性以及信息的复杂度、加强了信息安全的可靠性,使攻击者难以准确地捕获所传输信息的类型,从而提高数据传输的安全性。此外,本发明还可以通过泛在承载选择装置对将通过GTP隧道发送的数据进行协议伪装,使得GTP隧道所采用的传输协议不再局限于TCP和UDP协议。通过在伪装的数据包中增加标识来标注采用何种协议进行伪装,使得接收端可以确定应该采用何种方式来解析相应的传输层数据包头。本发明所采用的协议伪装可以改变数据原本所采用的协议,使得GTP隧道中数据的承载方式不再是一成不变的,确保攻击者难以准确获取数据包的重要信息。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管上文参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1