一种针对飞信网络数据进行监控的方法与流程

文档序号:12278323阅读:267来源:国知局

本发明涉及信息安全技术领域,特别涉及一种针对飞信网络数据进行监控的方法。



背景技术:

随着科技的发展,人们对网络的依赖也越来越大,网络泄密问题也随之显现出来,各大公司,各种部门也不得不对职员的网络使用情况进行管控,防止职员泄露机密信息。

飞信是中国移动的综合通信服务,是融合语音(IVR)、GPRS、短信等多种通信方式,实现互联网、移动互联网和移动网间的无缝通信服务。

目前市面上也有很多的网络管控工具,大多数都是对电脑进行管控,且需在电脑上安装客户端,由客户端收集数据发送到监控端实现监控。这种方式就必然会有以下问题:1:客户端被卸载或禁用后就不会再起到监控作用;2:由于客户端需要在后台运行,不断向服务器发送数据必然会使耗电量增大,显然在移动设备上是不适用的。



技术实现要素:

本发明针对现有技术的缺陷,提供了一种针对飞信网络数据进行监控的方法,能有效的解决上述现有技术存在的问题。

一种针对飞信网络数据进行监控的方法,包括以下步骤:

S1:网络数据包采集;

通过winPcap提供的相应接口抓取用户使用网络过程中产生的数据包,再通过相应端口和标识或地址初步过滤,拿到飞信数据包;

S2:数据包处理;以下数据处理过程中创建startoffset记录数据偏移量,length记录属性长度,具体步骤如下:

S2.1:用户信息包处理;

S2.1.1:数据包标识判断,在偏移量0x03,长度为4处判断标识是否为“6E4D 7E 44”,是则执行步骤S2.1.2,否则不再解析结束所有流程。

S2.1.2:数据包第一位代表飞信数据包的标识信息长度5E,5E后0x02~0x19位为飞信数据包的标识信息。

扫描数据填充长度为5E,5E后0x02~0x19位为飞信数据包的标识信息。

S2.1.3:在扫描过程中,找到信息标识位位置,设N大于等于1,执行公式startoffset=1飞信数据包的标识信息长度+94飞信数据包的标识信息+24*N个字节+1,通过用户信息包标识位“02 08”确定数据包是否正确,若找不到该标识位说明该数据包不是用户信息数据包,不再解析结束所有流程,若找到则执行S2.1.4;

S2.1.4:用户信息解析,在偏移startoffset=startoffset+0x17位置处是用户第一个属性值标识开始,以该位置开始获取用户手机号码、用户邮箱、用户昵称、用户生日的标识位、属性长度、属性值;

S2.2:好友信息包处理;

S2.2.1:飞信包标识判断,判断方法与S2.1.1相同;

S2.2.2:获取数据包长度,数据包前两位偏移量startoffset=0x00为数据包长度;

S2.2.3:好友信息包标识判断;

偏移量startoffset=0x1a,通过判断startoffset=startoffset+6处的值减2是否为8的倍数来确定是否为好友信息包,若不是则不再解析结束所有流程;

S2.2.4:好友信息解析,在偏移startoffset位置处获取用户第一个属性值标识,以该位置开始按顺序获取好友邮箱、好友账号、好友手机号、好友昵称的标识位、属性长度和属性值;

S2.3:文本发送协议包处理;

S2.3.1:飞信包标识判断,方法与S2.1.1相同;

S2.3.2:获取数据包长度,方法与S2.2.2相同;

S2.3.3:文本发送协议解析,在偏移startoffset=0x1a位置处获取用户第一个属性值标识;以该位置开始按顺序获取文本信息类型、文本信息内容、文本信息状态、信息MD5值、文本接收者邮箱、文本发送者昵称、发送者邮箱和bubbleId的标识、属性长度和属性内容;

S2.4:文本接收协议包处理;

S2.4.1:飞信包标识判断,方法与S2.1.1相同;

S2.4.2:获取数据包长度,方法与S2.2.2相同;

S2.4.3:文本接收协议包标识判断,偏移量为startoffset=0x1a,判断startoffset=startoffset+6处的值减2是否为8的倍数来确定是否为文本接收协议包,若是执行S2.4.4,若不是则结束;

