邮件监测系统在POP3基础上的研究与实现

论文价格:免费 论文用途:其他 编辑:zhouting 点击次数:126
论文字数:28192 论文编号:sb2014091221292410422 日期:2014-09-13 来源:硕博论文网

第一章 绪论

1.1 课题背景及意义
随着互联网 Internet 的发展,电子邮件逐渐普及并成为互联网上最广泛的应用之一。但互联网上垃圾邮件泛滥成灾,且日益激烈,同时,在信息化的日益发展的今天,单位公司的内部资料、商业机密等,很可能会通过邮件被泄漏。
根据中国互联网协会反垃圾邮件中心的 2013 年第一季度最新统计,中国网民每周收到垃圾邮件的数量为 14.6 封,垃圾邮件占比 37.37%,企业邮箱的综合 UEI为 63.2,用户收到最多的是欺诈类、网站推广类和病毒类垃圾邮件[1]。网络的迅速发展、网络通信成本降低给垃圾邮件、钓鱼邮件、病毒邮件群发奠定基础,邮件群发工具、黑客攻击、病毒泛滥等现象,为发送垃圾邮件提供了便捷。
同时,在竞争日益激烈的商业背景下,由于邮件系统自身的安全缺陷及企业员工安全防范意识薄弱,电子邮件成为有意或无意地泄漏信息的载体。企业员工在缺乏安全防范意识的情况下,通过邮件进行各种违反保密规定的操作,导致公司内部资料、知识产权资料被泄漏,给公司带来无法挽回的损失。
邮件不再仅以顺利传输为目标,还必须考虑如何防止邮件被截取,涉密信息泄漏等。因此,企业需要拥有一种手段,能够用来监控企业内部网络与外界网络的邮件通信情况,对企业内部的各种业务往来的邮件进行存储和审计追查,可以防止知识产权信息、企业资料的泄漏,从一定程度上保证企业的利益。同时为企业内部制造良好的邮件环境,对来自外部网络的垃圾邮件、病毒邮件、钓鱼邮件进行监控,为反垃圾邮件服务器的配置提供依据,保证了企业用户的邮箱环境安全,同时确保企业内部的邮件服务器的稳定运行。
综上可见,自主开发一个高可靠、可用的邮件监控系统是非常重要的。研究开发基于 POP3 的邮件监测系统,能够对接收的邮件系统进行过滤并实施审计,将发送垃圾邮件的邮箱列入黑名单中,通过设置敏感关键词,对存在关键词的邮件进行监测,保存邮件原文信息。同时能够使企业员工更好的使用电子邮件,对特定的发送人或收件人的邮箱或邮件进行业务交互的监控,统计出企业内部接收的垃圾邮件的特点,从而为企业内部进行反垃圾邮件的配置提供依据,为企业创造更安全的邮件环境,为企业更好的进行网络信息化建设奠定基础。
.......................................

1.2 国内外研究现状
在邮件监控领域,很多国内外的科研人员对邮件监控技术做了研究与探讨,广泛重视,并己取得了一定的成果,已有一些成型的邮件监测系统。
国内的邮件过滤系统一般都是共享软件,需要用户购买,一般用来监测局域网内的邮件的信息。邮件监测系统大部分都是在企业网络出口处工作,对进出企业网络出口处的数据包进行捕获、分析。
例如,梭子鱼垃圾邮件防火墙[2],EQManager 邮件安全网关[3],亿邮反垃圾邮件网关,启明星辰天清防垃圾邮件网关[4]等产品,但邮件网关集成在硬件服务器中,不仅价格较为昂贵,而且以直路的方式对邮件进行拦截,在应用时配置复杂,多道检测机制过于复杂,降低检测效率,同时可能造成误判等情况,从而导致企业重要邮件被误判为垃圾邮件,这样会给企业造成一定的损失。
国外的邮件监测系统,例如美国联邦调查的 DCSl000,其具备监视可疑的电子邮件功能,监视识别可疑的 IP 地址。美国国家安全局的 “阶梯(Echelon)”的计划,可对全球传递的电子邮件、传真、电话进行监测[5]。DCSl000 及 Echelon等系统是采用旁路监听的模式。
国内外许多学者、科研人员在研究邮件监测相关关键技术,优化邮件监测系统功能,提高邮件监测系统的性能。
北京邮电大学的王极等研究实现了采用人工智能和自然语言处理技术来实现判定电邮内容所讨论的主题类别,具有内容的监控和过滤的电邮监控系统,实现高质量的精确过滤[6]。
电子科技大学的梁荣金设计并实现了基于贝叶斯算法的垃圾邮件过滤系统[7],应用于企业内部的垃圾邮件监控。
大连理工大学的张宝伟提出了基于旁路侦听技术邮件检测系统,采用旁路方式捕获网络中通信的数据流,进行数据包重组,并实现应用层的协议还原[8]。旁路监听系统捕获的数据包,通过协议栈的 IP 数据包的重组和数据流的协议还原,生成应用层协议的数据包,并采用高效的关键词匹配算法进行检测识别,实现邮件监测功能。
........................................

