电子测量技术 第33卷第6期 2010年6月 ELECTRONIC MEASUREMENT TECHN0LOGY 基于网络数据包的即时通信协议 信息还原技术的研究 余 飞 吴 鑫 (上海大学通信与信息工程学院 上海200072) 摘要:随着计算机技术的发展和互联网应用的普及,即时通信软件被广为使用。为了解决目前即时通信软件在使 用过程中易受病毒攻击的问题,研究了微软公司的MSN通信协议。在实验中通过对捕获的网络数据包分析和处理, 实现了基于网络数据包的即时通信协议信息的还原,即网络数据包的捕获、MSN协议解析、消息还原等主要过程。在 真实环境下,利用大量实验数据进行了测试,结果表明,系统能够实现对MSN即时文本消息的解析和还原。为今后 对病毒特征码的提取,提供了条件。 关键词:网络数据包;即时通信;协议分析;信息还原;UTF-8解码 中图分类号:TP393.07 文献标识码:A Research on the revert technology of instant messenger protocol based on network packages YU Fei Wu Xin (Communication and Information Technology School。Shanghai University.Shanghai 200072) Abstract:With the development of computer technology and the popularization of internet applications,the instant messenger software is widely used.In order tO resolve the problem that the instant messenger software is vulnerable tO virus attacks when it’S in use,we have a research on microsoft company’S MSN protoco1.In the experiment,through analysis and processing on the intercepted network packets,we realize the restoration of information of the instant messenger protocol based on network packages,which is the main process of which including intercepting network packets,resolve on the MSN protocol and restoration of information.Under real environment,a large number of experimental data shows that MSN text message can be correctly resolved and restored.It provides the conditions for the extraction of the virus signatures in the future. Keywords:network packages;instant messenger;protocol analysis;information restoration;UTF_8 decoding 0 引 言 IM软件没有提供加密机制,易受病毒、木马等恶意代码 攻击。 在当今信息时代,人们之间的信息交流需求越来越 因此,需要深入分析即时通信软件的协议,还原其信 息以达到监控的目的。 高,即时通信(Instant Messenger,简称IM)软件应运而生, 立即受到广大互联网用户的喜爱 ]。 随着即时通信软件的普及和即时通信产业近1o年的 发展,即时通信用户也在不断地增长。到2006年,全球即 时通信软件的使用者数量已经达到4.32亿。预计到2010 年,全球将有6.5亿即时通信用户[2]。即时通信软件具有 比E—mail更快的反馈速度、更加便于快速解决问题、能够 看到对方是否在线和节约长途话费等优势,在很多方面已 经取代了E-mail的应用,受到广大网民的普遍喜欢。 1即时通信协议分析 1.1主流即时通信协议 即时通信协议一般采用客户端/服务器模式。MSN Messenger、ICQ、QQ、AIM和Yahoo Messenger这些主流 软件使用的都是客户端/JR务器模式“],文本消息必须通 过服务器才能从一个客户端传至另一个客户端。客户端/ 服务器模式的通信架构如图1所示,①Tep连接。②加密 的登录信息。③消息服务器IP地址、端口号。④断开连 但是,即时通信软件在为人们带来诸多方便的同时, 也在安全方面显示出了新的问题。比如:目前很多流行的 接,并且服务器相应。⑤利用从服务器获得的信息,登录 余飞等:基于网络数据包的即时通信协议信息还原技术的研究 第6期 交换服务器。 DNS DNS 服务器 服务器 客户端A 客户端B 消息服务器A 消息服务器B 图1 客户端/服务器模式通信架构 1.2 MSN协议分析 MSN采用的也是客户端/服务器模式,所有到MSN 服务器的连接都是建立在TCP/IP上,客户端通常会建立 向外的连接到服务器,服务器端口一般固定为1863[4]。 MSN messenger提供文本消息传输、语音、视频、文件 传输等多种应用,其采用有效载荷命令,采用MIME 规 范定义头部字段。其中通过Content—Type这个字段定义 了消息正文中的数据所属的媒体类型以及子类型,并提供 了一些媒体类型的辅助信息。 1)text/plain(文本消息) 2)text/x-msmsgscontrol(键入通知,用于消息传输控 制) 3)text/x-msmsgsinvite(语音邀请) 4)application/x-msmsgsrp2p(p2p消息、如视频、文件 传输等) 5)text/X_msmsgsprofile(系统初始化消息) MSN文本消息协议中,采用请求/响应模式,请求会 话方采用INVITE命令通过服务器向被邀请会话方发出 请求,当被邀请会话方同意会话,双方通过交换服务器进 行文本消息会话,当会话的任意一方结束会话,会向服务 器发送BYE命令,结束会话。 MSN语音协议中,语音邀请采用请求/响应模式,首 先请求交换服务器发出INVITE请求,然后交换服务器发 出ACCEPT响应,最后请求方发出响应ACCEPT。在此 过程中,双方会确定以后直接通信的双方的IP地址和端口 等信息。 MSN视频协议中,视频邀请也是采用请求/响应模 式,采用INVITR和BYE请求方法。协商过程在TCP上 传输,协商成功后的视频媒体在UDP上传送。 2 基于网络数据包的即时通信协议还原技术 实现 本系统主要是在捕获网络数据包基础上,对网络数据 包进行处理,过滤不必要的信息,提取即时通信协议信息, 对其进行解析和还原。 2.1网络数据包捕获 基于网络数据包的即时通信协议还原技术的实现,首 先通过从网络中捕获原始数据包,然后从中针对不同协议 进行即时通信协议信息的获取。本系统采用基于 WinPcap[6 提供的API接口函数来实现数据包的捕获。 WinPcap是由意大利Fulvio Risso和LorisDegioanni等人 提出并实现的应用于Win32平台的数据包捕获与分析的 一种软件包,它的主要思想来源于Unix系统中著名的 BSD包捕获架构 。它可以直接从链路层获取数据帧,经 过处理后,缓冲区内的内容是完整的IP包。进一步分析、 处理工作可交由后续程序完成。 网络数据包捕获的主要过程是:1)捕获原始数据包, 包括在共享网络上各主机发送/接收的以及相互之间交换 的数据包;2)在数据包发往应用程序之前,按照自定义的 规则(比如源IP地址、目的IP地址、端口号、系统时间等) 将某些特殊的数据包过滤;3)在网络上发送原始数据包; 4)将数据包送入指定文件以供后续处理。 2.2 MSN协议的解析和还原 本文MSN文本消息解析和还原模块具体实现过程如 图2所示。 在解析和还原过程前,网络数据包被预先处理,即在 被捕获的网络数据包中提取相应三元组(即系统时间、源 IP地址、目的IP地址),并加入数据包尾部,为系统时间插 入特征值“I-TIME]”,将解析和还原过程提供方便。对其 进行解析和还原后将在相应的界面显示消息发送时间、消 息发送者、消息接收者、具体消息内容,并保存在数据库。 图2是MSN协议解析和还原程序流程图。考虑到捕 获的网络数据包中存在乱序情况(MSN协议中,多用户会 话时,会话内容发送者和接收者无法辨别),程序采用二次 遍历的方法,通过预先处理时数据包中的三元组,在一次 遍历时就已经将其IP地址和相应的用户名绑定,将其送入 存储数组,通过上述算法,为后续查找时寻找相应会话内 容的发送和接收者提供了便利。在二次遍历时,本文采用 了一种内容关键字“text/plain”,用户名关键字“text/x- msmsgscontrol”,时间关键字“/-TIME]”混合查询(由于一 个数据包中可能存在多条文本消息,或者混杂多个不同用 户发起的会话,仅仅通过内容关键字“text/plain”无法准确 寻找该文本消息的发送对象和接收对象),通过每个数据 包相应的三元组,在先前存储数组中寻找对应用户名,获 取具体文本消息的发送对象和接收对象,随后完成一轮查 询,将文本消息发送者和接收者,会话内容,系统时间,送 入相应的存储文件。此后不断地将捕获的网络数据包送 入该处理模块,达到实时处理的效果。 ・ 131 ・ 第33卷 电 子测 量技术 t、 + 一次遍历数据包 一土、 I二次遍雩数据包卜‘N l薰掰打开ms’.n_筛选文件I N {遍历msn筛选文件I N N Y +一 l输出内容到一n筛选文件l 内 容 l逐行查找数据包I f u矸 _8角 码I 一 字键关 中 : . J输出到逐行查找数据包——l msn解码文件J + N — 查找m栅变用户名 i重新打开rnsn解码文件f + 存储下一行 }●Y 1. 输出时间和用户名 到msn筛选文件 I整理莉}序一n、r 筛选文件l 《 : ===== 一 N := N I输出到 ;n还原文件J 、、、 图2 msn协议解析和还原程序流程图 MSN协议其文本消息采用UTF一8编码方式。表1总 结了不同8比特字节类型格式。字母x指出此位来自于进 删~ —t 行编码的UCS-4字符值Ⅲ。 表1不同8比特字节类型格式 主 发送数龅 数据接收设备主 UCS-4(十六进制) UTF-8( ̄进制) 图3测试环境 0000 0080—0000 O7FF 的MSN数据包,这些数据包是用软件在实际的MSN通信 0000 0800—0000 FFFF 11110xxx 10XXXXXX 10XXXXXX 过程中捕获得到的。 0001 0000—001F FFFF 数据接收设备用来接收、过滤,转发数据包,要在上面 10XXXXXX 111110xx 10XXXXXX 10XXXXXX 先手动设置静态监控规则。 0020 0000—03FF FFFF 10XXXXXX 10xxxxxx 主机B是用来实现数据接收和重组、协议解析和信息 111111Ox 10XXXXXX 10XXXXXX 还原等功能。它上面安装了本系统开发的数据接收和重 0400 0000—7FFF FFFF 10XXXXXX 1Oxxxxxx 10XXXXX 组、协议解析和信息还原的程序。 3.2测试结果分析 UTF一8解码部分,程序采用按位与运算,判断首字节 本系统开发环境为Visual C++6.0,加载了 是属于一个几字节的UTF~8字符,然后再对其进行位运算 WinPcap库函数wpcap.1ib,最终结果可见界面显示。至 转换成Unicode字符。 此,完成对MSN协议的解析和还原。 文件经过UTF一8解码后,对先前的msn文件进行重 对于MSN文本消息解析和还原结果如图4所示,使 新排序,然后输出到msn还原文件。 用“开始”按钮,选择具体的网卡类型,可设置一系列过滤 规则进行前置过滤,进行数据包捕获,如图4所示,已捕获 3测试结果和分析 数据包273个,在测试过程中,寻找多人进行MSN会话, 3.1测试环境 通过MSN显示列表,显示当前MSN文本消息的系统时 对本系统的数据重组模块和解析模块、以及还原模块 间、消息发送者、消息接收者、消息内容。其中也可选择实 进行了功能性测试,系统的测试环境如图3所示。 时显示协议内容还原信息。当需要获取MSN详细信息, 测试设备:两台PC和一台数据接收设备。 可以点击“MSN显示详细”打开保存的文本文件。 主机A是用来发送数据包,采用千兆网卡。主机A连 通过构造600个不同的通信过程对系统进行测试,从 人数据接收设备的入El,根据测试需要发送各种不同连接 结果上看,本系统能够完成正确地对MSN文本消息进行 ・ 】32 ・ 余 飞等:基于网络数据包的即时通信协议信息还原技术的研究 塑 实时解析和还原。 图4 MSN文本消息解析和还原结果 ]口 ] ] ] 4结 论 针对目前即时通信软件使用时存在的问题,我们通过 实验等多种途径,总结了主流即时通信软件的通信架构, 对MSN Messenger的通信协议、文本消息协议、语音协 议、视频协议进行了研究。详细设计和实现了网络数据包 的捕获、MSN协议解析和消息还原等过程。最后在真实 环境下,利用大量实验数据进行了测试,测试结果表明:系 统能够正确地实现MSN文本消息的解析和还原。 当然,还有很多问题有待进一步研究: 1)需要对MSN的视频会话和文件传输实现协议解 析和信息监控。 目前,系统只对MSN的文本消息实现了协议解析和 信息监控。下一步,还需对它的视频消息和文本传输的协 议进一步研究,实现对MSN的视频和文件传输的监控; 2)需要对ICQ、Yahoo等其他主流即时通信软件的协 议深入研究,实现对它们的信息监控。 参考文献 李远杰,刘渭锋,张玉清,等.主流即时通信软件通信 协议分析[J].计算机应用研究,2005,22(7):243— 245,250. 郑有才,张光华,张玉清.即时通信息监听技术的研究 与实现EJ].计算机应用研究,2005,22(8):113—116. 刘彬,赵荣彩,丛建刚.即时通信协议分析与监控技术 研究[J].计算机应用研究,2007,24(9):260— 262,265. 张光华.即时通信息监控系统的技术研究与设计 ED3.西安:西安电子科技大学硕士学位论文,2005. FREED N,B0RENSTEIN N.Multipurpose Internet ] Mai]l Extensi ] ons(MIME)] Part One:Format of Internet Message Bodies,RFC2045[Z].1996—1 1. 柏芸,寿国础,胡怡红,等.WinPcap性能的测试与 优化[J].微电子学与计算机,2009,26(7):217—220. 赵伟,周侗,刘明哲.一种实时以太网模型及其性能测 试实现[J-I.仪器仪表学报,2006,27(6):72—74. MarkUS KuhfL UrI、.8 and Unieode FAQ[EB/OL]. http || .1inuxforum.net/books/UTF-8一Unicode. htm1.2009一】2—24. 作者简介 余飞,男,1987年7月出生,工学硕士,主要研究方向 为通信网与宽带通信技术、网络信息探测及还原技术等。 E—mail:yf09720788@163.com