即时通讯消息的传输方法及装置与流程

文档序号:11138693阅读:395来源:国知局
即时通讯消息的传输方法及装置与制造工艺

本发明涉及通讯技术领域,具体而言,本发明涉及一种即时通讯消息的传输方法及装置。



背景技术:

随着科技的发展和科技的进步,智能手机、平板电脑、台式电脑、笔记本电脑和二合一电脑等终端设备,或已广泛普及,或引领发展潮流正在普及中。

随着即时通信技术的飞速发展,在这些终端设备中通常安装有IM(Instant Messaging即时通讯)软件,人们利用IM软件以收发即时通讯消息的形式在私人朋友之间或企业内部进行沟通交流,使得IM软件成为工作生活中不可缺少的工具。

目前,即时通讯消息的传输方法,通常包括:终端设备与IM服务器建立连接后,将即时通讯消息以数据包的形式向IM服务器进行发送;IM服务器将即时通讯消息以数据包的形式向终端设备进行发送。即时通讯消息本身的封装格式通常符合TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)或HTTP(Hyper Text Transfer Protocol,超文本传送协议)的格式。

然而,本发明的发明人发现,一方面由于网络的安全威胁越来越多,种类也五花八门,现有的IM消息的传输过程容易遭受恶意程序的攻击,传输的安全性较低。IM消息需要更为安全可靠的传输方式来抵挡外部的安全威胁。

另一方面,现有的IM消息的传输方法已经较为成熟。如果重新开发全新的更为安全的IM消息的传输方案,很可能需要较大的开发测试成本,资源消耗较大;而且,与现有的IM消息的传输方法很可能不兼容,容易导致需要服务方更新改造IM服务器,成本巨大。

因此,需要一种成本低廉且更为安全的即时通讯消息的传输方案。



技术实现要素:

本发明针对现有方式的缺点,提出一种即时通讯消息的传输方法及装置,用以解决现有技术存在传输即时通讯消息安全性较差、成本较高或者兼容性较差的问题,以在提升即时通讯消息传输的安全性的基础上,降低成本提升兼容性。

本发明的实施例根据一个方面,提供了一种即时通讯消息的传输方法,包括:

接收上行数据包;

当检测出上行数据包的包头不符合安全层协议的格式时,检测所述上行数据包的包头是否符合安全扩展协议的格式;

当检测出所述上行数据包的包头符合安全扩展协议的格式时,检测所述上行数据包的类型;

当检测出所述上行数据包的类型为即时通讯消息传输请求时,从所述上行数据包的包体中解析出即时通讯消息,向对应的即时通讯服务器发送。

本发明的实施例根据另一个方面,还提供了一种即时通讯消息的传输装置,包括:

数据收发模块,用于接收上行数据包;以及将接收到的即时通讯消息向对应的即时通讯服务器发送;

协议格式检测模块,用于当检测出所述数据收发模块接收的上行数据包的包头不符合安全层协议的格式时,检测所述上行数据包的包头是否符合安全扩展协议的格式;当检测出所述上行数据包的包头符合安全扩展协议的格式时,发送类型检测通知;

数据包类型检测模块,用于接收到所述类型检测通知后,检测所述上行数据包的类型;当检测出所述上行数据包的类型为所述即时通讯消息传输请求时,从中解析出所述即时通讯消息进行转发。

本发明实施例中,当检测出上行数据包的包头符合安全扩展协议的格式时,说明上行数据包中待传输至即时通讯服务器的数据,被安全扩展协议额外封装,即使恶意程序非法获取了上行数据包并能够破解现有的应用协议,也无法识别额外增加的安全扩展协议,可以大大降低上行的即时通讯消息的泄露的几率,从而提升上行的即时通讯消息的安全性。而且,从上行数据包的包体中解析出即时通讯消息,向即时通讯服务器发送;现有的即时通讯服务器仍然可以根据现有方法接收并处理即时通讯消息,无需改造或更新即时通讯服务器,在提升即时通讯消息安全性的基础上大大节省了成本;此外,本发明实施例兼容于现有的即时通讯服务器,适用范围较大。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例的即时通讯消息的传输系统的架构示意图;

图2为本发明实施例的一种即时通讯消息的传输方法的流程示意图;

图3a为本发明实施例的另一种即时通讯消息的传输方法的流程示意图;

图3b为本发明实施例的符合安全扩展协议的格式的数据包的一个实例的示意图;

图4为本发明实施例的IM消息的传输装置的内部结构的框架示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。

本发明的发明人经过研究发现,现有的IM(Instant Messaging即时通讯)服务器根据接收处理的IM消息的不同协议格式,划分为支持不同协议的IM服务器,例如分别支持TCP、UDP和HTTP格式的IM服务器。若使用现有的安全层协议,例如TLS(Transport Layer Security,传输层安全)协议,直接对TCP、UDP或HTTP格式的IM消息进行封装后向IM服务器传输,虽然可以增加IM消息的传输的安全性,但是需要在每个IM服务器上增加专门解析TLS协议、且从TLS格式数据包中解析出IM消息的装置;也就是说,需要对每个IM服务器进行更新改造,导致IM服务器结构复杂化;造成IM服务器的更新改造和维护成本高昂。同时,对现有的IM服务器不兼容,适用性较差。