S2.4.4:文本接收协议解析,在偏移startoffset位置处获取用户第一个属性值标识;分别获取信息MD5值、发送者邮箱获取、信息内容获取、信息类型获取、信息确认MD5值获取、信息状态获取、发送者昵称获取、接收时间获取、bubbleId的标识、属性长度和内容;

S2.5:文件发送协议包处理,文件发送会分为多个包传输,包括文件检测包和文件上传数据包;

S2.5.1:文件检测包,在文件发送过程中会先发送一个HTTP GET包检测文件在服务器中是否存在,目标地址\CheckFileExist,将收到检测结果,

若返回<results resultcode="200">代表存在,存在则返回在下地址,

若返回<results resultcode="404">代表不存在,则需上传文件,协议为HTTP-POST,格式如下:

“POST/ncfp/blockupload?id=04978c96da16b7b10537b96c3a6e19fa&filesize=129130&range=0-65536&tid=1253454353&type=IMG&sp=1”

及POST协议基本参数;

S2.5.2:文件拼接,根据传输信息中获得的range值将所有id值相同的文件数据按顺序拼接组成完整文件;

S2.6:文件接收协议包处理;

S2.6.1、图片、视频缩略图包处理;

以HTTP-GET方式提交下载请求,请求地址ncfp/blockdownload,服务器返回文件类型“Content-Type”和文件长度“Content-Length”和文件偏移量“x-feinno-range”;接着就是完整的缩略图文件数据。

S2.6.2:原文件包处理;

以HTTP-POST方式提交下载请求,请求地址ncfp/blockdownload,服务器返回HTTP数据格式与缩略图格式相同,同样每次最多也传输65536个字节,所以文件过大就就会分多个POST数据包进行传输,直到传输完成;

S2.6.3:文件拼接,根据传输信息中获得的x-feinno-range值将所有id值相同的文件数据按顺序拼接组成完整文件;

S3:将S2对飞信不同数据包的处理结果封装为相应的JSON数据格式方便其他程序调用展示。

作为优选,所述S2.1.4中解析用户信息的具体方法如下:

S2.1.4.1:用户手机号解析;

手机号属性标识获取,0x2A为手机号属性标识;

手机号属性长度获取,在属性标识后一位,偏移量startoffset=startoffset+1即为手机号长度length=0x0B;

手机号属性值获取,在属性长度后一位,偏移量startoffset=startoffset+1后十一位就是用户的手机号;

S2.1.4.2:用户邮箱解析、用户昵称解析和用户生日解析的方法如下:

属性标识获取,在偏移startoffset=startoffset+上一个属性长度length位置处得到下一个标识;

属性长度获取,在属性标识后一位,偏移量startoffset=startoffset+1即为用户属性长度length;

属性值获取,在属性长度后一位,偏移量startoffset=startoffset+1后就是属性值;

其中0x32为邮箱属性标识;其中0x42为用户昵称属性标识;其中0x62为用户生日属性标识。

作为优选,所述S2.2.4中解析好友信息的好友邮箱解析、好友账号解析、好友手机号解析和好友昵称的解析方法如下:

属性标识获取,在偏移startoffset=startoffset+上一个属性长度length位置处得到下一个标识;

属性长度获取,在属性标识后一位,偏移量startoffset=startoffset+1即为用户属性长度length;

属性值获取,在属性长度后一位,偏移量startoffset=startoffset+1后就是属性值;

需要注意,好友邮箱后偏移5个多余字节是好友账号;

其中0x1a为好友邮箱属性标识;其中0x32为好友账号属性标识;其中0x3a为好友手机号属性标识;其中0x4a为好友昵称属性标识。

作为优选,所述S2.3.3中文本发送协议信息获取方法如下:

属性标识获取,在偏移startoffset=startoffset+上一个属性长度length位置处得到下一个标识;

属性长度获取,在属性标识后一位,偏移量startoffset=startoffset+1即为用户属性长度length;

属性值获取,在属性长度后一位,偏移量startoffset=startoffset+1后就是属性值;

其中在获取标识时,0x1a为文本信息类型属性标识,标识0x12为信息内容属性标识、标识0x2a为信息状态属性标识、标识0x22为信息MD5值属性标识、标识0x0a为接收者邮箱属性标识、标识0x32为发送者昵称属性标识、标识0x3a为发送者邮箱属性标识、标识0x5a为bubbleId属性标识。

