版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸第 页共47页第 页共47页反垃圾邮件系统设计摘要电子邮件是人们使用较多的一种通信方式,然而在给人们带来大量快捷的同时,其副产品垃圾邮件也给人们的生活增添了无穷的烦恼。如今我们接收到了大量的垃圾邮件,这对收件人的时间、带宽和存储资源产生了无效占用,网络链路因此造成拥塞,它还被作为不良信息的载体被到处散发。因此本文主要讨论了一些常用的反垃圾邮件技术,主要包括关键字匹配技术,实时黑名单技术,反向查询技术,详细介绍了贝叶斯技术的基本原理及其代码实现,最后对应用实验的不足进行了总结并提出了进一步的研究方向。关键词:反垃圾邮件,关键字匹配,实时黑名单,贝叶斯算法
2、Designofanti-spamsystermAbstractE-mailisonemannerofcommunicationbetweenusthatweusefrequently,foritsconvenienceandrapidness,butspamwhosebyproductbringendlessbothertoourlife.Now,theamountofthespamwereceivedhasexceededthatofneededmail,thetime,bandwidthandmemoryresourceofaddresseesistiedupineffectively,
3、thereby,networkconnectiongeneratecongestion.Thetextdiscussessomecommenanti-spamtechnology,suchaskeyword-matching,real-timeblacklist,reversequery,andelaborateonbasictheoryandcoderealizationofBayesiantechnology,atlastthethesissummarizethelackoftheexperimentandbringforwardthedirectionoffatherresearch.K
4、eywords:anti-spam,e-mailfiltering,RBL,Bayesiancategorization第 #页共47页第 页共47页总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸目录TOC o 1-5 h z HYPERLINK l bookmark10 1.绪论5 HYPERLINK l bookmark12 1.1研究背景5 HYPERLINK l bookmark14 1.2垃圾邮件的定义6 HYPERLINK l bookmark16 1.3研究现状及相应法规71.3.1国内外反垃圾邮件技术研究现状71.3.2反垃圾邮件法律与政策8 HYPERLINK l bookmar
5、k20 1.4论文的主要内容和章节安排91.4.1论文的主要内容91.4.2论文的章节安排10 HYPERLINK l bookmark22 2反垃圾邮件的基本原理11 HYPERLINK l bookmark24 2.1电子邮件简介112.1.1邮件的格式112.1.2邮件的传送12 HYPERLINK l bookmark46 POP3与SMTP简介132.2.1SMTP协议132.2.2POP3协议16 HYPERLINK l bookmark50 2.3反垃圾邮件的系统架构17 HYPERLINK l bookmark52 3反垃圾邮件技术19 HYPERLINK l bookmark
6、54 3.1过滤193.1.1关键词过滤193.1.2黑白名单203.1.3HASH技术203.1.4基于规则的过滤203.1.5智能和概率系统213.1.6过滤技术的局限性和缺点21 HYPERLINK l bookmark58 验证查询22总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸第 页共47页第 页共47页3.2.1反向查询技术223.2.2局限性和缺点23 HYPERLINK l bookmark60 4反垃圾邮件系统的实现24 HYPERLINK l bookmark62 4.1中文分词理论244.1.1基于字符串匹配的分词方法244.1.2
7、基于理解的分词方法264.1.3基于统计的分词方法26 HYPERLINK l bookmark64 4.2关键字匹配与实时黑名单技术27 HYPERLINK l bookmark84 4.3贝叶斯算法及其代码实现294.3.1贝叶斯算法基本原理294.3.2贝叶斯算法举例及代码实现334.3.3对于贝叶斯技术的一些建议40 HYPERLINK l bookmark130 5总结与展望42 HYPERLINK l bookmark132 5.1总结42 HYPERLINK l bookmark134 5.2展望43 HYPERLINK l bookmark136 致谢45 HYPERLINK
8、l bookmark138 参考文献461绪论1.1研究背景随着Internet的广泛普及,越来越多的人走进了Internet。互联网极大的方便着现代社会中的人们,而电子邮件作为网络中的一部分,起到了很好的拉近人与人之间距离的作用,它已经成为网络交流沟通的重要途径。然而也随之带来了其副产品一一垃圾邮件,它给每一位网络用户,网络管理员和ISP带来了无尽的烦恼。据统计,全世界因为垃圾邮件每年要损失1000万美元,近来的调查也显示,93%的被调查者都对他们接受到的大量垃圾邮件非常不满。由于垃圾邮件的泛滥,使得原本畅通的互联网速度变的逐渐缓慢,并且浪费了用户大量的时间。企业员工每天正常处理业务的时间被
9、接受、打开、删除垃圾邮件等动作白白浪费了。对于企业来说,垃圾邮件不仅浪费了企业员工的宝贵时间,而垃圾邮件中可能附带的病毒、间谍软件等对企业造成的损失更是巨大的。若用户无意中不小心打开一些含有不安全因素的垃圾邮件,木马、病毒、间谍软件等就很可能不知不觉地潜入企业内部盗取机密文件,造成企业重大的安全隐患。更加严重的是它还带来了严重的社会问题。有些国内的IP站点被列入了国外某些组织的“黑名单”,来自某些IP地址的邮件在国际出口被屏蔽等,影响了国内用户对电子邮件的正常使用。目前垃圾邮件随着互联网的不断发展而大量增加,不再像以前一样只是一个小小的骚扰,现在的垃圾邮件可以说是铺天盖地,而纵观垃圾邮件的发展
10、,很容易看到,最初,垃圾邮件主要是一些不请自来的商业宣传电子邮件,而现在更多的是有关色情、政治的垃圾邮件不断增加,甚至达到了总垃圾邮件量的40%左右,并且仍然有持续增长的趋势。而更重要的一方面是,垃圾邮件成为了计算机病毒新的、快速的传播途径。有效的制止垃圾邮件是刻不容缓的。1.2垃圾邮件的定义某种程度上,对垃圾邮件的定义可以是:那些人们没有意愿去接收到的电子邮件都是垃圾邮件。比如:商业广告。很多公司为了宣传新的产品、新的活动等通过电子邮件的方式进行宣传。政治言论。目前会收到不少来自其他国家或者反动组织发送的这类电子邮件,这就跟垃圾的商业广告一样,销售和贩卖他们的所谓言论。蠕虫病毒邮件。越来越多
11、的病毒通过电子邮件来迅速传播,这也的确是一条迅速而且有效的传播途径。恶意邮件。恐吓、欺骗性邮件。比如phishing,这是一种假冒网页的电子邮件,完全是一种诡计,来蒙骗用户的个人信息、账号甚至信用卡。普通个人的电子邮箱怎么成为了垃圾邮件的目标呢,造成这样的结果有很多原因,比如在网站、论坛等地方注册了邮件地址,病毒等在朋友的邮箱中找到了你的电子邮箱,对邮件提供商进行的用户枚举,等等。通常情况下,越少暴露电子邮件地址越少接收到垃圾邮件,使用时间越短越少接收到垃圾邮件。一些无奈的用户就选择了放弃自己的邮箱而更换新的电子邮箱。其安全问题如下:垃圾邮件给互联网以及广大的使用者带来了很大的影响,这种影响不
12、仅仅是人们需要花费时间来处理垃圾邮件、占用系统资源等,同时也带来了很多的安全问题。垃圾邮件占用了大量网络资源,这是显而易见的。一些邮件服务器因为安全性差,被作为垃圾邮件转发站为被警告、封IP等事件时有发生,大量消耗的网络资源使得正常的业务运作变得缓慢。随着国际上反垃圾邮件的发展,组织间黑名单共享,使得无辜服务器被更大范围屏蔽,这无疑会给正常用户的使用造成严重问题。垃圾邮件和黑客攻击、病毒等结合也越来越密切。随着垃圾邮件的演变,用恶意代码或者监视软件等来支持垃圾邮件已经明显地增加了。2003年12月31日,巴西的一个黑客组织发送包含恶意javascript脚本的垃圾邮件给数百万用户,那些通过Ho
13、tmail来浏览这些垃圾邮件的人们在不知不觉中已经泄露了他们的账号。另外一个例子就是,近来IE的URL显示问题,在主机名前添加%01可以隐藏真实的主机地址,在被发布之后几个星期内就出现在垃圾邮件中了。越来越具有欺骗性的病毒邮件,让很多企业深受其害,即便采取了很好的网络保护策略,依然很难避免,越来越多的安全事件都是因为邮件产生的,可能是病毒、木马或者其他恶意程序。Phishing的假冒诡计对于普通使用者来说,的确很难做出正确的判断,但是造成的损失却是很直接的。1.3研究现状及相应法规1.3.1国内外反垃圾邮件技术研究现状一般来说,反垃圾邮件的方法有服务器端和客户端两种。就技术而言,大致可以从两个
14、方面着手:一是服务商配备反垃圾技术模块;二是服务商向客户提供有效的反垃圾工具。比较理想的方法是,在邮件服务器端直接将垃圾邮件屏蔽掉,这样不仅用户不会受到垃圾邮件的骚扰,而且服务器可以减少邮件的处理量,节第 页共47页第 页共47页总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸约处理器资源和带宽流量,但实施起来很困难。一封电子邮件,从邮件分析的角度可以大致分为以下五部分:邮件头、发件人、收件人、邮件主题、邮件内容。在收件客户端反垃圾邮件可以针对这五部分内容进行过滤。反垃圾邮件手段不断更新。过去采用得较多的反垃圾邮件手段有:IP黑名单、用户帐户黑名单、主题关键字拒收、内容关键字拒收、RBL技术。详见第
15、二、三章叙述。1.3.2反垃圾邮件法律与政策在解决垃圾邮件泛滥的问题上,国外许多国家制定了反垃圾邮件法,希望规范互联网上发送电子邮件的行为,通过法律手段对发送垃圾邮件者或公司进行处罚。在美国、日本、韩国、英国、法国、意大利、瑞典、挪威、加拿大、印度等国都制定相应的反垃圾邮件法。韩国新法规定,任何人都不许通过明确禁止使用的软件或通过提供自动搜索电子邮件地址服务的网页搜集电子邮件地址,而且不允许在违反该规定的情况下出售或传播电子邮件地址;美国、日本、韩国、丹麦和奥地利等国家在反垃圾邮件的行动中,对垃圾邮件发送采取了严厉的惩罚措施,包括对肇事者进行罚款和监禁,其中美国和日本最为严厉。美国通过了CAN
16、-SPAM反垃圾邮件法,可以对发送垃圾邮件者处以最高到600万美元以及5年的监禁。美国AOL公司利用该法对垃圾邮件发送者进行了起诉,来保护自己的合法权益。日本反垃圾邮件法规定,任何违反该法律的企业最高可罚款256万美元,个人可判处最高两年的有期徒刑。与国外对垃圾邮件的立法现状对比,中国明显滞后,目前还没有专门反垃圾邮件法。网民和企业都呼吁能尽快对反垃圾邮件立法,保护网民的合法权益,对垃圾邮件发送者给予制裁。在这种状况下,2002年底,由中国互联网协会、263网络集团、新浪网共同发起的“反垃圾邮件协调小组”在北京正式成立,国内20多家邮件服务商首批加入。在2003年8月“反总鸟乩壕飆隹更曙和讨傥
17、课程设计(论文)用纸垃圾邮件协调小组”公布了首批垃圾邮件服务器“黑名单”,封杀了全球127个发送垃圾邮件的服务器.同时民间组织上的中国反垃圾邮件联盟(CASA)于2003年9月11日正式推出了中国第一个公开的实时邮件黑名单(RBL)。采用相应的法律和措施,在一定程度上节制了垃圾邮件泛滥问题,但许多国家在建立了反垃圾邮件法后,垃圾邮件问题仍然很突出,收效不大。美国的业界官员称美国反垃圾邮件法生效后垃圾邮件的状况跟以前差不多,垃圾邮件仍然占总邮件的55%左右。他们分析原因:第一是该法没有得到有力的执行,网民和企业对垃圾邮件采取了默许的态度,没有起诉垃圾邮件发送者,让垃圾邮件继续泛滥;第二,也是最重
18、要的原因,互联网是无国界的,当美国立法后,垃圾邮件的模式发生了很大的变化,垃圾邮件发送者通过国外的服务器来发送垃圾邮件,使得美国的反垃圾邮件法鞭长莫及。由于国际上没有一个统一的反垃圾邮件法律或措施,当通过其他国家来转发垃圾邮件时,本国法律就无法适用,因此光通过立法来治理垃圾邮件问题还远远不够。垃圾邮件与反垃圾邮件之间就像在进行一场军备竞赛,魔高一尺,道高一丈。目前还没有那种技术能完善地解决垃圾邮件问题。科研者正在不断总结经验,开发更加准确、可靠、实用的技术。1.4论文的主要内容和章节安排1.4.1论文的主要内容本文的主要内容是:通过了解垃圾邮件的定义以及垃圾邮件对现代正常生活的影响,提出了对于
19、垃圾邮件的一些常用的处理方法,主要包括贝叶斯过滤,关键字匹配,实时黑名单,以及反向查询等技术,并详细叙述了贝叶斯过滤技术的实现及其代码分析,最后对于垃圾邮件的发展做出自己的看法。总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸第 页共47页第 页共47页1.4.2论文的章节安排本文第二章主要阐述了反垃圾邮件的基本原理包括电子邮件发送的一般原理以及反垃圾邮件的系统架构,第三章介绍了一些现有的常用的一些反垃圾邮件的技术,第四章系统地分析了贝叶斯技术,并分析了以后需要的研究方向,第五章对本文进行了总结并对反垃圾邮件的未来做出了自己的看法与预测。2反垃圾邮件的基本原
20、理2.1电子邮件简介2.1.1邮件的格式为了让邮件能够顺利地在Internet上传送,能够被不同的邮件服务器正确识别,并且在各种各样的终端上显示出来,就需要遵循一定的格式。在高层信件是非常简单的,它含有一系列的文本,每一行以回车(CR)和换行(LF)组成。信件有信头、信件体和之间的空行组成。信头有定义的格式,以使得MTA、MDA和MUA能对他进行程序分析。信头是必须的,信件体是可选的。下面介绍一些关键字段的含义:From:From:.表示生成该信件的人。To:To:.指出收件人Subject:邮件的主题Reply一to:标识发件人希望回复的地址Message_ID:Message_ID:v00
21、0001cldf73$0378dc50$173270cakylintp唯一的标识一个信件,该字段由MUA或者第一个MTA产生。畐总鸟乩壕飆隹更曙和讨虎课程设计(论文)用纸总鸟乩壕飆拴臭曙和讨虎课程设计(论文)用纸总鸟乩壕飆拴更曙和讨傥课程设计(论文)用纸第 页共47页第 页共47页第 页共47页2.1.2邮件的传送电子邮件与普通邮件有类似的地方,发信者注明收件人的姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中,如图2.1所示。图2.1高层SMTP下面解释邮件传送中涉及到的几个概念:MUA(MailUserAgent)邮件用户代理,帮助用户读
22、写邮件。MTA(MailTransportAgent)邮件传输代理,负责把邮件由一个服务器传到另一个服务器或邮件投递代理。MDA(MailDeliveryAgent)邮件投递代理,把邮件放到用户的邮箱里。整个邮件传输过程如图2.2所示。图2.2邮件代理目前使用的SMTP协议是存储转发协议,意味着它允许邮件通过一系列的服务器发送到最终的目的地。服务器在一个队列中存储到大的邮件,等待发送到下一个目的地。下一个目的地可以使本地用户,或者是另一个邮件服务器,如图2.3所示。图2.3存储转发如果下游的服务器暂时不可用,MTA就暂时在队列中保存信件,并在以后尝试发送。2.2POP3与SMTP简介在这里我们
23、对支持服务器之间以及客户端与服务器之间邮件交换的协议SMTP、POP3进行简要说明。2.2.1SMTP协议SMTP(SimpleMailTransferProtocol:简单邮件传输协议)是服务器间进行邮件传送的协议,在通信过程中,发件方SMTP与收件方SMTP采用对话式的交互方式,发件方提出要求,收件方进行确认,确认后再进行下一步动作。整个过程由发件方控制,有时需要确认几回才可以,如图2.4所示:陵怦方收件方SMIFS.MTP图2.4SMTP交互为了保证回复命令的有效,SMTP要求发件方必须提供接收方的服务器及邮箱。邮件的命令和答复有严格的语法定义,并且回复具有相应的数字代码。SMTP的基本
24、命令参见表2.1:表2.1SMTP基本命令命令概要HELO开始通信,同时通知发送端的域名例:HELOHitachi.co.jpMAILFROM将电子邮件发送端地址通知接收端。例:MAILFROM:.co.jpRCPTTO指定电子邮件接收端。例:RCPTTO:.jpDATA通知开始发送电子邮件正文。用句号通知正文发送结束。RSET发送流程的初始化。VRFY确认用户名。格式:VRFY用户名EXPN打开邮件发送清单格式:EXPN邮件发送清名单QUIT通知退出SMTP的消息交换流程2.2.2POP3协议POP3(PostOfficeProtocolVersion3:邮局协议版本3)是用于从服务器上的各
25、用户的邮箱中提取邮件的协议。在提供服务的过程中,使用表2.2所示的命令,与SMTP样,以命令的发送与应答形式进行处理。表2.2POP3基本命令命令概要APOP进行具备防止重放攻击的用户的认证。格式:APOP用户名消息摘要例:APOPteradac4c9334bac560ecc979e58001b3e22fbQUIT通知结束PASS通过USER命令,用于在用户名发送后的密码发送中格式:PASS密码USER发送邮箱的用户名格式:USER用户名STAT查询邮箱状态LIST查询邮箱的消息清单格式:LIST消息号RETR从邮箱获取消息格式:RETR消息号DELE从邮箱中删除消息格式:DELE消息号NOO
26、P服务器什么都不做,只返回应答代码“+0K”REST取消消息的删除记号TOP格式:TOP消息号行数UIDL查询消息的ID格式:UIDL消息号QUIT结束的通知在考虑了SMTP与POP后,一个实际的邮件传输的过程如图2.5所示:本地电子邮件服务器SMTP1SMTPSMTP2本地电子邮件服POP务器直接发信SMTP直接收信POP客户3客户1客户2客户4图2.5邮件的传输2.3反垃圾邮件的系统架构反垃圾邮件的核心模块是当客户端服务器接收到邮件以后对于邮件的处理部分,处理之后将正常邮件发送到客户邮箱中,而过滤掉垃圾邮件,主要构架如图2.6所示:Mail服务器接收邮件邮件过滤器垃圾邮件有用邮件收件人邮箱
27、图2.6系统架构本文的主要研究核心即为邮件过滤器部分的主要功能的实现。畐总鸟乩壕飆隹更曙和讨虎课程设计(论文)用纸第 页共47页第 页共47页3反垃圾邮件技术本文将在下面的内容讨论过滤器(Filter)、反向查询(Reverselookup)技术。3.1过滤过滤(Filter)是一种相对来说最简单却很直接的处理垃圾邮件技术。这种技术主要用于接收系统来辨别和处理垃圾邮件。从应用情况来看,这种技术也是使用最广泛的,比如很多邮件服务器上的反垃圾邮件插件、反垃圾邮件网关、客户端上的反垃圾邮件功能等,都是采用的过滤技术。3.1.1关键词过滤关键字过滤是最早的反垃圾邮件技术之一。它是将一些会在垃圾邮件中经
28、常出现的字符(如广告、化妆品、发票等)收集起来形成一个庞大的数据库,当一封邮件来的时候对其信头、信标题、主题和信体几部份进行检查,看里面是否有数据库中的关键字,如果有就被判定为垃圾邮件,如果没有就判断不是垃圾邮件。该技术主要采用的是关键字匹配。此技术的优点就是:技术比较容易实现,判断处理速度比较快,缺点是误判率比较高。并且,一般躲避关键词的技术比如拆词,组词就很容易绕过过滤。为了减少误判率,故可采用关键字权重的方法来对垃圾邮件进行判断。关键字权重过滤,是根据关键字数据库中比较经常出现的关键字分别赋予相应的权重,权重的大小是根据关键字在垃圾邮件中出现的可能性和严重性来决定。当收到一封垃圾邮件时,
29、就对其进行扫描,若发现有其中一个关键字就加相应的权重(此权重值用户可自定义),最有将所有的权重累加总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸并与预先设置好的阀值进行比较。阀值设为两个,分为三种情况:第一种情况一定是垃圾邮件;第二种可能是垃圾邮件;第三种一定不是垃圾邮件。3.1.2黑白名单黑白名单过滤同样是较早的一种反垃圾邮件的技术。故可将经常发垃圾邮件的IP地址添加到IP黑名单中,以后再从同样的IP地址发来的信件都被判定为垃圾邮件。如果邮件地址被加入到白名单中,则认为从那里来的任何邮件都不是垃圾邮件。3.1.3HASH技术HASH技术是邮件系统通过创建HASH来描述邮件内容,比如将邮件的内容、
30、发件人等作为参数,最后计算得出这个邮件的HASH来描述这个邮件。如果HASH相同,那么说明邮件内容、发件人等相同。这在一些ISP上在采用,如果出现重复的HASH值,那么就可以怀疑是大批量发送邮件了。3.1.4基于规则的过滤所谓邮件的指纹,就是邮件内容中的一些字符串的组合,就是从类似、但不相同的信息中,识别已经被确认为垃圾邮件的信息。通常垃圾邮件都有一些特征比如:含有很多广告的链接。有些垃圾邮件程序为了躲避反垃圾邮件程序,在制造垃圾邮件时通过html等技术把一些含有垃圾邮件明显特征的内容、关键字等做转换,以试图欺骗反垃圾邮件程序。这些垃圾邮件独有的特征,也就是垃圾邮件的指纹。这些和反病毒技术的特
31、征码识别的思想是共通的。通过确认邮件的指纹,完成对垃圾邮件的识别。先给邮件中出现的每一个字符赋予一个数值(这个数值的确定是按照特定垃圾的用词规律特点进行分类),再利用统计方法给这封邮件计算出一个综合的数值。也可以根据是否与其他多次收到的邮件相似来判定(多次收到相似的邮件很可能就是垃圾邮件)。3.1.5智能和概率系统广泛使用的就是贝叶斯(Bayesian)算法,可以学习单词的频率和模式,这样可以同垃圾邮件和正常邮件关联起来进行判断。这是一种相对于关键字来说,更复杂和更智能化的内容过滤技术。我将在下面详细描述这种在客户端和服务器中使用最广泛的技术。我们将在第四章具体介绍及其具体的代码实现。3.1.
32、6过滤技术的局限性和缺点现行的很多采用过滤器技术的反垃圾邮件产品通常都采用了多种过滤器技术,以便使产品更为有效。过滤器通过他们的误报和漏报来分等级。漏报就是指垃圾邮件绕过了过滤器的过滤。而误报则是将正常的邮件判断为了垃圾邮件。完美的过滤器系统应该是不存在漏报和误报的,但是这是理想情况。一些基于过滤器原理的反垃圾邮件系统通常有下面的三种局限性:可能被绕过。垃圾邮件发送者和他们用的发送工具也不是静态的,他们也会很快适应过滤器。比如,针对关键字列表,他们可以随机更改一些单词的拼写,比如(强悍,弓虽悍,强-悍).Hash-buster(在每个邮件中产生不同的HASH)就是来绕过hash过滤器的。当前普
33、遍使用的贝叶斯过滤器可以通过插入随机单词或句子来绕过。多数过滤器都最多只能在少数几周才最有效,为了保持反垃圾邮件系统的实用性,过滤器规则就必须不断更新,比如每天或者每周更新。误报问题。最头痛的问题就是将正常邮件判断为垃圾邮件。比如,一封包含单词sample的正常邮件可能因此被判断为垃圾邮件。某些正常服务器不幸包含在不负责任的组织发布的blocklist对某个网段进行屏蔽中,而不是因为发送了垃圾邮件(xfocus的服务器就是这样的一个例子)。但总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸是,如果要减少误报问题,就可能造成严重的漏报问题了。过滤器复查。由于误报问题的存在,通常被标记为垃圾邮件的消息一
34、般不会被立刻删除,而是被放置到垃圾邮件箱里面,以便日后检查。不幸的是,这也意味着用户仍然必须花费时间去察看垃圾邮件,即便仅仅只针对邮件标题。目前更严重的问题是,人们依然认为过滤器能有效阻止垃圾邮件。实际上,垃圾邮件过滤器并不能有效阻止垃圾邮件,在多数案例中,垃圾邮件依然存在,依然穿过了网络,并且依然被传播。除非用户不介意存在被误报的邮件,不介意依然会浏览垃圾邮件。过滤器可以帮助我们来组织并分隔邮件为垃圾邮件和正常邮件,但是过滤器技术并不能阻止垃圾邮件,实际上只是在处理垃圾邮件。尽管过滤器技术存在局限,但是,这是目前最为广泛使用的反垃圾邮件技术。3.2验证查询3.2.1反向查询技术对于疑似垃圾邮
35、件,可采用智能应答确认的方式来减少误判率。一般的垃圾邮件都是由垃圾邮件程序自动产生的,无法回复。对于疑似垃圾邮件,发一封确认邮件给发件人,若发件人是垃圾邮件制造程序则无法回复,则判定此邮件为垃圾邮件,并将其列入黑名单。当对方若是真正的发邮件者,而不是垃圾邮件程序。则只需回复发出的确认邮件,就可以自动会将此发件人添加到白名单,下一次该地址发送过来的邮件则不需过滤,直接转发给收件人。为了防止自动应答程序回复确认邮件来绕过检测,在其确认邮件中可采用了随机码的方式要求发邮件者输入相应特征码(一串随机序列号),以此来避免某些垃圾邮件程序的自动回复程序造成的误判。畐总鸟乩壕飆隹更曙和讨虎课程设计(论文)用
36、纸畐总鸟乩壕飆隹更曙和讨虎课程设计(论文)用纸第 页共47页第 页共47页3.2.2局限性和缺点这个解决方案都具有一定的可用性,但是也存在一定的缺点:比如,如果一个人一天回复大量的这样的确认邮件,一定会有一定程度的不愿意。总而言之,百分之百有效的反垃圾邮件技术是现在还是不存在的。而且对于不同的人、组织或单位,有效的方法也是不同的,即对别人有效的方法,对你却未必有效。综上所述,要想完全杜绝垃圾邮件,还需要很多人的共同努力。4反垃圾邮件系统的实现本文中主要阐述关键字匹配及贝叶斯算法的具体实现。4.1中文分词理论无论是关键字匹配技术还是贝叶斯技术,关键的一点是分词,没有分词就没有了关键词的匹配及贝叶
37、斯技术中每个字的概率的计算,在英文的行文中,单词之间以空格作为自然分界符,以标点符号作为语义分界符,所以英文分词的处理过程相对简单。而且,标准测试集中的邮件样本都没有连写、缩写等问题,更加简化了分词工作,对英文邮件正文去标点符号后直接从头开始扫描,两个空格之间认定为一个单词,一次扫描到正文结尾便可以得到此封邮件的单词列表了。相对于英文分词,中文只是字、句和段可以通过明显的分界符来简单划界,唯独词没有一个形式上的分界符。虽然英文也同样存在短语的划分问题,但是在词这一层上,中文比英文要复杂得多。现有的分词算法可分为三大类11:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。4.1
38、.1基于字符串匹配的分词方法这种方法又叫做机械分词方法,它是按照一定的方法将所要分析的汉字串与一个足够大的数据库词典中的词条进行匹配,若在词典中找到某个字符串,则可认为匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:最大匹配法亦称MM法;其基本思想是这样的,假设自动分词词典(或词库)中的最长词条是i个字,则取被处理材料当前字符串序列中的前i个字作为匹配字段,查找词典,若词典
39、中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来;如果在词典中找不到这样一个i字词,则匹配失败,匹配字段去掉最后一个字,剩下的字段重新进行匹配,如此进行下去,直到匹配成功,也就是完成一轮匹配,切分出一个词为止。此算法存在两个影响后续过滤工作的问题:一是最大词长很难确定。词长设置太短,长词就会被切掉,比如词长设置为4,那么“西安建筑科技大学”就不可能做为一个词,根据现在使用的词典会被划分为“西安”、“建筑”、“科技”和“大学”四个词;词长设置过长,分词的效率又会降低。考虑到词汇的正确划分对垃圾邮件过滤的影响更大,所以在一般邮件过滤实验中采用的词长也稍微偏大,一般情况下可以认定为8
40、。二是此算法不能避免分词歧义划分。比如,“有意见分歧”的分词结果会是“有意”、“见”、“分歧”,但实际上我们期待的分词结果是“有”、“意见”、“分歧”。这种分词错误肯定对垃圾邮件的过滤性能有影响,但这个问题较复杂,在分词领域也是一个具体的课题,所以,本论文中暂时忽略了对这个问题的分析。逆向最大匹配法亦称OMM法;其基本原理和MM法相同,不同的是分词切分方向;它从被处理材料的末端开始匹配,每次取最末端的i个字作为匹配字段,匹配失败则去掉最前面的一个字。OMM法要求配置逆序分词词典。逐词遍历匹配法,它把词典中的词按照由长到短递减的顺序逐个搜索匹配整个代处理材料,直到把所有的词都切分出来为止。这种方
41、法首先要收集那些标点符号(称为自然切分标志)以外的众多非自然切分标志,例如,只充当词首字或词尾字的字,对这些非自然切分标志进行搜索,根据这些标志,把句子切分为若干较短的字段,然后再使用MM或者OMM等方法进行进一步的切分。准确的说,这种方法并不是一种真正意义上的分词方法,只不过是自动分词的一种前处理方式而已。而且,这种前处理并没有提高分词精确度,却要额外消耗时间扫描切分标志,增加分词的时间复杂度。4.1.2基于理解的分词方法这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词
42、子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。4.1.3基于统计的分词方法从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个
43、汉字的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种第 页共47页第 #页共47页超总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸方法只需对所分析文章中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分
44、词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。到底哪种分词算法的准确度更高,目前并无定论。对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法。4.2关键字匹配与实时黑名单技术关键字过滤只需将垃圾邮件中经常出现的关键字(如广告、化妆品、发票等)收集起来形成一个庞大的数据库,然后分别与信头、信标题、主题和信体几部份进行匹配。而实时黑名单技术是将曾经发过垃圾邮件的IP地址存入一个数据库中,当有新邮件出现时,可将IP地址与其对照,这样若匹配则认定是垃圾邮件,两种方法在实质上均是采用了关键字匹配,只是一个是匹配内容,另一个匹配IP
45、地址。其简单实现代码如下:#includeviostream.h#includevfstream.h#includevconio.h#includevstring.htypedefstructa定义一个结构体,存放特征项;总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸第 页共47页第 页共47页intsum;表中记录个数,即为向量空间维数;chartc1003;存放特征向量;table;voidmain()tablet;charbuffer100,cha3;inti,j,m;intc=0;读取数据库中的关键字;查找所匹配的关键字;ifstreaminf(a
46、b1.txt);inf.getline(buffer,100);m=strlen(buffer);for(i=0;ivm;i+=2)cha0=bufferi;cha1=bufferi+1;cha2=0;for(j=O;jvt.sum;j+)if(!(strcmp(cha,t.tcj)c=1;讦(c=1)coutvv该邮件是垃圾邮件vvendl;elsecoutvv该邮件是有用邮件vvendl;4.3贝叶斯算法及其代码实现基于规则的自动过滤方法需要用户自己输入有效的过滤规则,更重要的是垃圾邮件本身具有易变性,这要求用户不断改进和完善规则。规则的定义和修改是耗时和乏味的工作,并且对于用户来说,极易
47、制定不恰当的规则。要解决这一问题,必须建立一个既具有自适应性又能够个性化的自动邮件过滤系统。贝叶斯方法非常适合建立这一系统,我们可以用相当少的算法来解决这个问题。只需要把个别单词的垃圾可能性找出来,进行一种贝叶斯组合,就可以很好的过滤垃圾邮件。而且贝叶斯方法是根据邮件内容动态调整的,新的垃圾邮件和正常邮件会不断调整邮件内容的垃圾邮件概率,从而适应每一个用户的需求。4.3.1贝叶斯算法基本原理贝叶斯决策理论数据的分类问题是根据识别对象特征的观察值将其分到某个类别中去。统计决策理论是处理分类问题的基本理论之一,它对分析和分类器的设计有着实际的指导意义。贝叶斯(Bayes)决策理论方法是统计识别中的
48、一个基本方法,用这个方法进行分类时要求:各类别总体的概率分布是已知的;要决策的分类的类别数是一定的。这说明了要研究的分类问题有c个类别,各类别状态用曲来表示,=1,2,,c;对应于各个类别曲出现的先验概率P(曲)及类条件概率密度函数p(x|roi)是已知的。如果在特征空间已观察到某一向量x,x=x1,x2,,xdT就是d维特征向量空间上的某一个点,那么应该把x分到哪一个类去才最合适呢?基于最小错误率的贝叶斯决策在分类问题中,人们往往希望尽量减少分类的错误,从这样的要求出发,利用概率论中的贝叶斯公式,就能得出是错误率为最小的分类规则,称之为基于最小错误率的贝叶斯决策。在讨论一般理论之前,先举一个
49、例子癌细胞的识别一一来说明解决问题的过程。假设每个要识别的细胞已作过预处理,抽取出d个表示细胞基本特性的特征,成为一个d维空间的向量x,识别的目的是要将x分类为正常细胞或者异常细胞。用决策论的术语来讲是将x归类于两种可能的自然状态之一,如果用表示状态,贝V:ro=ro1,表示正常。=2,表示异常。类别的状态是一个随机变量,而某种状态出现的概率是可以估计的。例如,可以将垃圾邮件看作是一种异常细胞,而一些垃圾邮件的特征像看作是异常细胞所拥有的特征,根据医院细胞病理检查的大量统计资料可以对某一地区正常细胞和异常细胞出现的比例作出估计,这就相当于在识别前已知正常状态的概率P(1)和异常状态的概率P(2
50、)。这种由先验知识在识别前就得到的概率P(1)和P(2)称为状态的先验概率。在两类别问题中显然存在P(1)+P(2)=1。如果不做细胞特征的仔细观测,只依靠先验概率P(w1),P(w2)去作决策,合理的决策规则就应为:若P(w1)P(w2),第 #页共47页第 页共47页总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸则作出=1的决策;反之,则作出=2的决策。在这个例子中由于P(1)P(2),如果仅按先验概率决策就会把所有细胞都归于正常类,而根本未达到要把正常细胞与异常细胞区分开来的目的。这是由于先验概率提供的分类信息太少。为此我们还必须利用对细胞作病理分析所观测到的信息,也就是前面所说的有特征抽取
51、而得到的d维观测向量。为简单起见,我们假定只用一个特征(如胞核总光密度的观察值)进行分类,即d=1。p(x向1)是在正常状态下细胞特征(光密度)观察x的类条件概率密度。p(x向2)是在异常状态下细胞特征(光密度)观察x的类条件概率密度。我们已经知道:状态先验概率p(wi),i=1,2。类条件概率密度p(x|i),i=1,2。利用贝叶斯公式4.1:P(roi|x)=(P(x|roi)P(roi)/(P(x|ro1)P(1)+P(x|2)P(ro2)(4.1)得到的条件概率P(i|x)称为状态的后验概率。因此,贝叶斯公式实质上是通过观察x(即被识别细胞特征的测量)把状态的先验概率P(roi)转化为
52、状态的后验概率P(roi|x)。基于贝叶斯分类器反垃圾邮件模型是以电子邮件为研究对象,通过对电子邮件样本集进行训练,通过标识的划分、精化处理获得能区分是否是垃圾邮件的特征模式(训练结果),再以此模式为基础得到贝叶斯分类器从而对邮件进行检测,找到有用邮件,过滤掉垃圾邮件。基于贝叶斯分类器反垃圾邮件模型如图4.1所示。总鸟乩壕飆拴臭曙和讨侥课程设计(论文)用纸总鸟乩壕飆隹臭曙和讨傥课程设计(论文)用纸总鸟乩壕飆隹更曙和讨虎课程设计(论文)用纸第 页共47页第 页共47页第 页共47页图4.1贝叶斯分类器模型当新邮件到达的时候,就通过贝叶斯过滤器分析,通过使用各个特征来计算邮件是spam的概率。通过
53、不断的分析,过滤器也不断地获得自更新。比如,通过各种特征判断一个包含单词AAA的邮件是spam,那么单词AAA成为垃圾邮件特征的概率就增加了。4.3.2贝叶斯算法举例及代码实现建立一个基于贝叶斯方法的单分类器基本步骤如下:收集大量的垃圾邮件(spam)和非垃圾邮件(ham),建立垃圾邮件集(set-seam)和非垃圾邮件集(set-ham)。提取set-spam和set-ham邮件集中每一封邮件主题和邮件体中的独立字串。例如W0RD2,$213等作为TOKEN串并统计提取出的TOKEN串出现的次数即字频。t在set_spam中的字频ihashtable_spam表的长度set-spam对应哈希
54、表hashtable_spam、set-ham对应哈希表hashtable_ham。表中分别存储TOKEN串ti到字频的映射关系P1(ti)和P2(ti):P(t.)=在set_ham+的字频2ihashtable_ham表的长度综合考虑hashtable_spam和hashtable_ham,推断出当新来的邮件中出现某个TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:A事件-一邮件为垃圾邮件,则P(Alti)表示在邮件中出现TOKEN串ti时,该邮件为垃圾邮件的概率。P(A|ti)=P(t)1iP(t)P(t)1i2i建立新的哈希表hashtable_probability存储TOK
55、EN串,到P(A|ti)的映射。至此,垃圾邮件集和非垃圾邮件集的学习过程结束。根据建立的哈希表hashtable_probability可以估计一封新到的邮件为垃圾邮件的可能性。当新到一封邮件时,按照步骤2生成TOKEN串。查询hashtable_probability得到该TOKEN串的键值。假设由该邮件共得到n个TOKEN串,tl,n,hashtable_probability中对应的值为PP2Pn,P(AIt1,t2,.tn)表示在邮件中同时出现多个TOKEN串t1,t2,.tn,时,该邮件为垃圾邮件的概率。由复合概率公式4.2可得:TOC o 1-5 h zP*P*pP(A|t1,t2
56、,t)=12n(4.2)12nP*P*.*P+(1-P)(1-P)*.*(l-P)12n12n当P(A|t1,t2,tn)超过预定阀值时,就可以判断邮件为垃圾邮件。例如:一封含有“法轮功”“法律”等字样的垃圾邮件。试问该邮件是否为垃圾邮件?现有hashtable_spam,hashtable_ham和hashtable_probability三个表,是由垃圾邮件和有用邮件共500封,经训练集和测试集学习所得。哈希表的长度均为5000。表4.1表示的哈希表中各Token串出现的字频。表4.1字频法轮功律党set-spam50048046020300set-ham7802040500100计算ha
57、shtable_spam和hashtable_ham两个哈希表中TOKEN串出现的概率P1(ti)和P2(ti)。并由此统计邮件是spam的可能概率:hashtable_probability中的P(A|ti)。t在set_spam中的字频P1(ti)=5000t在set_ham中的字频卩2(t5000P(t)卩的沪P(t)+P(t)1i2i结果如表4.2所示:表4.2结果法轮功律党hashtable_spam(0.10.0960.0920.0040.06P1(ti)hashtable_ham(P0.1560.0040.0080.010.022(ti)hashtable_probab0.390
58、60.960.920.28570.75ility(P(Alti)对新邮件进行词义分析,提取Token串tl,t2,tn:法,轮,功,法,律。hashtable_probability的各Token的键值P(Alti)。计算该邮件为垃圾邮件的概率:P(A|t1,t2,tn)=p*p*p12iP*P*P12n+(1-P)(1P)*(1P)12nP(A|t1,t2,tn)=0.0999若给定系统阀值r=0.05,因为0.09990.05,所以可以断定新邮件是垃圾邮件。具体代码实现如下:#includeviostream.h#includevfstream.h超总鸟乩壕飆隹更曙和讨傥课程设计(论文)用
59、纸超总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸总鸟乩壕飆隹更曙和讨傥课程设计(论文)用纸第 页共47页第 页共47页第 页共47页定义table结构体,模拟数据库表;表中记录个数,即为向量空间维数;存放特征向量;存放特征向量的特征值;查找表中某个特定的特定值,找到则增加特征项出现的次数,找不到则增加特征项数;#includevconio.h#includevstring.htypedefstructaintsum;chartc1003;doublep100;table;voidfind(table&t,charcha)inti;for(i=0;ivt.sum;i+)if(!strcmp(t.t
60、ci,cha)t.pi+=1;break;if(i=t.sum)t.sum+;strcpy(t.tci,cha);t.pi=1;doublelookfor(tablet)在垃圾邮件过滤时在特征空间中根据查找特征项的特征值算出垃圾邮件的概率;charbuffer100,cha3;inti,m,j,c=0;doublepp10,mut1,mut2,pc;ifstreaminf(ab3.txt);inf.getline(buffer,100);m=strlen(buffer);for(i=0;ivm;i+=2)chaO=bufferi;chal=bufferi+l;cha2=0;for(j=0;jt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 19866-2026焊接工艺规程及评定的一般原则
- 企业全面预算控制实施方案
- 关于员工绩效考核标准修改的通知4篇范本
- 游戏创意落地评估表
- 电商行业供应链协同效率提升指南
- 智能硬件产品用户使用场景优化手册
- 企业危机应对策略与决策流程优化方案
- 关于2026年合作项目启动会的安排通知函(3篇)范文
- 新闻传媒行业编辑内容创新与传播力绩效衡量表
- 儿童溺水自救与施救技巧手册
- GB/T 48666-2026电子病历版式文档技术要求
- 2026年体育用品设备出租行业市场深度调研报告及未来五至十年技术路径与产业化前景
- 医学生基础医学重症肌无力查房课件
- 小小科学家《生物》模拟试卷(附答案)
- 集中供电智能应急照明疏散指示系统施工方案
- JJG 596-2026 安装式交流电能表检定规程
- 2026年人教版初中七年级数学上册单项式多项式判断卷含答案
- 住院病案首页数据填写规范培训考核试题(附答案)
- 工程力学第四版张秉荣主编课后习题解析
- 动物疫病防治员题库(含参考答案)
- 贷款提前还款通知文本模板
评论
0/150
提交评论