贝叶斯算法在反垃圾邮件技术中的应用
2010-07-02卢海燕
卢海燕
本溪广播电视大学 ( 本溪 117000 )
0 引言
长期以来,人们不断探索着垃圾邮件的解决之道,从早期的关键字匹配,到通过连接频率来提高发送垃圾邮件的成本,再到设立专用服务器,提供RBL实时黑名单查询,直到全世界范围内关于垃圾邮件立法的呼吁。无论哪种方式方法,要想从根本上解除垃圾邮件的泛滥,还是需要一套能够有效防范垃圾邮件的安全技术。
1 垃圾邮件无法避免的技术原因
当前邮件传输的主要协议是 SMTP协议,从设计之初,为了满足简单传输的需要,该协议没有任何认证手段,因此缺省的 SMTP邮件服务器对于邮件的来源和目的地不做控制而是支持发送。
通常的邮件传输过程是邮件的发送者使用SMTP协议将邮件发送给SMTP服务器,由它根据邮件的目的地址,使用 SMTP协议将邮件发送至目标 SMTP服务器,该服务器受到邮件后放入接收人的邮箱,最后由邮件的接收者使用POP3或IMAP协议从邮箱服务器上接收自己的邮件。在邮件传输的过程中,发送者与发送服务器、发送服务器和接收服务器之间都未做认证,因此发送方可以使用互联网上任意一台 SMTP服务器来发送他的邮件,这就是所谓的 Open Relay。
随着垃圾邮件的泛滥,大部分的邮件服务器都关闭了Open Relay,在发送放和发送服务器之间进行认证,从而保证只有合法用户才能使用这台服务器发送邮件,这就是增强的ESMTP协议。然而这个方法无法解决在发送服务器和接收服务器之间的合法认证,垃圾邮件仍然无法避免。
2 贝叶斯过滤技术介绍
2.1 贝叶斯公式
贝叶斯公式是英国数学家 T.贝叶斯在 200多年前提出的计算条件概率的公式,也称逆概率公式。如果事件组 A1,A2,…Ak为一完备事件组,则对任一事件B(其P(B)≠0)有:
其中⋅⋅⋅⋅=,2,1i
贝叶斯公式实际上是综合利用先验概率和样本信息从而计算后验概率的一种方法。
2.2 贝叶斯算法在反垃圾邮件技术中的应用
首先,我们可以将电子邮件分为正常邮件和垃圾邮件两类,贝叶斯过滤器针对这两类邮件进行自学习。分析每封电子邮件中的每一个单词,确定正常邮件和垃圾邮件中词汇发生频率的差异。
贝叶斯算法分析邮件的工作过程如下:
(1)过滤器收集大量的垃圾邮件和正常邮件,建立垃圾邮件集和正常邮件集。
(2)过滤器提取邮件主题和邮件体中的独立字串。
(3)每一个邮件集对应一个哈希表,hashtable_good对应正常邮件集而hashtable_bad对应垃圾邮件集。表中存储TOKEN串到字频的映射关系。
(4)计算每个哈希表中TOKEN串出现的概率P=(某TOKEN串的字频)/(对应哈希表的长度)
(5)综合考虑hashtable_good和hashtable_bad,推断出当新来的邮件中出现某个 TOKEN串时,该新邮件为垃圾邮件的概率。数学表达式为:
A事件----邮件为垃圾邮件;
t1,t2 …….tn代表TOKEN串
则 P(A|ti)表示在邮件中出现 TOKEN串ti时,该邮件为垃圾邮件的概率。
设
P1(ti)=(ti在hashtable_good中的值)
P2(ti)=( ti在hashtable_ bad中的值)
则 P(A|ti)= P1(ti)/[(P1(ti)+ P2(ti)];
(6)建立新的哈希表 hashtable_probability存储TOKEN串ti到P(A|ti)的映射
(7)至此,垃圾邮件集和正常邮件集的学习过程结束。根据建立的哈希表 hashtable_proba bility可以估计一封新到的邮件为垃圾邮件的可能性。
当新到一封邮件时,按照步骤(2)生成TOKEN串。查询 hashtable_probability得到该TOKEN 串的键值。
假设由该邮件共得到 N个 TOKEN串,t1,t2….tn, hashtable_probability中对应的值为P1,P2,…PN, P(A|t1 ,t2, t3…tn)表示在邮件中同时出现多个TOKEN串t1,t2…….tn时,该邮件为垃圾邮件的概率。由复合概率公式可得:P(A|t1 ,t2, t3…tn)=(P1*P2*…PN)/[P1*P2*…PN+(1-P1)*(1-P2)*…(1-PN)]当 P(A|t1 ,t2, t3…tn)超过预定阈值时,就可以判断邮件为垃圾邮件。
2.3 贝叶斯算法的优劣
因为贝叶斯算法是基于先验概率和样本信息来计算后验概率的方法,所以其对于样本积累的数量具有很大的依赖性,需要一个较长的过程,开始的时候,可能会发生很多的误判和漏判现象,只有当积累的样本数量足够多,其检测精度才能到达一定高度并为用户所接受。
3 总结和展望
在反垃圾邮件技术中,贝叶斯过滤技术只是启发式检测流程中的一项技术,这种技术可以确定电子邮件的总体垃圾概率。目前,对于贝叶斯技术的应用正在成为反垃圾邮件领域的一个研究热点,越来越多的专用反垃圾邮件产品正在尝试使用贝叶斯过滤技术来提高其产品的检测精度,降低管理成本。
[1]倪加勋,袁卫.应用统计学,北京:中国人民大学出版社,1993.
[2]郭泓.电子邮件过滤技术浅析.信息网络安全.2002.
[3]王斌,潘文峰.基于内容的垃圾邮件过滤技术综述.中国科学院计算技术研究所硕士毕业论文.2004.