EDN China > 设计实例 > 工业电子 > 网络与总线 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 即时通信监控系统的设计与实现

计算机技术与发展 严华 蔡瑞英?? 2011年01月06日 ?? 收藏0

  随着科技的发展和计算机网络的普及,即时通信软件已逐渐融人人们的生活。即时通信软件为个人和企业提供了便捷、快速、高效的沟通方式。常用的即时通信软件有微软的MSN Messenger、腾讯QQ、Googletalk等。即时通信技术在给个人及企业带来高效便捷沟通的同时也产生了一系列的安全问题。随着即时通信软件的普及和用户数量的快速增长,其已成为*和黑客攻击的主要对象。对于企业而言,即时通信技术使得员工的行为更加难以控制,容易导致泄露机密、窃取资料等事件的发生,这将给企业造成无法估量的损失。针对中小规模企业网对即时通信安全的实际需求,对企业广泛使用的MSN Messenger进行了协议分析,并在此基础上设计实现了一个基于网络嗅探技术的MSN协议监控分析系统——MSNAnalyzer。该系统可以对企业内部网络进行实时监控,监督员工的上网行为,预防重要资料泄露等情况的发生,保护企业的信息安全,减少不必要的经济损失。

  1、体系结构

  该监控系统采集企业网络出口处的所有数据帧,通过对帧的IP地址进行分析提取出被监控客户机的数据帧并以一定的格式保存到文件中。然后,从文件中读取数据帧并将数据帧交给协议分析处理模块处理,处理后的结果以文件的形式保存在磁盘中。图1所示为该系统的总体结构示意图。图中,Sniffer是运行MSNAnalymr 程序的主机,Clientl、Client2、Client3为内网主机。

系统体系结构

图1 系统体系结构

  MSNAnalyzer工作的基本过程为:

  (1)基于Sniffer技术从网络总出入口处采集网络数据(抓包)。

  (2)存储数据帧。

  (3)提取数据帧并进行分析。

  根据分析,系统实现模型如图2所示。

系统总体实现模型及模块划分

图2 系统总体实现模型及模块划分

  2、数据采集及存储

  系统采用基于网络嗅探技术的数据采集方法,以WinPcap 4.0.1作为开发工具,Windows平台下使用WinPcap从网络适配器嗅探数据十分方便,图3是使用WinPeap捕获网络数据包的基本流程。

  使用WinPcap开发应用程序除可以捕获数据包外,最大的优点在于WinPcap可以对数据包进行过滤。WinPeap从网络适配器上嗅探到的是最原始的数据帧,这包括了所有流经的数据。如果不对数据包进行相应的过滤,将会捕获到许多无关的数据,这会增加系统的负担,使系统工作效率降低。

 WinPcap数据采集流程

图3 WinPcap数据采集流程

  在数据采集之后,采用什么样的存储策略来存储数据,以最大限度地保证采集到的网络数据包(Pack.et)不丢失,是系统设计中必须面对的一个重要问题。网络丢包的原因可能有很多,包括内存缓冲技术、磁盘I/O能力、*滤及处理技术、数据流量大小、网络接口性能、CPU处理能力等诸多方面。

  网络丢包的指标一般采用丢包率(Rate of PacketLoss,RPL)。计算公式为:L=((发送的数据包数一接收到的数据包数)/发送的数据包数)×100%。

  众所周知。频繁的磁盘I/O显然会影响到系统的性能和效率,这在大的数据流量下尤为明显。为了避免频繁的磁盘I/O,需要在数据存储时引入内存缓冲处理技术。在基于WinPcap的网络数据采集中,系统使用了多级内存缓冲,内核缓冲器和用户缓冲器的大小分别设置为6MB和1MB,并设置内核缓冲器和用户缓冲器之间一次传送的最小数据块的大小为512kB。

  3、数据分析与处理

  数据分析与处理分为四部分。首先是Ethernet数据帧处理,主要完成链路层数据验证、拆包,并将数据提交给IP层进行处理。IP数据报的处理主要完成IP层数据验证、拆包,并将数据提交给传输层进行处理。TCP分组的处理主要完成TCP层数据的验证、拆分及TCP重复和无序分组的处理,完成 TCP会话重建,并将重组后的应用层数据提交至协议分析层处理。协议分析主要完成应用层数据和最终用户数据的处理。对应用层数据主要进行命令解析和协议数据重组,对最终用户数据的处理包括聊天信息的提取、显示图片和自定义表情的提取、文件传输的提取等。MSNP协议分析模型如图4所示。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

即时通信? 监控系统? MSNAnalyzer?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