本发明的发明人考虑到,可以在现有的终端设备和IM服务器之间增设即时通讯消息的传输装置,并开发一种新的安全扩展协议对现有的TCP、UDP或HTTP格式的IM消息的进行封装;在终端设备与该传输装置之间使用符合安全扩展协议的格式的数据包进行通信,在该传输装置与IM服务器之间仍然保持现有的IM消息的传输方式。

基于上述考虑,本发明实施例中,即时通讯消息的传输装置接收终端设备发送的上行数据包;当检测出上行数据包的包头不符合安全层协议的格式时,检测上行数据包的包头是否符合安全扩展协议的格式;当检测出上行数据包的包头符合安全扩展协议的格式时,检测上行数据包的类型;当检测出上行数据包的类型为即时通讯消息传输请求时,从上行数据包的包体中解析出即时通讯消息,向对应的即时通讯服务器发送。可见,本发明实施例中,当检测出上行数据包的包头符合安全扩展协议的格式时,说明上行数据包中待传输至即时通讯服务器的数据,被安全扩展协议额外封装,即使恶意程序非法获取了即时通讯消息并能够破解现有的格式协议,也无法识别额外增加的安全扩展协议,可以防止即时通讯消息的泄露,从而提升即时通讯消息的安全性。而且,由即时通讯消息的传输装置从上行数据包的包体中解析出即时通讯消息,向即时通讯服务器发送;现有的即时通讯服务器仍然根据现有方法接收处理即时通讯消息即可,无需改造更新即时通讯服务器,在提升即时通讯消息安全性的基础上大大节省了成本;此外,本发明实施例兼容于现有的即时通讯服务器,适用范围较大。

下面结合附图具体介绍本发明实施例的技术方案。

本发明实施例的IM消息的传输系统的架构示意图如图1所示,包括:终端设备、IM消息的传输装置和IM服务器。

其中,移动终端可以是多个移动终端。移动终端是诸如智能手机、平板电脑、电子阅读器或PDA(Personal Digital Assistant,个人数据助手)等具有网络通讯功能且安装有IM客户端的终端。每个终端设备中安装有IM客户端,可以无线方式接入网络。

较佳地,终端设备通过移动通信网络或无线局域网接入互联网。

例如,移动终端中可以包括WiFi(Wireless Fidelity,无线保真)模块,可以通过WiFi局域网接入互联网。

移动终端可以包括移动通信模块,可以通过移动通信网络接入互联网。移动通信网络可以至少包括下述网络之一:GRPS(General Packet Radio Service,通用分组无线服务)网络、3G(3rd-Generation wireless telephone technology,第三代无线电话技术)网络、LTE(Long Term Evolution,长期演进)网络。

IM消息的传输装置通过有线的方式接入网络。例如,IM消息的传输装置通过光纤接入互联网。

IM服务器通过有线的方式接入网络。例如,IM消息的传输装置通过IM服务器接入互联网。

本发明实施例中,可以根据实验数据、历史数据、经验数据和/或实际情况,来部署至少一个IM消息的传输装置。

较佳地,当IM服务器划分为支持TCP(Transmission Control Protocol,传输控制协议)的IM服务器、支持UDP(User Datagram Protocol,用户数据报协议)的IM服务器、和支持HTTP(Hyper Text Transfer Protocol,超文本传送协议)的服务器时,可以部署三个IM消息的传输装置,分别与TCP的IM服务器、支持UDP的IM服务器、和支持HTTP的服务器相连接。

进一步,当支持一种协议的IM服务器为多个时,可以为支持该协议的多个IM服务器部署两个以上IM消息的传输装置。

因此,本发明实施例中的IM消息的传输装置的部署方式,十分灵活,IM消息的传输系统的架构具有灵活的伸缩性;既可以充分满足IM消息传输的数据吞吐量的需求,保证用户使用IM消息时得到流畅的体验;又可以为不同的IM服务器所属的服务方提供多种部署方式,满足服务方的需求。

更优的,本发明实施例中的IM消息的传输装置可以设置为多种硬件实体。例如,IM消息的传输装置具体可以设置为一个独立的服务器、一个独立的机架设备、或者一个可插拔的板卡等等。

此外,本发明实施例中的IM消息的传输装置的部署的地点也非常灵活。例如,IM消息的传输装置具体可以安装在远离终端设备与IM服务器的独立的机房中,也可以与IM服务器安装在同一个机房中。

为了便于理解,下面以一个IM消息的传输装置为例,介绍本发明实施例提供的一种IM消息的传输方法,该方法的流程示意图如图2所示,包括下述步骤:

