基于网络数据包的即时通信协议信息还原技术的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络测试技术
电 子 测 量 技 术
ELECT RON IC M EASU REMEN T TECH N OL OGY
第33卷第6期
2010年6月 基于网络数据包的即时通信协议
信息还原技术的研究
余 飞 吴 鑫
(上海大学通信与信息工程学院 上海 200072)
摘 要:随着计算机技术的发展和互联网应用的普及,即时通信软件被广为使用。为了解决目前即时通信软件在使用过程中易受病毒攻击的问题,研究了微软公司的M SN通信协议。在实验中通过对捕获的网络数据包分析和处理,实现了基于网络数据包的即时通信协议信息的还原,即网络数据包的捕获、M SN协议解析、消息还原等主要过程。在真实环境下,利用大量实验数据进行了测试,结果表明,系统能够实现对M SN即时文本消息的解析和还原。为今后对病毒特征码的提取,提供了条件。
关键词:网络数据包;即时通信;协议分析;信息还原;U T F 8解码
中图分类号:T P393.07 文献标识码:A
Research on the revert technology of instant messenger
protocol based on network packages
Y u F ei W u X in
(Com munication and Information T ech nology S chool,Shanghai University,S han ghai200072)
Abstract:With the development of co mputer technolog y and the popular izat ion o f inter net applicat ions,the inst ant messeng er so ftwar e is widely used.In o rder to resolve the pro blem that the inst ant messeng er so ftw are is v ulnerable to v ir us attacks w hen it s in use,w e hav e a r esea rch o n m icroso ft co mpany s M SN pro tocol.I n t he ex periment,through analysis and pr ocessing on the intercepted net wo rk packets,w e realize the resto ratio n of infor matio n o f the inst ant messeng er pr otoco l based o n netw ork packag es,w hich is the main pro cess of w hich including intercepting netw ork packets,resolve on the M SN pro tocol and restor atio n o f info rmatio n.U nder r eal environment,a lar ge number of ex perimental data show s t hat M SN tex t messag e can be cor rectly reso lved and restor ed.It pr ovides the conditio ns fo r t he ex traction of the vir us sig natures in the future.
Keywords:netw or k packages;instant messeng er;pr otoco l analy sis;info rmatio n restor ation;U T F 8decoding
0 引 言
在当今信息时代,人们之间的信息交流需求越来越高,即时通信(Instant M essenger,简称IM)软件应运而生,立即受到广大互联网用户的喜爱[1]。
随着即时通信软件的普及和即时通信产业近10年的发展,即时通信用户也在不断地增长。到2006年,全球即时通信软件的使用者数量已经达到4.32亿。预计到2010年,全球将有6.5亿即时通信用户[2]。即时通信软件具有比E mail更快的反馈速度、更加便于快速解决问题、能够看到对方是否在线和节约长途话费等优势,在很多方面已经取代了E mail的应用,受到广大网民的普遍喜欢。
但是,即时通信软件在为人们带来诸多方便的同时,也在安全方面显示出了新的问题。比如:目前很多流行的IM软件没有提供加密机制,易受病毒、木马等恶意代码攻击。
因此,需要深入分析即时通信软件的协议,还原其信息以达到监控的目的。
1 即时通信协议分析
1.1 主流即时通信协议
即时通信协议一般采用客户端/服务器模式。M SN Messenger、ICQ、QQ、AIM和Yahoo M essenger这些主流软件使用的都是客户端/服务器模式[3],文本消息必须通过服务器才能从一个客户端传至另一个客户端。客户端/服务器模式的通信架构如图1所示, T cp连接。加密的登录信息。!消息服务器IP地址、端口号。∀断开连接,并且服务器相应。#利用从服务器获得的信息,登录
余 飞等:基于网络数据包的即时通信协议信息还原技术的研究
第6期
交换服务器。
图1 客户端/服务器模式通信架构
1.2 MS N 协议分析
M SN 采用的也是客户端/服务器模式,所有到M SN 服务器的连接都是建立在TCP/IP 上,客户端通常会建立向外的连接到服务器,服务器端口一般固定为1863[4]。
M SN m essenger 提供文本消息传输、语音、视频、文件传输等多种应用,其采用有效载荷命令,采用M IM E [5]规范定义头部字段。其中通过Content Type 这个字段定义了消息正文中的数据所属的媒体类型以及子类型,并提供了一些媒体类型的辅助信息。
1)text/plain(文本消息)
2)text/x m smsgscont rol(键入通知,用于消息传输控制)
3)text/x m smsgsinvit e (语音邀请)
4)applicat ion/x m smsgsrp2p(p2p 消息、如视频、文件传输等)
5)text/x m smsgsprofile(系统初始化消息)
M SN 文本消息协议中,采用请求/响应模式,请求会话方采用INVITE 命令通过服务器向被邀请会话方发出请求,当被邀请会话方同意会话,双方通过交换服务器进行文本消息会话,当会话的任意一方结束会话,会向服务器发送BYE 命令,结束会话。
M SN 语音协议中,语音邀请采用请求/响应模式,首先请求交换服务器发出IN VIT E 请求,然后交换服务器发出ACC EPT 响应,最后请求方发出响应ACCEPT 。在此过程中,双方会确定以后直接通信的双方的IP 地址和端口等信息。
M SN 视频协议中,视频邀请也是采用请求/响应模式,采用INVITR 和BYE 请求方法。协商过程在T CP 上传输,协商成功后的视频媒体在UDP 上传送。
2 基于网络数据包的即时通信协议还原技术实现
本系统主要是在捕获网络数据包基础上,对网络数据
包进行处理,过滤不必要的信息,提取即时通信协议信息,对其进行解析和还原。2.1 网络数据包捕获
基于网络数据包的即时通信协议还原技术的实现,首先通过从网络中捕获原始数据包,然后从中针对不同协议进行即时通信协议信息的获取。本系统采用基于WinPcap [6]提供的API 接口函数来实现数据包的捕获。WinPcap 是由意大利Fulvio Risso 和LorisDegioanni 等人提出并实现的应用于Win32平台的数据包捕获与分析的一种软件包,它的主要思想来源于U nix 系统中著名的
BSD 包捕获架构[7]
。它可以直接从链路层获取数据帧,经过处理后,缓冲区内的内容是完整的IP 包。进一步分析、处理工作可交由后续程序完成。
网络数据包捕获的主要过程是:1)捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包;2)在数据包发往应用程序之前,按照自定义的规则(比如源IP 地址、目的IP 地址、端口号、系统时间等)将某些特殊的数据包过滤;3)在网络上发送原始数据包;4)将数据包送入指定文件以供后续处理。2.2 MS N 协议的解析和还原
本文MSN 文本消息解析和还原模块具体实现过程如图2所示。
在解析和还原过程前,网络数据包被预先处理,即在被捕获的网络数据包中提取相应三元组(即系统时间、源IP 地址、目的IP 地址),并加入数据包尾部,为系统时间插入特征值%[T IM E]&,将解析和还原过程提供方便。对其进行解析和还原后将在相应的界面显示消息发送时间、消息发送者、消息接收者、具体消息内容,并保存在数据库。
图2是M SN 协议解析和还原程序流程图。考虑到捕获的网络数据包中存在乱序情况(M SN 协议中,多用户会话时,会话内容发送者和接收者无法辨别),程序采用二次遍历的方法,通过预先处理时数据包中的三元组,在一次遍历时就已经将其IP 地址和相应的用户名绑定,将其送入存储数组,通过上述算法,为后续查找时寻找相应会话内容的发送和接收者提供了便利。在二次遍历时,本文采用了一种内容关键字%text/plain &,用户名关键字%text/x msm sgscontrol &,时间关键字%[T IM E]&混合查询(由于一个数据包中可能存在多条文本消息,或者混杂多个不同用户发起的会话,仅仅通过内容关键字%text/plain &无法准确寻找该文本消息的发送对象和接收对象),通过每个数据包相应的三元组,在先前存储数组中寻找对应用户名,获取具体文本消息的发送对象和接收对象,随后完成一轮查询,将文本消息发送者和接收者,会话内容,系统时间,送入相应的存储文件。此后不断地将捕获的网络数据包送入该处理模块,达到实时处理的效果。