第二章 基础理论概述与关键技术研究现状

2.1 引言
本章阐述基于 POP3 的邮件监测系统研究开发的理论基础及实现过程中用到的相关关键技术,重点从并行化线程池调度机制、文本敏感关键词的模式匹配等关键技术的研究现状进行分析总结。
.........................................

2.2 相关理论及系统开发技术
2.2.1 POP3 协议
POP3 协议是本课题研究实现的基础,只有对 POP3 协议有了充分的了解才能实现基于 POP3 的邮件监测系统。POP3 属于 TCP/IP 协议族,根据 RFC 1939 可知,POP3 协议可以让邮件用户从邮件服务器上把邮件存储到客户端处,也可以删除在邮件服务器上的邮件[9]。
POP3 协议包含了三种状态:认证、处理、更新状态。在认证阶段,客户端与 POP3 服务器建立连接后,客户端发送邮箱用户名和密码信息到 POP3服务器端进行解析认证,当通过 POP3 服务器的认证后,则进入处理状态,在客户端可以通过 list 命令读取相关邮件,当客户端发出 quit 命令,则进入更新状态,开始下载未处理的邮件到客户端处,最后客户端才与服务器的断开连接。如图 2-1 所示:

2.2.2 MIME 邮件
MIME 是电子邮件的重要内容规定和描述电子邮件信体格式,其全称是“Multipurpose Internet Mail Extensions”多用途网际邮件扩充协议。 MIME支持非 ASCII 字符、二进制附件等格式邮件,是当前标准的电子邮件格式[10]。
一封普通的电子邮件中包含邮件头及邮件体等信息,MIME 格式邮件头主要字段如下:
MIME-Version:这个头提供了所用 MIME 的版本号。
From:发件人。
To:收件人。
Cc:抄送人。
Subject:主题。
Date:邮件时间。
Received:邮件传输路径。
Content-Type:数据的类型。
Content-Transfer-Encoding:邮件内容的传输编码,用于信息解码。
2.2.3 Libnids 简介
Libnids 是课题开发后台捕包过程中使用的工具,它提供了强大的数据包捕获重组功能。Libnids 是基于 Libcap 和 Libnet 而开发的,Libnids 的主要功能包括捕获网络数据包、IP 数据包重组、TCP 数据流重组以及端口扫描攻击检测和异常数据包检测等[11]。
利用 Libnids 可以在数据包捕获时合理地设计并设置相应的过滤规则,并完成对所捕获的数据包的分析。同时,Libnids 提供了 TCP 数据流、IP 分片的重组功能,所以 Libnids 可以分析过滤面向连接的网络数据包。在本课题的 POP3 邮件监测系统中使用 libnids,主要利用它的 TCP 数据流的重组功能,通过 TCP 数据流的重组后,过滤 POP3 110 端口信息,得到应用层 POP3 协议数据信息,从而实现对 POP3 邮件协议数据包的识别。
.......................................