S201:接收终端设备发送的上行数据包。

本发明实施例中,包含二层封装的上行数据包和三层封装的上行数据包。

其中,对于二层封装的上行数据包,第一层(外层)为上行数据包,符合安全扩展协议的格式;第二层(内层)可以为作为上行数据包的包体的现有IM消息,现有IM消息具体是符合应用协议格式,例如TCP、UDP或HTTP的格式的数据包;第二层(内层)可以设置为空。

符合安全扩展协议的格式的上行数据包的包头中包括消息类型字段。进一步,该上行数据包的包头中还包括:APP(Application,应用)类型字段、消息长度字段、IM服务器地址字段、和应用协议字段。其中,IM服务器地址字段包括IM服务器IP地址字段和IM服务器端口字段。

终端设备与IM消息的传输装置建立连接后,生成符合安全扩展协议的格式的作为IM服务器地址获取请求的上行数据包后,向IM消息的传输装置发送。

具体地,终端设备对符合安全扩展协议的格式的上行数据包中的消息类型字段进行设置,将其它字段和包体都设置为空,生成作为IM服务器地址获取请求的上行数据包。较佳地,对符合安全扩展协议的格式的上行数据包中的APP类型字段、消息长度字段和消息类型字段进行设置,将其它字段和包体都设置为空,生成作为IM服务器地址获取请求的上行数据包。

之后,将生成的作为IM服务器地址获取请求的上行数据包,向IM消息的传输装置发送。

例如,一个作为IM服务器地址获取请求的上行数据包,符合安全扩展协议的格式,其具体格式和内容为8|len|Get_IM_Addr|null|null|null。其中8是指终端设备中IM客户端的APP类型;len代表该上行数据包的长度;Get_IM_Addr是IM客户端与IM消息的传输装置之间预先约定的消息类型之一,表示获取IM服务器的地址;几个null表示其它字段和包体各项无需赋值。

较佳地,对于三层封装的上行数据包,第一层(外层)为上行数据包,符合安全层协议的格式,安全层协议可以为TLS(Transport Layer Security,传输层安全)协议或者SSL(Secure Socket Layer,安全套接字层)协议等;第二层(中间层)为作为上行数据包的包体的上行载荷数据包,符合安全扩展协议的格式;第三层(内层)可以为作为上行载荷数据包的包体的现有IM消息,IM消息具体为符合应用协议格式,例如TCP、UDP或HTTP的格式的数据包;第三层(内层)也可以设置为空。

符合安全扩展协议的格式的上行载荷数据包的包头中包括消息类型字段。进一步,该上行载荷数据包的包头中还包括:APP类型字段、消息长度字段、IM服务器地址字段、和应用协议字段。其中,IM服务器地址字段包括IM服务器IP地址字段和IM服务器端口字段。

较佳地,终端设备与IM消息的传输装置建立基于安全层协议(例如TLS协议)的连接后,对IM消息的传输装置进行证书认证,或者两者互相进行证书认证,具体认证方法为本领域技术人员所熟知,此处不再赘述。

认证通过后,终端设备生成符合安全扩展协议的格式的作为IM服务器地址获取请求的上行数据包后,向IM消息的传输装置发送。

终端设备对符合安全扩展协议的格式的上行载荷数据包的包头中的消息类型字段进行设置,将其它字段和包体都设置为空。

较佳地,对符合安全扩展协议的格式的上行载荷数据包的包头中的APP类型字段、消息长度字段和消息类型字段进行设置,将其它字段和包体都设置为空。

根据安全层协议,将上行载荷数据包作为包体进行封装,生成作为IM服务器地址获取请求的上行数据包。

之后,将生成的作为IM服务器地址获取请求的上行数据包,向IM消息的传输装置发送。

IM消息的传输装置接收终端设备发送的上行数据包。

S202:检测上行数据包的包头是否符合安全层协议的格式;若否,则执行步骤S203;若是,则执行步骤S206。

IM消息的传输装置对接收到的上行数据包进行检测,检测上行数据包的包头是否符合安全层协议的格式。

例如,检测上行数据包的包头是否包含TLS协议或SSL协议所规定携带的字段,若不包含,则确定该上行数据包不符合安全层协议的格式,该上行数据包可能是二层封装的,执行步骤S203;若包含,则确定该上行数据包符合安全层协议的格式,该上行数据包是三层封装的,执行步骤S206。

S203:检测上行数据包的包头是否符合安全扩展协议的格式;若是,则执行步骤S204;否则忽略该上行数据包。

IM消息的传输装置针对不符合安全层协议的格式的上行数据包,检测该上行数据包的包头是否符合安全扩展协议的格式。

例如,检测上行数据包的包头是否包含安全扩展协议所规定携带的字段,若包含,则确定该上行数据包符合安全层协议的格式,执行步骤S204;若不包含,则确定该上行数据包不符合安全扩展协议的格式,可以忽略该上行数据包。