作为优选,所述S2.4.4中文本接收协议信息获取方法如下:

属性标识获取,在偏移startoffset=startoffset+上一个属性长度length位置处得到下一个标识;

属性长度获取,在属性标识后一位,偏移量startoffset=startoffset+1即为用户属性长度length;

属性值获取,在属性长度后一位,偏移量startoffset=startoffset+1后就是属性值;

其中在获取标识时,0x0a为信息MD5值属性标识、0x0a为发送者邮箱属性标识、0x12为信息内容属性标识、0x1a为信息类型属性标识、0x22为信息确认MD5值属性标识、0x2a为信息状态属性标识、0x32为发送者昵称属性标识、0x5a为接收时间属性标识、0x62为bubbleId属性标识。

与现有技术相比本发明的优点在于:1、无需安装客户端,2、无需知道用户飞信密码,3、通过抓取、解析路由器上收发的网络数据包实现监控,保护隐私数据的信息安全。

具体实施方式

为使本发明的目的:技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。

一种针对飞信网络数据进行监控的方法,包括以下步骤:

S1:网络数据包采集;

每个应用在网络数据传输过程中都会定制自己独有的一套协议规范,不同的协议规范都存在一些特定标识;

飞信一般数据包协议TCP包括用户信息包(端口:8023)、好友信息包(端口:80)、文本聊天信息包(端口:80),标识为“6E 4D 7E 44”,偏移量0x03。

飞信文件收发数据包协议TCP_HTTP_POST包括图片、语音、视频等文件(端口:80),其中发送目标地址为:/ncfp/blockupload,接收源地址为:/ncfp/blockdownload。

一般通过winPcap提供的相应接口抓取用户使用网络过程中产生的数据包,再通过以上相应端口和标识或地址初步过滤,拿到飞信数据包。

S2:数据包处理;

以下数据处理过程中创建startoffset记录数据偏移量,length记录属性长度。

S2.1:用户信息包处理;

S2.1.1:飞信包标识判断,在偏移量0x03,长度为4处判断标识是否为“6E4D 7E 44”,是则执行步骤S2.1.2,否则不再解析结束所有流程。

S2.1.2:扫描数据填充长度为5E,5E后0x02~0x19位为飞信一般数据包的标识信息。

S2.1.3:在扫描过程中,用户信息包标识位02 08判定

找到信息标识位位置startoffset=1(填充数据长度)+94(填充数据)+24*N(N大于等于1)个字节+1,通过用户信息包标识位确定数据包是否正确,若找不到该标识位说明该数据包不是用户信息数据包,不再解析结束所有流程,若找到则执行S2.1.4。

S2.1.4:用户信息解析;

在偏移startoffset=startoffset+0x17位置处是用户第一个属性值标识开始,且每个标识减2都为8的倍数,每个标识后一位代表属性长度,接着是属性值,且每个属性是连续存储的。

S2.2:好友信息包处理;

S2.2.1:飞信包标识判断,判断方法与同S2.1.1相同;

S2.2.2:数据包长度;

数据包前两位偏移量startoffset=0x00为数据包长度,为小端格式(小端格式little endian低位在前、与之对应的大端格式big endian高位在前,在转换为十进制长度前要先将小端格式转换为大端格式再换算),如c1 00->0x00c1=193。

S2.2.3:好友信息包标识判断;

偏移量startoffset=0x1a,长度5为好友信息数据包的一些标识,内容不定,通过判断startoffset=startoffset+6处的值减2是否为8的倍数来确定是否为好友信息包。不是则不再解析。

S2.2.4:好友信息解析,在偏移startoffset位置处获取用户第一个属性值标识。

S2.2.4.1:好友邮箱解析,获取标识位、属性长度和属性值,获取方法与S2.1.4.2相同,其中0x1a为好友邮箱标识;

好友邮箱后偏移5个多余字节为好友账号;

S2.2.4.2:好友账号解析,获取标识位、属性长度和属性值,获取方法与S2.1.4.2相同,其中0x32为好友账号属性标识;

S2.2.4.3:好友手机号解析,获取标识位、属性长度和属性值,获取方法与S2.1.4.2相同,其中0x3a为好友手机号属性标识;