第三章 POP3 邮件监测系统需求分析与设计............................................................ 13 
3.1 需求分析.................................................................. 13 
3.1.1 用户需求 ....................................................... 13
3.1.2 功能需求 .................................................. 13
3.2 系统总体框架......................................................... 14 
3.2.1 系统网络结构 ................................................ 15
3.2.2 系统体系结构 ....................................... 15
3.3 系统前台设计............................................................. 16 
3.4 系统后台设计............................................................... 21 
3.4.1 后台主控模块 ..................................................... 22
3.4.2 数据包捕包模块 ........................................................ 23
3.4.3 POP3 协议解析模块........................................................ 24
3.4.4 邮件原文解析线程池 .................................................. 24
3.4.5 邮件敏感关键词检测模块 ............................................... 32
3.4.6 病毒邮件扫描模块 .............................................. 35
3.5 本章小结......................................................... 36 
第四章 POP3 的邮件监测系统的实现................................................ 37 
4.1 开发环境及工具.............................................................. 37 
4.1.1 Linux 操作系统和 GCC 简介 ....................................................... 37 
4.1.2 前台页面开发工具 .................................................. 37
4.2 系统实现............................................................... 37 
4.2.1 前台页面设计与实现 ............................................ 37 
4.2.2 后台主控模块实现 ................................................... 41
4.2.3 libnids 捕包模块实现 ....................................................... 42
4.2.4 POP3 协议及邮件原文解析的实现........................................... 44
4.2.5 邮件敏感关键词检测的实现 ................................................ 48 
4.2.6 病毒邮件过滤的实现 .......................................................... 50
4.3 本章小结..................................................................... 52 

第五章 POP3 的邮件监测系统的测试和应用场景

5.1 引言
软件工程最后一个环节是进行系统测试,也是保证软件系统的质量的关键环节。本章首先为了证明所提出的的两个关键技术解决方案的可行性,需对所提出的关键技术解决方案进行模块方案局部测试,然后再进行系统关键功能的测试,最后给出了本课题研究的系统的应用场景。

5.2 基于信息熵的线程池调度技术测试
5.2.1 测试实验环境
该模块的测试采用对比实验的方式进行。
测试的硬件环境有 1 台高性能服务器(双路四核,CPU 为 Intel,主频为 2.8G,网卡:2 块千兆网卡,内存:2G),客户机普通 PC:5 台。
软件环境:linuxAS 5.0,测试工具主要有 Foxmail 邮件客户端、邮件群发器。
5.2.2 测试过程
该模块的测试,主要是将基于信息熵的线程池调度技术与基于轮询的线程池调度技术进行对比,对大量待处理的邮件原文,用两种不同策略的线程调度器进行任务分发,线程池并发 10 个邮件原文解析线程,用邮件群发器模拟大量的邮件发送,在本次的实验中,不断接收邮件群发器发送的邮件原文,并写入线程池的待处理的邮件原文队列,分别统计两种不同的策略,在群发相同大小的邮件和不同大小的邮件情况下,平均处理耗时对比。
1)在高性能服务器端,启动邮件接收监听程序,并初始化基于信息熵的调度技术的线程池的参数。
2)在 5 台客户端普通 PC 机器上,使用邮件群发器分别发送 2000 封邮件,大小为 10k。
3)统计服务器端接收到每一封邮件后,处理邮件的平均消耗的时间。
4)修改线程池的调度策略后,采用基于线程轮询的调度策略,再次重复步骤1-3。
5)在步骤 2)中,使用邮件群发器发送邮件大小 10-100K 之间的大小不等的邮件,重复上述实验过程,分别记录两种不同策略下的邮件原文解析的平时耗时。
5.2.3 测试结果与分析
根据统计学方法,将基于信息熵的线程池调度与基于线程轮询的线程池调度在置信区间为 95%时进行数据分析,两种不同策略的邮件处理平均耗时结果如表5-1 所示。