S204:检测上行数据包的类型。

IM消息的传输装置对于符合安全扩展协议的格式的上行数据包,通过检测该上行数据包的包头中消息类型字段中的信息,确定出该上行数据包的类型。

S205:当检测出上行数据包的类型为IM服务器地址请求时,获取相应的IM服务器地址,向发送IM服务器地址请求的终端设备返回。

当IM消息的传输装置从符合安全扩展协议的格式的上行数据包的消息类型字段检测出获取IM服务器地址(Get IM Addr)的信息时,确定出该上行数据包的类型为IM服务器地址请求。

IM消息的传输装置预先与IM服务器建立连接,相互通讯的数据符合应用协议格式。

IM消息的传输装置,根据该IM服务器地址请求,生成符合应用协议格式的IM服务器地址获取请求,向对应的IM服务器发送;IM服务器返回该IM服务器的地址信息;IM消息的传输装置将IM服务器返回的IM服务器的地址信息,向发送IM服务器地址请求的终端设备返回。应用协议即IM消息客户端和服务器端所遵循的协议,例如TCP、UDP或HTTP等。

较佳地,IM消息的传输装置,从本传输装置已存储的多个IM服务器的地址信息中,确定出该IM服务器地址请求对应的IM服务器的地址信息,向发送IM服务器地址请求的终端设备返回。

S206:从上行数据包中解析出作为该上行数据包的包体的上行载荷数据包。

IM消息的传输装置从符合安全层协议的格式的(三层封装的)上行数据包中,解析出该上行数据包的包体,解析出包体为独立的数据包,可以称为上行载荷数据包。

S207:检测上行载荷数据包的包头是否符合安全扩展协议的格式;若是,则执行步骤S208;否则忽略该上行载荷数据包。

IM消息的传输装置检测上述解析出的上行载荷数据包的包头是否符合安全扩展协议的格式。

例如,检测上行载荷数据包的包头是否包含安全扩展协议所规定携带的字段,若包含,则确定该上行载荷数据包符合安全层协议的格式,执行步骤S208;若不包含,则确定该上行载荷数据包不符合安全扩展协议的格式,可以忽略该上行载荷数据包。

S208:检测上行载荷数据包的类型。

IM消息的传输装置对于符合安全扩展协议的格式的上行载荷数据包,通过检测该上行载荷数据包的包头中消息类型字段中的信息,确定出该上行载荷数据包的类型。

S209:当检测出上行载荷数据包的类型为IM服务器地址请求时,获取相应的IM服务器地址,向发送IM服务器地址请求的终端设备返回。

当IM消息的传输装置从符合安全扩展协议的格式的上行载荷数据包的消息类型字段检测出获取IM服务器地址的信息时,确定出该上行载荷数据包的类型为IM服务器地址请求。

IM消息的传输装置预先与IM服务器建立连接,相互通讯的数据符合应用协议格式。

IM消息的传输装置,根据该IM服务器地址请求,生成符合应用协议格式的IM服务器地址获取请求,向对应的IM服务器发送;IM服务器返回该IM服务器的地址信息;IM消息的传输装置将IM服务器返回的IM服务器的地址信息,向发送IM服务器地址请求的终端设备返回。

较佳地,IM消息的传输装置,从本传输装置已存储的多个IM服务器的地址信息中,确定出该IM服务器地址请求对应的IM服务器的地址信息,向发送IM服务器地址请求的终端设备返回。

下面介绍本发明实施例提供的另一种IM消息的传输方法,该方法的流程示意图如图3a所示,包括下述步骤:

S301:接收终端设备发送的上行数据包。

终端设备保持与IM消息的传输设备之间预先建立的连接。

终端设备接收到IM消息的传输设备返回的IM服务器的地址信息后,根据IM服务器的地址信息、和待传输的IM消息,生成符合安全扩展协议的格式的作为IM消息传输请求的上行数据包后,向IM消息的传输装置发送。符合安全扩展协议的格式的上行数据包为二层封装的数据包。

具体地,终端设备根据用户的输入,生成符合应用协议的格式的IM消息(即内层上行数据包);根据安全扩展协议对IM消息进行封装,得到符合安全扩展协议的格式的上行数据包(即外层上行数据包)。

终端设备将待传输的IM消息作为包体,在该包体的基础上增加符合安全扩展协议的格式的包头;根据接收的IM服务器地址信息,对该包头中的IM服务器字段进行设置;根据待传输的IM消息的相关信息,对该包头中的APP类型字段、消息长度字段、消息类型字段和应用协议字段进行设置;生成得到作为IM消息传输请求的上行数据包。之后,将生成的作为IM消息传输请求的上行数据包,向IM消息的传输装置发送。

符合安全扩展协议的格式的上行数据包包括:包头、和作为包体的IM消息。IM消息是独立的数据包,符合应用协议的格式。应用协议可以是TCP、UDP或HTTP等。

