当前位置:文档之家› 主流即时通软件通信协议分析

主流即时通软件通信协议分析

Ab stract: Based on the exo ter ic communication data between popu lar instant m essenger client softw are, using sniffer too l o f netwo rk, w e analyse the unopened and nonuniform text m essage transm itting protoco l of those softw are by converse way. Particu larly describe the form o f ICQ tex tm essage transm itting pro toco l and compare the characteristic of ICQ, A IM, M SN and Y ahoo M essg ege r pro toco .l P rov ide reference for tex tm essage transm itting mon itor in the fu ture. K ey words: InstantM essenge r( IM ); P ro toco l A na ly sis; Sniffer
即时通软件不公开且不统一的文本消息传输协议。着重描述了 ICQ 文本消息传输协议的格式, 并且对 ICQ、
A IM、M SN、雅虎通几个主流即时通软件的协议特征进行了比较说明, 为进一步的文本消息监控提供依据。
关键词: 即时通; 协议分析; 嗅探
中图法分类号: TP393104
文献标识码: A
文章编号: 1001-3695( 2005) 07- 0243- 03
第 7期
李远杰等: 主流即时通软件通信协议分析
# 243#
主流即时通软件通信协议分析*
李远杰 1, 刘渭锋 1, 2, 张玉清 2, 梁 力 1
( 1. 西安交通大学 计算机科学与技术系, 陕西 西安 710049; 2. 中国科学院 研究生院 国家计算机网络入侵防范 中心, 北京 100039)
摘 要: 根据主流即时通软件通信数据明文传输的特点, 利用网络捕包工具, 采用逆推的方法, 分析目前流行的
利用如上的配置 环境, 通过网 关上的 Sn iffer工 具, 我 们可 以轻松地抓取局域网 内部客户端 之间通 信的数 据包和 局域网 内部客户端与外网客 户端的通信数据包的应用层数据, 为我们 下面协议分析做好了 充分的准备。
2 ICQ文本消息传输协议分析
选择 ICQ 通信协议的分析过程作为特例, 有以下几点考虑: ( 1) ICQ 是最早出现的即时通通信软件, 具有代表性。 ( 2) ICQ 依然是目前主流的即时通软件。 ( 3) ICQ 协议是 AOL 公司将原 ICQ ( 1998被 AOL 收 购 )和 A IM ( AOL 自己的即时通 产品 )两 大即时 通软件 的协议 格式的 综合。 ( 4) ICQ 应用层数据在网络上明文传输。 首先 在各个 试验环境 的主机 上安装 ICQ version 2003a客 户端, 通 过 网上 免费 申 请几 个 ICQ 账 号, 并 成功 登录 到 服务 器, 客户端之间互相加盟为好友之后, 即可进行消息通信。
在当今信息时代 , 人们 之间的 信息交 流需求越 来越高, 即 时通 ( InstantM esseng er, IM )软件应运而生, 立即受到 广大互联 网用户的喜爱, 风 靡全 球。在 我国 流行 的 IM 软 件品 种繁 多, 有国内腾讯 公司 的 QQ, 国外 的 ICQ, A IM, M SN 和 Y ahoo M essenger等即时通产品。其中 ICQ 和 A IM 是美 国在线 公司 AO L 出品的两款流行的即时通软件 , ICQ 凭 借它推出时间 最长和强 大的功能依然占据着 即时通主流的位置。目前最新版本是 ICQ Pro2003a, A IM 是 5. 2版本。M SN 是微软推出的即时通 产品, 它最大的特点就是将 个人邮 箱与即 时通信功 能完善 结合。目 前最新中文版本是 M SN 6. 0版。 Y ahoo M essenger中 文名字叫 雅虎通, 由世界著名搜索 引擎 Y ahoo推 出, 它 的最 新简体 中文 版本是 5. 5版。这些主流 的即时 通软件 拥有绝 大部分的 用户 群, 而且随着功能的完善, 服务 的加强, 对人们生活的影响将越 来越大, 因此对即时通软件的监控和通信协议分析变得越来越 重要。这些主流即时通软件的 协议格式各不相同, 由于即时通 软件公司出于自身利 益的考虑, 各自保守着各自的协议格式和 相 关通信 技术, 通 过提供 特色 的服务, 来 吸引 各自的 用户 群。 这种协议的不统一性 和不公开性, 严重束缚着即时通软件快速 发展, 也束缚着对这些软件的监控。因此对这些主流即时通通
网关采用双 网卡配置, 安 装 W in 2000 Server 操作系 统, 利 用 Server操作系统自带的 软件路 由器实 现路由 功能。其 他客 户机均使用 W indow s操 作系 统。同 时在 所有 的 PC 机上 预安 装 NA I公司的 Sn ifferpro 4. 7试用版软件。
2a
节拍层首标
02
SNAC 通道
ຫໍສະໝຸດ Baidu
30 a4
节拍数据包的顺序号
01 a2
节拍的数据长度
00 04
客户端基本消息交互服务 ( ICM B ) ID 号
00 06
发送通过服务器中转的消息的命令 ID 号
00 00
SNAC 标志位
00 02 00 06
会话 ID, 服务器与客户端连接的标志
6e df 24 00 le 26 00 00
2. 1 ICQ 消息数据包的分析
消息数据包主要 包括由客户 端发送 出去的 数据包 和客户 端接收的数据包两种 。在两个 客户端反复地发送消息, 在网关 上抓取这些数据包并 进行分析比较, 即可对固定字段和有规律 变化的字段有一个大 概的认识。
图 2是截获的一个应用层数据的分析示例, 该数据是从客 户端发送给服务器的 消息数据。为了便于分析, 将连续的二进 制串用换行符分开, 每行中的字节具有特定的意义 ( 图 2)。同 时根据各行字节之间 的联系又将数据组织为层, 每下一层总比 上一层 缩进两个字 节的长度, 如图 2所示, 可以看出 我们总共 划分了三层。
1 协议分析的环境配置
为了便于逐 一分析这些即时通软件的通信协议, 区别同一 子网的端与端通 信和不同子网端与端通信协议格式的不同, 我 们搭建简单的分 析实验平台, 为协议的分析提供必要的硬件和 软件支持。实验 环境 由四 台 PC 机和 一个 集线 器组 成。其 中 两台 PC 机与集线器 构成一个小 型的内 部局域 网, 通 过一台 作 为网关的 PC 机 连接到 具有 独立 IP 的 大型 局域 网中 (简 称 外 网 )。网关与另一台 PC 机都是外网的主机。配置如图 1所示。
2. 2 ICQ 文本消息传输协议
ICQ 功能强大, 因 此协议 非常 庞大, 在这 里只 介绍通 过分 析它的文本消息 传输过程得到的协议, 称它为文本消息传输协 议。显然这个协 议只 是 ICQ 协议 的一 个子 集, 而对 于即 时通 通信的监控正需 要这部分协议。
ICQ 是通过 TCP 有连接服务上传送数据的, 服务器端端 口 固定为 5190。在 T CP / IP 协议 基础上, ICQ 文本 消息传输 的应 用层又可 分 为 两 层, 即 节 拍 层和 SNAC 层。所 谓 节 拍, 就 是 ICQ 客户端与服务器端之间的一次交互的数据包。 SNA C是建 立在节拍层之上 的一个数据通信层, 它是客户端与服务器端交 互的基本通信单 元。对于 节拍层通道位是 2的情况, 表明节拍 层的下一层就是 SNAC 层。节拍 层的协议格式如图 3所示。
消息 ID号, 应答及从服务器返回该消息时使
用数据类型
00 02
数据类型
09
用户 ID号长度
33 30 31 35 34 34 32 36 36 用户 ID号
00 05
ICM B 消息类型标志
01 7c
消息的长度
。。。
如上长度的消息数据, 包括数据格 式、编 码
方式、字体信息以及消息内容等
图 2 一个发送给服务器的应用层消息数据分析示例
在节拍标志 2a之后 的一个 字节是 通道标 志, 通道根 据节 拍数据内容的 不同被 划分 为五种 , 分 别是: 01登 录信 息通 道, 02 SNACs通道, 03 出错信息通道, 04 断开连接信息通道, 05是 P ING 命令通道。
当客户端与 服务器端通过 通道 01建立链 接以 后, 用 户消 息只在通道 02 SNACs上传输, 只有当一 个底层 的节拍 错误发 生时, 才使用通道。 3发 送错 误消息; 当 打算 终止客 户端 与服 务器之间的 链接时 才利 用通道。 4 进行协 商。大部 分在 生命 周期内的事件处理都是通 过通道 02 进行 的, 因 此文本 消息只 能通过 02通道传输。当通道是 02时, 节拍层的数据 部分对应 的就是 SNAC层。 SNA C层的协议格式如图 4所示。
2005 年
地址, 通常 选择 IP 地址, 按 照实验 环境中分 配的 IP 地 址设置 该条件; 最后在客户端发送即时消息之前启动 Sn iffer工具的监 听功能, 它就能从大量的经过网关的数据包中提取出满足如上 条件的数据包, 为我们缩小了检索数据包的范围。
从捕获的数据包 中可以利用 Sn iffe r的协议 分析功 能取出 应用层的数据, 大部分主流即时通软件的应用层协议组织的数 据在网路上明文传输 , 我们 正是利 用了这 一点, 通过实 验环境 中的客户端之间有目 的地发送消息, 比较应用层数据体中固定 字节或者规律性字节 的含义, 总结出它们协议的格式。
A na lysis o f TextM essage T ransm itting Protocol in Popu lar InstantM essenger Softw are
L I Yuan- jie1, L IU W e-i feng1, 2, ZHANG Y u-qing2, L IANG L i1 ( 1. D ept1 of Compu ter Sc ience& T echnology, X i.an J iaotong Un iv ersity, X i. an Shanxi 710049, Ch ina; 2. N a tiona l C ompu terN e tw ork In tru sion P rotec tion Cen ter, G radua te S ch ool, Ch inese A cademy of Sciences, B eijing 100039, C hina)
Sniffer是捕获网络数 据报文 的一 种工具, 功 能强 大, 使用 方便。使用该工具时需要 进行简单的设置, 首先是确定将要抓 取的数据包的协议类型, 一般是基于 IP协 议的数据包; 其次是 数据包的源和目 的端 地址, 地址 一般 分为 硬件 网卡 地址 和 IP
# 244#
计算机应用研究
在第 三层 中可 以 观察 出数 据 是按 照 / 数据 类 型、数 据长 度、数据 体 0 的 格 式 组 织 数 据 的, 用 英 文 表 示 就 是 / T ype, Leng th, V alue0, 简称 T LV 格 式。利用 TLV 格 式组 织数据 非常 方便和高效, 尤其适用于可变长的数据。对于应用层数据体中 内容的组织一般都是采用 这种格 式。对于 节拍层, SNAC 通道 等协议特定名词 的解释在 2. 2中有详细说明。
收稿日期: 2004- 07- 01; 修返日期: 2004- 09- 06 基金项目: 国家 / 8630计划 资助项 目 ( 2003AA 142150); 中 国科 学院知识创新工 程方向 性项目 ( KGCX 2-106); 北京市 科技 计划 项目 ( H 020120090530)
信软件协议格式 的分析意义重大。
相关主题