微信流量分类
微信流量分类,嵩天 李玮 刘翼 珞世瑛,一 研究背景,微信有着广泛的用户群(全球6亿) 微信具有代表性(移动端APP工具) 微信流量对信令网的冲击性(信令资源的占用) 提升网络服务质量(QOS),二 微信分析,微信简介 腾讯公司推出的一款语音通讯软件,用户可以通过手机、平板、网页快速发送语音、视频、图片和文字 连接方式 CS结构的TCP长连接方式 端口及加密性 80,8080,443(多数) 加密(RSA非对称),一次连接 为避免频繁连接,微信采用类似HTTP协议的方式,只连接一次,用户后续行为都在这个连接下进行,持续时间较长 维持连接 即使用户不操作,在后台也会定时发送心跳包维持连接 消息推送方式 客户A向B推送消息,若对方在线则直达;若离线,则先由地方服务器缓存,当B上线时送达,三 识别微信,由于微信采用长连接的方式,所以会共享同一个四元组(TCP默认),识别微信只需找到微信流中的某个标识,采用DPI的方式寻找这个标识 分析工具 Wireshark 分析方法 单例研究,找出同一业务的公共字段 多例研究,通过单例研究的结果,带入多例中,找出总体的公共字段,即为微信的标识字段,,图1 微信特征提取,字段过滤工具 由于研究发现公共性在前16字节,L7-filter用于过滤 微信的标识字段 初步定性1,2,5,6,7,8,13,14,15字段可标识微信,DPI值为00,00,00,10,00,01,00,00,00 标识字段优化 可识别不代表最简,只有最简才最高效,通过逐一从后向前减少对比字段,得到最简序列:1,2,5,6,7 DPI值为00,00,00,10,00,继续缩减会产生假阳性MSNMS,大PDU,四 细分微信,从整体流中分离出各项微信业务,便于进一步研究工作 业务识别 从微信流中找到微信的某个业务,通过前面的方法得到第12字节可以标志业务,但由于业务在微信流中,分离出来仅字段不代表分离出业务 分类 总结微信业务的性质,分为3大类:短消息型,复合短消息型,长消息型,短业务的识别 2个具有DPI值的包(一正一反)和2次回应ACK为一次短业务 复合短业务的识别 一次业务可能有多个短业务复合,通过阈值t确定复合度,若短业务间隔小于t,则认为是同一个复合短业务 长业务的识别 包括主TCP脉冲和数据传送(另起的TCP连接)2个连接的识别 通过DPI值找到主TCP脉冲,然后根据相对位置定位数据传送,定位方式为包序列特征,找到数据传送,并通过复合度t排除无关的数据传送,从而识别出数据传送,五 实验结果分析,流量来源 实验室50G流量和互联网200G流量 编程环境 Win7下python,微信5.1版本 准确度 对52%的互联网流量有98%的准确度,六 总结,微信的通信方式为TCP的持续连接方式,通过公共字段标志其协议,并通过第12字段标志其业务类别,这种特性可能适用于所有移动通讯型APP 加密流DPI的可行性 提出了复合度t(阈值),用于表示流的接近程度 对脉冲式连接的各个脉冲给出了一个分离的方法,