《互联网垃圾邮件防御系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《互联网垃圾邮件防御系统的设计与实现毕业论文.doc(41页珍藏版)》请在三一办公上搜索。
1、本科毕业论文(设计)论文题目: 互联网垃圾邮件防御系统的设计与实现 学生姓名: 学 号: 0905290223 专 业: 软 件 工 程 班 级: 0902 指导教师: 完成日期: 2013年 5月 20日互联网垃圾邮件防御系统的设计与实现内容摘要近年来,传统的邮件业务相当大的被电子邮件所取代,电子邮件成为了人们通信的越来越重要的手段。但是随着电子邮件本身固有的缺陷,以及软件易于复制和传播的特点,导致了互联网上垃圾邮件的泛滥,占用网络资源,浪费人们的宝贵的时间,造成了巨大的人力财力的浪费。本课题正是在这样的背景下展开,借此来减少垃圾邮件的传播,改善网络环境。反垃圾邮件系统通过设置黑白名单,将白
2、名单用户的邮件定义为可信任邮件,将黑名单用户的邮件定义为垃圾邮件;除此之外的用户则需要对邮件内容进行过滤,垃圾邮件的判断,主要是从敏感关键字来判别(目前的纯客户端反垃圾邮件多数基于这一点来做)。从而减轻了网络的负荷,减少了用户的负担。关键词:垃圾邮件 反垃圾邮件 黑名单 举报 开放转发Anti-Spam systemAbstractRecently, the traditional mail service is largely replaced by email service which is provided by Internet. Email is becoming a more a
3、nd more important means in interactions among people. However, the inherent defect of emails that they are easily copied and transmitted leads to the flooding of spam emails, which take the precious band width, and waste much of peoples time, much money and much man power.In this stage, our program
4、is aiming at retrieving a clean network by setting up black or white lists. The determination of spam mainly depends on the counts of reporting times of spam emails. Optional rules are judged by sensitive key words (many of current anti-spam tools are based on this).Finally, Processing Center releas
5、es the black list to Internet Service Providers, which filter the emails from those addresses in the black lists. Thus, the source of spam emails was blocked, so the burden of networks was alleviated, help users have a better service experience.Key words: spam-emails anti-spam black list report open
6、-relay目 录一、绪论1(一)课题背景1(二)国内研究状况分析1二、开发环境简介3(一)python简介3(二)python下载安装3(三)pyqt简介4(四)pyqt下载安装4三、垃圾邮件过滤系统相关理论及技术分析6(一)电子邮件61. 电子邮件介绍62. 电子邮件系统的工作原理63. 邮件头部介绍7(二)垃圾邮件简介81. 垃圾邮件定义82. 垃圾邮件的危害83. 垃圾邮件的分类94. 垃圾邮件采用的技术9(三)反垃圾邮件研究101. 非技术手段反垃圾邮件102. 技术手段反垃圾邮件11四、客户端垃圾邮件过滤技术研究14(一)中文分词141. 中文分词的常用方法14(二)过滤模式151
7、. 客户端过滤模式152. 多层过滤15五、系统分析18(一)可行性分析18(二)功能需求分析181. 基本功能192. 核心功能19六、系统总体设计20(一)系统功能规划20(二)系统模块划分20七、系统详细设计21(一)功能设计211. 邮箱认证模块212. 邮件发送模块213. 邮件接收模块214. 黑白名单过滤215. 规则过滤216. 邮件处理22(二)系统流程图231. 邮件接收流程图232. 邮件发送流程图24八、系统实现25(一)界面设计与实现25(二)垃圾邮件识别策略31九、系统测试33(一)测试的主要目的33(二)测试环境33(三) 测试及测试结果33(四) 测试结果分析及
8、评价34十、结论35致 谢36参考文献37一、绪论(一)课题背景随着互联网的快速发展,电子邮件已经成为人们日常生活中重要的通信方式。相比传真、普通信件等传统的信息传递方式,电子邮件使用简单、易于保存、花费低廉、传递迅速,可在短时间内与世界上任何一个角落中的网络用户联系,所以电子邮件受到了人们普遍的欢迎。但是,近年来垃圾邮件的出现和不断泛滥,严重干扰了人们正常的网络活动,给广大用户带来了巨大的麻烦。2007年1月,中国反垃圾邮件中心的2007年第一次中国反垃圾邮件状况调查报告显示,网民平均每周收到垃圾邮件22.1封,发出电子邮件12.1封。网民对互联网中垃圾邮件的反感度达8.7,垃圾邮件已成为继
9、电脑病毒之后的主要网络安全问题。垃圾邮件不但危害了互联网的发展、损害了用户的利益、还易被黑客利用,成为散播病毒的主要工具,对社会造成危害。针对垃圾邮件,普遍采用过滤技术对其进行过滤,目前的过滤技术己经取得了很大的进步,但还不够成熟。过滤技术不能完全识别垃圾邮件,甚至会阻断正常邮件的传递,这对于广大用户来说是无法接受的,一些关键领域会因一封正常邮件的丢失而带来巨大损失。因此,研究有效的防治垃圾邮件的技术具有重要的现实意义。(二)国内研究状况分析目前,国内研究的过滤技术主要是基于内容的过滤。基于内容的较成熟的垃圾邮件过滤技术,具有较高的智能性和准确率,但是由于垃圾邮件过滤是个复杂的问题,在技术上还
10、没有哪一个能完美的过滤所有的垃圾邮件。目前存在的主要问题如下:(1) 中文邮件的误判率较高过去的研究主要集中在算法改进方面,而且大多数都使用统一的英文语料库作为平台,对训练和测试结果进行比较分析。英文垃圾邮件的过滤己经达到了比较高的准确率,但受中文分词的影响,对于中文垃圾邮件过滤,往往效果并不理想。中文分词就是将连续的字序列按照一定的规范重新组合成词序列的过程,有些人也称之为切词。中文分词的准确性直接影响电子邮件分类的准确度。由于中文的多义性,而且目前还没有统一的中文垃圾邮件语料库,研究者都是自己用自己的语料,缺乏可比性,所以中文邮件的预处理显得更加困难。(2) 垃圾词汇不易识别反垃圾邮件技术
11、进步的同时,垃圾邮件伪装技术也在不断的发展,垃圾邮件制造者试图制造更难识别的垃圾邮件。垃圾邮件用词越来越隐晦,致使基于内容的过滤器误判率增高。(3) 垃圾邮件概念不明确电子邮件的内容是随时间变化而变化的,用户的个性化需求也有所不同,并且同一用户的需求也在不断的改变,这些变化都使得垃圾邮件判别标准发生变化,这也是垃圾邮件过滤不易解决的问题。对文本分类,每个类别的内容一般不会经常改变。而对垃圾邮件过滤,垃圾邮件类别是和用户密切相关的,如一个产品宣传广告,有人认为是垃圾邮件,但有人则认为是正常邮件,因此邮件的分类需更注重个性化。另外,用户对垃圾邮件的判断标准也会随时间的推移而改变,而且垃圾邮件本身的
12、内容形式也在不断的变化。这些都造成邮件类别的不确定性。二、开发环境简介(一)python简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。Python已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率是呈线性增长。Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。Python在设计
13、上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。Python的设计哲学是“优雅”、“明确”、“简单”。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言(称为The Zen of Python)里面表述为:There should be one- and preferably only one -obvious way to do it. 这正好和Perl语言(另一种功能类似的高级动态语音)的中心思想TMTOWTDI(Theres More Than One W
14、ay To Do It)完全相反。由于Python语言的简洁、易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python教授程序设计课程。例如麻省理工学院的计算机科学及编程导论课程就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其
15、众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。国外知名视频网站YouTube就是使用python处理非常高的并发访问量。(二)python下载安装(1)在http:/www.python.org/getit/ 下载windows版本的python,然后按照提示一步一步安装。(2)接着配置环境变量:在系统的环境变量中编辑PATH,将安装目录添加在PATH之后。(3)检测是否安装成功:运行cmd打开系统终端,输入python,出现如图2-1所示的界面说明安装成功。图2-1 python 安装成功测试图(三)pyqt简介PyQt是一个GUI库
16、,是将Python和Qt结合在一起的产物。而Qt是目前比较成功和强大的GUI库。可以通过访问官方主页来获得更多信息。PyQt的模块管理:QtCore、QtGui、QtNetwork、QtXml、QtSvg、QtOpenGL、QtSql。QtCore主要负责一些非GUI的功能,包括时间(time),文件(files)和文件夹(directories),各种数据类型(data types),流(stream),urls,mime类型,线程(threads)和过程(processes)。QtGui模块负责图像组件和相关的类,包括常见的按钮(buttons),窗口(windows),状态栏(statu
17、s bars),工具栏(toolbars),滑动条(sliders),位图(bitmaps),颜色(colors)和字体(fonts)等。QtNetwork则负责网络功能,通过该模块,可以完成具有TCP/IP和UDP交互功能的C/S应用,该模块使得网络开发非常的简单便携。QtXml包含了同xml文件交互的能力,模块实现了同SAX和DOM交互的APIs。QtSvg提供了显示SVG文件内容的方法。Scalabe Vector Graphics(SVG)是使用xml文件来描述二维图像的一种语言。QtOpenGL通过使用OpenGL来呈现3D和2D图像,该模块将Qt GUI库和OpenGL库无缝的结合
18、在一起。QtSql提供了访问数据库的方法。PyQt提供了以下功能:(1)窗口部件以及其他图形化用户接口控制;(2)数据库管理和查询;(3)XML处理;(4)图像和多媒体;(5)Web浏览器集成和网络。(四)pyqt下载安装安装pyqt前需要先安装SIP,在 http:/www.riverbankcomputing.co.uk/software/sip/down -load 下载SIP对应的版本并安装,然后在http:/www.riverbankcomputing.co.uk/software/pyqt/ download下载python对应的pyqt版本并双击安装。三、垃圾邮件过滤系统相关理论
19、及技术分析(一)电子邮件1. 电子邮件介绍电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mai1不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件不是一种“终端到终端”的服务,是被称为“存贮转发式”服务。这正是电子信箱系统的核心,利用存贮转
20、发可进行非实时通信,属异步通信方式。即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的个实体。因为电子邮件是通过邮件服务器(mai1 server)来传递档的。通常mail server是执行多任务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只要向 mail server管理人员申请个信箱账号,就可使用这项快速的邮件服务。
21、2. 电子邮件系统的工作原理1) 电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。 电子邮件的传输是通过电子邮件简单传输协议(Simple Mail Transfer Protocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。 2) 电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的个电子信箱。并确定个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑信
22、件以及信件存盘三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件实现。3) 电子邮件的通信是在信箱之间进行的。用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另个邮件系统进行传递和交换。收方在取信时,使用特定账号从信箱提取。3. 邮件头部介绍下面介绍RFC822中定义的常用的标准信头字段。表3-1 RFC822常用的标准信头字段与发信方有关的信头字段From:mailbox写信人字段。说明信件的原始创建者,给出他的电子信箱地址。创建者对信件的原始内容负责。Sender:m
23、ailbox发送者字段。说明实际提交发送这个信件的人,给出他的电子信箱地址。当发信人与写信人不一样时使用。Reply-TO:mailbox回复字段。指定应当把回信发到哪里。如果有此字段,回信将会发给它指定的邮箱,而不会发给From字段指定的邮箱。与收信方有关的信头字段TO:mailbox list收信人字段。指定主要收信人的邮箱地址,可以是多个邮箱地址的列表,地址中间用逗号隔开。Cc:mailbox list抄送字段。指定此信件要同时发给哪些人,也称为抄送。也可以使用邮箱地址列表,抄送给多个人。Bcc:mailbox list密抄字段。指定此信件要同时秘密发给哪些人,也称为密件抄送。也可以使用
24、邮箱地址列表,密抄给多个人。其它的信头字段Date:date-time日期字段:Date字段含有电子邮件创建的日期和时间。Subject:*text信件主题字段。描述信件的主题。当回复信件时,通常在主题前面增加“Re:”前缀,标记为该信件为回复信件:当信件被转发时,通常在主题文字前面加上“Fw:”,“Fwd:”这样的前缀。Received:fromdomain接受字段。是投递信件的特定邮件服务器所作的记录。处理邮件投递的每个服务器必须给它处理的每个信头的前面加一个Received字段,用以描述信件到达目的地所经过的路径以及相关信息。当跟踪各个电子邮件问题时,这个信息很有帮助。Message-I
25、D:msg-id信件标识字段。用于表示一个信件唯一标识,该字段通常有Smtp服务器生成,这个值通常是唯一的。形式根据使用的软件而定。通常左边是标识符,右边指定电脑名图中列出了一些在因特网电子邮件中可以找到的普通关键字,以及使用它们的目的。1. From:发送方地址;2. To:接收方地址;3. Cc:复制副本地址;4. Date:信息创建日期;5. Subject:信息主题;6. Reply-To:回复地址。(二)垃圾邮件简介1. 垃圾邮件定义迄今为止,垃圾邮件(spam、junk mail)在国际上没有统一的定义。普通意义上的垃圾邮件指的是未经主动请求的大量的电子邮件,在中国互联网协会反垃圾
26、邮件规范中垃圾邮件被界定为:(1)收件人事先没有提出要求或者同意接收的广告、电子刊物、各种形式的宣传品等宣传性的电子邮件。(2)收件人无法拒收的电子邮件。(3)隐藏发件人身份、地址、标题等信息的电子邮件。(4)含有虚假的信息源、发件人、路由等信息的电子邮件。2. 垃圾邮件的危害电子邮件的特性,决定了垃圾邮件的发送成本是极低的,垃圾邮件发送者通常通过各种群发工具,只需花费较少的时间和金钱,就可以大量发送垃圾邮件。然而,对电子邮件服务提供商和用户而言,垃圾邮件却给他们带来很大的危害和损失。据Nucleus Research公司的最新研究报告称,2007年垃圾邮件给全球的生产力造成的损失以及反垃圾邮
27、件的投资预计将达到700亿美元。具体的说,其危害主要表现在以下几个方面:(1)占用网络资源。大量的垃圾邮件会占用有限的网络带宽,干扰邮件系统的正常运行。当有限的网络资源和网络带宽上充斥着大量的垃圾邮件时,严重地降低网络的使用效率。另外,当一些用户利用邮件服务器对外发送垃圾邮件时,该服务器会被列入黑名单而遭到封杀。仅2007年10月至2008年3月中旬,我国就有300多个IP地址段被国外反垃圾邮件组织列入黑名单,导致我国大量用户无法与国外进行正常通信。(2)浪费服务器资源垃圾邮件接收或转发会消耗服务器处理资源,收到的垃圾邮件会占用其磁盘空间,而对垃圾邮件进行过滤同样需要消耗大量服务器运算资源。(
28、3)增加用户处理时间垃圾邮件增加了用户对邮件的处理时间,浪费了用户的精力。如果我们每天都要花费一段时间来处理垃圾邮件,工作效率就要降低,对整个社会来说,被浪费的时间更是一大笔宝贵的财富。更重要的是,垃圾邮件可能会影响用户对正常邮件的接收,造成正常邮件的丢失,给用户带来损失。(4)对网络安全形成威胁。黑客们利用电子邮件系统发送数以万计的垃圾邮件来攻击目标服务器,使之瘫痪、拒绝服务。垃圾邮件还可以被病毒利用,成为它们的传播途径。(5)散布有害信息。垃圾邮件成为反动,黄色等不良信息的主要传播载体,少数别有用心者利用垃圾邮件散播各种虚假信息或有害信息,给社会带来了极大的负面影响,严重危害了社会的稳定。
29、3. 垃圾邮件的分类垃圾邮件从内容上看,主要是商业广告性质的邮件;另外,由少量政治,团体组织的宣传邮件。从邮件的发送形式上看,有直接发送和第三方转发两种。所谓直接发送,就是邮件的发送者使用自己的服务器,IP 地址,自己的网络资源传送这些邮件。对于接收者来说,如果长期收到这样的邮件,可以采取过滤该IP地址的办法或者根据邮件内容过滤的方法;但如果只是偶尔收到,就很难找到有效的方法了。使用这种方法,邮件发送人的真实情况很容易被查出来,因此也很少有人使用。目前使用更多的是使用第三方服务器转发。当然大多都是未经该服务器管理员同意情况下使用的。由于历史的原因,Internet 上有很多服务器可以转发第三方
30、邮件。对于这种垃圾邮件,只要关闭有关服务器的转发功能就可以了。4. 垃圾邮件采用的技术垃圾邮件数量急剧增长,其手段也不断更新,掌握垃圾邮件采用的技术及其特点,对反垃圾邮件工作尤为重要。(1)非授权获取目标邮件地址垃圾邮件发送者(Spammer)通常通过扫描、猜测、购买的方法获取邮件地址,有些Spammer利用黑客程序从邮箱的通讯簿中获取他人的Email地址。另外,某些垃圾邮件群发软件可以自动生成目标邮件地址。(2)使用特殊MTA程序SMTP协议是基于信任网络环境的基础上建立的,所以它很容易遭受欺骗。我们曾在第二章对其进行了一些分析。Spammer不按照常规的方式使用标准的MTA程序发邮件,而是
31、采用特殊的MTA程序,从目标邮件地址列表中读取邮件地址,然后将其放到Bcc :字段或RCPT命令中,就可以把同一封邮件发给成千上万的受害者。(3)无限转发无限制转发,就是任何人都可以使用你的服务器发送邮件,来隐藏了真是的来源。发送者可以使用一台简单的PC机借用你的强大的服务器一次发送几十万封信。OPEN RELAY是由历史的原因遗留下来的邮件服务器的安全缺陷。目前,绝大多数邮件服务器都具有关闭或限制OPEN RELAY的功能,有的需要更新到某个版本之后,有点需要打补丁。(4)伪造邮件的信源Spammer为了对抗过滤技术,采用了许多逃避检测和追踪的技术。如利用OpenRelay服务器、自架设MT
32、A服务、采用动态IP地址、伪造或隐藏信源地址等,有的甚至直接攻击邮件服务器,获得权限后,通过该服务器发送垃圾邮件,给反垃圾邮件工作带来了重重障碍。垃圾邮件发送者采用以上技术,使得垃圾邮件发送的方式越来越隐蔽,其特点主要表现在:发件人地址随机变化、邮件主题随机变化、伪造邮件头干扰信息、信件主体内容随机变化、正文以图片方式显示等,造成了垃圾信息难以识别。(三)反垃圾邮件研究垃圾邮件已成为威胁网络安全的一个严重问题,很多学者和技术人员开展了反垃圾邮件的研究工作。1995年7月,spam被用来专门指代垃圾邮件,这说明反垃圾邮件的研究正式成为一个的重要研究课题。反垃圾邮件的主要研究工作集中在以下两个方面
33、:一方面是研究如何应用非技术手段来防治垃圾邮件,另一方面是研究新的反垃圾邮件技术来过滤和阻断垃圾邮件的传播。下面我们简单介绍一下这两个方面的研究工作。1. 非技术手段反垃圾邮件(1) 法律手段面对互联网中越来越严重的垃圾邮件问题,很多国家都制定了反垃圾邮件的法律,将发送垃圾邮件行为视为违法,希望能够对垃圾邮件的发送者起到威慑作用,进而减少网络上垃圾邮件的数量。2003年12月,美国总统签署了CANSPAM法案,该法案禁止在商业邮件中伪造邮件头信息,并要求商业邮件必须包含明确的身份标志,违反该法案将被罚款。2004年4月,4名垃圾邮件发送者受到了该法案的惩罚,成为第一批受法律制裁的垃圾邮件发送者
34、。但是,在网络环境下确定垃圾邮件发送者身份很困难,另外,对垃圾邮件发送者的惩罚,不同国家的法律规定也不同,这些使得法律手段收效不大。(2) 经济手段很多学者从经济学的角度提出了一些方法,如通过电子邮票等来防治垃圾邮件。电子邮票类似于普通邮票,是指通过某种方式向电子邮件的发送者收取一定费用。对于正常的电子邮件使用者,他们发送邮件的数量不是很大,电子邮票的费用是很少的,但是对于垃圾邮件发送者,他们会大量发送垃圾邮件,所收取的费用也随之增加很多。这样,垃圾邮件发送者将无利可图,他们就不会热衷于发送垃圾邮件了。但是,在电子邮票投入使用前,还有很多问题需要讨论和解决。例如,电子邮票的费用由谁收取,怎么对
35、这些费用征税,还有谁被授权出售这种电子邮票。2. 技术手段反垃圾邮件目前研究人员针对垃圾邮件的对策,从技术层面上讲,主要包括三类技术:一是基于IP地址、域名和路由等的过滤技术,二是基于内容的过滤技术,三是基于行为的过滤技术。(1)基于IP地址、域名和路由的过滤技术白名单、黑名单技术黑名单(Black List)是指已知的垃圾邮件发送者地址,而白名单(White List)是指可信任的邮件发送者的地址。服务器拒绝地址或域名在黑名单中的邮件,白名单主要用来确认合法的电子邮件。黑白名单过滤技术简单,效率很高,系统资源消耗小,易于实施。但是,黑白名单技术需要手动维护地址清单(即黑白名单),并且,一些正
36、常邮件,可能因为发送方地址在黑名单中而被拒绝,从而造成某些邮件不能正常投递。实时黑名单(Realtime Black hole List,简称RBL)是目前最流行的黑白名单技术,也被称为DNSRBL。目前提供RBL服务的组织有Spamhaus、MailAbuse等,中国反垃圾邮件联盟针对国内的垃圾邮件情况提供了实时黑名单CBL和实时白名单CML。但是,及时地更新黑白名单很困难,在实际应用中,它很难取得很好的效果,通常作为其他技术的补充。反向域名解析垃圾邮件发送者经常通过伪造域名,隐藏自己的身份。一个电子邮件从一台服务器发送到另外一台服务器,两台服务器之间需要建立一个TCPIP连接。接受方服务器
37、在接收邮件时,可以利用发送方的IP地址做反向域名查询,将查询到的域名与邮件头中所声明的域名进行比较,如果不一致,则说明该邮件的域名是伪造的。安全认证技术安全认证技术是指通过签名技术,来对发送方服务器身份进行验证。Domain Keys技术是Yahoo和Microsoft提出的典型的安全认证技术,该技术的核心思想是,每个域名(Domain name)都申请一个PKI证书,然后把公匙存储在DNS服务器中。发件服务器对每一封电子邮件使用该服务器的私匙进行签名,收件服务器则使用公钥验证发件服务器的签名是否有效。通过这种技术可以有效地对发送方服务器的身份进行验证,从而防范垃圾邮件。Domain Keys
38、技术的安全认证体系,要求发送方服务器和接收方服务器都支持Domain Keys技术。目前,受这个因素影响,Domain Keys技术使用还不普遍。(2)基于内容的过滤简单的模式匹配是指系统预定义一些规则,对于一封邮件,系统根据匹配情况将其分类。很多垃圾邮件过滤程序就是利用这种方法进行垃圾邮件的分类。David Mertz在文章“Spare filtering techniques中,用了很简单的几条规则便过滤了80的垃圾邮件,但是他也说“很不幸的是,这种简单的方法同样会带来比较高的误判率”。因此,尽管这种方法简单、高效,但是因此分类性能不佳。目前,通常使用基于规则或基于统计的过滤技术。基于规则
39、的过滤基于规则的过滤是指对每一封收到的邮件进行规则匹配,如果一条规则被匹配,则对该邮件加上一个分值,来描述它属于垃圾邮件的可能性。如果所有的规则匹配完以后,总分超过了一个预定义的阈值,则该邮件被判定为垃圾邮件。规则是拒收或过滤邮件的依据。简单的规则有拒绝主题中包含某个关键词的邮件,或创建拒收邮件地址列表等,复杂的规则支持正则表达式匹配。基于规则过滤方法的一个优点是不需要经过预先学习就可以得到相当不错的过滤效果。规则是由人设定的,因而它可以非常复杂,也可以比较简单。基于规则方法的另一优点是规则可以共享。一个人写出的规则可以提供给多个人使用,因此它的推广性很强。Spam Assassin(简称SA
40、)是一款著名的基于规则的垃圾邮件过滤软件,使用Perl开发。它通过分析邮件信息,并统计垃圾邮件相似度对邮件进行分类。Spam Assassin使用大量的预设规则检查垃圾邮件,采用记分制,对发现的每一个关键词根据所设定的规则累计分数,分数越高,该邮件是垃圾邮件的可能性就越高,当分数超过预先设置的阈值后,该封邮件就会被当作垃圾邮件处理,通常会在邮件头加入警告信息。当Spam Assassin处理一封邮件时,它会对这封信件应用各项规则,生成一个总的分值来表示其为垃圾邮件的可能性。Spam Assassin的规则示例图如下图所示:BodyDEAR_FRIEND/S*Dear Friendb/iDesc
41、ribeDEAR_FRIENDDear Friend?Thats not very dear!ScoreDEAR_FRIEND0.542图3-1 Spam Assassin 规则示例图该规则名称为DEARFRIEND,是一条对信体内容(body)进行字符匹配的规则,describe是对该规则的描述,score是该规则对应的分值。这条规则的含义是:如果信体中含有“Dear Friend”(忽略大小写)则匹配成功,该邮件被加的分值为0.542。基于统计的过滤器该技术源自机器学习,采用机器学习、文本分类技术自动进行邮件分类。有很多文献都提到了通过机器学习和文本统计的方法,来进行内容的学习和分类。其核
42、心思想是采用某个分类算法(如常用的贝叶斯算法等)对已知的垃圾邮件样本进行学习,提取垃圾邮件的特征,构造过滤器;然后运用此过滤器,对新的邮件进行过滤,过滤的结果提交给用户,用户可对过滤结果进行反馈,系统再根据反馈结果对过滤器进行调整。这是一种智能化垃圾邮件识别技术,并且已经在垃圾邮件识别中取得了较好的效果。基于统计的过滤器通过检查邮件的整个内容,根据其内容和以往垃圾邮件的类似程度进行分类和过滤,最成功的一种基于统计的过滤器是贝叶斯过滤器。(3)基于行为的过滤过滤群发软件所发送的邮件其基本思想是根据邮件头信息进行判断,如果该邮件为群发软件所发,则判定其为垃圾邮件。流量监控基本原理是在MTA(Mai
43、l Transfer Agent)端对邮件来源进行监控,若某个IP的流量在短时间内超过一定范围,则认为该IP对应的服务器很可能在发送垃圾邮件,从而对其警告或拒收。电子邮件认证电子邮件认证是指采用挑战回应的机制对邮件发送方进行认证。当收到一封邮件时,该系统自动发出一个一次性的认证邮件给发送方。如果发送方能够成功的响应该认证请求,则该邮件通过过滤器,且所有由这个发送者发送的邮件都被允许通过。这种垃圾邮件过滤技术可以达到很高的准确率,而且可以很有效的避免错误地过滤正常邮件。电子邮件认证技术要求发送者对接收方的挑战进行回应,这种回应对正常邮件的发送方影响很小,而对于垃圾邮件发送者,他需要发送大量的垃圾
44、邮件,很难有那么多的精力进行回应,这就有效地鉴别出了垃圾邮件。Bluebottle和Choice Mail就是这样的系统,这种方法的优点在于它基本上能过滤100的垃圾邮件。但是这种方法也存在几个缺点:第一,邮件发送方需要付出一些额外的精力去应对接收方的挑战,发送方只有通过了挑战才能成功的发送邮件,如果万一发送方没有响应该挑战,则该邮件就会被丢弃。第二,认证响应信息也可能因为防火墙的封堵而造成丢失。第三,对于那些在线订阅的订单和时事通讯,这种方法经常会给它们带来麻烦。第四,认证的消息也造成了网络流量的增大。基于行为模式识别基于行为模式识别的基本思想是分析发送垃圾邮件的行为特征,从而识别垃圾邮件。
45、垃圾邮件在发送阶段处于活跃的状态,恶意的行为特征远比内容特征要明显。发送垃圾邮件的行为特征主要有IP固定性、发送频率大、时间集中、借用邮件服务器漏洞、发信地址不明、路由地址不明、服务器不明和TCP会话异常等,通过分析其特征,建立基于行为识别的反垃圾邮件模型,进行垃圾邮件识别。四、客户端垃圾邮件过滤技术研究(一)中文分词中文分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。词是自然语言中最小的有意义的构成单位。汉语文本是基于单字的文本,汉语的书面表达方式以汉字作为最小单位,词与词之间没有明显的界限标志。所以,在处理电子邮件这种半结构化文本,进行特征提取时,必须使用分词方法将邮件句子中的
46、词划定边界,以方便计算机识别和处理。1. 中文分词的常用方法中文分词方法主要有三类:第一类是基于词典的字符串匹配分词方法,第二类是基于词的频度统计分词方法,这两类方法实用、具体,比较容易实现:第三类方法是基于理解的分词,对句法、语法进行分析,并结合语义分析,通过对上下文内容所提供信息的分析对词进行定界,这类方法试图让机器具有人类的理解能力,一般不易实现。(1)机械分词方法这种方法又叫做基于字符串匹配的分词方法,其主要思想是对待分词的汉字字串S,按照某种确定的原则切取S的子串,若该子串与词库中的某词条相匹配,则该子串是词,继续分割剩余的部分,直到剩余部分为空;否则,该子串不是词,转向重新切取S的
47、子串进行匹配。按照扫描方向的不同,字符串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配。常用的几种字符串分词方法如下:正向最大匹配法(Forward Maximum Matching Method)通常简称为FMM法。用Max Length表示最大词长,按照从左到右的顺序,首先从汉字串中取长度为Max Length的子串,查词典,若词典中存在这个词,则切分出这个子串,后移Max Length个汉字后继续切分,否则,子串长度减1,再与词典匹配。若长度为2的子串仍不能在词典中找到,则取当前汉字为词,完成一轮匹配过程,指针后移一个汉字继续匹配。然后再按照上面的步骤进行下去,直至切分出所有的词。正向最大匹配法的原理较简单,易于在计算机上实现,时间复杂度比较