图3b示出了符合安全扩展协议的格式的数据包的一个实例的示意图。图3b中,符合安全扩展协议的格式的上行数据包的包头中包括:APP类型字段、消息长度字段、消息类型字段、IM服务器地址字段、和应用协议字段。其中,IM服务器地址字段包括IM服务器IP(Internet Protocol,互联网协议)地址字段和IM服务器端口字段;消息长度字段中的信息表明该上行数据包的字节长度;消息类型字段中的信息表明该上行数据包的类型,具体为IM服务器地址获取请求、IM消息传输请求或其它请求;应用协议字段中的信息表明作为包体的IM消息所采用的协议格式。

例如,一个作为IM消息传输请求的上行数据包,符合安全扩展协议的格式,其具体格式和内容为

8|len|App_Msg|192.168.100.100|8061|tcp|msg

其中8是终端设备中IM客户端的APP类型;len代表该上行数据包的长度;App_Msg(Application_Message,应用消息)是IM客户端与IM消息的传输装置之间预先约定的消息类型之一,表示需IM消息的传输装置透传作为该上行数据包的包体的IM消息,所谓透传指不对IM客户端封装的IM消息作任何改动,向对应的IM服务器传输;192.168.100.100是对应的IM服务器IP地址,8061是对应的IM服务器的端口;tcp是指作为包体的IM消息符合TCP协议的格式;msg表示IM消息。

IM消息的传输装置接收终端设备发送的上行数据包。

较佳地,终端设备保持与IM消息的传输设备之间预先建立的基于安全层协议(例如TLS协议)的连接。

终端设备接收到IM消息的传输设备返回的IM服务器的地址信息后,根据IM服务器的地址信息、和待传输的IM消息,生成符合安全层协议的格式的作为IM消息传输请求的上行数据包后,向IM消息的传输装置发送。符合安全层协议的格式的上行数据包为三层封装的数据包。安全层协议可以为TLS协议或者SSL协议等。

具体地,终端设备根据用户的输入,生成符合应用协议的格式的IM消息(即内层上行数据包);根据安全扩展协议对IM消息进行封装,得到符合安全扩展协议的格式的上行载荷数据包(即第二层或中间层上行数据包);根据安全层协议对上行载荷数据包进行封装,得到符合安全层协议的格式的上行数据包(即外层上行数据包)。

终端设备将待传输的IM消息作为待生成的上行载荷数据包的包体,在该包体的基础上增加符合安全扩展协议的格式的包头;根据接收的IM服务器地址信息,对该包头中的IM服务器字段进行设置;根据待传输的IM消息的相关信息,对该包头中的APP类型字段、消息长度字段、消息类型字段和应用协议字段进行设置;生成得到符合安全扩展协议的格式的上行载荷数据包。将该上行载荷数据包作为待生成的上行数据包的包体,在该包体的基础上增加符合安全层协议的格式的包头,生成符合安全层协议的格式的作为IM消息传输请求的上行数据包。之后,将生成的作为IM消息传输请求的上行数据包,向IM消息的传输装置发送。

符合安全层协议的格式的上行数据包包括:包头、和作为包体的上行载荷数据包。符合安全扩展协议的格式的上行载荷数据包包括:包头、和作为包体的IM消息。IM消息是独立的数据包,符合应用协议的格式。应用协议可以是TCP、UDP或HTTP等。

符合安全扩展协议的格式的上行载荷数据包的包头中包括:APP类型字段、消息长度字段、消息类型字段、IM服务器地址字段、和应用协议字段。其中,IM服务器地址字段包括IM服务器IP地址字段和IM服务器端口字段;消息长度字段中的信息表明该上行数据包的字节长度;消息类型字段中的信息表明该上行数据包的类型,具体为IM服务器地址获取请求、IM消息传输请求或其它请求;应用协议字段中的信息表明作为包体的IM消息所采用的协议格式。

IM消息的传输装置接收终端设备发送的上行数据包。

S302:检测上行数据包的包头是否符合安全层协议的格式;若否,则执行步骤S303;若是,则执行步骤S309。

IM消息的传输装置对接收到的上行数据包进行检测,检测上行数据包的包头是否符合安全层协议的格式。

例如,检测上行数据包的包头是否包含TLS协议或SSL协议所规定携带的字段,若不包含,则确定该上行数据包不符合安全层协议的格式,该上行数据包可能是二层封装的,执行步骤S303;若包含,则确定该上行数据包符合安全层协议的格式,该上行数据包是三层封装的,执行步骤S309。

S303:检测上行数据包的包头是否符合安全扩展协议的格式;若是,则执行步骤S304;否则执行步骤S306。

IM消息的传输装置针对不符合安全层协议的格式的上行数据包,检测该上行数据包的包头是否符合安全扩展协议的格式。