从上述统计分析结果可以看出,当邮件大小相等的情况下,基于线程轮询的调度要略优于基于信息熵的线程池调度方法,对于线程轮询的方法,按照线程池中的多个邮件原文解析线程依次轮询分配任务,当每次分配的任务大小一致情况下,基于线程轮询的调度能确保线程池的线程均匀分配,实现真正的并发线程处理,基于信息熵的线程池通过信息熵得到每个线程的综合属性值,选择综合属性值最高的线程。
当每次分配的任务大小不一致情况下,基于信息熵的线程池调度明显优于基于线程轮询的调度方法,因为基于线程轮询的调度方法不考虑每个邮件原文解析线程实际的任务处理量和每个任务的处理耗时,可能导致某些线程的任务缓存环中的堆积较多邮件大小较大的任务,而其他线程则可能分配到邮件大小较小的任务,可以迅速处理完,然后线程处于空闲状态,两种不同的线程池调度策略,在邮件处理的平均耗时中,主要的耗时差异在于某些邮件原文解析线程处理高负荷状态,导致任务缓存环中的邮件在环中等待处理的耗时较长。这样实际上到测试实验后期实际在处理任务的线程可能只有 2-4 个,没有实现真正的多线程并发,线程池任务分配不均,整体并发度不高,线程资源的利用率降低。
综上所述,在实际应用环境中,每封邮件的大小肯定是不一致的,基于信息熵的线程池调度方法将占优。
........................................

第六章 总结与展望

随着互联网 Internet 的发展,电子邮件逐渐普及并成为互联网上最广泛的应用之一。但互联网上垃圾邮件泛滥成灾,且日益激烈,同时,在竞争日益激烈的商业背景下,由于邮件系统自身的安全缺陷及企业员工安全防范意识薄弱,电子邮件成为有意或无意地泄漏信息的载体。企业员工在缺乏安全防范意识的情况下,通过邮件进行各种违反保密规定的操作,导致公司内部资料、商业机密被泄漏,给企业带来巨大的损失。因此,研究开发基于 POP3 的邮件监测系统是十分必要的,企业需要拥有一种手段,能够用来监控企业内部网络与外界网络的邮件通信情况,对各种业务邮件进行审计,这在一定程度上可以防止知识产权信息、内部资料的泄漏,从一定程度上保证企业的利益。
本文在分析课题关键技术的研究现状的基础上,结合 POP3 协议和邮件格式的特征,以提升基于 POP3 的邮件监测系统的整体性能为目的,提出了一种基于信息熵的线程池调度技术与基于多模式匹配的邮件内容监测机制,研究了基于 POP3的邮件监测系统的系统总体设计和各模块设计方案,并详细阐述了基于 POP3 邮件监测系统具体实现及测试,并给出了典型的应用场景。本文所取得的成果总结如下:
1、本文提出了一种基于信息熵的线程池调度方法,针对实现并行化邮件原文解析线程,结合信息熵的多属性决策模型和邮件解析线程池,设计独立的任务缓存环,动态选择最适合处理新的邮件原文的线程。通过对比基于线程轮询的线程池调度与基于信息熵的线程池调度的效果,说明所提出的方法适合于实际的邮件监测环境,可提高 POP3 邮件监测系统的整体处理能力,进一步提升邮件原文解析线程池的并行化程度。
2、本文将多模式匹配 AC 算法应用于邮件监测关键词匹配领域,提出了基于多模式匹配 AC 算法的邮件内容监测机制,高效进行文本敏感关键词的定位匹配。通过对 AC 算法的存储空间消耗和文件匹配时间消耗等指标的实验,证明多模式匹配AC算法可以高效的完成POP3邮件监测系统中的邮件原文敏感关键词的识别和检测。
虽然课题工作中取得了一定的进展,但本课题的研究还有一些亟待完善和改进的地方,针对 POP3 的邮件监测系统,进一步的研究包括:
1、研究 POP3 的邮件监测系统的多模式匹配算法的优化,当模式集合高达上百万后,研究降低多模式匹配 AC 算法的空间存储消耗。
.........................................
参考文献(略)


QQ 1429724474 电话 15800343625