S2.2.4.4:好友昵称解析,获取标识位、属性长度和属性值,获取方法与S2.1.4.2相同,其中0x4a为好友昵称属性标识。

S2.3:文本发送协议包处理;

S2.3.1:飞信包标识判断,方法与S2.1.1相同;

S2.3.2:获取数据包长度,方法与S2.2.2相同;

S2.3.3:文本发送协议解析,在偏移startoffset=0x1a位置处获取用户第一个属性值标识;分别获取文本信息类型、文本信息内容、文本信息状态、信息MD5值、文本接收者邮箱、文本发送者昵称、发送者邮箱和bubbleId的标识、属性长度和内容,获取方法与S2.1.4.2相同,其中在获取标识时,0x1a为文本信息类型属性标识,标识0x12为信息内容属性标识、标识0x2a为信息状态属性标识、标识0x22为信息MD5值属性标识、标识0x0a为接收者邮箱属性标识、标识0x32为发送者昵称属性标识、标识0x3a为发送者邮箱属性标识、标识0x5a为bubbleId属性标识。

S2.4:文本接收协议包处理;

S2.4.1:飞信包标识判断,方法与S2.1.1相同;

S2.4.2:获取数据包长度,方法与S2.2.2相同;

S2.4.3:文本接收协议包标识判断,偏移量startoffset=0x1a,长度4为文本接收信息数据包的一些标识,通过判断startoffset=startoffset+6处的值减2是否为8的倍数来确定是否为好友信息包;

S2.4.4:文本发送协议解析,在偏移startoffset位置处获取用户第一个属性值标识;分别获取信息MD5值(MD5值后偏移3个字节为发送者邮箱)、发送者邮箱获取、信息内容获取、信息类型获取、信息确认MD5值获取、信息状态获取、发送者昵称获取、接收时间获取、bubbleId的标识、属性长度和内容,获取方法与S2.1.4.2相同,其中在获取标识时,0x0a为信息MD5值属性标识、0x0a为发送者邮箱属性标识、0x12为信息内容属性标识、0x1a为信息类型属性标识、0x22为信息确认MD5值属性标识、0x2a为信息状态属性标识、0x32为发送者昵称属性标识、0x5a为接收时间属性标识、0x62为bubbleId属性标识。

S2.5:文件发送协议包处理,文件发送会分为多个包传输,包括文件检测包和文件上传数据包;

S2.5.1:文件检测包;

在文件发送过程中会先发送一个HTTP GET包检测文件在服务器中是否存在,目标地址\CheckFileExist,将收到检测结果,

若返回<results resultcode="200">代表存在,存在则返回在下地址,

若返回<results resultcode="404">代表不存在,则需上传文件,协议为HTTP-POST,格式如下:

“POST/ncfp/blockupload?id=04978c96da16b7b10537b96c3a6e19fa&filesize=129130&range=0-65536&tid=1253454353&type=IMG&sp=1”

及POST协议其他的一些基本参数;

其中:id为文件MD5值,filesize为文件总大小,range为本次传输文件偏移位置,type为文件类型(包括IMG、VIDEO、AUDIO等),后面接着是即为文件内容。POST包每次最多传输65536个字节,所以文件过大就就会分多个POST数据包进行传输,直到传输完成。

S2.5.2:文件拼接,根据传输信息中获得的range值将所有id值相同的文件数据按顺序拼接组成完整文件。

S2.6:文件接收协议包处理

S2.6.1、图片、视频缩略图包处理

以HTTP-GET方式提交下载请求,请求地址ncfp/blockdownload,服务器返回文件类型“Content-Type”和文件长度“Content-Length”和文件偏移量“x-feinno-range”;接着就是完整的缩略图文件数据。

S2.6.2:原文件包处理;

以HTTP-POST方式提交下载请求,请求地址ncfp/blockdownload,服务器返回HTTP数据格式与缩略图格式相同,同样每次最多也传输65536个字节,所以文件过大就就会分多个POST数据包进行传输,直到传输完成。

S2.6.3:文件拼接,根据传输信息中获得的x-feinno-range值将所有id值相同的文件数据按顺序拼接组成完整文件。

S3:将S2对飞信不同数据包的处理结果封装为相应的JSON数据格式方便其他程序调用展示。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

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