例如,检测上行数据包的包头是否包含安全扩展协议所规定携带的字段,若包含,则确定该上行数据包符合安全层协议的格式,执行步骤S304;若不包含,则确定该上行数据包不符合安全扩展协议的格式,执行步骤S306。

S304:检测上行数据包的类型。

IM消息的传输装置对于符合安全扩展协议的格式的上行数据包,通过检测该上行数据包的包头中消息类型字段中的信息,确定出该上行数据包的类型。

S305:当检测出上行数据包的类型为IM消息传输请求时,从该上行数据包的包体中解析出IM消息,向对应的IM服务器发送。

当IM消息的传输装置检测出上行数据包的包头中的消息类型信息为应用消息时,确定上行数据包的类型为即时通讯消息传输请求。具体地,当IM消息的传输装置从符合安全扩展协议的格式的上行数据包的消息类型字段检测出应用消息(App_Msg)的信息时,确定出该上行数据包的类型为IM消息传输请求。

从上行数据包的包头中解析出服务器地址、和应用协议的标识、以及作为上行数据包的包体的IM消息。

根据解析出的服务器地址、和应用协议的标识,将IM消息,通过预先与IM服务器建立的符合应用协议的连接,向支持相应应用协议的IM服务器发送。

较佳地,IM消息的传输装置记录作为上传数据包发送方的终端设备与作为目标方的IM服务器之间的映射关系。例如,对于同一上传数据包,将作为该上传数据包发送方的终端设备的地址和端口、作为该上传数据包目标方的IM服务器的地址和端口对应记录。

S306:直接将上行数据包向相应的IM服务器发送。

IM消息的传输装置对于既不符合安全层协议的格式、也不符合安全扩展协议的格式的上行数据包,直接将该上行数据包向相应的IM服务器发送。

可以理解,对于诸如用户之间收发的IM消息等信息通常属于私密性较强的信息,终端设备的IM客户端会选择对这些私密性较强的信息通过安全扩展协议、或安全扩展协议与安全层协议的组合进行封装后进行发送,以增强安全性。

而对于诸如上传或下载头像等私密性较弱的信息,终端设备的IM客户端可能会选择将私密性较弱的信息作为IM消息,直接进行发送,以提升传输效率。

S307:接收IM服务器下发的IM消息。

IM消息的传输装置与IM服务器之间保持着符合应用协议的连接。接收到的IM服务器下发的IM消息,符合应用协议的格式。应用协议可以是TCP协议、UDP协议或HTTP协议等。

S308:根据安全扩展协议封装IM服务器下发的IM消息,得到下行数据包后,向相应的终端设备发送。

较佳地,IM消息的传输装置根据预先记录的终端设备与IM服务器之间的映射关系,确定出作为下发IM消息的目标方的终端设备。

例如,从对应记录的终端设备的地址和端口、和IM服务器的地址和端口中,确定出下发IM消息中IM服务器的地址、或者地址和端口所对应的终端设备的地址和端口。

根据安全扩展协议封装IM服务器下发的IM消息后,得到符合安全扩展协议的格式的二层封装的下行数据包,向确定出的作为下发IM消息的目标方的终端设备进行发送。

例如,根据确定出的终端设备的地址和端口,向该终端设备发送符合安全扩展协议的格式的二层封装的下行数据包。

终端设备接收到符合安全扩展协议的格式的二层封装的下行数据包后,从中解析出作为包体的IM消息;根据解析出IM消息进行相应操作,例如,当解析出的IM消息为聊天消息时进行显示等。

S309:从上行数据包中解析出作为该上行数据包的包体的上行载荷数据包。

IM消息的传输装置从符合安全层协议的格式的(三层封装的)上行数据包中,解析出该上行数据包的包体,解析出包体为独立的上行载荷数据包。

事实上,上述步骤S301-S305的第一步骤组合,与步骤S307-S308的第二步骤组合是相互独立的。第一、二步骤组合可以同时执行,也可以一个执行在先,另一个执行在后。

S310:检测上行载荷数据包的包头是否符合安全扩展协议的格式;若是,则执行步骤S311;否则,执行步骤S313。

IM消息的传输装置检测上述解析出的上行载荷数据包的包头是否符合安全扩展协议的格式。

例如,检测上行载荷数据包的包头是否包含安全扩展协议所规定携带的字段,若包含,则确定该上行载荷数据包符合安全层协议的格式,执行步骤S311;若不包含,则确定该上行载荷数据包不符合安全扩展协议的格式,执行步骤S313。

S311:检测上行载荷数据包的类型。

IM消息的传输装置对于符合安全扩展协议的格式的上行载荷数据包,通过检测该上行载荷数据包的包头中消息类型字段中的信息,确定出该上行载荷数据包的类型。

S312:当检测出上行载荷数据包的类型为IM消息传输请求时,从上行载荷数据包的包头中解析出IM消息,向对应的IM服务器发送。

当IM消息的传输装置检测出上行载荷数据包的包头中的消息类型信息为应用消息时,确定上行载荷数据包的类型为IM消息传输请求。具体地,当IM消息的传输装置从符合安全扩展协议的格式的上行载荷数据包的消息类型字段检测出应用消息(App_Msg)的信息时,确定出该上行载荷数据包的类型为IM消息传输请求。

从上行载荷数据包的包头中解析出服务器地址、和应用协议的标识、以及作为上行载荷数据包的包体的IM消息。

根据服务器地址、和应用协议的标识,将IM消息,通过预先与IM服务器建立的符合应用协议的连接,向支持相应应用协议的IM服务器发送。

较佳地,IM消息的传输装置记录作为上传数据包发送方的终端设备与作为目标方的IM服务器之间的映射关系。例如,对于同一上传数据包,将作为该上传数据包发送方的终端设备的地址和端口、作为该上传数据包目标方的IM服务器的地址和端口对应记录。

S313:从上行载荷数据包中解析出IM消息向相应的IM服务器发送,或忽略该上行载荷数据包。

IM消息的传输装置对于不符合安全扩展协议的格式的上行载荷数据包,若可以从该上行载荷数据包中解析出的IM消息,则将解析出的IM消息,向相应的IM服务器发送。若无法从该上行载荷数据包中解析出的IM消息,则忽略该上行载荷数据包。

S314:接收IM服务器下发的IM消息。

IM消息的传输装置与IM服务器之间保持着符合应用协议的连接。接收到的IM服务器下发的IM消息,符合应用协议的格式。应用协议可以是TCP协议、UDP协议或HTTP协议等。

S315:根据安全扩展协议封装IM服务器下述的IM消息,得到符合安全扩展协议格式的下行载荷数据包。

IM消息的传输装置根据安全扩展协议封装IM服务器下发的IM消息后,得到符合安全扩展协议的格式的二层封装的下行载荷数据包。

具体地,将IM服务器下发的IM消息作为待生成的下行载荷数据包的包体,在该包体的基础上增加符合安全扩展协议的包头,生成符合安全扩展协议的格式的二层封装的下行载荷数据。

S316:根据安全层协议封装符合安全扩展协议格式的下行载荷数据包,得到下行数据包后,向相应的终端设备发送。

较佳地,IM消息的传输装置根据预先记录的终端设备与IM服务器之间的映射关系,确定出作为下发IM消息的目标方的终端设备。

例如,从对应记录的终端设备的地址和端口、和IM服务器的地址和端口中,确定出下发IM消息中IM服务器的地址、或者地址和端口所对应的终端设备的地址和端口。

IM消息的传输装置根据安全层协议,对符合安全扩展协议的格式的二层封装的下行载荷数据包进行封装,得到符合安全层协议的格式的三层封装的下行数据包;向确定出的作为下发IM消息的目标方的终端设备进行发送。

例如,根据确定出的终端设备的地址和端口,向该终端设备发送符合安全层协议的格式的三层封装的下行数据包。

终端设备接收到符合安全层协议的格式的三层封装的下行数据包后,从中解析出作为其包体的符合安全扩展协议的格式的二层封装的下行载荷数据包;继续从该下行载荷数据包中,解析出作为该下行载荷数据包的包体的IM消息。根据解析出IM消息进行相应操作,例如,当解析出的IM消息为聊天消息时进行显示等。

事实上,上述步骤S301、S302和S309-S313的第三步骤组合,与步骤S314-S316的第四步骤组合是相互独立的。第三、四步骤组合可以同时执行,也可以一个执行在先,另一个执行在后。

基于上述IM消息的传输方法,本发明实施例的IM消息的传输装置的内部结构的框架示意图如图4所示,包括:数据收发模块401、协议格式检测模块402和数据包类型检测模块403。

其中,数据收发模块401用于接收上行数据包;以及将接收到的IM消息向对应的IM服务器发送。

协议格式检测模块402用于当检测出数据收发模块401接收的上行数据包的包头不符合安全层协议的格式时,检测上行数据包的包头是否符合安全扩展协议的格式;当检测出上行数据包的包头符合安全扩展协议的格式时,发送类型检测通知。

数据包类型检测模块403用于接收到类型检测通知后,检测上行数据包的类型;当检测出上行数据包的类型为IM消息传输请求时,从中解析出IM消息进行转发。

较佳地,数据包类型检测模块403具体用于当检测出上行数据包的包头中的消息类型信息为应用消息时,确定上行数据包的类型为IM消息传输请求;从上行数据包的包头中解析出服务器地址、和应用协议的标识、以及作为包体的IM消息进行转发。

以及,数据收发模块401具体用于根据接收到的数据包类型检测模块403转发的服务器地址、和应用协议的标识,将接收到的数据包类型检测模块403转发的IM消息,向支持相应应用协议的IM服务器发送。

较佳地,数据包类型检测模块403还用于当检测出上行数据包的类型为IM服务器地址请求时,获取相应的IM服务器地址进行转发。

以及,数据收发模块401还用于接收到数据包类型检测模块转发的IM服务器地址后,向发送IM服务器地址请求的终端设备返回。

较佳地,协议格式检测模块402还用于当检测出上行数据包的包头不符合安全扩展协议的格式时,发送直接发送通知。

以及,数据收发模块401还用于接收到直接发送通知后,直接将上行数据包向相应的IM服务器发送。

较佳地,数据收发模块401还用于接收IM服务器下发的IM消息;根据安全扩展协议封装IM服务器下发的IM消息,得到下行数据包后,向相应的终端设备发送。

较佳地,协议格式检测模块402还用于当检测出上行数据包的包头符合安全层协议的格式时,从中解析出作为上行数据包的包体的上行载荷数据包;当检测出上行载荷数据包的包头符合安全扩展协议的格式时,发送类型检测通知。

以及,数据包类型检测模块403还用于接收到类型检测通知后,检测上行载荷数据包的类型;当检测出上行载荷数据包的类型为IM消息传输请求时,从上行载荷数据包的包头中解析出IM消息进行转发。

较佳地,数据包类型检测模块403具体用于当检测出上行载荷数据包的包头中的消息类型信息为应用消息时,确定上行载荷数据包的类型为IM消息传输请求;以及,从上行载荷数据包的包头中解析出服务器地址、和应用协议的标识、以及作为上行载荷数据包的包体的IM消息进行转发。

以及,数据收发模块401具体用于根据接收到的数据包类型检测模块403转发的服务器地址、和应用协议的标识,将接收到的数据包类型检测模块403转发的IM消息,向支持相应应用协议的IM服务器发送。

较佳地,数据收发模块401还用于接收IM服务器下发送的IM消息;根据安全扩展协议封装IM服务器下发送的IM消息,得到符合安全扩展协议格式的下行载荷数据包;根据安全层协议封装下行载荷数据包,得到下行数据包后,向相应的终端设备发送。

上述数据收发模块401、协议格式检测模块402和数据包类型检测模块403功能的实现方法,可以参考如上述图2和图3a的流程步骤的具体内容,此处不再赘述。

本发明实施例中,当检测出上行数据包的包头符合安全扩展协议的格式时,说明上行数据包中待传输至即时通讯服务器的数据,被安全扩展协议额外封装,即使恶意程序非法获取了上行数据包并能够破解现有的应用协议,也无法识别额外增加的安全扩展协议,可以大大降低上行的即时通讯消息的泄露的几率,从而提升上行的即时通讯消息的安全性。而且,从上行数据包的包体中解析出即时通讯消息,向即时通讯服务器发送;现有的即时通讯服务器仍然可以根据现有方法接收并处理即时通讯消息,无需改造或更新即时通讯服务器,在提升即时通讯消息安全性的基础上大大节省了成本;此外,本发明实施例兼容于现有的即时通讯服务器,适用范围较大。

而且,本发明实施例中,当检测出上行数据包的包头符合安全层协议的格式时,从中解析出作为上行数据包的包体的上行载荷数据包;当检测出上行载荷数据包的包头符合安全扩展协议的格式时,检测上行载荷数据包的类型;当检测出上行载荷数据包的类型为即时通讯消息传输请求时,从上行载荷数据包的包头中解析出即时通讯消息,向对应的即时通讯服务器发送。相当于,在现有的安全层协议与即时通讯消息所遵循的应用协议之间,增加一层安全扩展协议,形成符合安全扩展协议的格式的上行载荷数据包。即使恶意程序获取了上行数据包并能够破解现有的应用协议和安全层协议,也无法识别额外增加的安全扩展协议,可以大大降低上行的即时通讯消息的泄露的几率,从而提升上行的即时通讯消息的安全性。而且,安全扩展协议并没有改变作为上行载荷数据包的包体的即时通讯消息;现有的即时通讯服务器仍然可以根据现有方法接收并处理即时通讯消息,无需改造或更新即时通讯服务器,在提升即时通讯消息安全性的基础上大大节省了成本;此外,本发明实施例兼容于现有的即时通讯服务器,适用范围较大。

进一步,本发明实施例中,采用与上行数据包相对应的封装方式,对于即时通讯服务器下发的即时通讯消息,进行封装,得到对应的下行数据包向终端设备发送。例如,与三层封装的上行数据包相对应,下发的即时通讯消息作为内层的数据包;根据安全扩展协议将下发的即时通讯消息作为包体进行封装,得到符合安全扩展协议的格式的下行载荷数据包(即第二层或中间层数据包);根据安全层协议将下行载荷数据包作为包体进行封装,得到符合安全层协议的格式的下行数据包,发送至终端设备。提升了下发的即时通讯消息的安全性,进一步从整体上增强了即时通讯消息的安全性。

本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。

本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1